在NLP上,CNN、RNN、MLP三者相比各有何优劣

本文探讨了在NLP任务中,CNN、RNN和MLP模型的选择。MLP简单快速但忽视上下文;RNN利用历史信息,但训练慢且易过拟合;CNN通过卷积获取上下文,效果最佳但窗口大小选择有挑战。实际应用中,模型选择需结合任务特点和参数调整。
摘要由CSDN通过智能技术生成

本文为知乎温颖就如下问题的回答,已授权CSDN转载
若想要实现某个具体的任务,如做关系抽取、实体识别、情感分类等。在不考虑实现的难度的情况下,如何从理论、经验、直觉上去选择最有希望的模型?

前段时间做过用不同的神经网络模型做文本分类/情感分析,都是基于词向量去做的,以下是我自己的一些感受:

MLP:因为句子长度不固定,所以一般是用Bag-of-Word-Vectors 简单将词向量相加,然后使用MLP,这个方法比较简单,训练速度比较快,得到的结果也不是很差。只是没有利用到上下文信息。

RNN:将句子或文本作为序列输入比较自然,可以利用到历史信息,将词的顺序也考虑进去。此外,RNN的使用有很多变化,最简单的是使用最基础的RNN将最后一个词的隐含层输出进行softmax,但这样越往后的词会显得越重要(因为从前向后,最后一个输入的信息会更多地留下来),或者将每个隐含层的输出的和和均值进行softmax。也可以将基础的RNN变化为使用LSTM(很容易过拟合)或GRU单元,或使用bi-RNN获取更多的上下文信息。最后结果上并没有比MLP的结果好很多,但训练速度上慢了很多。(PS: 我这里的RNN指Recurrent Neural Network)

CNN:这个方法看起来对处理这种序列输入不是很自然,所以一般是对句子的所有词的词向量使用不同大小的窗口(能获取一定前后文信息,有点像隐式的n-gram)进行一维的卷积,然后用最大池化获得最重要的影响因子(我个人觉得这个比较讲得通,因为文本中不是所有词对分类结果都有贡献)和定长输出。CNN的方法也训练起来也比较简单,现阶段最后实验的效果也是最好。但有一些窗口大小上选取的经验问题,对文本长程依赖上的问题也并不是很好解决,因为窗口大小一般不会选很大。

以上是我自己试验中得到的结果,结果根据不同的网络架构和参数可能会有变化,感觉还是得继续修炼好深度suan调ming参大法。


130+位讲师,16大分论坛,中国科学院院士陈润生、滴滴出行高级副总裁章文嵩、联想集团高级副总裁兼CTO芮勇、上交所前总工程师白硕等专家将亲临2016中国大数据技术大会,票价折扣即将结束,预购从速

图片描述


想要更多干货?请关注CSDN人工智能公众号AI_Thinker。

图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值