这是一系列自然语言处理的介绍,本文不会涉及公式推导,主要是一些算法思想的随笔记录。

信息熵

信息是我们一直在谈论的东西,但信息这个概念本身依然比较抽象。在百度百科中的定义:信息,泛指人类社会传播的一切内容,指音讯、消息、通信系统传输和处理的对象。

但信息可不可以被量化,怎样量化?答案当然是有的,那就是“信息熵”。早在1948年,香农(Shannon)在他著名的《通信的数学原理》论文中指出:“信息是用来消除随机不确定性的东西”,并提出了“信息熵”的概念(借用了热力学中熵的概念),来解决信息的度量问题。

困惑度计算python ppl 困惑度_自然语言处理

信息论知识点小结

困惑度计算python ppl 困惑度_信息熵_02

交叉熵cross-entropy

交叉熵(cross-entropy):我们知道通常深度学习模型最后一般都会使用交叉熵作为模型的损失函数(逻辑回归LR的损失函数就是交叉熵)。

损失函数是计算模型预测值和数据真实值之间的相关性,所以可以使用**相对熵(KL散度)**计算(相对熵用来衡量两个取值为正数函数的相似性)。

困惑度计算python ppl 困惑度_交叉熵_03


其中前一部分的-H(p(x))是p的熵,后一部分就是我们所说的交叉熵:

困惑度计算python ppl 困惑度_困惑度计算python_04

-H(p(x))是不变的,所以我们可以通过计算后一部分的交叉熵来求得Loss。所以通常会使用交叉熵来作为Loss函数,同理交叉熵越小,预测值和真实值之间相似度越高,模型越好。

困惑度(perplexity,PPL)

在NLP中,通常使用困惑度(迷惑度/混乱度)作为衡量语言模型好坏的指标。

困惑度计算python ppl 困惑度_损失函数_05


其中S为句子,N是句子中单词的个数,p(wi)代表第i个单词的概率.所以PPL越小,p(wi)的概率越高,则一句话属于自然语言的概率也就越高,即语言模型越好。

除了上面介绍的之外,基于信息论的信息增益比(率)基尼系数Gini 常用于分类的算法——决策树。