Efficient Estimation of Word Representations in Vector Space
4 minute read

Preliminaries

Distributional Semantics

Distributional representation of meaning

Huffman binary tree

Algorithm

  1. 초기화 : 모든 기호를 출현 빈도수에 따라 나열한다.
  2. 하나의 기호가 남을때까지 아래의 과정을 반복한다.
    1. 목록에서 빈도가 가장 낮은 기호 두개를 고른다.
    2. 두 기호에 해당하는 노드를 목록에서 제거하면서 둘을 merge 한 parent node 를 만든다.
    3. parent node 를 목록에 추가한다.

Application to hierarchical softmax

단어를 예측해야하는 모델에서 마지막 softmax layer 는 계산량의 상당한 부분을 차지한다. ($H\times V$, where $H$ : # of parameters in last hidden layer, $V$ : vocabulary size) 따라서 이 부분의 계산량을 줄이는 것이 중요한데, hierarchical softmax 는 그것을 가능하게 하는 방법 중 하나이다. 구체적인 과정은 다음과 같다.

  1. Corpus 를 한번 훑으면서 모든 단어의 빈도수를 계산한다.
  2. 단어를 빈도순으로 정렬한다.
  3. Huffman binary tree algorithm 을 적용해 트리 구조를 만든다.
  4. 다음의 식으로 단어별 확률값을 계산할 수 있다.

이렇게 hierarchical softmax 를 사용하면 $H\times V$ 였던 계산량을 $H \times \log_2{V}$ 로 줄일 수 있다.

Log-linear models

For any $x \in \mathcal{X}$, $y \in \mathcal{Y}$, the model defines a conditional probability,

From the equation above we can derive the following.


본 논문에서는 제안하는 word2vec 모델을 기존의 dense representation 방법으로 사용되어온 NNLM (Neural Network Language Model), RNNLM (Recurrent Neural Network Language Model) 과 비교한다.

NNLM, RNNLM 은 language modeling task 를 수행하면서 첫번째 레이어에서 단어 임베딩을 학습한다. Language modeling 처럼 단어를 input 으로 받는 대부분의 task 들은 불가피하게 첫번째 레이어에서 임베딩을 학습하게 된다. Task 를 잘 학습시키고 나면 임베딩이 byproduct 로 생성되는 것이다. 반면 word2vec 은 모델의 목적 자체가 단어 임베딩을 생성하는 것에 있다.

이 두 방법론의 가장 큰 차이는 계샨량(computational complexity)에서 나타난다. 복잡한 모델로 워드 임베딩을 만드는 것은 특히 vocabulary 가 방대한 경우에 계산량이 폭발적으로 증가한다 (마지막 softmax layer). 이 경우, hierarchical softmax 같은 방법으로 계산량을 줄일수도 있지만, 여전히 non-linear hidden layer 에서 꽤나 많은 계산량이 유발된다. 따라서 본 논문에서도 neural net 이 주는 높은 표현력을 감수하더라도, 많은 데이터에도 좀 더 효율적으로 학습을 할 수 있도록 hidden layer 을 사용하지 않는 새로운 모델을 만들어보자는 얘기가 나온다 (3. New Log-linear Models).

또 다른 차이점은 training objective 로부터 비롯되는데, word2vec 이나 GloVe 와 같은 워드임베딩 모델은 단어들간의 의미적 관계를 반영하는 임베딩이 생성되도록 설계되어있다. 따라서 이러한 모델로부터 만들어진 pretrained embedding 은 의미적인 관계가 중요한 downstream task 에서 유용하게 사용될 수 있다. 반대로 다른 task 를 학습하는 과정에서 생성된 임베딩은 그 특정 task 에만 적합하게 만들어진다. (물론 language modeling 처럼 단어의 의미적인 관계에 의존하는 task 는 워드임베딩 모델들과 유사한 결과를 도출하기도 한다.)


Model

CBOW (Continuous Bag-Of-Words)

cbow.png

Continuous Skip-Gram

sg.png

Recent Posts

Why are Sequence-to-Sequence Models So Dull?
Variational Autoregressive Decoder for Neural Response Generation
Content Preserving Text Generation with Attribute Controls
Matching Networks for One Shot Learning
Pointer Networks