论文连接: http://arxiv.org/abs/1509.01626
github: https://github.com/zhangxiangxiao/Crepe
数据集:http://goo.gl/JyCnZq
github(Tensorflow): https://github.com/mhjabreel/CharCNN
摘要
本文对字符级卷积网络进行文本分类进行了实证探索。本文构建了几个大规模数据集来展示字符级卷积玩咯可以实现最先进的或者具有竞争力的结果。对传统模型(例如BOW,n-grams和TFIDF变形),和深度学习模型(例如基于词的卷积神经网络和递归神经网络)进行比较。
介绍
- 什么是文本分类:自然语言处理的经典问题,为自由文档分配预定义类别。
文本分类的研究范围:从设计最佳的特征到选择最佳的机器学习分类器进行分类
本文提出之前,几乎所有的文本分类技术都是基于词的,对有序的词组合(例如n-grams)进行简单的统计时效果最佳 - 另一方面,许多研究人员发现卷积网络被用于从原始信号中抽取信息,从计算机视觉到语音识别等。
特别是,用于深度学习研究的早期的时延网络实质上是对序列数据进行卷积网络建模。 - 本文探索将测试文本作为字符级别的原始信号,采用一维卷积神经网络。
对于这篇文章,仅使用分类任务作为一种方式举例说明卷积神经网络理解文本能力。
从历史上看,卷积神经网络通常需要大规模数据集来工作,因此需要构建大规模数据集来进行实验,传统模型和其他的深度学习模型提供了广泛的比较。 - 已有文献表明,卷积神经网络可以直接应用于分布式或离散的词嵌入,而不需要对一门语言在句法和语义结构上的理解。
- 一些工作使用字符级特征来进行语言处理,包括使用带有线性分类器的字符级n-grams,将字符级特征与卷积神经网络集合起来。
卷积神经网络通常是基于词的,在词或词n-grams级别提取字符级忒恶整形成分布式表示。在词性标注和信息检索方面有所改进。 - 这篇文章表明,当训练大规模数据集时,深度卷积神经网络不需要单词的知识,除了先前的研究,卷积神经网络也不需要语言的句法和语义的知识。
这样的工程简化对于可以用于不容语言的一个简单系统来说是至关重要的,不管是否分割成单词,字符都是必要的构成。
仅使用字符进行处理的优点是:
1)自然地学习拼写错误、表情等异常字符的组合
字符级卷积神经网络
ConvNets的设计是模块化的,其中通过反向传播获得梯度以执行优化。
关键模块
这个模块的主要组成是具有简单的一维卷积计算的时间卷积模块(temporal convolutional module)。
- 离散的输入函数:g(x) ∈ [ 1 , l ] \in [1,l] ∈[1,l] --> R
离散的核函数:f(x) ∈ [ 1 , k ] \in [1,k] ∈[1,k] -->R
卷积
h ( y ) ∈ [ 1 , ⌊ ( l − k + 1 ) / d ⌋ ] h(y) \in[1,\lfloor(l-k+1)/d\rfloor] h(y)∈[1,⌊(l−k+1)/d⌋]–>R
R在f(x)和g(x)之间 ,步幅d被定义为欸
h ( y ) = ∑ x = 1 k f ( x ) ⋅ g ( y ⋅ d − x + c ) h(y) = \sum^{k}_{x=1}f(x)\cdot g(y\cdot d - x + c) h(y)=x=1∑kf(x)⋅g