CNN用于文本分类

本文介绍了卷积神经网络用于句子分类的算法,适合于短文本,可见的应用场景如微博的情感分析,商品标题的标签分类等。

paper:

http://www.aclweb.org/anthology/D14-1181

Convolutional Neural Networks for Sentence Classification

传统分类做法

传统的特征提取:如TF-IDF、互信息、信息增益等提取关键词后使用Bag-of-words,再使用LR等分类器进行分类。
或者之前所讲的fasttext,对词训练完成后进行avg或者max,再全连接一个softmax进行分类,
或者mikolov的sentence vector,单独训练每个句子的vector。

CNN for text classification

CNN模型结构
  1. 一个长度为n的句子被视为n个word的拼接(concatenation),每个word 的embedding有k维,则concat后的句子表示为一个N x k的矩阵,即神经网络的输入

  2. 由于图像是二维(长和宽)三通道(RGB),而句子是一维的(word按顺序拼接)(可以N通道,使用L种不同的embedding方法,就可以形成L层输入为N x k的矩阵),因此这里的CNN的filter(卷积核)的大小都为h x k ,即每个filter扫过的区域是从上往下覆盖到一个word的所有embedding长度

  3. 因此选取几个不同大小(h不同的)filter去学习句子的特征。

每个filter(这里表示为w)所学习到的特征即如下表示:
filter.png
卷积计算
conv.gif

这里的思想和图像中的CNN一样,每个filter相当于去学习图片的纹理(比如边,角,圆弧),如果在图片这一片区域出现了相同的纹理,则这一片学习到的特征的取值会变的很大。

上图为一个卷积核的卷积操作,即学习该图片的哪一部分有卷积核所检测的特征,该图的卷积核可以看做一个X形状的特征,去匹配image矩阵中哪个部位有类似的X形状,显然越像X的部位得分越高。

而在NLP文本中,每个卷积核去学习一种文本上隐藏的特征(比如去学习不喜欢 not like,sick of,hate),如果扫过的整一块window表达了类似的特征,就会在这个卷积核的取值上变大而显现出来。
每个filter扫一遍句子,可以得到这个filter的feature map,因为filter的窗口长度为h,所以feature map中共得到n-h+1个feature

Pooling:

在得到每个卷积核的feature map之后,要做一个max-pooling,即max(c)


pooling.jpg

Pooling的用处是:
1.使长度不同的sentence经过这个卷积核后得到的特征都为1维
2.抓住不变性,比如一个卷积核是用来检测是否存在not like这样的负面评论,则不论出现该模式出现在句子的哪里,前面还是后面,这个卷积核都能取得很高的卷积值。

当然Pooling会损失句子的order信息,比如最显著的模式出现的位置(句子的前面还是后面),因此又多种基于Pooling的优化:如k-max pooling(保留feature map中K个最大的值)或者dynamic k-max pooling (sentence分为几段,每一段取一个最大值)

可以详见这篇blog:自然语言处理中CNN模型几种常见的Max-Pooling操作http://blog.csdn.net/malefactor/article/details/51078135

1 filter = 1 feature ,这里使用多种不同长度的filter (相当于捕捉n-gram的信息)来获得多个features,最终经过一个softmax分类器来进行分类。

experiment:

paper中的任务一共使用了300个卷积核(h=3,4,5 各100),去捕捉sentence的300种特征 (CNN的特点,卷积核也在训练过程中进行迭代,相当于特征模式匹配是自己训练生成的,比如做情感分类,很多pos/neg的文本特征会被自动学习;而做短文本的类目划分,则卷积核会去自动训练成去识别与体育、娱乐等相关的词组)

总结

CNN-text 使用了CNN的各种常见特征Matrix-Filter-Pooling-Softmax
Matrix:将一维的句子变成二维的矩阵
Filter : 卷积核去学习句子在具体任务上的模式
Pooling : 池化,特征数量保持一致与不变性
Softmax:全连接,根据任务做2~n分类
可以作为文本分类的一个较强baseline,当然作为神经网络的一种,调参较为繁琐,如果追求效率,选择fasttext更为轻量。

参考

http://geek.csdn.net/news/detail/189196 淘宝应用场景-基于商品标题短文本分类
https://zhuanlan.zhihu.com/p/29076736 基于word2vec和CNN的文本分类

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容