情感分析进阶-CNN

卷积神经网络(Convolution Neural Network, CNN)在数字图像处理领域取得了巨大的成功,从而掀起了深度学习在自然语言处理领域(Natural Language Processing, NLP)的狂潮。2015年以来,有关深度学习在NLP领域的论文层出不穷。尽管其中必定有很多附庸风雅的水文,但是也存在很多经典的应用型文章。

卷积神经网络在自然语言处理中又是如何应用的呢?接下来,我也想围绕几个问题作几个比较基本的阐述:
在NLP中CNN的输入可以是什么?
如果输入是词向量,每一行代表一个词,那么如何解决不同的文本长度不统一的问题?
NLP中CNN的常用超参数设置都有哪些?
接下来CNN在NLP的研究还可以从哪个方向进行?

首先,针对第1个问题,NLP中CNN的输入可以是什么?其实,任何矩阵都可以作为CNN的输入,关键是采用什么样的方法。如果你使用one-hot represention,那其实就是0-gram,这样输入的矩阵的大小肯定也是固定的(整个词表的长度);如果采用word2vec,那么每一行代表一个词语,文档中有多少个词语,就有多少行。这里,我们再来回顾一下词向量:其实它是神经语言概率模型[1]
的一个副产品,不过可以反映出词语的语义信息。word embedding技术,主要分为两种思想,Hierarchical Softmax和Negative Sampling两种,其中每种思想下又分为两种方法,CBow模型和Skip-Gram模型,关于word embedding的数学原理,这里不再赘述,可以参考word2vec中的数学原理一文,这篇博文讲的很清楚。这里需要注意的是,word2vec一般通过pre-training的方式获得,比如google的word2vec就是从大量的文本中预训练得到的。你在CNN中使用的使用,可以按照static和non-static两种方式,如果是non-static的话,则表明你在训练CNN的时候,需要对使用的word2vec做一个轻微的tuning。word2vec可以算是CNN进行NLP应用时候的标配。
  针对第2个问题,
如何解决不同的文本长度不统一的问题
?这是一个非常显然的问题,在LeNet-5中,每个输入都是32乘32的图像文件,这样我们才能设置固定大小和数量的filters,如果图像分辨率发生了变化,那么就会造成多余的conv操作的结果丢失,从而对模型的结果产生影响,或者会使得网络内部状态发生混乱。在图像处理中,可以通过固定输入的图像的分辨率来解决,但是在自然语言处理中,由于输入的是文档或者sentence,而输入的长度是不固定的,那么如何解决这个问题呢?其实,在NLP中,研究人员一般都采用的是“单层CNN结构”,这里的单层并不是只有一层,而是只有一对卷积层和池化层。目前有两篇论文做的不错,一个是NYU的Yoon,另一个是Zhang Ye的分析报告[3]
,参看下面的图(图来自Yoon的论文[2],该论文的代码地址:yoon kim的github
  


  

可以看到,每次在卷积的时候,都是整行整行的进行的。这好比是n-gram模型,如果每两行conv一次,那么就是2-gram,要知道,google最多也不过使用了5-gram模型,因为这种模型计算量非常大,但是如果在CNN中进行类似的操作,计算量反而减小了。在第二层的卷积层中,我们可以看到,每次得到的Feature Map的行数,是和输入的sentence的长度相关的。但是,在池化层,采用了1-max pooling的技术,从而将每个Feature Map的维度全部下降为1,因此,pooling结束之后,得到的向量的维度,就是卷积层Feature Map的数量。这样也便解决了输入长度的问题。但是,接下来无法再进行conv操作了,而且,在这个应用里,也不会出现像LeNet-5那样的Feature Map的组合输出的现象,因为只有一层卷积层。那么这里问题就来了,这样单层的结构到底效果如何?能不能扩展成多层的结构呢?能不能使用Feature Map的组合策略呢?单从Yoon的paper来看,结果是不错的,可是这样的结构一定适合其他应用问题吗?如果我们在conv操作的时候,不整行整行的卷积,那么这样就无法用n-gram去解释了,但是这样的效果如何呢?其实也有人做过了,是Nal的Paper,参考文献[4]. 个人不推荐这种部分卷积的做法。
  针对第3个问题,CNN在应用的时候,超参数如何设定?下面,我们从几个方面进行阐述。首先是Filter Window的大小,由于在卷积的时候是整行整行的卷积的,因此只需要确定每次卷积的行数即可,而这个行数,其实就是n-gram模型中的n。一般来讲,n一般按照2,3,4这样来取值,这也和n-gram模型中n的取值相照应;当然,在文献[3]还详细分析了Filter Window大小对实验结果的影响,并且一直取值到7;其次是Feature Map的数量,在文献[2]中,针对2,3,4每一个Filter Window,都设置了100个,这样经过池化层之后,得到的向量是300维的;还有一些其他的超参数,比如为了防止过拟合,在全连接层加入了Dropout,从而随机地舍弃一部分连接,Dropout的参数为0.5;在Softmax分类时使用L2正则项,正则项的系数是3;训练的时候,SGD的mini-batchsize是50等。另外还有一个问题是,当训练的word embedding不足时,也就是待分类的document中包含没有被pre-training出来的词时,需要在某个区间上,对该词的词向量进行随机的初始化。
  针对第4个问题,CNN在NLP的研究方向还可以从哪些地方进行?首先,我们来简要列举2015年CNN在NLP的应用研究列表(2016的paper还没有出来,等出来之后会在这里补上):
扩展CNN的输入,扩充词向量的维度,加入新特征[5];将RNN的输出作为CNN的输入[6],



卷积层的改造。如:将word2vec横向组合,以发现句子层级的特征[7];卷积层的非线性化改造[8];


Pooling层的改造。使用k-Max pooling以保留更多的特征[9];分段pooling[10];



CNN模型的组合。对同一输入做多重cnn分类,组合结果[11];一个句子一个CNN[12];



PS:这里有几个问题供读者思考,也是我正在思考的问题:目前我们所看到的CNN在NLP中的应用,大部分的网络结构都非常浅,主要是对于文本的不定长的特点,不好用多层CNN网络去训练,但是如果网络不够深,似乎又无法捕捉到更深层次的特征。因此,我们到底应不应该在NLP中应用多层CNN结构?如果应该,应采取怎样的策略?可不可以把S2到C3的Feature Map的组合卷积过程应用到NLP中?这都是我们都应该考虑的问题。

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

推荐阅读更多精彩内容