TabR:检索增强能否让深度学习在表格数据上超过梯度增强模型?

这是一篇7月新发布的论文,他提出了使用自然语言处理的检索增强Retrieval Augmented技术,目的是让深度学习在表格数据上超过梯度增强模型。

检索增强一直是NLP中研究的一个方向,但是引入了检索增强的表格深度学习模型在当前实现与非基于检索的模型相比几乎没有改进。所以论文作者提出了一个新的TabR模型,模型通过增加一个类似注意力的检索组件来改进现有模型。据说,这种注意力机制的细节可以显著提高表格数据任务的性能。TabR模型在表格数据上的平均性能优于其他DL模型,在几个数据集上设置了新的标准,在某些情况下甚至超过了GBDT模型,特别是在通常被视为GBDT友好的数据集上。

TabR

表格数据集通常被表示为特征和标签对{(xi, yi)},其中xi和yi分别是第i个对象的特征和标签。一般有三种类型的主要任务:二元分类、多类分类和回归。

对于表格数据我们会将数据集分为训练部分、验证部分和测试部分,模型对“输入”或“目标”对象进行预测。当使用检索技术时,检索是在一组“上下文候选”或“候选”中完成的,被检索的对象称为“上下文对象”或简称为“上下文”。同一组候选对象用于所有输入对象。

论文的实验设置涉及调优和评估协议,其中需要超参数调优和基于验证集性能的早期停止。然后在15个随机种子的平均测试集上测试最佳超参数,并在算法比较中考虑标准偏差。

论文作者的目标是将检索功能集成到传统的前馈网络中。该过程包括通过编码器传递目标对象及其上下文候选者,然后检索组件会对目标对象进行的表示,最后预测器进行预测。

编码器和预测器模块很简单简单,因为它们不是工作的重点。检索模块对目标对象的表示以及候选对象的表示和标签进行操作。这个模块可以看作是注意力机制的一般化版本。

这个过程包括几个步骤:

  • 如果编码器包含至少一个块,则将表示进行规范化;
  • 根据与目标对象的相似性定义上下文对象;
  • 基于softmax函数对上下文对象的相似性分配权重;
  • 定义上下文对象的值;
  • 使用值和权重输出加权聚合。

上下文大小设置为一个较大的值96,softmax函数会自动选择有效的上下文大小。

检索模块是最重要的部分

作者探讨了检索模块的不同实现,特别是相似度模块和值模块。并且说明了是通过一下几个步骤得到最终的模型。

1、作者评估了传统注意力的相似性和值模块,发现该配置与多层感知器(MLP)相似,因此不能证明使用检索组件是合理的。

2、然后他们将上下文标签添加到值模块中,但发现这并没有改进,这表明传统注意力的相似性模块可能是瓶颈。

3、为了改进相似度模块,作者删除了查询的概念,并用L2距离替换点积。这种调整使得几个数据集上性能的显著跃升。

4、值模块也进行改进,灵感来自最近提出的DNNR(用于回归问题的kNN算法的广义版本)。新的值模块带来了进一步的性能改进。

5、最后,作者创建模型TabR。在相似性模块中省略缩放项,不包括目标对象在其自身的上下文中(使用交叉注意),平均而言会得到更好的结果。

生成的TabR模型为基于检索的表格深度学习问题提供了一种健壮的方法。

作者也强调了TabR模型的两个主要局限性:

与所有检索增强模型一样,从应用程序的角度来看,使用真实的训练对象进行预测可能会带来一些问题,例如隐私和道德问题。

TabR的检索组件虽然比以前的工作更有效,但会产生明显的开销。所以它可能无法有效地扩展以处理真正的大型数据集。

实验结果

作者将TabR与现有的检索增强解决方案和最先进的参数模型进行比较。除了完全配置的TabR,他们还使用了一个简化版本,TabR- s,它不使用特征嵌入,只有一个线性编码器和一个块预测器。

与全参数深度学习模型的比较表明,TabR在几个数据集上优于大多数模型,除了MI数据集,在其他数据集也很有竞争力。在许多数据集上,它比多层感知器(MLP)提供了显著的提升。

与GBDT模型相比,调整后的TabR在几个数据集上也有明显的改进,并且在其他数据集上保持竞争力(除了MI数据集),并且TabR的平均表现也优于GBDT模型。

总之,TabR将自己确立为表格数据问题的强大深度学习解决方案,展示了强大的平均性能,并在几个数据集上设置了新的基准。它的基于检索的方法具有良好的潜力,并且在某些数据集上可以明显优于梯度增强的决策树。

一些研究

