《大规模元搜索引擎技(1)》一1.2 文本检索概述

1.2 文本检索概述

对于给定的查询,文本(信息)检索解决从文本文档的集合中查找相关(有用)文档的问题。文本检索技术对Web搜索引擎有深刻而直接的影响。事实上,第一代搜索引擎(约1995—1997)几乎是完全基于传统文本检索技术构建的,其中Web页面被视为文本文档。在本节中,我们简要概述经典文本检索中的一些基本概念。此概述主要基于向量空间模型(vector space model),其中文档和用户查询均表示为具有权重的词向量[Salton and McGill,1983]。想更多了解这个主题的读者请参考相关教材,如[Salton and McGill,1983]、[Frakes and Baeza-Yates,1992]、[Manning et al.,2008]和[Croft et al.,2009]。

1.2.1 系统体系结构

一个基本的文本检索系统的体系结构如图1-1所示。文本检索系统的文档集合中的文档经过预处理,以便识别那些表示每个文档的词,收集关于这些词的某些统计数据并且以特定格式组织信息(即图1-1的索引),使其易于快速计算每个文档和任一查询的相似度。
当收到用户查询时,首先文本检索系统识别表示查询的那些词,然后计算这些词的权重,这些权重反映了表达查询内容的词的重要性。于是,系统使用预先构建的索引计算查询和文档的相似度,并按相似度对文档降序排列。关于这些概念和操作的更多细节将在下面的几个小节中介绍。

1.2.2 文档表示

一个文档的内容可以使用该文档中的一些单词(word)表示。有些单词如“a”“of”和“is”不包含主题的内容信息。这些单词称为停用词(stop word),往往不使用。同一个单词(word)的变体可被映射到同一词(term)。例如,单词“compute”“computing”和“computation”能够用词“comput”表示。此操作可以通过词干处理程序(stemming program)来完成。词干处理程序删除词的后缀或用其他字符替换后缀。删除停用词和处理词干之后,每个文档可以在逻辑上表示为一个含有n个词的向量[Baeza-Yates,Ribeiro-Neto,1999],其中n是文档集合中全部文档所含不同词的总数。应该注意的是,不同的文本检索系统常常使用不同的停用词表和词干处理算法。目前很多搜索引擎并不删除停用词。此外,一个词(term)并不意味着一个单词(word),它可以是一个词组(phrase)。
假设文档d表示为向量(d1,…,di,…,dn),其中di是一个数值(称为权重,weight),描述第i个词在表示该文档内容时的重要性。若一个词不出现在d中,则其权重为零。当一个词出现在d中时,其权重的计算通常基于两个因素,即词频(term frequency,tf)因素和文档频率(document frequency,df)因素。一个文档中的一个词的tf表示在此文档中这个词的出现次数。直觉上,一个词的tf越高,该词越重要。因此,一个文档中的一个词的词频权重(term frequency weight,tfw)通常是这个词tf的单调增加函数。一个词的df是整个文档集合中包含这个词的文档的个数。通常,一个词的df越高,在区分不同文档时其重要性越低。这样,一个词关于df的权重通常是df的单调减少函数,所以称为逆文档频率权重(inverse document frequency weight,idfw)。一个词在某个文档中的权重是它的词频权重和逆文档频率权重的乘积,即tfw×idfw。文档中词的权重也可能受其他因素影响,如它出现在文档中的位置。例如,如果这个词出现在文档的标题中,权重可能会增加。
文本检索的典型查询也是文本。所以,同样,它可以视为一个文档,也可使用上述方法转换为一个n维向量。

1.2.3 文档查询匹配

当所有文档和一个查询都表示为相同维数的向量之后,就可以使用一个相似度函数来计算这个查询向量和每个文档向量之间的相似度。若文档对应的向量与查询向量有很高的相似度,则那些文档就会被检索。用q=(q1,…,qn)和d=(d1,…,dn)分别表示一个查询向量和一个文档向量。

一个简单的相似度函数是如下的点乘(内积)函数:

当文档与查询有更多相同的重要词时,这个函数赋予文档更高的相似度。但这个简单的相似度函数存在一个问题——它偏向较长的文档,因为这些文档更有可能包含查询中的词。解决该问题的一种通用方法是用内积函数除以这两个向量(即文档向量和查询向量)长度的乘积。新的相似度函数就是众所熟知的余弦函数(cosine function)[Salton and McGill,1983]:

