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

静态索引裁剪

  前面讲的压缩方法都是无损压缩,这个方法是有损压缩,通过主动抛弃一部分不重要的信息来达到更好的数据压缩效果。

  因为对于用户查询来说,搜索系统往往只需要返回相关性最高的K个网页,不需要将相关网页都呈现给用户。所以可以将那些不重要的索引项聪哥倒排索引中清除掉,只保留重要的索引项。

  大体有两种不同的思路,一种被称为以单词为中心的索引裁剪,一种被称为以文档为中心的索引裁剪。

  以单词为中心的裁剪,其裁剪对象是单词对应倒排列表中的文档。设定一个阈值α,一个折扣因子,相似度低于阈值与折扣因子乘积的文档被剪除掉,当然要至少保留K个索引项。

  以文档为中心的裁剪,是在建立索引之前,只建立重要单词-文档的倒排列表,可以说是一种建立索引之前的预处理措施。而以单词为中心的裁剪,是在建好的倒排索引基础上对索引项进行删除。

检索模型与搜索排序

  搜索结果排序是搜索引擎最核心的构成部分。

  搜索结果排序是说,搜索引擎判断哪些文档是和用户需求相关的,并按照相关程度排序输出,而检索模型就是用来计算内容相关度的理论基础及核心部件。

  前面所描述的利用索引的查询方法讲述了如何利用索引找到包含查询词的文档,但并没有说如何计算文档与用户查询的相似度,毕竟包含查询词与相关性是两个独立的维度:

文档划分的4个象限

文档划分的4个象限

  其实我们需要的是相关文档,与是否包含查询词并无必然联系,但是搜索引擎所能做到的只是从包含查询词的文档中找出相关文档,也即只能处理第一三象限的内容,而对于第二四象限,搜索引擎就无能为力了,需要推荐系统来解决这种用户无法精确描述自己需求的场景,在《浅谈推荐系统基础》中也提到了,比如LDA,就可以发现两篇完全没有重复词汇的文档的相似性。

  这里我们只考虑通过检索模型来找到在包含查询词的文档之中,与用户需求相关的部分。

布尔模型

  布尔模型是检索模型中最简单的一种,其数学基础是集合论。布尔模型一般使用逻辑表达式,即『与/或/非』这些逻辑连接词将用户的查询词串联。对于布尔模型来说,满足用户逻辑表达式的文档就算是相关的。

  布尔模型输出的结果是二元的,要么相关要么不相关,至于文档在多大程度上和用户查询相关,能否按照相似度排序输出搜索结果,这些布尔模型都无能为力。

向量空间模型

  向量空间模型是目前已经非常成熟和基础的检索模型,前面反复提到的余弦相似度、TF-IDF,都与向量空间模型有密切联系。

  不严谨的讲,向量空间模型就是将文档看做t维特征组成的向量,每个维度的权重采用TF-IDF计算,然后通过余弦相似度计算不同文档(或与用户查询语句)所对应的特征向量之间的相似度。

  在搜索引擎的场景里,向量空间模型这一检索模型利用用户查询语句与文档之间的相似度代替了查询语句与文档之间的相关度。

  虽然前面已经多次提过余弦相似度和TF-IDF,这里还是简单说一下,余弦相似度公式是计算两个向量之间夹角余弦值的公式,通过余弦值可以得到两个向量之间的夹角,我们可以近似的认为,两篇文档特征向量之间的夹角越小,这两篇文档的相似性就越高。

  TF-IDF分为两部分理解,首先是TF(Term Frequency,词频),也即认为一篇文档中常出现的词要比不常出现的词更能反映该文档的主题,然后是IDF(Inverse Document Frequency,逆文档频率),也即认为在所有文档中都出现的词倾向于不能反映一篇文档的主题。我们结合这两条思路计算每个特征维度的TF-IDF权重值,也即TF值*IDF值,也即在一篇文档中常出现(TF高),却几乎不出现在其他文档中的词(IDF高),最能反映这篇文档的主题。

 

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

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