-
Word2Vec (word embedding)Natural Language Processing 2022. 2. 9. 14:49반응형
강의 보고 공부한 내용을 정리하는 글(문제시 비공개 처리하겠습니다)
Reference
https://www.youtube.com/watch?v=sY4YyacSsLc
Background
text는 모델의 입력으로 사용 못 함
그래서 encoding 기법을 사용해 text(I love you)를 숫자(0, 1, 2)로 변환함
encoding 기법 중 one-hot encoding이 있는데 단어 간의 유사도를 구할 수 없음
예를 들어, I(1, 0, 0) love(0, 1, 0) you(0, 0, 1) 인 경우 l2 norm은 1로 모두 같고 cosine 유사도는 벡터 간의 사잇각이 90이 돼버려 유사도가 0이 됨
Embedding
그래서 embedding을 사용함
embedidng은 dense vector로 sparse vector인 one-hot encoding과 반대되며 유사도를 구할 수 있음!!
아래 그림을 보면 비슷한 단어는 비슷한 위치에 분포한 것을 확인할 수 있음
word2vec
word2vec은 word embedding 중 하나
유사도는 neighbor 단어로부터 얻을 수 있음
word2vec skipgram (window size=1)
word2vec skipgram (window size=2)
모든 단어에 대해 아래와 같이 label을 얻음
딥러닝에는 text(word)가 아닌 encoding value(word one hot encoding)가 input으로 들어가게 되고 출력으로 embedding 결과를 얻음
target은 다음과 같이 들어가서 중간에 있는 hidden value를 얻음
아래 그림에서 input과 output은 동일한 차원을 가짐
input으로 one-hot encoding이 입력됨
hidden은 word2vec으로 one-hot encoding 보다 적은 차원의 벡터를 가짐으로써 유사도를 갖도록 하기 위함임
softmax 결괏값인 output과 target 간의 cross entropy를 구해 backpropagation을 실행해 hidden의 가중치를 업데이트함
이러한 feedforward와 backpropagation을 통해 hidden의 가중치가 유사도를 갖기 위한 값으로 업데이트 됨
바로 이 w1과 w2 값이 word2vec임
embedding 값을 w1과 w2임
input이 one-hot encoding이므로 hidden 계층을 lookup table로 사용할 수 있음
반응형'Natural Language Processing' 카테고리의 다른 글
5 Text Decoding Techniques (0) 2022.02.24 Masking and padding with Pytorch (0) 2022.02.23 seq2seq 그리고 attention (0) 2022.02.04 기계 번역에서 alignment 의미 (0) 2022.01.25 GPT2 vs XLNet (0) 2022.01.13