论文《A convolutional neural network for modelling sentences》的学习笔记

论文原文及译文下载
算法实现

1. 引言

自然语言处理的基础问题在于句子的语义语法表示,其他特定任务如分类等都是在语义语法表示的基础上进行高层次的处理,因此,如何对句子进行表达就成为了核心的问题。

针对于当前存在的模型,本文提出了Dynamic Convolution Neural Network (DCNN)方法,利用宽卷积和k-max pooling采样,构造了一种类似parse tree解析树的结构,能够提取长距离的信息。

该模型在四个实验三个数据集上进行了测试,取得了不错的结果。

2. 模型

2.1 模型的特点
  1. 保留了句子中词序信息和词语之间的相对位置。借助宽卷积操作,在一定程度上形成了n-gram形式的特征抽取,使得模型对于句子的先后顺序更为敏感。
  2. 传统卷积包括了宽卷积和窄卷积,宽卷积的结果是传统卷积的一个扩展,也是n-gram的一个扩展,考虑到句子边缘信息,给予了来自句子中每个单词的信号很大程度上一致的重要性。
  3. 模型不需要任何的先验知识,如句法依存树等,并且模型考虑到了句子中相隔较远的词语之间的语义信息。
  4. 由下图可以看到,低维度的特征被提取出来后,在更高的维度可以被关联起来,从而使得高纬度的特征在一定程度上能够提取到整体句子的信息。针对CNN只能提取局部信息的问题,这里能做到一定的改善。

多层卷积和动态池化操作在输入句子上产生一个结构化的特征图。图1说明了这样一个induced feature graph。较高层次的小过滤器可以捕获在输入句子中相距很远的非连续短语之间的语法或语义关系。特征图引入了一种有点类似于语法parse tree的层次结构。这种结构并不涉及到纯粹的句法关系,而是神经网络的内部。
请添加图片描述
图1:动态卷积神经网络中对输入句子诱导的特征图的子图。全诱导图有多个这类子图,带有一组不同的边;子图可以在不同的层上合并。左边的图强调了合并后的节点。卷积滤波器的宽度分别为3和2。通过动态池,高层宽度的过滤器可以将输入句子中的短语联系起来。

2.2 网络结构

网络主要包括两种不同的层,一维卷积层(one-dimensional convolutional layers)和动态k-max池化层(dynamic k-max pooling layers),结构如下:

请添加图片描述
图3:七个单词输入句子的DCNN。Word嵌入的大小为d=4。该网络有两个卷积层,每个层有两个特征映射。这两层滤波器的宽度分别为3和2。(动态)k-最大池化层的值k分别为5和3。

模型具体操作流程文中主要分成了7个部分:① Embedding 词嵌入;② WideConvolution 宽卷积;③ k-Max Pooling k-Max池化;④ Dynamic k-Max Pooling 动态k-max池化;⑤ Non-linear Feature Function 非线性特征函数;⑥ Multiple Feature Maps多特征映射;⑦ Folding 折叠。

以下将会基于以上7部分进行阐述。

2.3 Embedding

这里和一般的网络没有区别,将输入句子s中的每个词w映射为d维向量,同时在训练的过程中对初始化的向量进行修改,如下:

s = [ ∣ ∣ ∣ W 1 . . . W s ∣ ∣ ∣ ] s= \begin{gathered} \begin {bmatrix} | & |&| \\ W_1 & ...&W_s \\| & |&| \end{bmatrix} \end{gathered} s=W1...Ws

2.4 Wide Convolution

卷积部分用的是one-dim一维卷积,也就是filter的height固定为1。
本文用的是宽卷积的方式,宽卷积指的是在卷积操作时对输入矩阵的边缘进行padding补零,这样的好处是不会丢失边缘信息,如下:

请添加图片描述
图2:窄的和宽的卷积类型。滤波器 m m m的尺寸为 m = 5 m=5 m=5

s1~s7可以看为像素点,c5表示连接有5个原像素点的卷积核,一共3个。左图是一个窄卷积,右图是一个宽卷积。那么左图的输出尺寸为3,具体的计算为(7−5)+1=3,5为一个卷积连接5个原矩阵中的点。右边的输出尺寸为(7+2∗4−5)+1=11,2*4表示有8个卷积使用了填充0的方法。

