Recurrent Convolutional Neural Networks for Text Classification 阅读笔记

原文链接: http://chenhao.space/post/93d3104e.html

Introduction

题目:Recurrent Convolutional Neural Networks for Text Classification

来源:AAAI2015

本文提出了一种将RNN结构和CNN结构结合起来的一种模型,能够更好的获取语义信息。

利用RNN循环结构捕获上下文信息,利用CNN中的max-pooling方法提取文本中的重要特征,根据这些特征来进行文本分类。实验结果表明,该模型在document-level的数据集上表现的更好。

RCNN结构图

传统的特征表示方法会忽略上下文信息和词的顺序,以至于不能很好的捕捉到词的语义信息,如one-hot编码。

N-gram语言模型会产生数据稀疏的问题(数据稀疏介绍看这里:N-gram语言模型中的数据稀疏)。

Word embedding是一种分布式的词表示方法,很好的解决了数据稀疏的问题,并且可以捕捉有意义的句法和语义规律。

Recursive Neural Network(RecursiveNN):

  • 优点:建立句子表示有效
  • 缺点:它捕获句子的语义是通过文本树结构,性能也是在很大程度上依赖文本树结构;耗时;两个句子之间的关系很难用树结构来表示,所以RecusiveNN不适合建模长句子或者文档级文本。
  • 时间复杂度 O ( n 2 ) O(n^2) O(n2)

Recurrent Netural Network(RecurrentNN)

  • 优点:耗时短;能够捕捉上下文信息,有助于捕获长文本的语义。
  • 缺点:有偏模型(biased model),在文本后面的词所占的比重比之前的词要大。
  • 时间复杂度 O ( n ) O(n) O(n)

Convolutional Neural Network(CNN)

  • 优点:无偏模型(unbiased model),通过max-pooling提取重要特征,比RecursiveNN和RecurrentNN在提取文本语义方面更好。
  • 缺点:CNN使用简单的卷积核作为固定窗口。但是这种内核很难确定窗口的大小,窗口小了会丢失一些关键信息,窗口大了会导致出现一个很难训练的大参数空间。
  • 时间复杂度 O ( n ) O(n) O(n)

Recurrent Convolutional Netural Network(RCNN)

  • 优点:
    • 使用双向RNN结构,比传统的基于窗口的神经网络引入更少的噪声。
    • 学习到的词表示可以最大程度上捕获到上下文信息。
    • 文本表示时可以保存更大范围的词序。
    • 结合recurrent structure和max-pooling,利用了RNN和CNN的优势。
  • 时间复杂度 O ( n ) O(n) O(n),因为Recurrent structure的时间复杂度时 O ( n ) O(n) O(n),pooling layer时间复杂度也是 O ( n ) O(n) O(n),并且它们时串联的,所以整个模型的时间复杂度时 O ( n ) O(n) O(n)

Model

注释图

模型的输入是由词序列 w 1 , w 2 , . . . , w n w_1,w_2,...,w_n w1,w2,...,wn 表示的文档 D D D,输出是预测文档 D D D属于那一类。我们用 p ( k ∣ D , θ ) p(k|D,θ) p(kD,θ) 表示文档 D D D属于类别 k k k的概率,其中 θ θ θ是模型中的参数。

Word Representation Learning

我们用一个词及其上下文来表示这个词,这样可以获得更准确的词意。

其中, w i w_i wi 表示第 i i i 个词, c l ( w i ) c_l(w_i) cl(wi) 表示单词 w i w_i wi 左边的上下文信息, c r ( w i ) c_r(w_i) cr(wi) 表示单词 w i w_i wi 右边的上下文信息。

因为第一个词的左边没有上下文信息,最后一个词的右边没有上下文信息,所以我们设置一个共享参数 c l ( w 1 ) c_l(w_1) cl(w1) c r ( w n ) c_r(w_n) cr(wn) 分别作为第一个词的左边上下文信息、最后一个词右边的上下文信息。

