2.4语言模型方法
统计语言模型是关于某种语言所有语句或者其他语言单位的分布概率。也可以将统计语言模型看作是生成某种语言文本的统计模型。一般来说语言模型的研究任务是:已知文本序列中前面(i-1)个词汇,第i个词汇为单词w的可能性有多大?在大多数统计语言模型的应用比如语音识别、信息检索等研究中,一个句子的概率常常被分解为若干n-gram概率的乘积,也就是n元语言模型。我们假设S代表了某个长度为k的特定单词序列,S=w1,w2,……wk。n元语言模型将词汇序列S看作是具有以下概率值的马尔科夫过程:
p(S)=∏P(wi|wi-1, wi-2, wi-3, …, wi-n+1) (i=1, …, k)
其中n代表了马尔科夫过程的阶数。当n=2时,我们常常称之为二元语言模型。它利用词汇对的同现信息来进行相关参数的概率估计。当n=1时,我们称之为一元语言模型,它利用了每个词汇的出现频率作为参数进行概率估计。在语音识别或者机器翻译中,词汇序列是很重要的信息所以常常采用高阶的语言模型。在信息检索领域,词汇序列的作用还不是很清楚,所以经常采用的语言模型是一元语言模型。
为了建立基于词汇的n元语言模型,常常通过训练数据集合来获得n元模式的频率信息以建立相关的统计参数。很有可能即使是训练语料集合很大,某个n元模式在训练语料中仍然没有出现过。这样的话对于不常见的n元模式来说,根据这种频率信息建立的统计模型就会产生问题。通常我们把这个问题叫做数据稀疏问题。在统计语言模型研究中,许多数据平滑技术被提出用来解决数据稀疏问题。
将统计语言模型和信息检索相结合是由Ponte和Croft[ponte,1998]在1998年首次提出的。这个新的检索模型提出后受到了广泛的关注,之后几年内有不少学者在此基础上提出了一些改进的方法或者模型。许多实验结果显示基于统计语言模型的方法在检索性能上普遍优于以前普遍采用的向量空间模型方法[Townsend,2002]。
Ponte和Croft最初提出的语言模型检索方法现在经常被称为“查询条件概率模型”。这个模型假设用户头脑中有一个能够满足他的信息需求的理想文档,用户从这个理想文档中抽取词汇作为查询条件,用户所选择的查询条件词汇能够将这个理想文档同文档集合中其他文档区分开来。这样查询条件可以看作是由理想文档生成的能够表征该理想文档的文本序列。由这个假设我们可以看出信息检索系统的任务被转化为判断文档集合中每个文档与理想文档哪个最接近的问题。也就是说,我们需要计算:
arg maxP(D|Q)=arg maxP(Q|D)P(D)
其中,Q代表查询条件,D代表文档集合中某个文档。先验概率P(D)对于文档集合中每篇文档来说都是相同的。所以关键是估计每篇文档的语言模型P(QlD)。换句话说,我们首先需要估计每篇文档的词汇概率分布,然后计算从这个分布抽样得到查询条件的概率。并按照查询条件的生成概率来对文档进行排序。
Ponte和Croft在他们的工作中采取了“多变量伯努利”方法来近似估计P(Q|D)。他们将查询条件表示为二值属性构成的向量,词汇表中每个不同词汇代表了向量中的一维用来表示该词汇是否在查询条件中出现。查询条件词汇的出现次数没有列在考虑范围之内。在这个方法后面隐藏着以下几个假设:
(1)二值假设:所有属性是二值的。如果一个词汇出现在查询条件中,代表该词汇的属性值被设置成l。否则设置为0。
(2)词汇独立假设:文档中词汇之间的关系是正交关系,也就是说是相互独立的,不考虑词汇之间的相互影响。
基于以上假设,查询条件生成概率p(Q|D)可以转化为两个概率的乘积:一个是生成查询条件词汇的概率,另一个是没有生成查询条件词汇的概率:
P(Q|D)=∏P(w|D)∏(1.0-P(w|D)) (w∈Q)
其中P(w|D)利用包含词汇w的所有文档的平均概率和风险因子来计算。对于没有出现的词汇,使用文档集合的全局概率来计算。
在这个模型中,一些统计信息比如词频信息(Term Frequency)和文档频率(Document Frequency)等信息成为语言模型检索方法中的有机组成部分。这一点与传统检索模型不同,在传统检索模型中,这些信息都是作为启发规则性质的计算因子引入的。另外,文档长度归一因素化成为不必单独计算的因子,因为它已经隐含在语言模型中的概率参数中了。
实验数据表明,尽管Ponte等人提出的语言模型还只是很简单的模型,但是在检索效果方面己经可以和目前性能最好的概率检索模型相当或者更好。
统计语言模型研究中面临的数据稀疏问题在检索中更显得突出。因为事实上每篇文档所包含的词汇数量并不多,利用如此少的数据量来对参数进行经验估计产生的结果并不理想,因为它低估了出现频率少的词汇概率而相应地高估了高频词汇的概率。另外如果某个词汇只在查询条件中出现而并没有被文档包含,很明显其经验估计值为0,尽管实际上还有很多其它查询词汇与文档内容相匹配,这仍将导致查询条件整体结果为0。为了减轻上述问题的影响,研究人员提出了不同的数据平滑方法来对公式的经验估计值进行调整。最常用的平滑方法包括贝叶斯平滑方法,线性插值平滑方法等。
这个经典的基于语言模型的信息检索范型为信息检索领域开辟了一个很有前景同时也具有相当挑战性的方向。与传统检索模型相比,语言模型检索方法有下列优点:
(1)能够利用统计语言模型来估计与检索有关的参数是使用语言模型信息检索系统的一个优点。
(2)使用语言模型的另外一个好处是,我们可以通过对语言模型更准确的参数估计或者使用更加合理的语言模型来获得更好的检索性能。这样,与传统的模型相比较,在如何改善检索系统性能方面有更加明确的指导方向。
(3)另外,语言模型方法对于文档中的子主题结构和文档间的冗余度建立统计模型也是有帮助的。
尽管实验表明该方法检索性能优于一些传统的检索模型,但是其本身还是存在一定的缺点:
1.该方法隐含着词汇相互独立关系,没有考虑词汇间的相互影响。
2.传统检索模型中常用的查询反馈技术在概念层面融入语言模型框架比较困难。
2.4.1隐马尔可夫模型方法(Hidden Markov Model)
Miller等人在1999年的SIGIR国际会议上一篇论文中提出将隐马尔可夫模型引入信息检索领域[Millor,1999],该方法在本质上是一种统计语言模型方法而且根据该方法推导出的查询条件和文档相似度计算公式与Ponte经典语言模型方法基本一致。实验结果表明了这是一种有效的方法。
离散隐马尔可夫模型一般来说由以下四个参数集合构成:状态集合,状态集合中各个状态间的转移概率集合,状态输出的可见符合集合与每个状态产生可见符号的概率集合。系统从初始状态集合中的状态开始,根据状态转移概率随机地从一个状态向另一个状态转移,直到转移到某个最终状态为止。在这个随机状态转移过程中,由于每个状态都可以按照一定的概率分布发出某些可见符号,所以在状态转移过程中伴随着一系列可见符号的产生。之所以称之为隐马尔可夫模型,是因为对于外界观察者来说,系统的状态转移过程是不可见的,能够观察到的仅仅是由状态转移过程中发出的可见符号系列。
HMM方法将信息检索过程看作是上述的离散隐马尔可夫模型。假设文档集合S包含N个不同文档,HMM方法根据每一篇文档d和文档集合S构造包含两个状态的离散隐马尔可夫模型,这样得到N个不同的隐马尔可夫模型的集合。任一个离散隐马尔可夫模型由以下四组参数集合构成:文档d本身和文档集合S构成状态集合;状态间的转移概率集合T={a1, a2, …, ai};状态输出可见符号集合由文档集合中出现的所有词汇构成;而每个状态产生可见符号的概率集合通过以下最大似然估计得到:
P(term|Dk)=tfterm/|Dk|
P(term|GE)=Σktfterm/Σk|DK|
其中tfterm代表词汇term在文档Dk中出现的次数,|Dk|代表文档Dk的长度,也就是文档包含的单词个数。
HMM方法将已知的查询条件看作是由上述的N个不同隐马尔可夫模型产生的观察到的可见符号序列。这样文档和查询条件的相关计算就转化为马尔可夫模型生成可见符号序列的概率问题,该方法认为这个生成概率越大也就说明该文档与查询条件越相关.判断两者相关度的公式如下:
p(QIDk)=∏(a0P(q|GE)+a1P(q|Dk))
HMM方法从不同的理论角度推出了和经典语言模型检索方法类似的结论,实验结果表明其检索效果与经典方法相当,但是它也存在和经典方法类似的缺陷。
2.4.2统计翻译方法
无论是经典语言模型检索方法还是HMM方法都隐含着词汇间相互独立关系的假设,也就是说认为词汇间没有任何联系,很明显这种假设与事实是不符的。统计翻译方法的目的就在于改善经典语言模型检索方法这一假设,将词汇间的同义词因素考虑进来。
统计翻译方法将统计翻译模型引入信息检索领域,其将信息检索过程看作是一个从文档向查询条件进行翻译的过程。在这种框架下,经典语言模型方法中的查询条件生成过程被看作是由文档中出现的词汇通过翻译模型向查询条件中相关词汇的一个映射过程。
Berger在文献[Berger,1999]中参考机器翻译领域中的统计翻译模型引入了两种文档一查询条件翻译模型:混合翻译模型和指数翻译模型。混合翻译模型将语言模型和翻译模型相结合构造查询条件的翻译概率,其计算公式如下:
P(Q|D)=β(m|D)∏(n/(n+1) * p(qj|D) + 1/(n+1) * t(w|<null>)) (j=1, 2, …, m)
其中p(qj|D)=Σt(qj|w)l(w|D)
在上式中l(w|D)是文档的语言模型,t(qj|w)是词汇间的翻译模型。β(m|D)是由文档D生成长度为m的查询条件的概率。t(w|<null>)是考虑到查询条件中查询无关词汇因素。
指数翻译模型在混合翻译模型的基础上考虑查询词汇重复出现等情况来构造查询条件的翻译概率,其计算公式如下:
P(Q|D)=e-β(D)∏(eβ(D)p(qi|D)-1) (i=1, …, m)
翻译模型方法由于采用的是统计机器翻译的思路,这在本质上决定了其主要考虑因素是将词汇间的同义词关系引入语言模型信息检索方法中,对于检索系统的性能提高有一定帮助。其作用类似与传统检索模型中的查询扩展技术,但是该方法有个很明显的缺点,就是在训练统计翻译模型的参数的时候,需要大量的查询条件和对应的相关文档,而事实上很难找到类似的训练数据,所以该方法只能采取信息抽取等技术来模拟得到所需训练集合。
2.4.3风险最小化框架(Risk Minimization Framework)
Lafferty和Zhai基于贝叶斯决策理论提出了一个风险最小化框架检索模型。在这个框架中,查询条件和文档利用统计语言模型来建立模型,用户需求偏好(User Preference)通过风险函数来进行建模。这样的话,信息检索就被转换为风险最小化问题。文档和查询条件的相似性度量采取了如下的文档语言模型和查询条件语言模型之间的Ku11back-Leibler距离:
KL(Q||D)=ΣP(w|Q)log(P(w|Q)/p(w|D)) (w∈V)
与其它相关研究比较,风险最小化框架的一个重要优点在于这个理论不仅能够利用统计语言模型对文档进行建模,而且同样可以利用统计语言模型对查询条件建模。这样使得相关检索参数的自动获得成为可能,同时还通过统计参数估计方法来改善检索性能。这个框架和概率检索模型有一定的相似性的同时能够将现有的语言模型检索方法融入该框架。Lafferty和Zhai在2001年使用马尔科夫链方法来估计扩展查询条件语言模型以克服上述的统计翻译方法的缺陷。在进一步的相关工作中,Zhai和Lafferty建议使用两阶段语言模型来探讨查询条件和文档集合对于检索参数设置的不同影响[Zhai,2002]。在第一个阶段,与查询条件无关的文档语言模型通过参数估计得到。在第二个阶段,根据查询条件语言模型来计算查询条件的生成概率。这个查询条件语言模型是根据第一阶段获得的文档语言模型和查询条件背景语言模型获得的。这个方法和Ponte最初提出的语言模型方法有相似的地方,那就是都涉及到了文档语言模型的估计和查询条件的生成概率计算。不同点在于,Ponte提出的方法在计算查询条件概率的时候是直接使用估计的文档语言模型,而两阶段方法是使用估计的查询条件语言模型来进行查询条件生成概率的计算。在两阶段方法中,一种两阶段数据平滑方法被提出来完全自动地设置相关检索参数。实验数据表明,两阶段数据平滑方法在性能上要优于其它只考虑单阶段的数据平滑方法。
2.4.4相关模型(Relevanee Model)
与其他试图建立查询条件生成概率方法的思路不同,Lavrenko和Croft[Lavrenko,2001]明确地对“相关性”进行建模并提出了一种无需训练数据来估计相关模型的新的方法。从概念角度讲,相关模型是对用户信息需求的一种描述,换句话说,是对用户信息需求相关的主题领域的描述。相关模型的假设如下:给定一个文档集合与用户查询条件Q,存在一个未知的相关模型R,相关模型R为相关文档中出现的词汇赋予一个概率值P(w|R)。这样相关文档被看作是从概率分布P(w|R)中随机抽样得到的样本。同样的,查询条件也被看作是根据这个分布随机抽样得到的样本。
所以,对于相关模型来说,最根本的就是如何估计分布P(w|R)。P(wlR)代表了从相关文档中随机抽取一个词汇正好是词汇w的概率值。如果我们知道哪些文档是相关文档的话,这个概率值的估计是很容易得到的。但是在一个典型的检索任务中,这些相关文档是不可知的。Lavrenko和Croft[Lavrenko,2001][Lavrenko,2002]提出了一种合理的方法来近似估计P(w|R),他们使用以下联合概率来对这个值进行估计:
P(w|R)≈P(w|Q)=P(w, q1, …, qm)/ P(q1, …, qm)= P(w, q1, …, qm)/ ΣP(v, q1, …, qm)
(v∈vocabulary)
Lavrenko提出两种估计上述联合概率分布的方法。这两种方法都假设存在一个概率分布集合U,相关词汇就是从U中某个分布随机抽样得到的。不同点在于它们的独立假设。
方法一假设所有查询条件词汇和相关文档中的词汇是从同一个分布随机抽样获得,这样一旦我们从集合U中选定某个分布M后,这些词汇是相互无关的、独立的。如果我们假设U是一元语言模型分布的全集并且文档集合中每个文档都有一个分布,那么我们得到:
P(w, q1, …, qm)=ΣP(M)P(w, q1, …, qm|M)=P(M)(P(w|M)∏P(qi|M)) (M∈U, i=1, …, m)
其中,P(M)代表集合U中的一些先验概率分布。P(w|M)是我们从M中随机抽取词汇而观察到词汇w的概率。
方法二假设查询条件词汇q1, …, qm是相互独立的但是和词汇w是相关的。也就是说:
P(w, q1, …, qm)= P(w|M)∏P(qi|M) ( i=1, …, m)
条件概率分布P(qi|w)可以通过对于一元语言模型的全集u进行如下计算得到:
P(qi|w)=ΣP(qi|Mi)P(Mi|w) (Mi∈U)
在这里又作了如下假设:一旦选定一个分布Mi,查询条件词汇q,就和词汇w是相互独立的。
相关模型是一种将查询扩展技术融合进入语言模型检索框架的比较自然的方法。实验结果表明,与简单语言模型方法相比检索性能得到了很大提高。
参考:基于语言模型的信息检索系统研究