实施专心汇总网络进行问题解答的问题

时间:2018-09-27 07:24:00

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

我正在跟踪this的论文来实施,而Attentive Pooling Network则要建立一个问答系统。在第2.1章中,它讨论了CNN层:

Extract from the original paper, chapter 2.1

其中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))

1 个答案:

答案 0 :(得分: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是超参数,因此W1可以轻松拥有相同的b1QA

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