计算机系统应用教程网站

网站首页 > 技术文章 正文

ICML 2021 Long Oral | 顺序不可知的交叉熵函数

btikc 2024-09-02 17:10:05 技术文章 10 ℃ 0 评论


?PaperWeekly 原创 · 作者 | 张一帆

学校 | 华南理工大学本科生

研究方向 | CV,Causality

本文针对非自回归翻译模型提出了一个新的损失函数:order-agnostic cross entropy(OAXE),这种交叉熵损失函数忽略了词与词的顺序,将 NAT 看成了一个集合预测的问题,基于模型预测和目标标签之间的最佳可能对齐计算交叉熵损失。

为了解决由于次序忽略带来的问题,文中提出了使用交叉熵损失 pretrain 模型再使用 OAXE finetune 以及对 confidence 较小的预测进行截断两种正则化的策略,极大的提高了翻译的性能。

论文标题:

Order-Agnostic Cross Entropy for Non-Autoregressive Machine Translation

论文链接:

https://arxiv.org/abs/2106.05093

代码链接:

https://github.com/tencent-ailab/ICML21_OAXE

Methodology

先来直观地看一下本文的损失函数和已有的 loss 有什么本质的区别。传统的交叉熵损失对每一个错误的词序都会引入惩罚,之前的工作AXE会对词进行单调的对齐,而本文直接找最优的对齐方式。

那么我们将传统的交叉熵损失写为:

本文提出的 loss 其实很简单:

其中 是我们的排序空间, 是其中一种对预测词排序的策略,对于一个长度为 的预测,可以找到 种不同的排序,因此如何计算这个损失是个问题。在本文中,作者将该问题简化为了二分图匹配,对预测出的每个位置和目标词汇之间进行二分图匹配。

Training

2.1 Avoiding Invalid Orderings via XE Initialization

如果我们直接使用 OAXE loss 进行训练,那么显然会丢失掉词序信息,文中有两种策略缓解这个问题:

  1. 我们先使用 XE loss 训练一个模型,然后使用 OAXE 进行微调,这样 XE loss 其实已经学到了不错的词序信息。
  2. 第二种方法是将 XE 和 OAXE 根据一个加权因子进行结合,这个权重随着时间变化逐渐趋于 0。

2.2 Dropping Invalid Predictions via Loss Truncation

即使使用 XE 来初始化,也还是会产生一些例如“I apple have”之类的语句,作者根据置信度进行截断,其中截断参数 是根据验证集进行寻找的。

只反向传播概率高于 margin 的词,这使得模型倾向于只学习有信心的预测。

Experiments

作者在 6 个数据集上进行了实验,均采取了句子级别的 distillation,baseline 为 CMLM。

3.1 不同的OAXE引入策略

上述提到了两种防止次序信息丢失的方法,从实验中可以得到,从 XE 预训练的模型开始引入 OAXE 得到的效果最好。

3.2 与SOTA的比较

CMLM 是之前的 SOTA,如果在输出端经过足够多次数的 refinement,CMLM 可以在 WMT14 EN-DE 上得到 27 左右的 BLUE,只有一次 refinement 的话只有 18.3,但是通过 OAXE 进行 fine-tune,可以使得其获得超过 7 个点的提升。

3.3 Raw Data

上面说到了,现在 NAT 都采用了句子级别的 distillation 来减少训练数据的多样性,从而提升模型的性能。在 raw data 上,OAXE 带来了更大的提升,即使使用raw data,其也比 cmlm 强。

除此之外文章还做了对于多样性,词序和句子长度相关的实验,相比于 XE,OAXE 在文中涉及的所有 metric 种均带来了巨大的提升。

Conclusion

XE 是一个典型的 token-level 的损失函数,相比较而言,OAXE 虽然依然是交叉熵,但是更像是 sentence-level 的损失函数,因此它已经和单个词的位置没有关系了,更多的 focus 在句子的语义上。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表