【问题标题】:Understanding Bahdanau's Attention Linear Algebra了解 Bahdanau 的注意力线性代数
【发布时间】:2020-09-18 06:52:18
【问题描述】:

Bahdanau 的 Additive Attention 被识别为下图中等式 4 的第二部分。



我试图找出矩阵w1w2hthsv 的形状,以便弄清楚this paper 中如何使用这种机制

  1. hths 可以有不同的最终尺寸吗?说(批量大小,总单位)和(批量大小,时间窗口)。上面提到的论文中的公式 8 似乎正在这样做。

  2. 上述论文中的公式 8 具有以下符号:

这具体扩展为什么?

(W1 . ht-1) + (W1 . Ct-1)

W1 . concatenation(ht-1, ct-1)

我已经看到两者都在使用。 非常感谢对上述矩阵形状的任何快速解释。

【问题讨论】:

标签: python tensorflow keras deep-learning attention-model


【解决方案1】:

也许通过一个具体的例子来理解这一点可能会有所帮助:假设您有一条 19 字的推文,并且您想将其转换为另一种语言。您为单词创建嵌入,然后通过 128 个单元的双向 LSTM 层传递它。编码器现在为每条推文输出 256 维的 19 个隐藏状态。 假设解码器是单向的,有 128 个单元。它开始翻译单词,同时在每个时间步并行输出隐藏状态。

现在您想让 Bahdanau 注意到上述等式。您想提供解码器的 s_tminus1 和编码器 (hj) 的所有隐藏状态,并希望使用以下步骤获取上下文:

生成 v * (w * s_tminus1 + u*hj)

采用上述的 softmax 得到每条推文的 19 个注意力权重,然后将这些注意力权重乘以编码器隐藏状态,得到加权和,这只是上下文。

请注意,在 Bahdanau 模型中,解码器应该是单向的。然后形状如下:

假设对齐层的 n=10 个单位来确定 w,u。那么:s_tminus1 和 hj 的形状将是 (?,128) 和 (?,19,256)。请注意,s_tminus1 是 t-1 时的单个解码器隐藏状态,hj 是双向编码器的 19 个隐藏状态。

我们必须将 stminus1 扩展为 (?,1,128) 以便稍后沿时间轴进行添加。 w,u,v 的层权重将由框架自动确定为 (?,128,10)、(?,256,10) 和 (?,10,1)。请注意 self.w(stminus1) 如何计算出 (?,1,10)。这被添加到每个 self.u(hj) 以给出 (?,19,10) 的形状。结果被馈送到 self.v ,输出是 (?,19,1) ,这是我们想要的形状 - 一组 19 个权重。 Softmaxing 这给出了注意力权重。

将此注意力权重与每个编码器隐藏状态相乘并求和即可返回上下文。

希望这可以阐明各种张量和权重形状的形状。

回答您的其他问题 - ht 和 hs 的尺寸可以不同,如上例所示。至于你的另一个问题,我已经看到 2 个向量被连接起来,然后对它们应用了一个权重..至少这是我记得在原始论文中读到的内容

【讨论】:

    【解决方案2】:

    我发现this 更有用,它显示了每个方程的输出以及编码器和解码器的形状。

    我们可以看到,您可以获得不同形状的编码器或解码器,并且 Attention 专注于序列中最重要的部分,而不是整个序列。此外,您可以使用this code,它展示了如何应用这些方程式

    FC = 全连接(密集)层 EO = 编码器输出 H = 隐藏状态 X = 解码器的输入

    score = FC(tanh(FC(EO) + FC(H)))

    【讨论】:

    • 图中的 tanh() 函数与您的 tanh 不匹配。你的没有解码器状态。哪个是正确的?
    • 由于编码器和解码器的形状可能不同,您可以参考上面的参考资料以便更好地理解。解码器隐藏状态和编码器输出将通过它们各自的线性层并具有各自的可训练权重。
    【解决方案3】:

    更直接地回答您的问题:

    1. hths 可以有不同的形状。重要的是,经过矩阵相乘后,它们是一样的,否则不能相加。即W1W2需要映射到相同的维度大小。
    2. 这应该被视为hc 的串联。我不认为将两者乘以同一个矩阵并相加很有意义。

    注意:第 1 部分)也可以通过在特征维度中连接 hths 并应用单个矩阵乘法来实现。这可能比两个单独的更有效。

    【讨论】:

    • 谢谢。所以 ht 可以是 (None, 1, 32) 等于 (batch size, 1, units) 而 hs 可以是 (None, 5, 10) 等于 (batch size, time window, features)?但是这样我就不能像你说的那样在第三维连接。因为两者的第二维不相等。
    猜你喜欢
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    相关资源
    最近更新 更多