课外天地 李树青学习天地信息检索原理课件 → [推荐]《An Introduction to Information Retrieval》参考译文之八——信息检索的评价


  共有23803人关注过本帖树形打印复制链接

主题:[推荐]《An Introduction to Information Retrieval》参考译文之八——信息检索的评价

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1940 积分:26616 威望:0 精华:34 注册:2003/12/30 16:34:32
[推荐]《An Introduction to Information Retrieval》参考译文之八——信息检索的评价  发帖心情 Post By:2008/4/22 6:27:54 [只看该作者]

8 信息检索的评价
信息系统的评价并非只是检索质量的问题,性能和界面的易用性等都是非常关键的,所以可以使用用户幸福度(user happiness)来测量用户的满足度。

8.1 对信息系统的评价
为了测量信息检索系统随机检索的有效性,我们需要一个测试集,它包含三个部分:
1)文档集合
2)通过查询表达的信息需求测试集合
3)相关度判断集合,对任意一对查询和文档都给出一个二值评价:相关或者不相关
信息检索系统的评价问题就是围绕着判断文档相关还是不相关。给定特定的用户信息需求,一篇文档要么相关要么不相关。这也被称为相关度判断的金本位判断法(gold standard)或者地面实况判断法(ground truth)。文档集合和信息需求集合必须要有一定的规模,在测量相关性时,必须要得到不同规模和不同特点的文档和查询,经过平均得到最终的测度结果。根据实践经验,50种不同的信息需求是所需的最少有效数量。
另外,相关性只能根据文档和信息需求来作出判断,而不是根据文档和查询,因为查询有时并不一定能够准确的表达信息需求,如有信息需求为“判断红酒是否比白酒更能够减少患心脏病的风险”,相应的查询可以为:
wine AND red AND white AND heart AND attack AND effective
显然,相关的文档并非一定只是单纯包含这些词语的文档,而必须能够表达查询所含有的信息需求。但是,用户的信息需求并非直观的东西。如用户键入“python”查询,也许是想了解一下宠物蟒的购买情况,也许是想了解一下Python编程语言的情况。但是可以肯定一点,一般用户是具有一个较为明确的信息需求,能够对信息检索结果做出相关性的判断。所以,为了能够对系统进行评价,测试所用的查询必须能够准确的反映真实的信息需求。为了简单起见,通常人们只使用二元的判断做出相关度的评价。
很多信息检索系统包含着不同的参数设置功能,以调整信息检索系统的性能。但是,在评价时不应该通过调整这些参数来获取最优的查询效果。因为这种调整过分依赖于信息系统,这些参数的调整显然只有助于提高某些特定查询的检索性能,而非所有的随机查询。因此,正确的做法就是利用一些“发展测试集(development test collections)”,它允许调整某些参数指标,测试者必须利用这些参数来运行整个信息检索系统,并给出相应的性能评价结果。

8.2 标准的测试集
这些测试集广泛的应用于文档查询和文档分类等方法评价中。
1)Cranfield测试集:它是有较早的、有代表性的测试集,允许对信息检索系统的效果进行精确的量化测度,但是今天看来它的规模相对较小,只适用于一些基础性的实验测试中。它由英国在50年代后期开发整理而出,包含着1398篇空气动力学方面的期刊文章摘要,225个查询,和任意一对查询和文档的相关度判断值。
2)文本检索会议测试集(Text Retrieval Conference,TREC):它是由美国国家标准和专利局(NIST)从1992年开始开发的用于大规模信息检索测试的测试集。在整个框架中,有各种不同目的的测试集,其中最为著名的就是用于随机查询测试的部分,它在从1992年到1999年间发展起来的头8个TREC评价测试集。这些内容包含在6张CD里面,包含了189万篇文档,大部分都是新闻专线报道,并且还有450个信息检索需求,这些信息需求被称为“主题(topic)”,通过详细的文本段落展示出来,最后还有这些信息需求的相关度评价。每个测试集都是利用不同的数据来定义的。早期的每个TREC测试集都包含50个信息需求,并对不同但是存在重叠的文档集合给出评价。TREC6到TREC8提供了150个信息需求和52.8万篇新闻专线报道和外国的广播信息文稿。这是用于一些未来研究工作的最好的测试集,因为它规模最大,而且信息需求的主题更为一致。由于文档集合太大,所以没有给出所有的相关度测试结果。相反,NIST只基于某些特定的信息检索系统,给出每个信息需求所检索出来的头k篇文档的相关度评价。
近些年来,NIST已经开始对更大规模的文档集合进行评价,它是包括2500万网页的GOV2评价集合。从一开始,NIST的测试集就是研究者可以利用的最大的测试集,GOV2也是目前最大的网页测试集。但是即便如此,GOV2的文档规模依然比搜索引擎系统所面对的网页规模小2个数量级。
3)NII测试集(NII Test Collections for IR Systems,NTCIR):这个测试集规模较TREC小,主要服务于东亚语言检索和跨语言检索(cross-language information retrieval)的研究工作,其中的查询和文档都是利用各种不同的语言表达的 。
4)跨语言评价论坛(Cross Language Evaluation Forum ,CLEF):该测试集主要针对欧洲语言的跨语言检索研究工作 。
5)路透社21578测试集(Reuters-21578):对于文本分类而言,它是最为常见的测试集合,包含着21578篇新闻专线文档。近年来,路透社又发布了更大的测试集“Reuters Corpus Volume 1,RCV1,”也被称为Reuters-RCV1,包含着806791篇文档。它的容量和丰富的注释使之称为未来研究的良好测试平台。
6)20新闻组(20 Newsgroups):这是另外一个广泛使用的文本分类测试集,收集者是Ken Lang,包含从20个不同的新闻组上收集而来的1000篇文档,此处不同的新闻组名称被理解为不同的类目。通过除去重复文档,总共包含18941篇文档。

8.3 对非排序检索方法的评价指标
在给定上述测试集后,如何评价系统的效果(effectiveness)呢?最为常见的两个指标就是精确度(precision)和召回度(recall)。
各自的定义为:

此主题相关图片如下:
按此在新窗口浏览图片

此主题相关图片如下:
按此在新窗口浏览图片
其中,召回度也被称为sensitivity(灵敏度)。这些内容可以通过下面的相依表(contingency table)进一步展示清楚:

此主题相关图片如下:
按此在新窗口浏览图片
可以得到最终的指标:

此主题相关图片如下:
按此在新窗口浏览图片
除此以外,还可以使用准确度(accuracy)指标,也就是正确判断值的比重。利用上述的相依表定义,可以得到为“(tp + tn)/(tp + f p + f n + tn)”。这看起来是可行的,因为可以认为存在两个类,相关文档类和不相关文档类,而信息检索系统可以被看成是一个将所有文档归入上述两类的分类器。所以,对于评价机器学习中的分类问题是非常有效的。
然而,准确度指标并不适用于信息检索系统的评价上。在绝大多数情况下,数值会发生严重的偏高估计,因为99.9%的文档差不多都是不相关的,所以,对于上述公式的结果值和1很接近,而且可以想象,只要系统将所有的文档简单的看成都不相关,也能获取极大的数值。即使系统很好,对某些文档标记为相关也会不可避免的导致fp增高,而此时就会降低最终的数值。显然,将所有的文档标记为不相关是不现实的。检索用户很想能够看到查询的结果,即便是存在一些fp文档,这些文档也可以提供一些必要的信息。
相比而言,精确度和召回度就集中于对返回结果的tp部分进行评价,能够表明有多少相关的文档被检索到和返回结果中的fp成分有多少。
拥有这两个指标很有好处,因为随着环境的不同,不同的指标更能适应不同的要求。典型的Web冲浪者非常希望在第一页的返回结果中都是相关的记录,而并不在意是不是每条相关的记录都找到了,也就是说,此时要求检索系统具有较高的精确度。与此相反的是,诸如像律师或者情报分析者(intelligence analyst)等人却需要系统具有较高的召回度,甚至为了一定找到所需的内容,在一定程度上都可以忍受较低的精确度。同样,基于磁盘文件的个人检索系统也往往要求具有较高的精确度。但是,这两项指标会互相影响。如将所有的文档都作为相关文档就会得到召回度为1的结果,然而此时的精确度相当的低。召回度是一个与检索文档数量成正相关关系的不减函数。但是,可以想象,随着检索文档的增加,不可避免的会导致精确度的下降。所以,在一般情况下,我们都要求系统能够具有一定的召回度,并且可以允许一定程度的fp。
在精确度和召回度之间取得平衡,可以设计一个称为F测度的指标,它为精确度和召回度的加权调和平均值(weighted harmonic mean)。

