统计自然语言处理——信息论基础

来源:互联网 发布:淘宝手机怎么实名认证 编辑:程序博客网 时间:2024/05/02 10:32

信息是个相当宽泛的概念,很难用一个简单的定义将其完全准确的把握。然而,对于任何一个概率分布,可以定义一个称为熵(entropy)的量,它具有许多特性符合度量信息的直观要求。这个概念可以推广到互信息(mutual information),互信息是一种测度,用来度量一个随机变量包含另一个随机变量的信息量。熵恰好变成一个随机变量的自信息。相对熵(relative entropy)是个更广泛的量,它是刻画两个概率分布之间距离的一种度量,而互信息又是它的特殊情形。


信息熵

——随机变量不确定度的度量

设p(x)为随机离散变量X的概率密度函数,x属于某个符号或者字符的离散集合 X:
p(x) = P(X = x), x ∈ X
熵表示单个随机变量的不确定性的均值,随机变量的熵越大,它的不确定性越大,也就是说,能正确估计其值的概率越小。熵的计算公式 :
这里写图片描述
将负号移入对数公式内部:
这里写图片描述
上式实际上表达的是一个加权求值的概念,权重就是随机变量X的每个取值的概率。

用E表示数学期望。如果X~p(x),则随机变量g(X)的期望值可表示为:
这里写图片描述

这里写图片描述

这里写图片描述
注:X的熵又解释为随机变量 这里写图片描述的期望值,其中p(x)是X的概率密度函数。

熵的属性

  • H(X) >= 0;
  • H(X) = 0, 当且仅当随机变量X的值是确定的,没有任何信息量可言;
  • 熵值随着信息长度的增加而增加。

例子:世界杯足球赛冠军、中文书的信息量和冗余度。


信息的作用

信息的作用在于消除不确定性,自然语言处理的大量问题就是寻找相关信息。

不确定性U,信息I,新的不确定性: U’= U - I

如果没有信息,任何公式或者数字的游戏都无法排除不确定性。合理利用信息,而非玩弄什么公式和机器学习算法,是做好搜索的关键。

例子:网页搜索


联合熵和条件熵

如果(X,Y)是一对离散随机变量,其联合概率分布密度函数为p(x,y),(X,Y)的联合熵H(X,Y)定义为:这里写图片描述

已知随机变量X的情况下随机变量Y的条件熵:
这里写图片描述
上式实际上表示的是在已知X的情况下,传输Y额外所需的平均信息量。

例子:自然语言的统计模型,一元模型就是通过某个词本身的概率分布,来消除不确定因素;而二元及更高阶的语言模型还是用了上下文的信息,那就能准确预测一个句子中当前的词汇了。

熵的链式法则:
这里写图片描述


互信息

根据熵的链式法则,我们有如下的计算公式:
H(X,Y) = H(X) + H(Y|X) = H(Y) + H(X|Y)
所以有:
H(X) - H(X|Y) = H(Y) - H(Y|X)
这个差值称为随机变量X和Y之间的互信息(mutual information),用I(X;Y)表示。
这里写图片描述

这里写图片描述

互信息是一个取值在0到min(H(X), H(y))之间的函数,当X和Y完全相关时,取值为1;当二者完全无关时,取值为0。

互信息被广泛用于度量一些语言现象的相关性。例如可以用于词的聚类和语义消岐。

例子:机器翻译中词义的二义性问题


相对熵

相对熵是两个随机分布之间距离的度量。在统计学中,它对应的是似然比的对数期望。相对熵D(p||q)度量当真实分布为p而假定分布为q时的无效性。

例如,已知随机变量的真实分布为p,可以构造平均描述长度为H(p)的码。但是如果使用针对分布q的编码,那么在平均意义上就需要H(p) + D(p||q)比特来描述这个随机变量。

给定两个概率密度函数p(x)和q(x),它们的相对熵(relative entropy)又称为Kullback-Leibler(KL)距离:
这里写图片描述

结论:

  • 对于两个完全相同的函数,它们的相对熵等于零。
  • 相对熵越大,两个函数差异越大;反之,相对熵越小,两个函数的差异越小。
  • 对于概率分布或者概率密度函数,如果取值均大于零,相对熵可以对量两个随机分布的差异性。

Google自动问答系统,采用类似方法衡量两个答案的相似性。

互信息与相对熵

这里写图片描述


交叉熵

设 X~p(x),q(x)为我们估计的近似p(x)的一个概率分布,则p(x)和q(x)的交叉熵表示为:
这里写图片描述

因为H(X)的值一般是固定不变的,因此交叉熵的最小化等同于相对熵的最小化,即估计出概率分布和真实数据分布之间的差值。

模型的交叉熵越低,一般就意味着它在应用中的性能越好。


混乱度

在设计语言模型时,我们通常用混乱度(perplexity)衡量一个语言模型的好坏。
这里写图片描述


小结

语言模型是为了用上下文预测当前的文字,模型越好,预测的越准,那么当前文字的不确定性 就越小。

信息熵正是对不确定性的衡量,因此可以想象信息熵能够直接用来衡量语言模型的好坏。

当然,因为有了上下文的条件,所以对于高阶的语言模型,应该用条件熵

如果再考虑从训练语料和真实应用的文本中得到的概率函数有偏差,就需要再引入相对熵的概念。

贾里尼克从条件熵和相对熵出发,定义了一个称为语言模型复杂度(Perplexity)的概念,直接衡量语言模型的好坏。复杂度有很清晰的物理含义,它是在给定上下文的条件下,句子中的每个位置平均可以选择的单词数量。一个模型的复杂度越小,每个位置的词就越确定,模型越好。


自然语言处理学习笔记

参考 《Elements of Information Theory》、《Foundations of Statistical Natural Language Processing》、 《统计自然语言处理》、《数学之美》

0 0