`
zhimaruanjian
  • 浏览: 32668 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

芝麻HTTP:Learning to Rank概述

 
阅读更多

Learning to Rank,即排序学习,简称为 L2R,它是构建排序模型的机器学习方法,在信息检索、自然语言处理、数据挖掘等场景中具有重要的作用。其达到的效果是:给定一组文档,对任意查询请求给出反映文档相关性的文档排序。本文简单介绍一下 L2R 的基本算法及评价指标。

背景

随着互联网的快速发展,L2R 技术也越来越受到关注,这是机器学习常见的任务之一。信息检索时,给定一个查询目标,我们需要算出最符合要求的结果并返回,这里面涉及一些特征计算、匹配等算法,对于海量的数据,如果仅靠人工来干预其中的一些参数来进行排序的话,是远远不能达到要求的,而 L2R 算法就是用来解决这种问题的,L2R 将机器学习的技术很好地应用到了排序中,并提出了一些新的理论和方法,有效解决了排序的问题,而且效率上相比人工干预也有了几个数量级的飞跃。

L2R 算法

L2R 算法主要包括三种类别:Pointwise、Pairwise、Listwise,下面分别进行介绍。

1. Pointwise

Pointwise 将问题转化为多分类或回归问题。如果归结为多分类问题,对于某个 Query,对文档与此 Query 的相关程度打标签,标签分为有限的类别,这样就将问题转为多分类问题;如果归结为回归问题,对于某个 Query,则对文档与此 Query 的相关程度计算相关度 Score,这样就将问题归结为回归问题。

模型

应用 Pointwise 模型有 Subset Ranking、OC SVM、McRank、Prank 等。

输入

特定的 Query,文档的特征向量。

输出

文档与 Query 的标签类别或相关性分数。

损失函数

回归 Loss、分类 Loss、有序回归 Loss。

优缺点

Pointwise 算法实现简单,易于理解,但它只对给定 Query 单个文档的相关度进行建模,仅仅考虑了单个文档的绝对相关度,Pointwise 只学习到了文档和 Query 的全局相关性,对排序先后顺序有一定的影响。在某一些场景下,排在最前面的几个文档对排序结果的影响非常重要,如搜索引擎的第一页的内容非常重要,而 Pointwise 没有考虑这方面的影响,不对排序的先后顺序优劣做惩罚。

2. Pairwise

上文提到 Pointwise 方法只考虑了单个文档和 Query 的绝对相关度,Pairwise 考虑的则是两个文档之间的相对相关度,比较不同文档的先后顺序。Pairwise 方法是目前比较流行的方法,它将整个排序问题转为二元分类问题,即构建的是一个二分类器,对一个文档对 <Doc1, Doc2> 做二分类,一类是 Doc1 排序前于 Doc2,另一类则相反,通过两两比较,模型可以学习到不同文档之间的先后顺序。

模型

应用 Pairwise 的模型有 Ranking SVM、RankBoost、RankNet、GBRank、IR SVM 等。

输入

特定 Query,文档对 <Doc1, Doc2>。

输出

文档对偏向得分,{-1, 1}。

损失函数

Pairwise 分类 Loss。

优缺点

Pairwise 方法通过考虑两两文档之间的相关度来进行排序,有一定进步。但 Pairwise 使用的是两文档之间相关相关度的损失函数,而它和真正衡量排序效果的指标之间存在很大不同,甚至可能是负相关的,如可能出现 Pairwise Loss 越来越低,但 NDCG 分数也越来越低的现象。另外此方法只考虑了两个文档的先后顺序,且没有考虑文档在搜索列表中出现的位置,导致最终排序效果并不理想。

3. Listwise

Listwise 算法相对于 Pointwise 和 Pairwise 方法来说,它不再将排序问题转化为一个分类问题或者回归问题,而是直接针对评价指标对文档的排序结果进行优化,如常用的 MAP、NDCG 等。

模型

应用 Listwise 的模型有 ListNet、ListMLE、SVM MAP、AdaRank、SoftRank、LambdaRank、LambdaMART。其中 LambdaMART(对 RankNet 和 LambdaRank 的改进)在 Yahoo Learning to Rank Challenge 表现出最好的性能。

输入

特定Query,文档集合

输出

所有文档的打分或者排列顺序

损失函数

评价指标如 NDCG、MAP 等。

优缺点

由于此种方法是针对评价指标直接进行优化,所以它往往表现出不错的效果。

评价指标

L2R 评价指标主要有 NDCG、MAP、WTA、MRR 等,下面分别简单介绍一下。

1. NDCG

NDCG,全称为 Normalized Discounted Cumulative Gain,是一种综合考虑模型排序结果和真实序列之间的关系的一种指标,也是最常用的衡量排序结果的指标,其计算公式如下:

$$ \mathrm{NDCG@K} = \frac{DCG}{iDCG} $$

NDCG 其实是由 DCG 的值计算出来的,分子为模型计算出的 DCG 值,分母则为理想情况下的 DCG 值,而 DCG 的计算公式如下:

$$ \mathrm{DCG@K} = \sum_{i=1}^{k}{\frac {{2^{r(i)}-1}}{\log_{2}{(i+1)}}} $$

在 DCG 的表达式中,$\sum_{i=1}^{k}$ 是求和累积,${r(i)}$ 表示在模型给出的排序中,排名为 i 的元素的实际分数,这里通过 ${2^{r(i)}-1}$ 运算放大了其分数的差异,$\log_{2}{(i+1)}$ 是每个元素的折价,由于排序靠前的元素被选取的概率更大,所以这里可以使得排名前面的元素影响权重更大。

2. MAP

MAP,全称为 Mean Average Precision,即平均准确率。对于每个真实相关的文档,考虑其在模型排序结果中的位置 P,统计该位置之前的文档集合的分类准确率,取所有这些准确率的平均值。

对于一个 Query,原本有 4 个相关结果,查询时将 4 个结果都查询出来了,其 rank 分别为 1, 2, 4, 7,则 MAP 为 (1/1 + 2/2 + 3/4 + 4/7)/4 = 0.83。对于另一个 Query,原本有 5 个相关结果,查询只有 3 个相关结果,其 rank 分别为 1, 3, 5,则 MAP 为 (1/1 + 2/3 + 3/5 + 0 + 0)/5 = 0.45。则 MAP = (0.83 + 0.45)/2 = 0.64。

3. WTA

WTA,全称 Winners Take All,对于给定的查询 Query,如果模型返回的结果列表中,第一个文档是相关的,则 WTA =1, 否则为 0。

如对于一个 Query,本来有 5 个相关结果,查询结果中如果第一个结果是相关的,那么 WTA = 1,如果第一个结果是不相关的,则 WTA = 0。

4. MRR

MRR,全称 Mean Reciprocal Rank,是把相关文档在结果中的排序倒数作为准确度,然后再取平均。

如对于第一个 Query,查询结果将正确结果排名 rank 为 3,则其 Reciprocal Rank 为 1/3,对于第二个 Query,查询结果将正确结果排名 rank 为 2,则其 Reciprocal Rank 为 1/2,对于第三个 Query,查询结果将正确结果排名 rank 为 1,则其 Reciprocal Rank 为 1,则 MRR = (1/3 + 1/2 + 1)/3 = 11/18 = 0.61。

参考资料

分享到:
评论

相关推荐

    独角兽观察- 黑芝麻智能:如何叩开国产车芯的新世界大门.pdf

    【黑芝麻智能】是一家专注于自动驾驶芯片研发的中国独角兽企业,由具有深厚行业经验的创始人团队于2016年创立。公司瞄准智能汽车市场对于高算力、高性能芯片的急迫需求,尤其在新冠疫情导致全球汽车芯片短缺的背景下...

    黑芝麻:国产芯片能有多少机会.pdf

    黑芝麻:国产芯片能有多少机会.pdf

    黑芝麻:2020年年度报告.PDF

    【南方黑芝麻集团股份有限公司2020年年度报告】提供了公司过去一年的综合业绩和经营状况,涵盖了财务、业务、风险、未来规划等多个方面。以下是报告中的关键知识点: 1. **年度报告的真实性与责任**:董事会、监事...

    芝麻测试:访谈-芝麻测试

    芝麻测试,或者称为SESAME-TEST,是一种针对软件和应用的测试方法,旨在确保产品的功能性和性能。在本文中,我们将深入探讨与JavaScript相关的芝麻测试技术、重要性以及如何进行有效的测试。 首先,我们理解...

    芝麻信用接口demo

    芝麻信用接口Demo是一款用于演示如何与芝麻信用开发平台进行交互的应用程序示例。这个压缩包包含了一个或多个文件,它们提供了具体的代码示例,帮助开发者理解并实践芝麻信用的API调用过程。以下是对这个Demo中可能...

    芝麻信用接口demo及文档

    芝麻信用接口Demo及文档主要涉及的是使用芝麻信用服务的相关技术和步骤,这是一项基于大数据和云计算的个人信用评估系统。在本文中,我们将深入探讨芝麻信用接口的使用、接口文档的重要性和Demo的应用。 首先,芝麻...

    1第1章芝麻开门--电子商务概述.pptx

    电子商务概述 电子商务(Electronic Commerce)是指实现整个贸易活动的电子化,从涵盖范围有角度定义交易各方以电子交易方式进行的任何形式的商业交易。从技术方面可以定义电子商务是一种多技术的集合体,包括交换...

    JAVA WEB项目网页设计作业源码:芝麻开门博客网

    JAVA WEB项目网页设计作业源码:芝麻开门博客网JAVA WEB项目网页设计作业源码:芝麻开门博客网JAVA WEB项目网页设计作业源码:芝麻开门博客网JAVA WEB项目网页设计作业源码:芝麻开门博客网JAVA WEB项目网页设计作业...

    Java开发芝麻信用实例

    在Java开发领域,芝麻信用是一种基于大数据和云计算的信用评估服务,主要由蚂蚁金服提供。这个实例项目可能涵盖了如何利用Java技术与芝麻信用接口进行交互,获取和处理用户的信用数据。下面将详细讨论相关知识点。 ...

    通达信指标公式源码蜡烛钻石小量(芝麻量 钻石量).doc

    通达信指标公式源码蜡烛钻石小量(芝麻量 钻石量) 通达信指标公式源码蜡烛钻石小量(芝麻量 钻石量)是指一个基于通达信指标公式的蜡烛钻石小量指标,该指标通过对 Volume(成交量)和 Close(收盘价)的分析,来...

    仿芝麻信用分

    【仿芝麻信用分】是一种基于大数据和信用评估的模拟系统,旨在模仿阿里巴巴旗下蚂蚁金服推出的“芝麻信用分”服务。这个项目可能是为了学习和理解如何构建类似的信用评分模型,或者是为了开发一个内部或测试版的信用...

    仿支付宝芝麻信用分自定义view

    本项目“仿支付宝芝麻信用分自定义view”旨在模拟支付宝应用程序中的芝麻信用分展示视图,这涉及到对Android UI设计、自定义View的绘制以及动画效果的实现。 首先,自定义View的基础是理解Android的View类和...

    幼儿园大班健康教案:芝麻开门.doc

    这篇文档标题为“幼儿园大班健康教案:芝麻开门”,是一份针对幼儿园大班儿童设计的健康教育活动方案,旨在引导孩子们了解并认识黑色食品及其营养价值。活动内容包括游戏互动、观察发现、角色扮演等多个环节,旨在...

    php对接支付宝芝麻免押demo

    在这个示例中,我们可能涉及到的API包括芝麻信用授权、免押金服务、支付、退款、查询免押余额以及解冻资金等功能。这些API通常需要开发者注册并获取应用ID(AppID)和私钥,以便进行身份验证和签名。 2. **Zmxy.php...

    php 接入授权芝麻信用分

    完整 php 接入芝麻信用分流程,私钥和公钥在芝麻信用后台设置,官网有详细说明

    Android芝麻信用demo

    【Android芝麻信用Demo】是一个示例项目,展示了如何在Android应用程序中集成芝麻信用服务,以实现用户信用评估和相关信息查询的功能。这个项目适用于开发者,尤其是那些想要在自己的应用中引入芝麻信用评分系统的...

    不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:芝麻开门博客网.rar

    不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:芝麻开门博客网 不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:芝麻开门博客网 不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:芝麻...

    芝麻信用sdk移动端接入pdf文档

    芝麻信用SDK移动端接入指南 在移动应用开发中,与第三方服务进行集成是常见的需求,而芝麻信用作为阿里巴巴集团下的一个专业信用评估平台,为开发者提供了SDK,使得在移动端实现用户信用查询、授权等功能变得简单易...

    独角兽观察-黑芝麻智能科技.pdf

    "黑芝麻智能科技" 黑芝麻智能科技是一家专门从事自动驾驶芯片的研发和生产的公司,作为国产芯片的领跑者之一,黑芝麻智能提供了涵盖计算平台、大算力芯片、核心IP在内的端到端解决方案,赋予ADAS、自动驾驶、车路...

Global site tag (gtag.js) - Google Analytics