相对熵

来源:互联网 发布:搜番软件 编辑:程序博客网 时间:2024/05/16 12:10

    前面已经介绍了信息熵和互信息,它们是信息论的基础,而信息论则在nlp中扮演着指导性的角色。

    这篇介绍一下另一重要概念—相对熵。相对熵,有些文献里也叫“交叉熵”,它也用来衡量相关性,但和变量的互信息不同,它用来衡量两个取值为正数的函数的相似性,定义:KL(f(x)||g(x))=∑f(x)·log(f(x)/g(x)) x∈X

    大家只需要记住三条结论:1、对于两个完全相同的函数,相对熵为零。2、相对熵越大,函数差异越大,反之亦然。3、对于概率分布或者概率密度函数,如果取值均大于零,相对熵最早用在信号处理上,如果两个随机信号,它们的相对熵越小,说明信号越接近,否则信号差异越大。后来研究信息处理的学者也用它来衡量两段信息的相似程度,比如说一篇文章是照抄或者改写另一篇,那么两篇文章中词频分布的相对熵就非常小。

    相对熵在nlp中还有很多应用,比如用来衡量两个常用词在不同文本中的概率分布,看它们是否同义。另外,利用相对熵,还可以得到信息检索中最重要的一个概念:词频率-逆向文档频率(TF-IDF)。

    小结:熵,条件熵和相对熵这三个概念与语言模型的关系非常密切。信息熵是对不确定性的衡量,因此可以想象信息熵能直接用于衡量统计语言模型的好坏。当然,因为有上下文的条件,对于高阶的语言模型,应该用条件熵。再考虑从训练语料和真实应用的文本中得到的概率函数有偏差,就再需要引入相对熵。

    贾里尼克从条件熵和相对熵出发,定义了一个语言模型复杂度的概念,直接衡量语言模型的好坏。复杂度有很清晰的物理含义,它是在给定上下文的条件下,句子中每个位置平均可以选择的单词数量。一个模型复杂度越小,每个位置的单词越确定,模型越好。李开复在介绍他发明的Sphinx语音识别的论文里谈到,如果不用任何语言模型,复杂度为997,也就是句子中每个位置有997个可能的单词可以填入。如果二元语言模型只考虑前后词的搭配,不考虑搭配的概率,复杂度为60。虽然比不用模型好很多,但是与搭配概率的二元模型相比还是差很多,因为后者复杂度只有20。

    内容总结:信息熵不仅是对信息的量化度量,而且是整个信息论的基础。它对于通信、数据压缩、nlp都有很大的指导意义。信息熵的物理含义是对一个信息系统不确定性的度量,在这点上和热力学的熵有相似之处。科学上很多看似不同的学科之间也有很强的相似性。

0 0