在此存儲庫中,我們在規範的Penn Treebank(PTB)語料庫上訓練三種語言模型。該語料庫分別分為大約929k和73k令牌的訓練和驗證集。我們實施了(1)具有線性插值的傳統Trigram模型,(2)(Bengio等人,2003年)所述的神經概率語言模型,以及(3)具有長短記憶(LSTM)單元(Zaremba等人(Zaremba等人)(Zaremba等人)(Zaremba等人,2015年,2015年)。我們還對LSTM模型進行了一系列修改,並在具有多層模型的驗證集上實現了92.9的困惑。
在斯坦福情感樹庫情感分類任務中,我們獲得了電影評論中的一系列句子。每個句子都被標記為正,負或中立。我們遵循(Kim,2014年)去除中性示例,並將任務制定為正面和負面句子之間的二進制決策。
對於每個模型變體,我們正式化預測
對於測試案例
作為

在哪裡
是一個激活函數,
是我們博學的體重,
是我們輸入的功能向量
, 和
是偏見向量。請注意,在此問題集中, 

所有人
由於我們僅考慮SST-2數據集中的正面和負面情感輸入。我們使用Pytorch進行所有模型實現,所有模型均使用10個時代的訓練,每個模型使用尺寸10,學習率為1E-4,ADAM Optimizer和負數日誌可能性損失函數。該設置的唯一例外是多項式幼稚的貝葉斯,該貝葉斯與學習參數適合一個時代
= 1.0。
讓

成為訓練案例的功能計數矢量
帶有分類標籤
。
是一組功能,
表示功能的出現數量
在培訓案例中
。定義計數向量
作為
=
+
,用於平滑參數
。我們跟隨Wang和Manning進行統計;
= 
。關於等式(1),
是正面和負面示例數量之間的對數計數比率,
= log(
/
) 在哪裡
和
是培訓數據集中正面和負面培訓案例的數量,
是輸入的出現數量
, 和
是映射的二進制指標函數
如果大於0和0,則為1。我們僅將摘要視為特徵。
我們學習體重和偏見矩陣
和
這樣的優化

在哪裡
是
- 代表每個培訓樣本的詞袋的數量矢量。在我們的實施中,我們代表
和
帶有單個完全連接的層,該層直接映射到Sigmoid激活下的兩個單位輸出層。
在cbow架構中,每個單詞在句子長度的句子輸入中
被映射到
- 維嵌入向量。平均所有單詞的嵌入向量以產生單個特徵向量
這代表了整個輸入。尤其,

在哪裡

和

, 和
=
所有人
分別是句子嵌入和單詞嵌入的維度。這個編碼
然後將其傳遞到一個完全連接的層中,該圖層直接映射到SoftMax激活下代表輸出類的兩個輸出單元。
讓

成為
- 維單詞向量對應於
- 輸入句子中的單詞。將所有句子填充後,輸入批次達到相同的長度
, 在哪裡
是批處理中所有句子的最大長度句子,然後將每個句子表示為

在哪裡
是串聯操作。讓
代表單詞的串聯
,,,,
,...,,
。在卷積神經網絡中,我們採用卷積操作

帶過濾器尺寸
為了產生特徵,其中濾波器大小有效地是單詞的窗口大小要卷積。讓
成為此操作生成的功能。然後

在哪裡
是一個偏見和
是整流的線性單元(relu)函數。施加濾波器長度尺寸
在我們輸入句子中所有可能的單詞的窗口中,會產生特徵圖

在我們的實施中,我們在過濾大小上進行卷積

然後加入每個功能
進入一個向量。我們將最高列出的合併操作(Collobert等,2011)應用於該串聯特徵圖的矢量,表示為
,得到
= max(
)。然後,我們將輟學
= 0.50至
作為針對過度擬合的正則化度量,將其傳遞到完全連接的層中,然後在輸出上計算軟態。
最後,我們還對CNN體系結構進行了一系列修改,以對SST-2數據集進行略有性能改進。在此實施中,我們利用了斯坦福大學的手套預訓練的載體(Pennington等,2014),我們進行了這些更改:
之後(Kim,2014年),我們在卷積和最大通知步驟中使用兩個單詞嵌入式表 - 一個是非靜態的,或在培訓期間作為模型中的常規模塊進行更新,而在整個訓練運行中將其保存為靜態。在模型的正向傳球中,這兩組嵌入沿“通道”維度將其連接在一起,然後作為單個張量傳遞到三個卷積層中,其中兩個值中的300個維度為兩個值。
在產生代表三個卷積內核的最大功能的組合特徵向量之後,我們只需將輸入的非填充單詞計數添加為單個額外的維度,從而產生301維張量,然後將其映射到2個單位輸出中。從工程的角度來看,我們發現這種情況略有提高了SST-2數據集的性能,其中平均而言,正面句子比負句子稍長 - 19.41單詞與19.17。目前尚不清楚這是否會在不同的數據集中存在,還是特定於SST-2。 (儘管也不完全清楚,這不會,並且似乎暗示了一個有趣的語料庫問題 - “積極”的句子通常比“消極”的句子更長嗎?)
除了上述兩個更改外,我們還對CNN體系結構進行了廣泛的其他修改,包括:
通過將Maxpooled CNN向量與平均CBOW矢量串聯到最終輸出單元之前,將CBOW模型與CNN體系結構相結合。
用Googlenews嵌入代替了手套的嵌入(Mikolov等,2013)。這個想法來自這樣一個想法,即PTB可能會有一些有用的領域特異性,因為這些嵌入者接受了新聞文章的培訓。
如(Kim,2014年)在CNN體系結構的背景下實現了“多通道”嵌入。預先訓練的權重矩陣不僅使用單個嵌入式層,還將其複制為兩個單獨的嵌入層:一個在訓練過程中進行更新的層,另一個是從優化器中省略的,並允許在訓練過程中保持不變。在正向通行字期間,將索引分別映射到每個表格,然後將兩個張量沿嵌入尺寸加入,以產生每個令牌的單個600次嵌入張量。
嘗試了不同的批處理方法。我們嘗試將語料庫建模為訓練期間的單個,不間斷的序列(例如使用TorchText的BPTTIterator ),而是嘗試將語料庫分配到單個句子中,然後為每個句子中的每個句子生成單獨的訓練案例。例如,對於“我喜歡黑貓”的句子,我們產生了五個上下文:
一個。 “ <SOS> i”
b。 “ <SOS>我喜歡”
c。 “ <SOS>我喜歡黑色”
d。 “ <SOS>我喜歡黑貓”
e。 “ <SOS>我喜歡黑貓<EOS> ”
並且對模型進行了訓練,以預測第一個t -1代幣的時間步驟t的每個上下文中的最後一個令牌。我們使用pytorch的pack_padded_sequence函數來處理LSTM的可變長度輸入。實際上,這很有吸引力,因為它使在單詞之前的上下文中更容易地設計更廣泛的功能 - 例如,在t -1上下文中既可以在t -1上下文中實現雙向LSTM,據我們所知,在原始訓練方面是由BPTTIterator強制執行的,這將是很難或不可能的。不過,我們意識到這是在嘗試這件事之後,它永遠不會與BPTTIterator對語料庫的持續表示,因為語料庫中的句子是按文章分組的,因此也將其分組為主題 /概念層面。這意味著該模型可以在句子邊界上學習有用的信息,以了解接下來哪種類型的單詞。
嘗試不同的正則化策略,例如改變輟學百分比,將輟學術應用於初始嵌入層等。
這些更改在初始單層1000單位LSTM上沒有改善。我們表現最好的模型是第3.4節中描述的模型。表1描述了我們第3節模型中的每個模型的困惑。
| 模型 | 困惑 |
|---|---|
| 線性插值的曲子 | 178.03 |
| 神經語言模型(5克) | 162.2 |
| 1層LSTM | 101.5 |
| 3層LSTM +連接 | 92.9 |
儘管具有連接的多層LSTM擊敗了簡單的LSTM基線,但我們無法使用相同的語料庫和相似的體系結構複製(Zaremba等,2015)所描述的78.4驗證困惑性能。也就是說,當使用論文中描述的配置(2層,650和1500個單位架構)時,即使以5-6個時代的範圍內,我們的模型都過度貼合,即使以與論文中描述的方法相匹配的方式進行輟學。相反,(Zaremba等,2015)提到了多達55個時期的訓練。 )
我們訓練了四類模型 - 一種傳統的Trigram模型,具有線性插值,並通過期望最大化學習了權重。一個簡單的神經網絡語言模型以下(Bengio等,2003);單層LSTM基線;以及該模型的擴展,該模型使用三層不同尺寸的層,跳過前兩層的連接以及(Zaremba等人,2015年)所述的正則化。最終模型的困惑度為92.9,而(Zaremba等,2015)使用大致等效的超參數報導了78.4和82.7。
Y. Bengio,R。 Ducharme,P。 Vincent,C。 Jauvin。 “神經概率語言模型。”機器學習研究雜誌3,第1137–1155頁。 2003。
D. Jurafsky。 “語言建模:N-Grams簡介。”演講。斯坦福大學CS124。 2012。
Y. Kim。 “用於句子分類的捲積神經網絡。” 2014年自然語言處理經驗方法會議論文集(EMNLP),第1746-1751頁。 2014。
T. Mikolov,K。 Chen,G。 Corrado,J。 Dean。 “對向量空間中單詞表示的有效估計。” ARXIV預印型ARXIV:1301.3781。 2013。
J. Pennington,R。 Socher,C。 Manning。 “手套:單詞表示的全球向量。” 2014年自然語言處理經驗方法會議論文集(EMNLP),第1532-1543頁。 2014。
W. Zaremba,I。 Sutskever,O。 Vinyals。 2015年。 “經常性神經網絡正規化”。 ARXIV預印型ARXIV:1409.2329。 2015。