DataScience/NLP

Word Embedding 이란?

mkk4726 2023. 7. 18. 17:27

Word Embedding은 분산표현(distributed representation)과 같은 의미로, 단어를 표현하는 벡터를 의미합니다.

 

이는 추론과정에서 얻어지는 부산물로 이해할 수 있습니다.

 


 

word2vec는 맥락으로부터 해당 단어를 유추하는 신경망을 뜻합니다.

대표적으로 CBOW와 skip-gram이 있는데요, 그 중 CBOW를 통해 word embedding에 대해 설명해보겠습니다.

 

그림1. CBOW 모델에 대한 설명

먼저 맥락이 입력값으로 들어갑니다.

이 때 맥락이란 타겟 단어의 주위에 있는 단어를 의미합니다.

 

예를 들면 "나는 밥을 먹었고 배가 너무 부르다" 라는 문장이 있다면 이는

[ "나는", "밥을", "먹었고", "배가", "너무", "부르다"] 와 같이 띄어쓰기 단위로 아주 단순하게 토큰화할 수 있습니다.

이때 타겟을 "배가"라고 한다면 그 주위에 있는 "먹었고"와 "너무"가 맥락이 됩니다.

 

CBOW모델은 그림1과 같은 구조를 가지는 신경망이며, 맥락이 들어오면 이를 통해 타겟을 맞추는 과정을 반복합니다.

그리고 이 과정에서 적절한 가중치를 얻게됩니다.

 

여기서 $W_{in}$이 얻고자 한 분산표현, word embedding이 됩니다.

즉 추론의 부산물로써 얻어진 가중치가 word embedding입니다.

 

가중치의 앞에 것을 쓰는 이유는 이게 더 적합한 결과를 도출하기 때문이라고 합니다.

 

처음에는 어색한 개념입니다. 맥락을 통해 타겟을 추론하는 모델이 필요한게 아닌, $W_{in}$이 필요하고 이를 위해 모델을 학습시키는 것이니까요.

 

이 Embedding이라는 의미는 이처럼 추론과정에서 얻어진 부산물의 의미로 쓰이며, 자연어처리 뿐만 아니라 sparse matrix나 복잡한 값들을 추상적인 벡터로 함축시키기 위해 자주 사용되곤 합니다.

 

 


-reference

밑바닥부터 구현하는 딥러닝2