单一的注意力函数只能学习一种关注模式,难以同时捕捉序列中不同层面、不同粒度的关系。多头注意力(Multi-Head Attention)通过并行运行多个独立的注意力函数,让模型能够同时关注来自不同表示子空间的信息。
多头注意力将查询、键、值分别用不同的学习投影线性变换 h 次,得到 h 组投影;对每组投影分别施加单头注意力,得到 h 个输出;再将这 h 个输出拼接起来,经过一次额外的输出投影得到最终结果。原始 Transformer 采用 8 个注意力头。