20210415

ndcg 一个正确结果位置的随机结果是0.45左右

20210412

考察产业匹配MRR评估指标的随机情况是什么样的

随机情况下会是什么样的
可以根据ndcg的值来看是否随机

20210409

mrr 越大越好

20210308

http://www.voidcn.com/article/p-hgmpcymt-sr.html
MRR

20210222

因此,我们得到的NDCG分数的范围在0到1之间。一个完美的排名会得到1分。我们还可以比较不同查询的NDCG@k分数,因为它是一个标准化分数。

如果出现这种情况 是qid的问题
同一个qid需要排在一起 而且最好 qid最好也排好序


正常情况下训练效果和预测结果

基于lightgbm的lambda_rank的group id 就是
记录每个qid的记录数 用于后面的评估计算

20210202

'verbose' : -1#取消警告No further splits with positive gain, best gain: -inf,不设置为-1的话,数据量较少可能会提出警告
1.https://blog.csdn.net/anshuai_aw1/article/details/86018105排序学习(Learning to rank)综述三种方式
2.https://blog.csdn.net/u011984148/article/details/108030794排序指标
3.https://mp.weixin.qq.com/s?src=11&timestamp=1612159278&ver=2863&signature=DPrxF9axM2VTYNhw9gtBdzUKLsGZUVzto1xFjL3sHDhMQz83zrngHxDwpwAWKYToAvOIE1Enkk59mIUQ8lnj-AlmCqdMuYx*sGx8gkpCcXCaISfAcSew1pbnzORlr4cb&new=1
总体原理LTR训练数据的获取
1.人工标注。如果需要大量的训练数据,人工标注不太现实
2.对应搜索引擎来说,可以通过用户点击记录来获取训练数据。对应查询返回的搜索结果,用户会点击其中的某些网页,假设用户优先点击的是和查询更相关的网页。尽管很多时候这种假设并不成立,但实际经验表明这种获取训练数据是可行的。
LTR特征选取
使用LTR时会选取一系列文本特征,利用机器学习方法很好的融合到一个排序模型中,来决定最终结果的顺序,其中每一个特征我们称为一个“feature”。对于一个网页文本,feature所在的文档区域可以包括body域,anchor域,title域,url域,whole document域等。
文档的feature又可以分为两种类型:一是文档本身的特征,比如Pagerank值、内容丰富度、spam值、number of slash、url length、inlink number、outlink number、siterank等。二是Query-Doc的特征:文档对应查询的相关度、每个域的tf、idf值,bool model,vsm,bm25,language model相关度等。
综合上述的文档feature的两种类型和位于文档的不同域,我们可以组合出很多feature,当然有些feature是正相关有些是负相关,这需要我们通过学习过程去选取优化。
https://blog.csdn.net/weilianyishi/article/details/48805695Letor来源https://www.microsoft.com/en-us/research/project/letor-learning-rank-information-retrieval/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fbeijing%2Fprojects%2Fletor%2Fletor4download.aspx#!letor-4-0查询和文档都是不限的
是知道有哪些最终文档   综合查询的tf 和idf 等?搜索引擎使用一系列特征来决定结果的排序,特征提取阶段是抽取出所有的特征,供后续训练使用。特征可以分为3大类:
①Doc本身的特征:Pagerank、内容丰富度、是否是spam(搜索引擎垃圾技术)、质量值、CTR(实际点击次数/展示量)等。
②Query-Doc的特征:Query-Doc的相关性、Query在文档中出现的次数,査询词的Proximity值(在文档中多大的窗口内可以出现所有査询词)、隐式语义关系等。
③Query的特征:Query 在所有Query 中的出现次数、比率等。

20210201

总体泛化思路
1.查询用向量表示?
2.文档用词向量表示特征? 跟具体的查询无关?
3.文档的词向量的差值表示正样本?
4.

https://arxiv.org/pdf/1306.2597.pdf
https://www.thinbug.com/q/35304773

Blockquote每行是一个查询文档对。第一列是该对的相关标签, 第二列是查询ID,接下来的列是功能,结尾是 该行是关于该对的注释,包括文档的ID。越大 相关标签,查询文档对就越相关

语料的数据格式

https://cloud.tencent.com/developer/article/1061669
数据格式 重点 整个流程都有 飞桨的视频的文字版本

https://www.cnblogs.com/wowarsenal/p/3900359.html
LambdaMART简介——基于Ranklib源码(一 lambda计算)

https://blog.csdn.net/asty9000/article/details/84350260
lambdarank 数据文件格式

问题

https://zhuanlan.zhihu.com/p/68682607
浅谈Learning to Rank中的RankNet和LambdaRank算法

Sij 为标签取值

Learning To Rank之LambdaMART的前世今生

https://blog.csdn.net/huagong_adu/article/details/40710305
对上面图的详细解释
箭头强度不同


ranknet## 标题

https://jiayi797.github.io/2017/09/25/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95-L2R%E8%BF%9B%E4%B8%80%E6%AD%A5%E4%BA%86%E8%A7%A3/
机器学习算法-L2R进一步了解

lambdarank 使用的是 pairwise?
归一化折损累计增益(NDCG)

20210129
要用于生产实践的问题
1.如何打标
2.如果构建文档直接的顺序(产品服务的顺序)
如何构建文档的特征
3.如果采用文档列表的方法 对于一级行业和二级行业都相同的企业的产品服务
真实产品服务列表的概率分布改如何构建呢? 特别是产品服务很多的时候
比如20个的时候 20!很大啊 真实出现都为1,其他都为零? 但是标签之间并没有
明确的顺序 真实标签中如何去统计这个前后关系呢


ranknet xi排在xj前面的真实概率 怎么来

https://blog.csdn.net/w28971023/article/details/45849659
ranknet

https://mp.weixin.qq.com/s?src=11&timestamp=1612159278&ver=2863&signature=DPrxF9axM2VTYNhw9gtBdzUKLsGZUVzto1xFjL3sHDhMQz83zrngHxDwpwAWKYToAvOIE1Enkk59mIUQ8lnj-AlmCqdMuYx*sGx8gkpCcXCaISfAcSew1pbnzORlr4cb&new=1

LTR排序算法LambdaRank原理详解

ranknet详解

PageRank原理剖析
https://blog.csdn.net/zhaozhn5/article/details/79776163

排序学习(Learning to rank)综述
https://blog.csdn.net/anshuai_aw1/article/details/86018105

learning to rank
lambdarank

lightgbm用于排序 重点
https://github.com/jiangnanboy/learning_to_rank
https://www.cnblogs.com/little-horse/p/11237099.html

lightGBM用于排序(Learning to Rank )
https://blog.csdn.net/demm868/article/details/103485658

https://blog.csdn.net/kyle1314608/article/details/113372359

NDCG Normalized discounted cumulative gain 理解分析
https://blog.csdn.net/xiangyong58/article/details/51166127

信息检索中的度量指标全解析 重点
https://blog.csdn.net/u011984148/article/details/108030794

査询词的Proximity值(即在文档中多大的窗口内可以出现所有査询词)

背景

在信息过载的时代,如何从互联网的海量数据中,准确、及时、高效地获取用户所需信息是信息检索研究的主要问题,其本质是信息的排序问题。伴随着人工智能的蓬勃发展,机器学习的思想逐渐渗透到信息检索等重要领域,如何利用机器学习提升信息检索的性能成为热门研究领域。在信息检索领域,一般按照相关度对文档进行排序,比较典型的做法是针对搜索引擎中的一条查询query,返回一个相关的文档document集合,然后根据(query, document)之间的相关度进行排序,再返回给用户。而随着影响相关度的因素变多,使用传统排序方法变得困难,人们就想到通过机器学习来解决这一问题,LTR由此诞生。
在2000年到2010年之间,有大量学者对其进行研究,产生了各类LTR(learning to rank)算法,从此LTR成为最经典的信息检索技术。如图1所示,用户请求->读取倒排索引->模型排序->返回结果,其中核心的技术排序模型 (Ranking model)部分就是LTR。本文对排序学习进行了分类,并重点分析了训练排序模型时采用的不同LTR的方法类别。


排序学习框架

图2展示了排序学习的一个典型框架:训练数据获取->特征提取->模型训练->测试数据预测->效果评估,该框架涉及排序学习的三个重要方面-数据集、方法和评价指标。数据集主要包括训练集(Training set)、验证集(Validation set)和测试集(Test set)。其中,训练集用于训练排序模型,验证集用于调整模型参数,测试集用于检验模型的泛化性能。评价指标用于度量排序模型的性能,一般有准确率(Precision, P)、召回率(Recall, R)、平均精度均值(Mean average precision, MAP)、归一化折扣积累增益(Normalized discounted cumulated gain, NDCG)、期望倒数排序(Expected reciprocal rank, ERR)等,排序学习方法从排序学习数据集中学习并获得排序模型,主要有三大类方法:Point-wise、Pair-wise和List-wise。


