NLP入门之信息熵

香农在《通信的数据理论》中,任何信息都存在冗余,冗余大小与信息中每个符号(数字、字母或单词)的出现概率或者说不确定性有关,并且香农借鉴了热力学的概念,把信息中排除了冗余后的平均信息量称为“信息熵”,对于任意一个随机变量X,它的信息熵定义如下:

《NLP入门之信息熵》

其中P(x)为事件x发生的概率。

通常,一个信源发送出什么符号是不确定的,衡量它可以根据其出现的概率来度量。概率大,出现机会多,不确定性小;反之就大。

不确定性函数f是概率P的单调递降函数;两个独立符号所产生的不确定性应等于各自不确定性之和,即 《NLP入门之信息熵》 ,这称为可加性。

为了更好理解熵这个概念,就那吴军的《数学之美》中的例子来比划一下吧。

题目:

假设世界杯决赛圈32强已经产生,那么随机变量“2018年俄罗斯世界杯足球赛32强中,谁是世界杯冠军?”的信息量是多少呢?

计算:

根据香农的信息熵公式:

《NLP入门之信息熵》

吴军的书中给出了几个结论:

  1. 32强球队夺冠概率相同时,H=5。
  2. 是夺冠概率不同时,H<5。
  3. 是H不可能大于5。

结论其实就是H表达式出来后,关于32个变量都大于等于0,只和等于1的约束情况下,表达式的取值范围的讨论。

说了这么多,关键点还没有说到,那就是信息熵在自然语言处理里面有什么用呢?

在自然语言处理中,信息熵只反映内容的随机性(不确定性)和编码情况,与内容本身无关。

举个例子:

一本50万字的中文书平均有多少信息量。我们知道,常用的汉字约7000字。假如每个汉字等概率,假如每个汉字等概率,那么大约需要约13比特(即13位二进制数, 《NLP入门之信息熵》 )表示一个汉字。

应用信息熵就是,一个汉字有7000种可能性,每个可能性等概率,所以一个汉字的信息熵是:

《NLP入门之信息熵》

实际上由于前10%汉字占常用文本的95%以上,再考虑词语等上下文,每个汉字的信息熵大约是5比特左右。所以一本50万字的中文书,信息量大约是250万比特。需要注意这里的250万比特是个平均数。

为了以后在nlp学习的过程中,对信息熵有比较清晰的认识,再梳理几个概念:

  • 条件熵

知道的信息越多,随机事件的不确定性就越小。

定义式:

. 《NLP入门之信息熵》

  • 联合熵

设X Y为两个随机变量,对于给定条件Y=y下,X的条件熵定义为:

《NLP入门之信息熵》

  • 互信息

两个事件的互信息定义为:I(X;Y)=H(X)+H(Y)-H(X,Y),也就是用来衡量两个信息的相关性大小的量。互信息是计算语言学模型分析的常用方法,它度量两个对象之间的相互性。定义式:

《NLP入门之信息熵》

  • 左右熵

这个经常用来发现新词。某篇文章中出现了两次 AWC,一次BWD,那么W的左侧信息熵为: 《NLP入门之信息熵》 ,2/3表示词组A在3次中出现了2次,B只出现了一次,故为1/3。

如果是AWC, BWC,那么W右侧就是0,因为是 -1log(1)。

如果某个词左侧的信息熵很大,右侧信息熵很小,而他右侧的词左侧信息熵很小,右侧信息熵很大。形象描述为 X B C Y,B与C经常一同出现,但是X和Y经常变化,于是可以把B和C组合起来当成一个关键词,这就是发现新词的原理。

写着写着发现,2,4,7的频率太高,自己整天都在写写写,自己顶不住,而且有个更大的原因是,缺少时间思考,写出来的东西思考的深度也不够,所以改成3,5更新,最近几篇将会是NLP相关的概念解读。

今天就先到这里,晚安。

    原文作者:flash sliver
    原文地址: https://zhuanlan.zhihu.com/p/28564865
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