作者:
(1)P Aditya Sreekar、亚马逊和这些作者对本文做出了同等贡献 {[email protected]};
(2)Sahil Verm、亚马逊和这些作者对本文做出了同等贡献 {[email protected];}
(3)Varun Madhavan,印度理工学院,Kharagpur。在亚马逊实习期间完成的工作{[email protected]};
(4)Abhishek Persad,亚马逊{[email protected]}。
在本节中,我们将在 2022 年运送的包裹数据集上展示 RCT 的性能。选择预测运输成本与实际运输成本之间的平均绝对误差 (MAE) 作为性能指标,因为它代表了货币形式的绝对误差。在本文中,MAE 值由第 0 天启发式估计的 MAE 归一化,以 MAE 百分比 (MAE%) 表示。该指标强调了相对于启发式基线所取得的改进。
4.1.1. 架构和超表
嵌入维度设置为 128,使用 6 个 Transformer 编码器层,每个编码器层有 16 个自注意力头。使用 Adam 优化器 (Kingma and Ba, 2014),起始学习率为 0.0001,批处理大小为 2048。为了提高收敛性,每次验证指标稳定时,学习率都会降低 0.7 倍。模型代码是使用 PyTorch (Prokhorenkova et al., 2018) 和 PyTorch Lightning (Falcon and The PyTorch Lightning team, 2019) 框架实现的。
4.1.2. 数据准备
训练数据集包含 1000 万个包裹,这些包裹是从 2022 年 45 天内运送的包裹中抽样而来的。数据经过了标签编码分类特征和标准化数值特征的预处理。测试数据集包含 2022 年在单独的、不重叠的一周内运送的所有包裹(未抽样)。
4.1.3. 基准方法
我们将 RCT 与各种复杂程度不断增加的模型的性能进行比较:GBDT、AWS AutoGluon(Erickson 等人,2020 年)、前馈神经网络、TabTransformer 和 FT-Transformer。对于 GBDT 模型,数值特征未标准化,并且使用目标编码(Micci-Barreca,2001)对分类特征进行编码,而不是标签编码。AWS AutoGluon 配置为学习 LightGBM(Ke 等人,2017 年)模型集合。使用包含 5 层的前馈神经网络,其输入由嵌入和连接维度、路线和服务特征生成。使用了 TabTransformer 和 FT-Transformer 的公开可用实现 [1],并且所有超参数都与 RCT 一致。由于基线不处理项目和费用的集合,因此我们仅使用维度、路线和服务特征。
表 1a 将 RCT 与第 4.1.3 节中讨论的基线模型进行了比较。表中的模型按模型复杂度的递增顺序排列。基于树的模型 GBDT 和 AutoGluon 都处于相似的水平。深度学习模型的表现始终优于基于树的模型,这表明所提出的架构对于运输成本预测是有效的。基于 Transformer 的模型的 MAE% 得分低于前馈神经网络,表明 Transformer 学习了有效的交互。RCT 模型的表现优于两种 Transformer 模型 - TabTransformer 和 FT-Transformer (SOTA),这表明编码费率卡潜在结构的自定义架构有助于提高性能。表 2 比较了不同模型大小下 FT-Transformer 和 RCT 模型的性能。结果表明,在所有测试的模型大小中,RCT 的表现都优于 FT-Transformer,表明编码费率卡结构可在不同的模型容量中提供性能优势。
事实证明,Transformer 在各种任务中都具有强大的表征学习能力。在本次实验中,我们研究了 RCT 学习到的费率卡表征的有效性。为了评估这一点,我们比较了使用和不使用学习到的费率卡表征作为输入特征的 GBT 模型的性能。
最后的 Transformer 层的池化输出被视为价目表的学习表示。添加此功能可将 GBDT 的性能提高 9.79%(参见表 1b)。此外,观察发现,即使删除所有手动设计的特征,GBDT 的性能仍然相当,MAE 百分比为 69.21%。这表明,价目表的学习表示不仅可以有效地捕获更好的特征信息,而且可以充分表示包装价目表。但是,即使有了这个特征,GBDT 的 MAE% 也比 RCT 高 13.5%。这可能是因为 RCT 是端到端训练的,而 GBDT 使用作为单独模型的一部分学习到的特征。
在第 4.2 节中,我们观察到前馈 (FF) 神经网络的表现不如 Transformer,这导致我们假设自注意力是一种更优秀的交互学习者。本节旨在进一步探索这一假设,利用 FF 代替自注意力来编码尺寸、路线和服务特征,同时将自注意力的宽度限制为仅限商品和费用特征。FF 和自注意力的输出编码被连接起来并输入到 FF 层以预测运费。随着自注意力宽度的减小,它无法捕捉到所有费率表特征之间的相互作用。与 RCT 的 55.72% 相比,结果模型的 MAE% 更高,为 64.73%。这些结果表明,与 Transformer 相比,FF 模型是较差的交互学习者。
在 3.2 节中,我们讨论了 Transformer 在特征聚合方面的出色表现,这得益于自注意力机制。本节将进行消融实验,分析注意力深度和注意力头数量的影响。增加注意力头的数量可以让模型学习到更多独立的特征交互。在本实验中,
模型容量固定为 128 维,因此增加 head 数量也会降低每个 head 学习到的交互的复杂性。因此,选择最佳 head 数量是在学习独立交互和每个学习到的交互的复杂性之间的权衡。可以在图 2a 中观察到这种权衡,其中性能从 4 个 head 提高到 16 个 head,因为每个 head 学习到的注意力足够复杂。然而,当注意力 head 从 16 个增加到 32 个时,性能会下降,因为 head 的复杂性大幅降低,抵消了学习更多独立交互的好处。
接下来,我们说明通过添加 Transformer 编码器层来增加注意力深度的效果。更深的 Transformer 网络可以学习更复杂的高阶交互,从而增强模型的性能,如图 2b 所示。但是,将层数从 6 增加到 12 会降低模型的性能,这是由于可学习参数数量的增加导致的过度拟合。过度拟合的证据可以在图 2b 中找到,其中从 6 层移动到 12 层时,训练和验证 MAE 之间的差距增加了 30%。
最后,在图 3 中,我们展示了使用算法 1 生成的热图。这些热图说明了每个特征作为前五个最受关注的特征的一部分被关注的次数。每列对应一个头,每行对应一个特征。左侧的热图是使用 nheads = 16 的 RCT 生成的,右侧的热图是使用 nheads = 4 生成的。比较这两个热图,可以看出图 3a 每列的活跃特征交互数量较少,证实了我们的假设,即注意力头数量越多,每个头学习特征之间的独立交互。
为了尽量降低实验成本,本文中的所有实验均使用 1000 万的训练数据集进行。但是,使用性能最佳的模型非常重要,可以增加训练数据集的大小以实现最佳性能。
为了验证 RCT 的可扩展性,我们在不同的训练数据集大小上训练了模型,并在图 4 中绘制了结果。结果表明,RCT 的性能随着数据集的增大而不断提高。因此,我们可以自信地预期,在更大的数据集上训练的模型将优于本文探讨的模型。
[1] https://github.com/lucidrains/tab-transformer-pytorc