자연어처리(NLP) : NPLM

정민수
5 min readNov 8, 2019

2019.11.09

참고 자료

이기창, 한국어 임베딩, 에이콘출판(2019)

Bengio et al., A Neural Probabilistic Language Model, 2003

핵심키워드

  • NPLM
  • word embedding

자연어처리 스터디를 통해 발표했던 워드 임베딩(word embedding) 방법론 중, NPLM과 Word2Vec, fastText, LSA 의 내용을 각각의 내용 별로 정리하고자 한다.

A Neural Probabilistic Language Model — Bengio et al., 2003

기존 언어 모델의 한계

NPLM이 등장한 배경은 기존 통계적인 워드 임베딩 방법의 한계를 극복하는 데에 있다. 모든 모델의 등장이 기존 방법론에 대한 비판으로 부터, 그 단점을 극복하기 위함이기 때문에 기존 언어 모델의 한계를 짚고 넘어가자.

  1. 학습 데이터에 존재하지 않는 n-gram이 포함된 문장이 나타날 확률 값을 0으로 부여

: 단어 등장 빈도를 카운트한 통계적 방법의 워드 임베딩 방식은 위와 같은 큰 약점을 가지고 있다. back-off(n-gram 빈도를 n보다 작은 단어시퀀스로 근사)나 smoothing(모든 단어의 빈도를 일정 수로 더함)와 같은 방법으로 일부 보완할 수 있지만 완전히 극복하기 어렵다.

2. 문장의 장기 의존성(Long-term dependency)을 포착하기 어렵다.

: n-gram에서 n이 커질수록 그 등장확률이 0인 단어 시퀀스가 기하급수적으로 늘어나기 때문에 장기 의존성(Long-term dependency)를 포착할 수 없는 문제가 생긴다.

3. 단어/문장 간 유사도를 계산할 수 없다.

: 단어 등장 빈도를 가지고 임베딩에 적용하기 때문에 의미 유사도를 계산할 수 없다는 단점이 있다.

기본 아이디어

NPLM의 기본 아이디어는 직전까지 등장한 n-1개의 단어들로 다음 단어를 맞추는 n-gram 언어 모델이다. 위에서의 예시처럼, “발 없는 말이 천리 간다” 라는 문장이 있을 때, n=4, t=4 인 4-gram을 만들면, 발, 없는, 말이, ??(t=4)의 데이터셋을 만들 수 있다. n은 gram 수, t는 단어가 몇 번째에 위치하고 있는지의 인덱스 값이다.

NPLM의 학습 구조를 보면, 초기 행렬 C의 원소 값을 랜덤으로 할당한 다음, 각 단어에 해당하는 원-핫 벡터를 행렬 C와 내적한다. 내적하는 과정을 자세히 보면 단어의 인덱스에 해당하는 원-핫 벡터를 내적하기 때문에 행렬 C에서 그 인덱스에 해당하는 열을 그대로 가져오는 효과가 있다. 따라서 이 과정을 Look-up table이라는 용어로 많이 사용한다.

일단 n-1개의 단어들 각각의 원-핫 벡터를 행렬C와 내적한 결과를 이어 붙인다(concatenate). 이렇게 만들어진 x벡터가 모델의 입력으로 input layer, hidden layer, output layer를 거치게 된다.

위에서 계산한 score벡터에 소프트맥스 함수를 적용한다. (단어를 예측하는 확률 문제이므로) 그리고 원래 단어의 인덱스와 비교해 loss를 계산하여 역전파하는 방식으로 학습이 진행된다.

NPLM과 의미 정보

위 슬라이드처럼, 코퍼스에서 n=4일 때, walking을 예측하려면 The, cat, is, A, dog, was 라는 단어들이 사용된다. 이 때, walking을 맞추는 과정에서 발생한 손실(train loss)를 최소화하는 그래디언트(gradient)를 받아 각 단어에 해당하는 행들이 동일하게 업데이트 된다. 따라서 이 단어들의 벡터는 벡터 공간에서 같은 방향으로 조금씩 움직인다고 볼 수 있다. (이렇게 단어 벡터를 공간 상에서 생각해보는 것이 이해에 도움이 될 때가 있다.) 결과적으로 임베딩 벡터 공간에서 해당 단어들 사이의 거리가 가깝다는 것은 의미가 유사하다라는 의미로 해석할 수 있다.

정리

NPLM은 기존 n-gram 모델에서 학습 데이터에 한 번도 등장하지 않은 패턴에 대해서는 등장 확률을 0으로 부여해 임베딩이 어려웠던 점을 문맥이 비슷한 다른 문장을 참고해 확률을 부여한다는 점에서 극복했다고 볼 수 있다. 하지만, 학습 파라미터가 너무 많아 계산이 복잡해지고, 자연스럽게 모델 과적합(overfitting)이 발생할 가능성이 높다는 한계를 가진다.

이 한계를 극복하기 위해 다음 임베딩 방법론인 Word2Vec이 등장하였다.

--

--