信息检索导论要点整理

信息检索 专栏收录该内容
12 篇文章 1 订阅

这是在准备期末考试的时候根据王斌博士翻译的《信息检索导论》(人民邮电出版社出版)和山东大学信息检索实验室的陈竹敏老师的授课课件进行整理的。

、归一化计算笔记繁琐。

前言

1、     IR的两种模式:pull(ad hoc)或者push(filtering)

Pull:用户是主动的发起请求,在一个相对稳定的数据集合上进行查询。

push:用户事先定义自己的兴趣,系统在不断到来的流动数据上进行操作,将满足用户兴趣的数据推送给用户,典型就是推荐系统。

布尔检索

1、确定文档和IR的相关度是信息检索的核心。

2、信息检索模型是描述信息检索中的文档、查询和它们之间关系(匹配函数)的数学模型。

3、 布尔模型:定义

文档表示:一个文档被表示为关键词的集合。

查询表示:查询式被表示为关键词的布尔组合,用“与、或、非”连接起来。

相关度计算:一个文档当且仅当它能够满足布尔查询式时,才能将其检索出来,检索策略是二值匹配。

4、 布尔模型的优缺点

优点:

(1)  由于查询简单,因此容易理解。

(2)  通过使用复杂的布尔表达式,可方便地控制查询结果。

(3)  相当有效的实现方法。

(4)  经过某种训练的用户可以容易地写出布尔查询式。

(5)  布尔模型可以通过扩展来包含排序的功能。

缺点:

(1)  弱。不支持部分匹配,完全匹配会导致结果太多或太少。

(2)  非常刚性。“与”意味着全部,“或”意味着任何一个。

(3)  原则上讲,所有被匹配的文档都将被返回。

(4)  不考虑索引词的权重,所有的文档都以相同的方式和查询相匹配。

(5)  很难进行自动的相关反馈。

(6)  如果一篇文档被用户确认为相关或者不相关,怎样相应地修改查询式呢?

5、查准率:返回的能够满足用户信息需求的文档占总的返回文档的百分比。

6、召回率:返回的能够满足用户信息需求的文档占总的能满足用户需求的文档的百分比。

7、索引的一种表示方法:词项文档矩阵。

8、倒排索引

对于每一个词项,存储所有包含这个词项的文档的一个列表。一个文档用一个序列号docID来表示。(按照docID排列)

应当使用可变长度的记录列表。在硬盘上,一串连续的记录是正常的,也是最好的。在内存里可以使用链表,或者可变长度的数组。

9、建立索引的步骤(23页)

(1)词条序列Token Sequence((修改过的词条,文档ID)对序列);

(2)排序(先按照词条排序,再按照docID排序);

(3)词典和倒排表(同一篇文档中多次出现的词被合并,分割成词典和倒排表,词汇的文档频率也被记录)。

10、倒排索引的建立过程:词条化模块à语言学模块à索引模块

11、布尔模型的匹配函数

    用qdnf表示查询q析取范式,qcc表示qdnf的任意合取分量。文献与查询q的相似度为


如果值为1则表示相关,否则不相关。sim就是该模型的匹配函数。

12、查询优化

按照文档频率的顺序进行处理:先处理文档频率小的,再处理大的(这就是为什么我们在前面提到要存储词条的文档频率)。

更一般的优化:获得所有词项的文档频率;保守地估计出每个OR操作后的结果大小;按照结果从小到大的顺序执行AND。

词项词典和倒排记录表

1、 如何建立词项词典?

文档解析à词条化à停用词à词项归一化à词形归并à词干还原

2、词条化:将给定的字符序列拆分成一系列子序列的过程,其中每一个子序列称之为一个“词条”(tokens)。/*我们平时说的分词*/这个过程中英文会有不同的问题。

3、词条化的策略。针对不同的语言,采取不同策略的词条化方法。分词的基本方法:基于词典的最大匹配法(逆向最大匹配、正向最大匹配)、机器学习方法。

4、消除停用词的问题和可能的方法

优点:可以减少term的个数。

缺点:有时消除的停用词对检索是有意义的。

方法:查表法、基于文档频率。

5、 词项归一化:将文档和查询中的词条“归一化”成一致的形式(如USA与U.S.A)。

6、归一化的结果:在IR系统的词项词典中,形成多个近似词项的一个等价类。

7、词项归一化的策略:建立同义词扩展表。

