coursera课程 text retrieval and search engine 第五周 推荐。
反馈的基本类型
- relevance Feedback:查询结果返回后,有专门的人来识别那些信息是有用的,从而提高查询的命中率,这种方式很可靠
- implicit feedback:观察有哪些返回结果是用户点击了的,有点击的认为是对用户有用的,从而提高查询准确率
- persudo feedback:获取返回结果的前k个值,认为是好的查询结果,然后增强查询
Rocchio Feedback思想
对于VSM(vector space model)来说,想要提高查询的准确度,需要把查询向量做一个调整,跳到某个位置以提高精度,Rocchio即把向量移到所有向量的中心
||取模代表向量的个数,另外经过移动之后,会有很多原来是0的变成有数据,通常采用的措施是保留高权重的
它可以用在 relevance feedback和persudo feedback【relevance的beta要大于persudo】;在使用的时候注意不要过度依赖,还是要以原始的查询为主,毕竟反馈只是一个小的样本
Kullback-Leibler divergence Retrieval model[KL散度检索模型]
kl作为反馈运算来讲,具体操作可以是:首先提供一个预估要查询的文档集,以及查询的关键字,分别计算出文档和查询的向量。计算出二者的距离【基本和VSM一致】,通过这样的方式,会得到一个反馈的集合。这里的关键在于从反馈集合中提取出一个查询向量,通过如图所示的方式添加到查询向量中去【作为反馈】,从而提供更好的查询结果
混合模型
所有的反馈结果集合都会来自于反馈模型,但是通过词频分析来说,排在最前面的一般都是常用的字段集合【the 等】,而这些加入反馈是非常不恰当的。 通过加入另外的一个集合【背景文档】,混合两个模型,并通过概率来选择哪个集合的结果,这个时候,所有的反馈文档集合由混合模型来决定,那么对于在背景文档中很少的词频,但是在反馈文档中很频繁的,必定是来源于反馈文档集合,背景文档集合本身通过给the等词添加很低的频率,那么就可以筛选出反馈文集总过高的通用词
topic words代表反馈模型,假设有一个源头来控制是取背景字段还是反馈模型的字段,其选择概率是lamda。这样做到可以控制到底是选择背景文集作为 反馈还是反馈模型。