e ( w i − 1 ) e(w_{i-1}) e(wi1) 表示词 w i − 1 w_{i-1} wi1 的word embedding, W ( l ) W^{(l)} W(l) 是一个将hidden layer(context)转换成下一个 hidden layer 的矩阵参数, W ( s l ) W^{(sl)} W(sl) 是将当前词同它下一个词的左上下文相结合的矩阵。 f f f 是一个非线性激活函数。

我们定义词 w i w_i wi 的表示为:
x i = [ c l ( w i ) ; e ( w i ) ; c r ( w i ) ] \Large x_i=[c_l(w_i);e(w_i);c_r(w_i)] xi=[cl(wi);e(wi);cr(wi)]
将左侧的上下文向量 c l ( w i ) c_l(w_i) cl(wi)、word embedding e ( w i ) e(w_i) e(wi) 和右侧上下文向量 c r ( w i ) c_r(w_i) cr(wi) concate。

这种方式利用了上下文信息,与CNN相比能够更好的消除词 w i w_i wi词意的模糊性,因为CNN使用的是一个固定的窗口(仅仅使用到了部分信息)。

然后再将 x i x_i xi 作线性变化,经过 t a n h tanh tanh 激活函数得到 y i ( 2 ) y_i^{(2)} yi(2)
y i ( 2 ) = t a n h ( W ( 2 ) x i + b ( 2 ) ) \Large y_i^{(2)}=tanh(W^{(2)}x_i+b^{(2)}) yi(2)=tanh(W(2)xi+b(2))
y i ( 2 ) y_i^{(2)} yi(2) 是一个浅语义向量(latent semantic vector in which each semanticfactor will be analyzed to determine the most useful factorfor representing the text.)

Text Representation Learning

y ( 3 ) = max ⁡ i = 1 n y i ( 2 ) \Large y^{(3)}=\max_{i=1}^ny_i^{(2)} y(3)=i=1maxnyi(2)

y i ( 2 ) y_i^{(2)} yi(2) 每一维的最大值组成 y ( 3 ) y^{(3)} y(3),这个过程也就是 Max-pooling 过程。

Max-pooling 可以将不同长度的文本转换成固定长度的向量表示,并且可以捕获整个文本的信息。

这里作者提到了为什么不用 average pooling ,因为只有很少一部分词或者词组是对捕获文档信息有用的,max-pooling 可以在文档中找到最重要的潜语义信息。

然后再经过线性层和softmax,得到分类结果的概率。

线性层:
y ( 4 ) = W ( 4 ) y ( 3 ) + b ( 4 ) \Large y^{(4)}=W^{(4)}y^{(3)}+b^{(4)} y(4)=W(4)y(3)+b(4)
Softmax:
p i = e x p ( y i ( 4 ) ) ∑ k = 1 n e x p ( y k ( 4 ) ) \Large p_i=\frac{exp(y_i^{(4)})}{\sum_{k=1}^{n}exp(y_k^{(4)})} pi=k=1nexp(yk(4))exp(yi(4))

Training

Training Network parameters

We define all of the parameters to be trained as θ θ θ
θ = E , b ( 2 ) , b ( 4 ) , c l ( w 1 ) , c r ( w n ) , W ( 2 ) , W ( 4 ) , W ( l ) , W ( r ) , W ( s l ) , W ( s r ) \large θ={E,b^{(2)},b^{(4)},cl(w_1),cr(w_n),W^{(2)},W^{(4)},W^{(l)},W^{(r)},W^{(sl)},W^{(sr)}} θ=E,b(2),b(4),cl(w1),cr(wn),W(2),W(4),W(l),W(r),W(sl),W(sr)
Training的目标是使最大似然函数的参数 θ θ θ

利用梯度下降优化训练目标,其中 α \alpha α 是learning rate.

Pre-training Word Embedding

在本论文中,使用了Skip-gram model去预训练word embedding。

通过最大化平均对数概率:

∣ V ∣ |V| V 是未标记文本的词典, e ′ ( w i ) e'(w_i) e(wi) w i w_i wi 的另一个embedding。


Experiment

Datasets

Results

Comparison

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值