注意力机制及其理解

> 注意力机制逐渐在NLP中得地位变得越来越重要,上有Google的"Attention is All You Need"论文,下有 Tranformer、BERT等强大的NLP表征模型,attention 在 NLP 的地位就像卷积层在图像识别一样变得不可缺少的一部分。在这里,总结下注意力机制,并回顾下最近的一些相关的研究进展。

什么是注意力机制

注意力机制就是对输入权重分配的关注,最开始使用到注意力机制是在编码器-解码器(encoder-decoder)中, 注意力机制通过对编码器所有时间步的隐藏状态做加权平均来得到下一层的输入变量:

编码器—解码器上的注意力机制

注意力机制的通用表达式可以写为:

$$\boldsymbol{O} = \text{softmax}(\boldsymbol{Q}\boldsymbol{K}^\top)\boldsymbol{V}$$

注意力机制广义上可以理解成一个由查询项矩阵 $\boldsymbol{Q}$ 和所对应的键项 $\boldsymbol{K}$ 和 需加权平均的值项 $\boldsymbol{V}$ 所构成的一层感知机(softmax求和)。

这里我们可以从两个视角来看:

  • 从工程学上理解 从工程学上简单理解,我们可以把注意力机制理解成从数据库(内存槽)Q中通过键K和值V得到输出O,由于V是输入,所以可以理解注意力机制的核心就是如何构建数据库Q和键值K的方法。

QKV内存类比图

  • 从算法上理解 从算法上来理解,我们可以把注意力机制和池化做类比,即卷积神经网络中的池化看成一种特殊的平均加权的注意力机制,或者说注意力机制是一种具有对输入分配偏好的通用池化方法(含参数的池化方法)。

从构建查询项看注意力机制

最早的Attention的提出

在最早提出注意力机制的论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,其主要是用来作翻译模型,解决翻译核对齐问题(论文采用了seq2seq+attention)。文中QK的计算表示:

{% raw %} $$\boldsymbol{c}{t'} = \sum{t=1}^T\alpha_{t' t}\boldsymbol{h}t$$ $$\alpha{t' t} = \text{softmax}(\sigma(\boldsymbol{s}_{t' - 1}, \boldsymbol{h}t))$$ $$\sigma(\boldsymbol{s}{t' - 1}, \boldsymbol{h}_t) = \boldsymbol{v}^\top \tanh(\boldsymbol{W}s \boldsymbol{s}{t' - 1} + \boldsymbol{W}_h \boldsymbol{h}_t)$$ {% endraw %}

$\boldsymbol{c}_{t'}$表示输出变量,$\boldsymbol{h}t$为隐藏层,{% raw %}$\alpha{t' t}${% endraw %}表示一个权重的概率分布,即QK得softmax值,这里得查询项矩阵Q采用了一个{% raw %}$\tanh(\boldsymbol{W}_s \boldsymbol{s} + \boldsymbol{W}_h \boldsymbol{h})${% endraw %},所以$\sigma$其本质在是一个单层的感知机。由于这种注意力机制由Bahdanau在seq2seq中正式提出,也叫循环注意力机制,更加$\sigma$函数即其参数不同我们可以把注意力机制分成多种形式。

最基础形态的注意力机制

QKV_1

从上面我们将注意力机制抽象出来即:

{% raw %} $$\bolds

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值