8、 词形归并:减少曲折变化的形式,将其转变为基本形式(如am,are,isàbe)。词形归并可以减少词项词典中的词项数量。

9、 词干还原

通常指粗略地去除单词两端词缀的启发式过程。词干还原能够提高召回率,但是会降低准确率。

10、     Porter算法:英文处理中最常用的词干还原算法。

11、     合并算法回顾(32页)

通过在两个倒排表之间同时移动指针来实现合并,此时的操作与线性表的总数成线性关系。

基于跳表的倒排记录表快速合并算法。

跳表指针能够跳过那些不可能出现在检索结果中的记录项。

放置跳表指针的一个简单的启发式策略是:如果倒排表的长度是L,那么在每个处均匀放置跳表指针。

注意:跳表指针只对AND类型的查询有用,对OR类型的查询不起作用。

12、    短语查询第一种方法:二元词索引

将文档中每个连续词对看成一个短语。其中的每一个二元词对都将作为词典中的词项。经过上述的处理,此时可以处理两个词构成的短语查询。

13、    扩展的二元词索引

名词和名词短语构成的查询具有相当特殊的地位。

首先对文本进行词条化,然后进行词性标注;

把每个词项分为名词(N)、虚词(X),冠词和介词和其他词;

将形式为N*XN非词项序列看成一个扩展的二元词;

每个这样的扩展的二元词对应一个词项。

14、    短语查询的第二种方法:位置信息索引

在这种索引中,对每个词项,采取以下方式存储倒排表记录:

<词项,词项频率;

文档1:位置1,位置2……;

文档2:位置1,位置2……;

……>

对于短语查询,仍然采用合并算法,查找符合的文档不只是简单判断两个词是否出现在同一个文档中,还需要检查它们出现的位置情况。

索引构建与压缩

1、构建索引的程序或计算机称倒排器索引器)。

2、索引构建算法:

基于块的排序索引构建算法(面向静态文档集、单机)

内存式单边扫描索引构建算法

分布式索引构建算法

动态索引构建算法

3、 基于块的排序索引算法(BSBI)

基本思想:对每一个块都生成倒排记录,并排序,写入硬盘;然后将这些块合并成一个长的排好序的倒排记录。

存在的问题:(假设:能够将词典存入内存中)需要该词典(动态增长)去查找任一词项和词项ID之间的关系。事实上,可以采用<词项,文档ID>对来代替<词项ID,文档ID>对。中间文件会变得非常大,这是一个可扩展的,但效率非常低的索引构建算法。

4、SPIMI内存式单遍扫描索引算法

核心思想1:为每一个块单独生成一个词典——不需要维护全局的<词项,词项ID>映射表。

核心思想2:不进行排序。有新的<词项,文档ID>对时直接在倒排记录表中增加一项。

根据这两点思想,可以为每一个块生成一个完整的倒排索引。然后将这些单独的索引合并为一个大的索引。

5、分布式索引构建

利用集群中的主控节点来指挥索引构建工作(我们认为主控节点是“安全的”);将索引构建过程分解成一组并行的任务;主控计算机从集群中选取一台空闲的机器并将任务分配给它。

6、 并行任务。首先将输入的文档集分割成n个数据片,每个数据片就是一个文档子集(对应于BSBI/SPIMI中的数据块)

两种文档集分割方法:基于词项的分割,基于文档的分割。

7、 分析器Parsers

主节点将一个数据片分配给一台空闲的分析服务器。分析器依次读取文档并生成<词项,文档>对。分析器将这些<词项,文档>按照词项对分成j个段,每一段是按照词项首字母划分成的一个区间。然后可以进行索引的倒排。

8、 采用MapReduce的索引构建架构

Map:输入àlist(k,v) Reduce:(k,list(v))à输出。

//索引构建中上述架构的实例化

Map:Web文档集àlist(词项ID,文档ID)

Reduce:(<词项ID1,list(文档ID)>,<词项ID2,list(文档ID)>,…)à(倒排记录表1,倒排记录表2,…)

9、动态索引构建方法

(1)  周期性索引重构

(2)  维护一个大的主索引,新文档存储在一个小的辅助索引中(位于内存),检索可以同时遍历两个索引并将结果合并,定期地将辅助索引合并到主索引中,文档更新通过先删除后插入的方式实现。

10、    主索引与辅助索引存在的问题

(1)  频繁的合并,带来很大的开销;

(2)  合并过程效率很低

如果每个词项的倒排记录表都单独成一个文件,那么合并主索引和辅助索引将会很高效。合并将是一个简单的添加操作。但需要非常多的倒排文件,对文件系统来说是低效的。

11、    对数合并

维护一系列的索引I0,I1,I2,…,每个都是前一个的两倍大小20*n,21*n,22*n,…。n是辅助索引Z0的大小。

辅助索引Z0存储在内存中。

将较大的那些(I0,I1,I2,…)存储在磁盘中。

当Z0达到上限n时,将它写入磁盘的I0中。

当Z0下一次达到上限时,它会和I0合并,生成Z1(大小21*n)


12、总结——索引构建


13、为什么要压缩(一般来说)?

(1)  节省磁盘空间

(2)  提高内存的利用率

(3)  加快数据从磁盘到内存的传输速度(前提:解压缩算法要很快)。

14、无损压缩:压缩之后所有的原始信息都被保留(在IR系统中常采用无损压缩)。

15、有损压缩:丢掉一些信息。

16、一些预处理步骤可以看成有损压缩:大小写转换、停用词剔除、词干还原、数字去除。


词汇量的大小M和文档集大小T在对数空间中存在着斜率为0.5的线性关系。

18、Zipf定律:排名第i多的词性的文档集频率与1/i成正比。

高频词项很少,低频罕见词项很多。

19、为什么要压缩词典?

搜索从词典开始。想要将词典放入内存中。想和其他应用程序共享内存资源。手机或嵌入式设备通常只有很小的内存。既是词典不存入内存中,也希望它能比较小,以便搜索能快速启动。所以压缩词典非常重要。

20、词典存储——定长方法存储词项浪费空间。

21、压缩词项列表:将词典看成单一字符串,只想下一词项的指针同时也标识着当前词项的结束。

22、按块存储:每k个词项分成一块,只保留第一个指针,需要存储词项长度(额外1字节)。

23、词典搜索的比较次数与平均比较次数(包括压缩的词典和未压缩过的词典)的计算。

24、前段编码:按照词典顺序排列的连续此项之间往往具有公共前缀…。

25、倒排记录表的压缩

26、按照文档ID的递增顺序来存储一个词项的倒排列表。可以存储间距。

27、    可变长度编码

如果词项的平均间距为G,我们想使用log2G bit/间距项。

先用一个字节来存储G,并分配1bit作为延续位c

如果G≤127,对7位有效码采用二进制编码并设延续位c=1(表示结束)

若G>127,则先对G低阶的7位编码,然后采取相同的算法用额外的字节对高阶bit位进行编码

设置最后一个字节的延续位为1(c=1),其他字节的c=0(表示未结束)

28、    可变字节编码被很多商业/研究系统所使用。实现简单,能够在时间和空间之间达到一个非常好的平衡点。

web搜索

1、相似性计算

2、搭叠Shingles(N元词N-Grams)

给定正整数k及文档d的一个词项序列,可以定义文档d的k-shingle为d中所有k歌连续词项构成的序列。

直观上看,如果两个文档的shingle集合几乎一样,那么它们就满足近似重复。

3、Jaccard系数

在文档的Single集合上计算  交集大小/并集大小

/*计算所有文档对之间搭叠的精确交集是非常费时而且难以处理的。使用一种聪明的方式从Shingles中选出一个子集(素描sketch)来近似计算*/

4、近似重复检测(小结)

Shingle算法的核心思想是将文件相似性问题转换为集合的相似性问题。

数量较大时,对shingle集合进行抽样,以降低空间和时间计算复杂性。

shingle取样主要有三种方法,即Min-Wise,Modm,和Mins。

    Mins技术先将shingle和整数集进行映射,然后从中选择最小s个元素组成取样集合。

    此外,还可以使用shingle的hash值代表shingle进行相似性计算,能够节省一定计算开销。

5、web采集器(爬虫)

(1)  从已知的种子URL开始

(2)  获取页面并进行解析:提取页面中包含的链接,把链接放入URL队列

(3)  对队列中的URL,转(2)

6、采集器必须具有的功能:礼貌性、鲁棒性、分布式、可扩展性、性能和效率、新鲜度、功能可扩展性。

7、web图

8、锚文本:超链接周围还有一些文本,这些文本通常被嵌在<a>标签(成为锚)的href属性中。

