Learning to rank基本算法小结

原文链接:https://zhuanlan.zhihu.com/p/26539920

Learning to rank基本算法小结


最近工作中需要调研一下搜索排序相关的方法,这里写一篇水文,总结一下几天下来的调研成果。包括

  1. Learning to rank 基本方法
  2. Learning to rank 指标介绍
  3. LambdaMART 模型原理
  4. FTRL 模型原理

Learning to rank

排序学习是推荐、搜索、广告的核心方法。排序结果的好坏很大程度影响用户体验、广告收入等。
排序学习可以理解为机器学习中用户排序的方法,这里首先推荐一本微软亚洲研究院刘铁岩老师关于LTR的著作,Learning to Rank for Information Retrieval,书中对排序学习的各种方法做了很好的阐述和总结。我这里是一个超级精简版。

排序学习是一个有监督的机器学习过程,对每一个给定的查询-文档对,抽取特征,通过日志挖掘或者人工标注的方法获得真实数据标注。然后通过排序模型,使得输入能够和实际的数据相似。
常用的排序学习分为三种类型:PointWise,PairWise和ListWise。

PointWise

单文档方法的处理对象是单独的一篇文档,将文档转换为特征向量后,机器学习系统根据从训练数据中学习到的分类或者回归函数对文档打分,打分结果即是搜索结果



PointWise方法很好理解,即使用传统的机器学习方法对给定查询下的文档的相关度进行学习,比如CTR就可以采用PointWise的方法学习,但是有时候排序的先后顺序是很重要的,而PointWise方法学习到全局的相关性,并不对先后顺序的优劣做惩罚。

PairWise

对于搜索系统来说,系统接收到用户査询后,返回相关文档列表,所以问题的关键是确定文档之间的先后顺序关系。单文档方法完全从单个文档的分类得分角度计算,没有考虑文档之间的顺序关系。文档对方法将排序问题转化为多个pair的排序问题,比较不同文章的先后顺序。



但是文档对方法也存在如下问题:

  1. 文档对方法考虑了两个文档对的相对先后顺序,却没有考虑文档出现在搜索列表中的位置,排在搜索结果前面的文档更为重要,如果靠前的文档出现判断错误,代价明显高于排在后面的文档。

  2. 同时不同的査询,其相关文档数量差异很大,所以转换为文档对之后, 有的查询对能有几百个对应的文档对,而有的查询只有十几个对应的文档对,这对机器学习系统的效果评价造成困难

常用PairWise实现:

  1. SVM Rank
  2. RankNet(2007)
  3. RankBoost(2003)

ListWise:

单文档方法将训练集里每一个文档当做一个训练实例,文档对方法将同一个査询的搜索结果里任意两个文档对作为一个训练实例,文档列表方法与上述两种方法都不同,ListWise方法直接考虑整体序列,针对Ranking评价指标进行优化。比如常用的MAP, NDCG。常用的ListWise方法有:

  1. LambdaRank
  2. AdaRank
  3. SoftRank
  4. LambdaMART

Learning to rank指标介绍

  • MAP(Mean Average Precision):
    假设有两个主题,主题1有4个相关网页,主题2有5个相关网页。某系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7;对于主题2检索出3个相关网页,其rank分别为1,3,5。对于主题1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于主题2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。则MAP= (0.83+0.45)/2=0.64。

  • NDCG(Normalized Discounted Cumulative Gain):


NDCG把相关度分为r个等级,如果r=5,等级设定分别文2^5-1,2^4-1等等

那么加入现在有一个query为abc, 返回如下图所示的列表,假设用户选择和排序结果无关,则累积增益值如右列所示:



考虑到靠前的位置点击概率越大,那么靠下的位置需要加上衰减因子

log2/log(1+j),求和就可以得到DCG的值,最后为了使得不同不搜索结果可以比较,用DCG/MaxDCG就可以得到NDCG的值了。
MaxDCG就是当前情况下最佳排序的DCG值。如图所示MaxDCG就是1、3、4、5、2的排序情况下的DCG的值(rank 2的gain较低,应该排到后面)



NDCG值
  • MRR(Mean Reciprocal Rank)
    给定查询q,q在相关文档的位置是r,那么MRR(q)就是1/R

LambdaMART算法:

LambdaMART是Learning to rank其中的一个算法,在Yahoo! Learning to Rank Challenge比赛中夺冠队伍用的就是这个模型。

LambdaMART模型从名字上可以拆分成Lambda和MART两部分,训练模型采用的是MART也就是GBDT,lambda是MART求解使用的梯度,其物理含义是一个待排序文档下一次迭代应该排序的方向。

