在文本分类中使用 GloVe 预训练模型时,RNN、LSTM 获得不良输出的原因是什么?

数据挖掘 nlp word2vec 词嵌入 情绪分析
2022-02-24 05:55:49

问题在于通过预训练模型(例如 GloVe)训练我们的模型后获得的准确性和 f1 结果。当我将CNN用作分类器时,结果如下:

acc: 0.9345 - val_loss: 0.1513 

但是当我应用 RNN 和 LSTM 作为分类器时,结果如下:

24931/24931 [==============================] - 188s 8ms/step - loss: 7.9559 - acc: 6.0166e-04 - val_loss: 7.9904 - val_acc: 0.0000e+00
Epoch 2/4
24931/24931 [==============================] - 189s 8ms/step - loss: 7.9645 - acc: 0.0000e+00 - val_loss: 7.9904 - val_acc: 0.0000e+00

上述结果是通过 RNN 和 LSTM 达到的。

问题是我使用相同的数据集、相同的结构和相同的 GloVe,但我达到了 CNN 的 acc: 0.9345 并获得了 LSTM 和 RNN 的 acc: 0.0000e+00。值得注意的是,我已经更改了优化器,但仍然得到相同的结果。应用的数据集包含 41,399 个项目,总计 60.3 MB,也是二进制的。任何指导将不胜感激,因为我是使用 GloVe 的初学者。

我在 ubuntu 中使用带有 python 3.5 的 tensorflow 后端应用 keras。

1个回答

我已经处理了 RNN 和 LSTM 代码,最后我找到了两个解决方案来获得更好的准确度测量结果,如下所示:首先我改变了激活函数、优化器和学习率,但值得注意的是激活函数具有最多影响和我使用的第二个技巧是删除停用词,现在代码工作正常。我希望它是有用的。