输入的类型
输入一堆向量
文字处理
声音讯号
图的节点可以看作一个向量表示
输出是什么呢
每一个向量都有一个标签
整个句子有一个标签
机器自己决定输出多少个标签
Sequence Labeling
使用全连接神经网络
如果是词性标注的问题,对于全连接神经网络而言,不能区别第一个saw和第二个saw,完全不知道怎么处理
输入的Sequence有长有短
self-attention 考虑了整个句子的信息,可以叠加多层
两个向量之间的关联性,左边的向量乘上
w
q
w^q
wq矩阵,右边的向量乘上
w
k
w^k
wk矩阵
另外一种计算方式如右边
根据
α
i
\alpha_i
αi去抽取最重要的资讯,哪些向量和
a
1
a^1
a1是最有关系的
得到attention分数
,得到
b
1
.
.
.
.
.
.
b
4
b^1......b^4
b1......b4,可以同时得到这些向量,
w
q
,
w
k
,
w
v
w^q,w^k,w^v
wq,wk,wv都是未知的需要从train data找出来
在自注意力机制中没有位置信息,完全没有这个资讯
为每一个位置设置一个独特的位置编码 vector
e
i
e^i
ei,
在语音辨识方面
不需要要看完整句话
在处理图像问题时,每一个像素点都可以看成一个三维的向量,维度就是图像的通道数,所以图像也可以看成是很多向量输入的模型
自注意力机制和CNN的概念类似,都是希望网络不仅仅考虑某一个向量,也就是CNN中希望模型不仅仅考虑某一个像素点,而是让模型考虑一个正方形或者矩形的感受野(Receptive field)
对于自注意力机制
来说,相当于模型自己决定receptive field是怎样的形状和类型
。
其实CNN卷积神经网络是特殊情况下的一种self-attention,self-attention就是复杂版的CNN
Self-attention 的弹性比较大
This is one type of Graph Neural Network(GNN)