NLP筆記(一)——CNN在文本處理中的應用

很不錯的一篇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

作者給出的定義如下:
A function f1 is a tvembedding of χ1 w.r.t χ2if there exists a function g1 such that P(X2X1)=g1(f1(X1),X2)for any (X1,X2)χ1×χ2 A\ function\ f_1\ is\ a\ tv-embedding\ of\ \chi_1\ w.r.t\ \chi_2\\if \ there\ exists\ a\ function\ g_1\ such\ that\ P(X_2|X_1)=g_1(f_1(X_1),X_2)\\ for\ any\ (X_1,X_2)\in\chi_1\times\chi_2
這裏的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進行分類。

在這裏插入圖片描述

未完待續…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章