NLP中的CNN和RNN模型对比

这篇博客主要是拜读IBM Research发表的论文“Comparative Study of CNN and RNN for Natural Language Processing”,结合自己的体会做一个阅读笔记。

        目前深度学习主要包括CNN(卷积神经网络)和RNN(递归神经网络)两大阵营,基于卷积的CNN对识别目标任务的结构具有一定的优势,而RNN由于其记忆功能对序列识别建模具备优势。对应到NLP(自然语言处理)应用任务,CNN和RNN也各具优势,主要看具体的任务了。

IBM Research的这篇论文则总结了CNN和RNN在各种不同的NLP任务上的效果。

DNN主要的两大类模型CNN和RNN在此简单回顾一下:

CNN模型结构还是比较简单的,主要是前置的卷积层和后置的全连接层,早期的RNN由于难于训练进而发展出了结构更优的GRU和LSTM等若干变种。

文章同时也贴出了包括在情感分析、句子分类、实体识别、问答系统等等一系列任务上,CNN、RNN(GRU、LSTM)等模型的效果:

总体来看,三者在情感分析任务的效果基本接近了,在句子配对上CNN占有一定的优势,而在序列化的任务上,如命名实体识别、具备上下文的问答当中RNN颇具优势。

在不同的句子长度上:

这个结果很有意思了,模型的效果和实际的句长息息相关。直观来看,在短句长的任务上,CNN由于其卷积的功能对句子的整体结构有一个总揽的能力,但在长句长时,CNN只能处理其窗口内的信息,相邻窗口的信息只能借助后一层的卷积层来达到信息的融合,这对卷积窗口和移动的步长等等参数依赖是很大的,因此CNN处理NLP任务实际上是建模容易、调参难的一个特点。而RNN则训练时间会相对长很多。可以说各具优势吧。

关于CNN做短文本的文本分类,本人使用tensorflow做了一个简单的实验,有兴趣可以看看: 

CNN在中文文本分类的应用
--------------------- 
作者:大愚若智_ 
来源:CSDN 
原文:https://blog.csdn.net/zbc1090549839/article/details/55252516 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/jiangjiang_jian/article/details/83824234