TextCNN Convolutional Neural Networks for Sentence Classification阅读笔记
| 论文原文 | Convolutional Neural Networks for Sentence Classification |
|---|---|
| 论文信息 | EMNLP2014 |
| 论文解读 | Zhenyu Zhang & Hytn Chen |
| 更新时间 | 2020-02-19 |
文本分类简介
发展历史经历了遵循规则、根据特征分析以及利用神经网络模型三种方法的发展历程。
基于规则的方法进行文本分类:其核心概念就是将上述思路付诸实践。具体而言,在设计这类系统时, 我们会通过人工设计特定的规则来进行分类任务, 即当输入文本中包含特定的词语、短语或模式时, 我们将其判断为相应的类别, 这是最基础且 simplest 的方法之一。
工程流程就是输入文本,规则匹配,最后输出类别
基于特征的文本分类 的基本思想在于通过人工设计与提取特征的方式进行处理,并经过特征工程优化后应用机器学习模型以提取关键信息。这种方法能够有效降低噪声词对最终结果的影响。
基于向量空间模型为例,在机器学习领域中常用的方法之一是:第一步是将每个词汇通过词袋模型进行表示;接着采用词项作为特征维度,并赋予每个词汇对应的TF-IDF值作为其重要性权重;随后通过加权求和的方式生成文本的整体向量表示;最后利用生成的向量表示训练一个分类器用于文本分类任务。
基于神经网络模型对文本进行分类**的基本思路是:首先对输入文本实施分词以及必要的预处理操作;接着通过将每个句子中的单词映射到低维向量空间中实现词语嵌入;随后利用编码器模型获取该句子对应的向量表示;最后通过解码器机制确定输入文本所属的目标分类类别。
本文主要起源于神经网络在文本分类领域的开创性研究,并采用了卷积神经网络CNN来实现模型构建;深入探讨了卷积神经网络的经典核心内容,并建议读者参考斯坦福大学CS231n提供的这篇详解以获得更详细的信息。
学习之后应当对相关技术有基本认识,在实际编程时可能对细节还不够熟悉。其中核心的技术有两个较为重要的是batch normalization和dropout,建议从直观角度理解这些方法的基本原理。
论文提出的模型
整体模型结构简图如下

深入理解该模型的相关资料丰富,在深入理解CNN流程之后推荐参考该篇文章。
实验部分
该模型使用了七个文本分类的数据集如下:
MR:情感分类二分类数据集(正极性和负极性)
SST-1:斯坦福情感分类标准数据集(5类,中立类+正负极性各两类)
SST-2:斯坦福情感二分类数据集
Subj:主客观数据集(判断主客观二分类)
TREC:问题类型的数据集(共6类)
CR:商品评价极性判断数据集(二分类)
MPQA:观点极性判断数据集(二分类)
超参数设置:L2正则约束,Dropout率0.5,filter size有3,4,5,feature map大小是100
优化算法:Adadelta
预训练词向量:word2vec
主实验结果图如下

在该模型中采用的第一个CNN结构使用了随机初始化的词向量;而CNN-static模型则在训练过程中采用了固定预训练词向量的方式;相比之下,CNN-non-static模型则在微调过程中动态调整了预训练词向量;此外,混合型模型结合了static和non-static两种不同的输入方式;这种设计在小规模数据集上展现出良好的性能水平,其核心做法在于限制微调后的词向量偏离原始值的程度
与本文研究主题高度相关的另一篇重要文献是发表于IJCNLP2017年的一篇名为《CNN在句法分类中的敏感性分析》的论文。该研究深入分析了卷积神经网络(CNN)在句法分类任务中的应用前景及其潜在优势。该研究系统地进行了多组实验验证,并提供了相应的超参数优化建议。此外,在本文模型上(TextCNN)的基础上构建了一个更为复杂的TextCNN模型。
