(一) Perplexity
困惑度(Perplexity,缩写为PPL)是衡量语言模型好坏的一个常用指标。
语言模型(language model)是用来预测句子中的next word的概率分布(probability distribution),并计算一个句子的概率。一个好的语言模型,应该给well-written 的句子更高的生成概率,阅读这些句子不应该让人感到困惑。
困惑度的定义:
p e r p l e x i t y ( W ) = P ( w 1 w 2 . . . w n ) − 1 N perplexity(W)=P(w_1w_2...w_n)^{-\frac{1}{N}} perplexity(W)=P(w1w2...wn)−N1
在语言模型在测试集 W = { w 1 , w 2 , . . . , w N } W=\{w_1, w_2, ..., w_N\} W={
w1,w2,...,wN}上的困惑度,是测试集的逆概率,然后用单词数量进行归一化。
核心思想是,句子的概率越大,其困惑度越小,说明语言模型越好。
(二)Perplexity with Example
假设我们的语言模型,词表只有[“a”, “the”, “red”, “fox”, “dog”, “.”] 六个词。
下面计算“a red fox.”这句话 W W W的概率。
P ( W ) = P ( w 1 w 2 . . . w n ) P(W)=P(w_1w_2...w_n) P(W)=P(w1w2...wn)
所以:
P ( a r e d f o x . ) = P ( a ) ∗ P ( r e d ∣ a ) ∗ P ( f o x ∣ a r e d ) ∗ P ( . ∣ a r e d f o x ) P(a\ red\ fox.)=P(a)*P(red|a)*P(fox|a\ red)*P(.|a \ red\ fox) P(a red fox.)=P(a)∗P(red∣a)∗P(fox∣a red)∗P(.∣a red fox)
假设:
句子中首字的概率如下:
P ( w 1 = a ) = 0.4 P(w_1=a)=0.4 P(w1=a)=0.4
P ( w 1 = t h e ) = 0.3 P(w_1=the)=0.3