两个向量的余弦函数有一个几何解释——它是两个向量之间夹角的余弦值。换句话说,余弦函数度量了查询向量和文档向量之间的角距离。当两个向量都有非负权重时,余弦函数总是返回一个属于[0,1]区间的值。当查询和文档不共享词(即当这两个向量的夹角是900)时,其值为0;当查询向量和文档向量相同或一个向量是另一个的正值常数倍时(即当角度为00),其值为1。
还有其他的一些相似度函数,其中某些函数还考虑那些查询词在文档中的邻近度。这些查询词在文档中出现的位置越接近,文档越可能具有查询本身的含义,因而查询和文档之间的相似性就应该更高。为支持基于邻近度的匹配,对于任何给定的一个文档和一个词,这个词在该文档的所有位置需要被收集并存储起来成为搜索索引的一部分。
还有其他几个文本检索模型。在基本的布尔检索模型(Boolean retrieval model)中,文档检索基于它们是否包含查询词,而不考虑词的权重。一个布尔查询可以包含一个或多个布尔算符(AND、OR和NOT)。在概率模型(probabilistic model)中[Robertson and Sparck Jones,1976;Yu and Salton,1976],对文档的排序是按照文档相关于查询的概率降序排列。基于查询词在相关和不相关文档的分布,进行概率估计。基于概率模型最广泛使用的相似度函数是Okapi函数[Robertson and Walker,1999]。近年来,语言模型也成功地应用于信息检索[Ponte and Croft,1998;Zhai and Lafferty,2004]。在这种方法中,对于一个给定的查询,根据估计的每个文档生成该查询的概率,将文档按概率降序排序。也存在一些其他语言模型[Croft et al.,2009]。

1.2.4 查询处理

直接计算一个查询和每个文档之间的相似度是低效的,因为大多数文档与给定查询之间没有任何共同词,计算这些文档的相似度是资源浪费。为提高计算效率,我们预先创建一个倒排文件索引(inverted file index)。对于每个词ti,生成并存储一个有表头的倒排表(inverted index),形式为I(ti)=[(Di1,wi1i),…,(Dik,wiki)],其中Dij是包含ti的文档标识符,wiji是Dij中ti的权重(1≤j≤k),k是包含ti的文档个数。此外,散列表(一个类似于表的数据结构)可以用来把每个查询词映射到该词倒排表的表头。利用倒排文件和散列表,对于与任何查询有非零相似度的所有文档可以实现高效的相似度计算。具体来说,考虑一个有m个词的查询。对于每个查询词,可用散列表查找这个词的倒排表的地址。这m个倒排表包含了计算该查询与含有至少一个查询词的所有文档之间的相似度所需的全部必要信息。
一种广泛使用的查询处理策略是每次一文档策略(document-at-a-time strategy)[Turtle and Flood,1995],也就是说,每次计算一个文档的相似度,而只有那些包含至少一个查询词的文档才予以考虑。这种策略的基本思想如下。在许多文本检索系统中,倒排文件太大不能存储在内存中,因而存储在磁盘上。如果倒排文件存储在磁盘上,那么当开始处理一个查询时,需要首先把此查询的所有词的倒排表调入内存。然后计算至少包含一个查询词的那些文档的相似度,一次一个文档。假设一个查询有m个词。每个词对应一个倒排表,包含这个词的文档的标识符在倒排表中按升序排列。如下面的例1.1所示,可使用倒排表进行m路合并方法计算相似度。由于同步扫描m个倒排表,所以对于查询处理,扫描每个查询词的倒排表一次即可。

例1.1 图1-2显示了一个文档-词矩阵(document-term matrix)的示例,文档集合包含5个文档和5个不同的词。为简单起见,权重用了原始词频,内积函数将用于计算相似度。

从图1-2中的矩阵,可以得到如下倒排文件表:

设q为一个查询,包含两个词t1和t3且权重都是1(即它们每个恰好出现一次)。
现在应用每次一文档策略计算文档对于q的相似度。首先把两个查询词的倒排表取到内存。当取到
I(t1)=[(D1,2),(D3,1),(D4,2)]和I(t3)=[(D1,1),(D2,1),(D3,1),(D4,2)]之后,以同步方式考虑出现在倒排表中的每个文档。第一个同时出现在两个表中的文档是D1(即D1同时包含t1和t3)。文档D1关于查询的相似度可以用内积计算,权重是2(对于t1)和1(对于t3),内积dot(q,D1)=1×2+1×1=3。两个表的下一个词分别是(D3,1)和(D2,1)。因为D2■

另一个著名的查询处理策略是每次一词策略(term-at-a-time strategy)[Turtle and Flood,1995]。这种策略一个接一个地处理查询词的倒排表。当一个查询词的倒排表处理完后,这个词对文档的总体相似度(即查询与每个包含这个词的文档之间的相似度)的贡献就都被计算出来了,然后把该贡献加到已经处理过的那些查询词的贡献中。当所有查询词的倒排表全部处理之后,若一个文档包含至少一个查询词,则查询与该文档的最终相似度就被计算出来了。