图2.排序学习框架

Point-wise方法
Point-wise方法是通过近似为回归问题解决排序问题,输入的单条样本为得分-文档,将每个查询-文档对的相关性得分作为实数分数或者序数分数,使得单个查询-文档对作为样本点(Point-wise的由来),训练排序模型。预测时候对于指定输入,给出查询-文档对的相关性得分。
Pair-wise方法
Pair-wise方法是通过近似为分类问题解决排序问题,输入的单条样本为标签-文档对。对于一次查询的多个结果文档,组合任意两个文档形成文档对作为输入样本。即学习一个二分类器,对输入的一对文档对AB(Pair-wise的由来),根据A相关性是否比B好,二分类器给出分类标签1或0。对所有文档对进行分类,就可以得到一组偏序关系,从而构造文档全集的排序关系。该类方法的原理是对给定的文档全集{S},降低排序中的逆序文档对的个数来降低排序错误,从而达到优化排序结果的目的。
List-wise方法
List-wise方法是直接优化排序列表,输入为单条样本为一个文档排列。通过构造合适的度量函数衡量当前文档排序和最优排序差值,优化度量函数得到排序模型。由于度量函数很多具有非连续性的性质,优化困难。

图3. 排序模型三类方法
Point-wise(单点法排序学习)

单点法占据了排序学习的半壁江山,从最早的线性模型LR、FM等,到树模型GBDT、Xgboost等、再到深度模型DNN,Wide&Deep,DeepFM、DIEN等等充斥着大量的研究结果,并且基本都已经广泛用于工业实践推荐、搜索、广告的ctr预估中。
单点法排序学习衡量一个查询关键字和一个文档的配对,他们是否相关与其他文档和其他关键字无关,也就是说这类排序算法是孤立地看待某个关键字和某个文档是否相关,而不是关联地看待问题。可以看出单点法排序学习是对现实问题一个极大的简化,从做事情的方法论来说由简入繁是正确的出发点,当我们简单建模不能满足业务需求时候再考虑更复杂的。明确了怎样建模单点法排序学习的问题之后,我们重点来看如何评价其算法的好坏,基于最简单的假设,查询关键字和文档只有两种关系,一个是相关,一个是不相关,所以这是一个二分的相关信息,那么评估排序算法就变成了评估二分类问题。单点排序处理的对象是单独的一篇文档,将文档转换为特征向量之后,根据对应的label学习特征向量对应的权重,继而学习到模型参数。

对于二分分类问题来说,有两个主要的评价指标:
1.准确率(Precision),意义是在分类器已经判断的相关文档中,有多少是真正相关。
2.召回率(Recall), 意义是真正的相关文档中有多少被识别出来了。但是现实中有个问题是人们只关注排序前面的K个文档,或者换句话说,人们不可能看检索系统中的所有结果,所以这就是一个Top-K的评价问题,就是针对排序后顶部的K个文档进行评估。
上面主要针对基于二分的相关信息,而相关的标签信息其实可以定义地更加多元化,比如衡量某个关键字和文档是否相关时,从“最相关”,“相关”,“不确定”,“不相关”到“最不相关”,一共五级定义,在这种定义下一般有两种评价排序的方法。
一种是使用多分类的评价方法,也就是把五级相关度当作五种不同的标签,看分类器的准确度,从实际业务的角度来说,一般“最相关”和“相关”的文档数量,对于某个查询关键字来说是比较少的,而“不相关”和“最不相关”的文档是大量的,因此单看分类准确度,评价天然存在有偏。
另一种是基于五级定义的排序评价方法:NDCG(Normalized Discounted Cumulative Gain)。NDCG不是一个分类准确度评价指标,而是一个排序的精度指标。

为了理解单点排序学习法,下面以经典的逻辑回归模型(Logistic Regression,LR)为例:在实际信息流中,人对feed最简单就是两种行为,点击或者不点击,label分别标记为1和0;LR用于建模point-wise方式的数据,这种模型直接对标注好的point-wise数据,学习 P(y | x)或直接回归预测y。下面是一般化的LR模型损失函数:

