본문 바로가기
딥러닝관련/자연어처리

Word2Vec

by 머리올리자 2020. 7. 20.

https://better-tomorrow.tistory.com/entry/Word-Embedding 이후 내용

 

  - 단어의 '의미'를 다차원 공간에 벡터화하는 방법을 distributed represenation dense vector

 

1. Distributed represenation

 

  - Distributional hypothesis라는 가정하에 만들어진 표현 방법

  - 비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다 

  - 강아지 ▶ 귀엽다 / 예쁘다 (강아지라는 단어가 뜨면 "귀엽다", "예쁘다" 라는 단어가 함께 등장)

  - 분포 가설에 근거 ▶ 저런 내용을 가진 텍스트를 벡터화하면 의미적으로 가까운 단어

  - Distributional hypothesis을 이용하여 단어들의 셋을 학습 ▶여러 차원에 분산하여 표현

 

  Ex) 고양이 = [0.23 0.11 0.43 0.75 0.43 ...... 0.11]

  

  ▶ Sparse representation : 고차원에 각 차원이 분리된 표현 방법

   Distributed representation : 저차원에 단어의 의미를 여러 차원에다가 분산하여 표현 → 단어간 유사도 계산 가능

 

2. Continus Bag of Words (CBOW) (Word2Vec 1)

  - 주변에 있는 단어들로 중간 단어들 예측

 

ex) 예시 " The cat sat on the mat"

    ≫ "set"을 예측한다고 가정. {"The", "fat", "cat", "on", "the", "mat"}으로부터 sat을 예측

     - sat을 중심 단어 (center word)

     - 나머지 단어들을 주변 단어 (context word)

     - 중심 단어 예측을 위해 앞, 뒤로 몇개의 단어를 볼지 범위, 윈도우 (window), 선택

     - sat을 예측한다면 fat, cat & on, the 참고

     - 윈도우 크기가 n이라고하면, 참고하는 주변 단어 개수는 2n

     - 윈도우 크기 정한 후, 윈도우를 움직어 주변 단어와 중심 단어 선택을 바꿔가며 학습을 위한 데이터 셋 생성

       (siliding window 기법)

 

참고 1에서 그림 퍼옴

 

     - Word2Vec에서 입력은 모두 one-hot vector가 되어야 한다.

 

참고 1에서 그림 퍼옴

 

     - 위는 CBOW 신경망 학습 과정(deep learning model)은 아님 - 하나의 hidden layer만 존재 projection layer

     - activation function이 존재하지 않음

 

참고 1에서 그림 퍼옴

     - 위는 CBOW 신경망 학습 과정(deep learning model)은 아님 - 하나의 hidden layer만 존재

     - activation function이 존재하지 않음

     - CBOW를 수행하고나서 얻은 projection layer의 벡터의 차원은 5

 

     - input layer와 projection layer의 weight는 V x M 행렬

     - projection layer와 output layer의 weight는 M X V 행렬

     

      ex) one-hot vector의 차원이 7이고 M은 5라면 input-projection layer사이의 weight는 7 x 5 행렬이고,

          projection layer-output layer의 weight는 5 x 7

 

 

참고 1에서 그림 퍼옴

 

     - 위는 학습 과정

     - 주변 단어의 one-hot vector를 x로 표기

 

3. Skip-Gram (Word2Vec 2)

  - 중간에 있는 단어로 주변 단어 예측

 

참고 1 : https://wikidocs.net/book/2155

'딥러닝관련 > 자연어처리' 카테고리의 다른 글

자연어 처리란  (0) 2021.12.15
Transformer Decoder : Linear & Softmax Layer  (0) 2021.11.16
Transformer Decoder : Encoder-Decoder Attention  (0) 2021.11.16
StackGAN 논문 리뷰(작성 중)  (0) 2020.07.16
Word Embedding  (0) 2020.07.13