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

    文章

    3648

    浏览量

    51712
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73147
  • tensorflow
    +关注

    关注

    13

    文章

    331

    浏览量

    61854

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解锁存储密码:SD NAND、TF卡、SD卡的应用全景

    在数据洪流的时代,存储介质就如同数字世界的基石,支撑着各类设备的正常运转。SD NAND、TF卡和SD卡,虽同属NAND Flash存储介质家族,却因各自独特的“个性”,在不同领域绽放光彩。接下来
    的头像 发表于 10-29 14:24 214次阅读

    新洁能NCE65TF099:高频开关性能如何赋能不同产品应用?

    在当今快速发展的电子技术领域,高频开关性能已成为衡量功率器件性能的关键指标之一。新洁能凭借其卓越的高频开关性能,正在为各种产品应用带来前所未有的赋能与变革。本文将深入探讨新洁能NCE65TF
    的头像 发表于 10-20 16:21 559次阅读
    新洁能NCE65<b class='flag-5'>TF</b>099:高频开关性能如何赋能不同产品应用?

    什么是SD卡、TF卡写保护?写保护的常见原因

    部分SD卡、TF卡适配器或卡套上设有物理写保护开关,当开关滑动到"锁定"位置时,卡片会自动进入写保护状态。这是最常见也是最容易解决的写保护原因。
    的头像 发表于 06-10 00:00 3932次阅读
    什么是SD卡、<b class='flag-5'>TF</b>卡写保护?写保护的常见原因

    知识分享 | 评估模型架构——如何实现

    确保良好的模型架构对于开发安全和可靠的软件非常重要。本文为您介绍MES Model Examiner® (MXAM)如何优化模型架构,简化复杂度管理步骤,并最终提升软件质量。
    的头像 发表于 06-05 11:46 458次阅读
    知识分享 | 评估模型<b class='flag-5'>架构</b>——如何<b class='flag-5'>实现</b>?

    新颖实用电子设计与制作

    本文以丰富、翔实的内容详细介绍了日常生活中使用的20多类100余种实用电子线路,内容涉及报警、灯光、遥控、电话、充电、风扇、电源、节能、驱虫、开关等新颖电路。除阐述电路的结构特点、制作方法、元器件
    发表于 05-27 16:12

    产品使用 | 龙芯2K0300 TF卡启动与系统更新指南

    前言:龙芯2K0300蜂鸟开发板支持通过TF卡启动系统。相较于EMMC存储方案,TF卡具备灵活拆卸、便于镜像修改、不受存储容量限制等优势。本指南详细说明在Windows/Linux系统下制作TF
    的头像 发表于 05-23 08:32 682次阅读
    产品使用 | 龙芯2K0300 <b class='flag-5'>TF</b>卡启动与系统更新指南

    华强北TF卡回收 内存卡回收

    深圳帝欧电子求购内存SD卡2G,4G,8G,16G,32G,64G,128G,256G,512G......新卡,旧卡,拆机卡都有收,价高同行回收三星内存TF卡、金士顿TF卡、闪迪TF卡、东芝
    发表于 05-21 17:48

    基于RK3576开发板的TF卡槽使用说明

    RK3576开发板使用TF卡槽
    的头像 发表于 05-07 09:24 1442次阅读
    基于RK3576开发板的<b class='flag-5'>TF</b>卡槽使用说明

    三种蓝牙架构实现方案(蓝牙协议栈方案)

    蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协议栈,因此这个问题也可以这么阐述:蓝牙协议栈有哪些具体的架构方案?在蓝牙协议栈中,host是什么?controller是什
    的头像 发表于 04-08 15:35 1188次阅读
    三种蓝牙<b class='flag-5'>架构</b><b class='flag-5'>实现</b>方案(蓝牙协议栈方案)

    MCU采用STM32F407VGT6文件存在TF卡(SDIO),能否通过F4的USB把TF卡的txt和excel文件拷贝到U盘?

    新项目要求如下: 1.MCU采用STM32F407 2.TF卡采取SDIO驱动 3.每隔一端时间插U盘,F407自动把TF卡文件拷贝到U盘里面 请问能否实现TF里面文件移动到U盘?
    发表于 03-11 08:27

    大研智造激光焊锡机:突破TF卡FPC延长线焊接困境

    在当今数字化飞速发展的时代,电子设备已经深度融入人们生活的方方面面。从智能手机、平板电脑到各类智能穿戴设备、车载导航系统,数据存储与传输起着关键作用。TF 卡(TransFlash Card),作为
    的头像 发表于 02-06 11:37 601次阅读

    SD卡座和TF卡座作为电子设备中的储存卡槽两者各有哪些特点

    SD卡座和TF卡座作为现代电子设备中不可或缺的存储接口,各自具备独特的特点和适用场景。在深入探讨这两者之间的区别之前,连欣科技认为首先需要了解它们的基本概念。SD卡座是专门为SD卡设计的卡槽,而TF
    的头像 发表于 01-14 15:06 3647次阅读
    SD卡座和<b class='flag-5'>TF</b>卡座作为电子设备中的储存卡槽两者各有哪些特点

    ElfBoard技术贴|如何通过TF卡启动ELF 2学习板

    在数字多媒体的广阔应用领域中,RK3588处理器凭借其低功耗与高性能的卓越特性,正日益成为众多基于ARM架构设备的核心驱动力。然而,不容忽视的是,设备的启动方式对其整体性能表现及用户体验具有举足轻重
    的头像 发表于 01-10 10:53 2901次阅读
    ElfBoard技术贴|如何通过<b class='flag-5'>TF</b>卡启动ELF 2学习板

    tf卡与云存储的比较 tf卡的兼容性问题

    TF卡(通常指Micro SD卡)与云存储在数据存储领域各有其特点和优势,同时也存在一些差异。以下是两者之间的比较,以及关于TF卡兼容性问题的分析: 一、TF卡与云存储的比较 数据存储方式 :
    的头像 发表于 12-19 15:24 4309次阅读

    tf卡存储容量选择 tf卡的常见故障及解决方法

    TF卡存储容量选择 TF卡(TransFlash卡)是一种小型的存储卡,广泛应用于手机、相机、平板电脑等便携式设备中。选择合适的TF卡存储容量,需要考虑以下几个因素: 设备兼容性 :首先,需要确认你
    的头像 发表于 12-19 15:20 4314次阅读