这篇文章本来是要被我草草掠过的——字符级层次的卷积分类模型也不是那么难实现,毕竟这篇论文发表的前一年就是koom的TextCNN模型。文章看到一半才想起来,这个是英文域中的文本分类模型,仅仅用a-z26个英文字母就能够完成文本分类?这得好好看看了。
2. 字符卷积模型
2.1 关键模块
- 卷积操作
- 池化
- ReLU
- SGD(size=128)
2.2 字符表示
使用的字母表包括
abcdefghijklmnopqrstuvwxyz0123456789
`-,;.!?:’’’/\|_@#$%?&*?‘+-=<>()[]{}
共70个字符,先将它们表示成one-hot,然后转换成m维的定长(
l
0
l_0
l0?)数组。超出
l
0
l_0
l0?的字符被忽略,未包含的用全0数组表示。
最新读取的字符位于输出的开始,即逆序?
The character quantization order is backward so that the latest reading on characters is always placed near the begin of the output, making it easy for fully connected layers to associate weights with the latest reading.
2.3 模型结构(ConvNet)
九层深,6个卷积层和3个全连接层。全连接层间插入Dropout。其中Large和Small表示大、小两者模型。
论文中提到了数字1014,应该是Embedding层的维度?
采用高斯分布初始化参数。
相关参数参考论文。
2.4 数据增强
- 同义词替换
5. 讨论
- 字符级convnet可以在不需要单词的情况下用于文本分类。这有力地表明,语言也可以被视为一种信号,与任何其他类型的语言都没有区别。
- 只有在足够大的数据量上,该方法的效果相对于传统方法来说,效果是显著的。
- 用户生成的数据(比如评论,网络交谈相对于正式的问答网站上的回答)质量参差不齐。有证据暗示该网络能够更好的处理这种文本,因此更能用于实际生活中。比如掺杂了表情包、有拼写错误的文本。
- 实验再次证明,没有一个单一的机器学习模型可以适用于所有类型的数据集。本节中讨论的因素都可能在决定哪种方法最适合某些特定应用中发挥作用。
实验结论
- 采用区分大小写效果并不好,原因可能是大小写语义并不包含语义信息。
- 实验也使用了中文数据集——通过将汉字字符映射到拼音。
|