0-4評價一個語言模型Evaluating Language Models:Perplexity


有了一個語言模型,就要判斷這個模型的好壞。

現在假設:

  • 我們有一些測試數據,test data.測試數據中有m個句子;s1,s2,s3…,sm

我們可以查看在某個模型下面的概率:image

我們也知道,如果計算相乘是非常麻煩的,可以在此基礎上,以另一種形式來計算模型的好壞程度。

在相乘的基礎上,運用Log,來把乘法轉換成加法來計算。

image

 

補充一下,在這里的p(Si)其實就等於我們前面所介紹的q(the|*,*)*q(dog|*,the)*q(…)…

有了上面的式子,評價一個模型是否好壞的原理在於:

a good model should assign as high probability as possible to these test data sentences.

image,this value as being a measure of how well the alleviate to make sth less painful or difficult to deal with language model predict these test data sentences.

The higher the better.

上面的意思也就是說,如果image的值越大,那么這個模型就越好。

  • 實際上,普遍的評價的指標是perplexity

image

其中,M的值是測試數據test data中的所有的數量。

那么從公式當中查看,可以知道。perplexity的值越小越好。

為了更好的理解perplexity,看下面這個例子:

  • 我們現在有一個單詞集V,N=|V|+1

image

有了上面的條件,可以很容易的計算出:

image

Perplexity是測試branching factor的數值。

branching factor又是什么呢?有的翻譯為分叉率。如果branching factor高,計算起來代價會越大。也可以理解成,分叉率越高,可能性就越多,需要計算的量就越大。

上面的例子q=1/N只是一個舉例,再看看下面這些真實的數據:

  • Goodman的結果,其中|V|=50000,在trigram model的image中,Perplexity=74
  • 在bigram model中,image,Perplexity=137
  • 在unigram model中,image,perplexity=955

在這里也看到了,幾個模型的perplexity的值是不同的,這也就表明了三元模型一般是性能良好的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM