为什么attention decoder的输出需要和attention结合

Why an output of attention decoder need to be combined with attention

legacy_seq2seq in tensorflow

x = linear([inp] + attns, input_size, True)
# Run the RNN.
cell_output, state = cell(x, state)
# Run the attention mechanism.
if i == 0 and initial_state_attention:
  with variable_scope.variable_scope(variable_scope.get_variable_scope(), reuse=True):
    attns = attention(state)
else:
  attns = attention(state)
with variable_scope.variable_scope("AttnOutputProjection"):
  output = linear([cell_output] + attns, output_size, True)

我的问题是为什么我们需要将 cell_output 与 attns 结合起来而不是只使用 cell_output 作为输出?

谢谢

需要注意机制来将更多注意力放在一些特殊或特定节点上。

这里你cell_output是数学中的矩阵。以及深度学习中节点的表示或组合。

所以最后,如果您想为某些数据赋予更多优先级,则必须对 cell_output 进行一些更改。这就是我们通过对原始矩阵 (cell_output) 进行一些串联、加法或点积运算来实现的。

let x = 5
and you want to make x = 7
then you can do x = x + 2(one way).
so that means you have make changes to your x variable. 
same operation you are doing to apply attention to your hidden layers nodes or in your case cell_output. 
here x is cell_output and 2 is attention output.

如果你不对你的cell_output做任何改变,那你怎么会关注你的输出表示!!

你可以直接cell_output传递到最后一层而不用结合注意力矩阵或者不应用注意力。但是你需要知道为什么神经网络需要注意机制!!