关于自注意力机制的思考
自注意力是Transformer中的核心,但我们大多时候都忽略了其中的Q∈RN×d,K∈RN×d,V∈RN×dQ\in R^{N\times d},K\in R^{N\times d},V\in R^{N\times d}Q∈RN×d,K∈RN×d,V∈RN×d的解释性,下面我们将对自注意力机制做出思考,进一步理解Transformer。阅读本篇内容前,可先回顾Pytorch笔记本:第十四课.Transformer。下面需要明白一些基础知识:
- 向量内积的意义是什么;
- 矩阵与其转置相乘,得到的结果是什么意义;
首先,我们分析Transformer中最核心的部分,键值对注意力的公式为:Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(\frac{QK^{T}}{\sqrt{d_{k}}})VAttention(Q,K,V)=softmax(dk
而向量的内积表征两个向量的夹角,表征一个向量在另一个向量上的投影,即计算相似度,下面举一个实际例子,验证XXTXX^{T}XXT的意义:
行向量xiTx_{i}^{T}xiT分别与自己和其他两个行向量做内积("早"分别与"上"和"好"计算内积),得到一个新的向量,这个新向量是行向量xiTx_{i}^{T}xiT在自己和其他两个行向量上的投影。投影的值大,说明两个向量相关度高(更相似)。
更进一步,当我们的向量是词向量(词在低维稠密空间的数值映射),两个词向量的相关度高表示:在关注一个词的时候,应当给另一个相关的词也施加关注。
XXTXX^{T}XXT的结果是一个方阵,可以想象,方阵中保存了每个向量与自己和其他向量进行内积运算的结果。而softmax函数则可以实现这些相关度的归一化,从而得到注意力softmax(XXT)∈RN×Nsoftmax(XX^{T})\in R^{N\times N}softmax(XXT)∈RN×N。
对于softmax(XXT)Xsoftmax(XX^{T})Xsoftmax(XXT)X中的最后一个XXX,即为待施加注意力分布并进行加权求和的输入数据。举个例子,取softmax(XXT)softmax(XX^{T})softmax(XXT)的第一行R1×3R^{1\times 3}R1×3,与X∈R3×dX\in R^{3\times d}X∈R3×d相乘,得到一个新的向量R1×dR^{1\times d}R1×d:
这个新的向量其实就是"早"的词向量经过注意力加权求和后的词向量(embedding),我们相当于是把"早"对应的注意力[0.4,0.4,0.2]施加到输入数据XXX上,重新加权求和得到[1.4,1.4,2,1.8,1],而注意力[0.4,0.4,0.2]的含义就是"早"与所有词"早",“上”,"好"的相关程度,可以看出"早"与本身以及"上"的相关度更高。
在一些关于BERT的可解释性文章中,研究者通过事后解释的方式探索了不同阶段的注意力分布,通过注意力的可视化帮助我们分析模型对于关系(relation)特征的学习:
BERT模型建立于Transformer,主要由多层自注意力网络堆叠而成(包含残差连接),而自注意力的本质是对词与词(Token and Token)之间"关系"的刻画。不同的关系可以表达丰富的含义,比如名词短语中的依存关系,指代关系,这些关系特征对理解自然语言具有关键作用。
上图展示了不同自注意力头的行为:有些注意力头分布均匀,具有较大的感受野,即编码了较分散的上下文信息,有些注意力头分布集中,且显示出一定的模式,比如集中在当前词的下一个词,或者[SEP],句号等标记上。可以看出,不同的注意力头具有比较多样的行为,因而能够编码不同类型上下文中的关系特征。
关于可解释
可解释性是以人类视角理解模型的行为,因此,我们需要有一个映射,将模型的行为映射到人类可以理解的视角;
可解释性可以分为自解释(Self-explainable)和事后解释(Post-hoc explanation),前者要求模型在构建之初就针对性地设计其结构,使其具备可解释性,比如原型机网络;后者则是对模型中的组件或者中间输出的变量做统计分析,比如CNN核的可视化,attention的可视化,特征图的可视化。
在可解释性研究上,有两个名词具有细微差别:
- Interpretability与Explainability,这两个词在一开始的时候其实是经常互换的,都指的是一个意思。之后两个名词又有了些细微的差别,Interpretability或者Interpretable AI是使模型成为白盒,模型的任意一个设计结构都让人可以完全理解,想得通为什么要这样设计,而Explainabilily或者Explainable AI则是研究者对于黑盒模型的行为作出人们所能理解的一个解释。
残差连接
残差连接是一种High way的连接方式,有利于梯度回传,Highway神经网络在输入与输出之间建立直接连接,使得输出层可以直接将梯度回传到输入层,从而避免因网络层数过多而带来的梯度爆炸或弥散问题。
现在回到:Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(\frac{QK^{T}}{\sqrt{d_{k}}})VAttention(Q,K,V)=softmax(dk
[1,2,1,2,1]
,也被称为查询向量。
注意,我们不直接使用XXX去完成整个过程,却在中间施加线性变换得到Q∈RN×d,K∈RN×d,V∈RN×dQ\in R^{N\times d},K\in R^{N\times d},V\in R^{N\times d}Q∈RN×d,K∈RN×d,V∈RN×d。线性变换可以将原始数据转换到具有另一种表达的线性空间,当我们在这些不能直观感受到的新空间下计算注意力并加权时,才能学习到更丰富的关系信息(不同表达空间下,两个词之间的相关度是不一样的)。
补充内容:当我们使用自注意力机制时,最好引入顺序信息以克服bag of words效应;
对self attention来说,任意一个词总是跟每一个词都计算了注意力,所以没有考虑到input sequence的顺序。更通俗来讲,可以发现前面例子中计算的每一个词向量都与其他词向量计算内积,得到的结果丢失了我们原来文本的顺序信息。对比来说,像语言模型RNN对于文本顺序信息的解释是考虑输入词向量的先后顺序,而上文的计算对sequence的顺序这一部分则完全没有提及,如果打乱词向量的顺序,得到的结果仍然是相同的;
因此,Transformer在输入词向量时添加了位置编码,从而引入了顺序信息。这使得Transformer不仅具有了位置信息,还能实现并行计算(词向量的并行计算);
有些论文将Transformer作为语言模型(生成式模型,比如GPT),通过加入注意力的掩码来实现语言模型的效果。
关于自注意力机制的思考相关推荐
- 深度学习理论篇之 ( 十八) -- 注意力机制之SENet
科普知识 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)是机器视觉领域最受追捧也是最具权威的学术竞赛之一,代表了图像领域的最高水平. ...
- AI大觉醒:图灵奖得主Bengio称AI将产生意识,未来机器学习核心是注意力机制
新智元报道 来源:venturebeat 编辑:梦佳 [新智元导读]人工智能是时候该觉醒了吗?在本周的2020 ICLR 大会上,图灵奖得主Yoshua Bengio针对AI和机器学习的未来阐 ...
- 【ICML2021】计算机视觉中的自注意力机制教程,谷歌伯克利出品
本教程将介绍自注意力机制在计算机视觉中的应用.Self-Attention在NLP中被广泛采用,完全注意的Transformer模型已经在很大程度上取代了RNN,现在被用于最先进的语言理解模型,如GP ...
- keras cnn注意力机制_从发展历史视角解析Transformer:从全连接CNN到Transformer
编译 | bluemin校对 | 陈彩娴Transformer架构在机器学习领域(尤其是NLP里)是一项热门研究,为我们带来了许多重要成果,比如:GPT-2.GPT-3等写稿机器人:第一代GPT及其性 ...
- 自适应注意力机制在Image Caption中的应用
在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...
- tensorflow环境下的识别食物_在TensorFlow+Keras环境下使用RoI池化一步步实现注意力机制...
在本文中,作者解释了感兴趣区域池化(RoI 池化)的基本概念和一般用法,以及如何使用它来实现注意力机制.他一步步给出了在 Keras 和 TensorFlow 环境下使用 RoI 池化的实现. 选自 ...
- vuepc端实现数据加载_多模态注意力机制+多模态数据,完全实现端到端课堂活动检测|ICASSP 2020...
本文解读的是 ICASSP 2020 论文<MULTIMODAL LEARNING FOR CLASSROOM ACTIVITY DETECTION>,作者来自好未来. 作者 | 李 航 ...
- 【推荐论文】基于多视角学习和个性化注意力机制的新闻推荐(附论文下载链接)...
编者按:个性化新闻推荐是新闻行业必然的发展方向,在其实现过程中面临着三个关键问题,即分析用户兴趣.根据新闻内容建模和新闻排序.本文将这三个问题划归为新闻信息与用户兴趣的多样性问题,并由此出发,提出了基 ...
- 自注意力机制_自注意力机制在计算机视觉中的应用【附PPT与视频资料】
关注微信公众号:人工智能前沿讲习回复"蒋正锴"获取PPT与视频资料视频资料可点击下方阅读原文在线观看 导读 在神经网络中,我们知道卷积层通过卷积核和原始特征的线性结合得到输出特征, ...
最新文章
- Ubuntu下Astro Pro配置openni踩坑小记
- 【java8】中stream的.findAny().orElse (null) 是什么意思?
- c++中CreateEvent函数解析(1)
- Leecode刷题热题HOT100(9)——回文数
- 英语词根词缀记忆法(全集)_闭着眼睛就能背好的托福词汇记忆法
- 30个你必须记住的CSS选择符
- centos mysql proxy_在Centos 5.2下安装最新的MySQL Proxy
- 一级造价工程师(安装)- 计量笔记
- web和mysql连接并增删改查_Web界面实现数据库增删改查过程
- 《交互设计》作业-问卷调查
- 一文了解AAAI国际会议–附: 各年论文连接
- Super Socks5cap使用教程
- java所有单词_JAVA常用英语单词列表
- 智能交通 路侧智能感知 应用层数据格式
- vb.net图书管理系统
- 液压传动基础知识(一)
- Java媒体框架(JMF)资料
- 计算机中的英语六级作文万能模板,英语六级作文的通用万能模板
- 通俗易懂聊springMVC中的handler是什么
- 流行的jQuery信息提示插件(jQuery Tooltip Plugin)【转】