首页 > 代码库 > Solr In Action 笔记(2) 之 评分机制(相似性计算)

Solr In Action 笔记(2) 之 评分机制(相似性计算)

Solr In Action 笔记(2) 之评分机制(相似性计算)

1 简述

     《这就是搜索引擎》里面对相似性计算进行了简单的介绍。

      内容的相似性计算由搜索引擎的检索模型建模,它是搜索引擎的理论基础,为量化相关性提供了一种数学模型,否则没法计算。当然检索模型理论研究存在理想化的隐含假设,即假设用户需求已经通过查询非常清晰明确地表达出来了,所以检索模型的任务不牵扯到对用户需求建模,但实际上这个和实际相差较远,即使相同的查询词,不同用户的需求目的可能差异很大,而检索模型对此无能为力。几种常见的检索模型有:

  • 布尔模型:数学基础是集合论,文档和用户查询由其包含的单词集合来表示,两者的相似性则通过布尔代数运算来进行判定;缺点是其结果输出是二元的(相关和不相关),无法得出多大程度相关的结果,也就无法排序,同时让用户以布尔表达式进行搜索要求过高;
  • 向量空间模型:把文档看成是由t维特征组成的一个向量,特征一般采用单词,每个特征会根据一定依据计算其权重,这t维带有权重的特征共同构成了一个文档,以此来表示文档的主题内容。计算文档的相似性可以采用Cosine计算定义,实际上是求文档在t维空间中查询词向量和文档向量的夹角,越小越相似;对于特征权重,可以采用Tf*IDF框架,Tf是词频,IDF是逆文档频率因子指的是同一个单词在文档集合范围的出现次数,这个是一种全局因子,其考虑的不是文档本身的特征,而是特征单词之间的相对重要性,特征词出现在其中的文档数目越多,IDF值越低,这个词区分不同文档的能力就越差,这个框架一般把Weight=Tf*IDF作为权重计算公式,当然向量空间的缺点是其是个经验模型,是靠直觉和经验不断摸索和完善的,缺乏一个明确的理论来引导其改进方向,例如求Tf和IDF值的时候为了惩罚长文档,都需要加入经验值;
  • 概率模型:是目前效果最好的模型之一,okapi BM25这一经典概率模型计算公式已经在商业搜索引擎的网页排序中广泛使用。概率检索模型是从概率排序原理推导出来的,其基本思想是:给定一个用户查询,如果搜索系统能够在搜索结果排序时按照文档和用户需求的相关性由高到底排序,那么这个搜索系统的准确性是最优的。在文档集合的基础上尽可能准确地对这种相关性进行估计就是其核心。
  • 语言模型:1998年首次提出,其他的检索模型的思考路径是从查询到文档,即给定用户查询,如何找出相关的文档,该模型的思路正好想法,是由文档到查询这个方向,即为每个文档建立不同的语言模型,判断由文档生成用户查询的可能性有多大,然后按照这种生成概率由高到低排序,作为搜索结果。语言模型代表了单词或者单词序列在文档中的分布情况;
  • 机器学习排序算法:随着搜索引擎的发展,对于某个网页进行排序需要考虑的因素越来越多,这是无法根据人工经验完成的,这时候用机器学习就是非常合适的,例如Google目前的网页排序公式考虑了200多种因子。机器学习需要的数据源在搜索引擎中较好满足,例如用户的搜索点击记录。其分成人工标注训练、文档特征抽取、学习分类函数以及在实际搜索系统中采用机器学习模型等4个步骤组成。人工标注训练可由用户点击记录来模拟人为对文档相关打分的机制。

2 向量空间模型

    简述中介绍了好多种相似性计算方法,Solr采用了最基本的向量空间模型,本节就主要介绍下向量空间模型。其他的向量空间模型以后有时间进行学习吧。

 

Solr In Action 笔记(2) 之 评分机制(相似性计算)