一天一經典Efficient Estimation of Word Representations in Vector Space


摘要

本文提出了兩種從大規模數據集中計算連續向量表示(Continuous Vector Representation)的計算模型架構。這些表示的有效性是通過詞相似度任務(Word Similarity Task)來度量的。實驗結果表明,這種方法要優於已有的基於其他類型的神經網絡模型的效果。更重要的是,這種方法可以以更低的計算代價獲得更高的詞相似性預測的准確度。舉個例子來說,從16億詞的語料庫中學習表示大概需要不到一天的時間。從效果角度來講,在詞的語法與語義相似度方面,達到了領先水平。

 

背景介紹

當今先進的NLP系統與技術都把詞作為原子單元。總是被用作詞表的索引,而不會去考慮詞間的相似性。這樣做的好處在於簡單且robust,通常我們的觀測結果是:簡單模型在大量數據上的性能超過復雜模型在少量數據上的計算結果。統計語言模型中的N-gram就是這樣的典型例子。

然而,簡單模型在很多領域都有其局限性。例如,相關領域內的自動語音識別數據是有限的,簡單模型的性能通常取決於轉錄的高質量的語音數據的大小,通常只有幾百萬的詞。機器翻譯任務中,好多語音的已有的語料庫的大小也只有十幾億。因此,確實存在對這些簡單基本技術的升級並不會帶來性能很大的提升的情況,我們不得不考慮更復雜的高級技術。

隨着機器學習技術的發展,訓練更大規模數據上的復雜模型成為可能,它們要遠遠超過那些簡單模型。可能最成功的概念就是使用分布式詞表示[1]。例如,NNLM遠遠優於N-gram模型。

本文的主要目標在於從擁有幾十億的語料庫與幾百萬的詞表的巨大數據集中學習高質量詞表示的技術。據我們所知,已有的方法在幾百萬詞的語料庫上,獲取50~100維的詞向量,效果不錯。

我們使用最近提出的一項技術來評價得到的向量表示的質量,該度量指標不但期望意思相近的詞表示相近,而且還能表示詞的多種相似性程度[2]。這在屈折語言(Inflectional Language)中是常見的,例如,名詞可能有多種詞尾(后綴),如果我們在原始的向量子空間中搜索相似詞,可能找到的是具有相似詞尾的詞[3,4]。有些奇妙的是,詞表示的相似性遠遠超出了簡單的語法規則。使用詞偏置技術時,對詞向量進行簡單的代數操作,例如vector("King")-vector("Man")+vector("Woman")得到的向量與vector("Queen")比較近[2]。

本文通過開發新的模型結構來最大化向量操作的准確度,從而保留詞間的線性規則。我們設計了一個綜合的測試集,來從語法和語義規則兩方面評價,以此來展示我們的模型可以以很高的精度學習到許多規則。我們進一步討論了模型的訓練時間和精度依賴於詞向量的維度和訓練數據集的大小。

將詞表示為連續的向量的思想由來已久[1,5,6]。一個很受歡迎的模型結構稱為Neural Network Language Model (NNLM)[7],采用一個線性映射層加上一個非線性隱層來同時學習到詞向量表示和統計語言模型。該工作得到后續很多工作的追捧。另外一個有趣的NNLM架構[3,4],僅僅采用一個隱層來學習詞向量,再使用這些詞向量來學習NNLM。因此,詞向量的學習不需要構建完整的NNLM。本文對這個架構進一步擴展,重點關注使用一個簡單的模型來學習詞向量表示。后續我們會展示詞向量表示可以用來大大改善和簡化許多NLP應用。詞向量本身的估計可以采用多種模型架構,采用多種語料庫,其中一些學習到的詞向量表示可以用作進一步的研究和對比。然而,據我們所知,這些模型的計算代價要遠遠高於最早的那個模型[3],一個例外是采用對角權重矩陣的log-bilinear模型。

模型結構

許多已有的模型可以用來估計詞的連續向量表示,包括我們所耳熟能詳的LSA以及LDA。已有的工作表明,與LSA相比,分布式表示(distributed representation)可以更好的保留詞間的線性規則[2,8],因此本文關注於采用neural network來學習詞的分布式表示(distributed representation)。而LDA最大的缺點在於大數據集上的計算復雜度高。

