文本分类之TextRCNN

TextRCNN

在TextCNN网络中,网络结构是 卷积层+池化层 的形式,卷积层用于提取n-gram类型的特征,在RCNN中,卷积层的特征提取的功能被RNN替代,因此整体结构变为了RNN+池化层,所以叫RCNN。

模型的流程

image.png

image.png

实验部分:

image.png

说明:

输入层:在RCNN模型中,输入层有一些不一样,它对每个词的左右各一个词也进行了输入,因此,准备了3个输入通道,如[‘我’,‘爱’,‘学习’]这句话,当输入'我'时,还会输入它的左右词,因此输入为['0', '我', '爱'](这里稍微抽象了一点),以此类推。所以代码的训练数据有3份,一份是正常数据,一份是每个词左边一个词的数据,一份是右边的,这三个词都会输出到相同的embedding矩阵中,输出三个词的embedding到后序结构中。

RNN层:这里将左边词语的embedding输入到一个前向RNN,右边词语的embedding输入到反向RNN,论文中说到这么做的好处是,可以抓到词汇更多的上下文信息。然后将word_embedding、两个RNN输出的两个向量进行拼接,所以得到50+128+128=306维的向量,每个词是306维。

池化层在文本中,后序接了一层kernel_size=1的Conv1D层,64个卷积核,可以认为是减少维度,每个词语输入306维,输出64维。然后进行池化,使用1Dmaxpooling,可以看成将每个维度上,所有词语特征的最大值作为该维度的特征,因此最终输出64维特征。

输出层:与以前实验相同,使用全连接层,softmax作为激活函数进行输出。

相关文章:

Recurrent Convolutional Neural Networks for Text Classification


            
            

本博客源码Github地址:

https://github.com/zeus-y/

请随手给个star,谢谢!

打赏

评论