最后一个时间步的状态与所有时间步的状态 RNN/LSTM/GRU

Last time step's state vs all time steps' state of RNN/LSTM/GRU

根据我目前的理解,在为序列分类任务训练了一个RNN/LSTM模型后,我可以通过以下两种方式进行预测,

  1. 获取最后一个状态并使用 softmax 层进行预测
  2. 取所有时间步的状态,在每个时间步进行预测,求和后取最大值

总的来说,有什么理由选择一个而不是另一个吗?或者这取决于应用程序?另外,如果我决定使用第二种策略,我应该为每个时间步使用不同的 softmax 层还是为所有时间步使用一个 softmax 层?

我从未见过任何实现第二种方法的网络。最明显的原因是除了最后一个状态之外的所有状态都没有看到整个序列。

以评论情绪为例class化。它可以从一些积极的方面开始,然后是 "but" 的缺点列表。 "but" 之前的所有 RNN 单元都会有偏差,它们的状态不会反映真实标签。他们中有多少人输出积极 class 以及他们有多自信重要吗?无论如何,最后一个单元格输出将是一个更好的预测器,所以我看不出有理由考虑之前的单元格输出。

如果数据方面的顺序在特定问题中不重要,那么 RNN 通常似乎不是一个好的方法。否则,你最好使用最后一个状态。


然而,在具有注意力机制的序列到序列模型中有一个例外(例如参见)。但它是不同的,因为解码器在每一步都预测一个 new 标记,所以它可以从查看早期状态中受益。此外,它还需要最终的隐藏状态信息。