我們首先用完整的訓練模型所需要的參數的數量來作為模型計算復雜度的定義,從而來比較不同模型結構(這一點與工作【18】非常相似)。接下來,我們試圖最大化准確率,同時最小化計算復雜度。再接下來的所有模型中,訓練復雜度都是與下面這個量成正比的,,其中E表示訓練epoch的次數,T表示訓練集中詞數,Q表示模型結構相關的量。常見的選擇是E在3到50之間,T多達十億。所有的模型采用SGD與BP來訓練[5]。

Feedforward NNLM. 概率前饋NNLM[7]包括Input-projection-hidden-output四層。輸入層中,前N個詞編碼為1-of-V的向量,V為詞表大小。輸入層通過一個的映射矩陣,映射到映射層P。在任何時刻,僅僅N個輸入是激活的,因此映射層的組合是相對簡單的操作。NNLM結構的復雜計算在於映射層和隱層之間的計算,主要原因在於映射層是稠密的。對於一個常見的選擇N=10,映射層P的大小可能為500到2000,而隱層H的大小通常為500到1000。更進一步講,隱層通常用來計算在整個詞表上的概率分布,結果導致輸出層的維度為V。這么說來,每個訓練實例的計算復雜度為,其中主要的復雜度集中在第三項上。然而,為了避免如此,提出了一些實際的解決方案:或者使用softmax的層次版本[9,10,11],或者避免對模型進行歸一化,轉而在訓練的時候使用未歸一化的模型。采用詞表的二叉樹表示,可以將輸出單元的數量降低到。至此模型的主要復雜計算就在於第二項了。

我們的模型采用層次softmax,其中詞表表示未Huffman二叉樹。這樣做主要是基於之前觀測到的一個現象[12]:Frequency of words works well for obtaining classes in NNLM。Huffman樹對頻繁出現的詞以較短的編碼,這樣進一步減少了輸出單元的數量。然而,平衡二叉樹需要,基於huffman樹的層次softmax僅僅需要。舉個例子來說,當詞表大小為100萬時,我們的計算效率得到了兩倍的加速。雖然對於NNLM來講,這並不是最關鍵的加速,因為主要的計算瓶頸在於這一項,我們后續提出的模型結構並沒有隱層,而是主要依賴於softmax正則化的計算效率。

Recurrent NNLM。RNNLM的提出是為了克服前饋NNLM的一些局限性,例如,需要指定context的長度(模型階數N)。因此,理論上講RNN可以比淺層NN(shallow neural networks)高效的表示更加復雜的模式[13,14]。RNN並沒有映射層,只有input-hidden-ouput幾層。這類模型的特殊性就在於recurrent matrix,該matrix將隱層與自己通過時間延遲的關系聯系起來。由於以前的信息能夠表示為隱層中的狀態,該狀態可以根據當前的輸入以及上個時間步的狀態進行更新,這就使得recurrent model形成了某種形式的短時記憶。RNN模型對於一個訓練實例的時間復雜度是,其中詞表示D具有與隱層H相同的維度。類似的,我們可以使用層次softmax(hierarchical softmax)將有效降低為。至此RNN模型的主要計算復雜度在於

Parallel Training of Neural Networks.在大規模數據集上訓練模型時,我們已經基於大規模分布式框架DistBlief實現了幾個模型包括前饋NNLM以及本文中提出的新模型。DistBlief[15]可以並行運行一個模型的多個副本,每個副本的梯度更新同步通過中央服務器來保持所有參數的一致。對於這種並行訓練,我們采用mini-batch異步梯度以及自適應的學習速率,整個過程稱為Adagrad[16]。采用這種框架,使用100多個模型副本,多個機器的多個CPU核,一個數據中心時常見的配置。

