언어모델

 

  • 목표 : 문장이 일어날 확률을 구하는 것
  • 왜 필요한가?
    • 기계번역 (machine translation)
    • 맞춤법 검사 (spell correction)
    • 음성인식 (speech recognition)
  • 언어모델(Language Model) : 연속적 단어들(sequence of words)에 확률을 부여하는 모델
    • P(W) = P(w_1, w_2, w_3 ..., w_n)
  • 관련된 일 : 연속적 단어들이 주어졌을 때 그 다음 단어의 확률을 구하는 것
    • P(w_n | w_1, w_2, ..., w_(n-1))

P(W) 구하기

 

  • 결합확률(joint probability) 구하기
    • P(its, water, is, so, transparent, that) => Chain rule을 사용해보자.
    • Chain Rule
      • 조건부 확률

        P(B | A) = P(A, B) / P(A)
        P(A, B) = P(A)P(B | A)
      • 두 개 이상 확률 변수들의 경우

        P(A, B, C, D) = P(A)P(B | A)P(C | A,B)P(D | A,B,C)
        P(A, B, C)P(D | A, B, C) = P(A, B)P(C | A, B)P(D | A,B,C)
      • 일반적인 경우

        P(x_1, x_2, ..., x_n) = P(x_1)P(x_2 | x_1)P(x_3 | x_1,x_2)...P(x_n | x_1, x_2, ..., x_(n-1))
      • P("its water is so transparent") =
        P(its) * P(water | its) * P(is | its water) * P(so | its water is) * P(transparent | its water is so)
      • 조건부 확률 P(w | h(history))

        P(the | its water is so transparent that) =
        Count(its water is so transparent that the) / Count(its water is so transparent that)
        • 가능한 문장의 개수가 너무 많고, 이를 계산할 수 있는 충분한 양의 데이터를 가지지 못할 것이란 문제가 있음.
    • Markov Assumption
      • 한 단어의 확률은 그 단어 앞에 나타나는 몇 개 단어들에만 의존한다는 가정
      • P(the | its water is so transparent that) ≈ P(the | that)
        p(the | its water is so transparent that ≈ P(the | transparent that)
      • Unigram 모델 : 단어가 나타날 확률은 이전의 단어에 의존하지 않는다는 극단적 모델 
      • Bigram 모델 : 단어가 나타날 확률은 바로 이전의 단어에만 의존한다.
        • 확률 계산
          • Maximum likelihood estimation
      • N-gram 모델
        • trigrams, 4-grams, 5-grams로 확장가능
        • 멀리 떨어진 단어들간의 관계(long-distance dependencies)를 완벽히 모델링하진 못함
        • 하지만 많은 경우 n-gram만으로도 좋은 결과를 얻을 수 있음 

모델 평가

 

  • 외재적 평가(exctrinsic evaluation)
    • 언어모델은 일반적으로 그 자체가 목표이기보단 특정 과제(맞춤법 검사 등)를 위한 부분으로서 쓰여지게 된다.
    • 따라서 언어모델이 좋은지 판단하기 위해선 그 과제의 평가지표를 사용하는 경우가 많다.
    • ex) 맞춤법 검사를 위해 두 개의 언어모델 A, B를 사요할 때
      • 각 모델을 사용해 얼마나 정확히 맞춤법 오류를 수정할 수 있는지 계산한다.
      • 정확도가 높은 언어모델을 최종적으로 사용한다.
  • 내재적 평가(intrinsic evaluation)
    • 외재적 평가는 시간이 많이 걸리는 단점이 있다.
    • 언어모델이 학습하는 확률자체를 평가할 수 있다. : Perplexity
    • 이 기준에서의 최적의 언어모델이 최종 과제에서 최적은 아닐 수도 있다.
    • 하지만 언어모델 학습과정에 버그가 있었는지 빨리 확인하는 용도로 사용할 수 있다.
  • 좋은 언어모델이란?
    • 테스트 데이터를 높은 확률로 예측하는 모델
      • Perplexity(PP) : 확률 역수를 단어 개수로 정규화한 값
        • Perplexity를 최소화하는 것이 확률을 최대화하는 것.

'AI > KDT 인공지능' 카테고리의 다른 글

[07/30] NLP : 단어 임베딩  (0) 2021.07.30
[07/29] NLP : 문서분류  (0) 2021.07.29
[07/27] NLP : 텍스트 전처리  (0) 2021.07.28
[07/22] Spark 3  (0) 2021.07.22
[07/21] Spark 2  (0) 2021.07.21

+ Recent posts