机器学习之排序

1. 概述

  在搜索引擎和个性化推进、自然语言处理等很多场景都需要处理排序的问题,最近接触到使用机器学习来排序。我们都知道机器学习经常用于处理分类,回归,聚类问题,使用机器学习来排序,一开始感觉理解起来感觉非常困难。看了几篇文章理解到,这个领域称为Learn to Rank(L2R),研究的人还挺多,大致的思想是将排序问题转化为分类或回归问题,然后使用机器学习的方法优化。强烈建议排序小白先看参考资料1和2,了解机器L2R的基本概念和使用场景。本文根据自己的理解尝试梳理现在使用较多的L2R算法GBrank和LambdaMART。

2. GBrank

  GBrank是排名学习中的点对型(pairwise)方法中的一种,它将排序问题转化为回归问题,由于经常结合GBDT算法优化的模型,因此称为GBrank。GBrank模型的难点怎么将排序问题转化为回归问题? 和其它Pairwise方法一样,GBrank需要利用两个想个查询结果之间的相对相关度,就是说对于一个查询,判断两个查询结果中哪一个更相关(好)。将上述描述为gbrank根据训练数据训练出一个函数h(x),对于一个查询q的的查询结果中一对<xi,yi>,如果xi比yi更相关,h(xi)>= h (yi)。代价函数的含义是当h满足给点的偏好数据时,代价为0,否则代价差值的平方。

假设存在训练集:

目标函数:

避免函数h为常数,加入tau,0<= tau <=1:

分别对h(xi),h(yi),负梯度方向为:

当h满足<xi,yi>时,上式都为0,不满足时负梯度分别为:

根据上式,获得每次迭代式更新数据的方式:

GBrank算法步骤:

1.初始化h0为一个常数

2.使用hk-1最为目前近似的h,将数据集S划分为两个部分:

3.使用上面更新数据的方式更新数据,并且根据更新的数据使用GDBT的方式,得到函数gk(x)

4.更新hk(x)

参考资料:

http://www.cnblogs.com/kemaswill/p/3241963.html#3366482

http://www.cnblogs.com/kemaswill/archive/2013/06/01/3109497.html

时间: 2024-10-09 01:14:54

机器学习之排序的相关文章

【学习排序】Learning to Rank中Pointwise关于PRank算法源码实现

最近终于忙完了Learning to Rank的作业,同时也学到了很多东西.我准备写几篇相关的文章简单讲述自己对它的理解和认识.第一篇准备讲述的就是Learning to Rank中Pointwise的认识及PRank算法的实现.主要从以下四个方面进行讲述: 1.学习排序(Learning to Rank)概念 2.基于点的排序算法(Pointwise)介绍 3.基于顺序回归(Ordinal Regression-based)的PRank排序算法 4.PRank算法Java\C++实现及总结 一

深入浅出排序学习:写给程序员的算法系统开发实践

引言 我们正处在一个知识爆炸的时代,伴随着信息量的剧增和人工智能的蓬勃发展,互联网公司越发具有强烈的个性化.智能化信息展示的需求.而信息展示个性化的典型应用主要包括搜索列表.推荐列表.广告展示等等. 很多人不知道的是,看似简单的个性化信息展示背后,涉及大量的数据.算法以及工程架构技术,这些足以让大部分互联网公司望而却步.究其根本原因,个性化信息展示背后的技术是排序学习问题(Learning to Rank).市面上大部分关于排序学习的文章,要么偏算法.要么偏工程.虽然算法方面有一些系统性的介绍文

Learning to rank 介绍

PS:文章主要转载自CSDN大神hguisu的文章"机器学习排序":          http://blog.csdn.net/hguisu/article/details/7989489      最近需要完成课程作业——分布式排序学习系统.它是在M/R.Storm或Spark架构上搭建分布式系统,并使用学习排序Pointwise.Pairwise和Listwise三大类算法实现对微软数据集(Microsoft Learning to Rank Datasets)进行学习排序,这篇

详谈京东的商品搜索系统架构设计

京东商品搜索引擎是搜索推荐部自主研发的商品搜索引擎,主要功能是为海量京东用户提供精准.快速的购物体验.虽然只有短短几年的时间,我们的搜索引擎已经经过了多次618店庆和双11的考验,目前已经能够与人们日常使用的如谷歌.百度等全文搜索引擎相比,我们的产品与其有相通之处,比如涵盖亿级别商品的海量数据.支持短时超高并发查询.又有自己的业务特点: 海量的数据,亿级别的商品量: 高并发查询,日PV过亿: 请求需要快速响应. 搜索已经成为我们日常不可或缺的应用,很难想象没有了Google.百度等搜索引擎,互联

0到1再到100 蘑菇街搜索与推荐架构的探索之路

丁小明,花名小宝,蘑菇街搜索技术团队负责人.2011年底加入蘑菇街,2013年开始负责搜索团队,见证了蘑菇街一路蓬勃发展的历程,也和团队一起从零起步摸爬滚打,打造了蘑菇街的搜索推荐体系,包括自主研发的C++主搜引擎和广告引擎.实时个性化推荐系统.基于开源Solr/ES深度定制的实时搜索平台等. 小宝·蘑菇街搜索技术团队负责人 以下内容根据小宝老师在WOTA2017 "电商大促背后的技术挑战"专场的演讲内容整理. 我将和大家分享蘑菇街在搜索推荐上踩过的坑及在探索路上的经验总结.我们的经验

算法工程师-优质博客

1. 美团推荐算法实践:机器学习重排序模型成亮点 2. 天池离线赛 - 移动推荐算法(四):基于LR, RF, GBDT等模型的预测 3. 学习排序 Learning to Rank 小结 4. CTR预估中GBDT与LR融合方案 原文地址:https://www.cnblogs.com/dailinfly/p/9465522.html

机器学习排序算法:RankNet to LambdaRank to LambdaMART

使用机器学习排序算法LambdaMART有一段时间了,但一直没有真正弄清楚算法中的所有细节. 学习过程中细读了两篇不错的博文,推荐给大家: 梯度提升树(GBDT)原理小结 徐博From RankNet to LambdaRank to LambdaMART: An Overview 但经过一番搜寻之后发现,目前网上并没有一篇透彻讲解该算法的文章,所以希望这篇文章能够达到此目的. 本文主要参考微软研究院2010年发表的文章From RankNet to LambdaRank to LambdaMA

42、lucene和机器学习进行全文搜索,并排序

package com.lucene.test; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; i

拓扑排序讲解

在这里我们要说的拓扑排序是有前提的 我们在这里说的拓扑排序是基于有向无环图的!!!. (⊙o⊙)…我所说的有向无环图都知道是什么东西吧.. 如果不知道,我们下面先来来说说什么是有向无环图. 所谓有向无环图,顾名思义是不存在环的有向图(至于有向图是什么不知道的在前面我们有一个图论讲解上都有). 点的入度:以这个点为结束点的边数. 点的出度:以这个点为出发点的边的条数. 拓扑序就是对于一个节点的一个排列,使得(u,v)属于E,那么u一定出现在v的前面.然而拓扑排序就是一个用来求拓扑序的东西. 对于左