通俗易懂的注意力机制attention

一 注意力模型历史

Attention 机制最早是在计算机视觉里应用的,但是真正发扬光大却是在 NLP 领域,因为 2018 年 BERT的效果出奇的好,从而使得预训练模型和注意力机制进入人们视野。而bert其实就是transformer的改进版,bert其实只用了transformer的encoder,并且通过Masked LM实现双向模型的next word预测。本文不对bert之后以及transformer之前的seq2seq等模型展开深入研究,仅讨论transformer这里的注意力机制。

二 什么是注意力机制

简单来说,注意力通常对不同的item感兴趣程度、注意力分布不同,考虑对不同的item施加不同的权重,即求当前query关于不同key下的注意力分布及当前query的注意力分数。某些特征就会主导某一次的预测,就好像模型对某些特征更加专注。如果我们说加权求和就很容易理解,但是说成注意力机制,就感觉高大上了许多,也许这就是论文吧。。

注意力图示
从上面这个图可以看出,比如我现在想求某个词的嵌入表示,那么我就需要用这个词的查询值q,去与整个序列中所有其他词的键值k向量做点积,然后求和再取softmax进行归一化,这个值简单来说就是权重了。然后再乘上整个序列所有向量的v向量,然后把这些加权后的向量相加到一起,就成为这个词在注意力机制下的嵌入表示了。

三 关于自注意力的理解

transforer的注意力为什么叫做“自”注意力呢?与之前的注意力有何区别?query来自于解码层,key和value来自于编码层时叫vanilla attention,即最基本的attention。而query,key和value都来自编码层的叫self-attention。
以Encoder-Decoder框架为例,输入Source和输出Target内容是不一样的,对于常见的英-中机器翻译任务来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention发生在Target的元素和Source中的所有元素之间。
因此所谓的自注意力,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的Attention。两者具体计算过程是一样的,只是计算对象发生了变化而已。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值