可以根据锚文本所在的页面的权威性来确定锚文本的权重。

web上随处可见的一个现象是,很多网页的内容不包含对自身的精确描述,因此web搜索者不一定要使用网页中的词项来对网页进行查询,而使用锚文本。锚文本周围窗口中的文本也可以当成锚文本一样来使用。

9、PageRank

对web图中的每一个节点赋一个0-1之间的分值。

查询词无关的排序。

10、    随机行走,随机跳转

11、    Markov链

Markov链是随机游走在数学上的抽象。

12、    遍历Markov链。

满足遍历性的必要条件:

(1)  不可约,任意两个状态之间都存在非零概率转移序列;

(2)  对任意的初始状态,经过有限时间T0的跳转后,在T>T0时刻处于其它任意状态的概率都大于0;

(3)  非周期性,不存在两个状态子集之间的循环往复。

13、    将web图上的一个随机冲浪过程看成是马尔科夫链,其中马尔科夫链中的每一个状态对应一个网页,而每个转移概率代表一个从网页跳转到另外一个网页的概率。

14、    web图的邻接矩阵可以这么定义:如果存在网页i到网页j的一条链接,那么Aii=1,否则为0 。

15、    概率转移矩阵,在邻接矩阵的基础上进行操作。如果A的某一行没有1(即没有出链),则用1/N代替每个元素(随机选择其它任一网页)。其它行的处理如下:

(1)  用每行中的1的个数去除每个1,因此如果某行有3个1,则每个1用1/3代替(归一化);

(2)  上面处理后的结果矩阵乘以1−α;

(3)  对上面得到的矩阵中的每个元素都加上α *1/N。

16、    稳态概率


17、计算a的一种方法:幂迭代   60

18、PageRank小结

预处理:

web图à邻接矩阵à概率转移矩阵P

由P计算a

元素ai是一个0和1之间的数:即页面i的PageRank

查询处理:

检索满足查询要求的页面。按PageRank排序。排序与查询词是无关的。

19、PageRank对于爬虫的爬取策略还是很有用的。

20、超链导向的主题搜索(HITS)

对每个网页给出两个得分:一个得分被称为hub(导航)值,另外一个被称为authority(权威)值。

针对某一主题的好Hub页会指向很多关于这个主题的Authority页面。关于某一主题的好Authority页面会被很多针对这一主题的好Hub页指向。循环定义Circulardefinition–导致可以迭代求解页面的Hub值和Authority值。

21、HITS步骤

确定基本集à精选出Hub页和Authority页à迭代更新。

向量模型及检索系统

1、在排序检索模型中,系统根据文档与query的相关性排序返回文档集合中的文档,而不是简单地返回所有满足query描述的文档集合。

2、Jaccard系数。一种常用的衡量两个集合A,B重叠度的方法。交集除以并集。

3、用Jaccard系数评分的问题:没有考虑一下两点:

(1)  词项频率(词项在文档中出现的次数);

(2)  罕见词比高频词的信息量更大,更加具有区分度。

4、词项-文档词频关联矩阵:将每一个文档看成是一个词频向量(矩阵中的一列)。

5、词袋模型:不考虑词在文档中出现的顺序。

6、词项频率:词项t在文档d中出现的次数,记为tft,d

7、一种替代原始tf的方法:对数词频



文档-词项的匹配得分是所有同时出现在q和文档d中的词项的词频的对数之和。

8、对于罕见词我们希望赋予高权重,对于常见词项我们希望赋予正的低权重。

9、文档频率:出现词项的文档数目。



14、二值关联矩阵、词频矩阵

二值à词频àtf-idf矩阵

每篇文档表示成一个基于tf-idf权重的实值向量(空间的每一位都对应词项,文档是空间中的点或者向量)。

将Queries表示成向量

思路:对于查询做同样的处理,即将查询表示成同一高维空间的向量,在向量空间内根据query与文档向量间的距离来排序。

欧氏距离不好。可以通过计算文档与query的夹角给文档排序。

15、文档长度归一化,可以用2范数对文档长度进行归一化,这样文档之间的长度差异就不会影响相关性了。

16、计算题余弦相似度计算实例46页

========================检索系统=====================

17、词典中保存每个词的idf(逆文档频率)值,词项频率tf存入倒排索引中。

18、精确top K检索加速方法一:快速计算余弦

