目录
注意力机制问题总结:
为什么需要注意力机制?
为什么要结合上下文进行特征提取?
注意力机制对结合上下文信息有什么作用?
怎么得到Attention,如何对每个词进行特征提取?
小结:
Transformer笔记上:http://t.csdnimg.cn/nwdlT
(学习资料):transformer模型详解 - 飞桨AI Studio星河社区 (baidu.com)
3-注意力机制的作用1.mp4_哔哩哔哩_bilibili
人在识别某个物体时,是根据其某些特征进行判断的,使用注意力机制时希望计算机也能提取某些重要特征,理解输入的文本信息;Transformer从输入阶段得到每个词的词向量,通过注意力机制结合上下文信息对每个词进行特征提取,再综合所有词的信息,理解所有文本。
从下面两句话可以看出,在不同语境,it的意思是不同的,所以对每个词进行特征提取时需要考虑上下文信息。
The animal didn't cross the street because it was too tired.
it指代animal,对这句话的it进行特征提取时,相对其他词animal对it的影响更大。而注意力机制可以计算注意力值Attention,Attention可以用来表示其他词对it的影响程度。使用注意力可以根据Attention来结合上下文信息,提取it的特征。
相似度算法之余弦相似度-CSDN博客
余弦相似度公式:(a,b为向量,ab的内积除以a和b模的积等于余弦值,余弦值越接近1,两个向量就越相近)
Softmax函数:
除以模长之后相当于对a,b向量做了归一化,ab求内积和求余弦值应该都能反映向量的相似性。
其实和上述公式差不多,中每个元素就表示两个向量例如(a,b)的内积,能反映Q与K的相似性。如下图:
该公式除以是为了缩小的范围,因为值过大在计算softmax函数可能出现上溢出(超过float32)。
的输出是(0,1)范围的实数,然后和V进行矩阵乘法,感觉可以看成给V进行加权。
2.3.2注意力机制-part1_哔哩哔哩_bilibili
结合视频中的例子:
假设存在问题:有一段文本信息,和预设的关键词,要求我们进行选择关键词对文本信息进行描述。
这一段文本信息即为Q,预设的关键词为K,V表示经过思考得到的归纳信息。我们不断比较Q,K的关联,更新V的值,直到得到正确答案。
类比一下:在深度学习里面,Q,K,V由X和Wq,Wk,Wv分别计算得到。X中的每一行都表示词向量,把Q,K,V的每一行都是转化后的词向量,把在Q中的看成查询,K中看成键,比较Q和K相似性,根据相似权重,更新V的值。
The animal didn't cross the street because it was too tired.
假设需要对it进行特征提取,以Q中表示it一行为查询(假设为a向量),it与K中的每列向量点乘,x相似矩阵的第一行即为it与其他每个词向量的相似值,就可以发现animal的相关性最高。
为什么使用多头注意力机制?
在设计卷积神经网络时,我们可以会使用不同的卷积核,希望不同卷积核能提取到图像的不同特征。
在使用多头注意力机制也是如此,如下图:
产生多组Q,K,V,进行n次Attention计算,希望可以得到同一个词的多种特征表达。
多头注意力将每个头得到的特征拼接起来形成特征矩阵,然后使用x.view()把矩阵转化成向量,进入全连接,全连接对向量进行降维,得到新的特征向量。
1.注意力机制计算每个词和词的相似度权重,对V进行加权,加权的结果即为Attention。
2.通过注意力机制transformer可以根据上下文信息对每个词进行特征提取。
3.有个地方不太理解,在输入部分给每个词加上了位置相对编码信息,但是在注意力机制中进行了多次矩阵乘法,这种位置相对编码信息还存在吗?