本文是对《Attention Calibration for Transformer in Neural Machine Translation》一文的浅显翻译与理解,如有侵权即刻删除。

更多相关文章,请移步:
文献阅读总结:自然语言处理

文章目录

  • Title
  • 总结
    • 1 背景
    • 2 掩码扰动
    • 3 权重校准
    • 4 训练

Title

《Attention Calibration for Transformer in Neural Machine Translation》

——ACL2021

Author: 卢宇

总结

文章认为基于transformer架构的方法在自然语言处理领域已经广泛使用,但其内部的attention机制是否能够有效捕捉到输入的决定性位置还有待商榷。因此,文章设置了攻击器,通过对注意力层的权重进行掩码,试图通过最少量掩码来得到最大化效果降低来攻击注意力权重的分配。而后,对注意力权重进行校准,使其尽可能集中于决定性的输入位置。

1 背景

文章目的在于重新校准注意力的权重分配,并举例说明了原始注意力权重学习的不稳定性:

注意到,在给定目标词“in”后,注意力权重可以发现“countryside”是其决定性输入,对于这一正确的判断,算法可以进一步加强其权重。而当给定目标词“death”后,传统的注意力却将权重分配给了,对于这一错误的判断,算法可以对权重进行校准,将更多的权重分配给“traffic”和“interruption”。

该算法完全采用了transformer的架构,对于每一层的自注意力机制,给出了简单介绍:

对于给定的输入h,首先将其映射为键向量Key和值向量Value,在第t个位置,再将前一层的隐藏状态映射为查询向量q_t,用q来查询K作为权重,并与得到的V相乘,就得到了经由注意力加权后的结果。

整个模型由两部分组成,首先是对注意力权重的掩码扰乱,而后是对注意力权重的校准,其流程如下:

2 掩码扰动

掩码扰动的目的在于,通过尽可能小幅度的掩码,来造成最大化的效果下降,即攻击注意力机制的最薄弱部分。对于任意位置,经过掩码扰动后的注意力权重可计为:

其中,u_0为均匀分布,而m_t即为第t层的保留幅度。m_t越小,意味着对该位置的掩码扰动越大。这一掩码幅度也是通过注意力权重计算的:

与基本的注意力层不同的是,此时的权重要通过矩阵W的再次加权,换言之可以理解为建立在注意力上的注意力权重。掩码部分损失函数如下:

前一部分即基础模型面向机器翻译预测任务的损失函数,区别在于其权重是掩码后的结果。该部分的结果加了符号,目的即使得掩码后的结果尽可能差。后一部分为罚项,是约束掩码的幅度尽可能小,即:

这一优化目标对应上文,试图以尽可能小的掩码幅度来最大化降低模型效果。换言之,就达到了攻击注意力机制最薄弱部分的目的。在实际过程中,如果扰动到了重要的词,那么翻译效果下降,如果扰动掉了干扰词(也就是修正了原来的attention分数),那么翻译效果上升。

3 权重校准

该部分会对注意力的权重进行重新校准,使得其尽可能集中于个别的几个决定性位置。在上文用掩码扰动后,会根据掩码幅度来重新校准权重如下:

事实上,掩码扰动的优化过程中,越薄弱的地方会得到越小的保留幅度,即掩码扰动越大,那么对该位置的校准权重也应当越大。换言之,在优化时,越重要的关键性位置,越容易得到掩码,而掩码扰动越大(即保留幅度越小),就意味着该位置对最终效果的贡献越大。因此,就应当进一步增强该位置的权重,使其得到更多关注。

而后,会将原始权重和校准权重进行结合,得到最终的注意力权重。文章结合的方式有三种,分别为固定权重加和,退火学习,门控机制。其公式如下:


固定权重加和即为校准权重分配一个参数,控制校准权重的参与比例。退火学习指的是掩码扰动在训练初期效果可能较差,随着步数的增加,校准权重的参与比例会越来越大。门控机制即构建一个门控g,通过可学习的参数W和b来动态控制原始权重和校准权重的参与比例。

4 训练

文章提到,基础模型(即NMT机器翻译任务目标)和扰动模型是同时训练的,其损失函数如下:

注意到,此处使用的权重是结合后的权重,即模型在训练过程中,一边扰动和校准权重,一边将结合后的权重再次优化。

此外,文章除了基本的实验对比外,还讨论了两个问题:(1)什么样的注意力权重需要被校准?是浅层还是深层?是低交叉熵还是高交叉熵?(2)校准后的权重是更集中了还是更平均了?文章结合具体实验现象分析,详细讨论了这两个问题,在此不再赘述。

