NLP/AI/Statistics

[cs224n] Lecture 1: Word Vector 1 본문

Stanford Lectures : AI/CS224n

[cs224n] Lecture 1: Word Vector 1

Danbi Cho 2021. 4. 21. 11:24

번역기, 음성인식 등 자연어처리를 이용한 기술들이 일상생활에서 중요한 역할들을 수행하면서 자연어처리 기술이 발전하고 있다. 

 

자연어처리에서 가장 기본이 되는 임베딩에 대한 설명이 우선되는데,

 

각 언어, 단어들을 컴퓨터적으로 어떻게 표현할 것이고 그들 간의 문맥을 어떻게 처리할 것인지가 중요한 요인이 된다. 

 

가장 기본적으로 수행되었던 방법은 one-hot encoding이다. 

 

one-hot encoding은 해당 단어가 속하는 위치 값이 1, 나머지가 0으로 나타내어 해당 인덱스 값이 해당 단어를 의미하도록 한다. 

 

하지만 이러한 방법은 벡터의 크기가 vocabulary 사이즈에 의존적이기 때문에 vocabulary 사이즈가 클수록 벡터의 크기가 늘어나는 문제가 발생한다. 

 

또한, 이는 단어 간의 유사성을 고려하지 못한다. 

 

예를 들어, 

 

motel = [0 0 0 0 0 0 0 0 1 0 0 0]

hotel = [0 0 0 0 1 0 0 0 0 0 0 0]

 

의 값으로 표현된다고 할 때, 

 

사실상 motel과 hotel은 유사한 단어이지만 one-hot encoding을 통한 벡터 끼리는 두 단어가 유사한 단어라는 것을 인지하지 못한다. 

 

이러한 문제를 해결하기 위해 나온 것인 word2vec이다. 

 

word2vec은 주변 문맥 정보를 학습하여 특정 단어에 대한 벡터 값을 구성하도록 하는 임베딩 방법론이다. 

 

word2vec은 위 그림과 같이 into라는 단어를 중심으로 주변 단어들이 등장하는 확률을 계산하여 into 주변에 등장할 단어를 학습한다. 

 

Word2vec은 통계학적 접근방법론으로 주변 단어 혹은 중심 단어의 벡터를 예측하는 것이 아닌, 신경망 구조 기반의 학습을 통해 수행된다. 

 

즉, word2vec은 실제 주변 단어와 신경망 구조에서 학습된 예측 단어에 대한 오차를 최소화시키는 방법으로 모델을 학습 시켜 추후 등장하는 단어에 대한 주변 단어를 예측하도록 한다. 

 

word2vec에는 대표적으로 skip-gram과 CBOW가 있다.

 

skip-gram은 중심 단어로부터 주변 단어들을 예측하는 방법론이고,

 

CBOW는 주변 단어로부터 중심 단어를 예측하는 방법론이라는 점에서 차이가 있다.

 

참고) http://web.stanford.edu/class/cs224n/slides/cs224n-2021-lecture01-wordvecs1.pdf

 

'Stanford Lectures : AI > CS224n' 카테고리의 다른 글

CS224n - START  (0) 2021.04.15
Comments