【问题标题】:Problem implementing Attentive Pooling Network for Question Answering为问答实施注意力池网络的问题
【发布时间】:2023-03-04 11:59:01
【问题描述】:

我正在关注this 论文来实施和注意力池网络来构建问答系统。在第 2.1 章中,它谈到了 CNN 层:

q_emb 是一个问题,其中每个标记(单词)都已使用 word2vec 嵌入。 q_emb 的形状为 (d, M)d 是词嵌入的维度,M 是问题的长度。以类似的方式,a_emb 是形状为(d, L) 的答案的嵌入。 我的问题是:卷积是如何完成的,W_1b_1 怎么可能在这两个操作中是相同的?在我看来,至少b_1 在每种情况下都应该有不同的维度(它应该是一个矩阵,而不是一个向量......)。

目前我已经在 PyTorch 中实现了这个操作:

### Input is a tensor of shape (batch_size, 1, M or L, d*k)
conv2 = nn.Conv2d(1, c, (d*k, 1))

【问题讨论】:

    标签: matrix neural-network conv-neural-network


    【解决方案1】:

    我发现论文的作者相信读者可以在这里假设/弄清楚很多事情。根据我的阅读,我可以收集到以下信息:

    1. W1 应该是 1 X dk 矩阵,因为这是唯一可以将 Q 转换为 c X M 矩阵的形状。
    2. 假设这一点,b1 不必是矩阵。从上面,您可以得到一个 c X 1 X M 矩阵,该矩阵可以轻松地重塑为 c X M 矩阵,b1 可以是一个 c X 1 向量,可以广播并添加到矩阵的其余部分。

    由于cdk 是超参数,您可以轻松地为QA 设置相同的W1b1

    这是我目前的想法,我会重新阅读和编辑,以防万一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 2023-03-12
      • 2022-06-14
      • 2019-11-02
      相关资源
      最近更新 更多