排序只需要相对得分,于是,不需要对查询向量进行归一化。

(1)  无权重查询

(2)  堆排序法N中选K

(3)  提前终止计算

采用另一种与查询无关的反映结果好坏程度的指标(静态质量)。例如,页面d的PageRank g(d)就是度量有多少好页面指向d的一种指标。69页例子。

19、精确top K 检索仍然无法避免大量文档参与计算。

20、 非精确top K检索

一般思路:找一个文档集合A,K < |A|<< N,利用A中的top K结果代替整个文档集的top K结果。

策略一:索引去除

对于一个包含多个词项的查询来说,很显然可以仅仅考虑那些至少包含一个查询词项的文档(可以进一步扩展这种思路:只考虑那些词项的idf值超过一定阈值的文档;只考虑包含多个查询词项的文档)。

策略二:胜者表//例子78页

    对于词典中的每个词项t,预先计算出r个最高权重的文档。词项t所对应的tf值最高的r篇文档构成t的胜者表,也成优胜表或高分文档。(其中r的值需要在索引建立时给出,因此可能会出现r<K的情况)。

策略三:静态得分

希望排序靠前的文档既是相关的有时权威的。(相关性通过余弦相似度得分来判断,权威性是与query无关的文档本身的属性决定的)。

利用g(d)排序的优点:高分文档更可能在倒排记录表遍历的前期出现,在时间受限的应用中可以提前结束倒排记录表的遍历。

高端表和低端表:对每个词项,维护两个倒排记录表,分别称为高端表和低端表。遍历倒排记录表时,仅仅先遍历高端表,如果返回的结果数目超过K,那么直接选择前K篇文档返回。否则,继续遍历低端表,从中补足剩下的文档数目。(实际上相当于将整个索引分层)

    策略四:影响度排序

       思路一:提前结束

       思路二:词项按照idf降序排列

    策略五:簇剪枝方法

       先导者,追随者。

21、层次索引,可以看成是优胜表的一般化形式。

22、用窗口大小来度量位置关系。

23、    搜索系统的组成



检索评价

1、无序检索结果的评价。

2、整个文档集的划分

未检索出的不相关文档(NN),未检索出的相关文档(NR),检索出的不相关文档(RN),检索出的相关文档(RR)。

3、召回率(Recall): RR/(RR + NR),返回的相关结果数占实际相关结果总数的比率,也称为查全率,R∈[0,1]。正确率(Precision):RR/(RR + RN),返回的结果中真正相关结果的比率,也称为查准率,P∈[0,1]。

两个极端情况:返回有把握的一篇;全部文档都返回。

4、召回率难以计算

解决方法:Pooling方法,或者不考虑召回率。

不可能准确地计算召回率。

缓冲池(Pooling)方法:对多个检索系统的top N个结果组成的集合进行人工标注,标注出的相关文档集合作为整个相关文档集合。

5、一个综合评价准则:F = P和R的融合


表示召回率的重要程度是正确率的倍。

6、为什么使用调和平均计算F值。

(1)  调和平均比较“保守”。调和平均小于算术平均和几何平均。如果采用算术平均计算F值,那么一个返回全部文档的搜索引擎的F值就不会低于50%,这有些过高。

(2)  不管R还是P,如果有一个偏低,都应该体现出来。最小值可以达到该目的,但是最小值方法不平滑,而且不易加权。基于调和平均计算出的F值可以看成是平滑的最小中函数。

7、精确率是所有判定中正确的比率(相关à相关,不相关à不相关)。

8、精确率不适合IR的原因

由于和查询相关的文档毕竟占文档集的极少数,所以即使什么都不返回也会得到很高的精确率。用户希望找到某些文档并且能够容忍结果中有一定的不相关性,返回一些即使不好的文档也比不返回任何文档强。因此…

9、有序检索结果的评价

10、查准率-召回率曲线

检索结果以排序方式排列,用户不可能马上看到全部文档,因此,在用户观察过程中,正确率和召回率在不断变化。

位于上面的曲线对应的系统结果更好。

11、P-R曲线为何出现锯齿形状?

这是很正常的。如果第k+1篇文档不相关,则查全率和前k篇文档的查全率是一样的,但是准确率降低了,所以曲线会下降。如果第k+1篇文档相关,则查全率和查准率都上升。如此就会出现锯齿状。

12、需要去掉锯齿,进行平滑。可采用插值查准率,记为pinter

