1. 程式人生 > >NLP中的CNN和RNN模型對比

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!