但Lambda最初并不是诞生于LambdaMART,而是在LambdaRank模型中被提出,而LambdaRank模型又是在RankNet模型的基础上改进而来。所以了解LambdaRank需要从RankNet开始说起。

论文:
From RankNet to LambdaRank to LambdaMART: AnOverview

RankNet

RankNet是一个pairwise模型,上文介绍在pairwise模型中,将排序问题转化为多个pair的排序问题,比较文档di排在文档dj之前的概率。如下图所示



最终的输出的sigmoid函数,RankNet采用神经网络模型优化损失函数,故称为RankNet。


可是这样有什么问题呢?排序指标如NDCG、MAP和MRR都不是平滑的函数,RankNet的方法采用优化损失函数来间接优化排序指标。

LambdaRank

如图所示,蓝色表示相关的文档,灰色表示不相关的文档。RankNet以pairwise计算cost左边为13,右图将第一个文档下调3个位置,将第二个文档下调5个位置,cost就降为11。如此以来,虽然RankNet的损失函数得到优化,但是NDCG和ERR等指标却下降了。
RankNet优化的方向是黑色箭头,而我们想要的其实是红色的箭头。LambdaRank就是基于这个,其中lambda表示红色箭头。

LambdaRank不是通过显示定义损失函数再求梯度的方式对排序问题进行求解,而是分析排序问题需要的梯度的物理意义,直接定义梯度,Lambda梯度由两部分相乘得到:(1)RankNet中交叉熵概率损失函数的梯度;(2)交换Ui,Uj位置后IR评价指标Z的差值。具体如下:


lambdaMART

我们知道GBDT算法每一次迭代中, 需要学习上一次结果和真实结果的残差。在lambdaMART中,每次迭代用的并不是残差,lambda在这里充当替代残差的计算方法。

  • LambdaMART算法流程

  • GBDT算法流程

对比lambdaMART和GBDT算法流程,主要框架是相同的,只不过LambdaMART模型用lambda梯度代替了GBDT的残差。

FTRL算法(Follow the regularized Leader Proximal)

论文: Ad click prediction: a view from the trenches

点击率预估问题(CTR)是搜索、广告和推荐中一个非常重要的模块。在CTR计算的过程中,常常采用LR模型。

FTRL属于在线算法,和SGD等常用的在线优化方法对比,可以产生较好的稀疏性,非常适合ID特征较多,维度较高的特征。

google的论文中已经给出了很详细的工程化实现的说明,该方法也已经广泛的应用。

  • 参数优化

第一项:保证参数不偏移历史参数
第二项:保证w不会变化太大
第三项:代表L1正则,获得稀疏解

  • 算法流程:

编辑于 2017-04-25
数据挖掘
机器学习
计算广告学
赞同 356​27 条评论
分享
收藏
赞同 356
分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

命名实体识别难在哪?

亚里士多德在《形而上学》中认为,对于存在,最重要的问题,就是给世间万物的存在基于语言来分层和分类。从神说要有光起,到基友给你取了个外号叫狗蛋。你会发现,创造与命名,在历史中往往等同。名字是自我概念…

论文浅尝 | 面向简单知识库问答的模式修正强化策略

链接:http://aclweb.org/anthology/C18-1277知识库问答研究旨在利用结构化事实回答自然语言问题,在网络中,简单问题占据了相当大的比例。本文提出在完成模式抽取和实体链接后,构建一个模式修正机制,从而缓解错误积累问…

最全BAT数据库面试89题:mysql、大数据、redis

数据库 mysql面试题目: MySQL InnoDB、Mysaim的特点? 乐观锁和悲观锁的区别?? 行锁和表锁的区别? 数据库隔离级别是什么?有什么作用? MySQL主备同步的基本原理。 如何优化数据库性能&#…

POJ 3481 Double Queue

题目链接:http://poj.org/problem?id3481 题目大意: 给你0-3四个指令: 0 退出 1 添加优先级为P 的 K值,进入队列 2 最高优先级出队 3 最低优先级出队 思路: 利用map数据对key默认升序排列。 AC代码如下&#xff…

理解 Word Embedding,全面拥抱 ELMO

原文链接:https://www.infoq.cn/article/B8-BMA1BUfuh5MxQ687T 理解 Word Embedding,全面拥抱 ELMO DataFun社区 阅读数:4238 2019 年 6 月 15 日提到 Word Embedding ,如果你的脑海里面冒出来的是 Word2Vec ,Glove &…