例1.2 
我们用例1.1的文档和查询示例来说明每次一词策略。假设首先考虑查询词t1。我们首先得到I(t1)。因为I(t1)包含D1、D3及D4,所以当t1处理完后,得到下面的中间相似度:dot(q,D1)=1×2=2,dot(q,D3)=1×1=1,dot(q,D4)=1×2=2。对于t3,我们得到I(t3)。通过把t3的贡献加到前面得到的部分相似度,得到最终相似度:dot(q,D1)=2+1×1=3,dot(q,D2)=0+1×1=1,dot(q,D3)=1+1×1=2及dot(q,D4)=2+1×2=4。■

有许多剪枝策略可以用来减少上述两种基本策略的计算开销[Turtle and Flood,1995]。

1.2.5 检索有效性度量

用户提交一个查询,文本检索的目标是找到那些相关(relevant)于或有用(useful)于用户的文档并将其排在前面。文本检索系统的检索有效性经常使用召回率(recall)和查准率(precision)这一对数值来度量。对于一个给定的用户查询,假设文档集的相关文档集合已知,那么,召回率是检索到的相关文档比率,查准率是检索出的文档中相关文档的比率。例如,对一个查询,假设有10篇相关文档,在20个检索出的文档中有6篇相关,那么,对此查询,召回率是6/10=0.6,查准率是6/20=0.3。
为评价一个文本检索系统的有效性,经常使用一组测试查询。对于每个查询,提前确定相关文档的集合。对每个测试查询,对每个不同的召回率得到一个查准率。通常只考虑11个召回率值:0.0,0.1,…,1.0。对所有测试查询,每个召回率值对应的查准率的平均值计算出来之后,就可以得到平均的召回率-查准率曲线。
针对文本检索系统,还有许多其他检索有效性的度量。在搜索引擎的背景下,通常不可能知道测试查询的全部相关文档。在这种情况下,基于一定的靠前排序(top ranked)结果,可以使用一些面向查准率的度量。例如,对于某个给定的n,可以用n查准率来计算前n排序(top n ranked)结果的查准率。读者可以参阅书籍[Voorhees and Harman,2005]获得关于评估方法学和评估度量的更多信息。

时间: 2024-08-02 14:10:01

《大规模元搜索引擎技(1)》一1.2 文本检索概述的相关文章

《大规模元搜索引擎技》——1.2 文本检索概述

1.2 文本检索概述 对于给定的查询,文本(信息)检索解决从文本文档的集合中查找相关(有用)文档的问题.文本检索技术对Web搜索引擎有深刻而直接的影响.事实上,第一代搜索引擎(约1995-1997)几乎是完全基于传统文本检索技术构建的,其中Web页面被视为文本文档.在本节中,我们简要概述经典文本检索中的一些基本概念.此概述主要基于向量空间模型(vector space model),其中文档和用户查询均表示为具有权重的词向量[Salton and McGill,1983].想更多了解这个主题的读

《大规模元搜索引擎技》——1.4 本书概述

1.4 本书概述 本书的其余部分将专注于大规模元搜索引擎技术.现在简述其余各章.第2章首先概述一个典型的大规模元搜索引擎的主要部件.这些部件包括搜索引擎选择器.搜索引擎加入器和结果合并器.通过对元搜索引擎和主流搜索引擎两种搜索技术优点和缺点的仔细分析,这一章试图提出充分理由来阐述元搜索引擎技术可以作为主流搜索引擎之外的另一种可行搜索技术.最后,鉴于元搜索引擎构建于Web环境,这一章将对Web环境进行讨论,进而对构建大规模元搜索引擎所面临的挑战给出一些见解.第3章集中讨论搜索引擎选择器.对任何给定

《大规模元搜索引擎技(1)》一 2.1 系统体系结构

2.1 系统体系结构 搜索文本文档的元搜索引擎可分为两种类型:通用元搜索引擎和专用元搜索引擎.前者旨在搜索整个Web,而后者专注于在特定领域搜索信息(例如,新闻.招聘).构建每个类型的元搜索引擎有两种方法:主流搜索引擎方法.这种方法使用少数的热门主流搜索引擎来构建元搜索引擎.因而,使用这种方法构建通用元搜索引擎,可以使用少量的主流搜索引擎,如Google.Yahoo!.Bing(MSN)和Ask.类似地,在特定领域建立一个专用元搜索引擎也可以使用这种方法,使用该领域的主流搜索引擎.例如,在新闻

《大规模元搜索引擎技》——2.3 挑战环境

