-
Word2vecdeep learning/natural language process 2024. 2. 28. 21:01
WordeVec
CBOW (Continuous Bag of Words)
- 주변에 있는 단어(x)들을 입력으로 중간에 있는 단어(y)들을 예측하는 방식으로, sliding window 방식을 활용한다
- 중심 단어가 예측되는 과정
- 초기 토큰은 원 핫 인코딩으로 표현된다.
- 원 핫 인코딩으로 표현된 각각의 초기 토큰은 projection layer에 전달되며, 이 때 전달되는 값은 원 핫 인코딩으로 표현된 토큰에 가중치 W를 곱한 값들의 평균이다. (이 평균은 window에 의해 select된 단어들의 맥락 정보를 담고 있다.)
- 이 평균 값에 가중치 행렬을 곱한 값에 softmax 함수를 적용한 값은 score vector가 된다.
- 정리
- 주변 단어들의 embedding vector 값을 바탕으로 중심 단어를 예측하는 방식으로 작동
- 주변 단어들의 embedding vector들의 평균이 하나의 context vector를 형성하고, context vector를 사용해서 중심 단어의 확률 분포를 예측하며, 이 score vector와 실제 중심 단어의 원 핫 벡터와의 손실 값 최소화하는 방향으로 학습
- 헷갈리는 점
- score vector : 주변 단어들을 기반으로 각 단어가 중심 단어일 확률을 나타내는 벡터
- embedding vector : 단어의 의미적 특성을 저차원 공간에 표현한 벡터로, 각 단어를 대표하는 벡터. CBOW 모델에서는 중심단어를 사용하지 않고 중심단어를 예측하기 때문에, 주변 단어들의 embedding vector만을 사용한다.
- 학습의 목적이 되는 목적 손실 값은 score vector와 실제 중심 단어의 벡터 값이며, 이 때 실제 중심 단어의 벡터 값은 원 핫 인코딩된 벡터 값이다. (이 때 차원은 vocabulary의 차원과 동일하다)
- score vector는 확률 값으로 구성되어 있다.
Skip-Gram
- 중심 단어(x)를 입력으로 주변 단어(y)들을 예측하는 방식으로 sliding window 방식을 활용한다.
- 주변 단어들을 예측하는 과정
- 중심단어의 embedding vector : 중심단어의 원핫벡터 * W
- 중심단어의 embedding vector * w가 softmax 활성함수를 통과하고, 이를 통해 주변 단어의 score vector가 주변 단어 갯수 만큼 생성되고,
- score vector와 주변 단어의 원 핫 벡터의 손실 값이 최소가 되는 방향으로 학습이 진행
★ Word2Vec의 두 모델의 핵심 architecture는 embedding vector를 활용하여 단어를 예측하는 것.
★ Word2Vec 모델은 간단한 인공신경망 모델이다.
Word Embedding의 목적
- 텍스트 데이터를 Dense Vector로 표현하여 컴퓨터가 이해할 수 있는 형태로 표현
- 단어, 텍스트의 의미적 관계와 유사성을 표현 (자연어 처리 과정에서의 성능 향상을 위함)
최적화 방법
- hierarchical softmax → Fast Text 방법과 관련
- negative sampling → SGNS(Skip-Gram Negative Sampling)과 관련
- 학습 과정에서 전체 단어 집합이 아니라 일부 단어 집합에만 집중할 수 있도록 하는 방법으로, 중심 단어에 대해서 전체 단어 집합보다 훨씬 작은 단어 집합을 만들고, 마지막 단계를 이진 분류 문제로 변환하여 연산량을 크게 줄이는 방법
한계
- 단어의 형태학적 특성을 반영하지 못함 (teach, teachers, teacher를 개별 단어로 처리)
- 희소한 단어의 embedding이 어려움 : 희소한 단어의 충분한 문맥 정보를 학습하기 어려움
- OOV (out of vocabulary)의 처리가 어려움 (새로운 단어가 등장하면 전체를 다시 학습해야하는 문제)
-
'deep learning > natural language process' 카테고리의 다른 글
Attention Background (0) 2024.03.20 DTM과 TF-IDF (0) 2024.02.29