班课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