天天看點

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

計劃完成深度學習入門的126篇論文第三十二篇,Harvard的Yoon Kim發表的character級别的語言模型。[github]

Abstract

我們描述了一個簡單的神經語言模型,它隻依賴于字元級的輸入。預測仍然是在文字層面進行的。該模型采用卷積神經網絡(CNN)和highway network對字元進行處理,輸出為長短時記憶(LSTM)遞歸神經網絡語言模型(RNN-LM)。在Penn Treebank資料集上,盡管參數減少了60%,但該模型與現有的最先進水準相當。對于詞法豐富的語言(阿拉伯語、捷克語、法語、德語、西班牙語、俄語),該模型的性能優于單詞級/詞素級LSTM baselines,而且參數更少。結果表明,在許多語言中,字元輸入對語言模組化是足夠的。通過對模型中字元組成部分的單詞表示形式的分析,表明該模型僅能從字元中編碼語義資訊和正字法資訊。

Introduction

語言模組化是人工智能和自然語言處理(NLP)的一項基礎性工作,在語音識别、文本生成和機器翻譯等領域有着廣泛的應用。語言模型被形式化為一個字元串(單詞)序列上的機率分布,傳統方法通常涉及n階馬爾可夫假設,并通過計數和後續平滑估計n-gram機率(Chen and Goodman 1998)。基于計數的模型訓練簡單,但是由于資料稀疏(盡管使用了平滑技術),rare n-grams的機率估計很差。

神經語言模型(NLM)通過将單詞作為向量(單詞嵌入)參數化并将其作為神經網絡的輸入來解決n-gram data sparsity問題(Bengio, Ducharme, and Vincent 2003; Mikolov et al. 2010)。這些參數是作為教育訓練過程的一部分來學習的。通過NLMs獲得的單詞嵌入顯示了語義相近的單詞在誘導向量空間中也同樣接近的特性(就像潛在語義分析等非神經技術(Deerwester、Dumais & Harshman 1990))。

雖然NLMs已經被證明優于基于計數的n-gram語言模型(Mikolov et al. 2011),但它們對子單詞資訊(例如語素)是盲目的。例如,他們事先不知道eventful、eventfully、uneventful和uneventfully應該在向量空間中具有結構相關的嵌入。是以,對罕見詞的嵌入估計很差,導緻對罕見詞(及其周圍的詞)有很高的perplexities。這在具有long-tailed頻率分布的形态豐富的語言或具有動态詞彙表(例如社交媒體)的域中尤其有問題。

在這項工作中,我們提出了一種通過字元級卷積神經網絡(CNN)利用子單詞資訊的語言模型,其輸出被用作遞歸神經網絡語言模型(RNN-LM)的輸入。與以往通過語素morphemes來利用次單詞資訊的工作不同(Botha and Blunsom 2014; Luong, Socher, and Manning 2013),我們的模型不需要形态學标記作為預處理步驟。而且,與最近将輸入詞嵌入與字元級模型的功能相結合的工作(dos Santos and Zadrozny 2014; dos Santos and Guimaraes 2015),我們的模型根本沒有在輸入層使用word embeddings。由于NLMs中的大多數參數都來自word embeddings,是以該模型的參數明顯少于以前的NLMs,這使得它對于模型大小可能存在問題的應用程式(例如手機)具有吸引力。

  • 在英語方面,盡管參數減少了約60%,但我們在Penn Treebank (PTB)上取得了與現有最先進水準相當的結果;
  • 在形态學豐富的語言(阿拉伯語、捷克語、法語、德語、西班牙語和俄語)上,我們的模型優于各種baseline(Kneser-Ney、單詞級/詞素級LSTM),同樣,參數更少。

我們已經釋出了本文中描述的模型的所有代碼。[github]

Model

圖1所示的模型的架構很簡單。而傳統的NLM則以word嵌入作為輸入,而我們的模型則采用單層字元級卷積神經網絡的輸出,使用max - time池。

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

