본격적으로 RNN을 다루기 전에, 그 전에 나왔던 단어 의미 모델링이라는 하는 개념부터 다루겠다.
이후 Language Model, 그 다음 RNN 순으로 다룰 예정이다.
RNN이 나오게 된 배경은 자연어 처리에 관련된 번역 task에 집중되어 있었다.
자연어 처리 요구사항
사람들은 번역, 질의응답 등 다양한 자연어 처리 과제를 해결하고 싶어하였음.
- 언어별 서로 다른 특성을 효과적으로 처리한다.
- 다양한 언어, 장르, 스타일에 맞는 일반적 처리 방법을 만든다.
- 높은 정확도와 더불어 구축 시간과 런타임 시 계산 효율성이 타당해야 한다.
단어 의미 모델링
처음은 단어로 시작하였으며, 대표적인 예시가 바로 WordNet이다.
WordNet은 Synonym(동의어)와 hypernym(상하관계)를 고려하여 유사한 특징의 단어를 가져오도록 설계되었다.
한계 : 신조어들이 새로 만들어지면 지속적인 업데이트를 해줘야 하는 번거로움이 있다.
one-hot vectors (WordNets의 단어 표현 방식)
Vector의 차원만큼 행렬을 만들고 단어에 해당하는 인덱스에 1을 넣고 그 외는 모두 0을 넣는 방식
WordNet에서 단어 표현을 방식으로 채택하였는데, 두 vector들은 모두 직교성을 띄고 있어, 유사성을 파악할 수 없음.
(유사성은 내적을 통해 파악할 수 있는데 직교한 두 벡터는 내적했을 때 0이기 때문)
Context을 이용한 단어 표현
Context을 이용한 단어 표현은 GloVe와 Word2Vec이 있다.
이때, 여기서 사용하는 새로운 개념 두 가지가 있다.
Distributional semantics : 근처에 나타나는 다른 단어들을 통해 단어의 의미를 유추하는 방식
단어 w가 문장에 있을 때, context는 근처의 단어들을 의미함. (fixed-size window 형식)
w의 많은 context을 이용하여 w의 표현 (representation)을 생성한다.
Word Vectors / Word Embeddings
각 단어에 대한 dense vector (비슷한 context에 있는 단어들은 비슷한 vector가 되는 형식)
word embeddings 또는 word representation이라고도 불리며, distributed representation(분산적 표현)이라고 한다.
추가 : Word Embedding Metrics
word embedding을 위해 사용하는 행렬이다.
입력이 50만개 (one hot vector로 표기하면) 라고 한다면 이를 512개 (보편적으로 사용하는 벡터) 로 만들어주는 방식이다.
결국 불필요한 공간을 차지하던 one hot vector가 word embedding vector로 변환하는 형태로, 공간을 절약하는 것이라고 볼 수 있다.
이때의 Metrics의 파라미터는 50만 x 512이다.
Word2Vec
Word2Vec 모델에는 두 가지 방법이 있는데 간략하게만 다루겠다.
Skip-Gram : 중심단어로 주변단어를 예측 (input : 1 -> output : 4)
CBOW (Continuous Bag of words) : 주변 단어로 중신 단어를 예측 (input : 4 -> output : 1)
사실 딥러닝이 나온 이후의 과정이 더 중요하기에, 이 부분은 나중에 기회가 있으면 더 자세히 다루도록 하겠다.
Word Embedding의 특징 : Analogy
워드 임베딩의 특징으로는 의미 관계를 잘 잡아내는 것이라 볼 수 있다.
Word Embedding을 통해 나온 512개의 벡터들은 방향을 나타내 주는데, (벡터의 특성)
Man-Woman, Uncle-Aunt, King-Queen에서의 각 벡터들의 차이가 유사하다는 것을 확인하였다.
이를 통해 유사한 상관관계를 도출하는데 성공하였다.
다음은 이 모델링을 이용하여 어떻게 Language Model을 설계하였는지 정리하겠다.
'Machine Learning > 기초 개념' 카테고리의 다른 글
[RNN] Language Model 정의와 N-gram Model (32) | 2024.12.11 |
---|---|
[머신 러닝] 가중치 (W), 편향 (Bias) (0) | 2024.08.14 |
[머신 러닝] 퍼셉트론과 인공 신경망 (33) | 2024.08.12 |
[머신 러닝] 선형 회귀 (0) | 2024.07.07 |
[머신 러닝] 회귀와 분류 차이 (1) | 2024.07.05 |