21.word2vec의 개념 및 원리
21강 word2vec의 개념 및 원리
1. word2vec의 개념
Word를 Vector로 표현
-
단어를 벡터화 시킨다는 것은 0, 1, 2와 같은 단어의 빈도로 그치는 것이 아니라 고차원에서 좌표의 값으로 표현되는 것이다.
-
단어를 벡터 형태로 수치화시킨다는 것은 ‘정밀함’,’문맥활용’,’고차원의 알고리즘 적용’등 질적으로 다른 데이터가 확보되는 것이다.
예를들어, 인공지능 단어가 2번 등장하고 방법론이 1번 등장했다는 것 뿐만이 아니라 이 단어들의 좌표로 확인해보니 위치가 서로 비슷한 곳에 위치한다는 것을 알 수 있게 되면 우리는 숫자를 통해서 문맥적 활용을 할 수 있다.
- word2vec이 고안된 핵심적인 이유는 딥러닝에 활용되기 위함이다.
검색, 추천, 번역 등 단어들을 좀더 정교하게 찾기 위해 많은 연구자들이 방법론을 고안해 실제 생활에서도 많이 사용되고 있다.
전통적 방법 - Bag of Words Model
- one hot encoding (0 또는 1)로 표현
단어가 표현이 되었는지 아닌지를 0과 1로만 표현해낸 것
- 각 단어는 거대 공간에서 1비트의 위치로 표현됨
- 예를 들어 10,000개의 단어 사전에서 인공지능이란 단어가 3번째 단어로 존재한다면 다음과 같이 표현된다.
-> 0 0 1 0 0 0 … 0 0 0
어떤 위치에 있는지에 대한 정보 뿐, 다른 단어와의 연관성을 알아보는 정밀한 분석을 하기엔 어려움이 있다.
- 문맥정보가 활용될 여지가 없음.
Word Embeddings
- 각 단어를 수백 차원의 공간상의 좌표로 표현
- 각 단어는 공간상에서 정밀한 좌표로 표현
- 예를 들어 ‘인공지능’이란 단어가 300차원에서 다음과 같이 표현 됨
-> [0.4, -0.11, 0.55, 0.3, …] -
고차원상에서 유사한 단어와 상이한 단어가 좌표로 계산되기 때문에 문맥으로 활용 가능
- 단어를 벡터 형태로 수치화시키는 딥러닝 방법으로 텍스트 같은 비정형 데이터를 좌표평면에 나타낼 수 있음.
위치상의 벡터를 통해서 연산이 가능하게 되고 이 숫자들로 문맥에 활용할 수 있게 된다.
2. word2vec의 원리
word2Vec 프로세스
- Input Corpus : 문장의 양이 가장 중요하다. 양이 많아야 정밀한 분석이 가능하다. 양이 많으려면 하드웨어, 자료의 수집 2개가 확보가 되어야한다.
- Vocabulary Builder : 있는 단어에 대한 사전이 구축이 된다. 단어 뿐 아닌 토큰화된 어근들이 들어가게 된다.
ex) 밥, 먹다, 학교 - Context Builder : 단어들간의 연계를 통해 문맥의 구성을 만들게 된다.
Vocabulary Builder와 Sentence Windows가 합쳐져서 만들어지는데. 이때 Sentence Windows는 “밥-먹다”, “학교-가다”와 같이 발생할 수 있는 단어를 문장적 윈도우라고 한다. - CBOW, Skip-gram 2개의 방식 중 하나로 들어가게 된다.
CBOW - 여러 단어가 주어졌을때 여러문장에서 한 단어가 찾아짐. ex) __ 먹다, __ 타다, ___ 사다 = 공통으로 들어갈 말 ‘배’
Skip-gram - 한 단어에서 나타날 수 있는 앞뒤의 단어를 찾아가는 것.
ex) 배를 ( ), 아침을 ( ), 약을 ( ) 공통으로 들어갈 말이 ‘먹다’ - Input Words : Context Builder(문맥 데이터)를 통해서 CBOW, Skip-gram 중 방식을 정하면 Input 데이터를 정한다. 이후 학습을 통해서 단어가 나타날 확률을 좌표값으로 구하게 된다.
좌표 상에 나타난 위치가 나타날 수 있는 확률값들을 수백개의 차원으로 나타낸 다음 그것들이 같이 나타날 확률값이 있고 다르게 나타날 것들이 반대에 위치하고 축이라는 차원들의 관계를 통해서 밥을 먹다, 배를 먹다 이런 관계들을 대칭으로 만들어 문맥을 파악할 수 있게 하는게 word2Vec의 장점이다.
댓글남기기