LR模型可解释性好,方便问题定位和查找,通过特征权重可以解释feed排序的得分,可以人工分析和判断模型参数是否合理。LR是个线性分类模型,要求输入是线性独立特征,而我们使用的稠密的特征(维度在几十到几百之间)往往都是非线性的,并且具有依赖性,因此需要对特征进行转换。特征转换需要对特征的分布,特征与label的关系进行分析,然后采用合适的转换方法。通常使用以下几种:Polynomial Transformation(多项式变换), Logarithmic or Exponential Transformation(对数变换或指数变换,例如特征符合幂率分布),Interaction Transformation(组合特征变换)和Cumulative Distribution Function(累计分布函数)等。这些特征变换相当于人工将特征转换为线性特征,以提高特征的表达能力。

Pair-wise(配对法排序学习)

上面介绍了单点法排序学习,该方法在建模的时候并未考虑文档之间的关系,本小节介绍的配对法将考虑文档之间的偏好关系,实际业务中我们往往能看到多个搜索结果,但是我们首先会点击一个,所以这其中存在文档之间隐含的偏序关系,对一个查询关键字来说,最重要的不是针对某一个文档的相关性的估计是否准确,而是正确的估计一组文档之间的相对排序关系;如果文档的相对关系估计正确了,从排序的角度说,最后的排序结果就是正确的。
2000年左右,研究人员开始利用SVM来训练排序算法,来自康奈尔大学的Thorsten Joachims构建了基于特征差值的RankSVM,是配对学习法的经典算法,该算法还获得了KDD时间检验奖。2005年微软学者Chris Burges等人,开始使用神经网络训练文档之间的偏序关系,方法叫RankNet,发表的这篇论文还获得了ICML2015的10年经典论文奖。

上面陈述了两大成果,说明了配对法的重要性和影响,下面讲述一下配对法的建模基本思想和假设:
第一, 我们希望可以针对某一个关键字得到一个完美的排序关系;但是当一个用户在网页上搜索“苹果”时,有的用户希望购买iphone,有的用户希望购买吃的苹果,所以在某些实际情况下,一个关键字根据用户的不同本身就不存在完美的排序。
第二, 我们希望能够学习文档之间的两两配对关系从而重构出这个完美的排序,这个假设在针对问题建模的情况下,逻辑上也不成立的,下面可以举一个例子进行说明,例如学习到关系“B>C”、“C>A”来重构完美排序“B>C>A”,不一定代表模型能得到“B>A”,因为建模的时候两两之间的关系是独立的;完整的两两配对关系和完美排序之间没有一一对应关系,所以我们不能保证得到的是最优的排序。
第三, 我们能够构建这样存在两两偏序关系的文档且符合实际业务场景,这个假设是属于先验假设,这个是否是真的目前还有待确认,想表达的意思是,文档之间的两两关系来自于文档特征之间的差异,可以利用不同样本间的特征差值做为新特征,学习到新特征到相关性差异的映射关系。

上面三个假设是理想情况下,我们从理论和逻辑上说明了三个条件不都成立,所以配对法对现实问题建模是存在天然误差的,但是这种误差对问题本身来说很小,配对法相比单点法没有考虑文档之间关系来说,效果显得更好些,对实际业务指标的提升有更明确的方向和意义。
那么假设上面三个条件都成立,我们考虑如何从单点法去建模配对法描述的问题,现在如果针对一个关键字而言,有一个完美的排序关系,可以推导出文档之间的两两关系,再从这些相对关系中进行模型学习,从而进一步对其他关键字查询的结果进行排序。下面陈述一下RankNet大家可以清晰感知这个过程:


图4. RankNet网络结构示意图

RankNet是基于神经网络的排序学习方法,该方法依赖于每个文档对,定义了一个基于概率的损失函数,运用神经网络和梯度下降法试图最小化一个交叉熵损失函数,它终极目标是得到一个带参数的得分函数:


得分函数S=f(x;w)可以取任何模型,如GBDT、DNN等。基于相关计算公式更新网络参数,由于RankNet的训练数据为各查询下若干文档对,因此需针对文档对的输入去调整网络的权重。
RankNet不仅在理论上是一个很好的模型,而且是第一个应用于互联网搜索引擎的排序学习方法,微软已经将RankNet技术应用于其搜索引擎Bing中,为了改进RankNet,研究者们又提出了list-wise等排序学习方法,如FRank、LambdaRank和LambdaMART,以追求更好排序结果
List-wise(列表法排序学习)

