部分受这篇文章启发的关于需要多头注意力机制的问题。
对我来说,虽然仍然不清楚我们将如何能够以不同的方式初始化这些注意力头(以便它们可能 - 如 Attention is all you need paper 中所述 - 在不同位置处理来自不同表示子空间的信息),最重要的是在训练过程中保持这种多样性。
部分受这篇文章启发的关于需要多头注意力机制的问题。
对我来说,虽然仍然不清楚我们将如何能够以不同的方式初始化这些注意力头(以便它们可能 - 如 Attention is all you need paper 中所述 - 在不同位置处理来自不同表示子空间的信息),最重要的是在训练过程中保持这种多样性。
我想,你正在寻找的是[1] 哪里头数和模型的单注意力版本的键、值和查询的维度。关于模型架构及其嵌入,以上内容转化为
根据上述,在输入嵌入层,每个头部的权重都堆叠在单个嵌入矩阵中。堆叠在一起,嗯..(堆叠,合奏)。
与正常的自注意力一样,注意力分数是按人头计算的,但鉴于上述情况,这些操作也作为单个矩阵操作而不是循环进行。缩放的点积以及其他计算在此处进行。
作为最后一步,通过简单地重塑完整的注意力分数矩阵来合并每个头部的注意力分数,以便将每个头部的注意力分数连接成一个单一的注意力分数。
更清楚地了解模型的架构是什么以及它的计算图是什么样的,我们可以回到您最初的问题并说:
多头模型可以捕获更丰富的解释,因为输入的嵌入向量跨多个头“分割”,因此嵌入的不同部分可以参与链接回每个单词的不同的每个头子空间。
在更一般的意义上,人们可以争辩说,并行运行多次缩放的点积注意力并连接是一种集成形式。
我希望它有所帮助。有关变压器架构中发生的多个操作的更多详细信息,我建议您查看这篇文章,我的回答深受其影响: https ://towardsdatascience.com/transformers-explained-visually-part-3-多头注意力深度潜水 1c1ff1024853
[1] 3.2.2 https://arxiv.org/pdf/1706.03762.pdf