简单理解self-attention和attention以及计算过程
什么是attention以seq2seq框架为例,输入Source和输出Target内容是不一样的,比如对一件商品的评价和总结来说,Source是一个对一件商品好评或差评的句子,Target是对应的评价的总结,Attention发生在Target的元素Query和Source中的所有元素之间。attention主要应用在seq2seq+attention中,具体的seq2seq+attention
什么是attention
以seq2seq框架为例,输入Source和输出Target内容是不一样的,比如对一件商品的评价和总结来说,Source是一个对一件商品好评或差评的句子,Target是对应的评价的总结,Attention发生在Target的元素Query和Source中的所有元素之间。
attention主要应用在seq2seq+attention中,具体的seq2seq+attention模型和实例可以看这个:tensorflow2.0之seq2seq+attention模型和实例
attention主要用在两个句子或短语之间。通过对第一个句子单词的重要程度的不同进行加权,使其有侧重的表达再后面的句子上。例如:He is a student 翻译成中文 他是一个学生。如果不用attention 那么这四个单词的权重是一样的,会同等重要的反应再后面的中文上。但很明显翻译成中文后学生这个词明显要比其他几个更加的重要,使用attention进行不同程度的加权会使得我们的翻译更加的准确。
什么是self-attention
Self Attention,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的Attention。
The animal did not corss the river because it was too tired.
The animal did not corss the river because it was too narrow.
在这样的二句话中,只有最后的一个形容词不同但表示的意义却相差很大,在这两句中it代指的词语是不相同的,那怎样才能让机器识别it到底代表的是什么呢 这就要用到self-attention机制了。self-attention的作用是在本句子之间,它让句子中的每个单词除了关注它本身以为也会分配出不同的权重来关注其他单词。例如第一个句子animal除了要花费0.8的注意力在本身,还有可能话0.1的注意力在it上面,所以机器很容易就能理解到it代之的就是animal.
self-attention主要用在Tranformer和Bert中,这些过些时间也会整理出来。
计算
attention 和 self-attention 的计算方法是一样的, 只不过是它们关注的对象不同而已。具体的计算方法大家可以看这个人写的一篇文章,用了一些动态的画面来演示计算的过程,大家可以看下。理解自注意力(self-attention)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)