这在 Vaswani 等人的Attention is All You Need论文中得到了回答(另请参阅其中一位合著者的演讲录音,以及这三个博客:here、here和here)。
- 如何在解码器多头注意力中屏蔽非法连接?
这很简单。注意力可以定义为
Attention(Q,K,V)=softmax(QKTdk−−√)V
其中是查询,是键,是值,是缩放常数,等于键维数的平方根。乘积和中的单词之间的相似度矩阵(其中每个单词都是使用嵌入编码的行)。在编码器中,每个都来自同一个文档。在解码器中,来自目标文档,而来自源文档。QKVdk−−√QKTQKQ,K,VQK,V
在 Transformer 网络(和类似网络)中,没有记录时间依赖性的直接机制。它被间接记录在嵌入中(通过对词嵌入和位置嵌入求和),但代价是在进行预测时会泄露“未来”值。请注意,在中,我们查看了中的每个单词与中的每个单词之间的相似性。为了防止将来泄漏,我们使用掩蔽。这是通过执行和一个的上三角矩阵的逐点乘积来完成的(如下图所示,图像源)。QKTQKQKT

这会将单词与出现在源单词之后(“未来”)的单词之间的相似性归零,从而防止预测依赖于在预测之前知道答案。由于我们删除了这些信息,因此模型无法使用它,我们保证只考虑与前面单词的相似性。
- 可以为层标准化设置一些任意的 max_length 吗?
在本文中,所有输入和输出的大小都是固定的,如果这是您所要求的。但是我不明白为什么这会是一个问题,因为标准化所做的是它使特征在层之间具有相同的均值和标准偏差。因此,如果某些东西在本地相对较大,则将映射到全球认为较大的东西。有关详细信息,请参阅 Ba 等人的层归一化论文。此外,这适用于每个特征,因此多余的零没有影响。dmodel