一文看懂 Bahdanau 和 Luong 两种 Attention 机制的区别

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

来自 | 知乎  作者 | Flitter

链接 | https://zhuanlan.zhihu.com/p/129316415

本文仅作学术交流,如有侵权,请联系删除

Attention 机制作为近年来自然处理领域最重要的理念之一,在许多 NLP 子领域中得到了广泛应用。以注意力机制为核心的 Transformer、BERT、GPT 等模型也在各类任务 benchmark 不断屠榜。其中,Luong Attention 和 Bahdanau Attention 是最经典的两种注意力机制。二者在理念上大致相同,但在实现细节上存在许多区别。

0d5b4866a4cdfd71d6de7121fed11127.jpeg

简单来说,Luong Attention 相较 Bahdanau Attention 主要有以下几点区别:

1. 注意力的计算方式不同
在 Luong Attention 机制中,第 t 步的注意力 outside_default.png 是由 decoder 第 t 步的 hidden state outside_default.png 与 encoder 中的每一个 hidden state outside_default.png 加权计算得出的。而在 Bahdanau Attention 机制中,第 t 步的注意力 outside_default.png 是由 decoder 第 t-1 步的 hidden state outside_default.png 与 encoder 中的每一个 hidden state outside_default.png 加权计算得出的。

2. decoder 的输入输出不同
在 Bahdanau Attention 机制中,decoder 在第 t 步时,输入是由注意力 outside_default.png 与前一步的 hidden state outside_default.png 拼接(concatenate)得出的,得到第 t 步的 hidden state outside_default.png 并直接输出 outside_default.png 。而 Luong Attention 机制在 decoder 部分建立了一层额外的网络结构,以注意力 outside_default.png 与原 decoder 第 t 步的 hidden state outside_default.png 拼接作为输入,得到第 t 步的 hidden state outside_default.png 并输出 outside_default.png 。

c6af7cfb04fe5736753c728cc0fda68a.jpeg
decoder 部分第二层第 t 步的状态会作为第一层第 t+1 步的输入

总结一下,Bahdanau Attention 机制的计算流程为 outside_default.png ,而 Luong attention 机制的计算流程为 outside_default.png 。相较而言, Luong attention 机制中的 decoder 在每一步使用当前步(而非前一步)的 hidden state 来计算注意力,从逻辑上更自然,但需要使用一层额外的 RNN decoder 来计算输出。

此外,Bahdanau Attention 机制的论文中只尝试了使用 concat 作为对齐函数,而 Luong Attention 机制的论文在多种对齐函数上做了实验。

根据计算区域的大小,可以将对齐函数分为全局注意力(Global Attention)和局部注意力(Local Attention)两种机制。全局注意力模式会将 encoder 的每一步 hidden state 进行注意力计算,而局部注意力模式则计算部分范围的 hidden state。

根据所用信息,可以分为基于内容的对齐和基于位置的对齐。前者同时考虑了 encoder 的 hidden state outside_default.png 和当前步 decoder 的 hidden state outside_default.png,而后者只考虑当前步 decoder 的 hidden state outside_default.png

c65239f817194889db4f27291bfb5c3d.jpeg

参考链接

1. Neural Machine Translation by Jointly Learning to Align and Translate: https://arxiv.org/abs/1409.0473

2. Effective Approaches to Attention-based Neural Machine Translation: https://arxiv.org/abs/1508.04025

3. Attention Variants: http://cnyah.com/2017/08/01/attention-variants/

4. BahdanauAttention与LuongAttention注意力机制简介-CSDN博客: https://blog.csdn.net/u010960155/article/details/82853632

5. 胡文星:seq2seq中的两种attention机制(图+公式): https://zhuanlan.zhihu.com/p/70905983

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

d7379e8b43f2dcf41d5b143d61f3b5fd.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值