SRU模型在文本分类中的应用

针对rnn网络训练速度较慢,不方便并行计算的问题,作者提出了一种SRU的网络,目的是为了加快网络的训练。

SRU模型、GRU模型与LSTM模型设计上十分的相似,LSTM包含三个门函数(input gate、forget gate和output gate),而GRU模型是LSTM模型的简化版,仅仅包含两个门函数(reset gate和update gate)。reset gate决定先前的信息如何结合当前的输入,update gate决定保留多少先前的信息。如果将reset全部设置为1,并且update gate设置为0,则模型退化为RNN模型。SRU模型结构类似于GRU网络,但又与GRU网络有所区别,图1为lstm网络结构,图2为gru网络结构,图三为sru网络结构。从图1和图2可以看出,一次计算需要依赖于上一次的状态s计算完成,因此作者修改网络结构为图3,类似于gru网络,只包含forget gate和reset gate,这两个函数可以在循环迭代前一次计算完成,便于并行计算。

LSTM模型公式
GRU模型公式
SRU模型在文本分类中的应用_第1张图片
SRU模型公式

实验步骤

1:本次实验采用SST2数据。实验之前首先对文本按单词进行分词,然后采用word2vec进行预训练(这里采用按字切词的方式避免的切词的麻烦,并且同样能获得较高的准确率)。

2:由于本次实验对比采用的是定长模型,因此需要对文本进行截断(过长)或补充(过短)。

3:实验建模Input。本次实验采用文本标签对的形式进行建模(text,label),text代表问题,label代表正负情绪标签。

4:将text进行Embedding(batch_size, sequence_len, embedding_size)表示。

5:对text采用双向序列模型计算特征(sequence_len, batch_size, rnn_size)。

SRU模型在文本分类中的应用_第2张图片
SRU代码实现

6:对时序模型特征进行选择,这里采用max-pooling。

7:损失函数采用负对数损失函数。

参数设置

1:、这里优化函数采用论文中使用的ADAM优化器。

2、学习速率为1e-4。

3:、训练100轮,大概需要0.5个小时的时间。

4、这里训练采用dropout=0.5和l2约束防止过拟合。

6、batch_size这里采用256字。

7、rnn_size为200

实验效果对比

SRU模型在文本分类中的应用_第3张图片
实验效果对比

:这里分别实验了双向的GUR算法、双向的LSTM算法和双向的SRU算法。单向GRU/LSTM/SRU的算法只能捕获当前词之前词的特征,而双向的GRU/LSTM/SRU算法则能够同时捕获前后词的特征,因此实验采用的双向的序列模型。从实验结果来看,LSTM算法性能优于GRU算法和SRU算法,SRU算法优于GRU算法;但是GRU算法训练速度要比SRU算法、LSTM算法快,实际使用可以根据自己的要求做出权衡。

参考文献

TRAINING RNNS AS FAST AS CNNS

如果有任何问题欢迎发送邮件到[email protected]

你可能感兴趣的:(SRU模型在文本分类中的应用)