在查全率为r的位置的插值查准率,定义为查全率不小于r的位置上的查准率的最大值。

13、P-R的优缺点

优点:简单直观。既考虑了检索结果的覆盖度,有考虑了检索结果的排序情况。

缺点:单个查询的P-R曲线虽然直观,但是难以明确表示两个查询的检索结果的优劣。

14、基于P-R曲线的单一指标

固定检索等级的查准率

11点平均正确率

15、    更多的评价准则:AP

平均正确率(AP):对不同召回率点上的正确率进行平均。

16、    不考虑召回率

Precision@N:在第N个位置上的正确率

17、    宏平均(Macro Average):对每个查询求出某个指标,然后对这些指标进行算术平均。

18、    微平均(Micro Average):将所有查询视为一个查询,将各种情况的文档总数求和,然后进行指标的计算。

19、    宏平均对所有查询一视同仁,微平均受返回文档数目比较大的查询影响。

20、    在每个相关文档位置上查准率的平均值,被称为平均查准率(AP)

21、    对所有查询求宏平均,就得到平均查准率均值(MAP)



Q为信息需求,qjQ所对应的所有相关文档集合为{d1,d2,…,dmj},Rjk是查询qj的返回结果,该结果中包含{d1,d2,…,dk}而不含有dk+1及以后的相关文档

22、第50页可出计算。

23、覆盖率:系统找到的用户已知的相关文档比例。

新率:系统返回的新相关文档(用户之前未知)的比例。

24、GMAP


25、NDCG

26、静态摘要,动态摘要

相关反馈与查询扩展

1、交互式相关反馈:在初始检索结果的基础上,通过用户交互指定那些文档相关或不相关,然后改进检索的结果。(最著名的相关反馈方法:Rocchio相关反馈)。

2、查询扩展:通过在查询中加入同义或者相关的词项来提高检索结果。

3、两种提高召回率的方法:相关反馈查询扩展

4、提高召回率的方法:

局部方法:对用户查询进行局部的即时的分析(主要的局部方法:相关反馈)。

全局方法:进行一次性的全局分析(比如分析整个文档集)来产生同/近义词词典。

5、相关反馈的基本思想

(1)  用户提交一个查询;

(2)  搜索引擎返回一系列文档;

(3)  用户将部分返回文档标记为相关的,将部分文档标记为不相关的;

(4)  搜索引擎根据标记结果计算得到信息需求的一个新查询表示(当然我们希望该表示好于初始的查询表示);

(5)  搜索引擎对新查询进行处理,返回新结果,新结果有望有更高的召回率。

6、相关反馈分类

显式相关反馈(用户相关反馈):用户显示参加交互过程;

隐式相关反馈:系统根据用户的行为来推测返回文档的相关性,从而进行反馈;

伪相关反馈(盲相关反馈):没有用户参与,系统直接假设返回文档的前k篇是相关的,然后进行反馈。

7、相关反馈中的核心概念:质心

质心是一系列点的中心。

8、相关反馈基本理论:嘉定我们要找一个最优查询向量q,它与相关文档之间的相似度最大且同时又和不相关文档之间的相似度最小。

最优的查询向量等于相关文档的质心向量和不相关文档的质心向量的差。

9、Rocchio算法29页

10、    Rocchio1971算法40页

11、    正反馈,负反馈。正反馈价值往往大于负反馈,很多系统甚至只允许正反馈。

12、    相关反馈中的假设:

(1)  用户对初始查询有充分的认识,直到使用那些词项来表达;

(2)  相关文档的原型有一种良好的形式。

13、    代替相关反馈的方法:用户修改并重新提交查询。

14、    相关反馈存在的问题

(1)  相关反馈开销很大(相关反馈生成的新查询往往很长,长查询的处理开销很大)

(2)  用户不愿意提供显式的相关反馈。

15、    隐式相关反馈优缺点

优点:不需要用户显示参与,减轻用户负担。用户行为某种程度上反映用户的兴趣,具有可行性。

缺点:对行为分析有较高要求;准确率不一定能保证;某些情况下需要增加额外设备。

16、    伪相关反馈

伪相关反馈对于真实相关反馈的人工部分进行自动化

伪相关反馈算法:

    对于用户查询返回有序的检索结果;

    假定前k篇文档是相关的;

    进行相关反馈

