让人困惑的困惑度
发现网络上流传的关于困惑度(perplexity)大多数都是利用了N-gram或者主题模型的例子来阐述的。但是现在这个年代来学习这个指标的人多半都是想研究神经网络的,而两者对困惑度的计算方法又很不同,这就不能不让人对“困惑度”感到“困惑”了。本人虽然才疏学浅,还是斗胆在这里尝试写一篇文章,试图用简洁的方式来梳理清楚其中的困惑。
困惑度的基本定义
首先,困惑度是用来评价语言模型好坏的指标。语言模型是衡量句子好坏的模型,本质上是计算句子的概率:
对于句子s(词语w的序列):
它的概率为:【公式1】公式1
困惑度与测试集上的句子概率相关,其基本思想是:给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好[1],公式如下:
这里想补充一下参考资料里没有强调的一些点根号内是句子概率的倒数,所以显然 句子越好(概率大),困惑度越小,也就是模型对句子越不困惑。 这样我们也就理解了这个指标的名字。
开N次根号(N为句子长度)意味着几何平均数(把句子概率拆成字符概率的连乘)需要平均的原因是,因为每个字符的概率必然小于1,所以越长的句子的概率在连乘的情况下必然越小,所以为了对长短句公平,需要平均一下
是几何平均的原因,是因为其的特点是,如果有其中的一个概率是很小的,