圖1: 應用于示例語句的語言模型的體系結構。彩色效果最佳。該模型以謬論為目前輸入,并結合曆史(以隐藏狀态表示)來預測下一個單詞is。第一層執行對字元嵌入(次元4)的查找,并将它們堆疊起來形成矩陣Ck。然後在Ck和多個濾波矩陣之間進行卷積運算。注意,在上面的例子中,我們有12個過濾器,3個寬度為2的過濾器(藍色),4個寬度為3的過濾器(黃色),5個寬度為4的過濾器(紅色)。應用最大時間合用操作來獲得給定于公路網的單詞的固定維表示。高速公路網的s輸出作為多層LSTM的輸入。最後,在LSTM的隐藏表示上應用一個仿射變換和一個softmax,得到下一個單詞的分布。下一個詞的(預測)分布與實際下一個詞的交叉熵損失最小。元素方面的加法、乘法和sigmoid操作符用圓圈表示,仿射變換(适當時加上非線性)用實箭頭表示。

對于符号,我們用粗體小寫字母表示向量(例如

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

),用粗體大寫的矩陣(如

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

),斜體小寫的标量(例如

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

,以及以草體大寫(例如

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

)信件。為了便于标注,我們假設單詞和字元已經被轉換成索引。

Recurrent Neural Network

遞歸神經網絡(RNN)是一種特别适合于序列現象模組化的神經網絡結構。在每一步t時,RNN取輸入向量

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

和隐藏狀态向量

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

,通過應用下面的遞歸操作生成下一個隐藏狀态

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

這裡

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

是仿射變換的參數,f是非線性元素乘法。從理論上講,該神經網絡可以用隐藏狀态

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

概括出t之前的所有曆史資訊。然而,在實踐中,學習與普通RNN的長期依賴關系是困難的,因為梯度消失/爆炸(Bengio, Simard,和Frasconi 1994),這是由于雅可比矩陣對時間的乘法。

長短時記憶(LSTM) (Hochreiter和Schmidhuber, 1997)通過在RNN中增加一個記憶單元向量來解決學習長期依賴關系的問題:

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

LSTM中的記憶細胞是對時間的累加,緩解了梯度消失的問題。梯度爆炸仍然是一個問題,雖然在實踐中簡單的優化政策(如梯度裁剪)工作得很好。LSTMs已經被證明在許多任務上都優于vanilla RNNs,包括語言模組化(Sundermeyer, Schluter,和Ney 2012)。通過擁有另一個網絡,可以很容易地将RNN/LSTM擴充到兩個(或更多)層t處的輸入為

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

(來自第一個網絡)。事實上,擁有多個層次對于在各種任務上獲得競争績效往往是至關重要的(Pascanu et al. 2013)。

Recurrent Neural Network Language Model

設V為單詞的固定大小詞彙表。給定曆史序列

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

。一個遞歸神經網絡語言模型(RNN-LM)通過對隐藏層應用仿射變換,然後使用softmax做到了這一點

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

其中

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

(也稱為輸出嵌入)的第j列,和

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

為偏置項。類似地,對于傳統的通常以單詞為輸入的RNN-LM,如果

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

,則RNN-LM在t處的輸入為嵌入

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

,即嵌入矩陣

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

的第k列。我們的模型隻是用字元級卷積神經網絡的輸出替換了輸入embeddings X,如下所述。

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

是訓練單詞徐烈烈,訓練通過最小化negative log-likelihood (NLL):

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

這通常是通過截短的反向傳播時間(Werbos 1990; Graves 2013)。

Character-level Convolutional Neural Network

在我們的模型中,t時刻的輸入是字元級卷積神經網絡(CharCNN)的輸出,我們将在本節中對此進行描述。CNNs (LeCun et al. 1989)已經在計算機視覺方面取得了最先進的成果(Krizhevsky, Sutskever, Hinton 2012),并被證明對各種NLP任務是有效的(Collobert et al. 2011)。用于NLP應用程式的體系結構的不同之處在于,它們通常涉及時間卷積而不是空間卷積

設C為字元的詞彙量,d為字元嵌入的維數,

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

為矩陣字元嵌入。假設單詞

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

由一系列字元組成

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

,其中l為單詞k的長度,k的字元級表示由矩陣

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

給出,其中第j列對應于

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

的字元嵌入(即Q的第j列)。

我們在

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

和寬度為w的濾波器(或核)

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

之間應用一個窄卷積,然後我們添加一個偏置并應用非線性得到一個特征映射

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion
(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

。具體地說,

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

的第i個元素由

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion
(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

是從i到(i+m-1)列,

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

是Frobenius内積。最後我們計算 max-over-time

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

作為對應于過濾器H的特征(當應用于word k時)。其思想是捕捉最重要的特征——給定過濾器的值最高的特征。過濾器本質上是選擇一個字元n-gram,其中n-gram的大小對應于過濾器的寬度。

我們描述了從一個濾波矩陣中得到一個特征的過程。我們的CharCNN使用多個不同寬度的濾波器來獲得k的特征向量,是以如果我們有一個總共的h濾波器

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion
(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

為k的輸入表示。對于許多NLP應用程式,h通常選擇在[100, 1000]。

Highway Network

我們可以簡單地取代

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

(嵌入)這個詞,即在RNN-LM每個t,我們展示後,這個簡單的模型表現良好的(表7)。也可能有一個多層感覺器(MLP)對

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

模型之間的互動的角色- gram的過濾器,但我們發現這導緻糟糕的性能。

相反,我們通過Srivastava等人(2015)最近提出的Highway Network運作

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

,獲得了改進。而MLP的一層應用仿射變換後的非線性來獲得一組新的特征

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

Highway的一層網絡是:

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

g是非線性的,

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

稱為transform gate,(1-t)被稱為carry gate。與LSTM網絡中的存儲單元類似,highway層允許通過自适應地将輸入的某些次元直接攜帶到輸出來訓練深度網絡。通過構造y和z的維數必須比對,是以

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

是方陣。

Experimental Setup

作為語言模組化的标準,我們使用perplexity (PPL)來評估模型的性能。序列上模型的複雜性

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

其中NLL通過測試集計算。我們在不同語言和大小的語料庫上測試模型(統計資料如表1所示)。

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

表1:語料庫統計。V =單詞詞彙量;C =字元詞彙量;T =訓練集中的令牌數。小的英語資料來自Penn Treebank,阿拉伯語資料來自News-Commentary語料庫。其餘的來自2013年ACL機器翻譯研讨會。C之是以大是因為(很少發生)特殊字元。

我們對Penn Treebank (PTB)進行了超參數搜尋、模型内省和消融ablation研究(Marcus, Santorini, and Marcinkiewicz 1993),利用标準訓練(0-20)、驗證(21-22)和測試(23-24)以及Mikolov等人(2010)的預處理。由于大約有1m個tokens和

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

,這個版本已經被語言模組化社群廣泛使用,并且是公開可用的。

通過優化PTB上的最優超參數,我們将該模型應用于各種形态豐富的語言:捷克語、德語、法語、西班牙語、俄語和阿拉伯語。非阿拉伯語資料來自2013年ACL機器翻譯研讨會,我們使用與Botha和Blunsom(2014)相同的火車/驗證/測試分割。雖然原始資料是公開的,但我們從作者那裡獲得了預處理版本,其中8位作者的形态學NLM作為我們工作的基線。我們對每個語言使用1m tokens的小資料集(data - s)和大資料集(data - l)進行教育訓練,其中包括比PTB大得多的V的大英語資料。阿拉伯語資料來自新聞評論語料庫,我們執行自己的預處理和訓練/驗證/測試分割。

在這些資料集中,隻有單例單詞被替換為<unk>,是以我們有效地使用了完整的詞彙表。值得注意的是,字元模型可以利用OOV token的表面形式(被替換為<unk>),但是我們不這樣做,而是堅持使用預處理版本(盡管不利于字元模型),以便與以前的工作進行精确比較

Optimization

模型采用時間截短反向傳播方法進行訓練(Werbos 1990; Graves 2013)。我們使用随機梯度下降法反向傳播了35個時間步長,其中初始學習率設定為1.0,如果經過一個epoch後驗證集的perplexity下降不超過1.0,則将學習率減半。對于Data - s,我們使用batch大小為20,對于數Data - l,我們使用batch大小為100 (更有效)。在每個批處理上平均梯度。我們在非阿拉伯資料上訓練25個epoch,在阿拉伯資料上訓練30個epoch(足夠收斂),在驗證集上選擇性能最好的模型。模型參數在均勻分布上随機初始化,當參數在[- 0:05;0:05]。

對于正則化,我們使用dropout (Hinton et al. 2012),在LSTM輸入到隐藏層(除了初始Highway到LSTM層)和隐藏到輸出softmax層上的機率為0:5。我們進一步限制梯度的範數小于5,這樣,如果梯度的L2範數大于5,那麼在更新之前,我們将其重新正規化為

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

。梯度範數限制是訓練模型的關鍵。這些選擇在很大程度上受到Zaremba等人(2014)以前使用LSTMs進行詞彙級語言模組化的工作的指導。

最後,為了加快對資料l的訓練,我們采用了層次結構的softmax (Morin和Bengio 2005),這是一種使用非常大的jVj而不是通常的softmax來訓練語言模型的通用政策。選取聚類

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

的個數,将V随機分成互斥的、集合窮舉的子集

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

,例如:;(近似)相等大小的Vc。然後

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

變為

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

其中r為簇索引,令

(32)[AAAI16] Character-Aware Neural Language ModelsAbstractIntroductionModelExperimental SetupRelated WorkConclusion

。第一項是取r的機率,第二項是取r的機率,式子是在簇r被選中的情況下,選擇單詞j的機率。我們發現hierarchical softmax最大值對于基于Data-s的模型是不必要的。

Related Work

神經語言模型(NLM)包含了豐富的用于語言模組化的神經網絡體系結構。一些示例架構包括前饋(Bengio、Ducharme和Vincent 2003)、遞歸(Mikolov et al. 2010)、sumo -product (Cheng et al. 2014)、log-雙線性(Mnih和Hinton 2007)和卷積(Wang et al. 2015)網絡。

為了解決罕見的單詞問題,Alexandrescu和Kirchhoff(2006)在Bilmes和Kirchhoff(2003)基于基于計數的n-gram語言模型的類似工作的基礎上,将單詞表示為一組共享因子嵌入。他們的因子神經語言模型(FNLM)可以包含語素、單詞形狀資訊(如大寫字母)或任何其他注釋(如詞性标記)來表示單詞。

一類特殊的FNLMs利用語素資訊,将一個單詞視為其(習得的)語素嵌入的函數(Luong, Socher, and Manning 2013;Botha and Blunsom 2014;Qui等,2014)。例如Luong, Socher, and Manning(2013)在詞素嵌入上應用遞歸神經網絡來獲得單個單詞的嵌入。雖然這些模型已被證明是有用的,但它們需要将形态學标記作為預處理步驟。

另一個工作方向涉及純字元級NLMs,其中輸入和輸出都是字元(Sutskever、Martens和Hinton 2011; Graves 2013)。字元級模型避免了形态學标記或手工特征工程的需要,并且具有能夠生成新單詞的吸引人的特性。然而,它們通常被單詞級模型超越(Mikolov等,2012)。

在語言模組化之外,關于詞性标記(dos Santos和Zadrozny 2014)和命名實體識别(dos Santos)的改進也有報道(Guimaraes 2015),将一個單詞表示為其單詞嵌入和字元級CNN輸出的串聯,并使用組合表示作為條件随機字段(CRF)中的特征。Zhang, Zhao, and LeCun(2015)完全消除了單詞嵌入,并表明對于文本分類,深度CNN對字元的處理效果很好。Ballesteros、Dyer和Smith(2015)使用RNN over字元隻是為了訓練基于轉換的解析器,進而改進了許多形态學豐富的語言。

最後,Ling等(2015)在字元上應用雙向LSTM作為語言模組化和詞性标注的輸入。他們在各種語言(英語、葡萄牙語、加泰羅尼亞語、德語、土耳其語)上都有進步。至于哪一種字元組合模型(即CNN或LSTM)表現得更好,目前還沒有定論。

Conclusion

我們引入了一個隻利用字元級輸入的神經語言模型。預測仍然是在文字層面進行的。盡管參數較少,但是我們的模型比使用單詞/語素嵌入輸入層的基線模型表現得更好。我們的工作質疑單詞嵌入(作為輸入)對神經語言模組化的必要性。

通過對模型中字元組成部分的單詞表示形式的分析,進一步表明該模型能夠僅從字元進行編碼,具有豐富的語義和正字法特征。使用CharCNN和highway圖層進行表示學習(例如作為word2vec的輸入(Mikolov et al. 2013))仍然是未來工作的一個方向。

既然作為輸入的單詞順序處理在自然語言進行中是普遍存在的,那麼看看本文介紹的體系結構是否适用于其他任務,例如作為神經機器翻譯中的編碼器/解碼器(Cho等,2014;Sutskever, Vinyals和Le 2014)。