肝了1W字!文本生成评价指标的进化与推翻

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者:林镇坤(中山大学研一,对文本生成和猫感兴趣)前言文本生成目前的一大瓶颈是如何客观,准确的评价机器生成文本的质量。一个好的评价指标(或者设置合理的损失函数…

美团大脑 | 知识图谱的建模方法及其应用

本文转载自公众号: 美团技术团队.作为人工智能时代最重要的知识表示方式之一,知识图谱能够打破不同场景下的数据隔离,为搜索、推荐、问答、解释与决策等应用提供基础支撑。美团大脑围绕吃喝玩乐等多种场景,构建了生活娱乐领域超大规模的知识图…

最全Java面试208题,涵盖大厂必考范围!强烈建议收藏~

这些题目是去百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目,熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。 一.java基础面试知识点 java中和equals和hashCode的区别 int、char、long各占多少字节数 int与integer的区别…

大规模事理常识知识系统“学迹”的定位、应用与不足

我们于3月16正式对外发布了一个面向事理的实时学习和搜索系统Demo,取名叫“学迹”,取自“学事理,知行迹”(https://xueji.zhiwenben.com)。“学迹”的发布,进一步拓宽了现有知识库的门类,为进一步获取特定事件的概念解…

数据结构--散列表 Hash Table

文章目录1.线性探测 哈希表代码2.拉链法 哈希表代码1. 散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有散列表。 2. 散列函数,设计的基…

论文浅尝 | 面向自动分类归纳的端到端强化学习

动机术语层次在许多自然语言处理任务中扮演着重要角色。然而,大部分现有的术语层次是人工构建的,其覆盖范围有限,或者某些领域上不可用。因此,最近的工作集中在自动化的术语层次归纳(automatictaxonomy induction)上。之前的研究工…

最新天猫Java面试题(含总结):线程池+并发编程+分布式设计+中间件

一面: HashMap实现原理,ConcurrentHashMap实现原理 红黑树,为什么允许局部不平衡 TCP,UDP区别,为什么可靠和不可靠 一次HTTP请求的全过程,包括域名解析、定位主机等 TCP三次握手 MySQL事务是什么&…

重磅!吴恩达家的NLP课程发布啦!

关注小夕并星标,解锁自然语言处理搜索、推荐与算法岗求职秘籍文 | 灵魂写手rumor酱美 | 人美心细小谨思密达斯坦福计算机系副教授、人工智能实验室主任、Coursera平台联合创始人、前百度首席科学家、机器学习入门必备网课CS229的主讲人——吴恩达Andrew Ng老师再放大…

情报领域因果推理智能项目概览:以DAPAR为例

美国国防高级研究计划局(Defense Advanced Research Projects Agency),简称DARPA,提出了旨在从推进人工智能常识推理能力发展、深化机器学习理论研究和推进国防部复杂问题中应用人工智能、深化美军对人工智能的研究和应用的“的下…

论文浅尝 | 基于模式的时间表达式识别

本文转载自公众号:南大Websoft. 时间表达式识别是自然语言理解中一个重要而基础的任务。在以前的研究工作中,研究人员已经发现时间词的类型信息可以给识别提供明显的帮助。本文中我们以词类型序列作为表达式模式,提出了基于模式的时间表达式识别方法&…

大数据项目(四)————用户画像

原文地址:https://blog.csdn.net/Jorocco/article/details/81428996 1、用户画像概述 用来勾画用户(用户背景、特征、性格标签、行为场景等)和联系用户需求与产品设计的,旨在通过从海量用户行为数据中炼银挖金,尽可能…

最强阿里面试126题:数据结构+并发编程+Redis+设计模式+微服务

BAT技术面试范围 数据结构与算法:最常见的各种排序,最好能手写 Java高级:JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、各种集合类的比较优劣势(底层数据结构也要…

AdaX:一个比Adam更优秀,带”长期记忆“的优化器

关注小夕并星标,解锁自然语言处理搜索、推荐与算法岗求职秘籍文 | 苏剑林(追一科技,人称苏神)美 | 人美心细小谨思密达前言这篇文章简单介绍一个叫做AdaX的优化器,来自《AdaX: Adaptive Gradient Descent with Exponen…

金融情报挖掘:面向公开文本的期货事件聚合与传导因素分析

金融情报挖掘是情报领域的一个重要分支,通过对金融领域信息进行提取和分析,发现关联线索,对传导关联进行建模,能够挖掘出市场变动的规律,最终辅助决策。 例如,国内外资本市场,衍生品市场热点不断…

论文浅尝 | 知识图谱的单样本关系学习

链接:http://cn.arxiv.org/pdf/1808.09040动机如今的知识图谱规模很大但是完成度不高,long-tail关系在知识图谱中很常见,之前致力于完善知识图谱的方法对每个关系都需要大量的训练样本(三元组),而新加入的关…