此主题相关图片如下:
按此在新窗口浏览图片
a为0到1的值,所以b取值为[0,∽],默认的平衡F测度值对两个指标等权值处理,所以a为1/2,所以b为1,此时的F测度值简写为F1,即Fb=1,虽然使用a参数更容易看出F测度值为加权调和平均值。
当然,权值并不一定非要一样,如果b小于1,则最终数值侧重于精确度,而大于1则侧重于召回度,如常见的数值为3或者5等。一般来说,精确度、召回度和F测度值都是位于0到1之间的数值,但是常常写成百分值的形式,即为0到100之间的数值。
为什么不使用精确度和召回度的简单算术平均值(arithmetic mean)呢?由于将全部文档看成相关文档会产生100%的召回度,而此时的简单算术平均值就至少为50%,所以这样做并不合适。反之,如果10000篇文档中只有一篇是相关的文档,则相应的调和平均值只有0.02%。调和平均值总是小于或者等于算术平均值和几何平均值(geometric mean)。只要两个元素值相差太大,调和平均值就会更偏向于两者的最小值而非算术平均值。

此主题相关图片如下:
按此在新窗口浏览图片

8.4 对排序检索方法的评价指标
精确度、召回度和F测度方法都是一些基于集合的测度方法,它们主要针对无序的文档集合进行计算。但是对于诸如搜索引擎所使用的有序检索结果而言,就需要对这些检索评价方法进行改进,以适应新的要求。在有序检索方法中,一般是通过返回前k篇匹配文档作为检索结果。如果k取不同的值,可以得到不同的文档组合。对于这些组合,计算它们的精确度和召回度,可以形成下图所示的结构:

此主题相关图片如下:
按此在新窗口浏览图片
这个图中的蓝线具有明显的锯齿形状,这是因为如果第k+1篇被检索的文档是不相关的话,召回度不变,和前k篇文档组合的召回度一样,但是精确度却下降,而且由于一开始文档数量较少,所以下降的幅度会更大。如果第k+1篇文档是相关的话,则精确度和召回度都会增加。由于召回度和精确度呈负相关关系,所以,图中的曲线呈现向右下角倾斜的模样,并且所有的尖齿都指向右上方。
在很多情况下,人们会通过内插精确度(interpolated precision)来消除锯齿。在一定的召回度层次r上,内插精确度pinterp可以定义为大于r的召回度所具有的最大精确度:

此主题相关图片如下:
按此在新窗口浏览图片
内插精确度在图中是以细线表示的。
上述做法有一定的理由,如果可以通过增加结果文档的数量来提高精确度,人们当然愿意。
虽然这种曲线具有较多的信息量,然而人们还是想设计一些更为精练的表达方法,最好只是一个数值指标。传统的方式就是11点内插平均精确度(11-point interpolated average precision),它被应用于前8届的TREC查询评价中。对于任意一种信息需求,只计算召回度为0.1、0.2、…、1.0时的内插精确度。按照上图所示,形成的11点内插平均精确度为:

Recall

Interp.Precision

0.0

1.00

0.1

0.67

0.2

0.63

0.3

0.55

0.4

0.45

0.5

0.41

0.6

0.36

0.7

0.29

0.8

0.13

0.9

0.10

1.0

0.08

在每一级的召回度上,要计算每一个信息需求精确度的算术平均值。下图显示的评价数值来自于TREC8上一个有代表性的优秀系统:

此主题相关图片如下:
按此在新窗口浏览图片
近些年,其他一些测度方法也被广泛接受。在TREC社区中最为常见的就是中间平均精确度(Mean Average Precision,MAP),它提供了对一定召回度下检索质量的单值测度方法,而且还具有特别好的区分度和稳定性。对于一个信息需求而言,在每获取一篇相关文档的时候,对已有的k篇文档计算精确度,这个过程持续进行下去,直到获取全部相关文档,再对这些精确度计算平均值,最后将所有信息需求的平均精确度再次平均得到最终结果。也就是说,假设对于信息需求qj属于Q,相关的文档为{d1j,…,dmj},Rjk是得到相关文档dkj时所获取得文档集合,公式为:

此主题相关图片如下:
按此在新窗口浏览图片
如果一篇相关文档也没找到,则上述公式的数值为0。对于一个信息需求而言,它的平均精确度近似等于上述未内插精确度-召回度曲线的下面区域,所以MAP就近似等于内插曲线的下面区域。
对所有信息需求的平均精确度再次进行平均是必要的,因为对于有些查询可能会有很多的相关文档,而有些查询则只有很少的相关文档。所以,对单一系统利用多个不同信息需求计算平均精确度值会有很大的变化,从0.1到0.7都有可能。所以,一般认为MAP方法比较适合拿一个信息需求对不同系统进行计算,而不是拿不同的信息需求在一个系统上计算。这也意味着测试的信息需求必须非常广泛和分散,从而能够尽可能全方位的了解系统对不同查询的检索效果。
上述这些做法都是综合考虑不同召回度下的精确度指标。对于很多应用而言,特别是搜索引擎,这并无多大必要,因为用户往往关心在查询结果的第一页或者前三页中有多少相关的文档。这就产生了对若干少量检索结果计算精确度的想法,如对10篇文档或者30篇文档等,这被称为k位精确度(Precision at k),如Precision at 10等。该方法无需估算相关文档的大小,但是稳定性非常差,而且不容易计算平均值,因为不同的查询往往得到不一样数量的相关文档,这显然会对k位精确度产生很大的影响。
作为一种能够消除上述问题的替代方法,R精确度方法需要知道相关文档(大小为Rel),并计算返回结果前面Rel篇文档的精确度(当然有些系统对rel的估算可能存在问题)。显然,好系统的R精确度应该为1,但是如果事实上整个集合只有8篇文档满足条件,而返回20篇文档,此时的R精确度却只有0.4。所以,必须对不同的查询计算R精确度的平均值才有意义。这个方法较k位精确度难以向最终用户说明清楚,但是要比MAP方法易于解释。有趣的是,由于返回的结果数量和估算的匹配文档数量一样,都为rel,假设其中的匹配文档数量为r,相应查询结果的精确度和召回度都为r/rel。这样,R精确度方法和收支平衡点方法(break-even point)相同,它是另外一种测度方法,就是根据两个指标相等给出相应的数值。和k位精确度方法一样,R精确度方法也只是描述了点值,并没有给出各种精确度和召回度的组合,所以有人也会责备该方法为什么只关心收支平衡点而不相关曲线上的最高点。然而,经验表明,该方法和MAP方法相关性较高,但却只有一个点值,因此比较简单实用。
另外一个经常使用的评价指标就是ROC(Receiver Operating Characteristics)曲线,它比较两个数值,一个是真阳性(true positive),或者召回度,另一个是假阳性率(false positive rate)或者(1-specificity)。其中,假阳性率为fp/(fp+tn),对于specificity,在非排序检索系统中通常以tn/(fp+tn),不过这个值并不理想,因为通常真阴性(true negatives)都会很大,所以最终的数值会接近0。曲线如下图所示:

此主题相关图片如下:
按此在新窗口浏览图片
图和前面的精确度召回度曲线采用了相同的数据。它呈现出从左下角到右上角逐渐抬升的态势。如果系统优良,通常会在*左的地方有比较明显的急剧爬升现象。所以,原始精确度召回度曲线图中较有价值的部分是召回度为0到0.4之间的部分,因此此图有价值的部分也主要集中于左边的角落中。
ROC曲线图提供了另外一种查看信息检索系统效果的方法,而且比较完整和全面。常见的使用方法就是报告ROC曲线下的区域面积,数值类似于MAP。不严格的说,精确度召回度曲线是ROC曲线的一种松散形式。
除此以外,还有一种越来越受到关注的方法,被广泛的应用于排序的机器学习方法评价之中,即累计收益(cumulative gain),它是规范折扣累计收益(normalized discounted cumulative gain,NDCG)的特例。NDCG方法主要用于对非二值相关度判断的评价中。类似于k位精确度,它只对搜索结果的前面k篇文档进行评价。

8.5 对相关度方法的评价
为了正确评价信息检索系统,用于测试的信息需求必须和测试文档集合的内容具有紧密关系,并且适应系统的使用规则。这些信息需求都是由一些领域专家专门设计。利用词语的随即组合构造信息需求并非好主意,因为这样的做法并不能有效反映信息需求的真实分布情况。
给定信息需求和文档集合,人们必须对其的相关度事先进行评价。这是一件十分耗时耗力的工作,需要大量的人力介入。对于一些小型文档集合,如Cranfield,这样做还可以承受。但是对于一些大型现代测试文档集合,只能对查询返回结果文档的一部分进行评价。其中最为常用的方法就是pooling方法,它将很多需要评价的不同信息检索系统的返回结果中头k条文档记录汇总起来,并对此进行评价,同时还要借助其他一些资源,如布尔关键词检索的全部结果和部分专家给出的搜索结果等,这在交互式评价过程中可以起到重要作用。
毕竟人不是机器,所以不可能对文档和查询的相关度做出完全准确的判断,经常的情况就是评价有些奇怪或者标准易变。但这并非问题,因为在最终的分析中,信息检索系统的成功就是要设计一种系统能够满足这些具有奇怪需求并且需求评价经常发生变化的人类。
但是,我们要能够对这些相关度评价的一致性(agreement)做出必要的测度和评价。在社会科学领域,对评价的一致性进行测度的常见方法就是kappa统计指标,它主要用于类别评定工作中,还能对一些因为偶然产生一致的判断因素进行矫正,公式为:

此主题相关图片如下:
按此在新窗口浏览图片
其中,P(A)为评价一致的比重,而P(E)是因为偶然而产生一致的评价比重。

此主题相关图片如下:
按此在新窗口浏览图片
如果我们只是在做一种二值判断,偶然产生一致的期望可能性为0.5。但是,如果分布过于倾斜,就需要使用marginal统计指标来计算一致性。不过,这里采用kappa指标的主要原因在于这种方法更适合对交叉判断的评价工作。如果两种判断完全一致,kappa为1,如果所有的判断一致都是偶然使然,kappa值为0,甚至kappa值都可以为负,这只能说明情况比随机还糟。如果存在超过两组的判断,常见的处理方式就是两两比较,再计算平均值。经验表明,kappa值大于0.8才能反映较好的一致性,介于0.67到0.8之间则一般,而小于0.67则一致性较差。当然,精确的界限也会随着所用数据目标的不同而不同。
现在,TREC和一些医学检索系统也广泛的采用了判断一致性的评价方法。使用上述规则,一致性数值常常位于一般范围内,即0.67到0.8。造成这种现象的原因有很多,其中的常见原因就是对文档相关度评价粒度上不是很精细。

8.6 相关度概念的进一步探讨
根据文档相关或者不相关来对信息检索系统进行评价,其中的一个好处就是使得我们具有一个给定的环境设置,在里面可以通过切换系统或者系统参数来得到可以比较的结果。这种方法成本较低,结论也很清晰,要比进行用户调研来研究更为简单易行。事实上,一旦我们拥有了大家都信任的正式测度方法,就可以通过机器学习算法来对它的效力进行优化。当然,这样做的前提是现有的这些方法是有效的。事实已经证明,虽然现有的相关度评价方法较为简单,仍然是一种较为可行的方案。近年来,对这些方法的优化工作也得到了大量的研究,如TREC测试环境中的文档长度规范方法(document length normalization methods)和一些用来调整分值权重的机器学习方法等。
但是,这并不说明现有的方法就没有问题。
首先,现在的各种常见方法都是假设一篇文档的相关性与其他文档的相关性无关,这种假设存在于大多数的信息检索系统中,不同的文档只是根据查询给出分值,而彼此之间没有关系,相关度评价领域也是一样。所以,现有的相关度评价方法往往过度依赖于对文档集合、查询和相关度判断指标的选择上,可以这样说,任何一个领域的评价结果都不可以直接说明其他领域也是一样。
其次,现在的评价都是二元性评价,没有给出更为精细的表示方法,将评价文档相关度的工作看成是一个绝对的客观过程。但是,相关度其实是一种主观性很强的测度指标,不同的人、不同的场合都会产生不一致的评价结果,各种原因有用户理解不准确或者情感因素的干扰等。另外,我们是假设用户的信息需求在整个检索过程中不会发生改变,显然这也并非现实。
这些问题并非不能解决。现在的一些评价,包含INEX,TREC的部分测试内容和NCTIR都开始采用一些能将评价级别分为3到4层的有序相关度指标,这些指标表达了从不相关到相关的各种中间层次。
现在还有人提出边缘相关度(marginal relevance)的概念,它就是指用户在看过很多其他文档后是否会认为以前看过的文档是否还有用 。即便是一片文档很相关,但是它的内容有可能会与其他文档内容重复。极端的例子就是拷贝文档,这种情况在Web资源上广泛存在,特别是对于一些时事往往会给出相似的描述。而边缘相关度就显得较为有用,要使得边缘相关度的值最大化,就必须使返回文档要具有较大的区分度和新颖度。要想做到这一点,就需要使用具有不同的事实内容的文档来作为评价的单元,显然,这虽然会产生更为精确的结论,然而会增加文档测试集合的创建难度。

