基于内容的关注和点积关注有什么区别?

人工智能 神经网络 注意力 seq2seq
2021-10-25 10:03:37

我正在关注这篇文,其中列举了各种类型的关注。

它提到了基于内容的注意力,其中对齐评分功能用于jth 编码器隐藏状态相对于i上下文向量是余弦距离:

eij=hjenchidec||hjenc||||hidec||

它还提到了点积注意力:

eij=hjenchidec

对我来说,似乎这些只是一个因素不同。如果我们修复i这样我们只关注解码器中的一个时间步,那么该因素仅取决于j. 具体来说,它1/hjenc.

所以我们可以说:“基于内容的注意力对点积注意力的唯一调整是,它在应用 softmax 之前将每个对齐分数与相应编码器隐藏状态的范数成反比。”

做出如此细微调整的动机是什么?后果是什么?


跟进问题:

更重要的是,在Attention is All you Need中,他们引入了缩放点积,其中它们除以一个常数因子(编码器隐藏向量大小的平方根),以避免 softmax 中的梯度消失。他们有什么理由不只使用余弦距离?

1个回答

The Attention is All You Need在激励引入1/dk因素:

  1. 为了说明点积变大的原因,假设qk是独立的随机变量,均值为 0,方差为 1。那么它们的点积,qk=i=1dkqiki具有均值 0 和方差dk.

我怀疑它暗示了余弦与点差异的直觉。余弦相似度忽略输入向量的大小 - 您可以缩放henchdec通过任意因素,仍然得到相同的余弦距离值。

脚注讨论了具有正态分布分量的向量,清楚地暗示它们的大小很重要。这表明点积注意力更可取,因为它考虑了输入向量的大小。并且幅度可能包含一些关于“绝对相关性”的有用信息QK嵌入。

更多挖掘后编辑:请注意,transformer 架构Add & Norm在每个注意力和 FF 块之后都有块。起初我认为它解决了你的问题:因为每个输入向量都被归一化,所以余弦距离应该等于点积。不过那是不正确的——这里的“范数”是指层归一化——类似于批量归一化,它具有可训练的均值和尺度参数,所以我上面关于向量范数的观点仍然成立。

最后,显然我们并不真正知道为什么 BatchNorm 的工作原理与 LayerNorm 相同。有趣的是,看起来像(1)BatchNorm(2)LayerNorm 和(3)你关于注意力机制标准化的问题——所有这些看起来都是以不同的方式看待相同的,但未被发现和明确陈述的事物。