一、概述
在日常生活中或者科学试验中,很多的事情发生都具有一定的随机性,即最终产生的结果是随机发生的,我们不清楚这些结果是否服从什么规律,我们所拥有的只有一些实验样本,在这种情况下,我们如何根据现拥有的东西对结果产生一个合理的推断呢?最大熵方法就是解决这种问题的一个方法。 最大熵原理是有E.T.Jaynes在1957年提出的,其基本思想如下:在只掌握未知部分的部分知识时,我们应该选取符合这些知识并且熵值最大的概率分布。熵从定义上来说就是一个随机变量的不确定性,熵值最大即不确定性最大。从这方面来看,最大熵原理实质上就是在满足已知所有的知识前提下,对于未知的分布应该是自己最不能确定或者最随机的分布,因为只有这样,最终的分布才能代表一个最公平的选择,任何带有主观性的选择其实质上就是为模型加入了约束条件,而这些条件都是根据目前已知信息所无法得出的。 目前最大熵原理在自然语言处理上已经得到了极大的应用。由于最大熵模型可以将不同源的信息集中到一个框架下进行综合考虑,所以在解决一些复杂问题时体现出极大的优势。也因此,自Della Pietra在1992年首度用最大熵原理进行语言处理,现在越来越多的学者都用最大熵原理处理文本分类、短语识别和词性标注等问题,并且取得了比较满意的效果。
最大熵模型的基本思想是:当我们对一个随机事件的发生建立预测模型时,模型应当满足全部从训练样本中获取的已知特征信息,而对其他未知的信息不做任何主观假设,在这种情况下,条件概率分布最均匀,预测的风险最小,此时预测模型满足约束条件下的信息熵值最大,所以这种模型被称为“最大熵模型”。生活中所说的不要把所有的鸡蛋都放在同一个篮子里面,就是最大熵思想的一个很朴素的说法,当我们遇到不确定性事件时,就要尽量保留各种可能性,这一原则符合简单可取性。
二、条件最大熵模型
由于目前很多最大熵模型都是应用在语言处理领域,那么我们就用处理语言举例来阐述最大熵模型。其实最大熵模型最终的任务就是概率估计,即估计目标类y,在实例x或者理解成条件x下出现的概率,即估计p(y|x)的值。x的集合表示成X,y的集合表示成Y。另外,我们用P表示所有条件概率分布的集合,则p(y|x)只是P中的一个元素。 在具体的语言处理中,产生一个y都是要受到x的影响,即假设随机输入一个“吃”字,那么它的上下文肯定是分布在“吃”字周边的一些汉字,即y肯定是集合{动词、名词}中的一个。那么最大熵方法就是基于一些具体的统计学方法,根据x,y之前的出现特征,可靠的估计p(y|x)这个概率模型。 其实最大熵方法在使用的时候并不局限于条件最大熵,最初是估计 p(x)的值,后来才逐渐演变成估计p(y|x),区别起见,通常把p(x,y)或者p(x)成为联合最大熵模型。在语言处理包括文中后来用到的基于内容处理中都是使用条件最大熵模型,在此特此说明。
三、模型简介
吃”周围的词语就是实例x,词性为y。这里的x实际上就是上下文信息对于“吃”周围词语的一种限制。而y在实际情况当中的可能性则非常巨大,有可能是“吃喝”、“吃苹果”、“好吃”等。由此,我们可以看出实例空间是非常巨大的。从训练样集中,我们可以得到像1 1 2 2 N N(x ,y ),(x ,y ),...,(x ,y ) z主要的经验概率分布,用出现的对数除以总对数表示概率,即最大熵模型先通过这些训练样例来训练模型,然后再顾及p(x,y)的概率分布。 模型框架中的应用系统是利用训练好的模型去估计实例 x’的概率分布p(y|x’),其中1<=y<=Y。最后通过概率的从大到小排列形成最后的推荐结果。
四、协同过滤
在一般的电子商务系统中,用户往往只会对很少的一部分商品进行评分,整个用户集合与项目集合相关联的是一个非常稀疏的评分矩阵。在计算相似度的方法中,用户或者项目间相关的评分信息非常不充分,反映为两个用户或者项目间共有评分非常有限,因此相似度计算结果非常不可靠,而实际计算出来的相似值往往不是太高,失去了线性相关本身的意义。由此,依靠相似度选择最近邻居的推荐方法在数据稀疏的情形下推荐结果受到严重的负面影响。
五、参考文献
[1]基于最大熵模鹜解决协同过滤稀 疏性问题研究
[2]融合用户属性和兴趣的最大熵 推荐算法研究