谷歌开源TF-Ranking:一个可扩展的排名学习TensorFlow库

排名是指对一个列表项进行排序的过程,以便最大化列表的效用,适用于各种领域,从搜索引擎和推荐系统到机器翻译、对话系统甚至是计算生物学。在这些应用程序中,研究人员经常使用一系列叫作排名学习(learning-to-rank)的监督机器学习技术。在很多情况下,这些排名学习技术被应用在非常大型的数据集上——TensorFlow的可扩展性在这方面可能会是一个优势。但是,目前还不支持直接在TensorFlow中应用排名学习技术。据我们所知,还没有其他开源库专门针对排名学习技术的大规模应用。

今天,我们很高兴地宣布TF-Ranking,一个用于排名学习的可扩展TensorFlow库。正如我们在最近发表的论文中所描述的那样,TF-Ranking提供了一个统一的框架,包括了一套最先进的排名学习算法,并支持Pairwise和Listwise损失函数、多项目评分、排名度量优化和无偏见排名学习。

TF-Ranking速度很快,而且易于使用,并可用它创建高质量的排名模型。统一的框架让ML研究人员、ML从业者和ML爱好者能够基于单个库评估和选择一系列不同的排名模型。此外,我们坚信,一个好的开源库的关键之处不仅在于提供合理的默认设置,它还应该让用户能够开发自己的自定义模型。因此,我们提供了灵活的API,用户可以定义和插入自己的自定义损失函数、评分函数和度量指标。

现有的算法和度量指标支持

排名学习算法的目标是最小化在项目列表上定义的损失函数,优化给定应用程序的列表排序效用。TF-Ranking支持标准的Pointwise、Pairwise和Listwise损失函数。使用TF-Ranking库的ML研究人员能够复制和扩展以前发布的基线,ML专业人员可以为他们的应用做出最明智的选择。此外,TF-Ranking可以通过嵌入和扩展到数亿个训练实例来处理稀疏特征(如原始文本)。因此,任何对构建真实世界数据密集型排名系统(如网络搜索或新闻推荐)感兴趣的人都可以使用TF-Ranking作为强大、可扩展的解决方案。

经验评估是机器学习或信息检索研究的重要组成部分。为了确保与先前工作的兼容性,我们支持很多常用的排名指标,包括平均倒数排名(MRR)和标准化折扣累积收益(NDCG)。我们还可以在TensorBoard(开源的TensorFlow可视化仪表盘)上显示这些指标(在训练期间)。

\"image\"

在TensorBoard中显示的训练步骤(X轴)的NDCG度量指标(Y轴)的示例。它显示了训练期间指标的总体进度。可以直接在仪表盘上比较不同的方法。可以根据指标选择最佳模型。

多项评分

TF-Ranking支持一种新颖的评分机制,可以联合对多个项目(例如网页)进行评分,这是对传统评分机制的一个扩展,在传统的评分机制中,只对单个项目进行独立评分。多项目评分面临的一个挑战是难以进行推理,项目必须被分成子组进行评分。然后,累积每个项目的分数用于排序。为了隐藏这些复杂性,TF-Ranking提供了List-In-List-Out(LILO)API,将这些逻辑包装在导出的TF模型中。

\"image\"

TF-Ranking库支持多项目评分架构,是对传统单项评分的扩展。

正如我们在最近的工作中所展示的那样,在公共LETOR基准测试中,多项目评分在性能方面与RankNet、MART和LambdaMART等最先进的学习模型相比具有相当的竞争力。

排名指标优化

排名学习的一个重要研究挑战是排名指标的直接优化(例如前面提到的NDCG和MRR)。这些指标虽然能够比标准分类指标(如曲线下面积(AUC))更好地衡量排名系统的性能,但却具有不连续或扁平的特点。因此,这些指标的标准随机梯度下降优化是有问题的。

在最近的工作中,我们提出了一种新的方法LambdaLoss,它提供了一种用于对度量优化进行排序的原则概率框架。在这个框架中,可以通过期望最大化过程来设计和优化基于度量指标驱动的损失函数。TF-Ranking库集成了直接度量指标优化的最新成果,并提供了LambdaLoss实现。我们希望这些可以鼓励和促进排名度量指标优化领域进一步的研究和进展。

无偏见的排名学习

之前的研究表明,对于给定的已排名项目列表,用户更有可能与前几个结果交互,无论它们的相关性是怎样的。这一发现激发了研究人员对无偏见排名学习的兴趣,并且基于训练实例重新加权开发出了无偏见的评估和几种无偏见的学习算法。TF-Ranking库实现了支持无偏见评估的度量指标,并且通过原生支持重新加权(解决用户与数据集交互的固有偏差)实现了无偏见学习损失函数。

TF-Ranking入门

TF-Ranking实现了TensorFlow Estimator接口,通过封装训练、评估、预测和导出服务极大简化了机器学习编程。TF-Ranking与丰富的TensorFlow生态系统完美集成。如上所述,你可以使用Tensorboard可视化NDCG和MRR等排名指标,以及使用这些指标选择最佳模型检查点。在你的模型准备就绪之后,可以使用TensorFlow Serving将模型部署到生产环境中。

如果你有兴趣尝试TF-Ranking,请查看我们的GitHub存储库,并参考教程示例。TF-Ranking是一个活跃的研究项目,我们欢迎你的反馈和贡献。我们很高兴看到TF-Ranking能够给信息检索和机器学习研究社区带来一些帮助。

英文原文:http://ai.googleblog.com/2018/12/tf-ranking-scalable-tensorflow-library.html

\"image\"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值