본문 바로가기

DATA SCIENCE/NLP

[NLP] 임베딩(Embedding) 방식의 종류

이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다.

지난 포스트에서 모델에게 자연어를 입력하기 위해 임베딩을 실시한다는 내용을 다뤘다. 그렇다면 이 임베딩은 어떻게 만들까? 문장에 많이 쓰인 단어가 무엇인지, 어떤 순서로 등장하는지, 어떤 단어가 같이 나타나는지 등에 따라 임베딩이 진행되는데, 그 종류에 대해 알아보자.

Bag of Words : 문장에 많이 쓰인 단어는?

주제가 비슷한 문서는 등장하는 단어도 비슷할 것이다. 즉, 단어 순서와 상관없이 많이 등장하는 단어는 그 주제랑 관련이 있을 것이다. 이러한 전제 하에 만드는 방식이 Bag of Words 임베딩이다.
* Bag : 순서를 고려하지 않고 중복되는 경우를 허용하는 집합

1) TF-IDF(Term Frequency - Inverse Document Frequency)
행에 단어, 열에 문서가 있는 행렬에 가중치를 곱하는 방식이다.

  • TF (Term Frequency) : 특정 문서에서 특정 단어가 등장하는 횟수
  • DF (Document Frequency) : 특정 단어가 등장하는 문서 개수
  • IDF (Inverse Document Frequency) : DF에 반비례하는 값 = log( n / (1+DF) )

2) Deep Averaging Network
신경망 방식으로 진행하며, 문장 임베딩을 입력받아 문서를 분류하는 경우에 사용한다. (논문 참고)

DAN (Deep Averaging Network)

 

언어 모델 (Language Model) : 단어가 등장할 순서는?

단어 순서가 얼마나 자연스러운지 확률을 부여하는 방식이다. 
어떤 문장이 자연스러운지, 이 단어 다음에 어떤 단어가 등장하면 좋을지 단어마다 확률을 매겨 임베딩을 한다.

1) n-gram 모델
corpus 안에서 단어를 n개씩 묶어 등장 횟수를 train시킨 모델이다.
어떤 구문 다음에 어떤 단어가 등장할 확률을 조건부확률을 통해 최대우도추정법(Maximum Likelihood Estimation)으로 유도할 수 있다. 하지만 이럴 경우 해당 구문과 단어가 합쳐진 문장이 존재하지 않을 경우 0으로 수렴하는 문제점이 있다.
이를 해결하기 위한 것이 n-gram 모델이다.

bi-gram 예시

어떤 상태의 확률은 그 직전 상태에만 의존한다는 Markov assumption에 기반하여, 직전 n-1개 단어가 등장할 확률로 해당 문장이 등장할 확률 근사값을 구하는 것이다. 하지만 이 경우에서도 직전 n-1개 단어가 주어진 문서에 존재하지 않을 경우 0으로 수렴할 수 있다. 단지 그럴 경우의 수를 낮춰주는 것이며, 이를 해결하기 위한 방식으로는 백오프, 스무딩 등이 있다.

백오프 (back-off)
n-gram을 n보다 작게 줄여 등장 count 수를 근사
ex : count(이 문장을 백오프 해볼까요) ≒ α*count(백오프 해볼까요) + β

스무딩 (add-k smoothing)
모든 등장 count에 k만큼 더함

2) Neural Network 기반
인공신경망을 통해 모델링한 것으로, 대표적인 예시로 ELMo, GPT, BERT 등이 있다.

마스크 언어 모델 (Masked Language Model)
문장 중간에 들어갈 단어를 예측하는 과정 양방향(bi-directional) 학습 (BERT)

 

분포 가정 (Distributional Hypothesis) : 같이 쓰인 단어는?

어떤 단어가 같이 쓰였는지를 나타내는 것을 분포라고 한다. 분포 가정은 이러한 분포 정보를 함축하면, 단어 의미를 포함하게 될 것이라는 가정 하에 만들어진 임베딩 방식이다.

분포
특정 범위(window) 내 등장하는 이웃 단어(문맥) 집합


분포 가정

어떤 단어들이 비슷한 문맥에서 자주 나타난다면, 의미도 비슷할 것이라고 가정 (문맥으로 단어 의미를 파악할 수 있을 것이라고 가정)

1) 점별 상호 정보량 (PMI : Pointwise Mutual Information)
두 확률변수 사이 상관성을 수치화할 때 사용하는 단위로, 여기에서는 두 단어가 같이 등장하는 정도를 수치화한 값이다.

2) Word2Vec
분포 가정의 대표적인 모델로, 신경망을 이용하여 학습시킨다.

  • CBOW 모델 : 주변 단어로 중간 단어를 예측하는 과정으로 학습
  • Skip-gram 모델 : 중간 단어로 주변 단어를 예측하는 과정으로 학습

 

반응형