语言模型(language model)主要用于根据前文预测下一个出现的单词,进而可判断一句话是否真实合理。语言模型的性能一般用perplexity来进行衡量。本文旨在对ppl指标进行详细的分析
Perplexity定义
信息论中,ppl是一种衡量概率分布或概率模型预测未知样本时的性能指标。ppl数值越小代表概率分布预测性能越好。
离散分布
对于离散分布$p$,其ppl定义如下: \begin{equation} ppl = 2^{H(p)} = 2^{-\sum_{x}p(x)\log_{2}p(x)} \end{equation} 其中$H(p)$为$p(x)$的信息熵
概率模型
假设有一个概率模型,其训练样本是从概率分布$p$(真实分布)抽样得到的,而模型学习到的概率分布为$q$。如果需要通过预测一组同样抽样自$p$的测试样本$x_1,x_2,…,x_N$,来评估该概率模型的性能。那么可以使用如下定义的ppl进行衡量:
\begin{equation}
ppl = b^{-\frac{1}{N}\sum_{i=1}^{N}{\log_{b}q(x_i)}}
\end{equation}
其中$b$一般为$2$
公式理解
一个对未知分布$p$拟合得比较好的概率模型$q$,$q(x_i)$应该比较大,使得式子的指数部分较小,最终得到的ppl应该是较小的。
-
编码长度
指数部分可以看做是对$x_1,x_2,…,x_N$进行编码的平均码长(每个$x_i$的码长公式为$l_i=-\log{}(q(i)))$,性能好的模型表现能较好地压缩测试样本。 -
交叉熵
指数部分也可以看成是真实分布$p$(真实分布$p$为满足所有语料库的分布,无法得到 )的经验分布和预测分布$q$的交叉熵。两分布越接近指数部分就越小,同样ppl越小。
语言模型的理解
在语言模型中,ppl为预测下一个词时,模型认为等效的,可以作为输出的词的个数。此时,$ppl(x_i)$为分布中与$x_i$等效的$x_j$(其他样本)的数目。
等效状态的意义:对于预测分布,$q(x_i)=q(x_j)$,则可以认为$i,j$二者为等效的状态。