2006年后,研究者们开始尝试直接优化整个排序列表,比如2007年来自微软研究院的徐君和李航发明的AdaRank算法,同年刘铁岩等人在ICML2007上发表ListNet,算是从理论上开启了List-wise的大门,他们对应的是两个发展方向。另外一个重要的方向是Christopher J.C. Burges主导的,延续RankNet思路发展出FRank、LambdaRank和LambdaMART。

列表法排序学习前期有两种基本思路:
1.直接针对NDCG这样的指标直接优化;
2.根据已知的最优化排序(Ground Truth),试着重建这个顺序,来衡量这中间的差异。针对第一种思路来说,面临一个重要的问题:NDCG是非连续和不可微分的;但是大多数优化算法的目标函数都是连续可微分的,因此直接优化难度会很大。

针对这种情况主要有以下解决方法:
一、找一个近似NDCG的指标,这种指标需要满足两个条件:1.能很好的近似NDCG,2.函数需要是连续可微分的,代表性算法有SoftRank和AppRank。
二、从数学的形式上写出一个NDCG等指标的上界,然后优化这个上界,如果这个上界连续可微分,则可以通过最小化这个上界来优化NDCG,代表性算法有SVM-MAP和SVM-NDCG。
三、从优化算法的角度出发,设计出一种优化算法来优化NDCG这类连续不可微函数的指标,代表性算法有AdaRank和RankGP。
针对第二种思路来说:已经知道针对某个关键字的完美排序(Ground Truth),我们希望设计出一个模型希望它排序后的结果和完美排序之间的差距尽量小,代表算法有ListNet和ListMLE。
列表法除了上面两种大思路,还有一种是在纯列表法和配对法之间寻求一种中间解法,这个方向代表方法就是微软的RankNet,是一个理论基础很完整的模型,后面他们进行了改进,提出FRank和LambdaRank以及后面著名的LambdaMART,值得注意的是RankNet以及之后的系列算法,里面有一个对问题很重要的洞察,那就是:一个排序算法是否能达到最优,就只需要将当前模型预测的排序与最优情况进行对比,看有哪些文档对之间的关系错了,那么学习最优排序的问题就可以转化为减少两两排错关系,更深入一步思考,其实我们不需要知道目标函数的形式,而仅仅需要知道这种错误某种形式的梯度就可以了,模型更新参数本质是需要知道误差的梯度,并不需要知道目标函数具体的形式。

需要结合现实问题提出的一点是,尽管在学术研究中,纯列表法表现优异,但是实际中,类似于LambdaRank的算法,基于配对法和列表法之间折中的办法会更合适实际业务的需要和算法上线,因为列表法运算的复杂度会很高,在工业界应用中,例如信息流,对他们来说线上耗时不容许太大,所以列表法优势并不大,目前主要贡献还是学术价值。

下面以LambdaRank为例子说明列表排序方法的建模和求解过程:
在介绍LambdaRank的动机之前,我们从Intuition的角度来考察RankNet学习过程中,列表的排序变化。见图5,这里每条横线代表一个物品,其中蓝色表示相关的物品,灰色表示不相关的物品。在某次迭代中,RankNet 将物品的顺序从左边变成了右边。于是我们可以看到:

a. RankNet 的梯度下降表现在结果的整体变化中是逆序对数量的下降。图中左边,2~14不相关物品都排在了15号相关物品之前,这些不相关物品和15号物品构成的逆序对共13个,因此损失等价于为13;而右图中,将1号相关物品降到了4号,15号相关物品上升到了10号,此时逆序对的数量为3+8=11个,因此损失等价于11。

b. 对于一些强调TopN个物品的排序指标(NDCG、ERR等)而言,上述优化是不理想的。例如,图中右边下一次迭代,在RankNet中梯度优化方向如黑色箭头所示,此时损失可以下降到8;然而对于NDCG指标而言,我们更愿意看到红色箭头所示的优化方向(此时RankNet同样是8,但是NDCG指标相比前一种情况上升了)。


图5.文档位置-梯度变化图

此时LambdaRank登场。LambdaRank是一个经验算法,它不是通过显式定义损失函数再求梯度的方式对排序问题进行求解,而是分析排序问题需要的分数s的梯度的物理含义,直接定义梯度,即Lambda梯度。只希望L对s的梯度可以按照理想NDCG指标的方向走。


