一、Vector Set as Input
与以前遇到的问题不同,输入的是一个向量的集合。向量的数目不确定。
典型应用:NLP中语句作为输入,每个单词是一个vector,可以用one-hot编码编成向量,也可以用word-embedding包含语义信息;语音输入,以frame为单位,一定步长移动;Social-network,可以将每个节点作为一个vector;高分子结构,同样可以视为一种graph。
二、The output
1.each vector has a label
例子:
- 词性标注 I saw a saw. –>> N V DET N
- social networrk每个节点的特性
2.the whole sequence has a label
例子:
- sentiment analysis
- 预测高分子的性质
3.Model decides the number of labels tself
例子:
- 翻译
- 语音辨识
三、Type one
sequence label问题
1.self-attention作为解决方法
不是考虑一个frame或windows,而是考虑整个sequence作为输入
同时self-attention可以多次使用且可以与fully-conntected network交替使用
2.self-attention做法
计算一对vector之间的关联程度
计算sequence中vector的关联程度
最终输出一个vector
简化运算形式:
3.multi-head attention
发掘不同的self-attention
4.Positional Encoding
上述计算中并没有考虑位置信息,计算过程对称。
但如果认为位置信息比较重要则可以加进去,做法可以对每一个位置生成一个unique vector,与原来的输入相加即可。