平均效果上不错,但是对于某些查询而言可能结果很差,几次循环之后可能会导致查询漂移。

17、    伪相关反馈优缺点

优点:不用考虑用户的因素,处理简单;很多实验页取得了较好效果。

缺点:没有通过用户判断,所以准确率难以保证;不是所有的查询都会提高效果。

18、    查询扩张主要使用信息:同义词或近义词。

通常会提高召回率,可能会显著降低正确率。

相关词项来源:人工编辑的同义词词典、自动构造的同义词词典、查询日志等。

概率检索模型

1、向量空间模型的优缺点

优点:简洁直观,可以应用到很多其他领域(文本分类、生物信息学);支持部分匹配和近似匹配,结果可以排序;检索效果不错。

缺点:理论上不够(基于直觉的经验性公式);索引项之间的独立性假设与实际不符(实际上,term的出现之间是有关系的,不是完全独立的)。

2、概率检索模型

通过概率的方法将查询和文档联系起来。

定义3个随机变量R、Q、D:相关度R={0,1},查询Q={q1,q2,…},文档D={d1,d2,…}。过计算条件概率P(R=1|Q=q,D=d)来度量文档和查询的相关度。

概率模型包括一系列模型,如经典的二值独立概率模型BIM、BM25模型等(还有贝叶斯网络模型)

3、概率排序原理PRP

利用概率模型来估计每篇文档和需求的相关概率P(R=1|d,q),然后对结果进行排序。

最简单的PRP情况:

检索没有任何代价因子,或者说不会对不同行为或错误采用不同的权重因子。

在返回一篇不相关文档或者返回一篇相关文档不成功的情况下,将会失去1分(在计算精确率时这种基于二值的情形也往往成为0/1)风险。

而检索的目标是对于用户任意给定的k值,返回可能性最高的文档前k篇作为结果输出。也就是说,PRP希望可以按照P(R=1|d,q)值的降序来排列所有的文档。

4、定理:在1/0损失的情况下,PRP对于最小化期望损失(也成为贝叶斯风险)而言是最优的。

5、基于检索代价的概率排序原理

C1表示一篇相关文档未返回所发生的代价

C0表示返回一篇不相关文档发生的代价

PRP认为,如果对于一篇特定的文档d及所有其他未返回的文档d′ 都满足

C0· P(R=1|d) –C1· P(R=0|d) ≤ C0· P(R=1|d’) –C1· P(R=0|d′)

一个是当它不相关时却返回的代价C0· P(R=1|d),另一个是相关时却没有被返回所造成的代价C1· P(R=0|d)。两者相减表示返回文档d 的代价函数,也即此时前者越低越好,后者越高越好。

那么d就应该是下一篇被返回的文档。

6、贝叶斯公式

先验概率反映了各种“原因”,发生的可能性大小(在试验前是知道的,以往的经验得到)。

后验概率反映了试验后对各种“原因”发生的可能性大小的推断。

7、二值独立概率模型BIM

为了对概率函数P(R|q,d)进行估计,引入一些简单假设。

“二值”等价于布尔值:文档和查询都表示为词项出现与否的布尔向量。也就是说,文档d表示为向量。类似的我们将查询也表示为向量。

独立性指的是词项在文档中的出现时互相独立的,BIM并不识别词项之间的关联。

8、RSV检索状态值

9、这一带课件上有好多内容在整理时并未细看,要注意。

10、    在减少出现事件的概率估计值的同时提高未出现时间的概率估计值的方法称为平滑

11、    36页BIM模型小结

12、    BIM模型的优缺点

优点:BIM模型建立在数学基础上,理论性较强。

缺点:需要估计参数;原始的BIM没有考虑TF、文档长度因素;BIM中同样存在词项独立性假设。

13、BM25:一个非二值的模型

文本分类及朴素贝叶斯分类器

1、文本分类的机器学习方法:朴素贝叶斯、Rocchio、kNN、SVM

2、当学习方法基于统计时,这种方法也成为统计文本分类。

3、搜索引擎中文本分类的应用:语言识别、垃圾网页的识别、是否包含淫秽内容、领域搜索或垂直搜索、静态查询、情感识别。

4、朴素贝叶斯分类器

分类规则


平滑操作

23页例题,计算题

5、朴素贝叶斯方法起作用的原因

既是在条件独立性假设严重不成立的情况下,朴素贝叶斯方法依然能够高效地工作;

