信息检索理论期末复习资料
第1章 信息检索
基本概念
- 信息检索定义:从大规模非结构化数据的集合中找出满足用户需要的资料并对其进行相关度排序
- 信息检索研究topic (了解 选择题):建模、Web搜索、文本分类、系统架构、用户界面、数据可视化、过滤和语言处理技术
- 索引:基于名词的、建立在文本上的一种数据结构,用于加快检索速度
- 倒排索引:随着文档的质量的增加,其中的词汇总量将达到一个阈值,不会再有新的词汇出现。倒排索引即是一种“词-文档”的映射表,词汇作行,文档作列,可以快速找到包含特定词的所有文档。
- 信息检索问题:信息检索系统的主要目标是检出所有和用户查询相关的文档,并且把检出的不相关文档控制在最低限度(重点是信息检索,而不是数据检索),最终目标是能够在大的文档集中快速、准确地回答查询
信息检索和数据检索区别(简答)
数据检索主要包括确定集合中的哪些文档包含用户查询中的关键字,信息检索系统的用户更注重检出与某个主题相关的信息,而不是检索出符合用户查询的数据。
信息检索检出的对象可以是不精确的,小错误可能被忽视。例如,信息检索系统的用户愿意接受结果中包含查询项同义词的文档,即使这些文档没有包含任何查询项。与此相反,在数据检索系统中,1000个检索对象中出现一个错误对象就意味着彻底失败。
数据检索系统,如关系数据库,其处理对象具有明确定义的结构和语义;而信息检索系统处理的是没有很好结构的自然语言文本。
信息检索系统的高层软件架构
爬取过程:通过网络爬虫获取信息,需要有效地获取数据,同时避免对数据源服务器造成过大负载
索引过程:信息检索系统的核心部分,通过处理爬取到的数据,提取出关键词,然后建立一个映射,指向包含这些关键词的文档,这个映射就是“倒排索引”。
检索和排序过程:当用户输入一个查询时,系统会首先进行查询分析和扩展,然后使用索引来找到相关的文档。对于这些文档,系统需要确定这些文档的相关性,以便将最相关的文档首先返回给用户。
第2章 用户搜索界面
用户搜索界面(人机交互)作用
帮助用户理解和表达他们的信息需求并制定查询
在可用的信息源中进行选择
理解搜索结果
跟踪搜索进程
信息查找和探索式搜索
信息查找(information lookup):类似于事实检索或问题回答(QA),只需要简短而离散的信息即可:数字、日期、名称,标准的Web搜索在这些方面可以做的很好。(中美建交日期)
探索式搜索(exploratory search)可分为学习和调查两类(填空 简答)
- 学习型搜索(learning):用户通过搜索来获取新的知识或理解某个主题,需要多个查询相应对,并需要用户花费时间扫描和读取多个信息项,并综合这些内容来形成新的理解。
例如,当你在网上搜索关于气候变化的信息,你可能会阅读各种文章、报告和研究,以了解气候变化的原因、影响和可能的解决方案
- 调查型搜索(investigating tasks):用户通过搜索来比较和评估各种选项,是一个更长期的过程,意指”在相对较长的一段时间内进行多次迭代,返回的结果可能要在整合进个人和专业知识库之前,进行严格的评估”。
例如,当你在购买新手机时,你可能会在较长一段时间内搜索各种手机的评价和价格,以便做出最佳选择。
第3章 信息检索建模
基本概念
建模定义
信息检索中的建模是一个以产生排序函数(检索系统的核心)为目标的复杂过程,该排序函数能够根据给定的查询给文档打分。这个过程包含两项主要的任务:
构想出表示文档和查询的逻辑框架
定义一个针对给定查询的计算文档排名的排序函数
索引词/项
定义
严格地说,一个索引词是一个关键词(或者一组相关联的词),可以独立地表达某种意思,通常扮演名词性的角色。
从更广义的形式看,索引词可以是文档集内文档正文中的任何一个词。
索引词可以直接从文档的正文中抽取出来,也可以由图书馆员和信息科学家等专家来制定
作用:可以高效地实现,并且可以简单地用查询进行查阅,减少了用户指定查询的精力
全文索引:以全部文本信息作为检索对象的一种信息检索技术,文档中的任何一个词都可以进行查询,在查询这个词的时候会返回该词出现的频率和位置
模型描述
一个信息检索模型是一个四元组[$D$,$Q$,$F$,$R(q_i,d_j)$],其中
$D$是文档集中文档的逻辑视图(或表示)的集合
$Q$是用户信息需求的逻辑视图(或表示)的集合,这些表示称为查询
$F$是一个对文档、查询及其关系建模的框架,如集合与布尔关系、向量与线性代数运算、样本空间与概率分布
$R(q_i,d_j)$是排序函数,对查询表达式$q_{i}\in\boldsymbol{Q}$和文档表达式$d_{j}\in\boldsymbol{D}$赋予一个实数,排序函数定义了关于查询$q_i$的文档次序。
模型分类
三种主要的信息检索模型:基于文本、基于链接和基于多媒体对象的模型
基于文本的模型,可以分为无结构文本的模型和考虑文本结构的模型
对于无结构文本,信息检索中的三个经典模型是布尔模型、向量模型和概率模型
文档的逻辑视图
- 现代计算机使得一篇文档可以用其包含的所有词来表示,这样的话,我们说这个检索系统采用了文档的全文文本逻辑视图(或者表示形式)
- 然而,对于规模巨大的文档集,人们可能关注如何减小代表性关键词集合的规模以减小计算代价。这可以通过以下文本转换操作实现:
- 禁用词去除:例如冠词和连词
- 词干提取:把不同的单词简化为它们共有的语法根形式
- 名词组识别:去除形容词、副词和动词
- 压缩
完整流程
①格式化处理,去除所有的文档格式
②去除重音符号、空格等、去除禁用词、名词组识别
③词干提取,生成受控词表
如果有成熟的知识库、词典,可以格式化处理之后跳过第二步直接生成受控词表,形成基于特定词的检索系统
也可以所有词作为索引词,形成全文检索系统
三种经典模型
布尔模型(Boolean Model)
定义
- 布尔模型是一个基于集合论和布尔代数的简单模型。
- 在布尔模型中,一个查询词就是一个布尔表达式,包括关键词以及逻辑运算符。
- 通过布尔表达式,可以表达用户希望文档所具有的特征,如必须包含哪些关键词,不能包含哪些关键词等
- 由于文档必须严格符合检索词的要求才能够被检索出来,因此布尔检索模型又被称为“完全匹配检索”。
- 优点:模型形式简洁和其由于采用二值索引项权重带来的简单性
- 缺点
- 索引词被假定为相互独立的,没有考虑索引词间的依赖性
- 无法进行相关度计算排序
向量空间模型
- 定义:基于代数的模型,将文档和查询表示为向量,并使用余弦相似度来衡量它们之间的相似度
- 优点
- 索引词权重提高了检索质量
- 可以处理部分匹配的情况,而不像布尔模型那样要求严格的匹配
- 它的余弦排序公式根据文档相对于查询的相似度进行排序
- 文档长度归一化被自然地内建于排序中
- 在信息检索系统中,较长的文档通常会因为包含更多的词语而在排名中占据较高的位置。文档长度归一化的目的是消除文档长度对排名的影响,使得较短和较长的文档能够公平地进行比较(了解)
- 缺点:
- 索引词被假定为相互独立的,没有考虑索引词间的依赖性
- 语义敏感度差,使用不同词组表达相似意思的文档无法关联
- 计算复杂度较高,需要大量的存储空间
概率模型
- 定义:一种基于概率框架的信息检索解决方案,用于衡量文档与查询相关性的概率,以便搜索引擎能够根据相关性对文档进行排名。
- 优点:从理论上讲,概率模型的优点是它的最优性,即基于系统可获得的信息能够计算文档的相关概率,并按照相关概率降序排列(然而,由于文档的相关性受到系统之外因素的影响,因此这种方法的实际效果并不好)
缺点
索引词被假定为相互独立的,没有考虑索引项间的依赖性
需要做初始估测把文档分为相关和不相关集合
并没有考虑到索引词出现在文档中的频率(即所有的权重是二值的)
缺乏文档长度归一化
TF-IDF权重
总结
TF-IDF是信息检索领域中的一种加权算法,是单词在文档中重要性的体现。TF指词频/项频,表示单词在文档中出现的频率。IDF指反比文档频率,表示单词在整个文档集合中的常见程度或罕见程度。
词频(Term Frequency,TF)
定义:索引词$k_i$在文档$d_j$中的价值,或者说权重,应该与词频$f_{i,j}$成正比。也就是说,词$k_i$在文档$d_j$的正文中出现越多,则词频权重$TF_{i,j}$也越高
计算公式
反比文档频率(Inverse Document Frequency,IDF)
定义:用于衡量单词在整个文档集合中的常见程度或罕见程度
作用:帮助纠正像of、as、the等常见词的权重,通过采用反比文档频率,可以最小化常见词的权重,同时使罕见词的影响更大。
穷尽性(Exhaustiveness):IDF对于区分不同单词的能力。如果一个单词在整个文档集合中都很常见,那么它的IDF值会很低,这意味着它在区分文档之间的重要性方面的能力较弱。因此,穷尽性较低的单词可能无法提供足够的信息来区分文档,因为它们在整个文档集合中都很常见。
特异性(Specificity):IDF对于识别罕见单词的能力。对于在整个文档集合中罕见的单词,其IDF值会较高,这意味着它在区分文档之间的重要性方面的能力较强。具有较高特异性的单词可能提供更多的信息,因为它们在整个文档集合中相对罕见,可以更好地区分文档。
计算公式
其中$N$是文档集中的文档数量,$n_i$是索引项$k_i$的文档频率
- 文档频率和词频
文档频率(DF):包含特定单词的文档数量。它用于衡量一个单词在整个文档集合中出现的频率。文档频率越高,表示这个单词在更多的文档中出现,可能是一个常见词。
词频(TF):在单个文档中特定单词出现的频率。它用于衡量一个单词在单个文档中的重要性或相关性。词频越高,表示这个单词在文档中出现的次数越多。
- 相对文档频率(RDF)
定义:某个特定词项在文档集合中的出现频率相对于整个文档集合的大小而言的频率
计算公式:$RDF_i=\frac {n_i}N$
TF-IDF
第4章 检索评价
检索评价定义
- 检索评价针对信息检索系统响应用户查询的返回结果,系统地给出了一个量化的指标。这个指标应该和检索结果与用户的相关性直接联系。
- 计算这个指标的通常方法是:对于给定的一组查询,比较由系统产生的结果和由人产生的结果(注意这里的检索评价意味着检索结果的质量,而不是系统的性能,即它能多快的处理查询)
精度和召回率
精度(Precision):检出的相关文献量与检出文献总量的比率,是衡量信息检索系统检出文献准确度的尺度。
召回率(Recall):检出的相关文献量与系统文献库中相关文献总量的比率,它反映该系统文献库中实有的相关文献量在多大程度上被检索出来。
- P@5 :precision at 5 ,只考虑检索结果前5条时的precision
平均精度和平均精度均值
理论
- 平均精度(Average Precision,AP)是对检索结果的排序质量进行评估的一种方法(精度-召回率曲线下的面积)
- 平均精度考虑了检索到的相关文档在排序列表中的位置,从而更全面地评估了检索系统的检索质量。
计算过程如下:
- 对于每个查询,系统返回一组检索结果,并且这些结果按照相关性进行排序。
- 对于每个查询,计算出每个相关文档在排序列表中的精度值。
- 确定每个相关文档在排序列表中的位置(rank)。
- 计算每个相关文档的精度值,精度值的计算公式为:精度 = (相关文档的数量) / (相关文档在排序列表中的位置)
- 重复以上步骤,直到计算出每个相关文档在排序列表中的精度值。
- 将每个查询的精度值进行平均,得到该查询的平均精度(AP)。
- 最后,对所有查询的平均精度(AP)进行平均,得到平均精度均值(Mean Average Precision,MAP)。
平均精度均值(MAP)是所有查询的平均精度的平均值。它是对整个检索系统在多个查询下的检索质量进行综合评估的指标。MAP的取值范围在0到1之间,得分越高代表检索系统的检索质量越好。
案例
假设我们有一个查询,相关文档有10个,系统返回了15个排序后的文档。在这15个文档中,有3个是与查询相关的。我们想要计算每个相关文档在排序列表中的精度值。
相关文档的排名如下:
- 相关文档1:排名第2
- 相关文档2:排名第5
- 相关文档3:排名第9
现在我们可以计算每个相关文档在排序列表中的精度值:
- 相关文档1的精度值 = 1 / 2 = 0.5
- 相关文档2的精度值 = 2 / 5 = 0.4
- 相关文档3的精度值 = 3 / 9 = 0.33
- 其它7个相关文档并没有出现在排序队列中(召回率低),因此不在其中的文档的精度设为0
这个查询的平均精度AP=(0.5+0.4+0.33+0*7)/ 10 = 0.123
排序倒数和平均排序倒数
排序倒数(Reciprocal Rank):对于给定查询,搜索引擎返回的结果列表中,第一个相关文档的倒数排名。如果第一个相关文档在第一位,其排序倒数为1;如果在第二位,排序倒数为1/2;在第三位则为1/3,以此类推。
多个查询的排序倒数的平均值即为平均排序倒数(Mean Reciprocal Rank,MRR),用于衡量整个信息检索系统的检索质量。
- MRR是倾向于那些第一个正确的结果出现在排序顶部的指标。它总是介于0~1之间,并且和平均精度有紧密的相关性,这是好的特性。同时MRR也表示一些缺点,比如它只考察第一个正确的结果,且只能取一些离散值,如1、1/2、1/3。
- MRR通常用来评测那些非常注重第一个正确答案的情况,例如QA会话、URL和主页查询
F值:调和平均
- F值是精确率和召回率的调和平均值,它能够综合考虑系统的准确性和完整性。
$r(j)$为排序列表第j个位置的召回率,$p(j)$是在排序中第j个位置的精度,$F(j)$是排序中第j个位置的调和平均
- 调和平均指标也常常用来评价文本分类算法,在用于这一目的时,它被称为$F_1$值
面向用户的指标
CG和DCG
- CG代表累积增益(Cumulated Gain),它是搜索结果列表中所有结果的相关性值的总和。CG不考虑结果在列表中的排名,而是简单地将所有相关性值相加。
- DCG代表折扣累积增益(Discounted Cumulative Gain),它是对CG的改进。DCG考虑了结果在列表中的排名,认为相关性更高的文档在搜索结果列表中出现得越早越有用。因此,DCG使用对数函数对相关性值进行折现,使得排名较低的文档相关性值受到更大的惩罚。
- 在DCG中,高相关性文档出现在搜索结果列表的前面会得到更高的分数,而低相关性文档出现在后面会得到较低的分数。这种折现的方式使得搜索结果列表中相关性较高的文档更加突出,更符合用户的需求。
- 总的来说,DCG是一种用于衡量搜索结果质量的方法,它考虑了搜索结果的相关性和排名,更符合用户对搜索结果的期望。
优点:
能够区别高度相关的文档和轻度相关的文档,因为前者有着更高的相关性分数
系统的结合文档排序和相关性分数
累计增益提供了在排序中任意位置上的单值检索质量指标,且独立于召回率
累计增益强调了相关文档在排序中某个特定位置所产生的增益,这使得该指标对野值有更好的免疫能力
折扣累计增益能够减少在排序底部发现的相关文档的影响
- 缺点:
- 要生成多层相关性水平更难且更耗时
- 并且由于多层相关性分数往往依赖于主观性解释,使其更容易产生错误
第5章 相关反馈与查询扩展
基本概念
- 相关反馈(relevance feedback):通过用户的反馈调整用户查询的过程(用户清楚地提供了查询相关文档的信息)
- 查询扩展(query expansion):查询的相关信息用来扩展查询
- 显示反馈:用于查询重构的信息是直接由用户提供的
- 隐式反馈:用于查询重构的信息是由系统潜在的提供的
显示反馈信息
- 用户选择的相关结果(相关反馈)
- 用户点击的相关结果(点击反馈)
隐式反馈信息
局部分析:从排名最靠前的排序结果中生成反馈信息,利用结果聚类
全局分析:从外部资源获得反馈信息,例如同义词典;利用文档间相似度
基于点击的显示反馈反映了用户对于给定查询特定答案的偏好
向量模型的相关反馈:Rocchio方法
基本思想:重构查询使得它更靠近向量空间中相关文档的区域,远离不相关文档的区域
Rocchio算法的核心是一个公式,其中包含了一些变量和权重,这些权重($\alpha, \beta, \gamma$)负责塑造修改后的向量,使其更接近或更远离原始查询、相关文档和不相关文档。
- 如果用户决定修改查询不应包含原始查询、相关文档或不相关文档中的术语,则相应类别的权重($\alpha, \beta, \gamma$)值应设置为0。只考虑相关文档为正反馈,只考虑非相关文档为负反馈。
第6章 文档:语言及属性
文档
- 文档是文本信息的基本单元
- 文档有特定的语法和结构,文档的语法用来表示结构、显示样式、语义,甚至外部行为。(在很多情况下,这些元素中的一个或者多个隐含在文本中或者被一同提供。比如,章节等结构元素就有固定的格式样式)
元数据
元数据(metadata):数据的数据,关于数据组织、各种数据域以及它们之间关系的信息
伴随文本的元数据的通常形式,包括作者、出版日期、出版来源、文档长度(以页数、词数或字节为单位)以及文档类型(如书、文章或者备忘)
常见的元数据:机器可读目录(Machine Readable Cataloging Record,MARC)和资源描述框架(Resource Description Framework,RDF)
- 人们利用RDF这个框架描述Web资源,以便更加容易地自动处理信息
- RDF并没有设定任何特殊的应用或语义领域,它由结点和附在结点上的属性-值对的描述所构成。结点可以是任意的Web资源,也就是统一资源标识符(Uniform Resource Identifier,URI)
格式
常见文本格式:Tex、富文本格式(Rich Text Format,RTF)、便携文档格式(Portable Document Format,PDF)、Postscript(编程式绘画语言)、多用途互联网邮件扩展(MIME)
常见压缩软件及格式:Compress(UNIX)、ARJ(PC)和ZIP(如UNIX中的gzip以及Windows中的Winzip)
常见图像格式:GIF、JPEG、TIFF、PNG(便携式网络图像,已成为Web上的事实标准);动态图像:MPEG
标记语言
标记被定义为额外的文本语法,用来描述格式行为、结构信息、文本语义和属性等。标准的标记元语言是已经提到过的SGML,SGML的一个重要子集就是Web的元语言——可扩展标记语言(XML)。Web使用的标准标记语言是超文本标记语言(HTML),它也是SGML的一个特例
HTML也是SGML的一个实例,HTML基于SGML,虽然HTML也有一个HTML文档类型定义(Document Type DEfinition,DTD),但是大多数的HTML实例都不会显式地引用DTD,HTML文档里也可以嵌入其他媒体
XML是SGML的一个精简集,也就是说,XML和SGML都是一种元标记语言
RDF
- RDF现在已成为采用一系列语法格式对Web资源的概念性描述和建模的普遍方法。实际上,它已经是语义网事实上的标准语言。
- RDF数据模型与实体关系和类图等经典的概念建模方法类似,利用“主语—谓语—宾语”的三元组对资源进行陈述,特别是Web资源。
- RDF语句集是一个带标签的、有向多边图
HyTime
超媒体/基于时间的结构语言(Hypermedia/Time-based Structuring Language,HyTime)是定义多媒体文档标记的标准
HyTime是规定文档通用超媒体结构的SGML架构
直接使用HyTime表示的超媒体内容包括
文档对象的复杂定位
文档对象之间的关系(超链接)
文档对象之间数值的、可度量的关联
文档预处理
- 词汇分析,用来处理数字、连字符、标点符号和字母的大小写
- 去除禁用词,用来过滤对于检索来说区分度非常低的单词
- 对剩下的词进行词干提取,去除词缀(也就是前缀和后缀),使得文档检索包含查询项的语法变化
- 选择索引项或者关键词,这个阶段决定哪些词/词干(或词组)可以用作索引元素
- 创建同义词典等词类结构,或者直接在文本中抽取结构,以便使用相关项去扩展原始查询
第8章 文本分类
机器学习发展历史
1950年代:机器学习诞生,早期研究集中在感知器和神经网络。
1960年代:符号主义兴起,机器学习研究转向符号处理和知识表示。
1970年代:连接主义复兴,机器学习研究重新关注神经网络。
1980年代:机器学习理论取得重大进展,支持向量机和决策树等算法被提出。
1990年代:机器学习应用领域不断扩大,数据挖掘、文本挖掘等领域兴起。
2000年代:机器学习进入快速发展时期,深度学习算法取得突破性进展。
2010年代:机器学习成为人工智能的核心技术,广泛应用于计算机视觉、自然语言处理、语音识别等领域。
基本概念
分类有答案,聚类无答案
机器学习主要分为有监督、无监督、半监督三种
有监督:需要从输入的训练数据中学习一个函数
无监督:没有训练数据,包括神经网络模型、独立成分分析以及聚类
半监督:少量标注数据和大量未标注数据结合起来
模型
第9章 索引和搜索
在使用索引的检索系统中,系统的效率可以用如下方式来衡量:
- 索引时间:建立索引所需的时间
- 索引空间:生成索引时所使用的空间
- 索引存储:当索引生成后,保存索引所需要的空间
- 查询时延:从查询到达检索系统与答案生成之间的时间间隔
- 查询吞吐量:每秒钟处理的平均查询数目
第10章 并行与分布式信息检索
并行系统和分布式系统
并行系统是指在计算机系统中,多个处理器同时工作来解决一个问题的系统。这些处理器可以共享内存和其他资源,彼此之间通过高速通信互联。
分布式系统是指由多台计算机组成的系统,这些计算机通过网络互联,彼此之间可以进行通信和协作。设计目的是将计算任务分配到不同的计算机上进行处理,以实现负载均衡、提高系统的可靠性和扩展性。
总的来说,并行系统是指多个处理器同时工作来解决一个问题,而分布式系统是指多台计算机通过网络互联,共同完成一个任务。两者都是为了提高计算性能和系统的可扩展性。
代理
在信息检索领域,代理(broker)在并行与分布式信息检索中发挥着关键作用。代理是一种中介实体,负责协调和管理分布式系统,以更高效地实现大规模的检索任务。
- 资源发现:代理负责维护分布式系统中的索引和元数据,帮助用户发现和定位所需的信息资源。代理通过维护分布式索引来提高资源发现的效率和准确性。
- 查询路由:代理根据用户的查询需求,将查询路由到适当的数据源或索引节点,以实现并行处理和分布式搜索。这有助于提高检索效率和降低系统负载。
- 负载均衡:代理可以根据系统负载情况动态地分配查询任务,以实现负载均衡。这有助于避免单个节点负载过重,提高系统的整体性能和稳定性。
- 结果聚合:代理收集和整合来自不同节点的检索结果,并将最终结果返回给用户。这样的结果聚合可以提供全面的搜索结果,覆盖了整个分布式系统中的信息资源。
- 系统优化:代理可以通过监控系统性能和用户行为,对系统进行优化和调整。例如,根据用户查询模式和数据分布情况,优化索引结构和查询处理策略,以提高系统的整体效率和性能。
分类
- 根据处理器个数、相同或不同的软件、通信媒介区分出7种类型的分布式和并行系统:标准搜索、并行搜索(SIMD)、并行搜索(MIMD)、基于集群的搜索、本地联合搜索、分布式搜索、联合搜索
- 首先,SIMD代表单指令,多数据。这种并行计算模式是指在同一时间内,一条指令可以同时作用于多个数据元素。这种方式适合于需要对大量数据进行相同操作的情况,比如图形处理中对大量像素进行相同的颜色处理。
- 与之相对的是MIMD,即多指令,多数据。这种并行计算模式允许多个处理器同时执行不同的指令,处理不同的数据。这种方式更适合于需要同时处理多个不同任务或数据的情况,比如分布式系统中的多个节点同时执行不同的任务。
- 总的来说,SIMD适合于需要对大量数据进行相同操作的情况,而MIMD适合于需要同时处理多个不同任务或数据的情况。
- 根据中央化和控制的程度,分布式信息检索系统也可以分为:客户端/服务器:服务器是服务提供者,客户端是消费者、对等(P2P):网络中的每台机器都有同等的能力和责任
数据划分
文档划分和项划分
- 文档划分:水平地切分数据矩阵,将文档分在多个子任务中,查询时每个子任务在分配给他的子文档集上执行该查询,最后来自来自每个文档集的结果被合并到一个最终的结果列表中
- 项划分:垂直地切分数据矩阵,将索引项分配到不同的节点/处理器,使得对每篇文档的执行过程都传播到每个节点,最后来自每个节点的结果被合并到一个最终的结果列表中
- 项划分主要任务:划分索引使得 ①相互联系的处理器或服务器的数目最小 ②负载平均地分布到所有可用的处理器或服务器上
- 文档划分能提供比项划分更加简单的倒排索引构建和维护,项划分能够导致更低的资源使用率,更具体来说,它极大地减少了硬盘访问次数和数据交换量。
- 当项在文档和查询中的分布非常不均衡时,文档划分的性能更好。当项在用户查询中均匀分布时(这个条件和自然文本更近似),项划分的性能更好
- 虽然文档划分保证了负载均衡,每个查询的代价被平等地分配出去,但文档划分系统的主要缺点是执行了很多不需要的操作来查询那些可能只包含很少(甚至没有)相关文档的子文档集
- 项划分的主要缺点是必须建立和维护整个全局索引,这限制了它的可扩展性。因此,它在实际的大规模搜索引擎中并不实用。此外,项划分的响应时间有更大的变数,要解决这个问题需要更加复杂的平衡机制
逻辑/物理文档划分
在使用倒排索引的系统中,我们还有逻辑文档划分和物理文档划分
逻辑文档划分是指将逻辑上相邻的文档分配到同一个节点上进行处理,在逻辑上使用和原有序列算法一样的倒排索引。这样可以提高查询效率,因为相关的文档通常会被同时访问
物理文档划分则是将文档的实际存储位置进行划分,文档被物理地划分成分离的、自包含的子文档集。每个节点有一个子文档集,每个子文档集有自己的倒排索引,在执行查询时搜索进程间并不共享任何东西,通常是为了分布式存储和负载均衡的需要。
逻辑文档划分比具有相似并行性(可以同时访问和处理不同位置上的文档,从而实现并行处理)的物理文档划分需要更少的通信,所以它更有可能提供更好的总体性能。另一方面,物理文档划分提供更多的灵活性(如可以单独搜索文档划分)。并且,如果要将已有的信息检索系统转换成并行系统的话,使用物理文档划分更加简单,而对于分布式信息检索系统,这是唯一可行的方案
转换成并行系统简单
减少逻辑复杂性:物理文档划分是基于文档的物理存储位置进行划分,相对于逻辑文档划分,它更加直观和简单。在现有的信息检索系统中,文档的物理存储位置已经存在,因此只需要基于这些存储位置进行划分,而无需对文档的逻辑关系进行复杂的重新设计。
易于并行化处理:由于物理文档划分将文档存储在不同的物理位置上,这使得可以更容易地实现并行化处理。每个物理位置上的文档可以被不同的处理单元同时访问和处理,从而提高系统的并行处理能力。
现有基础设施:在已有的信息检索系统中,通常已经存在了物理存储设施,如分布式文件系统或对象存储。利用这些现有的基础设施,可以更加方便地实现物理文档划分,并将系统转换成并行系统,而无需进行大规模的基础设施改造。
分布式唯一可行方案
- 并行处理优势:在分布式系统中,物理文档划分能够更好地支持并行处理。由于文档存储在不同的物理位置上,可以更容易地实现并行化处理,每个节点可以独立地处理自己所负责的文档集合,从而提高系统的处理能力和效率。
- 降低通信开销:采用物理文档划分可以减少节点之间的通信开销。在逻辑文档划分中,由于文档的逻辑关系可能跨越多个节点,需要频繁地进行节点间的通信和数据交换。而物理文档划分能够将相关的文档存储在同一个节点上,减少了节点间的通信开销。
- 容错性和可扩展性:物理文档划分更有利于系统的容错性和可扩展性。在分布式系统中,节点的故障是常态,采用物理文档划分可以更好地控制故障的影响范围,提高系统的容错性。同时,当系统需要扩展时,也更容易地向系统中添加新的节点,而无需对文档的逻辑关系进行大规模的调整。
第11章 Web检索
介绍
Web可以被看成是一个非常大的、公开的、非结构化的,但却无所不在的数据库,这就需要有效的Web信息管理、检索以及过滤的工具,所以Web搜索引擎成为了互联网中最常用的工具之一
大规模的可用数据加上快节奏的变化,使得从Web上搜索相关信息变得非常困难
问题
和数据本身相关的问题
分布式数据
高比例的不稳定的数据(变化)
大容量的数据
非结构化和冗余的数据
数据的质量
异质数据(数据来源于各种媒体类型,每种类型来自不同的形式,而且它也通过不同语言进行表达,这些语言有各种字母表和文字体系,字母表也可能会相当大)
用户和用户与数据交互的问题(以交互为中心的问题)
- 表达查询:人们的需求或者所要完成的任务通常都不容易以”查询”的形式表达
- 解释结果:即便用户能够完美表达查询,但答案可能也会被拆成几千甚至几百万的网页,或者根本不存在
Web图的结构
Web图的拓扑结构:蝴蝶结结构(bow-tie)、水母结构(Jellyfish)
分支:
IN(向内)、OUT(向外)、CORE(核心)、TUBES(管道)、TENTACLES(触手)或者TENDRILS(卷须)、DISCONNECTED(不相连)或者ISLANDS(岛屿);
Bridges(桥)、Entry points(入口点)、Exit Points(出口点)、Normal(标准)
链接分析
- 链接分析是一种分析网络中链接关系的方法,它使用网络中相互连接的节点和链接来识别和分析在原始数据中不容易看到的关系。主要用于搜索引擎的排名算法和网页的相关性评估
链接分析的关键术语包括网络、节点、链接和中心性。
- 网络是一组相互连接的节点和链接。
- 节点是表示对象的点或顶点,如人、地点、犯罪类型或推文
- 链接是节点之间的关系或连接
- 中心性是网络中节点的重要性度量
在链接分析中,有四种衡量中心性的方法:度中心性、介数中心性、紧密中心性和特征向量中心性
- 度中心性基于节点的直接连接数量
- 介数中心性基于节点作为其他节点之间最短路径的一部分
- 紧密中心性基于节点之间最短网络路径距离的平均值
- 特征向量中心性基于重要节点与其他重要节点的连接
链接分析通常分为三个等级:微观级、介观级和宏观级。
微观级:微观级链接分析关注单个链接或节点的分析,例如在社交网络中查看个体之间的直接连接。这个级别的分析有助于理解个体之间的直接关系,以及评估节点的度中心性和介数中心性等指标。
介观级:介观级链接分析涉及更复杂的网络结构,可以跟踪多个级别的链接关系。例如,在语义网络中,可以分析主题之间的多级关联。这种分析有助于识别更深层次的关系,以及评估节点的紧密中心性和特征向量中心性等指标。
宏观级:宏观级链接分析涉及整个网络或系统的分析,以识别大规模的模式和关联。这个级别的分析有助于理解整个网络的结构和特征,以及评估网络中不同部分之间的连接和影响。
Page Rank和Hits算法是两种常用的链接分析算法。
PageRank:该算法基于网络图中节点之间的链接关系,通过迭代计算每个节点的排名值。PageRank认为,一个网页的重要性取决于指向它的链接数量和链接来源网页的重要性。因此,被越多的网页链接越重要,被越重要的网页链接越重要。被广泛应用于搜索引擎排名中,用于确定网页的权威性和排名顺序。
HITS:用于识别和分析超链接网络中的主题和权威页面。HITS算法通过识别具有高度相关性的“权威页面”和“枢纽页面”来评估网页的重要性。权威页面是被其他页面所引用的页面,而枢纽页面是链接到其他页面的页面。HITS算法通过迭代计算每个页面的权威分数和枢纽分数,从而确定页面的权威性和相关性。
Page Rank算法的改进—HillTop算法:先对网页或网站分类,然后在这个分类体系下计算page rank,防止了不同类别网页之间的无效链接
第12章 Web爬取
网络爬虫(Web Crawler,又称网络蜘蛛、网络机器人,或者简称为机器人)是一种从Web上自动下载网页的程序。在网页检索领域,爬虫抓取到的网页将用于索引和搜索。不同于其名字,网络爬虫并不像病毒或智能代理那样在Web上的机器之间转移,而是向其他地方的Web服务器发送文档请求
通用Web搜索:搜索引擎对整个互联网进行搜索的方法。 (平衡覆盖度和质量)
- 广泛的搜索范围:通用Web搜索引擎会爬取整个互联网上的网页内容,并对这些内容建立索引,以便用户进行搜索。
- 搜索结果广泛:通用Web搜索引擎的搜索结果通常涵盖了各种不同主题和领域的内容,用户可以通过输入关键词获取与之相关的各种网页、图片、视频等内容。
垂直Web搜索:搜索引擎对特定领域或主题进行专门搜索的方法。
专注特定领域:垂直Web搜索引擎会针对特定的行业、主题或领域进行搜索,以提供更加专业和精准的搜索结果。
搜索结果专业化:垂直Web搜索引擎的搜索结果通常更加专业化和精准,针对特定领域的用户需求进行定制,提供更加有针对性的内容。
垂直爬取 (Vertical Crawling):一种以特定网站或特定域名为目标的爬取策略。
深度优先爬取:垂直爬取会从一个特定的起始网页开始,然后沿着这个网页上的链接逐层深入爬取,直到达到指定的深度或其他限制条件。
爬取特定网站:垂直爬取通常用于爬取特定网站的所有页面,或者是特定域名下的所有页面,以便对该网站或领域进行全面的数据收集。
聚焦爬取 (Focused Crawling):一种以特定主题或话题为目标的爬取策略。
主题导向:聚焦爬取不是简单地爬取所有页面,而是根据预定义的主题或话题进行有选择性的爬取,以获取与这些主题相关的页面。
基于内容的爬取:聚焦爬取通常会使用一些内容分析和分类的技术,以确定页面是否与指定的主题相关,然后有针对性地爬取相关页面。
总的来说,垂直爬取更侧重于深度爬取特定网站或域名下的所有页面,而聚焦爬取更侧重于有针对性地爬取与特定主题相关的页面。
网络爬虫的应用
- 建立一个包含宽泛主题(通用Web搜索)或者特定主题(垂直Web搜索)的索引
- 对网页内容归档以及自动地分析网站以抽取统计数据(Web刻画)
- 对某些特定网站来说,网络爬虫用来提高其设计(网站分析),或者保留它们网页的备份(Web镜像)
爬虫侧重点
- 新鲜度(freshness):网页新旧
- 质量(quality):网页质量
- 容量(volume):是否会牺牲数量来换取更高的质量和新鲜度(爬虫覆盖度依赖于次指标)
爬虫架构:主要由下载器、存储器、调度器这三个模块组成
- 调度器(scheduler):关键模块,负责维护一个待访问的URL队列,也称为”前沿”(frontier),用于以特定的顺序将这些URL发送给一个或多个下载器
- 下载器(downloader):负责获取每个URL所对应的网页内容,并解析给存储器模块以便后续索引和检索
- 存储器(storage):将获取的网页的元信息提供给调度器,这是用来驱动调度的重要策略
爬取过程:网络爬虫把多个种子网页作为输入,然后经过下载、分析和扫描等处理过程来获取新链接。对于指向未下载网页的链接,将它们加到一个中央URL队列中,用于后续处理。然后爬虫从队列中选择一个新的网页进行下载,这个过程不断重复,直到满足某个停止条件。
第16章 图书馆系统
图书馆检索系统提供一系列数据库供用户访问
- 联机公共检索目录(Online Public Access Catalogue,OPAC)提供图书馆的核心印刷和数字馆藏信息服务
- 商业文摘和索引服务
- 电子期刊
- 电子图书库
- (数字)特藏
- Eprints
- 机构资源库
图书馆网站通常可以作为一系列搜索服务的网关或门户,尝试建立统一的外观和感觉
全球最大的图书馆查询系统是OCLC,其中有世界上最大的书目查询系统WorldCat
MARC是一种数据格式,实现了ANSI Z39.2信息交换格式和ISO 2709信息交换格式
第17章 数字图书馆
定义:数字图书馆是复杂的信息系统,能满足用户(或用户社团)的信息需求,提供信息服务(可以通过使用场景描述)、组织(通过结构)、展示(通过空间),并以可用的方式与用户沟通(通过流)信息。
- 数字图书馆由数字对象的馆藏组成,数字对象可视为数字图书馆的核心。