1、冻结上下文以更快地训练TabR

在TabR的原始实现中,由于需要对所有候选对象进行编码并计算每个训练批次的相似度,因此在大型数据集上的训练可能很慢。作者提到在完整的“Weather prediction”数据集上训练一个TabR需要18个多小时,该数据集有300多万个对象。

作者注意到在训练过程中,平均训练对象的上下文(即,根据相似度模块S,前m个候选对象及其分布)趋于稳定,这为优化提供了机会。在一定数量的epoch之后,他们提出了一个“上下文冻结”,即最后一次计算所有训练对象的最新上下文,然后在其余的训练中重用。

这种简单的技术可以加速TabR的训练,并且不会在指标上造成重大损失。在上面提到的完整的“Weather prediction”数据集上,它使速度提高了近7倍(将训练时间从18小时9分钟减少到3小时15分钟),同时仍然保持有竞争力的均方根误差(RMSE)值。

2、用新的训练数据更新TabR不需要再训练(初步探索)

在现实世界的场景中,在机器学习模型已经训练完之后,通常会收到新的、看不见的训练数据。作者测试了TabR在不需要再训练的情况下合并新数据的能力,方法是将新数据添加到候选检索集中。

他们使用完整的“Weather prediction”数据集进行了这个测试。结果表明在线更新可以有效地将新数据整合到训练好的TabR模型中。这种方法可以通过在数据子集上训练模型并从完整数据集中检索模型来将TabR扩展到更大的数据集。

3、使用检索组件增强XGBoost

作者试图通过结合类似于TabR中的检索组件来提高XGBoost的性能。这种方法涉及在原始特征空间中找到与给定输入对象最接近的96个训练对象(匹配TabR的上下文大小)。然后对这些最近邻的特征和标签进行平均,将标签按原样用于回归任务,并将其转换为用于分类任务的单一编码。

将这些平均数据与目标对象的特征和标签连接起来,形成XGBoost的新输入向量。但是该策略并没有显著提高XGBoost的性能。试图改变邻居的数量也没有产生任何显著的改善。

总结

深度学习模型在表格类数据上一直没有超越梯度增强模型,TabR还在这个方向继续努力。

如果你对他感兴趣,一下是论文和源代码:

https://avoid.overfit.cn/post/9e8cc5f506af4b368516876e108a62c7

作者:Andrew Lukyanenko

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/62894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker入门——保姆级

Docker概述 ​ —— Notes from WAX through KuangShen 准确来说,这是一篇学习笔记!!! Docker为什么出现 一款产品:开发—上线 两套环境!应用环境如何铜鼓? 开发 – 运维。避免“在我的电脑…

QGraphicsView实现简易地图3『局部加载-地图缩放』

前文链接:QGraphicsView实现简易地图2『瓦片经纬度』 第一篇文章提到过,当地图层级较大时,暴力全加载地图会造成程序卡顿,因此需要实现地图的局部加载。 实现思路:以地图窗口(以下称为视口)为地…

如何搭建WordPress博客网站,并且发布至公网上?

如何搭建WordPress博客网站,并且发布至公网上? 文章目录 如何搭建WordPress博客网站,并且发布至公网上?概述前置准备1 安装数据库管理工具1.1 安装图形图数据库管理工具,SQL_Front 2 创建一个新数据库2.1 创建数据库2.…

(树) 剑指 Offer 32 - III. 从上到下打印二叉树 III ——【Leetcode每日一题】

❓剑指 Offer 32 - III. 从上到下打印二叉树 III 难度:中等 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推…

langchain-ChatGLM源码阅读:参数设置

文章目录 上下文关联对话轮数向量匹配 top k控制生成质量的参数参数设置心得 上下文关联 上下文关联相关参数: 知识相关度阈值score_threshold内容条数k是否启用上下文关联chunk_conent上下文最大长度chunk_size 其主要作用是在所在文档中扩展与当前query相似度较高…

0基础学习VR全景平台篇 第78篇:全景相机-拍摄VR全景

新手入门圆周率科技,成立于2012年,是中国最早投身嵌入式全景算法研发的团队之一,亦是全球市场占有率最大的全景算法供应商。相继推出一体化智能屏、支持一键高清全景直播的智慧全景相机--Pilot Era和Pilot One,为用户带来实时畅享…

wordpress 打开缓慢处理

gravatar.com 头像网站被墙 追踪发现请求头像时长为21秒 解决方案一 不推荐,容易失效,网址要是要稳定为主,宁愿头像显示异常,也不能网址打不开 网上大部分搜索到的替换的CDN网址都过期了,例如:gravatar.du…

