aihot  2020-11-12 11:21:28  OpenCV |   查看评论   

  N代表文档总数,n代表出现对应单词的文档个数,f指文档中出现对应单词的词频,qf是查询语句中对应单词的词频,dl是文档长度。

  BM25F模型是BM25的改进算法,它提出了域的概念,它将一篇文档划分为若干域,对于不同的域,在计算中给予不同的权值。

语言模型方法

  假如利用朴素贝叶斯算法对相关/不相关文档进行分类,那是要分别计算文档由相关文档集生成的概率P(R|D)和由不相关文档集生成的概率P(NR|D),然后比较其大小。

  BIM是因为没有相关/不相关的标签,所以将所有训练文档都认为是不相关文档,对于一个测试文档计算P(R|D)/P(NR|D)。

  语言模型方法和上述两种看起来很相似,但实际上思路不同,语言模型方法尝试去计算查询语句由测试文档生成的概率,概率越大则认为相关性越高。所采用的,就是朴素贝叶斯中计算测试文档由相关/不相关训练文档集生成的概率。(就是假如朴素贝叶斯算法判别时不用贝叶斯决策理论,就只按照测试文档由相关训练文档集生成的概率作为相似度的标准,那么把这种思路的朴素贝叶斯算法中的测试文档换成查询语句,相关训练文档集换成测试文档,那就得到了语言模型方法)

  既然是语言模型方法,自然要考虑到是以一元、二元还是多元的文法模型为基础来计算生成概率。除此之外,还必然要考虑到数据平滑问题,这在《浅谈自然语言处理基础》中详细讲过,比如Good-Turing估计法、Katz、Kneser-Ney。

机器学习排序

  机器学习排序方法我们简单介绍一下,过程主要分为四步:人工标注训练数据、文档特征抽取、学习分类函数、采用模型进行分类。

  通过人工标注大量训练数据显然不现实,不过我们可以利用用户的点击数据。

  机器学习排序方法最大的好处在于,前面的普通检索模型方法主要考虑了词频、逆文档频率和文档长度这几个因子来拟合排序公式,因为考虑的因素不多,所以人工拟合的方式可行,但是随着搜索引擎的发展,对于某个网页进行排序所考虑的因素越来越多,比如网页的PageRank值、查询和文档匹配的单词个数、网页URL链接地址长度都会对网页排名产生影响,那使用人工拟合的方法就很难行得通了。

  先简述一下机器学习排序的思路,我们先将一篇篇文档转换成特征向量,比较常用的特征包括:

  • 查询词在文档中的词频信息
  • 查询词的IDF信息
  • 文档长度
  • 网页的入链数量
  • 网页的出链数量
  • 网页的PageRank值
  • 查询词的Proximity值,即在文档中多大的窗口内可以出现所有的查询词

  有了文档的特征向量之后,接下来的处理方式可以分为三种思路:单文档方法、文档对方法和文档列表方法。

单文档方法

  单文档方法就是最先想到的机器学习方法,我们有了文档的特征向量,我们也有了文档的标注结果:相关/不相关。那我们就可以训练出一个模型出来判断文档的相关性,比如用SVM或者LR都可以。如果可以给出得分,那么得分大于某个阈值为相关,小于则为不相关。LR给出得分很简单,SVM其实也应该可以根据函数距离的大小来给出相应的可信度得分。

文档对方法

  文档对方法的核心思想是,给定一个查询和文档对<Doc1,Doc2>,我们需要判断这种顺序关系是否合理,也即Doc1排在Doc2前面合不合理。

文档列表方法

  单文档方法将训练集里每一个文档当做一个训练实例,文档对方法将同一个查询的搜索结果里任意两个文档作为一个训练实例,而文档列表方法是将每一个查询结果对应的所有搜索结果列表整体作为一个训练实例。

  文档列表方法的目的是尽量使得机器学习模型对搜索结果的打分顺序和人工打分顺序尽可能相同,也即模型预测的搜索结果的排列顺序与人工标注的排列顺序尽可能相同。

  结果表明,基于文档列表方法的机器学习排序效果要好于前述两种方法。

检索质量评价标准

  准确率和召回率,这两个就不说了,除此之外还有P@10和MAP。

  P@10就是看前10个文档当中,有多少个文档是相关文档,有多少个相关文档,P@10就是十分之几。

  MAP指标稍微复杂一点,MAP是衡量多个查询的平均检索质量的,而AP是衡量单个查询的检索质量的。假设用户搜索结果中有3个文档是相关的,它们应该排在第1、2、3位,那(Σ(理论位置/实际位置))/相关文档个数,就是这次查询的AP值。

  对多次查询的AP值取平均,就得到了MAP值。

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自浅谈搜索引擎基础(上)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]