0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TF-Ranking实现新颖的TFR-BERT架构

硬件三人行 来源:TensorFlow 作者:Michael Bendersky、X 2021-08-24 10:09 次阅读

发布人:Google Research 软件工程师 Michael Bendersky 和 Xuanhui Wang

2018 年 12 月,我们推出了 TF-Ranking,这是一个基于 TensorFlow 的开源代码库,用于开发可扩容的 learning-to-rank (LTR) 神经模型。当用户期望收到有序的项目列表来辅助查询时,该模型可以发挥出色作用。LTR 模型与一次只对一个项目进行分类的标准分类模型不同,它会将整个项目列表接收输入,并学习排序,充分提升整个列表的效用。

TF-Ranking

https://github.com/tensorflow/ranking

虽然 LTR 模型最常用于搜索和推荐系统,但自其发布以来,我们已经看到 TF-Ranking 在除搜索以外的各领域,均有应用,其中包括电子商务、SAT 求解器和智能城市规划等。

Learning-to-rank (LTR) 的目标是学习一个函数 f(),该函数会以项目列表(文件、产品、电影等)作为输入,并以最佳排序(相关性降序)输出项目列表。上图中,深浅不一的绿色表示项目的相关性水平,标有 “x” 的红色项目是不相关的

电子商务

https://dl.acm.org/doi/abs/10.1145/3308560.3316603

SAT 求解器

https://arxiv.org/abs/1904.12084

智能城市规划

https://dl.acm.org/doi/abs/10.1145/3450267.3450538

2021 年 5 月,我们发布了 TF-Ranking 的一个重要版本,实现了全面支持使用 Keras(TensorFlow 2 的一个高阶 API),以原生方式构建 LTR 模型。我们为原生 Keras 排序模型加入了全新的工作流设计,其中包括灵活的 ModelBuilder、用于设置训练数据的 DatasetBuilder, 以及利用给定数据集训练模型的 Pipeline。有了这些组件,构建自定义 LTR 模型会比以往更轻松,且有利于快速探索、生产和研究的新的模型结构。如果您选择的工具是 RaggedTensors,TF-Ranking 现在也可以和这些工具协作。

重要版本

https://github.com/tensorflow/ranking/releases/tag/v0.4.0

TensorFlow 2

http://tensorflow.google.cn/

https://github.com/tensorflow/ranking/blob/master/tensorflow_ranking/examples/keras/antique_ragged.py

此外,我们在最新版本中结合了 Orbit 训练库,其中包含了许多进展成果,而这些成果正是近两年半内,神经 LTR 研究结晶。下面我们分享一下 TF-Ranking 最新版本中的一些重要改进。

构建和训练原生 Keras 排序模型的工作流。蓝色模块由 TF-Ranking 提供,绿色模块支持自定义

最新版本

https://github.com/tensorflow/ranking/releases/tag/v0.4.2

Orbit

https://github.com/tensorflow/models/tree/master/orbit

利用 TFR-BERT 的

Learning-to-Rank

最近,BERT 之类的预训练语言模型在各种语言理解任务中性能表现突出。为利用这些模型,TF-Ranking 实现了一个新颖的 TFR-BERT 架构——通过结合 BERT 与 LTR 的优势,来优化列表输入的排序过程。举个例子,假设有一个查询和一个由 n 个文件组成的列表,而人们想要在对此查询响应中的文件进行排序。LTR 模型并不会为每个 《query, document》 学习独立的 BERT 表示,而是会应用一个排序损失来共同学习 BERT 表示,充分提升整个排序列表相对于参照标准标签的效用。

这个过程如下图所示。首先,我们把查询响应中需要排序的 n 个文件组成的列表扁平化为一个 《query, document》 元组列表。把这些元组反馈至预训练的语言模型(例如 BERT)。然后用 TF-Ranking 中的专用排序损失,对整个文件列表的池化 BERT 输出进行联合微调。

排序损失

https://github.com/tensorflow/ranking/blob/master/tensorflow_ranking/python/losses.py

