Learning to rank在淘宝的应用

作者:仁重 浏览量: 8066 评论数: 0

作者:仁重 (一淘及搜索事业部-搜索技术-算法技术-主搜索与商城)

前言


排序中我们需要解决的是什么样的问题?怎么样把用户想要的,好的商品排到前面;怎样调节不同卖家的流量;给质量好,但价格不便宜的商品更多的流量,来引导市场更加规范。需要解决的问题很复杂,但是排序结果好坏难以评判。

对于搜索结果好不好的问题,通常的做法是把搜索结果的每一条分为5类:

bad(差)

fair(一般)

good(好)

excellent(非常好)

perfect(完美)。

对搜索的结果进行人工评价,并且对这5类计算ndcg,来判断排序结果的好坏。

这是非常粗放的一个评判标准,并且需要大量的人工对排序结果进行标注。这种方法费时费力并且人对搜索结果的评价很难标准化。所以对于新加入的特征做一个新的排序,在实际应用中,我们通常会采用AB test的方法在线上进行对比测试。这样绕开的对搜索结果的直接判断,间接的通过用户反馈来评价新排序的好坏。

回到问题的本质,我们需要知道排序结果的好坏,整体的好坏,是很难得到的,但是对于一对(pair)商品的好坏,即一个宝贝是否比另外一个宝贝好,我们是比较容易判断的。如果构造出和线上分布基本一致的宝贝对集合,只要在这些集合上的商品对排序和我们期望的是一致的,就可以认为排序是较好的,这样把商品的好坏和排序的好坏定义更加明确,更有利于我们去优化排序。有了商品对的好坏,我们在淘宝的搜索上使用learning to rank技术来实现了对商品对(pairwise)优化来优化排序。

Learning to rank(ltr)中文翻译为排序学习,用机器学习的方法来解决检索系统中的排序问题。当特征大到一定的规模,或排序的分类到了一定的规模,再使用人工规则就很难达到一个较好的状况,这种情况就需要使用机器学习的方法来帮助我们优化排序模型。

为什么要在淘宝使用learning to rank。

首先得简单介绍一下淘宝搜索的的发展历史,从数据库到搜索引擎,解决了商品量较大的问题;那时商品排序完全依靠下降时间来排序,随着商品量的不断增加,排序后的效果越来越差,就先后加入了类目相关性与文本相关性,商品人气分;再后来为了平衡卖家流量,加入了卖家分;再后来为了更好的用户体验,加入了个性化,图像质量等因素。

类似类目相关性,文本相关性在搜索排序模型中都称之为特征,每个特征会根据不同的模型或者规则生产一个0~1的分数,这些分数通过线性加权的方式对最终的排序进行作用,这些特征的权重通过不断的进行AB test的方法找到较优的一组。

一步一步走来,现在淘宝搜索的排序模型有他一定的必然性。但是,每次模型的修改权重参数都需要进行较长时间的调整,需要结合人工的经验预估出一些比较合理的参数,再不断的通过用户反馈进行测试,找到较优的一组参数。这样做有以下缺点:

1.测试时间较长。

2.测试有效,一般可能不能达到一个最优化的效果。

3.在不断的优化过程中,对已有特征参数的调整常常被遗漏。

所以,我们通过learning to rank的方法,通过机器学习模型来自动调整这些参数。项目命名为Jazz,定位是自动调整特征权重参数,但不产生新特征。之后新加入的特征,都通过这个模型来确定它最优的参数。

优点,缺点,难点

 

淘宝的ltr

淘宝的ltr主要有以下几个特殊之处,

一、一般来说,ltr的特征都是很基础的特征,例如一个网页排序中经常会被提到的特征有:

与一般意义上的ltr不同,在淘宝已经积累了不少较强的统计意义的特征。这些用到的特征经过不断优化,在淘宝已有的排序上表现的已经较好。我们再对齐进行优化,就不需要像网页排序那样从头开始发掘特征,我们在这个基础上来做ltr,使用的特征自然而然是原来使用的这些特征,对他们在加权参数上进行调整。更像是对排序参数的优化。(当然这只是第一步,之后会根据效果来新增特征。)

