深度學習在自然語言處理中到底發揮了多大作用?有哪些不足或局限?
RT
本條答案中籠統認為深度學習一詞泛指任何基於神經網路的模型和方法。
之前回答過一個相關問題:用深度學習做NLP的意義是什麼? - 知乎 ,一起食用風味更佳。這裡再根據題主的問題詳細說明一下好了。
深度學習近年來在自然語言處理相關學術研究和產業實踐中都逐步開始佔據越來越高的比重。答主本人其實十分討厭閱讀xCL系列會議或期刊中給NLP任務A套神經網路B這樣的論文,因為基本沒有太多營養或者對自然語言和任務本身的啟示性。但毋庸置疑的是,相對於傳統線性模型加特徵工程的方法,基於神經網路的方法具備若干通用優勢:
1. 特徵:避開了繁瑣且需要語言學專家知識或任務經驗支撐的手工特徵提取。更重要的是,可以直接利用從大規模無標註語料中為辭彙或短語學習出分散式表示( 聊聊文本的分散式表示: Distributional Representation和Distributed Representation的區別 ),將其作為連續特徵用於(原則上)任何後續任務,並有機會結合具體任務下的有標記數據進行微調(fine-tune)從而學習到更適合不同任務的表示。要知道很多NLP任務中標數據很困難,現成的有監督語料規模一般不會很大,所以能覆蓋的辭彙或表達模式非常有限。充分利用大規模無標註語料十分必要。
2. 結構:常用神經網路模型在結構上普遍比傳統對數線性模型(最大熵和CRF)要複雜很多,足以(過)擬合大規模數據。另一方面,由於推斷的時間複雜度等因素,很多傳統方法(如轉移依存分析、短語翻譯的定寬搜索解碼等)做決策基本都只能利用局部信息,但哪怕對於人類而言,一般也只能在讀完整個語句的情況下才能正確理解語句所表達的完整意義。目前在條件生成類任務中流行的編碼器-解碼器架構之所以大熱,一個重要原因就是從編碼器讀完整句信息之後才開始產生輸出。另外,目前在NLP常見任務中實踐效果較好的神經網路中一般都少不了從前後方向閱讀整句的雙向RNN,這就可以使得整句的上下文信息得到有效編碼,並以定長特徵或注意力權值的形式為後續的解碼或推斷過程提供支持。
3. 計算:GPU的威力大家都知道了,能高效支持並行運算的傳統NLP方法並沒有很多,但常見的神經網路對並行訓練和解碼一般都還是比較友好的。以及神經網路超參數一多,工程上實施大規模多機調參也是迫切需要的。此外,機器學習那邊對於深層神經網路模型訓練和推斷的研究一直都在活躍中,NLP從業人士幾乎可以坐享其成。
以上因素使得神經網路方法不僅給很多常見NLP任務帶來了性能提升,而且在語言模型、機器翻譯等訓練數據足夠充分的任務上早就掀起了革命性進步。
然而,神經網路方法也有自身的局限性。除了訓練代價高、費電不環保以外,在自然語言數據處理的範疇下還存在更難解決的問題:
1. 數據需求。神經網路結構複雜參數繁多,必然需要足夠的數據去擬合。在機器視覺中,常見任務多數本質上都可以歸結或部分歸結為「識別」,規模巨大的ImageNet通過圖片類標記給「識別」提供了足夠好的監督信息,從中訓練得到的特徵很自然可以遷移到各種任務上。但在自然語言處理的範疇下,神經網路預訓練一般都來自從海量無標註語料中強行構造出的監督信息(如skip-gram固定中心詞預測上下文詞)。對於數據量極其充分的任務,甚至根本不需要這種無監督數據預訓練就能達到極佳的效果。但絕大多數自然語言任務沒有足夠數據,無監督數據能帶來的提升相對有限。所以神經網路目前在絕大多數任務上都沒能夠實現像語音識別、機器翻譯等平行數據足夠充分的任務下所產生的實質性突破。如果有誰能準確抽象出自然語言理解的本質並構建出大規模高質量有監督數據集,達到像ImageNet在視覺中的地位,那ACL終身成就獎大概只是時間問題。
2. 可解釋性與魯棒性。神經網路的可解釋性差對於模型調試和改進以及保證魯棒性而言幾乎是致命打擊。且不談如何消除數據中的固有偏置等科學倫理前沿問題,工程師可能根本搞不懂好端端的神經機器翻譯怎麼會變成真.神經機器翻譯(節選自當日2017.5.7谷歌翻譯結果):
這樣的問題顯然不是加一個記憶模塊、改兩個門限機制就能解決的。模型特徵和參數全部都是無規律連續化實值,而展示的結果全是離散結果,換誰都很難看出問題的根源究竟在何處。其他NLP任務同樣存在類似的狀況。
3. 純數據驅動。答主知道很多人是端到端訓練的忠實擁躉,從工程角度上看既在設計上省事又能避開多模塊錯誤傳播。但不要忘了,自然語言本身是人類社會推演的產物,本質上是高度符號化的複雜離散規則、約定俗成與領域知識的集合。忽視先驗和邏輯、純粹地進行數據驅動,前進不了太遠一定會碰到瓶頸。畢竟能用的數據總是有限的,而自然語言的可能性是無限的。
谷歌是在炒作么?大牛詳解神經網路演算法為什麼不適合自然語言處理 | 雷鋒網
原文https://www.linkedin.com/pulse/google-hyping-why-deep-learning-cannot-applied-easily-berkan-ph-d/
各位怎麼看?
深度學習在自然語言處理特別是訓練模型方面有很好的應用
推薦閱讀:
※什麼是 end-to-end 神經網路?
※2017年神經機器翻譯(NMT)的一些重要資源匯總?
※只有達到 state of the art精度的方法才能發文章嗎?
※如何評價谷歌剛推出的Cloud AutoML?
※人工智慧和人類智能的本質區別是什麼?
TAG:人工智慧 | 機器學習 | 自然語言處理 | 神經網路 | 深度學習DeepLearning |