ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] Efficient Estimation of Word Representations in Vector Space - Word2vec
    논문 리뷰 2024. 7. 5. 16:16

    [논문 링크]
    Efficient Estimation of Word Representations in Vector Space

     

    [요약]

    Word2Vec의 2가지 model architecture인 CBOW와 Skip-gram model를 제시함.

    이는 단어간의 유사성과 계산 복잡도를 줄임.

     

    [목표]

    1) 단어 간의 유사성을 포함한 Word Vector 생성하기

    Syntactic and Semantic regularities의 포함해야 된다. 즉 문법적 구조와 의미가 포함되어야 한다.

    선형의 규칙성을 보존하고 있어야 한다. 이 때문에 비선형 함수를 안 사용한 것으로 추측 가능하다. 비선형 함수를 사용하면 단어의 의미 간의 왜곡이 발생할 수도 있기 때문이다.

    - Model architecture that preserve the linear regularities among words

     

    2) 많은 단어를 학습할 수 있는 Word Vector 생성하기(Huge data sets with billions of words)

    One hot vector는 단어의 수가 많아질 수록 차원의 크기가 계속 커져 학습하기가 힘들다.

     

    [이해]

    이제 본격적으로 단어의 의미를 포함한 Word Embedding 방법인 Word2Vec에 대해 알아보자.

    이 논문에서는 Word2Vec의 2가지 새로운 방법을 제시한다.

    1) Continuous Bag-of-Words Model

    2) Continuous Skip-gram Model

     

     

    CBOW model과 Skip-gram model architecture

     

     

    기존의 N-gram model보다 더 많은 단어 data를 학습할 수 있고, 더 high quality의 word vector이고, low computational complexity를 가진 방법이다.

     

    전제: 가까이 위치해 있는 단어일 수록 현재 단어와 관련이 더 많은 단어이다.

    - The more distant words are usually less related to the current word than thse close to it, we give less weight to the distant words by sampling less from those words in our training examples.

     

    1) Continuous Bag-of-Words Model

    주변 단어(context word)를 Input으로 사용하여, 중심 단어(Center word)의 확률을 계산한다.

    마치 빈칸 추론 문제처럼 주변 단어(context word)를 통해 중심 단어(center word)를 계산한다.

     

    차원)

    context word들의 one hot vector (1 x V)

    Weight vector (V x M)

    Projection vector ( 1 x M )

    Weight' vector ( M x V ) 

    center word의 예측된 vector ( 1 x V )

    V: Vocabulary size, 전체 단어의 크기

    M: Embedding vector size, 단어의 의미를 포함하는 벡터의 크기. 일반적으로 클수록 더 많은 의미를 포함하며, 계산 복잡도가 올라간다.

     

    1. 주변 단어(context word)의 초기 embedding vector 계산하기

    one hot vector x W  = embedding vector

    가중치 W는 one hot vector와 곱했을 때, one hot vector index가 1인 부분만 결과 값을 계산하기 때문에, Look up table이라고도 한다. Lookup table 이란, W의 각 행의 값이 결국 각 단어의 embedding vector를 의미한다는 것이다.

     

    2. Context word의 embedding vector의 평균 구하기

     

     

    그후 context word(주변 단어)들의 embedding vector들의 평균을 계산하게 된다. 이 지점이 skip-gram가 다른 지점이다. skip gram는 평균을 구하지 않는다. 

    수식은 각 단어들의 embedding vector를 다 더한 후 window size x 2 로 나눈다. 

     

    window size: center word 주위로 계산할 단어의 수

    ex) I am a brave king man.

    -window size:2 , center word: brave context word - am, a, king, man

     

    3. Score vector 구하기. 중심 단어의 확률 구하기

     

    그 다음 score vector를 계산하게 된다. Score vector란 중심단어가 나올 확률를 계산한 것이다.  Score vector는 softmax 함수를 이용해서 총합이 1이 되게 한다. 이를 중심단어의 one hot vector와 손실값을 계산하게 된다.

     

    4. 실제 값과 비교해서 오차 학습하기.

     

     

    score vector 와 center word의 one hot vector의 loss를 계산한다. Loss function는 cross entropy를 사용한다.

    loss function이 최소가 되도록 Weight를 학습한다. 

    그 후 학습된 Weight 행렬의 각 행의 값이 embedding vector가 된다. ( 각 행을 사용하거나, 평균 벡터를 사용한다.)

    이 때 W 값이 embedding vector의 값이 된다. W'는 embedding 값이 아니다.

     

    2) Continuous Skip-gram Model

    중심 단어(center word)를 사용하여 주위의 단어(context word)의 확률을 계산한다.

    CBOW와 비슷하며 오히려 더 간단하다.

     

    차원)

    CBOW와 같다.

     

     

     

    여기서는 score vector와 주변 단어들의 one hot vector랑 오차를 줄이는 방향으로 학습하게 된다.

     

    [결과]

    Semantic, Syntactic 질문을 해서 단어가 일치한지를 비교하였다.

    벡터 공간에서 Cosine distance를 사용하여 가장 가까운 단어를 정답으로 가정하여 진행하였다.

     

    [의의]

    1. 단어 간의 유사성을 포함한 Word vector - 기존의 one hot vector는 이러한 의미를 포함하지 못했다.

    2. Training complexity 감소

    W를 통해 단어가 많아질 수록 one hot vector의 차원이 늘어나는 것에 비해, 저차원으로 설명할 수 있게 되었다.

    One hot vector의 차원은 1 x V ( V = 전체 단어의 수) 이지만, embedding vector = one hot vector x W 의 차원은  1 x M 으로 새롭게 차원을 줄일 수 있다. 이는 2차원으로 나타낼 경우 그래프 위에도 표현할 수 있다

     

    +)

    이 논문에서는 개념의 초안만 알려준다. 그래서 약간 더 이해할 겸 추가로 작성하고, 나머지 수식과 계산 방법은 후속논문을 다룰 때 다루도록 하겠다.

Designed by Tistory.