全麵解讀用於文本特征提取的神經網絡技術:從神經概率語言模型到GloVe
作者:Vineet John
機器之心編譯
參與:吳攀、李亞洲、蔣思源
文本特征提取是自然語言處理的核心問題之一,近日,加拿大滑鐵盧大學的 Vineet John 在 arXiv 發布了一篇關於用於文本特征提取的神經網絡技術的綜述論文。機器之心對該論文進行了編譯介紹,論文原文可點擊文末「閱讀原文」查閱。
https://arxiv.org/abs/1704.08531
本論文的目標是促進有關使用神經網絡架構的文本特征提取技術的討論。本論文中所討論的研究問題關注的是當前最佳的神經網絡技術,它們已經在語言處理、語言生成、文本分類和其它計算語言學任務中被證明是有用的工具。
1 動機
目前基於文本的特征提取所使用的大部分方法都依賴於相對簡單的統計技術。比如說,n-gram 這樣的詞共現模型或 TF-IDF 這樣的詞袋模型。
本研究項目的動機是識別和調查使用神經網絡的技術,並將它們與傳統文本特征提取模型放在一起來進行研究,以展示它們方法上的不同。
文本特征提取可以用於多種不同的應用,包括但不限於:無監督語義相似度檢測、文章分類和情感分析。
本項目的目標是記錄使用神經網絡從文本數據中進行特征提取這一領域的不同之處、優點和缺點。另外還描述了這些技術隨時間的演化。
本報告可被工程師用作快速查詢表,可用來尋找構建文本分類的方法或回歸流程,正如在第 15 節討論的那樣,可用於將用例對應到特定的特征提取實現上。
2 研究問題
-
問題 1:用於從文本中提取特征的相對簡單的統計技術是什麼?
-
問題 2:使用神經網絡而非這些簡單方法是否有什麼固有的好處?
-
問題 3:相對於使用簡單的方法,使用神經網絡有怎樣的權衡?
-
問題 4:在性能和準確度上,這些不同的技術之間有怎樣的差異?
-
問題 5:在哪些用例中,這些權衡比神經網絡的好處更重要?
3 方法
在第 2 節中列出的研究問題將通過調查一些這個主題的重要概述論文來解決 (Goldberg, 2016)(Bengio et al., 2003)(Morin and Bengio, 2005)。也會研究這個領域一些有突破性的研究論文,其中包括詞嵌入 (Mikolov et al., 2013a)(Mikolov et al., 2013b)(Mikolov et al., 2013c).
除此之外,還將調查一些更不明顯的特征提取方法,包括類似詞性標注、詞塊、命名實體識別和語義角色標注等任務 (Socher et al., 2011)(Luong et al., 2013)(Maas et al., 2015)(Li et al., 2015)(Collobert et al., 2011)(Pennington et al., 2014).
4 背景
本節在計算語言學領域提供了關於這一任務的高層麵的背景解讀。
4.1 詞性標注(Part-of-Speech Tagging)
詞性標注的目標是用一個單獨的標簽標記每一個詞,該標簽表示了其句法作用,比如名詞、動詞、形容詞等。
最好的 POS 標注器基於在文本窗(windows of text)上訓練的分類器,然後在推理階段再被送入一個雙向解碼算法。
總體來說,模型類似於一個雙向依存性網絡(bi-directional dependency network),而且可以使用多種方法進行訓練,其中包括支持向量機和雙向 Viterbi 解碼器。
4.2 詞塊(Chunking)
詞塊的目標是通過名詞或動詞短語等句法成分來標記句子的分段。其也被稱為淺層句法分析(shallow parsing),可以被看作是詞性標注在短語層麵(而非詞層麵)的泛化。
詞塊的實現通常需要一個底層的 POS 實現,然後這些詞再被組合起來或通過連接(concatenation)進行分塊。
4.3 命名實體識別(Named Entity Recognition)
NER 將一個句子中的基本元素標注到類別上,比如 PERSON 或 LOCATION。
訓練 NER 分類器的特征包括 POS 標簽、CHUNK 標簽、前綴和後綴以及被標記實體的大型詞典。
4.4 語義角色標注(Semantic Role Labeling)
SRL 的目標是為句子的句法成分分配語義角色。
當前最佳的 SRL 係統由多個階段組成:產生一個解析樹,識別哪個解析樹節點表示了給定動詞的參數,最後分類這些節點來計算對應的 SRL 標簽。
SRL 係統通常會詳細給出多個特征,比如詞性和詞的句法標簽及在樹中的節點、該動詞在解析樹中的句法路徑、該解析樹中的節點是否是名詞或動詞短語等的一部分。
5 文檔向量化
文檔向量化可被用來將文本內容轉換成一個數值向量表征,該表征可被用作特征,然後其可被用來訓練機器學習模型。本節探討了幾種用來計算這種特征向量的統計學方法 (John and Vechtomova, 2017)。
5.1 n-gram 模型
n-gram 是來自給定文本或語音序列的 n 項連續序列。給定一個完整的文檔語料庫,每個元組 n 個 gram,字符和詞都被表示為一個比特向量(bit vector)中一個特定的比特;在與一個文本體(body of text)聚合時,其會形成一個稀疏的對該文本的向量化表征,采用了 n-gram 共現的形式。
5.2 TF-IDF 模型
即項頻率-逆文檔頻率(term frequency - inverse document frequency),這是一種數值統計方法,目的是反映一個詞對集合或語料庫中的一個文檔的重要程度 (Sparck Jones, 1972)。TF-IDF 的值會隨一個詞在該文檔中所出現的次數的增長而線性增長,但也會被該詞在該語料庫中的出現頻率而抵消,這有助於調節那些在一般情況下都常會出現的詞。這是一個詞袋模型,而且並不保存詞的順序。
5.3 段落向量模型(Paragraph Vector Model)
段落向量模型是由一個無監督學習算法構成的,其可以為可變長度的文本(比如句子或文檔)學習到固定大小的向量表征(Le and Mikolov, 2014)。該向量表征可被學習用來預測從段落中采樣的上下文中的周圍的詞。兩種不同的實現都已經在社區中取得了突出表現:
-
Doc2Vec:一個用 Gensim 實現的 Python 庫:https://radimrehurek.com/gensim/models/doc2vec.html
-
FastText:一個用 C++ 做的獨立實現 (Bojanowski et al., 2016) (Joulin et al., 2016).
6 用於自然語言處理的神經網絡模型入門(A Primer of Neural Net Models for NLP(Goldberg, 2016))
-
全連接的前饋神經網絡是非線性學習器,其可在使用了線性學習器的地方隨時替換。
-
在實驗結果上觀察到的高準確度是由這種非線性與預訓練的詞嵌入所共同導致的。
-
多層前饋網絡可以在情感分類和事實性問答上實現有競爭力的表現。
-
卷積和池化架構在許多任務上都得到了有潛力的結果,其中包括:文檔分類、短文本歸類、情感分類、實體之間關係類型分類、事件檢測、釋義識別、語義角色標注、問答、基於評論預測電影票房收入、建模文本興趣和建模字符序列與詞性標簽之間的關係。
-
卷積和池化架構讓我們可以將任意大的項編碼成固定大小的向量,該向量捕獲了它們最突出的特征,但這樣它們也犧牲了大多數的結構信息。
-
循環和遞歸網絡允許在使用序列和樹的同時保留結構信息。
-
循環模型已經表明可以為語言建模得到非常強大的結果,另外還可用於序列標注、機器翻譯、依存句法分析、情感分析、噪聲文本規範化、對話狀態跟蹤、響應生成和建模字符序列與詞性標簽之間的關係。
-
遞歸模型已被證明能在 constituency 和依存句法分析再排序、對話解析、語義關係分類、基於解析樹的政治意識形態檢測、情感分類、目標依賴情感分類和問答方麵得到當前最佳和近乎最佳的結果。
-
卷積網絡已被觀察到可有效地用於歸納相關任務,在語言建模任務上能得到與循環/遞歸網絡同樣的好效果。
7 一種神經概率語言模型(A Neural Probabilistic Language Model)
目標:如果了解一個句子的基本結構,那麼其就能通過可互換短語替代原句的一部分而創造一個新句子(Bengio et al., 2003)。
挑戰:主要的瓶頸是計算輸出層的激活函數,因為該輸出層是一個由 softmax 激活函數組成的全連接層。
描述:
-
本論文在優化算法方麵的主要貢獻是數據並行處理(不同的處理器處理不同的數據子集)和共享內存異步處理器的使用。
-
論文作者們提出通過學習詞的分布式表征克服維度災難,這種詞的分布式表征允許每一個訓練句子通過表示相鄰句語義的指數反饋給模型。
-
令語言建模和其他學習問題變得困難的根本問題在於維度災難。這在構建擁有許多離散隨機變量(如句子中的詞)之間的聯合分布式時特別明顯。
-
當前最佳的結果通常由使用 trigrams 獲得的。
-
可以通過共享參數的多層神經網絡替代現有句子的相似語義的語言結構而生成新句子。
-
本論文的目標是獲得詞向量序列的實數值,並學習沿特征向量相關的詞序列的聯合概率函數,從而學習實數值向量的表征和參數的概率分布。
-
概率函數可以調整而最大化訓練數據的對數似然性,同時懲罰成本函數的方法與 Ridge 回歸所使用的罰項一樣。
-
這將確保語義相似的詞最終具有幾乎相等的特征向量,這稱為學習分布特征向量。
-
對離散型變量建模,如將句子結構和連續值做對照,連續型函數可以假設其存在某些形式的局部性,但相似的假設不能在離散型函數中存在。
-
N-gram 模型通過計算每一個詞(可以跟隨一組 n 個預測詞)的條件概率而實現對語言的概率建模。
-
可以通過將流行算法有效組合而生成新的詞序列。如 n-grams 和超高的詞頻計數相結合。
8 層級概率神經網絡語言模型(Hierarchical Probabilistic Neural Network Language Model)
目標:在訓練和識別期間,實現條件概率的層次結構分解能得到約為 200 的加速。層次結構分解是從 WordNet 語義層次結構提取且有先驗知識約束的二元層級層級聚類(Morin and Bengio, 2005)。https://wordnet.princeton.edu/
描述:
-
與上一篇論文相似,該論文嚐試解決「維度災難(curse of dimensionality,第 7 節)」,並嚐試產生一個更快的變體。
-
Back-off n-grams 是用來學習表征每一個詞的實值向量。
-
所學習的詞嵌入在分布式架構中所有參與的節點之間共享。
-
整個模型非常重要的組成部分是選擇詞的二值編碼,即分層詞聚類的選擇。在本論文中,作者們將經驗統計和 WordNet 資源的先驗知識
9 一種用於段落和文檔的層次神經自編碼器(A Hierarchical Neural Autoencoder for Paragraphs and Documents)
目標:試圖根據基本的詞嵌入和句子嵌入來構建段落嵌入,然後基於編碼該段落嵌入以試圖重構原段落(Li et al., 2015)。
描述:
-
該實現使用了一個 LSTM 層來將詞轉換成句子的向量表示。一個後續的 LSTM 層將多個句子轉換成一個段落。
-
為了實現這一點,我們需要在創建嵌入表示時保留句法、語義和對話的相關屬性。
-
使用了層次 LSTM 來保存句子結構。
-
使用給定輸入的輸出的最大化似然來評估參數,類似於標準的序列到序列模型。
-
評估是使用 softmax 函數計算的,以最大化組成詞的似然。
-
使用層次自編碼器的注意(attention)模型可用於對話係統,因為其為對話進行了明確的建模。
10 在連續空間詞表征中的語言規律(Linguistic Regularities in Continuous Space Word Representations)
目標:在本論文中,作者調查了被輸入層權重明確學習到的向量空間詞表征。這些表征非常擅長得到語言中的句法和語義規律,而且每一個關係都可以使用一個關係特定的向量偏移(vector offset)來特征化。這允許基於詞之間的偏移(Mikolov et al., 2013c)來實現向量導向的推理。這是導致了 Word2Vec 的誕生的創新論文之一,這是一種當前最佳的詞嵌入工具(Mikolov et al., 2013a)。
描述:
-
神經網絡語言模型的一個定義特征是它們的詞表征,是高維的實值向量(real-valued vector)。
-
在這個模型中,詞被一些學習到的查找表(lookup-table)轉換成實值向量,這些向量被用作一個神經網絡的輸入。
-
這些模型的一個主要優勢是其分布式表征實現了一定水平的泛化,而使用經典的 n-gram 語言模型是不可能辦到的。
-
本論文中的詞表征是通過一個循環神經網絡語言模型學習到的。
-
輸入向量 w(t) 表示在時間 t 的輸入詞,使用了 1-of-N 編碼,輸出層 y(t) 可以得到詞上麵的一個概率分布。隱藏層 s(t) 維持一個對其句子曆史的表征。輸入向量 w(t) 和輸出向量 y(t) 具有和詞匯表一樣的維度。
隱藏層和輸出層的值通過如下方式計算:
圖 1:RNN 語言模型
擁有實值特征表征的最大特點之一是能夠計算類比問題 a : b; c : d 的答案,其中 d 是未知的。使用連續空間詞表征,這可以變得像計算 y = xb − xa + xc 一樣簡單,其中 y 是該模型所能計算出 d 的最佳估計。如果在被訓練的詞之中沒有向量,則 y == xw,那麼最近鄰的向量表征可以使用餘弦相似度估計出來:
11 使用用於形態學的遞歸神經網絡的更好的詞表征(Better Word Representations with Recursive Neural Networks for Morphology)
目標:本論文旨在解決複雜詞和罕見詞的向量表示中的不準確問題,這個問題被認為是由形態上相關的詞之間的關係的缺乏而導致的(Luong et al., 2013)。
描述:
-
該論文的作者將 RNN 中的每個詞素(morpheme)都看作是一個基本單元,並根據它們的詞素為形態複雜的詞在工作過程中構建表征。通過訓練一個神經語言模型(NLM)和用於複雜詞的集成 RNN 結構,他們使用語境信息學習詞素語義及它們的組合性質。
-
討論了這樣一個問題:如果一開始罕見詞的向量表征就是不準確的,那麼 xapples − xapple ≈ xcars − xcar 這樣的 Word2Vec 句法關係就不是正確的。
-
morphoRNN 運行在詞素水平上,而非詞水平上。例子可見圖 2.
-
父詞(parent word)是通過將詞幹向量和詞綴向量結合起來創造的,如式 1 所示。
圖 2:morphoRNN
-
其成本函數是關於新構建的表征 pc(xi) 和參考表征 pr(xi) 之間的平方歐幾裏德損失(squared Euclidean loss)。該損失函數見式子 2.
-
對語境敏感和不敏感的 Morphological RNN 版本都在本論文中得到了描述。
-
類似於經典的 RNN,該網絡也是通過在一個前向通過的架構中計算激活函數和反向傳播誤差來進行訓練的。
-
這個 RNN 模型的表現優於其它大多數自然語言處理模型,可以被用於補充詞向量。
12 向量空間中詞表征的有效估計(Efficient Estimation of Word Representations in Vector Space)
目標:本論文的主要目標是介紹可用於從數十億詞的巨型數據集(並且使用了數以百萬計的詞匯)中學習高質量詞向量的技術(Mikolov et al., 2013a)。
挑戰:在該神經網絡的全連接輸出層出現的複雜度占用了大部分計算。幾種被認為可以改善這種情況的方法是使用 softmax 輸出激活單元的層次化版本,或者避免在最後一層避免執行歸一化。
描述:
-
本論文提出的思想基於 (Bengio et al., 2003) 之前提出的思想。
-
其目標是得到具有詞的句法和語義特征的高質量詞嵌入,使得能夠使用代數運算來表示其在向量空間中的距離,比如 man − woman = king − queen 或 tell − told = walk − walked
-
這裏的訓練時間是隨被學習的特征向量的維度而增長的,而不是訓練數據的量。
-
該方法試圖找到值的分布式向量表征,而非使用 LSA 和 LDA 等方法得到的值的連續表征。
-
該模型是使用隨機梯度下降和反向傳播訓練的。
-
該 RNN 模型在本質上有對複雜模式的句子結構的更好的表征,而無需指定上下文的長度。
-
為了實現數據的分布式訓練,該模型中使用了多個 DistBelief 框架。使用了 Adagrad 來執行異步梯度下降。
-
本論文概念化了兩種用於基於語境的詞向量訓練的不同模型,這兩者都是詞的連續的分布式的表征,它們分別是:1)連續詞袋模型(CBOW):該模型使用詞的上下文(即這個詞前後的詞)來預測當前詞;2)skip-gram 模型:該模型使用當前詞來預測其所處的上下文。如圖 3 所示:
圖 3:CBOW 和 Skip-gram 模型
其實驗結果表明該 CBOW 和 Skip-gram 模型始終優於當時的最佳模型。其還觀察到,當達到了一定程度後,再繼續增加數據的維度和規模會開始帶來反效果。
13 詞與短語及它們的組合的分布式表征(Distributed Representations of Words and Phrases and their Compositionality)
目標:這篇論文基於 Word2Vec skip-gram 模型的思想,並提出了關於詞嵌入的質量以及訓練過程的加速的優化。它也提出了一種可替代層次 softmax 最後層的方法,被稱為負采樣(negative sampling)(Mikolov et al., 2013b)。
描述:
其建議的一種優化方法是下采樣訓練集的詞,以實現模型訓練的速度提升。
給定一個訓練詞序列 [w1, w2, w3, ..., wT ],該 skip-gram 模型的目標是最大化其平均對數概率,如式子 3 所示:
其中 c 是窗口,即圍繞被訓練的當前詞周圍的上下文。
-
正如 (Morin and Bengio, 2005) 中介紹的那樣,一種計算高效的全 softmax 的近似是層次 softmax。該層次 softmax 使用了輸出層一個二叉樹表征,其中 W 詞是其枝葉,並且對每一個節點都明顯地表示了其子節點的相對概率。這些就定義了一種隨機遊走(random walk),可將概率分配給詞。
-
該論文的作者使用了二值霍夫曼樹(binary Huffman tree),其可以將短碼分配給常見的詞,從而實現快速訓練。據觀察,在此之前,將詞按它們出現的頻率分組可以很好地用作基於神經網絡的語言模型的加速技術。
-
噪聲對比估計(NCE)是層次 softmax 的一種替代方法,其設想一個好模型應該可以根據 logistic 回歸的方法來區分數據和噪聲。
-
為了克服罕見詞和常見詞之間的不平衡,我們使用了一個簡單的下采樣方法:訓練集中的每一個詞都按照以下公式計算出的概率被丟棄:
-
這類似於網絡中神經元的 dropout,盡管在統計學上,其更類似於使用這種方法從語料庫中移除常見詞。
-
丟棄常出現的詞可以減少計算和內存成本。
-
可以使用 unigram 和 bigram 詞頻計數將單獨的詞合並成短語,如下所示
-
學習這些分布式表征的另一個有趣的性質是:由其 skip-gram 模型學習到的詞表征和短語表征表現出了一種線性結構,使得其可以使用簡單的向量運算來執行準確的類推推理。
14 GloVe:用於詞表征的全局向量(GloVe: Global Vectors for Word Representation)
目標:本論文提出了一種全局對數雙線性回歸模型(global log-bilinear regression model),其結合了該文獻中兩種主要模型族的優勢,它們是:全局矩陣分解和局部上下文窗口方法(Pennington et al., 2014)。
描述:
-
盡管 LSA 這樣的方法能有效地利用統計信息,但它們在詞類比任務上的表現相對較差,這表明了它們次優的向量空間結構。skip-gram 這樣的方法可能在詞類比上表現更好,但它們在利用語料庫的統計信息上表現並不好,因為它們是在分離的局部上下文窗口上訓練的,而不是在全局的共現(co-occurrence)計數上訓練的。
-
任何任意詞之間的關係可以通過研究它們的共現概率與多個探針詞(probe word)之間的比例來檢驗。
-
該論文的作者認為詞向量學習的合適起點應該是共現概率的比例,而非概率本身。
-
我們可以將這種共現關係表示成以下形式:
這使得該特征矩陣可與其轉置互換。
-
該算法中還包含了一個加法偏移:
-
其在計算該共現矩陣時,在避免分歧的同時又維持了 X 的稀疏性。
-
該論文中所得到的模型可與全局的 skip-gram 模型進行比較,而非 (Mikolov et al., 2013a) 中提出的固定窗口大小的 skip-gram 模型。
-
其表現似乎會隨訓練數據的增加而單調增加。
15 討論
在進行了文獻調查之後,本節再次回到原來的研究問題上,並根據這些原論文的實驗結果和結論推導出了一些簡明扼要的結論。
問題 1:用於從文本中提取特征的相對簡單的統計技術是什麼?
像 n-gram 這樣的詞頻計數模型和像 TF-IDF 這樣的簡單詞袋模型仍然是獲取文本的數值向量表征的最簡單的工具。
問題 2:使用神經網絡而非這些簡單方法是否有什麼固有的好處?
使用神經網絡的好處主要是它們有能力識別模煳的模式,並且可以在主題分類和句法解析樹生成等許多應用領域保持靈活性。
問題 3:相對於使用簡單的方法,使用神經網絡有怎樣的權衡?
其權衡主要考慮的是計算成本和內存使用,盡管模型複雜度也是一個因素,但基於此,神經網絡可被訓練學習任意複雜的生成模型。
問題 4:在性能和準確度上,這些不同的技術之間有怎樣的差異?
因為各種應用各有千秋,所以這個問題的回答會有些主觀性。通常而言,可以使用 TF-IDF 這樣的簡單的統計學方法來解決文檔相似性問題。CNN 本質上是以迭代式地降維的方式來對輸入數據建模,使得它非常適合主題分類和文檔摘要等任務。RNN 非常擅長建模文本序列,這使得它們非常適合語言句法建模。在各種框架中,GloVe 的預訓練詞嵌入的表現優於 vanilla Word2Vec,其被認為是當前最佳的。
問題 5:在哪些用例中,這些權衡比神經網絡的好處更重要?
正如上一個問題解釋的那樣,對於一些簡單的信息檢索用例(比如文檔排序),TF-IDF 和 詞 PMI(點互信息)就已經足夠了。用不著在這樣的應用中使用神經網絡。
16 總結
本論文總結了最近幾年湧現的最先進的神經網絡技術的重要方麵。當涉及到開發從簡單的聊天機器人到通用人工智能實體概念化等一係列應用時,機器翻譯、自然語言理解和自然語言生成的領域是重要的研究領域。
在第 15 節的討論部分總結了被調查論文的結果,並為新手進入該領域提供了一個直接可用的參考。
對於未來的工作,我們打算實驗性地比較不同的詞嵌入方法,以作為迭代地構建高質量的用於未來機器學習模型使用的引導。
致謝和參考文獻(略)
原文鏈接:https://arxiv.org/abs/1704.08531
本文來源於"中國人工智能學會",原文發表時間" 2017-05-02 "
最後更新:2017-05-22 13:01:21