从卷积的形式来说,可以看成对输入句子的每一维做了n-gram,其中n<=m。

2.5 k-Max Pooling

接下来,我们描述了一个池操作,它是在Max-TDNN句子模型中使用的时间维数上的最大池的推广,与卷积网络中应用的局部最大池操作不同。给定一个值k和一个长度为 p ≥ k p≥k pk的序列 p ∈ R p p∈R^p pRp,k-max池选择p的k个最高值的子序列 p m a x k p^k_{max} pmaxk p m a x k p^k_{max} pmaxk中值的顺序对应于p中值的原始顺序。

k-max池化操作使得可以将p中的k个最活跃的特征集合在一起,这些特征可能是多个位置分开的;它保留了特征的顺序,但对它们的特定位置不敏感。它还可以更精细地识别出特征在p中被高度激活的次数,以及特征在p中发生变化的进程。在最顶卷积层之后的网络中应用k-max池化算子。这就保证了对全连接层的输入与输入句子的长度无关。但是,正如我们接下来所看到的,在中间卷积层中,池化参数k并不是固定的,而是动态选择的,以便于平滑地提取高阶和更长范围的特征。

2.6 Dynamic k-Max Pooling

一个动态的k-max池化操作是一个k-max池化操作,其中我们设k是句子长度和网络深度的函数。虽然有许多函数是可能的,但我们只是简单地将池化参数建模如下:
k l = max ⁡ ( k t o p , ⌈ L − l L s ⌉ ) ( 4 ) k_l=\max(k_{top},\lceil \frac{L-l}{L}s\rceil) (4) kl=max(ktop,LLls)(4)
其中, l l l为应用池化的当前卷积层数, L L L为网络中卷积层的总数; k t o p k_{top} ktop是最顶部卷积层的固定池化参数(3.2节)。

例如,在具有三个卷积层和 k t o p = 3 k_{top}=3 ktop=3的网络中,对于长度为 s = 18 s=18 s=18的输入句,第一层的池化参数为 k 1 = 12 k_1=12 k1=12,第二层的池化参数为 k 2 = 6 k_2=6 k2=6;第三层具有固定的池化参数 k 3 = k t o p = 3 k_3=k_{top}=3 k3=ktop=3

公式4是描述一个长度为 s s s的句子上的第 l l l阶特征进展的相关部分所需的值数的模型。对于情感预测中的一个例子,根据方程,正词在长度为 s s s的句子中最多出现 k 1 k_1 k1次,而否定短语或子句等二阶特征最多出现 k 2 k_2 k2次。

2.7 Non-linear Feature Function

将(动态)k-max池应用于卷积结果后,将偏置 b ∈ R d b∈R^d bRd和非线性函数 g g g按分量应用于合并矩阵。对于合并矩阵的每一行,都有一个单一的偏差值。

简单说,也就是在k-max pooling之后,与传统的CNN一样,对于pooling后的结果加上一个偏置b进行非线性激活。

如果我们暂时忽略池化层,我们可以说明如何计算矩阵 α \alpha α中的每个d维列a,然后得到卷积层和非线性层。将M定义为对角线的矩阵:

M = [ d i a g ( m : , 1 ) , . . . , d i a g ( m : , m ) ] ( 5 ) M=[diag(m_{:,1}),...,diag(m_{:,m}) ] (5) M=[diag(m:,1),...,diag(m:,m)](5)

其中m是宽卷积的d个滤波器的权值。然后,在第一对卷积层和一个非线性层之后,对于一些索引j,得到矩阵a中的每一列a如下:

a = g ( M [ w j . . . w j + m − 1 ] + b ) ( 6 ) a=g(M \begin{gathered} \begin {bmatrix} w_j \\ ... \\w_{j+m-1} \end{bmatrix} \end{gathered}+b) (6) a=g(Mwj...wj+m1+b)(6)

这里 a a a是一阶特征。公式(6)基于一阶特征 a j , . . . , a a + m ′ − 1 a_j,...,a_{a+m'-1} aj,...,aa+m1和另一个权重矩阵 M ′ M' M也同样得到了二阶特征。除了池化,公式6表示特征提取函数的一个核心方面,并有一个相当一般的形式,我们将返回到下面。特征函数与池化一起池化,诱导位置不变性,使高阶特征范围成为变量。

2.8 Multiple Feature Maps

F i F_i Fi表示第 i i i阶的特征图。在对象识别的卷积网络中,为了增加学习到的一定阶的特征检测器的数量,多个特征映射 F 1 i , . . . , F n i F^i_1,...,F^i_n F1i,...,Fni可以在同一层并行计算。每个特征映射 F j i F^i_j Fji的计算方法是将排列在矩阵 m j , k i m^i_{j,k} mj,ki中的不同滤波器与每个低阶 i − 1 i-1 i1特征映射 F k i − 1 F_k^{i−1} Fki1进行卷积,并将结果求和:

F j i = ∑ k = 1 n m j , k i ∗ F k i − 1 ( 7 ) F^i_j=\sum^n_{k=1}m^i_{j,k}*F_k^{i-1} (7) Fji=k=1nmj,kiFki1(7)

其中,∗表示宽卷积。权值 m j , k i m^i_{j,k} mj,ki构成一个4阶张量。经过宽卷积后,首先将动态k-max池化,然后将非线性函数分别应用于每个映射。

2.9 Folding

不引入任何额外的参数。在卷积层之后和(动态)k-max池之前,只对特征映射组件中的每两行求和。对于d行的映射,折叠返回d/2行的映射,从而将表示的大小减半。对于折叠层,第i阶特征检测器现在依赖于 i − 1 i−1 i1阶下映射中的两排特征值。

2.10 Other

其他与大部分模型一致,如果在分类任务,增加全连接层后接softmax,损失函数使用交叉熵,正则化部分使用L2正则,使用mini-batch和gradient-based方法进行优化。

3. 实验

  • 输出层是一个类别概率分布(即softmax),与倒数第二层全连接;
  • 代价函数为交叉熵,训练目标是最小化代价函数;L2正则化;
  • 优化方法:mini-batch + gradient-based (使用Adagrad update rule, Duchi et al., 2011)
3.1 电影评论情感分析

前两个实验涉及到斯坦福情绪树银行对电影评论情绪的预测。输出变量在一个实验中是二分类的,在另一个实验中可能有五种可能的结果:消极,有点消极,中性,积极,积极。在二分类的情况下,使用了6920个训练句、872个开发句和1821个测试句。同样地,在细粒度的情况下,使用标准的8544/1101/2210分割。作为训练句子的子部分出现的标记短语被视为独立的训练实例。词汇表的大小是15448个。表1详细说明了实验结果。

表1:电影评论数据集中情感预测的准确性。前四个结果来自Socher等人。基线NB和BINB是朴素贝叶斯分类器,分别具有unigram特征和unigram、bigram特征。SVM是一种具有unigram和bigram特性的支持向量机。RECNTN是一种具有基于张量的特征函数的递归神经网络,它依赖于解析树给出的外部结构特征,在RECNNs中表现最好。
请添加图片描述
在三个神经句子模型MaxTDNN、NBoW和DCNN中,词向量是随机初始化的模型的参数;它们的维数d设置为48。

  • Max-TDNN:在第一层的狭窄卷积中有一个宽度为6的滤波器;较短的短语用零向量填充。卷积层之后是非线性层、最大池化层和软最大分类层。
  • NBoW:对单词向量求和,并应用一个非线性,然后是一个softmax分类层。所采用的非线性是tanh函数。
  • DCNN:
    • 二分类结果是基于一个DCNN,它有一个宽卷积层的折叠层,一个动态k-max池化层和非线性;它有第二个宽卷积层,然后是折叠层、k-max池化层和非线性。卷积滤波器的宽度分别为7和5。顶部k-max池的k值为4。第一卷积层的特征映射数为6个;第二个卷积层的映射数为14个。该网络的顶部是一个softmax分类层。
    • 细粒度结果的DCNN具有相同的架构,但过滤器的大小分别为10和7,顶部池化参数k为5,映射数分别为6和12。这些网络使用了大量的非线性网络函数。在训练时,我们将dropout应用于最后一个tanh非线性后的倒数第二层。

可以看出DCNN明显优于其他神经和非神经模型。NBoW的性能类似于非神经n-gram的分类器。Max-TDNN的表现比NBoW更差,这可能是由于Max池化操作的过度池化;后者丢弃了输入句子中单词的大部分情感特征。除了使用外部解析器为模型生成结构特征的RecNN外,其他模型还使用基于n-gram或神经特征,不需要外部资源或其他注释。

3.2 TERC问题数据集

为了帮助回答问题,一个问题可以被归类为属于许多问题类型中的一种。TREC问题数据集涉及六种不同的问题类型,例如,问题是关于一个位置,关于一个人还是关于一些数字信息。训练数据集由5452个有标记的问题组成,而测试数据集由500个问题组成。

表2:在TREC问题数据集上进行六向问题分类的准确性。第二列详细介绍了在各种方法中使用的外部特性。前四个结果分别来自Li和Roth,Blunsom,Huang和Silva等人。
请添加图片描述
使用与前两个实验的二元情感实验中几乎相同的超参数对该数据集上的三个神经模型进行评估。由于数据集相当小,使用带有d=32的低维词向量,这些向量通过无监督方式训练的嵌入来预测发生的上下文。

DCNN使用一个卷积层,具有特征映射大小为8和5的滤波器。DCNN与表2中其他高性能方法的性能差异不显著(p<0.09)。考虑到用于训练网络的唯一标记信息是训练集本身,值得注意的是,该网络与最先进的分类器的性能相匹配,这些分类器依赖于大量的工程特征、规则和以及手工编码的资源。

3.3 Twitter情感识别

在一个大型的推文数据集中训练模型,其中一条推文根据其中出现的情绪符号被自动标记为积极或消极。该训练集由160万条带有基于表情符号的标签的推文和大约400条手工注释的推文的测试集组成。按照Go等人描述的程序对推文进行最低限度的预处理;此外,我们还小写了所有的标记。这导致了76643个单词类型的词汇表。DCNN和其他神经模型的结构与前两个二元实验中使用的结构相同。随机初始化的单词嵌入的长度增加到d=60的维度。

表3:Twitter情感数据集的准确度。这三种非神经分类器都基于unigram和bigram特征;结果来自(Go et al.,2009)。
请添加图片描述
从表3可以看到,相对于基于非神经n-gram的分类器,DCNN的性能显著提高;在存在大量训练数据的情况下,这些分类器构成了特别强的基线。我们可以看到,在自动提取的基于表情符号的标签上训练情绪分类器的能力可以扩展到DCNN,并导致了高度精确的性能。DCNN和NBoW之间的性能差异进一步表明,DCNN捕获基于长n-grams的特征和分层结合这些特征的能力是非常有益的。

3.4 Visualising Feature Detectors 可视化特征检测器

DCNN中的一个滤波器与一个特征检测器或神经元相关联,该神经元在训练期间学习到在呈现特定的输入单词序列时特别活跃。在第一层中,序列是输入句子中连续的n-gram;在更高的层次中,序列可以由多个单独的n-grams组成。在二元情感任务训练的网络的第一层中可视化了特征检测器。由于滤波器的宽度为7,对于每个288个特征检测器,我们根据检测器的激活情况对验证和测试集中发生的所有7-grams进行排序。

图4给出了四个特征检测器的前5个7-gram。除了对积极和消极情绪的预期探测器外,我们还发现了“not”等粒子的探测器,可以否定情绪,从而增强情绪。我们发现了多个其他显著结构的检测器,包括“all”或“”,与…“,”…”。特征检测器不仅学会识别单个n-grams,还学会识别n-grams内具有语法、语义或结构意义的模式。
请添加图片描述
图4:在网络第一层的4个特征探测器上的前5个7-grams。

4. 总结

  • 本文描述了一个动态卷积神经网络,它使用动态k-Max池化算子作为一个非线性子采样函数。
  • DCNN构造出来的类似parse tree的形式的Induced Feature Graph很有吸引力,它能够捕获不同大小的词关系,对于文本的表示,假如能够融入句法方面的知识,或者提取出这方面的特征是一个很有想象力的方向。
  • 从实验结果来看,DCNN在问题和情感分类方面实现了高性能,而不需要解析器或其他资源提供的外部特性,在简便性更胜一筹。

参考

gentelyang 博客
lpty 博客
紫衣仙女 手记

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值