论文Convolutional Naural Networks for Sentence Classification阅读(一)----模型介绍篇

前一段时间阅读了Yoon Kim发表的论文Convolutional Naural Networks for Sentence Classification,现在抽时间吧相关的内容记录下来。包括模型的介绍和代码实现。这篇文章介绍第一部分。
论文使用CNN处理NLP问题,使用预先处理的词向量处理句子层面的分类问题,在情感分析(sentiment analysis)和问题分类(question classification)等方面达到了很好的效果。

我们先来看整体的模型:
这里写图片描述
首先将单词embed到一个低维的向量,然后输入卷积层,在卷积层采用了不同大小的卷积核提取不同的特征,然后到池化层选取最大特征,最后经过全连接层softmax分类器得到分类结果。

1.词向量
对于模型的输入,论文中有两中channel,也是两种选择,一种是static的词向量,就是直接使用Google的word2vec作为每一个词的词向量,在训练过程中词向量是不会发生变化的,另一种是non-static的词向量,这种词向量作为模型训练的一部分,每一个单词对应的词向量在训练过程中不断改变。在最后的结果里,non-static对应的结果会相对更好,这是因为词向量更好的适应了实验的数据集。但我们也应该知道,这样的方法对于较小的数据集是不应该推荐的,容易产生过拟合的问题。
因为使用CNN处理,所以需要对输入处理成图片的形式。从图片里可以看出,每一个词向量组成图片矩阵的行,每一个句子最终组成一张图片矩阵。

2.卷积层
选取不同大小的卷积核提取不同的特征,大小是filter_size*embedding_size,其中filter_size可取3,4,5,代表卷积核纵向的长度,也就是一次卷积能覆盖几个单词,embedding_size是横向的长度,这里就是每个词向量的长度,这里embedding_size大小的选取是很巧妙的,因为这样提取的特征不会关注每个单词内部比特的关系,而是关注单词之间的关系,这正是我们希望得到的。通过卷积核的计算后,对于每一个图片矩阵我们就得到了一个一维的向量,代表着这个句子的特征。有多少和卷积核就能提取出多少种特征,即图中在纵深方向上channel的数量。
这里写图片描述

3.池化层
采用的是最大池化,将卷积得到的向量池化,也就是提取一个最大值出来,对于每一个向量我们都采取池化操作,这样在纵深方向上我们就得到一个维数是num_filters的行向量。这样做的附带的一个好处是,如果最开始没有对句子进行padding处理,句子长度不一致,卷积后的列向量维度也不一样,但是经过池化可以消除长度不一致的差异。
这里写图片描述

4.全连接层
论文做的实验是判断一个对电影评价的句子是正面还是负面,所以最终的输出需要经过一个softmax进行二分类。另外由于实验所用的数据集比较小,容易出现过拟合现象,在实验过程中也发现当迭代次数到3000轮的时候准确率就接近于1.。所以全连接层使用dropout方法减少过拟合。另外还可以考虑使用L2正则化的方法防止过拟合。
这里写图片描述

这篇论文主要贡献就是将CNN成功用在了NLP方向上,大大扩展了CNN的使用范围。实验的结果也达到了很好的效果。模型并不复杂,在下一篇博客中我们会介绍使用TensorFlow的实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 卷积神经网络 (Convolutional Neural Networks, CNN) 是一种常用于文本分类深度学习模型。它通过卷积和池化层来提取文本中的特征,并使用全连接层来进行分类。 CNN 的一个优点是能够处理变长的输入,并且不需要对文本进行预处理。 ### 回答2: 卷积神经网络是一种深度学习方法,用于对文本进行分类。在训练过程中,这种网络可以自动学习输入数据的特征表示。卷积神经网络中的卷积层可以识别输入中的局部模式,这些局部模式组合起来形成更高级别的特征,最终帮助分类器确定类别。对于文本分类问题,卷积神经网络的输入是文本的词嵌入向量,可以从先验知识中自动学习特征。 在一些文本分类任务中,卷积神经网络已经取得了很好的表现。文本分类任务通常被分为两种类型:二元分类和多分类。二元分类任务是指将数据分为两类,例如垃圾邮件和非垃圾邮件。多类分类任务是指将数据分为多类,例如新闻分类。在这两种任务中,卷积神经网络都能够进行有效的分类。 对于二元分类任务,卷积神经网络可以使用一个输出节点,并使用 sigmoid 激活函数将输入映射到 0 到 1 之间的概率。对于多分类任务,卷积神经网络可以使用多个输出节点,每个节点对应一个类别,并使用 softmax 激活函数将输入映射到 0 到 1 之间,并且所有输出节点的和为 1。 要训练卷积神经网络进行文本分类,需要对模型进行三个主要的训练步骤。首先,需要构建词嵌入矩阵,该矩阵将文本中的每个词都映射到一个向量。然后,需要将文本数据转换为卷积神经网络所需的格式。最后,需要对模型进行训练,并根据测试数据进行评估。 总之,卷积神经网络已经被证明是一种强大的工具,可以用于文本分类等任务。在处理文本数据时,卷积神经网络可以自动学习输入数据的特征表示,并使用这些特征来确定文本的类别。 ### 回答3: 卷积神经网络CNN)是一种深度学习模型,它在图像识别、计算机视觉和自然语言处理中表现出色。最近几年,CNN 在句子分类中也获得了很大的成功。 CNN 句子分类模型的输入是一个序列,输出是类别标签。与传统的 RNN 模型不同之处在于,CNN 可以使每个神经元只能捕获一个固定大小的区域的特征,从而加快模型的训练和降低了模型的复杂度。 CNN 句子分类模型的基本架构包括词嵌入层、卷积层、池化层和全连接层。词嵌入层将输入的文本转化为向量表示。卷积层通过滑动窗口对输入的序列进行卷积操作,提取出局部特征。池化层在每个滑动窗口上提取出一个最大值或平均值,进一步降低维度。最后,全连接层将提取出的特征传递到输出层进行分类。 CNN 句子分类模型的优点在于它可以处理不定长的文本序列,并在仅有少量特征的情况下表现出色。但是,CNN 模型的缺点在于不善于处理长期依赖关系,例如情感分析中的Irony识别。为了解决这个问题,可以引入 RNN 或 Transformer 等模型。 总的来说,CNN 模型为句子分类问题提供了一个简单有效的解决方案。在实践中,需要根据具体的任务选择合适的模型结构和参数设置,才能取得最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值