워드 임베딩_Word2Vec

taetae·2023년 3월 1일

워드임베딩 이전

워드임베딩 이전에는 원핫 인코딩을 이용해 단어와 문서를 벡터화 하고, bow를 만들었습니다. 하지만, 원핫 인코딩은 희소 표현으로 매우 높은 차원들을 갖게 되고 오버 피팅의 위험이 있습니다. 또한, 원핫 벡터는 모든 단어간의 거리가 같기 때문에 단어간의 의미의 유사도를 계산할 수 없다는 단점이 있습니다.

따라서, 이를 극복하기 위해 고안된 방법으로 워드 임베딩이 나오게 되었습니다.워드 임베딩이란 단어를 주어진 차원의 실수 벡터로 표현하는 dense representation (밀집 표현) 방법입니다.

차원을 제한하기 때문에 단어 간의 거리가 서로 달라질 수 밖에 없고, 따라서 단어간의 관계(거리)가 생깁니다. 따라서 단어의 의미(semantic)을 이용해서 유사한 단어를 보다 가깝게 매핑할 수 있습니다.

예를 들어, water와 juice의 거리를 water와 phone의 거리보다 더 가깝게 나타낼 수 있습니다. (유사도의 개념 부여)

Word2Vec

Word2Vec은 워드임베딩의 방법중 하나입니다. 이는 단순한 형태의 신경망을 이용해서 주어진 단어와 관계가 있는 단어를 학습하여 단어를 일정한 실수 벡터로 projection하는 방법입니다.

Word2Vec은 CBOW(continuous Bag of Words)와 Skip-Gram의 두가지 학습 방식을 갖고 있습니다. CBOW는 주변에 있는 단어들을 입력으로 중간에 있는 단어들을 예측하는 방법이고 Skip-Gram은 중간에 있는 단어들을 입력으로 주변 단어들을 예측하는 방법입니다.

CBOW : 주변 단어들로 부터 중심단어를 예측하는 것

용어

주변단어: context word, 중심단어 ceenter word
앞, 뒤로 몇 개의 단어를 볼지를 결정해야 하는데 이 범위를 윈도우(window)

입력층(Input layer)의 입력으로서 앞, 뒤로 사용자가 정한 윈도우 크기 범위 안에 있는 주변 단어들의 원-핫 벡터가 들어가게 되고, 출력층(Output layer)에서 예측하고자 하는 중간 단어의 원-핫 벡터가 레이블로서 필요합니다.

은닉층이 1개인 얕은 신경망으로 존재합니다.
또한 Word2Vec의 은닉층은 일반적인 은닉층과는 달리 활성화 함수가 존재하지 않으며 룩업 테이블이라는 연산을 담당하는 층으로 투사층(projection layer)이라고 부르기도 합니다.

가중치 행렬을 계속해서 업데이트 해나가는 방식으로 진행

SKip - gram

Skip-gram은 중심 단어에서 주변 단어를 예측합니다.

중심 단어에 대해서 주변 단어를 예측하므로 투사층에서 벡터들의 평균을 구하는 과정은 없습니다.
Skip-gram이 CBOW보다 성능이 좋다고 합니다!

profile
interested in Data Science & AI

0개의 댓글