结果表明,这种 TFR-BERT 架构在预训练的语言模型性能方面有了明显改善,因此,可以在执行多个热门排序任务时体现出十分优越的性能。若将多个预训练的语言模型组合在一起,则效果更为突出。我们的用户现在可以通过这个简单的例子完成 TFR-BERT 入门。

TFR-BERT 架构的说明,在这个架构中,通过使用单个 《query, document》 对的 BERT 表示,在包含 n 个文件的列表上构建了一个联合 LTR 模型

多个热门

https://arxiv.org/abs/2010.00200

简单的例子

https://github.com/tensorflow/ranking/blob/master/tensorflow_ranking/examples/keras/tfrbert_antique_train.py

具有可解释性的

Learning-to-Rank

透明度和可解释性是在排序系统中部署 LTR 模型的重要因素,在贷款资格评估、广告定位或指导医疗决定等过程中,用户可以利用这些系统来确定结果。在这种情况下,每个单独的特征对最终排序的贡献应具有可检查性和可理解性,以此确保结果的透明度、问责制和公正性。

实现这一目标的可用方法之一是使用广义加性模型 (Generalized additive model,GAM),这是一种具有内在可解释性的机器学习模型,由唯一特征的平滑函数线性组合而成。然而,我们虽然已经在回归 (Regression analysis) 和分类任务方面对 GAM 进行了广泛的研究,但将其应用于排序设置的方法却并不明确。举个例子,虽然可以直接利用 GAM 对列表中的每个单独项目进行建模,然而对项目的相互作用和这些项目的排序环境进行建模,仍是一个更具挑战性的研究问题。为此,我们开发了神经排序 GAM,这是可为排序问题的广义加性模型所用的扩展程序。

神经排序 GAM

https://arxiv.org/abs/2005.02553

与标准的 GAM 不同,神经排序 GAM 可以同时考虑到排序项目和背景特征(例如查询或用户资料),从而得出一个可解释的紧凑模型。这同时确保了各项目级别特征与背景特征的贡献具有可解释性。例如,在下图中,使用神经排序 GAM 可以看到在特定用户设备的背景下,距离、价格和相关性是如何对酒店最终排序作出贡献的。目前,神经排序 GAM 现已作为 TF-Ranking 的一部分发布。

为本地搜索应用神经排序 GAM 的示例。对于每个输入特征(例如价格、距离),子模型会产生可以检查的子分数,支持公开查看。背景特征(例如用户设备类型)可以用于推算子模型的重要性权重

发布

https://github.com/tensorflow/ranking/issues/202

神经排序还是梯度提升?

神经模型虽然在多个领域展现出了十分优越的性能,但 LambdaMART 之类的专门梯度提升决策树 (Gradient Boosted Decision Trees, GBDT) 仍然是利用各种开放 LTR 数据集时的性能标杆。GBDT 在开放数据集中的成功可归结于几个原因。首先,由于其规模相对较小,神经模型在这些数据集上容易过度拟合 (Overfitting)。其次,由于 GBDT 使用决策树对其输入特征空间进行划分,它们自然更能适应待排序数据的数值尺度变化,这些数据通常包含具有 Zipfian (Zipf‘s law) 或其他偏斜分布的特征。然而,GBDT 在更为现实的排序场景中确实有其局限性,这些场景往往同时包含文本和数字特征。举个例子,GBDT 不能直接应用于像原始文档文本这种,较大的离散特征空间。一般来说,它们的可扩容性也要弱于神经排序模型。

因此,自 TF-Ranking 发布以来,我们团队大大加深了对于神经模型在数字特征排序中优势的理解。。最能充分体现出这种理解的是,ICLR 2021 的一篇论文中所描述的数据增强自觉潜在交叉 (DASALC) 模型,该模型首次在开放 LTR 数据集上建立了与强大的、与 LambdaMART 基线相同的神经排序模型,并且在某些方面取得了统计学上的重大改进。这一成就是通过各种技术的组合实现的,其中包括数据增强、神经特征转换、用于建模文档交互的自注意机制、列表式排序损失,以及类似 GBDT 中用于提升的模型组合。现在 DASALC 模型的架构完全由 TF-Ranking 库实现。

