logo

[text-mining] 언어 모형

언어 모형 (Language Models)

언어 모형은 문장의 확률을 계산하기 위한 모형입니다. 예를 들어 "배가 고파서 밥을 [ ]"라는 문장이 있을 때 다음에 나올 단어들의 확률은 다음과 같이 생각해볼 수 있습니다.

  • 굶었다
  • 먹었다
  • 마셨다
  • 갔다

문장의 뒤에 나올 단어를 예측할 수 있으면 자연스런 문장을 생성할 수 있게 됩니다.

 

n-gram 언어 모형

언어 모형을 만드는 가장 간단한 방법으로, 텍스트에서 최대 n개까지의 단어 조합 빈도를 세서 각 조합의 확률을 구합니다.

단점:

  • n 단어 이상의 맥락은 고려할 수 없습니다.
  • n이 커질수록 조합이 폭발적으로 증가하여 많은 저장 공간이 필요(storage problem)합니다.
    • 예: 성인이 사용하는 단어 수는 약 10만 개 → n=2이면 100억 조합, n=3이면 1000조 조합.
  • 텍스트가 충분히 많지 않으면, 대부분의 조합은 관찰되지 않아 확률이 0으로 추정될 수 있습니다(sparsity problem).
 

신경망 언어 모형 (Neural Network Language Model, NNLM)

n개의 단어를 입력으로 받아 다음 단어를 예측하는 방식입니다.

  • n개의 단어()를 입력 받아 각각 원핫 인코딩(one-hot encoding)을 합니다.
  • 원핫 인코딩된 단어를 임베딩(embedding)을 통해 변환합니다.
  • 앞먹임 신경망(feedforward neural network)의 은닉층을 거칩니다.
  • 출력층에서 다음에 나올 번째 단어를 예측합니다.
 

n-gram vs. NNLM

Storage Problem:

  • n-gram: 어휘의 종류가 개이면 개의 조합을 저장해야 합니다.
  • NNLM: 임베딩 크기가 , 은닉층 크기가 일 경우 개의 파라미터만 필요하여 저장 공간이 매우 적게 사용됩니다.

Sparsity Problem:

  • NNLM: 비슷한 단어는 비슷한 임베딩을 갖게 됩니다. 말뭉치에 "떡을 먹다"라는 문장이 없어도 "밥을 먹다", "빵을 먹다" 등의 사례를 통해 "떡을 먹다"에도 높은 확률을 주도록 학습할 수 있습니다.

NNLM의 한계:

  • n-gram과 마찬가지로 n개의 단어까지만 반영됩니다.
  • 단어의 위치에 따라 가중치가 달라집니다.
  • n을 키우면 모형이 커집니다. → 이를 극복하기 위해 순환신경망(RNN) 언어 모형이 등장했습니다.
 

순환신경망 (Recurrent Neural Network, RNN)

자연어 처리에서 흔히 사용하는 구조로, 이전 단계의 처리가 이후 입력의 처리에 영향을 주는 구조입니다. 하지만 먼 거리에 떨어진 입력 간에 정보를 전달하려면 여러 단계를 거쳐야 하므로, 정보 전달 과정에서 사라지는 경사(vanishing gradient) 문제가 발생합니다.

 

장기 의존성 (Long-Term Dependencies)

멀리 떨어져 있는 단어들 사이의 관계를 파악하는 문제입니다. 다음에 나올 단어를 예측할 때:

  • "비가 올 것처럼 하늘이 흐리다" → 짧은 맥락만 고려해도 예측이 충분.
  • "나는 어려서 프랑스에서 자랐다. (중략) 그래서 나는 한국어와 프랑스어를 모두 할 수 있다" → 매우 긴 맥락을 고려해야 함.

RNN은 중간의 처리 단계가 너무 많아 장기 의존성을 잘 학습하지 못한다는 한계가 있습니다.

 

주의 메커니즘 (Attention Mechanism)

각 처리 단계에서 꼭 필요한 정보만을 제한적으로 참조하도록 하는 방식입니다. 예를 들어 기계번역에서 "I am a student → 나는 학생입니다" 같은 경우, 영어가 "I"로 시작할 때 한국어는 "나"로 시작하는 것에 크게 주목하게 만듭니다.

처리 방식:

  • 이전의 모든 단계의 출력과 현재 처리 단계의 값을 비교합니다.
  • 비슷한 정도에 따라 주의 가중치를 계산합니다.
  • 이전 단계의 출력에 주의 가중치를 곱하여 현재 처리 단계에 반영합니다.
  • 결과적으로 현재 단계 처리에 필요한 이전 단계의 출력값이 더 많이 반영됩니다.
 

트랜스포머 (Transformer)

주의 메커니즘만을 사용한 Seq2Seq 모형입니다.

  • 인코더(encoder)와 디코더(decoder)로 구성.
  • 짧은 문장뿐만 아니라, 긴 문맥 내 및 문장 간에도 주의 메커니즘을 적용하여 장기 의존성을 파악하는 데 특화되었습니다.

파생형:

  • GPT: 자연어 생성을 담당하는 디코더만 사용합니다.
  • BERT: 자연어 이해를 담당하는 인코더만 사용합니다.
Previous
문턱값과 ROC 곡선