这就是搜索引擎--读书笔记八--检索模型与搜索排序

检索模型与搜索排序

前言

搜索结果排序是搜索引擎最核心的构成部分,很大程度上决定了搜索引擎的质量好坏以及用户接受与否。尽管搜索引擎在实际结果排序时融合了上百种排序因子,但最重要的两个因素还是用户查询和网页的内容相关性及网页链接情况。那么,我们得到用户搜索词之后,如何从内容相关性的角度上对网页进行排序输出呢?

判断网页内容是否与用户查询相关,这依赖于搜索引擎所采用的检索模型。搜索引擎的核心是判断哪些文档是和用户需求相关的,并按照相关程度排序输出,所以相关程度计算是将用户查询和文档进行匹配的过程,而检索模型就是用来计算内容相关性程度的理论基础和核心部件。比较常见的几种检索模型有:布尔模型、向量空间模型、概率模型、语言模型以及机器学习排序算法。下面,我讲解一下比较基础的前三种模型。

首先我们得知道什么样的检索模型是一个好模型呢?我们得到用户查询词之后把待搜索文档分为四类:内容相关以及包含查询词、内容相关但不包含查询词、内容不相关以及包含查询词、内容不相关并且不包含查询词。我们稍微思考之后应该能够知道,前两项应该是我们比较想要的搜索结果,即把这两项文档内容搜索输出的检索模型是比较好的模型。

布尔模型

最简单的一种检索模型,归其数学基础就是集合论。使用“与或非”这些逻辑连接词将用户的查询词串联起来。比如我们希望查找和苹果公司相关的信息,可以用下面的逻辑表达式来在作为查询:

苹果 AND (乔布斯 OR iPad2)

这个表达式的含义就是如果一篇文档里包含了“苹果”并且也包含了“乔布斯”或者“iPad2”,那么这个文档就是我们需要的,就可以把它作为搜索结果输出。

以上图为例:假设此时我们有5个文档,文档1(D1)包含了查询词“乔布斯”,文档4包含了查询词“乔布斯”和“iPad2”,其他文档含义一样。这时,我们可以很直观的看到文档1、3、4、5包含了“乔布斯”或者“iPad2”,而文档2、3、5包含了“苹果”一词,所以“苹果 AND (乔布斯 OR iPad2)”这一查询词就可以搜索到文档3、5,这两个文档就是满足整个逻辑表达式的。

问一问:看到这里,你知道布尔模型有哪些缺点吗,亲?

向量空间模型

这个模型可以算是我比较喜欢的模型了,虽然它的效率不及后面提到的几个模型,也许是我在看书的时候比较认真看这个模型吧,感觉挺高大上的。

向量空间模型把每个文档都看做是由t维特征组成的一个向量,其中每个特征会根据一定依据计算其权重,然后就计算文档之间或者查询和文档之间的相似性了。对于搜索排序任务来说,就计算用户的查询词和文档网页内容之间的相关性,然后根据相关性大小排序输出前K个结果即可。

特征权重计算

我们需要考虑两个因素:词频因子(Tf)和逆文档频率因子(IDF)

Tf:一个单词在文档中出现的次数,有两个计算公式:

WTf = 1 + log(Tf)

WTf = a + (1-a) * Tf / Max(Tf)

a是调节因子,经验值为0.4,Max(Tf)代表了文档中所有单词中出现次数最多的那个单词对应的词频数目。第二个公式有效的抑制了长文档的优势,因为虽说两个公式都可以,但是想想如果采用第一个公式,我们对于长文档和短文档来说,长文档中Tf普遍比短文档的值高,但是这并不意味着长文档就是我们需要的呀,所以,第二个计算公式更加的公正有效。

IDF:逆文档频率因子,其计算公式如下:

IDFk = log(N/nk)

N代表文档集合中总共有多少个文档,而nk代表特征单词k在其中多少个文档中出现过,即文档频率。显然,文档频率越高,则IDF就越小,IDF反映了一个特征词在整个文档集合中的分布情况,特征词出现在其中的文档数目越多,这个词区分不同文档的能力就越差。

