【李宏毅】自注意力机制self-attention

课件网址:

【機器學習2021】自注意力機制 (Self-attention) (上) - YouTube

【機器學習2021】自注意力機制 (Self-attention) (下) - YouTube

这两章课程主要在讲self-attention是怎么做的,对应的矩阵操作是什么,以及为什么要这样处理。

目录

自注意力机制base

适用的输入

可能的输出

结构

并行化操作

Multi-head Self-attention

位置信息

大量参数

与其他方法对比

图的处理

各式各样的self attention

英文单词


自注意力机制base

自注意力机制适用的输入

长度会改变的向量,或者是一堆向量,例如文本[涉及到word embedding],声音向量,graph中每个node可以看做一个向量,它的连接性可以看做one-hot。

【李宏毅】自注意力机制self-attention_第1张图片(起始为25ms,然后以10ms移动。) 

可能的输出

每个词向量都有 一个label。整个句子有一个label。机器自己决定有多少个label。

【李宏毅】自注意力机制self-attention_第2张图片

 

结构

【李宏毅】自注意力机制self-attention_第3张图片

  1. 找到a1的关联程度α(一般用q、k、点乘),自己得到q,自己和其他是k。

  2. 用soft-max处理(这里也可以用relu或者别的处理)

  3. 得到v向量,乘上attention score,然后加在一起得到b。

  4. b的产生不需要按照序列逐个输出,按照他的流程其实是可以并行化的。

【李宏毅】自注意力机制self-attention_第4张图片

keep in mind: 

  1. q为query,k为key,v为value 。q负责处理相关性。

  2. 没有向量的位置信息,可以通过加上ei来解决。

并行化操作

一连串的矩阵乘法,发现Wq、Wk、Wv是所有我们需要训练的参数。

【李宏毅】自注意力机制self-attention_第5张图片Multi-head Self-attention

 

【李宏毅】自注意力机制self-attention_第6张图片产生不同的参数向量Wq/Wk/Wv,由此得到不同的b,然后通过WO融合成一个新的b。

 

為什麼不直接從ai 得到 (qi,1), (qi,2),而是先得到qi再去得到後面兩個向量 (qi,1), (qi,2):①直接做减小了模型的弹性,不直接做相当于是增加了网络的深度,类似于在CNN或FC中增加了一层。②我看pytorch的multi head attention的doc是將qkv的W矩陣先分成n_head份,我推測是將sequence embedding與分成n_head份的qkv dot product後分別得到n_head份的qkv,或許不是得到qi再乘兩個矩陣。

位置信息

【李宏毅】自注意力机制self-attention_第7张图片通过sin/cos的函数产生,也可以有新的方法或者训练得到。

 

大量参数

【李宏毅】自注意力机制self-attention_第8张图片当输入向量过多时,L会很大,导致训练参数过大,这里就只看向量附近的局部向量。

 

与其他方法对比

  1. CNN相当于是局部的self-attention[on the relationship between self-attention and convolutional layers]

  2. 当数据量足够大的时候self-attention比较好,数据量比较小的时候transformer会欠拟合。self-attention的弹性比较大,会在数据量更大的时受益。

  3. RNN所做的工作现在大部分都可以被self-attention取代。单向RNN只考虑新输入的,双向RNN能考虑但是距离非常的远。而且RNN不能并行化

【李宏毅】自注意力机制self-attention_第9张图片【李宏毅】自注意力机制self-attention_第10张图片图的处理

  1. 可以只计算有edge相连的node

  2. 是某种意义上的GNN。

各式各样的self attention

【李宏毅】自注意力机制self-attention_第11张图片现在有各式各样self-attention的变体,一般以xxxformer为命名特点。 

self-attention的痛点是矩阵运算量大。

但是这也是有前提的,当N偏小时,可能feed forward的部分就会占主导地位,所以优化self-attention对整个transformer意义不大。

【李宏毅】自注意力机制self-attention_第12张图片

英文单词

pos tagging:词性标注。

sequence labeling:有多少个向量就有多少个label。

你可能感兴趣的:(机器学习-李宏毅笔记,深度学习,人工智能,机器学习)