从机器翻译开始,Transformer 就逐渐开始取代 RNN。这一模型有着新的表示学习策略。它不再使用递归,而是使用注意力机制对每个词构建表示——即每个词语在句子中的重要程度。知道了这一点,词的特征更新则是所有词的线性变换之和——通过其重要性进行加权。 Transformer 故障 通过将前一段翻译成数学符号以及向量的方式去创建对整个体系结构的认知。将长句 S 中的第 i 个单词的隐藏特征 h 从 ℓ 层更新至ℓ+1 层:
为什么采用多头注意力? 我本人更赞同多头注意力机制的优化观点,因为拥有多注意力头能够增强学习效果,克服糟糕的随机初始化。例如,论文《Are Sixteen Heads Really Better than One?》中表明,在无重大性能影响的训练之后,Transformer 头可以被『剪枝』或『移除』。 多头邻域聚合机制也已证明在 GNN 中有效,例如 GAT 使用相同的多头注意力,论文《Geometric deep learning on graphs and manifolds using mixture model CNNs》中的 MoNet 使用多个高斯核(Gaussian Kernel)来聚合特征。尽管多头方法是用来实现注意力机制的平稳化,但这些方法是否能够成为发挥模型剩余性能的标准呢? 与之相反,具有和或最大值等更简单聚合功能的 GNN 不需要用多聚合头来实现平稳训练。所以,如果我们不计算句子中任意单词对之间的成对兼容性,它对 Transformers 不是更好的替代吗? 此外,完全摆脱注意力,Transformer 是否又会获益呢?Yann Dauphin 等人所写的论文《Convolutional Sequence to Sequence Learning》提出了一个替代性的 ConvNet 架构。所以,Transformers 最终也可能会做出一些类似于 ConvNets 的改进。