注意力机制Attention详解

article/2025/9/16 8:53:58

注意力机制Attention详解

一、前言

2018年谷歌提出的NLP语言模型Bert一提出,便在NLP领域引起热议,之所以Bert模型能够火出圈,是由于Bert模型在NLP的多项任务中取得了之前所有模型都不能达到的出色效果。那么Bert模型它是如何提出的呢?我们来追溯Bert模型的发展历史:
首先Bert模型是基于Transformer提出的,Transformer同样是谷歌团队在2017年发表的论文 《Attention is all you need》 中提出,Transformer又是基于attention机制,注意力(Attention)机制由Bengio团队于2014年提出。而目前大部分attention模型都是依附于Encoder-Decoder框架进行实现。因此,我们要讲解Bert,必须要从Encoder-Decoder框架开始说起。

二、注意力Attention简述

什么是注意力: 对于人类来说,视野非常开阔,但焦点往往只有小部分范围,甚至一个点,这就叫做注意力。它可以帮助人类在众多的信息中去筛选对人类有帮助的信息。
注意力机制的核心目标是: 从众多信息中选择出对当前任务目标更关键的信息,将注意力放在上面。

在这里插入图片描述

三、Encoder-Decoder框架

在这里插入图片描述
上图是最常见的Encoder-Decoder框架图,在文本处理和语音识别的Encoder部分通常采用RNN模型;在图像处理的Encoder部分通常采用CNN模型

举个栗子: 机器翻译
英文:Tom chase Jerry
中文:汤姆 追逐 杰瑞

对应在图中,输入序列 {x1=Tom,x2=chase ,x3=Jerry} ,经过Encoder,被编码成语义编码C,语义编码是一块高度抽象的内容。

这里的语义编码C的编码方式是啥呢?
编码方式有很多种,在NLP中常见的RNN/LSTM/以及它们的变种,这里我们以RNN为例。
输入序列{x1,x2,x3,x4},通过RNN生成隐藏层的状态值{h1,h2,h3,h4},最简单的办法可以直接采用最后时刻输出的ht作为C的状态值,这里也就是h4作为语义编码C的值,也可以将所有时刻的隐藏层的值进行汇总,然后生成语义编码C的值,这里就是C=q(h1,h2,h3,h4),q是非线性激活函数。

再通过Decoder将其解码为中文内容,同样解码也可以采用RNN/LSTM/以及它们的变种进行解码。Encoder编码和Decoder解码的方式可以任意搭配
解码完成后输出序列 {Y1=“汤姆”,Y2=“追逐”,Y3=“杰瑞”}。在此过程中,每次生成一个目标单词,每个目标单词的有效信息都不一样,例如“杰瑞”,与之最重要的信息是“Jerry”,其他的可以看作成噪声或者相关度不大的信息。

相比于注意力机制而言,还有一种分心模型
体现在翻译输出时,对于输入贡献的注意力是一样的。例如翻译:“杰瑞”时,“Tom”,“chase”,“Jerry”三者贡献的注意力相同(同一个C)。

分心模型的计算:
Y1 = f ( C ) ; Y2 = f ( C ,Y1 ) ; Y3 = f ( C ,Y1,Y2 )

引入注意力机制之后:
在这里插入图片描述

此时会分配不同的语义编码C,语义编码C会告诉输入哪一个更为相关。

引入注意力机制后的计算:
Y1 = f1 ( C1 ) ; Y2 = f1 ( C2 ,Y1 ) ; Y3 = f1 (C3 ,Y1,Y2 )
C汤姆 = g ( 0.6 * f2(Tom),0.2 * f2(chase),0.2 * f2(Jerry))
C追逐 = g ( 0.2 * f2(Tom),0.7 * f2(chase),0.1 * f2(Jerry))
C杰瑞 = g ( 0.3 * f2(Tom),0.2 * f2(chase),0.5 * f2(Jerry))
g(x) 是对构成的元素进行加权求和 :aij表示权重
在这里插入图片描述

四、Attention机制的具体计算过程

在这里插入图片描述
步骤:

  1. 根据Query和Key计算两者相似性或相关性;
    常见方法:
    (1) 两者向量点积: Similarity(Query,Keyi) = Query · Keyi
    (2) Cosine 相似性: Similarity(Query,Keyi) =(Query · Keyi)/||Query||·||Keyi||
    (3)引入额外的神经网络 MLP网络: Similarity(Query,Keyi) = MLP(Query,Keyi)
  2. 经过步骤1得到原始得分s1(例如Query = 汤姆,Key1 = Tom,经过F(Q,K)函数计算后得到两者相关性的得分,其他的同理。由于s1是一个实际的分值,通过softmax函数进行归一化处理,将得分映射到0-1之间得到权重系数(a1,a2,a3,a4)。
  3. 根据权重系数对Value进行加权求和。(权重系数a1,a2,a3,a4先分别和Value1,Value2,Value3,Value4相乘,最后相加)
    最终得到Attention Value

Attention计算公式:
在这里插入图片描述

五、Attention机制优缺点

优点:
1.速度快。Attention机制不再依赖于RNN,解决了RNN不能并行计算的问题。这里需要说明一下,基于Attention机制的seq2seq模型,因为是有监督的训练,所以咱们在训练的时候,在decoder阶段并不是说预测出了一个词,然后再把这个词作为下一个输入,因为有监督训练,咱们已经有了target的数据,所以是可以并行输入的,可以并行计算decoder的每一个输出,但是再做预测的时候,是没有target数据地,这个时候就需要基于上一个时间节点的预测值来当做下一个时间节点decoder的输入。所以节省的是训练的时间。
2.效果好。因为注意力机制,能够获取到局部的重要信息,能够抓住重点。
缺点:
1.只能在Decoder阶段实现并行运算,Encoder部分依旧采用的是RNN,LSTM这些按照顺序编码的模型,Encoder部分还是无法实现并行运算,不够完美。
2.因为Encoder部分目前仍然依赖于RNN,所以对于中长距离之间,两个词相互之间的关系没有办法很好的获取。

六、Self-Attention机制

在上面的Attention机制结构图中,Self-Attention其实表示的是Query、Key、Value三者是相同的值。(例如Query = Tom,Key1 = Value1 = Tom,Key2 = Value2 = chase,Key3 = Value3 = Jerry)。
同样下图中Query表示:making…(句子中的每一个词);Key/Value表示整句话中的每个单词权重系数表示句子中哪个词和我的这个词关联最大(making,more,difficu)
Self-Attention可以捕获同一个句子中单词之间的一些句法特征(比如下图中展示的有一定距离的短语结构)或者语义特征(图中its的指代对象是Law)
在这里插入图片描述

Self-Attention机制的优点:
更容易捕获句子中长距离的相互依赖特征,如果是RNN或者LSTM(都需要按照次序序列进行计算)对于长距离的相互依赖特征,要经过若干时间步步骤的信息累积才能够将两者联系在一起,距离越远,有效信息被稀释的越多,有效捕获的可能性越小。

Self-Attention不需要依赖次序序列计算,在计算过程中直接将句子中【任意两个单词的联系通过一个计算步骤直接联系在一起】对于远距离依赖特征之间的距离被极大缩短,有效的利用这些特征。

七、结语

以上是本人在学习注意力机制Attention过程中的个人见解,有不足之处欢迎指正!
接下来将学习建立在注意力机制基础上的Transformer,欢迎关注!


http://chatgpt.dhexx.cn/article/rJbwLqGZ.shtml

相关文章

注意力机制(Attention Mechanism)

注意力机制起源于应用于NLP的RNN模型,但也在其他的领域有所应用。对注意力机制的理解也是算法面试经常提及的一道基础面试题,在这篇博文里我们汇总吴恩达深度学习视频序列模型3.7和3.8以及台大李宏毅教授对Attenion Mechanism以及相关参考文献对注意力机…

注意力机制总结

导读 注意力机制,其本质是一种通过网络自主学习出的一组权重系数,并以“动态加权”的方式来强调我们所感兴趣的区域同时抑制不相关背景区域的机制。在计算机视觉领域中,注意力机制可以大致分为两大类:强注意力和软注意力。由于强…

深度学习之注意力机制(Attention Mechanism)和Seq2Seq

这篇文章整理有关注意力机制(Attention Mechanism )的知识,主要涉及以下几点内容: 1、注意力机制是为了解决什么问题而提出来的? 2、软性注意力机制的数学原理; 3、软性注意力机制、Encoder-Decoder框架与Seq2Seq 4、自注意力模型的原理。 一、注意力机制可以解决什么问…

神经网络学习小记录73——Pytorch CA(Coordinate attention)注意力机制的解析与代码详解

神经网络学习小记录73——Pytorch CA(Coordinate attention)注意力机制的解析与代码详解 学习前言代码下载CA注意力机制的概念与实现注意力机制的应用 学习前言 CA注意力机制是最近提出的一种注意力机制,全面关注特征层的空间信息和通道信息…

【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码

目录 前言一、注意力机制:Attention二、自注意力机制:Self-Attention三、多头注意力机制:Multi-Head Self-Attention四、位置编码:Positional EncodingReference 前言 最近在学DETR,看源码的时候,发现自己…

注意力机制详解系列(一):注意力机制概述

👨‍💻作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。公众号: GoAI的学习小屋,免费分享书籍、简历、导图等资料,更有交流群分享AI和大数据,加群方式公众号回复“加群”或➡️点击链接。 🎉专栏推荐: 目…

注意力机制详解

注意力机制详解 Attention机制由来Attention定义Encoder-Decoder框架Attenion机制的引入Attention机制的类别Hard AttentionSoft AttentionGlobal AttentionLocal AttentionSelf AttentionMulti-head Attention Attention机制的应用自然语言处理领域计算机视觉领域语音识别领域…

【深度学习】(1) CNN中的注意力机制(SE、ECA、CBAM),附Pytorch完整代码

大家好,今天和各位分享一下如何使用 Pytorch 构建卷积神经网络中的各种注意力机制,如:SENet,ECANet,CBAM。 注意力机制的原理 和 TensorFlow2 的实现方式可以看我下面两篇博文: SENet、ECANet&#xff1a…

注意力机制详述

学习本部分默认大家对RNN神经网络已经深入理解了,这是基础,同时理解什么是时间序列,尤其RNN的常用展开形式进行画图,这个必须理解了。 这篇文章整理有关注意力机制(Attention Mechanism )的知识&#xff0c…

手把手带你YOLOv5/v7 添加注意力机制(并附上30多种顶会Attention原理图)2023/6/15更新

🌟想了解YOLO系列算法更多教程欢迎订阅我的专栏🌟 对于基础薄弱的同学来说,推荐阅读《目标检测蓝皮书》📘,里面涵盖了丰富的目标检测实用知识,是你迅速掌握目标检测的理想选择! 如果想了解 YO…

量化交易python入门书籍_张杨飞《Python量化交易入门》PDF下载

张杨飞《Python量化交易入门》PDF下载 首页 > 计算机类 字号:小 中 大 评论:0 条 评论:0 条 Python量化交易入门 【作 者】张杨飞 【形态项】 402 【出版项】 北京:电子工业出版社 , 2019.04 【ISBN号】978-7-121-36140-1 【中图法分类号】F830.91 【原书…

Python猫荐书系列之七:Python入门书籍有哪些?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/ArN-6mLPzPT8Zoq0Na_tsg 最近,猫哥的 Python 技术学习群里进来了几位比较特殊的同学:一位初三的以编程为兴趣的女生、…

2019年Python入门书籍推荐

大概是一时改变不了之前的学习习惯,所以很多Python小白都来问我有什么适合的Python入门书籍推荐。接下来我就为大家推荐几本经典的:(请大家根据自己以下六种情况对号入座,挑选适合自己的 Python 入门书籍)一&#xff0…

Python入门书籍,百万读者都选择!

从0到100万 Python入门神书 如果你是程序员,或者是 Python 爱好者,那你一定听说过一本书:《Python编程 从入门到实践》。作为国内首批 Python 图书之一,蟒蛇书首版自2016年问世以来就狂销70余万册;2020年10月第2版出版…

斯坦福大学教授,极力推荐5本python入门书籍,入门最快基础最好

为什么要选择python Python是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎。 如果你正处于想学习python或者正在python入门阶段,推荐5套python电子学习书籍,对于没有接触过编程,或者基础薄弱者来说…

0基础学Python入门书籍应该看什么?

0基础学Python入门书籍应该看什么?Python 对不少人来说是谜一样的东西不知道如何下手、从何处下手,找了很多资源几个月过去了学习陷入换乱,没没能入门Python开发。出现这种情况大多是因为没有充分做好学习前的准备。 0基础学习Python建议读一…

Python入门书籍推荐——《笨办法学Python》

很多小伙伴在学习Python的道路上,觉得越来越难。今天为小伙伴推荐一本非常适合Python小白的书籍《笨办法学Python》第三版。 在豆瓣有7.8的评分,学习Python的小伙伴千万不要错过了呀。 《笨办法学Python》是一本关于Python的入门书籍,即使是…

python入门书籍(爬虫方面)有哪些推荐?

关于爬虫,应该没有人不知道了吧,其抓取速度快和数据质量优的两大特点而受到越来越多的人追捧,互联网时代,有爬虫技术的加持对于职场人来说无疑是锦上添花。 随着爬虫技术的流行,网上的资源层出不穷,但对于…

python新手入门.pdf_所有Python入门书籍的整理,初学者必看,附赠所有电子版(一)...

原标题:所有Python入门书籍的整理,初学者必看,附赠所有电子版(一) 这从来都是我的观点,学习Python编程,看书是最好的方式之一。 所以,今天一姐想对自己日积月累收集的部分入门书籍做一个汇总,当然,大家也可以看看哪本书比较适合现在的自己,然后文章尾部有免费找我…

必读的Python入门书籍,你都看过吗?(内有福利)

今天小编为大家准备了4本Python入门书籍,让大家在python的学习路上少走弯路。 1.Python基础教程 《Python基础教程》是经典的Python入门教程书籍,本书层次鲜明,结构严谨,特别是在最后几章中,作者将前面讲述的内容应用到项目中,并以模板的形式介绍了项目的开发过程,手把…