班课5

1. ranked retrieval

是free text queries形式,不需要query语言,直接输入要找的单词就可以

2. 做rank的前提是可以进行排序,如Jaccard Coefficient

jaccard(A, B) =|A∩B|/|A∪B|,即两者重复的单词数量比上二者总共的单词数量

jaccard(A, A)=1, jaccard(A, B)=0 if A∩B=0

但是这个方法并没有考虑一个单词出现的次数;很少出现的单词比大量出现的单词更具代表性,但是这个方法并没有考虑到这一点

3. bag of words model:将每句话打散成独立的单词,不关注单词出现的顺序

4. term frequency: tft,d指的是单词t在文章d中出现的次数

5. document frequency即一个单词在多少个文章中出现过;inverse document frequency即idf指的是log(N/dft),N是一共的文章数量,用它除去document frequency

单词出现的次数越少,idf越大

6. tf-idf weighting

对query与文章同时求tf-idf,然后求两者之间的差距

但是不能直接用欧几里得公式,要用下面的公式

7. 计算cosine score的最后一步要除以length,即normalization;然后取top

简单理解就是对每一个query,求每个文章对应的score,取top

8. document使用lnc,代表log形式,no idf,用了cosine normalization

query使用ltc,代表log形式,使用idf,用了cosine normalization

9. effienct cosine ranking

快速计算+减少需要计算的数量

优化1:unweighted queries,即不对query本身进行计算,只看document本身,加快速度

优化2:max heap,binary tree的一种,父节点一定大于子节点,但是左右两个子节点的大小没有规定。构建的时间复杂度为O(n),找到前K个最大的值的复杂度为O(K*log(n)),因为每次遍历的时候走到最下面一层的复杂度为log(n),需要找到前K个

优化3:min heap,将最小的data放在最上面,即子节点总是大于父节点;tree形成之后,只要将位于root的最小的点pop掉就可以了;时间复杂度为O(n*log(k)+k*log(k))

10. query processing

document-at-a time:一个document一个document的处理,即对于query中的第一个term,首先处理array中的第一个文章,结束之后处理第二个。。。

term-at-a-time:一个term一个term的处理,首先处理inverted list中的第一个term,将出现该term的所有document都处理完再做别的term

第二个磁盘利用率更好一些

conjunctive TAAT:所有单词都出现在document中才能进入rank,只重合了一个单词不算。如在第一个term中,只有第一个document与第四个document存在该term,在剩下的term中,第2、3个document就不予考虑了

conjunctive DAAT:先做Boolean查找再做rank,即先将指针指向第一个document中的每个term,若term均存在则计入分数,然后指针指向下一个document中的每个term,若有不存在的则不再考虑这个document

11. maxscore methods:将每个term的最大值从大到小排序,假设要求top3,r‘是top3中最低的分数,若其中一个term的最大值比r'要小

any doc scores higher than r' must contains at least one of the first 2 keywords

即根据top rank求出一个阈值,不考虑比阈值小的document

12. 其他改进方法

1)generic approach

k<A<<N,保证绝大多数的K都能在A中被找到,对空间进行压缩

1.a) high-idf query terms only:只考虑比较稀有的单词

2.a) 3 of 4 query:只有所查询的四个单词中的3个均出现在document中,就可以

3.a) 计算每个term里面weight最高的document ID,取r个,其余的不考虑

2)static quality scores:用其他方法进行排序,赋予document ID意义,如按照权威性,即是否由权威媒体发布的消息

这样做的目的是检索过程中,可能由于时间设置提前结束搜索,设置权威性可以优先获取这些可信的信息

3) high and low list:high listk可以类比成champion list,当high list不能够产生足够的candidate的时候,从low list中进行提取

4)cluster:若有N个document,随机选取根号N个document作为leaders,对每个非leaders的文章,计算nearest leader。查找文章的时候先查找leaders,然后查找其对应的document

5)query parser:若要搜索ABC,A、B、C各代表一个term,首先搜索ABC,若是数量不够继续搜索AB+BC,还是不够搜索A+B+C

原文地址:https://www.cnblogs.com/eleni/p/13874752.html