美文网首页
NLP|信息熵

NLP|信息熵

作者: 5a41eb2ceec6 | 来源:发表于2018-12-06 09:21 被阅读38次

    最近在读一篇工作论文,涉及到自然语言处理(NLP)。自己对这块没有什么了解,决定简单地先学习下,再回过去读论文~此外感觉NLP也是机器学习(ML)在经管领域的重要应用。

    一、信息熵

    信息熵,先拆分为信息和熵来看。

    1. 信息

    从“信息”视角看,其作为一个数学模型中的概念,一般来说是可以量化的,那么问题来了“信息是不是可以量化呢?”
    从直觉上应该是可以的,我们平时会感觉到有的人废话特别多,没有什么“信息量”。有的人一句话有很大的“信息量”。
    那么为什么有的信息量很大,而有的又很小呢?
    我们通过两条信息来看一看,如果A告诉你外面下雨了,B告诉你他见到外星人了。同样两条信息A的信息量小,因为事情的不确定性相对小,B的信息量大,因为事情的不确定性相对大。

    综上,我们可以看到信息量的大小和事情的不确定性有关。这为我们量化信息提供了一个思路。

    2. 熵

    从“熵”的视角来看,熵的概念最早起源于物理学,用于表述热力学第二定律。波尔兹曼研究得到,热力学熵与微观状态数目的对数之间存在联系,并给出了公式:
    S = k lnW
    物理中用熵来度量一个热力学系统的无序程度。

    我们从“不确定性”和“无序程度”能看到关联,那么信息熵即平均而言发生一个事件我们得到的信息量大小,表示的是不确定性的度量

    二、不确定性

    前面我们说了信息量的大小和事情的不确定性有关。那么不确定性的变化和什么有关?

    1. 和事情的可能结果数量有关。如讨论太阳从哪升起,其只有一个结果,不确定性很小,信息量非常少。相比而言当可能结果数量比较大时,不确定性就大,信息量大。

    2. 和初始的概率分布有关。例如一开始我就知道小明在电影院的有15*15个座位的A厅看电影。小明可以坐的位置有225个,可能结果数量算多了。可是假如我们一开始就知道小明坐在第一排的最左边的可能是99%,坐其它位置的可能性微乎其微,那么在大多数情况下,你再告诉我小明的什么信息也没有多大用,因为我们几乎确定小明坐第一排的最左边了。

    了解不确性大小(换到本文场景中即信息量大小)和事情的可能结果数量、初始的概率分布有关,我们如何通过“数学”来具体刻画表述呢?

    我们来看看手边这块等待被刻的“石头”—信息量,应该有什么特点?

    1. 最起码不应该是个负数
    2. 信息量间应该要可以相加
    3. 信息量是连续依赖于概率
    4. 假如每一个可能的结果出现的概率一样,那么对于可能结果数量多的那个事件,新信息有更大的潜力具有更大的信息量,因为初始状态下不确定性更大。

    那么什么样的函数可以满足上面四个条件呢?

    答案是负的对数函数,即-log(x)

    我们再来具体看下用-log(x)的原因:

    • 为什么不是正的?因为如果是正的,由于x≤1,log(x)≤0,不满足特点一。
    • x是概率值,显然log(x)是连续依赖于x的。满足条件三。
    • 假设有n个可能的结果,那么出现任意一个的概率是1/n,而-log(1/n)是n的增函数,满足特点四。
    • -log(xy) = -log(x) -log(y),满足特点二。注意,这里的y可以是给定x的条件概率,当然也可以独立于x。

    综上,我们知道衡量一个事件的信息量就是这件事情发生的概率的负对数。

    三、公式

    公式

    信息熵就是平均而言发生一个事件我们得到的信息量大小。所以数学上,信息熵其实是信息量的期望。公式中p(x)表示概率,-logp(x)表示信息量。

    信息越少,事件(变量)的不确定性越大,其信息熵也就越大。搞明白该事件所需要的信息就越多,即弄明白小概率事件所需要的额外信息较多。总之,信息熵表示的是不确定性的度量,信息熵越大,不确定性越大。

    联合熵描述的是一对随机变量X和Y的不确定性

    联合熵

    条件熵衡量的是在一个随机变量X已知的情况下,另一个随机变量Y的不确定性

    条件熵

    互信息是衡量两个随机变量(事件) 的相关程度,当X和Y完全相关时,它们的互信息就是 1;反之,当X和Y完全无关时,它们的互信息就是 0。

    互信息

    点互信息可以用来表示两个具体的事件的相关度。上面的互信息其实就是对X和Y的所有可能的取值情况的点互信息PMI的加权和。

    点互信息

    互信息和熵有如下关系:

    关系

    相对熵是衡量相同事件空间里两个概率分布(函数)的差异程度(不同于前面的熵和互信息,互信息衡量的是随机变量的关系),当两个概率分布完全相同时,他们的相对熵就为 0,当他们的差异增加时,相对熵就会增加。 相对熵又叫 KL 距离,但是它不满足距离定义的三个条件中的两个: 1、非负性(满足); 2、对称性(不满足); 3、三角不等式(不满足)。它的物理意义就是如果用 Q 分布来编码 P 分布(一般就是真实分布)的话, 平均每个基本事件编码长度增加了多少比特。

    相对熵

    KL距离和互信息

    I(X;Y) = DKL(p(x,y)||p(x)p(y)) = EX[DKL(p(y|x)||p(y)] = EY[DKL(p(x|y)||p(x)]
    如果X和Y不相关,即有p(x,y) = p(x)p(y),则 DKL(p||q)=0,互信息也为0,。可以看出互信息是KL距离的期望。

    交叉熵表示用分布Q来表示P的熵是多少,即用分布Q来编码P需要多付出多少比特。

    交叉熵

    四、例子

    互信息是衡量两个随机变量(事件)的相关程度,那么词的互信息,就是衡量两个词的相关程度, 比如, “计算机”和“硬件”的互信息就比“计算机”和“杯子”的互信息要大,因为它们更关。

    那么如何在大量的语料下统计出词与词的互信息呢?公式中可以看到需要计算三个值:
    **p(x)、 p(y)和p(x, y), **它们分别表示x独立出现的概率, y独立出现的概率, x 和 y同时出现的概率。 前两个很容易计算,直接统计下词频然后除以总词数就知道了,最后一个也很容易,统计一下x 和 y同时出现(通常会限定一个窗口) 的频率除以所有无序对的个数就可以了。这样,词的互信息就计算出来了。

    • 衡量like的极性(正向情感还是负向情感)
      可以预先挑选一些正向情感的词,比如good。然后算like跟good的PMI,即:PMI(like,good)=logp(like,good)p(like)p(good)
      其中p(like)是like在语料库中出现的概率(出现次数除以总词数N),p(like,good)表示like跟good在一句话中同时出现的概率(like跟good同时出现的次数除以N2)。PMI(like,good)越大表示like的正向情感倾向就越明显。

    参考资料:

    1. 信息熵是什么?
    2. 维基百科-熵 (信息论)
    3. 《文本上的算法》
    4. 什么是点互信息

    相关文章

      网友评论

          本文标题:NLP|信息熵

          本文链接:https://www.haomeiwen.com/subject/hqhncqtx.html