Learn to rank,
学习对摘要搜索者的日志进行排序
搜索者的日志主页维基关于
学习排序摘要
/* -*-作者:谭梦龙;邮箱:谭梦龙_ at _ gmail推特/微博:@ crackcell请注明出处-*-*/
目录
1前言
2 LTR流程
3训练数据的获取
3.1手动标签
3.2搜索日志
3.3公共数据集
4特征提取
5模型训练
5.1培训方法
逐点
成对
列表方式
6效果评估
6.1 NDCG(标准化贴现累积收益)
6.1.1定义
描述
6.2地图(平均精度)
6.2.1定义
描述
7参考
1前言
在传统搜索引擎的排名策略中,通常会有几个子策略,通过几种方式组合成一个更大的策略,共同发挥作用。策略的组合方式和参数一般是人工或半人工确定的。随着策略的逐渐细化,传统的方式越来越难。因此,学习排序(LTR)被引入。LTR的核心是利用机器学习来解决排序问题。它广泛应用于信息检索、自然语言处理和数据挖掘等领域。LTR是监督学习。模型建立后,需要用训练数据集的人工标注结果进行训练。
2 LTR流程。/NOTE _ a _ short _ intro _ 2 _ ltr-training _ process . png[[。/NOTE _ a _ short _ intro _ 2 _ ltr-training _ process . png][。/NOTE _ a _ short _ intro _ 2 _ ltr-training _ process . png]]
3训练数据的获取
获取训练数据有两个来源:1)人工标注;2)搜索日志。
3.1手动标签
从搜索日志中随机选取一部分查询,让经过专业训练的数据评估员对‘查询-Url对’进行相关性判断。常见的有五个等级:差、一般、好、优秀、完美。将此用作训练数据。手工标注是标注者的主观判断,会受到标注者背景知识等因素的影响。
3.2搜索日志
点击日志太多。举个例子,结果ABC分别排在第123位,B比A低,但是得到了更多的点击,所以B的相关性可能比A好,点击数据隐含地反映了在查询下与搜索结果相关性的相对质量。在搜索结果中,高位置被点击的概率会大于低位置,这就是所谓的‘点击偏差’。但采用以上方法,可以绕过这个问题。因为我们只记录‘点击反转’的高低结果,所以用这样的‘偏好对’作为训练数据。关于点击数据的使用,后面会单独发布帖子记录,此处不展开。在实际应用中,除了点击数据,往往还会用到更多的数据。例如,通过会话日志挖掘页面驻留时间等维度。在实际场景中,搜索日志通常包含大量噪声。而且只有Top Query(被搜索过很多次的查询)才能生成足够多能说明问题的搜索日志。
3.3公共数据集
可以使用现有的一批公布的数据集。
LETOR,http://research . Microsoft . com/en-us/um/Beijing/projects/LETOR/
微软学习排序数据集,http://research.microsoft.com/en-us/projects/mslr/
雅虎学习排名挑战,http://webscope.sandbox.yahoo.com/
4特征提取
搜索引擎使用一系列特征来确定结果的排名。一个特征称为“特征”。根据我的理解,功能可以分为3类:
Doc本身的特性:Pagerank,内容丰富度,是否是垃圾邮件等。
查询文档的特征:文本相关性、查询词在文档中出现的次数等。
这个阶段是提取所有的特征用于后续的训练。
5模型训练
5.1培训方法
LTR学习方法分为三类:逐点法、成对法和列表法。逐点将排序问题转化为回归、分类或有序分类问题。Lisewise以查询下的整个搜索结果作为训练的例子。三种方法的区别主要体现在损失函数上。
逐点
排序问题转化为单一结果的回归、分类或有序分类。
功能框架
L(F(x),y)=I=1nl(F(Xi)-yi)
总结。/NOTE _ a _ short _ intro _ 2 _ ltr-point wise _ flow . png
成对
排序问题转化为结果对的回归、分类或有序分类。
功能框架
L(F(x),y)=I=1n 1j=1nl(符号(yi yj),F(Xi)F(XJ))
总结。/NOTE _ a _ short _ intro _ 2 _ ltr-pairwise _ flow . png
列表方式
功能框架
L(F(x),y)=exp(NDCG)
总结。/NOTE _ a _ short _ intro _ 2 _ ltr-list wise _ flow . png
6效果评估
对于搜索结果,有很多方法可以计算量化的搜索得分。这里,介绍NDCG和地图。
6.1 NDCG(标准化贴现累积收益)
6.1.1定义
NDCG(k)=G1 max,i(k)j:ik2yi,J1 log 2(1I(j))
计算前k个结果的相关分数。
I:第I次搜索。
J:第J条结果
Yi,j:标注j条结果相关性的得分,五个等级。
I (j):这个结果在排序中的位置。
描述
顾名思义,NDCG的公式由四部分组成:N、D、C和g。将公式改写为
NDCG(k)=Gmax,i(k)j:ikGi(j)Di(i(j))
先看G部分。g是增益函数(Gain ),表示在给定Yi,J的分数后由文章J的结果贡献的分数增益。定义如下
Gi(j)=2yi,J1
再看d部分。d是贴现头寸函数(贴现)。因为不同位置的增益应该是不同的,所以D函数根据位置给结果一个权重。计划如下
D(i(j))=1log2(1 i(j))
c部分是累加的,把k个结果的分数加在一起。
n是归一化因子,值是G函数在这个位置的理论最大值的倒数。目的是将不同位置的分数缩放到一个统一的区间。
6.2地图(平均精度)
6.2.1定义
AP=nij=1P(j)yi,jnij=1yi,j
P(j)=k:i(k)i(j)yi,ki(j)
MAP,相关分值yi,j只有两档:0和1。
描述
p表示结果J的权重,从位置J开始,以及相关(标记为1)结果的比例。
表示AP单个查询下相关结果的加权平均得分。
在AP中,只有标记为相关的结果才会参与加权累加。
AP是单个查询的分数,多个查询的平均AP就成了MAP。
7参考
李航。为信息检索和自然语言处理学习排序
李航。学习排名的简短介绍
作者:谭梦龙谭梦龙
日期:2011年12月17日17时11分51秒
由emacs 23中的org-mode 6.33x生成的HTML
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。