Learn to rank,

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: