首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谷歌开源TF-Ranking:支持多种排序学习的可扩展TensorFlow库

来源 | Google AI 博客

译者 | 薛命灯

编辑 | Natalie

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

更多优质内容请关注微信公众号“AI 前线”(ID:ai-front)

今天,我们很高兴地宣布 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 可视化仪表盘)上显示这些指标(在训练期间)。

多项评分

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

正如我们在最近的工作中所展示的那样,在公共 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 能够给信息检索和机器学习研究社区带来一些帮助。

GitHub项目链接:

https://github.com/tensorflow/ranking

教程示例:

https://github.com/tensorflow/ranking/tree/master/tensorflow_ranking/examples

英文原文:

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

如果你喜欢这篇文章,或希望看到更多类似优质报道,记得给我留言和点赞哦!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181207B15CLZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券