1. 程式人生 > >自然語言處理系列-2-文字分類-深度學習-2

自然語言處理系列-2-文字分類-深度學習-2

3. 正文與標題

文件分為正文和標題兩部分,一般兩部分分開處理,可以共享Embedding層也可以不共享,人機寫作分類問題中我們沒有共享Embedding。

3.1 正文多層CNN,未使用標題

CNN需要設定不同大小的卷積核,並且多層卷積才能較好的捕獲文字的特徵,具體網路結構如下: 在這裡插入圖片描述

3.2 正文 CNN Inception,未使用標題

在這裡插入圖片描述

3.3 基於Hierarchical Attention的RNN處理正文

模型是根據論文《Hierarchical Attention Networks for Document Classification》實現的,論文中的模型如下 在這裡插入圖片描述 具體實現過程中的網路結構如下: 在這裡插入圖片描述

3.4 遷移學習

設計模型M,M在資料集A上訓練到最佳效果儲存模型的權重,然後再使用訓練好的M在資料集B上訓練,這個過程可以看做簡單的遷移學習。因為人機寫作判斷任務中,先後有兩個資料集,早期資料可以看做A,後期也就是最終的資料看做B,而模型在A上的表現比B上要好很多,這樣就可以使用遷移學習來使模型在B上表現也好。 我們是使用RCNN處理正文,多層CNN處理標題這個模型來實現遷移學習的,具體過程如下: 在這裡插入圖片描述

3.5 多工學習

相同模型同時在資料集A和B上訓練,可以稱為多工學習,我們也是使用RCNN處理正文,多層CNN處理標題這個模型來實現多工學習的,具體過程如下: 在這裡插入圖片描述

3.6 聯合模型學習

選取表現最好的2個單模型,在資料集上預訓練到最優,然後聯合在一起訓練,可以共享Embedding層,也可以不共享,由於我們表現最好的單模型是RCNN處理正文,多層CNN處理標題的Model A和基於Hierarchical Attention的RNN的Model B,Embedding的形式不同所以不能共享,具體形式如下所示,也可以聯合多個單模型一起訓練,但缺點就是訓練時間過長: 在這裡插入圖片描述

小結

深度學習在文件分類問題上比傳統機器學習方法有太大的優勢,仔細分析就知道文字的特徵很難提取,而且這些特徵不能很好的表示文件的語義、語法,丟失了很大一部分的有用資訊,而深度學習就是將特徵提取這個環節交給深度網路去自動完成,通過更高的計算成本換取更全面更優良的文字特徵。

模型Stacking

一般是針對評測或者比賽,融合多個模型的結果,不同的模型會導致其預測結果的多樣性,Stacking可以有效的融合其多養性達到提高分數的目的。關於Stacking的介紹,可以看這篇文章。 傳統Stacking方法一般使用樹模型,例如LightGBM、XGBoost等,我們使用神經網路的方式實現,Model就是兩個全連線層。

總結

傳統機器學習方法可以作為任務的Baseline,而且通過特徵的設計和提取能夠感受資料,不能把資料也就是文件看做黑盒子,對資料瞭解足夠設計模型肯定事半功倍。至於深度學習的方法,我們只是借鑑、改進經典論文提出的模型,也使用了前人比賽的Trick,如果想深入瞭解還是需要閱讀更多的論文,ACL是計算語言學年會彙集了全球頂尖NLP領域學者的思想,可以關注這個會議閱讀其收錄的論文。

引用

https://zhuanlan.zhihu.com/p/31963565 Kim Y. Convolutional Neural Networks for Sentence Classification[J]. Eprint Arxiv, 2014. Yang Z, Yang D, Dyer C, et al. Hierarchical Attention Networks for Document Classification[C]// Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2017:1480-1489. https://zhuanlan.zhihu.com/p/28923961 https://zhuanlan.zhihu.com/p/25928551