很不錯的一篇TutorialUnderstanding Convolutional Neural Networks for NLP,把裏面提及的論文整理了一下。
Convolutional Neural Networks for Sentence Classification(ACL2014)
感覺這應該是最早的一篇把CNN用於處理文本的論文,網絡模型十分簡單。
模型
直接在Word Vector(300 dim)上使用不同的kernel(3,4,5)對句子進行一維卷積,之後對於不同kernel產生的不同長度結果進行MaxPooing使其長度都爲1,最後將這些Feature輸入全連接層+Softmax完成分類任務。
實驗
實驗表明使用CBOW預訓練的模型表現更出色,並且實驗時發現使用兩個不同的Word Vector作爲輸入的不同channel效果更好。
另外作者發現在卷積時增大channel並不能避免過擬合,channel的選擇還是需要具體問題具體分析。
Effective Use of Word Order for Text Categorization with Convolutional Neural Networks(NAACL2015)
這篇文章沒有使用Word Vector,直接用單熱點編碼了單詞進行文本分類,與句子分類不同的是文本分類面臨的輸入要長上百倍,所以單熱點直接使用會造成維度災難。
作者爲了降低輸入維度首先引入了region,類比n-gram,只對相鄰的幾個連續單詞作爲輸入,並且對每一個region都使用bag-of-word表示。
模型
-
首先對輸入的文本劃分成不同的region,相當於一個滑動窗口,每次位移是一個單詞
-
之後對每個region的bow進行一維卷積,對所有的region卷積後形成一個具有時序性的特徵向量,這裏CNN的用法類似於RNN,這也可以有效的降低模型參數數量(下圖)。
- 最後基於特徵向量做分類任務
實驗
作者分別在:IMDB: movie reviews、Elec: electronics product reviews、RCV1: topic categorization三個數據集上驗證了模型的有效性,並且特意強調對於超參數的選擇需要根據驗證集選擇,論文中對三個數據集的超參數分別如下:
- IMDB & Elec:region size=3, stride=1, channel=1000, max-pooling=1
- RCV1:region size=20, stride>=2, channel=1000, average-pooling=10
Semi-supervised Convolutional Neural Networks for Text Categorization via Region Embedding(NIPS2015)
本文和上一篇是同一作者對之前模型的改進,提出了tv-embedding這個概念,並且對於模型提供了一種半監督的訓練方法,並且在數據集上具有更好的表現。
tv-embedding
作者給出的定義如下:
這裏的tv表示的是two-view,即上下文,其中X1代表上文,X2代表下文,文中論證了理想情況下,使用tv-embedding編碼後的上下文對於分類問題來說等同於未經編碼的原文,即此編碼沒有信息損失。
實際上這種tv-embedding的條件類似於n-gram的獨立性假設。
半監督學習框架
預訓練
- 如果使用無標籤數據,則直接使用類似CBOW的預測方法進行訓練
- 如果使用有標籤數據,則構造一個CNN網絡進行預測訓練,最後取中間層輸出作爲embedding
有監督訓練
- 使用經過預訓練的tv-embedding和上一篇論文提出的CNN模型進行訓練
總的來說本文相當於是作者訓練之前模型的經驗總結+理論證明
A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification(2015)
實驗論文,根據CNN的各種超參數對模型的影響進行了對比試驗,使用的就是第一篇ACL2014論文中的Model
- WordVector:
- Filter Region Size(kernel size):
- Feature Maps(channels):
- Activation Function
- Pooling Strategy
詳見論文
- Regularization
可以說作者做了巨量的實驗
Relation Extraction: Perspective from Convolutional Neural Networks(ACL2015)
RE任務即分析一對出現在同一文本中的實體之間的關係(predefined),實際上可以看作是一種特殊的分類問題。另外,由於實體出現位置具有隨機性,因此文本的位置信息也需要考慮進模型。
模型
輸入的表示
爲了表示實體的位置信息,爲文本的每個單詞引入了兩個距離信息h1和h2,h1表示當前單詞距離第一個實體的距離,h2表示距離第二個實體的距離。
使用隨機初始化的距離embedding矩陣D編碼,因此同一個單詞在編碼後具有三個向量,詞向量v和兩個距離向量d1,d2
最後將三個編碼向量直接拼接,作爲當前單詞的最終編碼。
RE
經過表示後的RE問題即分類問題,直接使用CNN對編碼進行卷積+MaxPooling,最終使用一個mlp進行分類。
未完待續…