文献阅读(60)ACL2021-Attention Calibration for Transformer in Neural Machine Translation相关推荐

  1. [文献阅读]—Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation

    前言 论文地址:https://arxiv.org/pdf/1611.04558v1.pdf 代码地址:无233 前人工作&存在问题 前人实现multilingual NMT的方法: 为每一个 ...

  2. 论文阅读(三):Text2Sign: Towards Sign Language Production using Neural Machine Translation and GAN

    Abstract 概述:我们提出了一种新的方法,利用最近的发展神经机器翻译(NMT),生成对抗性网络(GANs)和运动生成来生成手语.我们的系统能够从口语句子中生成手语视频.与当前依赖于大量注释数据的 ...

  3. [论文阅读]Neural Machine Translation By Jointly Learning to Align and Translate

    文章目录 前言 摘要 一.神经机器翻译 1.机器翻译 2.基于RNN的Encoder-Decoder架构 二.文章贡献 三.模型架构 1.译码器:整体概述 2.编码器:用于注释序列的双向RNN 四.实 ...

  4. Attention Focusing for Neural Machine Translation by Bridging Source and Target Embeddings 论文总结

    Attention Focusing for Neural Machine Translation by Bridging Source and Target Embeddings 论文总结 该文是阅 ...

  5. 《Neural Machine Translation by Jointly Learning to Align and Translate》阅读笔记

    个人总结 本文最大贡献是提出了注意力机制,相比于之前 NMT(Neural Machine Translation) 把整个句子压缩成一个固定向量表示的方法,对不同位置的目标单词计算每个输入的不同权重 ...

  6. 基于PyTorch实现Seq2Seq + Attention的英汉Neural Machine Translation

    NMT(Neural Machine Translation)基于神经网络的机器翻译模型效果越来越好,还记得大学时代Google翻译效果还是差强人意,近些年来使用NMT后已基本能满足非特殊需求了.目前 ...

  7. 文献阅读笔记4——《Contrasting YOLOv5, Transformer, and EfficientDet Detectors...》

    <Contrasting YOLOv5, Transformer, and EfficientDet Detectors for Crop Circle Detection in Desert& ...

  8. 【文献阅读】Fashion-MNIST: a Novel Image Dataset for Benchmarking Machine Learning Algorithms

    文章目录 命名技巧: 项目目的: 数据源: 数据制作: 推荐阅读:数据制作 paper 地址:https://arxiv.org/abs/1708.07747 数据集下载:https://github ...

  9. [文献阅读]—一篇不错的低资源机器翻译综述(Neural Machine Translation for Low-Resource Languages: A Survey)

    文章目录 前言 时间线 技术 数据增强(data augmentation) 基于单词.短语替换的数据增强(坑1) 基于回译的数据增强 平行语料挖掘 无监督机器翻译(unsupervised NMT) ...

最新文章

  1. 阿里云面向企业效率的云上产品全解析——云呼叫中心
  2. jquery学习手记(5)对象
  3. mindspore学习之使用obsutil工具向桶中上传数据
  4. 输出cglib以及jdk动态代理产生的class文件
  5. 用pv操作描述如下前驱图_LinkedList实现分析(二)——常用操作
  6. MySQL中的SQL Mode及其作用
  7. Delphi的Hint(2)
  8. matplotlib—plt.pie绘制饼状图及参数详解
  9. 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第四章 2020-12-29 完整工程
  10. java pos58打印_POS58小票打印机
  11. Java新特性(一 · JDK1.5)
  12. 太极图php代码,如何实现太极图
  13. 研发人员需要什么知识和能力
  14. 实时头发-面部皮肤分割与人脸肤色分类
  15. python怎么念1001python怎么念-python 星号的使用
  16. 2022年起重机司机(限桥式起重机)考试试题模拟考试平台操作
  17. 【模拟电子技术基础】本章讨论问题答案2
  18. 民营企业的13种死法
  19. SAP 外包和外协业务的区别
  20. 教你轻松分清pandas中的axis=0,axis=1具体含义

热门文章

  1. c语言间接级别不同_一个超复杂的间接递归——C语言初学者代码中的常见错误与瑕疵(6)...
  2. 四大展会将“亮剑”义乌 谱写贸易交流新“篇章”
  3. 2020前端最新面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)(3年前端菜鸟级开发师含泪总结)
  4. 通过英文剧集、电影学单词的小工具
  5. 【代码】代码管理平台推荐
  6. 教你解决路由黑洞5招
  7. 中国运动鞋产业政府战略管理与区域发展战略研究咨询报告
  8. c语言 怎么对百位数求余量,数据结构(C语言版)
  9. 使用Linux版印象笔记nixnote2
  10. 印象笔记终于支持 Markdown 了