【深度学习3】Self-Attention注意力机制(李宏毅)

2021 - 自注意力机制(Self-attention)(上)_哔哩哔哩_bilibili

2021 - 自注意力机制 (Self-attention) (下)_哔哩哔哩_bilibili

目录

三种输入输出间关系

常规方法

注意力机制原理

Self-attention的问题

和其他网络对比

在Graph上的应用

更多

【深度学习3】Self-Attention注意力机制(李宏毅)_第1张图片

三种输入输出间关系

【深度学习3】Self-Attention注意力机制(李宏毅)_第2张图片

 3种类型的输出,只讲第一种类型

常规方法

【深度学习3】Self-Attention注意力机制(李宏毅)_第3张图片

 但是句子长度有长有短,这种方法不合适

注意力机制原理

【深度学习3】Self-Attention注意力机制(李宏毅)_第4张图片

【深度学习3】Self-Attention注意力机制(李宏毅)_第5张图片

 展开:

 计算a1和后面所有输入之间的相关性α

【深度学习3】Self-Attention注意力机制(李宏毅)_第6张图片

  计算α的两种方式,将两个输入分别乘wq和wk矩阵,结果再处理得到α,左边方法最常用。

【深度学习3】Self-Attention注意力机制(李宏毅)_第7张图片

 具体流程,计算出自相关和互相关后经过softmax或者Relu都可以:

【深度学习3】Self-Attention注意力机制(李宏毅)_第8张图片

 【深度学习3】Self-Attention注意力机制(李宏毅)_第9张图片

 【深度学习3】Self-Attention注意力机制(李宏毅)_第10张图片

矩阵化计算 

【深度学习3】Self-Attention注意力机制(李宏毅)_第11张图片

 【深度学习3】Self-Attention注意力机制(李宏毅)_第12张图片

 【深度学习3】Self-Attention注意力机制(李宏毅)_第13张图片

 只需学习wq、wk、wv三个矩阵的参数

【深度学习3】Self-Attention注意力机制(李宏毅)_第14张图片

 multi-head Self-attention

因为一个Q和V只负责了一个种类的相关性,需要多个Q和K,负责多个总类的相关性。

Q K V分别乘一个矩阵分成两个,分开相乘,最后的b1和b2拼起来作为最后的结果。 

【深度学习3】Self-Attention注意力机制(李宏毅)_第15张图片

【深度学习3】Self-Attention注意力机制(李宏毅)_第16张图片

Self-attention的问题

没有对每个词向量的位置编码,少了位置信息。(没有距离远近之分,天涯若比邻)

拼接position encoding

【深度学习3】Self-Attention注意力机制(李宏毅)_第17张图片

 当句子太长,会导致相关性矩阵太大,可以只考虑一部分不考虑全局。

【深度学习3】Self-Attention注意力机制(李宏毅)_第18张图片

CNN就是简化版的Self-attention,如果Self-attention 参数设置合适可以达到和CNN一样的效果。

【深度学习3】Self-Attention注意力机制(李宏毅)_第19张图片

每一个像素pixel是一个长度为3的向量。

和其他网络对比

数据量越大self-attention训练效果越好,数据量少了CNN效果好,因为弹性小。

【深度学习3】Self-Attention注意力机制(李宏毅)_第20张图片

和RNN对比,RNN容易忘记长的序列,并且不能平行处理, ST天涯若比邻。

【深度学习3】Self-Attention注意力机制(李宏毅)_第21张图片

RNN接近淘汰了快,可以被S-AT代替。

在Graph上的应用

【深度学习3】Self-Attention注意力机制(李宏毅)_第22张图片

 在图上计算S-AT时,只需计算有edge相连的边就好,不用全部计算了。

【深度学习3】Self-Attention注意力机制(李宏毅)_第23张图片

 没有关联相关性就不用SAT计算,直接是0。

把S-AT用在Grapu上是某一种类型的GNN。

【深度学习3】Self-Attention注意力机制(李宏毅)_第24张图片

更多

更多S-AT的变行可以看下面这两篇论文的介绍。

【深度学习3】Self-Attention注意力机制(李宏毅)_第25张图片

你可能感兴趣的:(DeepLearn,学习笔记,人工智能,深度学习)