特征权重:Weightword = Tf * IDF

对于某个文档D来说:

如果D中某个单词的词频很高,而且这个单词在文档集合的其他文档中很少出现,那么这个单词的权值会很高。

如果D中某个单词的词频很高,但是这个单词在文档集合的其他文档中也经常出现,或者单词词频不高,但是在文档集合的其他文档中很少出现,那么这个单词的权值一般。

如果D中某个单词的词频很低,同时这个单词在文档集合的其他文档中经常出现,那么这个单词权值很低。

相似性计算

根据上图可以列出下面的式子:

Cosine相似性就是计算特征空间中两个向量之间的夹角,夹角越小,说明两个特征向量越相似。但是有一种特殊情况:两个完全相同的文档,其在向量空间中的两个向量是重叠的,所以Cosine相似性计算结果是1。

概率检索模型

丫据说比向量空间模型效果更好,不过看到概率两个字我就有点蔫儿了,原谅我大一时候概率没学好啊,现在有时候还在补习。这里我先给出一些计算公式。

其它模型:HMM隐马尔科夫语言模型、翻译模型、BM25模型等等。

继续学习吧,骚年!

时间: 2024-10-29 19:10:18

这就是搜索引擎--读书笔记八--检索模型与搜索排序的相关文章

这就是搜索引擎--读书笔记一

这就是搜索引擎 -- 读书笔记一 相信搜索引擎对于每一个爱好算法甚至爱好技术的IT人员都具有强烈的好奇心吧,因为搜索引擎在互联网中的地位实在是不可撼动.想象如果互联网没有了搜索引擎,那么我们平常技术上出现瓶颈了怎么办?甚至连普通的生活都离不开搜索,大学生的你订餐了吗? 搜索引擎已经发展为每个人上网都离不开的重要工具,其技术发展历程是怎样的呢?其基本目标是什么?核心技术问题又是什么呢?在接下来的一系列博文中,我会根据读书和自己的总结用平乏的语言来表达出来,希望对朋友们有所帮助.另外,博友们如果有好

这就是搜索引擎--读书笔记二

网络爬虫基础 前言 通用搜索引擎的处理对象就是互联网网页,目前网页数量以百亿计,所以搜索引擎首先面临的问题就是:如何能够设计出高效的下载系统,以将如此海量的网页数据传送到本地,在本地形成互联网网页的镜像备份. 网络爬虫即起此作用,它是搜索引擎系统中很关键也很基础的构建.本次总结以及接下来的几次总结主要给大家简单介绍一下与网络爬虫相关的技术.说到爬虫,又想到了Python,所以首先了解一下爬虫的简单机制,这样对学习Python爬虫会有很大的帮助. 通用爬虫框架 如图所示 这是一个通用的爬虫框架流程

这就是搜索引擎--读书笔记三

前言 考虑到上次的网络爬虫总结一文对基础的知识还没有介绍完整,所以今天花一点时间来补充上次的网络爬虫基础知识.这次给大家总结了两个方面的内容:暗网抓取和分布式爬虫.希望对阅读本文的博友们有所收获. 暗网抓取 物理学研究表明,在目前宇宙所有物质的总体质量中,星系等可见物质占其中的20%,不可探测的暗物质占据了总质量的80%.互联网中暗网可以与宇宙的暗物质相类比,而其所占网页的比例,更是远大于暗物质占宇宙质量的比例,大约百倍于目前的明网网页. 什么是暗网 所谓暗网,是指目前搜索引擎爬虫按照常规方式很

这就是搜索引擎--读书笔记七--倒排列表压缩算法

