恩,首先说语言模型是一个集大成的东西。。。千万不要以为自己知道了一元语言模型后就OK了。。。
据我所知,语言模型到现在为止,发到SIGIR上的论文超过100篇。。。应用语言模型的论文不计其数。。。
随着统计和机器学习的繁荣给了很多计算机领域一个全新的生命。语言模型也是在这种背景下产生的。。。更严格地说,它属于probabilistic relevance model中query generation的框架下。在此框架下,证明了语言模型不是无来由的孩子;而基于无监督的统计方法给了语言模型存活的资本;它的简单及灵活性给了它健壮的发展!
随着研究的进展,语言模型已经不仅仅局限检索问题,而泛化到用一种统计或者各严格地说,用模型的眼光来看待文本的生成过程。所以当在提出language model的时候,不要把它归结为简单的一元语言模型。我想一个语言模型最基本的问题还是如何刻画一个词的生成过程,这是它最基本的问题。。。而如何用这些词表示一篇文档的生成过程又是一个很关键的问题。就像PLSI和LDA,从广义的角度,它们都是language model。
语言模型应用到检索领域中,一个最最关键问题就是如何平滑。而这个问题其实可以归结到机器学习中最基本的问题:参数估计。为什么语言模型的平滑这么重要呢?一个最关键的common sense就是data sparseness。。。当我们仅有有限样本后,如何使得语言模型获得更好的泛化能力,成为了无数研究者的孜孜不倦努力的方向。很幸运,我们有一些很伟大的前驱者:
最常见的平滑方法【基于插值的】
线性插值:最最简单的方法,但是你确定你足够理解他了吗?答案我想对于刚刚接触语言模型的研究者,往往是“没有”。它适合什么样子的query?它为什么适合这个样子?它中间体现了tf.idf的思想了吗?
Dirichlet平滑:
关于它的基本常识,我不再啰嗦了。。。
同样的问题:它适合什么样子的query?它为什么适合这个样子?
两阶段语言模型:
翟老师的最最牛的一个模型,膜拜。但是它的理论框架在哪里?仅仅是公式的叠加吗?每个过程都在做什么?
如果想要了解上面的知识,翟老师的那篇30页左右的论文是必须看的。
其实对于语言模型还有一个很奇妙的事情,就是为什么它没有显式地引入IDF的思想,而结果却是非常robust呢? 一个比较新奇的方向也许是如何显示地在语言模型中引入IDF的概念~
语言模型和空间向量模型有一点还是值得大家注意的:
它每个维度都是一个概率值;而空间向量模型中,每个维度的权重实际可以是负的。。。因为这是坐标值。
如何学习语言模型呢?
1、理解probabilistic relevance model框架
Risk Minimization and Language Modeling in Information Retrieval,
Probabilistic relevance models based on document and query generation
2、理解基本的平滑方法
A study of smoothing methods for language models applied to ad hoc information retrieval,
Two-Stage Language Models for Information Retrieval
3、学习基本的语言模型检索方法:query likelihood and KL-divergence retrieval model
Document language models, query models, and risk minimization for information retrieval
4、理解如何用生成的方法来看待文本:PLSA和LDA
Latent Dirichlet Allocation
Unsupervised Learning by Probabilistic Latent Semantic Analysis
5、语言模型各种各样的应用。
比如:expert finding、page home finding等等。。。