图6. LambdaRank的网络结构示意图


LambdaRank是基于RankNet的改进方法,对梯度的计算方式引入信息检索评价指标NDCG,针对迭代过程中生成的文档列表以及相应的NDCG取值的变化情况来确定每个文档对的梯度,从而调整文档的相对顺序以最大化NDCG,希望所构建的相应损失函数能与最终的评价准则尽可能一致。由于引入了排序指标,Lambda梯度更关注位置靠前的物品的排序位置的提升。有效避免了下调位置靠前的物品的情况发生。LambdaRank相比RankNet的优势在于分解因式后训练速度更快,同时考虑了排序指标,直接对问题求解,效果更明显。
早期的LambdaRank,特别是RankNet是采用的神经网络来进行模型训练,基于神经网络的排序学习方法学习能力较强,对噪声数据鲁棒性和容错性也较强,但是参数较多调节困难,训练速度慢,容易过拟合,泛化能力较差,比较容易陷入局部最小值,所以后来发展出基于树模型的排序学习算法LambdaMART,经过大量实践证明,基于决策树方法对排序学习问题效果显著。这系列的算法后来成为微软搜索引擎Bing的核心算法之一。

三种排序学习特点和优缺点

一、标注成本的角度:

  1. point-wise:直接可以利用互联网的用户点击数据,基本没有标注成本。

  2. pair-wise:利用互联网的点击数据,然后人工修正对于同一个query两个doc之间的偏序关系。

  3. list-wise: 人工标注docs与query的整体相关度排序,标注成本最高。

二、从业务理解角度,ranking追求的是排序结果,并不要求精确打分,只要有相对打分即可。

  1. point-wise类方法

a)并没有考虑同一个query对应的 docs 间的内部依赖性。一方面,导致输入空间内的样本不是IID的,违反了ML的基本假设,另一方面,没有充分利用这种样本间的结构性。

b)当不同query对应不同数量的docs时,整体loss将会被对应docs数量大的query组所支配,但是建模的时候我们假设query都是等价的。

c)损失函数也没有model到预测排序中的位置信息,损失函数过多强调那些不重要的docs,即那些排序在后面对用户体验影响小的doc。

它优势在于对实际问题的简化,问题定义容易,普适性强,建模和计算成本低。实际业务复杂,也是目前大多数ctr模型使用point-wise的原因。

  1. pair-wise类方法

a)在考虑样本时,doc pair的数量将是doc数量的平方次的,从而 point-wise类方法就存在的query间doc 数量的不平衡性将在pair-wise类方法中进一步放大。

b)相对point-wise类方法对噪声标注更敏感,即一个错误标注会引起多个doc pair标注错误。

c)考虑了doc pair的相对位置,但损失函数还是没有model到预测排序中的位置信息。

pair-wise相比point-wise考虑了文档之间的偏序关系,对于隐语义模型来说能够学习到更准确的embedding表达。

  1. list-wise类相较pointwise、pairwise对排序模型更自然,解决了排序应该考虑query和position问题,但是计算的时间复杂度会非常高,投入产出比相对不高,目前只有少数厂在使用。

展望

排序学习方法已经在工业界有很多成功应用,尤其是Point-wise和Pair-wise。但随着模型复杂度越来越高,List-wise方法的模型带来收益并没有显著提升,个人认为主要原因有以下:
1.实际应用中数据缺失和噪声偏多,训练时并不能很好捕捉足够的信息来调整文档之间微弱关系,
2.人为感知对文档之间微弱的相对关系存在个性化差异,实际情况更多关注当前item是否需要,是否喜欢,
3.对于用户一次请求,真实的Ground Truth实际情况是不可能获取的(真实的label难以收集),大多数是根据用户的隐式反馈构造出来的。
往下发展list-wise有两点技术要求:
1.能减少模型和计算的复杂度,
2.对目标函数处理上有更近似和方便模型求解的方法。
从工业界角度考虑,推动排序学习方法在其他业务问题上的应用,例如多样性、多目标、自适应。

参考文献

[1] http://xtf615.com/2018/12/25/learning-to-rank/
[2] Learning to Rank using Gradient Descent
[3] https://github.com/PaddlePaddle/models/tree/develop/legacy/ltr
[4] Learning to Rank using Gradient Descent
[5] The LambdaLoss Framework for Ranking Metric Optimization
[6] Learning to rank for information retrieval
[7] Predicting Diverse Subsets Using Structural SVMs
[8] 排序学习研究进展和展望
[9] 极客时间《AI技术内参》