8.7 其他的系统质量和用户效能评价方法
正规的相关度评价似乎与测度用户最终满意度并非一回事。用户最终满意系统给出的各种结果吗?标准的方式是进行用户调研。这既包含定量测度,较客观的指标有完成任务的时间等,也有较主管的指标,如结果满意度权值,也包含定性测度,如用户对搜索系统界面的评价等。
不考虑测度检索质量这个目标,可以使用很多指标来对检索系统的其他方面进行测度,如:索引的速度,即对于各种不同长度文档的集合,每小时能够索引的文档数量;搜索的速度,即由于索引的大小造成多少延迟时间;查询语句的可表达性,处理复杂查询的速度;文档集合的大小,这既要考虑文档的单纯数量,还要考虑主题的覆盖面。
除了查询语言的可表达性外,这些指标都很容易进行测度,可以给出具体的速度或者大小数值。
我们真正想做的事情是能根据相关度、速度和系统接口等因素来对用户幸福度(user happiness)进行定量化的测度。要想做到这一点,就需要理解我们所面对的用户群体特征。对于搜索引擎而言,幸福的用户应该是指那些找到所要内容的用户。所以直观的测度方法就是观察用户是否愿意重返该搜索引擎。测度用户访问某搜索引擎的频率是种有效的测度方法,显然这种方法适用于各种搜索引擎的用户满意度。除此以外,广告商也是现代搜索引擎的主要用户之一。如果用户点击了他们的站点并且购买了商品,他们一定会高兴。在一个电子商务网站上,用户显然是想购买些什么想要的东西。所以,我们可以通过测度购买的次数或者有多少搜索用户最终变成了真正的购买者。在一些店面站点上,如果交易成功,用户和商店所有者都会感到满足。
对于商业企业、政府或者学术机构这些企业组织而言,企业内部搜索引擎的满意度测度指标应当更多关注与用户的生产力,如用户需要花费多少时间才能获取到所需的内容,甚至还要包含诸如信息保密等特殊问题。
用户幸福度是难以测度的。所以很多标准的测度方法并非直接对用户进行调研,而是采用搜索结果的相关度进行间接测度,如通过各种事先评价好的代理数据(proxy)。当然,最为直接的方法应该对直接的目标用户群体进行调研,可以采用多种具体方式来实施。用户调研对于系统的设计非常重要,但是它耗时耗力。而且也难以做好,用户调研的设计和解释都需要专门的知识。
如果信息检索系统已经建好,而且已经被很多用户使用,系统的构建者可以部署多台不同版本的系统,并且利用一些指标来记录用户对它们的使用满意度,最后基于这些指标的比较分析来对系统做出必要的评价。这种方法广泛的应用于各种Web搜索引擎系统当中。
其中最为常见的方法就是A/B测试法,这个术语来自于广告业。对于一项测试而言,可以在当前使用的正常系统和比较系统之间参数调整出一个不同的特点,并且把访问的用户随机的抽取一小部分(1%—10%)转向到比较系统上,大多数用户仍然使用原有系统。如对于相关度排序算法而言,我们可以将一小部分随机抽取的用户转发到比较系统上,观察这些用户对头条记录的点击频率或者首页记录的点击情况等,据此和现有系统进行比较,从而得出判断结论。这种分析方法也被称为点击日志分析法(clickthrough log analysis)或者点击流挖掘(clickstream mining)。
A/B测试法的基本情况就是进行一组独立的变量测试,这些测试可以顺利进行或者并发进行。对于每个测试而言,比较系统只能和现用系统具有一个参数特征的差别,并以此来观察这些不同的参数是否具有正相关还是负相关关系。这种测试较为简单易行,而且由于用户群体巨大,所以观察出每个细小的正负相关关系。在实践中,还可以通过同时随机调整多个参数来达到更好的分析效果,进行多变量统计分析,如多元线性回归分析等。实践证明,这种方法便于实施,易于理解,而且也易于向管理层解释。

