李宏毅课程
- 解决问题:用于seq2seq结构,适合处理输出数据长度不确定的问题。
- 基本结构
与seq2seq相同,包括encode和decode两大模块。
encoder:
输入向量加上位置信息,第一步处理:自注意力机制+add和norm操作,第二步处理:feed forward+add和norm操作。
add:将输出向量加上输入向量作为输出。
norm:对向量同一特征同一例子的不同维度计算出平均值mean和标准差,得到结果(xi-m)/标准差。
decoder:
主要有两类AT和NAT:
对于AT:decoder的第一步采用自注意力机制,但是每次只能根据前面已经有输出的单元计算注意力得分,第一个标签为begin,最后一个单元对应的输出为end。
NAT直接一次计算出所有的输出,输入都为begin标签,直接计算,可以规定最大的输出长度作为输出,直至遇见end。
encoder和decoder的连接:
通过cross-attention进行连接,这个层根据encoder计算k和v。
额外学习资源: