IMDB情感分类

任务详情

情感分类是NLP中非常常见的一个任务,它要求根据一段文字描述,判断它所表达的情绪,是正面的还是负面的,比如对影评情绪的分类,IMDB数据集正是如此,它包含2.5万个正面情绪的影评,2.5万个负面情绪的影评。下面将介绍几种不同的方法及结果对比。

方案对比

全连接神经网络

训练之前,对数据的预处理尤为关键,电影评论都是文字信息,必须对其进行转换。比如Token化数据,使用W2V替换成词向量等等。

文本的长度长短不一,需要对所有样本截取相同的长度,并对长度不够的做填充。对于神经网络,第一层需要做Embedding,Token后的数据不使用与训练,Embedding层训练得到的权重矩阵即为词向量。

不预加载权重

网络模型如下:

  • Input 层
  • Embedding 层
  • 有32个神经元的全连接层
  • 输出层
    IMDB情感分类_第1张图片

使用预加载权重

与上面模型不同,Embedding权重是词向量矩阵,可以使用预训练的词向量矩阵替换Embedding权重。当训练数据量较少时,Embedding网络训练得到的向量矩阵往往不太准确,使用预训练向量矩阵可能会好些。模型其他部分与上面模型一致。

  • Input 层
  • Embedding 层 (权重加载预训练的词向量矩阵)
  • 有32个神经元的全连接层
  • 输出层
    IMDB情感分类_第2张图片

RNN网络

RNN网络具有记忆功能,使用于处理时间序列的数据,但在传递过程中容易产生梯度消失问题。网络模型与上文类似:

  • Input 层
  • Embedding 层
  • RNN层
  • 输出层
    IMDB情感分类_第3张图片

LSTM网络

相比于RNN存在梯度消失的问题,LSTM增加了记忆门、遗忘门和输出门,可以很好的处理长程依赖,解决了梯度消失问题。模型如下:

  • Input 层
  • Embedding 层
  • LSTM层
  • 输出层
    IMDB情感分类_第4张图片

双向LSTM网络

单向LSTM网络中,当前时间存储的状态包含了前面序列的信息,但没有利用到之后序列的信息,双向LSTM网络解决了这一问题。模型如下:

  • Input 层
  • Embedding 层
  • BiLSTM层
  • 输出层
    IMDB情感分类_第5张图片

结果对比及结论

模型 参数量 准确率 训练时间(分钟)
NN 130W 0.8646 0.18
NN(加载词向量) 130W 0.6745 0.11
RNN 50W 0.8086 1.44
LSTM 51W 0.8502 5.69
BiLSTM 52W 0.8673 10.99

对比不同模型训练结果可以得出以下结论:

  • 使用全连接神经网络效果最好,模型简单往往不容易过拟合
  • 特定情况下,使用预训练的词向量不一定能达到最好效果,比如预训练词向量用于法律文档分类中效果然而不如不加载。
  • RNN模型训练时间慢,准确率也不高,实际应用中也较少
  • LSTM以及BiLSTM效果远好于RNN网络,与NN效果差不多,但是训练时间太长。

参考书籍

《Python深度学习》

你可能感兴趣的:(深度学习)