728x90
반응형
01. 개요
1-1. 임베딩이란?
- 주어진 데이터를 낮은 차원의 벡터로 만들어서 표현하는 방법
- Spare Representation(이진값 벡터)을 Dense Representation(실수값 벡터)으로 표현
1-2. 워드 임베딩이란?
- 텍스트 분석을 위해 단어(word)를 벡터로 표현하는 방법
- 벡터로 표현함으로써, 단어간 의미적인 유사도 계산 가능
- MF도 user latent vector, item latent vector을 이용한 임베딩이라고 해석할 수 있음
02. Word2Vec
- 단어를 예측하는 작업을 수행하기 위해서는 자연스럽게 단어 임베딩을 수행하게 됨 → 임베딩에는 단어의 고유 특징이 저장됨
- 대량의 문자 데이터를 벡터 공간에 투영하여 dense vector로 표현
- 효율적이고 빠른 학습이 가능함
2-1. CBOW (Continous Bag of Words)
- 입출력 사이에 하나의 히든 레이어만 있는 간단한 형태의 Neural Network
- 주변, 즉 앞뒤에 있는 단어 n개로 센터에 있는 단어를 예측 — n은 하이퍼파라미터
- 수식 정리
- $V$ : 단어의 총 개수
- $M$ : 임베딩 벡터의 사이즈
- $W_{V×M}, W’_{M×V}$: 학습 파라미터
- 예측값 $\hat y$ 과 정답 $y$ 의 차이를 최소화 하도록 모델 학습 : Cross Entropy
2-2. Skip-Gram
- CBOW의 입출력층이 반대로 구성된 것
- 일반적으로 CBOW보다 임베딩 벡터의 표현력이 좋다고 함
- 주어진 단어(입력)에 대해서 주변 단어를 예측 → multi class classification
2-3. SGNS (Skip-Gram with Negative Samplilng)
- Skip-Gram에 주변 단어가 아닌 단어(Negative)도 수집하는 것(Sampling)
- 입력 단어 간 기준 단어에 대해서 주변 위치 여부를 예측 → binary classification
- Positive Sample 하나당 Negative Sampling 은 K개 (K개는 하이퍼 파라미터로 학습 데이터가 적으면 5~20, 많으면 2~5)
[예측 및 학습 과정]
- 중심 단어를 기준으로 주변 단어들과 내적 후 sigmoid → 0과 1로 분류
- 역전파(backpropagation)를 통해 임베딩 파라미터 업데이터 업데이트
- 최종 생성된 워드 임베딩은 2개 (중심 단어 선택용 & 주변 단어 선택용)
- 두 워드 임베딩 중 하나만 골라 사용 혹은 평균 사용
03. Item2Vec based on SGNS
- 유저 혹은 세션 별로 소비한 아이템 집합 생성 → 시간, 공간 정보 X → 같은 집합 내 아이템은 모두 유사하다고 가정
- 집합 내 아이템 쌍들은 SGNS의 Positive Sample로 판단
- 모든 단어 쌍을 이용하여 내적 계산 (Skip-gram과의 차이점! — n개만 사용) — 주변 여부! 즉, 유사한 정도를 0과 1로 계산
- t-SNE를 통해 시각화를 해본 결과, 기존 MF (SVD) 방법보다 Item2Vec의 클러스터링 성능이 더 우수함
- 활용 예시
- 아프리카TV Live2Vec (유저의 시청이력 → 라이브 방송)
- Spotify의 Song2Vec (유저의 플레이리스트 → 노래)
- Criteo의 Meta-Prod2Vec (유저의 쇼핑세션 → 상품)
728x90
반응형