倒排列表压缩算法 目前有很多种倒排列表算法可以选择,但是我们对评判算法的优劣需要定量指标.一般会考虑3个指标:压缩率.压缩速度以及解压速度. 压缩率是指数据压缩前和压缩后大小的比例,显然,压缩率越高,就越节约磁盘空间.而压缩速度是压缩单位量的数据所花的时间,但是压缩往往是在建立索引过程中进行的,这是一个后台进行的过程,不需要及时响应用户查询,即使速度慢一些也没有关系.所以普遍来说,压缩速度不是一个重要指标. 那么我们来看看解压速度.顾名思义,解压就是将压缩数据恢复到原始数据.这是一个实时响应过程

这就是搜索引擎--读书笔记四--索引基础

搜索引擎索引基础 前几天我阅读了搜索引擎索引这一章,发现倒排索引这一方法确实很巧妙和迷人,它包含的原理和设计方法很独到.所以接下来,我想把我学习到的索引方面的知识给大家讲解一下,总共分为三篇:索引基础.索引建立和更新.索引查询. 我们首先认识倒排索引基本概念 文档:一般搜索引擎的处理对象是互联网网页,而文档这个概念要更宽泛些,代表以文本形式存在的存储对象,相比网页来说,涵盖了更多形式,比如Word.PDF.HTML.XML等不同格式的文件都可以称为文档. 文档集合:由若干文档构成的集合称为文档集

这就是搜索引擎--读书笔记六--索引的查询

索引的查询处理 为搜索引擎构建索引,其目的是能更快速地提取与用户查询相关的文档信息,假设搜索引擎已经建立了索引,我们如何利用倒排索引来相应用户的查询呢?这一次的总结就是给大家分享一下搜索引擎对于用户查询的处理过程. 目前有两种常见的查询处理机制,一种称为一次一文档方式,另外一种称为一次一单词方式. 下面我们用一个具体例子来分别说明两种基本查询处理方式的运行机制.在这个例子里,假设用户输入的查询为“搜索引擎 技术”,而“搜索引擎”这个单词对应的倒排列表中,文档ID依次为{1,3,4},“技术”这个

这就是搜索引擎--读书笔记五--索引的建立与更新

索引的建立和更新 索引的建立 前一总结里说到,如果索引结构建立好了,可以提高搜索的速度,那么给定一个文档集合,索引是如何建立起来的呢?建立索引的方式有很多种,在这里我就书中提到的三种方法简单总结一下. 两遍文档遍历法 第一次文档遍历 第一次扫描文档集合时,并没有立即开始建立索引,而是收集一些的统计信息,比如文档集合包含的文档个数N.文档集合内包含的不同单词个数M以及每个单词在哪些文档中出现过的信息DF等等.将所有单词对应的DF值全部相加,就可以知道建立最终的索引需要多少内存了,然后在内存中将连续

《java并发编程实战》读书笔记13--Java内存模型,重排序,Happens-Before,

第16章 Java内存模型 终于看到这本书的最后一章了,嘿嘿,以后把这本书的英文版再翻翻.这本书中尽可能回避了java内存模型(JMM)的底层细节,而将重点放在一些高层设计问题,例如安全发布,同步策略等.它们的安全性都来自于JMM.本章将介绍Java内存模型的底层需求以及所提供的保证. 16.1 什么是内存模型,为什么需要它 16.1.1 平台的内存模型 在共享内存的多处理体系架构中,每个处理器都拥有自己的缓存,并且定期地与住内存进行协调.在不同的处理器架构中提供了不同级别的缓存一致性.要想确保

[IR课程笔记]概率检索模型

几个符号意义: R:相关文档集 NR:不相关文档集 q:用户查询 dj:文档j 1/0风险情况 PRP(probability ranking principle):概率排序原理,利用概率模型来估计每篇文档和需求相关概率,然后对结果进行排序. 贝叶斯最优决策原理,基于最小损失风险作出决策,返回相关的可能性大于不相关的可能性的文档: 基于检索代价的概率排序原理: crrP(R|D) + crnP(NR|D) < cnrP(R|D) + cnnP(NR|D) 如何计算概率 文档d可以表示为向量(d1