Press "Enter" to skip to content

用于文本分类的卷积神经网络

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

原文作者:Yoon Kim

 

原文标题:Convolutional Neural Networks for Sentence Classification

 

原文链接:https://arxiv.org/abs/1408.5882

 

原文来源:Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP)

 

笔记作者:[email protected]

 

笔记小编:[email protected]

 

摘要+介绍

 

卷积神经网络(CNN)最开始被应用在计算机视觉,但是后来被研究应用在了自然语言处理里面的语义解析、搜索、语句模型等传统的自然语义处理任务,并且取得了显着的效果。使用CNN在预先训练的词向量上进行训练,可以用于句子级分类任务。本文证明了:1. 利用仅有少量超参数的CNN在多个NLP任务上取得了较好的成果 2. 预训练的向量是可用于各种分类任务的“通用”特征提取器 。

 

模型

图1

 

如图1所示:

 

输入层图中最左侧是n×k×channel矩阵,表示一句话的n个词语,每个词语是一个k维向量;值得注意的是输入层是多通道的,本文提出了一种multi-channel(见模型变体中的CNN-multichannel)方法,将两种不同的embedding拼到了一起。

 

卷积层进行卷积操作(图中第二部分),卷积核的尺寸为m×k×depth,因此每次卷积的时候都是整行整行的进行。m=1时就类似于unigram特征,m=2时类似于bigram特征。采用不同的m进行卷积操作便可以获得不同的feature map。

 

池化层进行池化操作(图中第三部分),池化层filter形状为convLength×1,通过池化操作得到文本的特征表示。

 

全连接层+softmax层图中第四部分,获得代表属于不同类别的概率向量以完成分类。

 

数据集

图2

 

图2中,c代表分类数量,l代表句子平均长度,N代表句子数量,|V|代表词汇数量,|Vpre|代表预训练的词向量集中包含的单词数量

 

MRMovie reviews(包含正面/负面评论)

 

SST-1Stanford Sentiment Treebank(MR的扩展,包含非常正面/正面/中性/负面/非常负面评论)

 

SubjSubjectivity dataset(包含主观/客观句子)

 

TRECTREC question dataset(将某问题分类为六种类型)

 

CRCustomer reviews(包含正面/负面评论)

 

MPQAOpinion polarity detection subtask of the MPQA dataset

 

模型变体

 

采用了以下四种模型:

 

CNN-rand所有词向量都随机初始化,并在训练过程中不断学习

 

CNN-static使用了Word2Vec预训练向量,未知的单词则随机初始化;二者都保持不变,只学习模型的其他参数

 

CNN-non-static同上,但预训练向量会在训练过程中 进行微调

 

CNN-multichannel具有两组词向量(CNN-static和CNN-non-static的两组向量)

 

结果

图3

 

根据图3所示,CNN-rand表现不佳,而CNN-static表现十分出色,这说明了 使用预训练的向量可以大幅提高模型性能 。

 

通过CNN-non-static的结果可知, 预训练向量是很好的“通用”特征提取器,可以跨数据集使用 。 对每个任务的预训练向量进行微调可以进一步提高模型性能 。

 

通过CNN-multichannel的结果可知,CNN-multichannel在小数据集上好于CNN-singlechannel。起初希望通过multichannle的方式避免过拟合,使词向量尽量不要偏离预训练的词向量的同时也使词向量适应于具体的任务。

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注