LangChain+ChatGLM整合LLaMa模型(二)

开源大模型语言LLaMa LLaMa模型GitHub地址添加LLaMa模型配置启用LLaMa模型 LangChainChatGLM大模型应用落地实践(一) LLaMa模型GitHub地址 git lfs clone https://huggingface.co/huggyllama/llama-7b添加LLaMa模型配置 在Langchain-ChatGLM/configs/m…

Python读取及生成pb文件,pb与jsonStr互转,pb与dictJson互转,打包.exe/.sh并转换,很完美跨平台

Python读取及生成pb文件,pb与jsonStr互转,pb与dictJson互转,打包.exe/.sh并转换,很完美跨平台 1. 效果图2. 命令行:proto文件转.class(绝对路径或相对路径)3. 序列化、反序列化api4. pb转json&a…

Python爬虫异常处理心得:应对网络故障和资源消耗

作为一名专业的爬虫代理,我知道在爬取数据的过程中,遇到网络故障和资源消耗问题是再正常不过了。今天,我将与大家分享一些关于如何处理这些异常情况的心得和技巧。不论你是在处理网络不稳定还是资源消耗过大的问题,这些技巧能够帮…

聊聊 Docker 和 Dockerfile

目录 一、前言 二、了解Dockerfile 三、Dockerfile 指令 四、多阶段构建 五、Dockerfile 高级用法 六、小结 一、前言 对于开发人员来说,会Docker而不知道Dockerfile等于不会Docker,上一篇文章带大家学习了Docker的基本使用方法:《一文…

vue 老项目 npm install 报错Python,c++等相关错误

​​​ 老项目npm install 下载依赖包报错 解决方法: //下载python 1、 npm install --global --production windows-build-tools//配置环境 : 也可暂时不用配置,能用就不用配置(npm config set python "D:\Python27\python.exe&q…

一键开启ChatGPT“危险发言”

‍ ‍ 大数据文摘授权转载自学术头条 作者:Hazel Yan 编辑:佩奇 随着大模型技术的普及,AI 聊天机器人已成为社交娱乐、客户服务和教育辅助的常见工具之一。 然而,不安全的 AI 聊天机器人可能会被部分人用于传播虚假信息、操纵舆…

8.7工作总结

一、我们想自定义一个titileBar出现如下这种情况,发现他原来的titileBar还未隐藏。 后来我尝试修改主题使得他没有主题noActionBar发现也不行,后来我参考原先我看过的项目使用了如下代码 this.getActionBar().hide();发现会报这个错误java.lang.NullPoi…

HTTPS-RSA握手

RSA握手过程 HTTPS采用了公钥加密和对称加密结合的方式进行数据加密和解密 RSA握手是HTTPS连接建立过程中的一个关键步骤,用于确保通信双方的身份验证和生成对称加密所需的密钥 通过RSA握手过程,客户端和服务器可以协商出一个共享的对称密钥,…

使用pg_prewarm缓存PostgreSQL数据库表

pg_prewarm pg_prewarm 直接利用系统缓存的代码,对操作系统发出异步prefetch请求,在应用中,尤其在OLAP的情况下,对于大表的分析等等是非常耗费查询的时间的,而即使我们使用select table的方式,这张表也并不可能将所有…

SpringCloud实用篇1——eureka注册中心 Ribbon负载均衡原理 nacos注册中心

目录 1 微服务1.1 微服务的演变1.2 微服务1.3 SpringCloud1.4 小结 2 服务拆分及远程调用2.1 服务拆分2.2 服务拆分案例2.3 实现远程调用2.4 提供者与消费者 3 Eureka注册中心3.1 Eureka的结构和作用3.2 搭建eureka-server3.3 服务注册3.4 服务发现 4 Ribbon负载均衡4.1 负载均…

rust基础

这是笔者学习rust的学习笔记(如有谬误,请君轻喷) 参考视频: https://www.bilibili.com/video/BV1hp4y1k7SV参考书籍:rust程序设计语言:https://rust.bootcss.com/title-page.htmlmarkdown地址:h…

【雕爷学编程】Arduino动手做(192)---Air724UG Cat1 物联网4G模块2

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

坐标转换-使用geotools读取和转换地理空间表的坐标系(sqlserver、postgresql)

前言: 业务上通过GIS软件将空间数据导入到数据库时,因为不同的数据来源和软件设置,可能导入到数据库的空间表坐标系是各种各样的。 如果要把数据库空间表发布到geoserver并且统一坐标系,只是在geoserver单纯的设置坐标系只是改了…
最新文章