더 깊게 학습 후 내용 추가 예정
NLP; word2vec
Introduction
Goals of the paper
- one-hot-encoding 방식은 index로만 표현되어 word의 내재된 정보와 관련이 없지만 그 단순성과 robustness로 많이 사용됨
- word2vec은 그 내재된 이미지를 확실하게 담아내고자 vector 공간에서 cos거리로 유사한 단어의 거리를 측정하고, syntax, semantic 관점에서의 다양한 유사도를 반영하고자 함
Model Architectures
E : epoch
T : training dataset length
Q : model 구조에 따라 결정
- 계산 복잡도는 파라미터로 정의
- 학습 복잡도는 E×T×Q
- SGD와 backpropagation을 이용하여 학습
Feedforward Neural net Language Model(NNLM)
N : input word 개수(n-gram에서의 N과 유사한 의미; hyperparameter)
V : vocabulary size
D : word representation dimenstion
H : hidden layer size
- N개의 word에 대한 one-hot-encoding을 input으로 받음
- 각 input word에 대해 weight matrix WP(V×D)를 곱하여 D차원의 word vector를 얻음
- 원핫인코딩과 WP를 곱하는 것은 원핫인코딩에서 1인 인텍스를 사용해 WP에서 해당 row만 뽑아내는 것과 동일; Wp : lookup table
- input에 대한 D차원 word vector로 Projection layer P(N×D)를 만들어냄
- 여러 word에 대한 input을 하나의 matrix로 표현한 X(N×V)와 WP를 곱하는 연산과 동일; P(N×D) = WPX(N×V)
- projection layer P에 W_H_D\times H)를 곱한 뒤 활성화함수에 넣어 hidden layer를 생성
- 여러 word embedding vector를 하나의 vector로 축약시키는 과정
- hidden layer에서는 softmax와 cross entropy loss를 사용해 output에 대한 one-hot vector를 생성
전체 과정의 계산 복잡도 Q는
Q=N×D+N×D×H+H×V
위 식에서 가장 부담이 큰 연산은 H×V이지만 hierarchical softmax를 사용하면 H×log2V로 연산량 축소 가능
→ 이 경우 계산 복잡도 Q=N×D×H
Recurrent Neural Net Language Model(RNNLM)
- RNN을 사용하여 projection layer를 제거
- 고정된 개수의 word만을 input으로 받는 NNLM과 달리 이전의 모든 word들에 대한 정보를 반복되게 hidden layer에 담음
전체 과정의 계산 복잡도 Q는
Q=H×H+H×V
D를 H와 동일하게 만듦
hierarchical softmax를 사용하면 NNLM과 동일하게 H×V를 H×log2V로 연산량 축소 가능
→ 이 경우 계산 복잡도 Q=H×H
New Log-linear Models
연산량을 최소화하며 단어의 분산 표현을 학습 가능한 새로운 두 모델의 구조를 제안
- 계산 복잡도의 문제는 non-linear hidden linear로 인함
Continuous Bag-of-Words Model (CBOW)
- hidden layer가 제거되고 모든 단어가 projection layer를 공유하고 있는 형태의 feedforward NNLM과 유사
- 모든 단어가 동일한 행렬로 projection
- projection layer의 weight matrix는 모든 단어들이 공유한다는 특성을 가짐
→ 단어의 순서가 큰 영향을 못 미침
훈련 복잡도 Q
Q=N×D+D×log2V
Continuos Skip-gram Model (Skip-gram)
- 각각의 단어를 input으로 사용하여 정해진 범위들의 단어를 예측
- 단어의 간격이 멀수록 보통 단어 간의 연관성이 낮으므로 훈련 데이터를 적게 부여해 weight를 낮춤
- 예측 범위 증가는 word vector의 결과 quality를 향상하지만 복잡도가 증가
훈련 복잡도 Q
Q=C×(D+D×log2V)
- C는 예측할 단어의 최대 거리이며 R 만큼의 개수 단어를 랜덤하게 선택
Result
직관적인 단어간의 유사도가 높은 것을 테이블에 제시하는 것이 아니라 cos 거리로 유사도가 높은 단어를 채택하고 미묘한 의미상의 관계를 학습시킴
Conclusion
-
CBOW와 Skip-gram이라는 새로운 word embedding 학습 방법을 제안
-
연산량이 적어지고 간단한 model임에도 높은 성능을 가짐
-
word embedding vector의 syntax, semantic 성능을 측정할 수 있는 새로운 dataset을 제시
참고
https://velog.io/@xuio/NLP-%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-Sequence-to-Sequence-Learning-with-Neural-Networks-xikn77tw
https://cpm0722.github.io/paper-review/efficient-estimation-of-word-representations-in-vector-space