当前位置: 代码迷 >> 综合 >> CS224N学习笔记(十一) ConvNets for NLP
  详细解决方案

CS224N学习笔记(十一) ConvNets for NLP

热度:83   发布时间:2023-12-15 18:44:07.0

1.从RNN到CNN

RNN网络的典型缺点:

  • 当没有前缀时,无法捕获词与信息(RNN是顺序型的,必须要通过顺序推导)
  • RNN的编码通常把很多词编成一个向量(这里可以用attention解决)

在使用RNN进行文本的分类是就会遇到这两个问题,所以RNN进行文本分类的效果并不是很好。

应用CNN的一些想法:需要固定每个词序列的长度,而不考虑语法或者连贯的正确性。比如,把这样一句tentative deal reached to keep government open英文拆成tentative deal reached, deal reached to, reached to keep, to keep government, keep government open。

2.1D convolution for text

对于cnn在text上的应用,大致的过程如图所示:
首先有一个文版的词向表示:
在这里插入图片描述
然后有个卷积核(size=3),如图:
在这里插入图片描述
之后把卷积核在词向量上做一维卷积结果如图所示:
在这里插入图片描述
之后可以加多个卷积核,得到多维的数据,还可以加pading填充,使卷积的长度不变。
也可以加入池化层,比如maxpool/avergepool,如图所示:
在这里插入图片描述
或者也可以在CNN中设置stride,或者采用local max pool或者k-max-pool等等。

3.Single Layer CNN for Sentence Classification

CNN在语言方面多用于文本分类:

  • 文本的主观倾向,积极的还是消极的
  • 句子是主动的还是被动的,是关于什么问题的等

课程中介绍了早期CNN用于文本分类的一篇论文: Convolutional Neural Networks for Sentence Classification. EMNLP 2014.
主要思路如图:
在这里插入图片描述
(这里计算卷积ci的时候还加入了偏置)
论文中直接计算max-pool的结果:
在这里插入图片描述
或者可以加入多个卷积核W,然后去得到结果,如图所示:
在这里插入图片描述
最后把得到的特征总结起来,并做softmax处理,如图所示:
在这里插入图片描述
课程中又提到另外一篇文章:Zhang and Wallace
(2015) A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification。
里面的主要思路也是,采用多个卷积核对文本进行卷积处理,将的得到结果进行拼接,然后softmax。如图所示:
在这里插入图片描述
这篇文章还采用了常用的dropOut正则化和另外一种正则化的手段,如图所示:
在这里插入图片描述

4.Model comparison

课程举例几种常见的文本分类模型:

  • bag of vector: 直接对文本的词向量进行相加求和等操作。
  • window model:对词向输入简单的神经网络(前面课程学过)
  • CNNs
  • RNNs

Our growing toolkit

Gated units used vertically:将门单元应用于垂直结结构,如图:
左侧是残差网络(residual block),右侧在残差块的两个输出前面家里一个控制门,这两种结构都可以应用与非常深的网络的结构。
在这里插入图片描述
Batch Normalization (BatchNorm):通常用于CNN网络中,Batch Normalization把一层输出后的分布转换为均值为0方差为1的标准正态分布。原理是使它更多的分布在导数下降最快的阶段,这样通过反向传播学习,才会取得更好的效果。
在这里插入图片描述
1*1 Convolutions:就是卷积核是1为的卷积,它的实质上就是在各个chanal之间做全连接,但是它不同与普通的全连接层需要大量的参数。也可以用它来做chanal层数量的变换,如图所示:
在这里插入图片描述
此外CNN还可以用于语言模型的编码,产生词向量等等操作。

5. Very Deep Convolutional Networks for Text Classification

像CNN处理图像一样,在处理文本时也采用具有一定深度的CNN。在Conneau, Schwenk, Lecun, Barrault.EACL 2017.这篇文章中,提出了VD-CNN architecture,结构如下图所示:
在这里插入图片描述
其中每个conv块的具体结构如图所示:
在这里插入图片描述

6.CNN在NLP中的其他应用

利用CNN结构加速RNN网络的运行速度:Quasi Recurrent Neural Networks by James Bradbury,Stephen Merity, Caiming Xiong & Richard Socher. ICLR 2017