我很难理解原始变压器论文中的“多头”概念。是什么让每个头脑中的学习都独一无二?为什么神经网络不为每个注意力头学习相同的参数集?是因为我们将查询、键和值向量分解为更小的维度并将每个部分提供给不同的头部吗?
多头注意力机制的每个头有什么不同?
每个头不同的原因是因为他们每个人都学习了一组不同的权重矩阵在哪里是头部的索引。为了澄清,每个注意力头的输入是相同的。注意头:
请注意,每个头的输入是(第一个解码器层的解码器输入的语义+位置嵌入,或者前一个解码器层的输出)。更多信息
关于为什么梯度下降学习每组权重矩阵的问题在每个注意力头上有所不同非常类似于“有什么可以确保卷积过滤器最终相同吗?” ,所以也许你会发现那里的答案对你有帮助:
不,没有什么能真正阻止权重不同。在实践中,尽管它们最终几乎总是不同,因为它使模型更具表现力(即更强大),所以梯度下降学会了这样做。如果一个模型有 n 个特征,但其中有 2 个是相同的,那么该模型实际上有 n-1 个特征,这是一个比 n 个特征的模型表达力差的模型,因此通常具有较大的损失函数。
Transformer 中单层中的多个注意力头类似于 CNN 中单层中的多个内核:它们具有相同的架构,并且在相同的特征空间上运行,但是由于它们是具有不同集合的独立“副本”权重,因此它们可以“自由”学习不同的功能。
在 CNN 中,这可能对应于视觉特征的不同定义,而在 Transformer 中,这可能对应于不同的相关性定义:1
例如:
建筑学 | 输入 | (第 1 层) 内核/头 1 |
(第 1 层) 内核/头 2 |
---|---|---|---|
美国有线电视新闻网 | 图片 | 对角线边缘检测 | 水平边缘检测 |
变压器 | 句子 | 关注下一个单词 | 从动词到直接宾语 |
笔记:
不能保证这些是人类可以解释的,但在许多流行的架构中,它们确实可以准确地映射到语言概念:
虽然没有一个头在许多关系中表现良好,但我们发现特定的头与特定的关系非常对应。例如,我们发现头可以找到动词的直接宾语、名词的限定词、介词的宾语和所有格代词的宾语……
- BERT 看什么?BERT 注意力分析(2019)
最初提出多头是为了减轻单头在自我注意中缺乏描述能力的一种方式,它具有:
在这些模型中,将来自两个任意输入或输出位置的信号关联起来所需的操作数量随着位置之间的距离而增加 [...] 这使得学习远距离位置之间的依赖关系变得更加困难 [12]。在 Transformer 中,这被减少到恒定数量的操作,尽管由于平均注意力加权位置而降低了有效分辨率,我们用 Multi-Head Attention 来抵消这种影响......
- 注意力就是你所需要的(2017)