ICLR 2021

https://research.google/pubs/pub50030/

结论

总而言之,我们相信基于 Keras 的 TF-Ranking 新版本能够让开展神经 LTR 研究和部署生产级排序系统变得更加轻松。我们鼓励大家试用最新版本,并按照这个引导例子进行实践体验。虽然这个新版本让我们感到非常激动,但我们的研发之旅远未结束,所以我们将继续深化对 learning-to-rank 问题的理解,并与用户分享这些进展。

最新版本

https://github.com/tensorflow/ranking/releases/tag/v0.4.0

这个引导例子

https://github.com/tensorflow/ranking/blob/master/tensorflow_ranking/examples/keras/keras_dnn_tfrecord.py

致谢

本项目的实现离不开 TF-Ranking 团队的现任和前任成员:Honglei Zhuang、‎Le Yan、Rama Pasumarthi、Rolf Jagerman、Zhen Qin、Shuguang Han、Sebastian Bruch、Nathan Cordeiro、Marc Najork 和 Patrick McGregor。另外要特别感谢 Tensorflow 团队的协作者:Zhenyu Tan、Goldie Gadde、Rick Chao、Yuefeng Zhou‎、Hongkun Yu 和 Jing Li。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3160

    浏览量

    48703
  • 代码
    +关注

    关注

    30

    文章

    4742

    浏览量

    68330
  • tensorflow
    +关注

    关注

    13

    文章

    328

    浏览量

    60494

原文标题:TF-Ranking 中的 Keras API 让 LTR 模型构建更轻松

