TabTransformer:借助Transformer的预训练机制处理表格数据

研究动机

表格数据是推荐系统,线上广告,画像优化等领域中最为常见的数据形式。此前对表格数据的建模主要集中于基于梯度提升的树模型,比如GBDT,这与图像和文本数据依赖深度学习差异明显。但是树模型有如下问题:

  1. 无法对图像和文本进行编码
  2. 半监督学习中表现不佳
  3. 对缺失值和噪声的处理能力以及健壮性一般

如果使用多层感知机,会存在另外一些问题:

  1. 模型以及学习所得的向量缺乏可解释性
  2. 对缺失值和噪声不够健壮
  3. 半监督学习中表现不佳
  4. 多层感知机在大部分数据集的表现不如树模型

解决的问题

TabTransformer是用来解决基于多层感知机和深度学习模型的问题,并缩短多层感知机与树模型的表现差距,同时基于实验提出了TabTransformer的表现增益(performance gain)。总结起来有4点:

  1. 性能优于多层感知机和深度学习模型
  2. 能够基于上下文信息生成可解释的向量
  3. 对缺失值和噪声更为健壮
  4. 针对表格数据,将预训练及针对具体任务的训练步骤拆开,使其具有更优秀的半监督学习能力

所提的方法

基于Transformer,首先为离散特征进行特征编码,然后将编码结果传入Transformer,之后输出离散特征的向量化结果,并将该结果与连续特征归一化后的向量化结果进行拼接,作为多层感知机的输入,最终输出结果。分类任务的损失函数为交叉熵,回归任务的损失函数为均方误差。

Transformer的结构

离散特征列编码是TabTransformer中非常重要的一个部分,作者构建了一个向量查询表,用于查询离散特征列 i i i对应的向量 e ϕ i ( . ) e_{\phi_i}(.) eϕi(.)。列 i i i如果一共具有 d i d_i di个种类,则 e ϕ i ( . ) e_{\phi_i}(.) eϕi(.)则为 ( d i + 1 ) (d_i+1) (di+1)维向量,多出来的一位用来表示缺失值。每一维的向量值 x j x_j xj记作 e ϕ i ( j ) = [ c ϕ i , w ϕ i j ] e_{\phi_i}(j)=[c_{\phi_i}, w_{\phi_{ij}}] eϕi(j)=[cϕi,wϕij],其中 c ϕ i ∈ R l c_{\phi_i} \in \mathbb {R^l} cϕiRl w ϕ i j ∈ R d − l w_{\phi_{ij}}\in \mathbb {R^{d-l}} wϕijRdl,这里的 l l l是超参数,唯一标识符 c ϕ i c_{\phi_i} cϕi则是用来将列 i i i中的类别与其他列中的类别区分开。

唯一标识符是专为表格数据设计的。在传统的针对语言建模的Transformer中,每个词的向量值都会被加上一个位置编码值以反映其在句子中的位置,但在表格数据中,特征间并没有位置关系,因此引入了唯一标识符。

向量预训练针对标签并不充足的半监督学习场景,有掩码语言建模(MLM)和替换标记检测(RTD)两种。对于离散特征 x c a t = { x 1 , x 2 , . . . , x m } x_{cat}=\{x_1, x_2, ..., x_m\} xcat={x1,x2,...,xm},MLM随机选取 k % k\% k%的特征将其掩盖。之后通过最小化交叉熵损失,将Transformer训练成一个多分类的分类器,使其可以预测被掩盖的特征列的原始数据。不同于MLM掩盖原始特征的方式,RTD将原始特征值替换为一个随机值,之后通过二分类判断该列是否被替换为随机值。由于表格数据中特征列的类别取值范围往往有限,并且每个被随机替换的列都会有一个单独的二分类分类器,因此随机值并不需要使用辅助生成器生成。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值