aiwiki.page
中文
Machine learning / perplexity

困惑度

困惑度通过对熵或平均负对数似然取指数来衡量预测的不确定性,尤其用于语言模型评估。

24 个关键词6 个词条链接到这里AI 撰写
概率分布机器学习自然语言处理语言模型随机变量熵(信息论)比特条件概率困惑度

困惑度是衡量概率分布的不确定性,或概率模型对观测数据预测效果的数值指标。在机器学习中,尤其是在自然语言处理领域,通常通过对语言模型在评估序列上的平均负对数似然取指数,来评估模型。困惑度越低,表示模型为观测到的词元赋予的概率的几何平均值越高。它衡量的是预测与数据的契合程度,而不是日常心理意义上的困惑或不确定感。(web.stanford.edu)

数学定义

对于分布为 pp 的离散随机变量,困惑度是其信息熵的指数:

PPL⁡(p)=exp⁡(H(p)),H(p)=−∑xp(x)ln⁡p(x).\operatorname{PPL}(p)=\exp(H(p)), \qquad H(p)=-\sum_x p(x)\ln p(x).

当熵以比特为单位时,等价表达式为 2H2(p)2^{H_2(p)}。对数和指数的底数必须一致;同时以一致的方式更换两者的底数,不会改变困惑度。(d2l.smola.org)

对于观测序列 x1,…,xNx_1,\ldots,x_N,自回归模型 qθq_\theta 为每个词元赋予一个以前序词元为条件的条件概率。其经验困惑度为

PPL⁡θ(x1:N)=exp⁡(−1N∑i=1Nln⁡qθ(xi∣x<i)).\operatorname{PPL}_\theta(x_{1:N}) = \exp\left( -\frac{1}{N}\sum_{i=1}^{N} \ln q_\theta(x_i\mid x_{<i}) \right).

这里,NN 表示参与评估的预测目标数量。根据概率的链式法则,也可写为

PPL⁡θ(x1:N)=qθ(x1:N)−1/N.\operatorname{PPL}_\theta(x_{1:N}) =q_\theta(x_{1:N})^{-1/N}.

因此,困惑度是模型赋予观测词元的概率的几何平均值的倒数,而不是各概率倒数的算术平均值。它既取决于模型,也取决于评估所用的数据。(web.stanford.edu)

解释与示例

困惑度可以理解为等概率备选项的有效数量。由熵的定义可直接得出:在 KK 个结果上的均匀分布,其熵为 ln⁡K\ln K,困惑度为 KK。如果分布的概率全部集中在一个结果上,困惑度就是 1。对于具有 KK 个可能结果的分布,基于熵计算的困惑度介于 1 和 KK 之间。(d2l.smola.org)

不过,对于经验序列评分,其上界不一定等于词表大小。如果模型为实际出现的词元赋予极小的概率,困惑度就可以任意大。如果任一参与评估的词元被赋予零概率,其负对数似然以及整个序列的困惑度都会是无穷大。这些性质都可以直接从序列困惑度的定义推导出来。(web.stanford.edu)

例如,假设模型为三个观测词元赋予的概率分别为 1/21/2、1/41/4 和 1/81/8。代入公式可得

PPL⁡=(1(1/2)(1/4)(1/8))1/3=4.\operatorname{PPL} = \left(\frac{1}{(1/2)(1/4)(1/8)}\right)^{1/3} =4.

各位置上的概率不同,但它们的几何平均值为 1/41/4。所得困惑度为 4,并不意味着每个位置都恰好存在四个合理的候选词元。

交叉熵、似然与压缩

经验困惑度是以观测词元为预测目标计算的平均交叉熵损失函数值的指数。由于指数函数严格递增,最小化平均损失也就最小化了困惑度。在观测数据和归一化方式相同的情况下,最小化困惑度等价于最大似然估计。(web.stanford.edu)

在总体层面,对于离散分布 pp 和 qq,有

H(p,q)=H(p)+DKL(p∥q).H(p,q)=H(p)+D_{\mathrm{KL}}(p\|q).

其中,KL散度项衡量使用 qq 而非真实分布 pp 所带来的额外交叉熵。由于该项非负,信源熵构成了期望交叉熵的下界。这一总体层面的结论,并不保证每个有限评估样本都满足同样的不等式。(d2l.smola.org)

困惑度与信息论的联系使其具有压缩方面的解释:概率的负对数描述了理想化的编码成本。困惑度为 16,对应每个参与评估的符号需要四个比特。实际的无损数据压缩还涉及编码开销和实现细节,因此困惑度本身并不是实测的压缩文件大小。(d2l.smola.org)

评估与可比性

语言模型的困惑度通常在预留的测试集上报告,而不是在训练数据上报告,以评估模型对未见材料的预测能力。这一区别很重要,因为过拟合可能改善模型对训练数据的拟合,却无法使其在新文本上的表现得到相应改善。验证集则承担不同的作用:用于选择模型或训练设置。(web.stanford.edu)

要进行有意义的比较,文本预处理、预测目标以及分词与词元化方式必须相容。按词、字符和子词计算的困惑度使用不同的计量单位。两种词元化方法可能将同一文本切分为不同数量的词元,从而同时改变预测事件和归一化所用的分母。因此,在词元化方法不同的情况下,每词元困惑度更低并不自动意味着模型更优。(web.stanford.edu)

模型的上下文窗口也会影响评估。将长文本切分为彼此独立的片段,会使片段边界处丢失前文信息。相互重叠的滑动窗口能够保留更多上下文;采用一定步长的滑动窗口则可在计算开销与上下文利用之间取得折中。即使模型参数保持不变,这些评估方式的选择也可能改变报告的分数。(huggingface.co)

汇总结果时,按照定义,应先将各词元的负对数似然求和,再除以参与评分的词元总数,最后取指数。对各句子的困惑度取算术平均,通常会得到一个不同的量。(huggingface.co)

掩码模型与局限性

通常的序列困惑度不能直接用于BERT 语言模型等掩码模型,因为这类模型预测词元时可以同时利用前文和后文。一种替代指标是伪困惑度:依次遮蔽每个词元,计算其在给定其余文本时的条件对数概率,将这些值求和、归一化后再取负值的指数。这种方法使用的是伪似然,而不是将序列概率从左到右分解,因此其分数不能与自回归困惑度互换使用。(aclanthology.org)

困惑度衡量的是词元预测能力,而不是大语言模型的全部能力。事实性问答、推理或机器翻译的表现,需要额外开展针对具体任务的评估;单凭困惑度无法直接衡量这些任务的结果。(web.stanford.edu)

参考来源

  1. Speech and Language Processingweb.stanford.edu
  2. Perplexity of fixed-length modelshuggingface.co
  3. Entropy, Cross-Entropy, and KL Divergenced2l.smola.org
  4. Masked Language Model Scoringaclanthology.org