Transformer笔记--注意力机制

目录

注意力机制问题总结:

为什么需要注意力机制?

为什么要结合上下文进行特征提取?

注意力机制对结合上下文信息有什么作用? 

怎么得到Attention,如何对每个词进行特征提取?

小结:


Transformer笔记上:http://t.csdnimg.cn/nwdlT

(学习资料):transformer模型详解 - 飞桨AI Studio星河社区 (baidu.com)

3-注意力机制的作用1.mp4_哔哩哔哩_bilibili

注意力机制问题总结:

为什么需要注意力机制?

人在识别某个物体时,是根据其某些特征进行判断的,使用注意力机制时希望计算机也能提取某些重要特征,理解输入的文本信息;Transformer从输入阶段得到每个词的词向量,通过注意力机制结合上下文信息对每个词进行特征提取,再综合所有词的信息,理解所有文本。

为什么要结合上下文进行特征提取?

从下面两句话可以看出,在不同语境,it的意思是不同的,所以对每个词进行特征提取时需要考虑上下文信息。

Transformer笔记--注意力机制_第1张图片

注意力机制对结合上下文信息有什么作用? 

The animal didn't cross the street because it was too tired.

it指代animal,对这句话的it进行特征提取时,相对其他词animal对it的影响更大。而注意力机制可以计算注意力值Attention,Attention可以用来表示其他词对it的影响程度。使用注意力可以根据Attention来结合上下文信息,提取it的特征。

怎么得到Attention,如何对每个词进行特征提取?

Attention(Q,K,V) = Softmax(\frac{QK^{\Gamma }}{d_{k}^{1/2}})V

相似度算法之余弦相似度-CSDN博客

余弦相似度公式:(a,b为向量,ab的内积除以a和b模的积等于余弦值,余弦值越接近1,两个向量就越相近)

\cos (\Theta )=\frac{ab}{\left \| a \right \|\left \| b \right \|}

Softmax函数:

Softmax(Z)=\frac{\exp (z_{i}))}{\sum_{j=0}^{j-1}\exp (z_{j}))}

除以模长之后相当于对a,b向量做了归一化,ab求内积和求余弦值应该都能反映向量的相似性。

\frac{QK^{\Gamma }}{d_{k}^{1/2}} 其实和上述公式差不多,QK^{\Gamma }中每个元素就表示两个向量例如(a,b)的内积,能反映Q与K的相似性。如下图:Transformer笔记--注意力机制_第2张图片

该公式除以d_{k}^{1/2}是为了缩小QK^{\Gamma }的范围,因为QK^{\Gamma }值过大在计算softmax函数可能出现上溢出(超过float32)。

Softmax(\frac{QK^{\Gamma }}{d_{k}^{1/2}})的输出是(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计算,希望可以得到同一个词的多种特征表达。

Transformer笔记--注意力机制_第3张图片

多头注意力将每个头得到的特征拼接起来形成特征矩阵,然后使用x.view()把矩阵转化成向量,进入全连接,全连接对向量进行降维,得到新的特征向量。

小结:

1.注意力机制计算每个词和词的相似度权重,对V进行加权,加权的结果即为Attention。

2.通过注意力机制transformer可以根据上下文信息对每个词进行特征提取。

3.有个地方不太理解,在输入部分给每个词加上了位置相对编码信息,但是在注意力机制中进行了多次矩阵乘法,这种位置相对编码信息还存在吗?

你可能感兴趣的:(笔记)