Attention,Multi-head Attention--注意力,多头注意力详解

Attention

首先谈一谈attention

注意力函数其实就是把一个query,一个key-value的集合映射成一个输出。

其中query,key,value,output(Attention Value)都是向量。

输出是values的加权求和,是query与当前key的相关程度。

Attention 函数的本质可以被描述为:

		一个查询(query)到一个系列(键key-值value)对的映射。

例如:计算A与B的attention,就是用A的Q与B的K-V来计算。
Attention,Multi-head Attention--注意力,多头注意力详解_第1张图片

Scaled Dot-Product Attention(缩放点乘积注意力)(常用)

Attention,Multi-head Attention--注意力,多头注意力详解_第2张图片

微观下的Attention

什么是Q(查询向量)、K(键向量)和V(值向量)?

每一个词向量,都有自己的QKV。通过矩阵变换而来,矩阵可以学习得到。

这里Thinking为词向量X1,Machine为词向量X2。

分别经过矩阵变换得到自己的QKV。

Attention,Multi-head Attention--注意力,多头注意力详解_第3张图片

多头注意力机制

多头 Attention(Multi-head Attention)结构如下图。
Attention,Multi-head Attention--注意力,多头注意力详解_第4张图片

微观下的多头Attention

Attention,Multi-head Attention--注意力,多头注意力详解_第5张图片

这里说一下我的理解

八个头相当于八个不同的表征子空间,类似于apple拥有水果的含义,同时也有商标的含义,不同的含义由不同的表征子空间学习。

让其他词的Q来和apple这个词不同组的K-V进行attention。

再把所有的attention结果拼接起来,通过一个全连接层(矩阵变换)得到最终结果。

Attention,Multi-head Attention--注意力,多头注意力详解_第6张图片

参考博客:
图解Transfomer
NLP中的attention

你可能感兴趣的:(nlp入门,机器学习入门,机器学习,人工智能,深度学习,attention)