2.3 挑战环境 大多数情况下,元搜索引擎使用的成员搜索引擎是自治的,即它们是独立建立和维护.每个搜索引擎的开发者决定其搜索引擎将为哪些文档提供查询服务.如何表示文档以及何时更新索引.文档和用户查询之间的相似度通过相似度函数计算.同样,也是由每个搜索引擎的开发者决定使用哪种相似度函数.商业搜索引擎的开发者通常把他们使用的相似度函数和其他实现细节视为私有信息,不向公众提供.一般来说,元搜索引擎需要与没有直接合作关系的搜索引擎交互.成员搜索引擎自治的直接后果是存在大量的异构.2.3.1节介绍元搜索引

《大规模元搜索引擎技(1)》一第2章 元搜索引擎体系结构

第2章 元搜索引擎体系结构 元搜索引擎是一个提供统一方式访问多个现有搜索引擎的搜索系统.该系统基于元搜索(metasearch)概念,元搜索是实时在线搜索多数据源的模式.元搜索与联合搜索(federated search)的含义非常相似,这两个术语有时可以互换.元搜索引擎有时也称为搜索代理(search broker),因为它在搜索信息的用户和一组搜索引擎之间充当"中间人"的角色[Craswell,N.,2000].元搜索引擎与分布式信息检索(distributed informati

《大规模元搜索引擎技(1)》一1.4 本书概述

1.4 本书概述 本书的其余部分将专注于大规模元搜索引擎技术.现在简述其余各章.第2章首先概述一个典型的大规模元搜索引擎的主要部件.这些部件包括搜索引擎选择器.搜索引擎加入器和结果合并器.通过对元搜索引擎和主流搜索引擎两种搜索技术优点和缺点的仔细分析,这一章试图提出充分理由来阐述元搜索引擎技术可以作为主流搜索引擎之外的另一种可行搜索技术.最后,鉴于元搜索引擎构建于Web环境,这一章将对Web环境进行讨论,进而对构建大规模元搜索引擎所面临的挑战给出一些见解.第3章集中讨论搜索引擎选择器.对任何给定

《大规模元搜索引擎技》—导读

|前 言 近年来,万维网(World Wide Web,简称Web)已经成为最大的信息源, 开发先进的搜索工具一直是因特网(Internet)技术的一项关键研究和开发工作.由于Google和Yahoo!等主流搜索引擎的普及,目前在Web上的搜索工具中,搜索引擎是人们最为熟知的.虽然这些主流搜索引擎非常成功,但也存在许多严重的局限性.例如,每个搜索引擎仅能覆盖Web上全部可用内容的一小部分:其基于爬虫的技术很难完全达到所谓的深层网(deep Web,也称为深网),虽然这方面最近取得了很大的进展并且

《大规模元搜索引擎技(1)》一2.2 为什么使用元搜索引擎技术

2.2 为什么使用元搜索引擎技术 本节试图全面分析元搜索引擎相对搜索引擎的潜在优势.我们主要关注通用元搜索引擎和通用搜索引擎的比较. 1.扩大搜索范围 元搜索引擎可以通过能够统一访问所有成员搜索引擎的功能搜索到被至少一个成员搜索引擎索引到的任何文档.因此,元搜索引擎的搜索范围是其成员搜索引擎搜索范围的并集.这个益处是早期元搜索引擎背后的主要动因,目前仍然是最公认的益处.2.1节描述了两种可能的方法来实现通用元搜索引擎,即主流搜索引擎方法和大规模元搜索引擎方法.术语"扩大搜索范围"对这两

《大规模元搜索引擎技(1)》一2.3 挑战环境

2.3 挑战环境 大多数情况下,元搜索引擎使用的成员搜索引擎是自治的,即它们是独立建立和维护.每个搜索引擎的开发者决定其搜索引擎将为哪些文档提供查询服务.如何表示文档以及何时更新索引.文档和用户查询之间的相似度通过相似度函数计算.同样,也是由每个搜索引擎的开发者决定使用哪种相似度函数.商业搜索引擎的开发者通常把他们使用的相似度函数和其他实现细节视为私有信息,不向公众提供.一般来说,元搜索引擎需要与没有直接合作关系的搜索引擎交互.成员搜索引擎自治的直接后果是存在大量的异构.2.3.1节介绍元搜索引

《大规模元搜索引擎技(1)》一导读

前 言 当下大数据技术发展变化日新月异,大数据应用已经遍及工业和社会生活的方方面面,原有的数据管理理论体系与大数据产业应用之间的差距日益加大,而工业界对于大数据人才的需求却急剧增加.大数据专业人才的培养是新一轮科技较量的基础,高等院校承担着大数据人才培养的重任.因此大数据相关课程将逐渐成为国内高校计算机相关专业的重要课程.但纵观大数据人才培养课程体系尚不尽如人意,多是已有课程的"冷拼盘",顶多是加点"调料",原材料没有新鲜感.现阶段无论多么新多么好的人才培养计划,都