본문 바로가기

Data Science

Word2Vec

Word2Vec

 

◎ 희소 표현 (Sparse Representation)

→ 백터와 행렬의 값이 대부분 0으로 표현됨

ex) One-hot Encoding

 

분산 표현 (Distributed Representation)

단어의 의미를 다차원 공간에 벡터화

→ 분포 가설을 가정함

분포 가설 (distributional hypothesis) : 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다.

 

◎ Word Embedding

→ 분산 표현을 이용해, 단어 간 의미적 유사성을 벡터화 하는 작업

 

◎ Word2Vec

→ Word Embedding 방법 중 하나

→ CBOW와 Skip-gram 두 가지 방법이 있는데, 전반적으로 Skip-gram의 성능이 더 좋다고 알려져있다.

 

 

 

CBOW

 

 

 

출처 : https://wikidocs.net/22660

 

◎ 주변 단어들을 통해, 전체 단어 집합에서 하나의 중심 단어를 분류하는 multi-classification Task

  각 단어의 Embedding Vector를 학습

  W 행렬의 k 번째 행이, 단어 사전에서 k 번째 단어의 Embedding Vector가 된다.

 

◎ 모델 구조

은닉층(=Hidden Layer) 1개인 얇은 신경망이고, ReLU와 같은 활성화함수도 존재하지 않는다.

→ 주변 단어의 갯수만큼 은닉 벡터가 생성되므로, 모두 더해서 평균을 구한 다음 W' 행렬과 연산을 진행한다.

손실함수 : 교차 엔트로피(=Cross Entropy)

 

 

 

Skip-gram

 

 

출처 : https://wikidocs.net/22660

 

 하나의 중심 단어를 통해 , 전체 단어 집합에서 주변 단어들을 각각 분류하는 multi-classification Task

  각 단어의 Embedding Vector를 학습

 

 

 

SGNS (Skip-Gram with Negative Sampling)

 

◎ 네거티브 샘플링(=Negative Sampling)

 주변 단어가 아닌(≒중심 단어와 유사도가 작다고 생각되는) 단어들을 무작위로 샘플링하는 방법

 

 

출처 : https://wikidocs.net/69141

 

◎ 중심 단어 기준으로 주변 단어는 1, 그 외 단어들은 0으로 라벨링(labeling)한다.

 

출처 : https://wikidocs.net/69141

 

◎ 두 개의 Embedding Table을 만들고 학습한다.

왼쪽은 중심 단어의 embedding vector, 오른쪽은 그 외 단어들의 embedding vector들을 학습한다.

→ 단어들의 최종 embedding vector는 하나의 테이블만 쓰거나, 두 테이블을 조합해서 구할 수 있다.

 

◎ SGNS의 장점

→ 기존의 Skip-gram 방식은 one-hot vector로 분류하는 multi-classification Task

    → 단어 집합의 크기가 클수록 one-hot vector의 차원도 커지기 때문에, 학습하기 굉장히 무거운 모델이 될 수 있다.

→ SGNS는 Skip-gram을 0과 1을 분류하는 binary-classification Task로 변환시키기 때문에 훨씬 효율적이다.

 

 


 

< References >

 

※ arxiv, Efficient Estimation of Word Representations in Vector Space

 

※ wikidocs, Word2Vec

 

'Data Science' 카테고리의 다른 글

FastText  (1) 2023.10.08
GloVe  (0) 2023.10.07
TF-IDF  (0) 2023.10.02
텍스트 데이터 전처리 (Text Preprocessing)  (0) 2023.10.02
Central Limit Theorem (중심극한정리)  (0) 2023.07.16