Skip to content
e9t edited this page Dec 11, 2014 · 4 revisions

5.1. Introduction

  • Language model은 주어진 word sequence W = [w1, ..., wn]의 generative probability를 나타내는 방법으로, 간단히 말하면 'word sequence가 얼마나 말이 되느냐?'를 표현하는 방법이다.

  • Language model은 다양한 상황에서 사용되지만, 공통적으로는 주어진 input (word sequence or hypothesis)의 정합성을 판단해야하는 상황에서는 두루 이용될 수가 있다.

    • machine translation
      • 기계번역에서는 번역된 여러 개의 문장 후보 (translation hypothesis) 중 어떤 후보가 가장 말이 되는지를 판단한다.
      • 예를 들어, [i, am, a, boy]를 번역하였을 경우 [나, 이다, 소년], [나는, 이다, 소년], [나는, 소년, 이다] 중에서 가장 말이 되는 문장을 고른다.
    • document classification/clustering
      • Language model; L은 주어진 문서집합에서 말이 되는 표현들을 잘 담아둔 보따리로 생각할 수 있다.
      • 각 class(i) 마다 L(i)를 학습한 뒤, 새로운 문서 D = [s(1), ..., s(m)]의 문장들 s(j)에 대하여 각각 L(i)로부터 문장 발생확률을 계산하여 argmax(i):L(i,s(j))를 찾는다. 이 때 i는 s(j)가 가장 나올법한 class가 된다.
      • 만약 문서들의 class마다 L을 학습하는 것이 아니라, 각 문서마다 L을 학습한다면, L(i,D(j))는 문서 D(i)로부터 다른 문서 D(j)의 문장들이 얼마나 말이 되는지를 측정하는 것이고, 이를 문서간 유사도로 이용할 수 있다.
    • authorship/plagiarism identification
      • 문서집합의 class를 작가로 설정할 경우, 작가 특유의 말투나 그 작가가 자주 사용하는 구문들이 L에 저장되고, 이로부터 새로운 document input이 어떤 작가인지 알 수 있다.
      • 문서 전체가 아니라 한 문장에 대하여 확률을 계산하면 특정 부분이 다른 어떤 문서에서 인용된 것인지 알 수 있다.
    • optical character recognition (OCR) / phonemes recognition
      • 음성인식과 글자인식 모두 signal로부터 어떤 word sequences를 가설로 만들게 된다.
      • 즉 signal을 X라 하고, 가설을 H라 할 때, P(H|X)는 학습데이터로부터 구축할 수 있지만, 정작 H가 말이 되는지에 대하여 언어적 지식이 필요하다
      • 그렇기 때문에 가설검증 과정을 거쳐 argmax(H):P(H)P(H|X)를 주로 이용한다.

5.2. n-gram model

  • P(W) = P(w(1), ..., w(n)) = { c( w(1), ..., w(n) ) / N } 에서 n이 클수록 대부분의 w(1), ..., w(n)은 한 번 등장하게 될 것이다.
  • 또한 문맥을 고려한 문장의 확률을 P(w(1)) * { Multiply(i=1 to t) P(w(i)|w(i-1), ... w(2), w(1)) }로 정의할 경우, n번째의 단어의 사전 문맥이 n-1개의 단어를 필요로 하고, 이러한 문맥 역시 한 번 겨우 등장하게 된다 (즉 정보력이 없다).
  • 실제로 문맥은 한 단어의 주변 몇 단어만으로도 어느 정도 표현이 되기 때문에 chain-rule (Markov property)를 이용하여 n-gram approximation을 한다.
    • Multiply(i=1 to t) P(w(i)|w(i-1), ... w(i-n+1))

5.3. Language model evaluation

(이 부분은 Speech and language processing, Jurafsky & Martin, 2nd를 참고함)

  • 문서집합으로부터 학습된 L이 얼마나 잘 학습이 됬는지 판단하기 위하여 두 가지 평가 방법이 이용된다.
    • extrinsic evaluation
      • 학습에 이용되지 않은 테스트데이터로부터 실제로 정상문장을 잘 가려내는가?
      • 실제 어플리케이션의 품질 테스트 등
    • intrinsic evaluation
      • perplexity
        • The intuition of perplexity is that given two probabilistic models, the better model is the one that has a tighter fit to the test data or that better predicts the details of the test data
        • the higher the conditional probability of the word sequence, the lower the perplexity. Thus. minimizing perplexity is equivalent to maximizing the test set probability according to the language model.
        • (Wall Street Journal, 19,979 word vocabulary) perplexity(Unigram = 962, Bigram = 170, Trigram = 109)
        • 위 결과는 WSJ의 경우 unigram보다는 bigram이 연속된 두 단어의 구문을 표현하는데 적합하며, 이보다는 trigram이 연속된 세 단어의 구문을 표현하는데 적합함을 의미.
        • n-gram의 n이 지나치게 커질 경우 conditional probability의 문맥으로 이용되는 {w(i-1), ..., w(i-n+1)}의 경우의 수가 증가하기 때문에, perplexity가 높아질 수 있음

5.4. Parameter estimation

5.4.1 Maximum-likelihood estimation and smoothing

  • language model에서 P(w(i)|w(i-1),w(i-2)) = c(w(i),w(i-1),w(i-2)) / c(w(i-1),w(i-2))
  • W = [w(1), ... w(10)]은 말이 되는 문장이지만, 유독 w(2),w(3),w(4) 만 말이 안되는 sub sequence라면, P(W)를 왜곡하게 됨
  • smoothing은 일부분의 sub sequence의 확률이 0이 되는 것을 방지하는 방법
  • smoothing techniques
    • backoff
      • interpolation과 다름
      • backoff는 c(w(i),w(i-1),w(i-2)) < threshold 일 경우, context를 [w(i-1),w(i-2)]가 아닌 [w(i-1)]로, observation을 [w(i),w(i-1),w(i-2)]가 아닌 [w(i),w(i-1)]로 줄여서 0을 방지.
      • 단 decaying cost를 부여하여 정확하게 [w(i),w(i-1),w(i-2)]를 찾지 않는 비용을 보상
    • Laplacian smoothing
      • P(w(i)|(w(i-1),w(i-2)) = { c(w(i),w(i-1),w(i-2)) + 1 } / { c(w(i-1),w(i-2)) + K }
      • 한 번도 등장하지 않은 단어는 이 세상에 딱 한 번만 등장하기 때문에 이를 고려 (마침 테스트 시점에 등장한 것)
      • K는 이 세상에 존재할 수 있는 모든 context word sequences를 의미.
    • other techniques
      • Good-Turing
      • Witten-bell
      • Kneser-Ney smoothing (가장 널리 이용됨)