论文《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的层次结构。这种结构并不涉及到纯粹的句法关系,而是神经网络的内部。

论文《A convolutional neural network for modelling sentences》的学习笔记
图1:动态卷积神经网络中对输入句子诱导的特征图的子图。全诱导图有多个这类子图,带有一组不同的边;子图可以在不同的层上合并。左边的图强调了合并后的节点。卷积滤波器的宽度分别为3和2。通过动态池,高层宽度的过滤器可以将输入句子中的短语联系起来。

; 2.2 网络结构

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

论文《A convolutional neural network for modelling sentences》的学习笔记
图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 =⎣⎡​∣W 1 ​∣​∣…∣​∣W s ​∣​⎦⎤​​

2.4 Wide Convolution

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

论文《A convolutional neural network for modelling sentences》的学习笔记
图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

Original: https://blog.csdn.net/qq_42801194/article/details/121506156
Author: Vincy_King
Title: 论文《A convolutional neural network for modelling sentences》的学习笔记

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/548698/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球