关于用于分类的 LSTM 结构(在这种情况下,它是情感分析)

About LSTM structure for classification ( in this case, it's Sentiment Analysis)

我正在尝试了解 LSTM 如何解决情感分析问题。目前,我对这种结构感到困惑:

这是我的问题列表:

After you fed LSTM layer with vectors which represented each words of each sentences of the dataset, what does LSTM layer do with them and what is the output?

您展示的架构的最终输出(直到它被输入 softmax 为止)是一个句子嵌入,即表示句子的单个(高维)浮点向量。 (您展示了展开的版本,但我发现同时考虑其真正的卷起形式也很有用。)

就此问题而言,它与简单的 RNN 做同样的事情,因此请确保您首先了解这一点。有很多文章和视频解释它。例如。 https://towardsdatascience.com/animated-rnn-lstm-and-gru-ef124d06cf45

What does the forget gate do?

它试图学习哪些是更重要的词。如果接受情感分析训练,它有望学会为有感情的词赋予更多权重,而为没有情感的词赋予更少权重。您可能还会看到它被称为守门。权重高记单词,权重低记单词

假设你有一个很长的句子:“这部电影有一些非常有趣的角色和精湛的动作场面,由汤姆史密斯执导,迪克琼斯制作,并于 2019 年开始制作。” RNN 进行情感分析的问题是它一次保持一个词的状态。每走一步,它都会丢失一些之前发生的事情。到最后它几乎忘记了早期的积极话语。

您真的希望它被视为:“真正有趣的角色,精湛的动作场面。”。这是一个更短的句子来学习和理解。这就是 LSTM 中的遗忘门试图为您做的事情。

剧透警告:它做得不是很好,但明显比根本不做要好。

Why there are two LSTM layers?

允许更复杂的理解和更好的句子嵌入。它与在全连接神经网络中添加另一层相同。然而,LSTM 不能很好地扩展到两层之外。

how the model know that sentence's sentiment base on that vector exactly? Does that vector have some kind of features that make it positive or negative

第二个子问题的答案是“可能,但不总是以人类可读的形式”。您架构的最后一层正在尝试使用经典的全连接神经网络来了解向量的每个元素表示什么样的情绪。

例如假设您使用维度为 100 的向量,并且您想将其分为三类 类:愤怒、快乐、悲伤。然后,您的训练数据就会出现诸如“今天一切顺利”之类的句子,并带有“快乐”的标签。也许那句话在 LSTM 生成的向量的元素 77 中有很高的数字。也许大多数“快乐”的句子在该元素中具有很高的价值,但愤怒和悲伤的句子没有显示出它的模式。所以它给了一个高的正权重连接元素 77 到快乐输出,一个零权重连接 77 到每个愤怒和悲伤。

如果您的目标是提高您的直觉,那么构建仅包含 2 或 3 个维度和几个训练语句的模型,然后在您的训练数据上故意过度拟合该模型可能会很有趣。有时你会得到噪音,但有时你会很幸运,可以了解每个单词的向量如何相互作用,在输出中给出不同的模式,以及最后一层如何将它们组合起来进行预测。