文章出处:【微信号:yingjiansanrenxing,微信公众号:硬件三人行】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TF卡的安全性与加密技术

    随着数字时代的到来,数据安全成为了一个不可忽视的问题。TF卡(TransFlash卡,也称为MicroSD卡)作为一种便携式存储设备,广泛应用于手机、相机、平板电脑等设备中。TF卡的安全性和加
    的头像 发表于 11-04 09:58 291次阅读

    使用TF卡的常见问题

    随着科技的发展,TF卡(TransFlash卡,也称为MicroSD卡)已经成为我们日常生活中不可或缺的存储工具。它们被广泛应用于智能手机、平板电脑、数码相机等设备中,用于扩展存储空间,存储照片
    的头像 发表于 11-04 09:54 419次阅读

    TF卡使用注意事项

    随着科技的发展,TF卡因其体积小、容量大、价格低廉等优点,已成为我们日常生活中不可或缺的存储工具。然而,在使用过程中,如果不注意一些细节,可能会导致数据丢失、TF卡损坏等问题。 1. 选择合适的TF
    的头像 发表于 11-04 09:53 196次阅读

    TF卡适用于哪些设备

    TF卡以其小巧的体积和大容量存储的特点,被广泛应用于各种便携式电子设备中。随着技术的不断进步,TF卡的容量也在不断增加,从最初的128MB到现在的2TB甚至更高,满足了不同用户对存储空间的需求。TF
    的头像 发表于 11-04 09:52 371次阅读

    TF卡与SD卡的区别

    在数字时代,存储卡成为了我们生活中不可或缺的一部分。无论是手机、相机还是平板电脑,都需要存储卡来扩展存储空间。TF卡和SD卡是两种市面上最常见的存储卡类型,它们在功能和应用上有着各自的特点和优势
    的头像 发表于 11-04 09:50 159次阅读

    MK米客方德存储卡:TF卡与SD卡的详细解读

    在这个数字化时代,数据存储变得至关重要。TF卡(TransFlash卡)和SD卡(Secure Digital卡)作为两种常见的存储介质,它们在我们的日常生活中扮演着重要角色。本文将带您深入了解TF卡的基本概念,探讨TF卡与SD
    的头像 发表于 09-02 11:03 547次阅读
    MK米客方德存储卡:<b class='flag-5'>TF</b>卡与SD卡的详细解读

    M8020A J-BERT 高性能比特误码率测试仪

    M8020A 比特误码率测试仪 J-BERT M8020A 高性能 BERT 产品综述 Keysight J-BERT M8020A 高性能比特误码率测试仪能够快速、准确地表征传输速率高达 16 或
    的头像 发表于 08-21 17:13 173次阅读

    AWG和BERT常见问题解答

    随着信号的速率越来越高,调制格式越来越复杂,对测试仪器的性能要求也越来越高。是德科技也一直在推出业界领先的高带宽、高采样率的AWG和高性能的BERT
    的头像 发表于 08-06 17:27 524次阅读

    MK米客方德TF卡:高速存储与低功耗设计的最佳选择

    在追求性能的同时,MK TF卡同样注重环保和节能。通过优化的电路设计和智能电源管理,在保证性能的前提下,实现了更低的功耗。在某些应用场景,如录音笔、穿戴医疗、电子玩具等非常注重TF卡的低功耗特性。
    的头像 发表于 07-26 10:32 629次阅读
    MK米客方德<b class='flag-5'>TF</b>卡:高速存储与低功耗设计的最佳选择

    什么是贴片式TF卡?

    贴片式TF卡,也被称为贴片式SD卡或SD NAND,是一种可以直接贴装在电路板上的存储芯片。与传统的插拔式TF卡不同,贴片式TF卡采用BGA(球栅阵列)封装技术,使其可以通过回流焊接工艺直接贴装在电子设备的主板上。这种设计不仅提
    的头像 发表于 05-31 10:55 970次阅读
    什么是贴片式<b class='flag-5'>TF</b>卡?

    TF卡在心电监测仪中的多功能应用

    TF卡在心电监测仪中的应用 TF卡(Micro SD卡)在心电仪器上的应用主要是用作存储设备,用于保存心电信号数据和其他相关信息。以下是TF卡在心电仪器上的一些常见应用: 1、数据存储: TF
    的头像 发表于 01-29 16:42 454次阅读
    <b class='flag-5'>TF</b>卡在心电监测仪中的多功能应用

    TF卡和SD卡的区别有哪些?

    TF卡和SD卡在物理尺寸和一些应用领域上存在差异,但在技术规格上,特别是MicroSD卡,它们之间的差异相对较小。选择TF卡还是SD卡通常取决于设备的兼容性和用户的需求。
    的头像 发表于 01-18 09:17 9942次阅读
    <b class='flag-5'>TF</b>卡和SD卡的区别有哪些?

    什么是SD NAND存储芯片? SD NAND与TF卡的区别

    什么是SD NAND?它俗称贴片式T卡,贴片式TF卡,贴片式SD卡,贴片式内存卡,贴片式闪存卡,贴片式卡...等等。虽然SD NAND 和TF卡称呼上有些类似,但是SD NAND和TF卡有着本质上的区别。
    的头像 发表于 01-06 14:35 1662次阅读
    什么是SD NAND存储芯片? SD NAND与<b class='flag-5'>TF</b>卡的区别

    SD/TF卡的速度等级,如何读懂TF的速度标识

    SD/TF卡的速度等级下图是SD协会的速度等级图,从图中可以看出不同的符号对应的速度等级信息。如何读懂TF的丝印标识以MK-米客方德工业级TF卡为例:U3:UHS速度等级可达30M/s,U1和U3
    的头像 发表于 01-02 16:38 1w次阅读
    SD/<b class='flag-5'>TF</b>卡的速度等级,如何读懂<b class='flag-5'>TF</b>的速度标识

    深入理解BigBird的块稀疏高效实现方案

    RoBERTa 架构的 BigBird 模型现已集成入 transformers 中。本文的目的是让读者 深入 了解 BigBird 的实现,并让读者能在 transformers 中轻松
    的头像 发表于 11-29 11:02 526次阅读
    深入理解BigBird的块稀疏高效<b class='flag-5'>实现</b>方案