Generative AI/Language Model

[NLP] 통계적 언어 모델(Statistical Language Model, SLM)

데이터 세상 2021. 4. 12. 12:51

Language Model

  • 언어를 이루는 구성 요소(글자, 형태소, 단어, 단어열(문장), 문단 등)에 확률값을 부여하여 이를 바탕으로 다음 구성 요소를 예측한거나 생성하는 모델

통계적 언어 모델(Statistical Language Model, SLM)

  • 단어열이 가지는 확률 분포를 기반으로 각 단어의 조합을 예측하는 전통적인 언어 모델
  • 모델의 목표는 실제로 많이 사용하는 단어열(문장)의 분포를 정확하게 근사하는데 있음

조건부 확률(conditional Probabilities) 언어 모델

조건부 확률을 기준으로 글자나 형태소의 결합 확률을 기반으로 모델링

  • corpus 내에서 각 단어들의 조합이 나오는 횟수를 카운트한 후 이에 기반하여 확률을 계산
    • 스마트폰의 자동 완성

N-gram 언어 모델

문장 내 단어는 주변의 여러 단어와 연관되는 경우가 많기 때문에 게산의 정확도를 위해 특정 단어가 주변에 있는 몇 개의 단어와 연관된다고 가정하는 것

N-1차 마르코프 가정

특정 단어가 등장하는 확률을 계산할 때에 이전 N-1개의 단어가 등장하는 확률만을 고려

  • 1-gram(유니그램, unigram): 이전 0개의 단어를 고려, 모든 단어는 독립적이라고 봄
  • 2-gram(바이그램, bigram)
  • 3-gram(트라이그램, trigram)
  • 4-gram

N값 선택

  • 데이터셋과 과제에 따라 적절한 N을 선택해야 함
  • 계산 효율성 측면에서도 고려되어야 함
  • N=3인 모델을 주로 사용

SLM 한계

  • 테스트 데이터셋이 훈련 데이터셋과 유사해야 예측 성능이 좋아짐
    • N이 증가할수록 문장은 훈련에 사용된 코퍼스와 지나치게 유사해짐
  • 희소성 문제(Sparsity Problem): corpus에 없는 특정 단어열의 경우 확률이 0이 되면서 정확한 모델링이 어려움

로그 확률(Log probabilities)

  • 언어 모델에서 확률을 계산할 때는 원래의 확률값에 로그를 취하는 로그 확률을 사용하는 것이 보편적
  • 언더플로(underflow)를 피하기 위함
    • 언더플로: 부동 소수점 연산에서 컴퓨터가 표현할 수 있는 것보다 작은 값이 발생하여 계산 결과를 표시할 수 없는 상태

Generalization

한정된 코퍼스 내에서 모델의 일반화 능력을 향상시키기 위한 일반화 기법 적용

Smoothing

  • 코퍼스 내에 존재하지 않는 단어 조합, 즉 모델이 한번도 본 적 없는 단어 조합(unseen n-gram)에 대해 특정 값(α)을 부여하여 확률 분포에 약간의 변화를 주는 방법
  • α는 0보다 크고 1보다 작거나 같은 상수로 지정(0<α≤1)
  • 모든 단어열이 일정한 값을 가지게 되므로 코퍼스에 없는 단어열 때문에 전체 문장의 확룰 0이 되는 문제 방지

라플라스 스무딩(Laplace smoothing)

  • α 값을 1로 지정하는 방법
  • N-gram과 같이 희소 문제가 큰 언어 모델에서는 계산을 거듭할수록 원래 단어이 빈도수에서 크게 벗어나는 문제 야기되어 비효율적

보간법(Interpolation)

  • 특정 N-gram의 확률을 이전 N-gram의 확률과 섞음으로써 일반화를 꾀하는 것
  • 3-gram 모델에서 특정 단어의 확률을 구할 때 2-gram, 1-gram 모델의 확률까지 모두 구하고 일정한 비율의 가중치를 각각 곱한 후 모두 합함

Back Off

  • 보간법과 유사하게 여러 N-gram을 고려하지만, 모두 합하지 않는다는 점에서 차이가 있음
  • 3-gram 확률이 있을 경우(빈도수가 0 초과인 경우) 3-gram 확률 사용, 3-gram 빈도가 0이지만 2-gram에 대한 빈도가 0 초과인 경우 2-gram, 그마저도 아닌 경우 1-gram 모델의 확률을 사용하는 방식

Good-Turing Smoothing

 

Kneser-Ney Discounting

 

Witten-Bell Smothing

 

모델 평가

내부 평가(Intrinsic Evaluation)

  • 짧은 시간 안에 간단히 모델을 평가할 때 모델 내에서 성능을 자체적으로 평가하는 방법

Perplexity(PPL)

  • 언어 모델에서 모델이 선택할 수 있는 경우의 수를 의미하는 분기계수(branching factor)
  • 주어진 확률 모델이 샘플을 얼마나 잘 예측하는가에 대한 측정 지표
  • PPL 점수가 낮을수록 좋은 모델

 

 


References

반응형