知行编程网知行编程网  2022-06-02 14:00 知行编程网 隐藏边栏 |   抢沙发  62 
文章评分 0 次,平均分 0.0

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

来自 | 知乎  作者 | Flitter
链接 | https://zhuanlan.zhihu.com/p/129316415
编辑 | 深度学习这件小事
本文仅作学术交流,如有侵权,请联系删除

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

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

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

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



2. decoder 的输入输出不同
在 Bahdanau Attention 机制中,decoder 在第 t 步时,输入是由注意力  与前一步的 hidden state  拼接(concatenate)得出的,得到第 t 步的 hidden state  并直接输出  。而 Luong Attention 机制在 decoder 部分建立了一层额外的网络结构,以注意力  与原 decoder 第 t 步的 hidden state  拼接作为输入,得到第 t 步的 hidden state  并输出  。
一文看懂 Bahdanau 和 Luong 两种 Attention 机制的区别
decoder 部分第二层第 t 步的状态会作为第一层第 t+1 步的输入

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

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

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

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

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

参考链接

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


<pre style="letter-spacing: 0.544px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="max-width: 100%;letter-spacing: 0.544px;white-space: normal;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong>完<strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong></span></strong></span></strong></p><section style="max-width: 100%;letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section><p style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">有你的学校吗?2020软科中国大学排名发布!</p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">GitHub重大更新:在线开发上线,是时候卸载IDE了</span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">李沐团队半年离开六人,MxNet是否英雄落幕?<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"  /></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="color: rgb(87, 107, 149);-webkit-tap-highlight-color: rgba(0, 0, 0, 0);cursor: pointer;max-width: 100%;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">史上最烂的项目:苦撑12年,600多万行代码...</span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">一文概览2D人体姿态估计</p></section></section></section></section></section></section></section></section>
一文看懂 Bahdanau 和 Luong 两种 Attention 机制的区别

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享