논문리뷰 | Efficient Estimation Of Word Representations In Vector Space (Word2Vec)

esyooon·2024년 3월 7일
0

Paper Review

목록 보기
1/2

더 깊게 학습 후 내용 추가 예정


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×QE \times T\times 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)W_P(V\times D)를 곱하여 D차원의 word vector를 얻음
    • 원핫인코딩과 WPW_P를 곱하는 것은 원핫인코딩에서 1인 인텍스를 사용해 WPW_P에서 해당 row만 뽑아내는 것과 동일; WpW_p : lookup table
  • input에 대한 D차원 word vector로 Projection layer P(N×D)P(N\times D)를 만들어냄
    • 여러 word에 대한 input을 하나의 matrix로 표현한 X(N×V)X(N\times V)WPW_P를 곱하는 연산과 동일; P(N×D)P(N\times D) = WPX(N×V)W_PX(N\times 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×VQ=N\times D+N\times D \times H + H\times V

위 식에서 가장 부담이 큰 연산은 H×VH\times V이지만 hierarchical softmax를 사용하면 H×log2VH\times log_2 V로 연산량 축소 가능
\rarr 이 경우 계산 복잡도 Q=N×D×HQ = N\times D\times H

Recurrent Neural Net Language Model(RNNLM)

  • RNN을 사용하여 projection layer를 제거
  • 고정된 개수의 word만을 input으로 받는 NNLM과 달리 이전의 모든 word들에 대한 정보를 반복되게 hidden layer에 담음

전체 과정의 계산 복잡도 Q는
Q=H×H+H×VQ=H\times H + H\times V

D를 H와 동일하게 만듦
hierarchical softmax를 사용하면 NNLM과 동일하게 H×VH\times VH×log2VH\times log_2 V로 연산량 축소 가능
\rarr 이 경우 계산 복잡도 Q=H×HQ = H\times 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는 모든 단어들이 공유한다는 특성을 가짐
    \rarr 단어의 순서가 큰 영향을 못 미침

훈련 복잡도 Q
Q=N×D+D×log2VQ=N\times D+D\times log_2V

Continuos Skip-gram Model (Skip-gram)

  • 각각의 단어를 input으로 사용하여 정해진 범위들의 단어를 예측
  • 단어의 간격이 멀수록 보통 단어 간의 연관성이 낮으므로 훈련 데이터를 적게 부여해 weight를 낮춤
    • 예측 범위 증가는 word vector의 결과 quality를 향상하지만 복잡도가 증가

훈련 복잡도 Q
Q=C×(D+D×log2V)Q=C\times (D+D\times log_2V)

  • C는 예측할 단어의 최대 거리이며 R 만큼의 개수 단어를 랜덤하게 선택

Result

직관적인 단어간의 유사도가 높은 것을 테이블에 제시하는 것이 아니라 cos 거리로 유사도가 높은 단어를 채택하고 미묘한 의미상의 관계를 학습시킴

  • CBOW의 성능은 데이터 양과 차원이 동시에 높아질 수록 높아진다. 그러나 하나만 증가할 경우는 오히려 감소하는 경향

  • MS soft에서 진행했던 대회에서 단일 Skip-gram을 사용했을 때는 성능이 매우 높지는 않았으나 RNNLMs를 추가적으로 연결하자 매우 높은 성능

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

0개의 댓글

관련 채용 정보