讲解 Text-RCNN 如何兼顾 RNN 与 CNN 的优势:用双向循环结构获取上下文信息以避免 RNN 的位置偏置,再用最大池化自动筛选对分类最重要的特征,绕过 CNN 滑动窗口大小难定的问题,并给出词表示与文本表示的学习过程。
Recurrent Convolutional Neural Networks for Text Classification
RNN和CNN作为文本分类问题的主要模型架构,都存在各自的优点及局限性。
RNN擅长处理序列结构,能够考虑到句子的上下文信息,但RNN属于“biased model”,一个句子中越往后的词重要性越高,这有可能影响最后的分类结果,因为对句子分类影响最大的词可能处在句子任何位置。CNN属于无偏模型,能够通过最大池化获得最重要的特征,但是CNN的滑动窗口大小不容易确定,选的过小容易造成重要信息丢失,选的过大会造成巨大参数空间。
为了解决二者的局限性,这篇文章提出了一种新的网络架构,用双向循环结构获取上下文信息,这比传统的基于窗口的神经网络更能减少噪声,而且在学习文本表达时可以大范围的保留词序。其次使用最大池化层获取文本的重要部分,自动判断哪个特征在文本分类过程中起更重要的作用。
网络结构

词表示学习
作者提出将单词的左上下文、右上下文、单词本身结合起来作为单词表示。作者使用了双向RNN来分别提取句子的上下文信息。

得到句子中每个单词的左上下文表示和右上下文表示后,就可以定义单词w_i 的表示如下。

输入激活函数得到的潜在语义向量

文本表示学习
经过卷积层后,获得了所有词的表示,首先对其进行最大池化操作,最大池化可以帮助找到句子中最重要的潜在语义信息。

然后经过全连接层得到文本的表示,最后通过softmax层进行分类。