8.8 结果摘要(Results snippets)
一旦选择好命中文档,就可以直接展示给用户。在大多数情况下,用户不会查阅所有的返回结果,所以有必要在结果列表中提供丰富的信息以供用户进行相关度的判断(往往在法律文献数据库检索中,法律顾问(legal associate)会检查几乎所有的匹配文档)。常见的方法就是提供文档摘要,即文档的简要描述,以供用户在不打开文档的情况判断文档的相关度。一般而言,摘要由文档标题和自动抽取的总结话语组成。这里的问题往往在于如何抽取总结话语以使用户觉得有用。
两种较为基本的总结话语分别是静态的和动态的,前者和查询内容没有直接关系,而后者往往与查询密切相关,它往往根据查询所反映出来的用户需求进行定制。动态的总结往往试图去解释为什么返回这些特定的文档。
静态的总结通常由文档的部分内容和元数据组成。最简单的方式往往截取头两句话或者头50个词语等,还可以提取文档的特定字段信息,如标题、作者和日期等,对于网页而言,出现在meta标签中的description元数据信息也很有用。这些总结信息通常在被抽取后,会在索引时被缓存下来,以提高检索性能。
利用自然语言处理技术可以做出更好的工作,如文本摘要技术(text summarization)。这些工作中的绝大多数都是着眼于从原文中良好合适的句子。这些模型综合了位置因素(如偏好文档的首段和末段,或者段落的首句和末句等)和内容因素(如强调含有关键词的句子,这些关键词往往具有较低的集合文档频率和较高的当前文档频率,并且在返回结果文档中具有良好的分布)。对于较为复杂的自然语言处理技术,系统往往对一些句子进行总结处理,有的通过全文生成技术,有的通过对文档句子进行编辑和进一步的组合处理。如删除关系从句,或者将代名词替换成名词短句。但是,从总体来看,这些复杂的自然语言处理方法往往只停留在研究领域,很少应用于真正的商用搜索系统中。事实表明,从原始文档中直接提取所需句子显得更为简单、安全和好用。
动态总结技术可以展示一个或者更多的文档片段,从而使得更有助于用户进行相关性的判断。通常这些片段包含一个或者更多的查询词语,所以它们常常被称作含有上下文关键词(keyword-in-context,KWIC)的摘要。有时这些动态摘要可能和静态摘要一样,就是诸如标题之类的信息。在生成动态摘要的时候,往往要结合权值的计算。如果查询表现为一个词组,词组出现的句子就被看成有效的总结内容。如果没有这些全部的词语,那么含有较多词语的文档内容会被选择出来。一般而言,这些摘要会在查询词语的前后加上若干其他词语,以显得更有含义。
动态摘要技术虽然可以提高检索系统的可用性,然而却会导致系统设计工作的复杂化。动态摘要不能被预计算,而且搜索引擎也难以构造出计算动态摘要所需的上下文环境。这也是人们为什么广泛使用静态摘要的原因。对于一些海量廉价存储设备而言,可以在索引时缓存所有文档内容来实现上下文环境的获取(尽管这样的做法也会导致信息版权、信息保密性等一些难以控制的问题),此时系统可以直接扫描即将显示摘要的文档内容,发现含有查询词语的段落。除了需要获取文档内容信息外,产生较好的KWIC摘要需要更多的小心,如选择那些讨论这些查询词较多的文档内容、文档片段要易于阅读、文档片段要短小以适应显示界面篇幅的要求等。
生成摘要的速度要快,因为处理每个查询都要进行这样的工作。所以,对文档原始内容缓存的常见做法并非缓存整篇文档,而只是文档前面固定数量的内容,如10000字符等。即使对于较大的文档,这些前面的内容显然也是对提取摘要较有价值的部分。
值得注意的是,如果爬虫获取了更新后的新文档内容,可以不去更新缓存的文档内容,甚至可以不去改变索引。看起来这样做似乎不能准确反映文档的真实内容,然而正是这种差异更有助于用户发现有价值的内容。

[此贴子已经被作者于2010-12-14 09:20:03编辑过]

 回到顶部