分类的目标是预测正确的类别,并不是准确地估计概率。

6、在文本分类中,通常要将文本表示在一个高位空间下,每一维对应一个词项。特征选择是从训练集合出现的词项中选出一部分子集的过程。在文本分类过程中也仅仅使用这个子集作为特征。

特征选择有两个主要目的:

(1)  通过减少有效的词汇空间来提高分类器训练和应用效率。

(2)  特征选择能够去除噪音特征,从而提高分类的精度。

7、特征选择方法主要基于其所使用的特征效用指标来定义。

特征效用指标:

频率法-选择高频词项

互信息-选择具有最高互信息的那些词项

卡方

8、互信息(MI)给出的是词项所包含的有关类别的信息及类别包含的有关词项的信息量。

基于向量空间模型的文本分类

1、向量空间模型

词项-文档矩阵:二值à计数à权重矩阵(tf-idf值)

相关性=向量距离:欧氏距离à夹角à余弦相似度

2、利用向量空间模型进行文本分类的思路主要基于邻近假设:

(1)  同一类的文档会构成一个邻近区域

(2)  而不同类的邻近区域之间是互不重叠的

3、核心问题:如何找到分类面决策边界。

4、Rocchio方法进行向量空间分类的思路

利用质心来定义分类边界

一个类别的质心可以通过类中文档向量的平均向量或者质心向量来计算。

计算每个类的中心向量。

将每篇测试文档分到离它最近的那个中心向量。

两个类的边界由那些到两个类质心等距的点集组成(超平面)。

5、Rocchio分类方法的缺陷

为了遵循邻近性的要求,Rocchio分类中的每个类别一定要近似球形,并且它们之间具有相似的球半径。。。。

6、kNN(k近邻)方法

将每篇测试文档分到训练集中离它最近的k篇文档所属类别中最多的那个类别。

基本依据:根据邻近假设,一篇测试文档d将和其邻域中的训练文档应该具有相同的类别。

Voronoi剖分

kNN思路的改进(概率型版本和基于余弦相似度进行加权)20页

当训练集非常大的时候,kNN分类的精度很高;如果训练集很小,kNN可能效果很差。

7、线性分类器。

支持向量机

1、对于SVM而言,它定义的准则是寻找一个离数据点最远的决策面。从决策面到最近数据点的距离决定了分类器的间隔(margin)。

2、离超平面最近的点事支持向量。

3、SVM基本过程

基于给定训练数据集,通过二次优化过程寻找最佳分类超平面;

对于待分类的新数据点,利用分类函数计算该点到超平面的距离;

距离的正负决定了该数据点类别的归属;

如果该点在分类器的间隔之内,分类器可以在原来的两个类之外,返回“类别未知”。

4、软间隔分类

引入松弛变量允许决策间隔犯错误。

训练的目标依然是最小化错误,并求最大间隔超平面。

5、非线性SVM

将数据映射到一个高维空间并在此空间上使用线性分类器将数据分开。

通过空间映射将原始空间映射到新空间,为避免显式的映射函数,引入核函数(定义在原始空间下但是结果是新空间下的内积函数)。

6、核函数

核函数实际上是一个对应于新特征空间上的内积函数。

文本聚类

1、 (文档)聚类是将一系列文档按照相似性聚团成子集或者簇的过程。

2、 聚类假设:在考虑文档和信息需求之间的相关性时,同一簇中的文档表现互相类似。

3、 文档聚类用于提高召回率

可以实现将文档集中的文档进行聚类;

当文档d和查询匹配时,也返回包含d的簇所包含的其他文档。

4、扁平聚类算法

通过一开始将全部或部分文档随机划分为不同的组。通过迭代方式不断修正。(代表算法:k-means)

5、层次聚类算法

构建具有层次结构的簇。自底向上的算法成为凝聚式算法。自顶向下的算法成为分裂式算法。

7、硬聚类:每篇文档仅仅属于一个簇。

8、软聚类:一篇文档可以属于多个簇。

9、k-means聚类算法一定会收敛之证明44页

10、    收敛并不意味着会达到全局最优的聚类结果,这是k-means聚类算法的最大缺点之一。如果开始的种子选得不好,那么最终的聚类结果可能会非常糟糕。

11、判断聚类结果好坏:内部准则、外部准则

 






  • 12
    点赞
  • 0
    评论
  • 44
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值