Word Embedding


Word Embedding이란 Deep Learning 분야, 이 중에서도 특히 자연어처리에서 필수적으로 알아야할 개념이다. Word Embedding은 Word를 R차원의 Vector로 매핑시켜주는 것을 말한다.



예를 들어 위와 같이 cat이나 mat같은 단어를 특정 차원의 벡터로 바꾸어주는 것이다. 이렇게 단어를 벡터로 바꾸어주는 것은 하나의 Matrix이다. 이를 W라 부른다. W 함수는 매우 중요하다. 이를 통해 단어가 의미 있는 벡터로 변한다. 비슷한 두 개의 단어는 비슷한 벡터로 바뀐다던지 하는 식으로 말이다. W는 Learning을 통해 학습할 수 있다.


예를 들어, 5000개의 단어로 이루어진 단어 세트가 있으면 각각의 단어는 [0,0,0,1,0 ... 0,0,0] (5000열) 과 같이 나타낼 수 있다. 이 때 각각의 단어를 Word Embedding을 통해 32차원 벡터로 나타내고자 하면 W의 차원은 5000*32이다. 이를 학습하여 [0.2,0,4,0.5 ... 0.8,8] 과 같은 32차원의 벡터를 형성해낸다.


Word Embedding은 다음과 같은 놀라운 특성도 가질 수 있다.



woman을 나타내는 벡터와 man을 나타내는 벡터의 차이는 남녀의 차이를 나타내는 벡터이다. 이것이 aunt와 uncle의 차이를 만들어낸다. 예를 들어 he is a man는 옳은문장 she is a man은 틀린 문장을 구분하는 classifier에서 aunt와 uncle에 대해서도 똑같은 일을 할 수 있게 만든다.


참고


http://colah.github.io/posts/2014-07-NLP-RNNs-Representations/

  • kjs1124kr 2017.08.28 20:27

    좋은 정보 감사합니다.