详解TF-Ranking:Google开源的排序框架,应用于邮件检索、推荐系统等场景

2020 年 7 月 26 日 凡人机器学习

今天分享的是一个有关LTR框架的介绍,LTR是Learning-To-Rank,解决的是排序问题。排序问题在人工智能领域应用很广,比如在Gmail里搜索一个关键词,返回最匹配的邮件。再比如进入Google Drive后的一些文章推荐。


傲海的分享主要参考Google2019年发布的一篇论文《TF-Ranking:Scalable TensorFlow Library for Learning-to-Rank》,蛮长的,看了小一周才学习完。这个库已经开源了,大家可以在下方地址访问并使用:

https://github.com/tensorflow/ranking



LTR三种模式:Pointwise、Pairwise、Listwise


介绍LTR的话先要讲下Pointwise、Pairwise、Listwise这三个模式的区别,以生活中的一个例子说明:

上图是一个点餐界面,假设我们强制用户只能在界面中点一个菜,那么Pointwise、Pairwise、Listwise是如何构建训练过程的呢:


  • Pointwise:只关心单点的优化,比如用户点了排骨。那么就把排骨构建成正样本,其它菜都是负样本,构建成一个二分类问题,进行训练。Pointwise的问题在于缺少对整个列表的关系属性的挖掘

  • Pairwise:把优化问题看作两个样本的组合,训练的时候输入的是两个样本的特征组合,返回值比较高的样本

  • Listwise:把整个序列看作一个训练样本进行优化,Listwise也是目前比较好的一种推荐场景训练模式,因为它会完全考虑所有样本的关联属性。比方说我点了红烧肉,那么排骨也可能是我喜欢的即使我没点,这种潜在的属性挖掘用Listwise更合理


Pointwise、Pairwise、Listwise的训练模式的不同主要会影响训练中使用的Metrics评价方法,也就是DCG、NDCG等,这里就不展开说。


TF-LTR Architecture工程框架


大部分同学可能还是偏应用层,所以废话不多,直接介绍TF-LTR的框架。


TF里面LTR框架把整个排序流程分为Training和Serving两个部分,其中包含input_fn、transform_fn、scoring_fn、ranking head这几个大的模块,下面就分别介绍下。


1.input_fn


input_fn是一个数据IO的框架,这个框架可以从存储空间拉取数据,也可以从进程中直接读取。兼容了Libsvm、tf.sequence等数据格式,也可以自定义。


有一个定义挺有意思的,他把per item feature定义叫做3-D tensor,就是这样的三元组(queries,items,feature)。context feature定义叫做2-D tensor,是个二元组(queries,feature)。PS:这个可以用到以后写架构PPT里面,看上去很专业的样子。


2.transform_fn


这一步骤做的是特征转换,把sparse feature转换成dense feature。总之,特征embedding就得了,想办法把特征给embedding了。


3.scoring_fn


定义打分规则,在training和predicting的过程中用这个函数进行打分。官方给的例子挺奇怪,为啥打分函数要这么复杂--


4.ranking模块


首先要定义ranking loss和ranking metric,这也是模型训练的最基本流程,按照Pointwise、Pairwise、Listwise的不同模式在这里配置metric函数就好了。


ranking模块的输入是scoring_fn的分数以及真实的客户行为label,根据这两个反馈计算loss,根据metric不断迭代模型,最终实现收敛。


总结一下


TensorFlow在向业务层不断贡献各种开源库,把整个人工智能应用领域的门槛降低,这是个挺好的现象,后续如果做推荐或者文章检索可以考虑使用TF-LTR库试试。

登录查看更多
2

相关内容

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。
专知会员服务
22+阅读 · 2020年9月8日
【论文推荐】文本摘要简述
专知会员服务
68+阅读 · 2020年7月20日
【推荐系统/计算广告/机器学习/CTR预估资料汇总】
专知会员服务
87+阅读 · 2019年10月21日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
39+阅读 · 2019年10月9日
DNN在搜索场景中的应用
机器学习算法与Python学习
8+阅读 · 2018年6月7日
【推荐系统】详解基于内容的推荐算法
产业智能官
23+阅读 · 2018年1月11日
word2vec在工业界的应用场景
全球人工智能
5+阅读 · 2018年1月7日
Arxiv
5+阅读 · 2019年10月31日
Hardness-Aware Deep Metric Learning
Arxiv
6+阅读 · 2019年3月13日
Arxiv
8+阅读 · 2018年5月15日
Arxiv
26+阅读 · 2018年2月27日
Arxiv
3+阅读 · 2012年11月20日
VIP会员
相关VIP内容
相关资讯
DNN在搜索场景中的应用
机器学习算法与Python学习
8+阅读 · 2018年6月7日
【推荐系统】详解基于内容的推荐算法
产业智能官
23+阅读 · 2018年1月11日
word2vec在工业界的应用场景
全球人工智能
5+阅读 · 2018年1月7日
相关论文
Arxiv
5+阅读 · 2019年10月31日
Hardness-Aware Deep Metric Learning
Arxiv
6+阅读 · 2019年3月13日
Arxiv
8+阅读 · 2018年5月15日
Arxiv
26+阅读 · 2018年2月27日
Arxiv
3+阅读 · 2012年11月20日
Top
微信扫码咨询专知VIP会员