learning to rank_排序相关推荐

  1. 利用lightgbm做learning to rank 排序,解析模型中特征重要度

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 去年实习时,因为项目需要,接触了一下Learning to Rank(以下简称L2R),感觉很 ...

  2. LTR (Learning to Rank): 排序算法 poitwise, pairwise, listwise常见方案总结

    目录 1 Learing to Rank介绍 2 The Pointwise Approach 3 The Pairwise Approach 3.1 RankNet 4 The Listwise A ...

  3. lightGBM用于排序(Learning to Rank )

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx Learning to Rank 简介 去年实习时,因为项目需要,接触了一下Learning ...

  4. Learning to rank基本算法小结

    最近工作中需要调研一下搜索排序相关的方法,这里写一篇总结,总结记录一下几天的调研成果.包括 Learning to rank 基本方法 Learning to rank 指标介绍 LambdaMART ...

  5. 当Elasticsearch遇见智能客服机器人

    摘要 本次分享主要会介绍一下ES是如何帮我们完成NLP的任务的.在做NLP相关任务的时候,ES的相似度算法并不足以支撑用户的搜索,需要使用一些与语义相关的方法进行改进.但是ES的很多特性对我们优化搜索 ...

  6. colt mrr_Learning To Rank 介绍

    LTR简介 LTR(Learning torank)学习排序是一种监督学习(SupervisedLearning)的排序方法.LTR已经被广泛应用到文本挖掘的很多领域,比如IR中排序返回的文档,推荐系 ...

  7. 机器学习排序之Learning to Rank简单介绍

     机器学习排序之Learning to Rank简单介绍 标签: Learning to Rank学习排序PointwisePairwiseListwise 2015-01-03 21:50 23 ...

  8. 【学习排序】 Learning to Rank 中Listwise关于ListNet算法讲解及实现

    前一篇文章"Learning to Rank中Pointwise关于PRank算法源码实现"讲述了基于点的学习排序PRank算法的实现.该篇文章主要讲述Listwise Appro ...

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

    最近终于忙完了Learning to Rank的作业,同时也学到了很多东西.我准备写几篇相关的文章简单讲述自己对它的理解和认识.第一篇准备讲述的就是Learning to Rank中Pointwise ...

最新文章

  1. 如何将一个数组对象 把对象的值用指定符号连接起来 再转为数组 将数组用逗号分隔...
  2. MySQL分组函数的使用特点
  3. 【求助】windows server 2003 64位下面网卡IP总是默认为动态分派IP
  4. go io.reader 多次读取_你应该掌握的 Go 高级并发模式:计时器
  5. linux中怎么创建管道文件,Linux  管道文件
  6. int fun(int x){int p;if(x == 0 || x==1) return p=3;else p = x-fun(x-2);}void main(){printf(“%d\n“)}
  7. 57. web 攻击技术
  8. CentOS 6.5设置静态IP教程 并且可以ping通
  9. 全网首发:分析及解决com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required
  10. Matlab语言(一)
  11. mysql 触发器 insert new_mysql触发器实例 插入前更新数据
  12. 微信小程序视频学习教程
  13. 如何与亦敌亦友的 null 说拜拜?大神原来是这么做的!
  14. Python:对压缩包进行解压操作
  15. PDF Expert for mac(pdf编辑工具)
  16. 云端卫士实战录 React + Redux 前端项目实践
  17. 金蝶云苍穹开发实用整理
  18. java如何获取网页全部内容
  19. Win10电脑如何格式化
  20. rsync命令以及xsync封装

热门文章

  1. 2022-2028年中国铁路行业投资分析及前景预测报告(全卷)
  2. 提高班第三周周记(中秋第三天)
  3. Springboot前后端分离上传、下载压缩包、查看文件
  4. LeetCode简单题之二叉树的层平均值
  5. LeetCode简单题之两个列表的最小索引总和
  6. LeetCode简单题之二分查找
  7. 开源软硬一体OpenCV AI Kit(OAK)
  8. ListView 添加头部 和尾部 布局 (addHeaderView 和 addFooterView)
  9. EventBus的使用(一看就懂)
  10. Android 签名配置