本文的模型:New Log-Linear Models (word2vec)。我們提出兩個模型結構來學習詞的分布式表示,同時也最小化計算復雜度。從前述章節的觀測結果表明:模型計算的主要復雜度來自於非線性隱層。盡管這些隱層使得neural networks非常具有吸引力,但是我們決定使用更為簡單的模型。這樣可能並不能夠獲得與Neural network一樣准確的數據表示,但是至少能夠高效的訓練更多的數據。新結構的提出主要依賴於以前模型[3,4]中采用兩步來訓練NNLM:(1)使用簡單模型獲得連續詞向量的表示;(2)基於詞的分布式表示來訓練N-gram NNLM。雖然后續有好多工作關注學習詞向量的表示,但我們考慮到這個模型[3]是最簡單的一個。

         CBOW(Continuous Bag-of-Words Model).該模型類似於前饋NNLM,去掉了其中的非線性隱層,所有詞共享映射層,而非共享映射矩陣。所有的詞映射到同樣的位置,對這些向量進行平均。因為歷史詞序並不能影響映射結果,所以我們將這個模型結構稱為Bag-of-Words模型。況且,我們也使用了未來的詞。我們使用4個未來詞和4個歷史詞作為輸入在下節提到的任務中取得了最優的性能,其中,優化目標是能准確分類中間的詞。訓練復雜度為:。我們將這個模型記為CBOW。與傳統的Bag-of-Words模型不同,它使用連續分布式的context表示。模型結構如圖1所示。值得注意的是,輸入層與映射層之間的權重矩陣,與NNLM一樣,是所有詞位置共享的。

          Continuous Skip-Gram Model.第二個模型結構與CBOW類似,不同與CBOW根據context來預測當前word,本模型嘗試優化根據另外一個詞來預測同一個句子中這個詞的類別。更准確來講,我們使用當前詞作為輸入,經過連續映射層,到log-linear分類器,來預測指定窗口內,位於該詞前后的詞。我們發現,增加窗口的大小可以改善學習到的詞向量的質量,但是也增加了計算復雜度。既然離得最遠的詞通常與當前詞的關系要遠遠小於離得近的,所以我們給那些離得較遠的詞較小的權重,使得它們采樣到的概率要小。該模型結構的訓練復雜度正比於:,其中C為詞的最大距離。若我們選擇C=5,那么對於每個訓練詞,我們從1~C隨機選擇一個數R,使用R個歷史詞與R個未來詞作為正確的標注(R words from history and R words from the future of the current word as correct labels)。這就需要我們進行2R次詞分類:將當前詞作為輸入,2R個詞中的每個詞作為輸出。在下面的實驗中我們采用C=10。

實驗結果

[1] G.E. Hinton, J.L. McClelland, D.E. Rumelhart. Distributed representations

[2] Linguistic Regularities in Continuous Space Word Representations

[3]T. Mikolov. Language Modeling for Speech Recognition in Czech, Masters thesis

[4] T. Mikolov, J. Kopeck´y, L. Burget, O. Glembek and J. ˇCernock´y. Neural network based language models for higly inflective languages,

[5]D. E. Rumelhart, G. E. Hinton, R. J. Williams. Learning internal representations by backpropagating errors.

[6]J. Elman. Finding Structure in Time. Cognitive Science, 14, 179-211, 1990

[7]Y. Bengio, R. Ducharme, P. Vincent. A neural probabilistic language model.

[8]A. Zhila, W.T. Yih, C. Meek, G. Zweig, T. Mikolov. Combining Heterogeneous Models for Measuring Relational Similarity

[9]F. Morin, Y. Bengio. Hierarchical Probabilistic Neural Network Language Model.

[10] A.Mnih,G.Hinton.AScalableHierarchicalDistributedLanguageModel

[11] T. Mikolov, A. Deoras, D. Povey, L. Burget, J. ˇCernock´y. Strategies for Training Large Scale Neural Network Language Models

[12] T.Mikolov,S.Kombrink,L.Burget,J. ˇCernock´y,S.Khudanpur.Extensionsofrecurrentneural network language model

[13] T. Mikolov, M. Karafi´at, L. Burget, J. ˇCernock´y, S. Khudanpur. Recurrent neural network based language model

[14] Y. Bengio, Y. LeCun. Scaling learning algorithms towards AI.

[15] J. Dean, G.S. Corrado, R. Monga, K. Chen, M. Devin, Q.V. Le, M.Z. Mao, M.A. Ranzato, A. Senior, P. Tucker, K. Yang, A. Y. Ng., Large Scale Distributed Deep Networks

[16] J.C. Duchi, E. Hazan, and Y. Singer. Adaptive subgradient methods for online learning and stochastic optimization


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM