长期信息 · 《Attention Is All You Need》(2017)
2017年的《Attention Is All You Need》提出一个架构问题:处理一句话时,能否主要通过注意力关联各个位置,取代循环网络在输入端逐步传递信息的方式?论文提出Transformer,并在两项机器翻译任务中比较翻译质量与训练效率。这里依据公开论文的实际读取节选介绍方法。
第一个理念是按相关性汇总信息。注意力为当前位置构造查询,与其他位置的键比较,再按得到的权重汇总它们的值。键和值都是模型中的向量表示,不是人工填写的词义标签;这个加权过程让一个位置可以直接利用其他位置的信息,而不必只靠前一个位置传来的状态。
第二个理念是多头注意力。模型不是只算一组关联,而是在不同的表示子空间并行计算多组关联,再把结果组合。这样可以同时关注不同位置、不同方面的信息;它并不保证每个头都对应一个固定的语言学规则,不能把示意图中的分工当成模型必然学到的分工。
例如,假设一句话里有“公司收购工厂后,它扩大了产能”。阅读者需要把“它”和前面的对象联系起来,也需要关注“收购”“扩大”等关系。这个情景只是帮助理解多组关联为何有用,不是论文报告的某个测试案例,更不证明模型一定能正确理解这句话。
并行训练也有明确边界。论文的解码器仍逐个生成输出,并遮蔽尚未生成的位置,预测只能依赖已经知道的输出。因此,“不使用循环网络”不等于“所有文字都能一次同时生成”。读今天的AI模型说明时,区分训练内部的并行计算与实际生成顺序,比只记住一个架构名更有用。
推荐阅读Vaswani等人的《Attention Is All You Need》(2017)。想理解Transformer为什么成为重要的序列建模方法,可以先读第3.2节的注意力与多头注意力,再对照第3.1节的编码器、解码器结构;重点是信息怎样连接,以及并行计算的边界。
信息源:proceedings.neurips.cc