如何理解论文中常见的Attention机制

如今在CV和NLP领域,attention机制已经用的越来越广泛。然而很多学生在了解attention机制时,很容易搜索到文章《Attention is all you need》,从而去了解transformer中的self-attention。由于self attention的理解存在一定难度,而且与前期的attention方法并不相同。容易对在此学习进度的学生产生误导,本文在此简单解释一般Seq2Seq模型中所涉及的attention机制。

以常规的LAS(listen attend and spell)为例,其结构一般被认为由encoder decoder 和attention机制三部分组成。在encoder模块中,输入信息被处理为多个1*V的向量h_i,随后在decoder模块中,每个输入c_i并不是对应位置的encoder结果h_i ,从h_ic_i就是attention模块的意义。

 (此图出自李宏毅——自然语言处理课程PPT)

简单来说,attention就是看一遍全部的输入信息H,即h_1-h_n,随后根据当前的状态(在Seq2Seq任务中,一般为上一个节点的输出),对全部输入信息添加权重a_1-a_n,对所有输入信息作加权和,将结果作为当前状态的编码输入。

这样的好处是系统可以综合全部的已知信息进行处理,而不是像RNN或者LSTM一样,只能分析输出节点之前的已知数据,尤其在句子翻译、文本分类、句子续写等NLP常规任务中具有重要作用。举个例子,当你想要翻译 “我很喜欢狗,不过那是我小时候的事了,现在我更喜欢猫” 这句话时,使用RNN、LSTM网络很有可能会因为在输出 “我很喜欢狗” 时不能注意到后边的时间信息,从而在时态上出现错误,而Attention由于看到了全部的句子信息,就更可能翻译出争取的句子时态。

此外,由于Attention采用加权和形式,比双向LSTM等传统信息融合方法更加直接,效果也往往更好。不过由于Attention机制综合全部已知信息,有时候我们不想让所有已知信息都被Attention看到,由此引出了大量Attention任务的变形,如mask-attention等。这些变形本质上与Attention并无过于显著的差异,了解Attention机制后,进行推广便是势如破竹。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值