二、使用统计的用户反馈的行为来代替人工标注。很多ltr的论文都提到需要人工将排序的相关性分为bad, fair, good,excellent, perfect五档,这个是耗时耗力的工作,并且由人工来标注,标准很难以统一,所以选用用户的点击与购买等行为来代替对商品的相关性及商品优劣的判断。

对特征参数的优化,从原始的手工调整,到了自动化的学习。这个变化如下图所示,

原有的商品排序系统参数产生流程如下图中绿色箭头所示,新的流程如红色所示。减少人为的因素,并且可以在线下评估效果,节省了线上ABtest的反复测试的时间,并且是可以达到最优化参数的目的。

总体的架构如下:

使用pairwise的方法来生产训练数据


搜索的目标是相对比较多的,既需要考虑商品购买转化率,又需要兼顾商品点击率等,不适用pointwise这样目标单一的方法,所以我们选择了pairwise来做训练数据。Pairwise的难点在于训练数据的构建,当然后续也在实验listwise的一些方法,以及pairwise和listwise结合的方法,以及boost的方法。

大多数论文上都会提到几种pairwise的方法,

1.Click> Skip Above

2.LastClick > Skip Above

3.Click> Earlier Click

4.LastClick > Skip Previous

5.Click> No-Click Next

Click>SkipAbove是指,在搜索结果页点击的商品,好于在点这个商品之前浏览过的商品,即排序排在这个商品前面的并且未被点击的商品。前4个方法都是类似的思想,不过对于像淘宝这样相对成熟的排序系统来说,这些方法并不适用,因为这样选出的pair样本与排序的分数恰好相反,原始的排序顺序,将各个特征分数较高的排在前面,而通过Click > SkipAbove选出的pair集合,都是表述分数低的比分数高的好,可以说都是反例,这样会导致模型训练结果所有的特征权重都为负。

所以我们选择pair的方法是通过用户的点击与购买反馈来生产表示商品好坏的pair对。

使用点击反馈来形成pair


统计同query下,每个商品的点击率,将点击率平滑后,将点击率相差一定以上的商品形成pair。

使用无点击的数据来形成pair


在样本中加入一部分通过原始排序来生成的pair,这样的目的是使排序的参数变化不至于太剧烈,形成一些意想不到的badcase。

这部分的样本根据展示日志中原始商品的排序,第1个商品好于第20个商品,第2个商品好于第21个商品,以此类推。

样本的混合与分层抽样

样本产生之后

1. 按照线上参数进行排序计算NDCG。

a)  NDCG计算有点击的商品相关性是1,有成交的商品相关性为2

b)  对pvlog进行重排时,重排范围只在当前页面内,不考虑重排后,第2页的商品排到第一页的情况。

c)  DCG[i] = DCG[i-1] + G[i]/log_2⁡〖(i+1)〗,i是排序的位置,G[i]是在第i个位置上商品的相关性。IDCG为按相关性排序后的DCG

d)  NDCG=DCG/IDCG

2. 调整样本混合比例,或者样本选择策略。并且重新进行训练。

3. 按训练好的模型的参数对pvlog进行重新排序。计算NDCG

4. 和按照线上参数排序的NDCG进行比较,看是否有增加或者减少,和增加的程度,来判断这次调整的收益。

5. 并且通过找到ndcg下降的query,分析下降的原因。

