9. Embedding

2023. 11. 30. 12:24NAVER AI Tech/Recommen System

Embedding : 주어진 데이터를 낮은 차원의 벡터로 만들어서 표현하는 방법

- Latent와 동일하다고 생각해도 된다.

- 보통 one-hot encoding을 통해 단어를 벡터화 한 후(이것을 sparse representation이라고 한다) embedding을 통해 조금 더 압축된 벡터로 표현한다(이것을 dense representation이라고 한다)

- 비슷한 의미를 가진 단어라면 embedding vector 또한 거리가 가깝다고 볼 수 있다.

- embedding을 표현하기 위해서는 학습 모델이 필요함! 잘 나타내기 위한 방법론을 고민.

 

Word2Vec : word to vector(embedding) 표현 모델.

- 학습 방법으로는 CBoW, Skip-Gram이 있다.

 

CBoW(Continuous Bag of Words)

- 중심 단어 예측

- 주변 단어 n개를 가지고 중심 단어 예측

N=1인 경우 좌 우로 한 단어씩 들어가서 (1,M) vector가 두개 생성된다.
생성된 (1,M) vector의 평균으로 fox라는 단어를 예측한다.

 

 

Skip-Gram

- 주변 단어 예측

- (1,M) vector의 평균을 구하는 과정이 없다.

- 일반적으로 CBoW보다 성능이 좋다고 알려져있음.

input은 단어 1개, output은 주변 단어 2n개

 

Skip-Gram with Negative Sampling(SGNS)

- Skip-Gram은 주변 단어만을 예측하도록 하였는데, Negative Sampling을 통해서 주변단어 인지 아닌지 이진 분류 문제로 바꿈.

- Negative Sampling이란 우리 목적에 맞지 않는 데이터를 일부러 데이터셋에 포함시키는 과정.

- Negative Sampling 개수가 모델의 하이퍼 파라미터. positive 1개당 데이터가 적을 경우 5~20, 클 경우 2~5개가 적당하다고 함.