본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.
공부하는 습관을 들이자/Deep Learning (NLP,LLM)

[딥러닝 자연어처리] 3. 언어모델 (Language Model)

by 꿀먹은데이터 2023. 12. 4.

딥러닝을 이용한 자연어처리 입문 #3. 언어모델 (Language Model)

언어모델이란?

  • 언어 모델(Languagel Model)이란 단어 시퀀스(문장)에 확률을 할당하는 모델
  • 언어 모델이 이전 단어들로부터 다음 단어를 예측하는 일

자연어 처리에서 단어 시퀀스에 확률을 할당하는 일이 왜 필요할까?

언어 모델은 위와 같이 확률을 통해  보다 적절한 문장을 판단

 

주어진 이전 단어들로부터 다음 단어 예측

  • 단어 시퀀스의 확률

하나의 단어를 w, 단어 시퀀스을 대문자 W라고 한다면, n개의 단어가 등장하는 단어 시퀀스 W의 확률은 다음과 같다

  • 다음 단어 등장 확률

1개의 단어가 나열된 상태에서 n번째 단어의 확률

전체 단어 시퀀스 W의 확률은 모든 단어가 예측되고 나서야 알 수 있으므로 단어 시퀀스의 확률은 다음과 같음

N-gram 언어 모델

  • 통계적 접근을 사용하고 있음
  • 이전에 등장한 모든 단어를 고려하는 것이 아니라 일부 단어만 고려하는 접근 방법
  • 이때 일부 단어를 몇 개 보느냐를 결정하는데 이것이 n-gram에서의 n이 가지는 의미

예를 들어서 문장 An adorable little boy is spreading smiles이 있을 때, 각 n에 대해서 n-gram을 전부 구해보면 다음과 같음

  • 다음에 나올 단어를 예측하고 싶다고 할 때, n=4라고 한 4-gram을 이용한 언어 모델을 사용
  • 이 경우, spreading 다음에 올 단어를 예측하는 것은 n-1에 해당되는 앞의 3개의 단어만을 고려

N-gram Language Model의 한계

  • n을 크게 선택하면 실제 훈련 코퍼스에서 해당 n-gram을 카운트할 수 있는 확률은 적어지므로 희소 문제는 점점 심각해짐.
  • n이 커질수록 코퍼스의 모든 n-gram에 대해서 카운트를 해야 하기 때문에 모델 사이즈가 커진다는 문제점도 있음
  • n을 작게 선택하면 훈련 코퍼스에서 카운트는 잘 되겠지만 근사의 정확도는 현실의 확률분포와 멀어짐, 그렇기 때문에 적절한 n을 선택해야 함.
  • n은 최대 5를 넘게 잡아서는 안 된다고 권장되고 있움.

언어 모델의 평가 방법(Evaluation metric) : PPL

  • 펄플렉서티(perplexity)는 언어 모델을 평가하기 위한 내부 평가 지표
  • PPL이 라고 표현
  • 수치가 높으면 좋은 성능을 의미하는 것이 아니라, '낮을수록' 언어 모델의 성능이 좋다는 것을 의미
  • PPL은 단어의 수로 정규화(normalization) 된 테스트 데이터에 대한 확률의 역수
  • PPL을 최소화한다는 것은 문장의 확률을 최대화하는 것과 같음
  • 문장 W의 길이가 N이라고 하였을 때의 PPL은 다음과 같음

기존 언어 모델 Vs. 인공 신경망을 이용한 언어 모델