Learning to rank在淘宝的应用相关推荐

  1. deep learning 淘宝验证码识别

    2014年底验证码识别称为一个热门的话题,各种12306抢票软件层出不穷,百度,搜狗,360等公司推出了火车票抢票软件.在给人们带来便利的同时,当然给黄牛有了可乘之机.下面介绍几种我们常见的验证码. ...

  2. 深度排序模型在淘宝直播的演进与应用

    分享嘉宾:纪志辉 阿里巴巴 算法专家 编辑整理:李春雷 出品平台:DataFunTalk 导读:淘宝直播近两年在排序模型上进行了持续的迭代优化和演进落地,在多目标学习.跨场景迁移.召回匹配.大促GMV ...

  3. 深度语义模型以及在淘宝搜索中的应用

    https://www.toutiao.com/a6685574319969403404/ 传统的搜索文本相关性模型,如BM25通常计算Query与Doc文本term匹配程度.由于Query与Doc之 ...

  4. 淘宝算法总监解读——淘宝搜索算法现状

    淘宝搜索排序的目的是帮助用户快速的找到需要的商品.从技术上来说,就是在用户输入关键词匹配到的商品中,把最符合用户需求的商品排到第一位,其它的依次排在后续相应的位置.为了更好的实现这个目标,算法排序系统 ...

  5. 淘宝视频内容标签的结构化分析和管理

    淘宝视频是如何分类的?又是如何保持不同类别视频样本得到相对均衡?又是如何应用的? 背景介绍 随着5g时代的到来,视频内容形态迸发出勃勃生机,各大短视频app获得的巨大成功.淘宝短视频完成的种草和成交转 ...

  6. CIKM 2021 | 淘宝多场景推荐排序模型ZEUS

    本文介绍大搜索算法团队发表于CIKM 2021 的论文 Self-Supervised Learning on Users' Spontaneous Behaviors for Multi-Scena ...

  7. 淘宝搜索排序算法分析

    淘宝搜索排序的目的是帮助用户快速的找到需要的商品.从技术上来说,就是在用户输入关键词匹配到的商品中,把最符合用户需求的商品排到第一位,其它的依次排在后续相应的位置.为了更好的实现这个目标,算法排序系统 ...

  8. 大淘宝技术斩获NTIRE 2023视频质量评价比赛冠军(内含夺冠方案)

    近日,CVPR NTIRE 2023 Quality Assessment of Video Enhancement Challenge比赛结果公布,来自大淘宝音视频技术团队的同学组成「TB-VQA」 ...

  9. 大规模视频内容理解:淘宝视频内容标签的结构化分析和管理

    关注公众号,发现CV技术之美 本文转载自淘系技术. 淘宝视频是如何分类的?又是如何保持不同类别视频样本得到相对均衡?又是如何应用的? 背景介绍 随着5G时代的到来,视频内容形态迸发出勃勃生机,各大短视 ...

最新文章

  1. bat maven 一键打包1.0
  2. CSS+DIV-制作实用菜单
  3. 卸载ORACLE 11g
  4. Spring-注入参数详解-[简化配置方式]
  5. vue 导出html
  6. MyBatis复习(一):开眼看世界
  7. 为AspxGridView绑定嵌套数据
  8. 图书馆管理系统——借书操作
  9. 人机大战简史(第二版)
  10. JS全国城市数组列表
  11. obs点开始推流显示无法连接服务器,前沿科技资讯:OBS Studio推流连接失败如何办 OBS推流失败的正确解决方法...
  12. c语言谷歌坐标转百度坐标,百度经纬度和google经纬度转换测试
  13. 用10行代码实现鉴黄
  14. 【年度榜单】2020大数据产业创新技术突破丨数据猿·金猿榜
  15. 友盟 android版本统计,友盟统计下载_友盟统计安卓版下载_友盟统计手机版下载_友盟统计app_易玩网...
  16. IOS描述文件mobileprovision问题
  17. 124-移动端游乐园项目
  18. 文章总结:ASPLOS 2013 Architecture I
  19. C#常见错误—未将对象引用设置到对象的实例
  20. 你不是输给了物联网,是输给了不信物联网

热门文章

  1. html支持的语音文件格式,html5中如何设置audio支持音频格式
  2. C语言记录元音字母的位置,算法训练 确定元音字母位置
  3. php将配置信息写入文件,Php写入配置文件的经典漏洞
  4. Android CameraSurfaceView在SurfaceView上实现拍照,视频录像
  5. 2021甘肃省高考成绩查询日期,2021年甘肃省高考分数公布时间
  6. 计算机视觉基础:图像处理(上)
  7. sql 2020 0528
  8. MATLAB实战系列(九)-遗传算法(GA)求解旅行商问题(TSP)思路解析
  9. 怎么改掉科学计数法_马拉松猝死频发为哪般——听听冠军们怎么说
  10. model.train_on_batch介绍【TensorFlow2入门手册】