自然語言處理4-4:語言模型之模型評估perplexity
阿新 • • 發佈:2020-09-23
perplexity可以用來評估訓練的語言模型的好壞,其實就是下面這個公式
$$perplexity = 2^{-x}\qquad x表示的是平均的log likelihood,也可以理解為平均的概率啦$$
下面舉一個例子,假設我們有一個測試集如下:
我喜歡喝奶茶
假設我們有一個訓練好的bi-gram模型,對於詞典庫中的每個單詞,通過這個模型可以得到諸如P(單詞2|單詞1)的概率。這裡列出部分概率
P(我)= 0.1 p(喜歡|我)= 0.1 p(喝|喜歡)=0.1 p(奶茶|喝)=0.1
我們可以得到
x = log{P(我)p(喜歡|我)p(喝|喜歡)p(奶茶|喝)} / 4= -4/4 = -1
perplexity = 2^(-x) = 2^(1) = 2
我們知道,似然估計越大越好,也就是說,x越大越好,所以perplexity越小越好,於是我們就可以通過perplexity對語言模型進行優化了。
這裡舉出的例子都非常小,實際上測試集肯定非常大,而且也不限於bi-gram,當然,訓練的模型得到的概率也不可能都是0.1.