Efficient Estimation of Word Representations in Vector Space/paper/zh
| Research Paper | |
|---|---|
| Authors | Tomas Mikolov; Kai Chen; Greg Corrado; Jeffrey Dean |
| Year | 2013 |
| Topic area | NLP |
| Difficulty | Research |
| arXiv | 1301.3781 |
| Download PDF | |
詞在向量空間中的高效表示估計
Tomas Mikolov
Google Inc., Mountain View, CA
tmikolov@google.com
\AndKai Chen
Google Inc., Mountain View, CA
kaichen@google.com
\ANDGreg Corrado
Google Inc., Mountain View, CA
gcorrado@google.com
\AndJeffrey Dean
Google Inc., Mountain View, CA
jeff@google.com
摘要
我們提出了兩種新穎的模型架構,用於從超大規模數據集中計算詞的連續向量表示。這些表示的質量在一個詞相似度任務上進行評估,並與基於不同類型神經網絡的此前最佳技術進行比較。我們觀察到,準確率大幅提升的同時計算成本顯著降低,例如從一個 16 億詞的數據集中學習高質量詞向量耗時不到一天。此外,我們證明這些向量在用于衡量句法與語義詞相似度的測試集上達到了最先進的性能。
1 引言
目前許多 NLP 系統和技術將詞視為原子單元——詞與詞之間沒有相似性概念,因為它們僅表示為詞表中的索引。這種做法有幾個優點:簡單、魯棒,並且觀察到在海量數據上訓練的簡單模型往往優於在較少數據上訓練的複雜系統。一個例子是用於統計語言建模的流行 N-gram 模型——如今可以在幾乎所有可用數據(數萬億詞 [3])上訓練 N-gram。
然而,簡單技術在許多任務中已逼近極限。例如,自動語音識別中相關領域內數據量有限——性能通常受限於高質量轉寫語音數據的規模(往往僅有數百萬詞)。在機器翻譯中,許多語言現有的語料只有幾十億詞甚至更少。因此,在某些場景下,僅靠簡單擴展基本技術已無法取得顯著進展,必須聚焦於更高級的方法。
近年來隨着機器學習技術的進步,已經可以在大得多的數據集上訓練更複雜的模型,並且其性能通常優於簡單模型。最成功的概念可能是使用詞的分布式表示 [10]。例如,基於神經網絡的語言模型顯著優於 N-gram 模型 [1, 27, 17]。
1.1 本文目標
本文的主要目標是介紹一些技術,使得可以在包含數十億詞、詞表規模達數百萬的超大數據集上學習高質量的詞向量。據我們所知,此前提出的架構中沒有一個能成功地在多於幾億詞的數據上訓練,且詞向量維度通常較小(50–100)。
我們使用近期提出的技術來衡量所得向量表示的質量,期望相似的詞不僅彼此靠近,而且詞與詞之間可以有多種程度的相似性 [20]。這一現象此前已在屈折語境下被觀察到——例如,名詞可以有多種詞尾,若在原向量空間的子空間中搜索相似詞,可以發現具有相似詞尾的詞 [13, 14]。
頗為令人驚訝的是,研究發現詞表示間的相似性超越了簡單的句法規律。使用詞偏移技術——在詞向量上執行簡單的代數運算——例如可證明 vector(」King」) − vector(」Man」) + vector(」Woman」) 得到的向量最接近詞 Queen 的向量表示 [20]。
本文中,我們通過開發能夠保留詞間線性規律的新模型架構,力求使這些向量運算的準確率最大化。我們設計了一個全面的新測試集,用于衡量句法和語義規律111該測試集可在 www.fit.vutbr.cz/~imikolov/rnnlm/word-test.v1.txt 獲取,並表明許多此類規律可以以高準確率被學習。此外,我們討論了訓練時間與準確率如何隨詞向量維度和訓練數據量變化。
1.2 相關工作
將詞表示為連續向量已有很長歷史 [10, 26, 8]。文獻 [1] 提出了一種用於估計神經網絡語言模型(NNLM)的非常流行的架構:使用具有線性投影層和非線性隱藏層的前饋神經網絡聯合學習詞向量表示與統計語言模型。這一工作之後被許多研究跟進。
另一種有趣的 NNLM 架構出現在 [13, 14],其中先用單隱藏層的神經網絡學習詞向量,然後再用這些詞向量訓練 NNLM。這樣,無需構建完整的 NNLM 即可學習詞向量。本文直接擴展該架構,僅關注用簡單模型學習詞向量的第一步。
之後研究表明,詞向量可顯著改進並簡化許多 NLP 應用 [4, 5, 29]。詞向量本身的估計採用了不同的模型架構,在各種語料上訓練 [4, 29, 23, 19, 9],其中部分結果向量被公開供後續研究與比較222http://ronan.collobert.com/senna/
http://metaoptimize.com/projects/wordreprs/
http://www.fit.vutbr.cz/~imikolov/rnnlm/
http://ai.stanford.edu/~ehhuang/ 。然而據我們所知,除了一種使用對角權重矩陣的 log-bilinear 模型變體 [23] 外,這些架構在訓練上的計算開銷均顯著高於 [13] 中提出的方法。
2 模型架構
已有許多不同類型的模型被提出用於估計詞的連續表示,包括著名的潛在語義分析(LSA)和潛在狄利克雷分配(LDA)。本文聚焦於由神經網絡學習的詞的分布式表示,因為先前研究表明它們在保留詞間線性規律方面顯著優於 LSA [20, 31];而 LDA 在大數據集上則計算開銷很高。
與 [18] 類似,為了比較不同的模型架構,我們首先將模型的計算複雜度定義為完全訓練該模型所需訪問的參數數量。然後,我們將嘗試在最小化計算複雜度的同時最大化準確率。
對於以下所有模型,訓練複雜度都正比於
| $ {\displaystyle {O = {E \times T \times Q}},} $ | (1) |
其中 $ {\textstyle E} $ 是訓練 輪次 的數量,$ {\textstyle T} $ 是訓練集中的詞數,$ {\textstyle Q} $ 將針對每種模型架構在後文定義。常見取值為 $ {\textstyle E = {3 - 50}} $,$ {\textstyle T} $ 最多達到十億。所有模型均使用 隨機梯度下降 和 反向傳播 [26] 進行訓練。
2.1 前饋神經網絡語言模型(NNLM)
概率前饋神經網絡語言模型由 [1] 提出。它由輸入層、投影層、隱藏層和輸出層組成。在輸入層,前 $ {\textstyle N} $ 個詞使用 1-of-$ {\textstyle V} $ 編碼,其中 $ {\textstyle V} $ 為詞表大小。然後通過共享投影矩陣將輸入層投影到維度為 $ {\textstyle N \times D} $ 的投影層 $ {\textstyle P} $。由於任一時刻僅 $ {\textstyle N} $ 個輸入處於激活狀態,構造投影層的開銷相對較低。
在投影層與隱藏層之間的計算上,NNLM 架構變得複雜,因為投影層的值是稠密的。對於常用的 $ {\textstyle N = 10} $,投影層($ {\textstyle P} $)規模可能為 500–2000,而隱藏層規模 $ {\textstyle H} $ 通常為 500–1000 單元。此外,隱藏層還用於在整個詞表上計算概率分布,因此輸出層維度為 $ {\textstyle V} $。因此每個訓練樣本的計算複雜度為
| $ {\displaystyle {Q = {{N \times D} + {N \times D \times H} + {H \times V}}},} $ | (2) |
其中主導項為 $ {\textstyle H \times V} $。但已有若干實用方案可避免該項,包括使用 softmax 的層次化版本 [25, 23, 18],或完全避免歸一化的模型——使用訓練時不進行歸一化的模型 [4, 9]。採用詞表的二叉樹表示,需要評估的輸出單元數量可降至約 $ {\textstyle l\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}} $。因此,主要複雜度來自項 $ {\textstyle N \times D \times H} $。
我們的模型使用層次化 softmax,並將詞表表示為霍夫曼二叉樹。這沿用了此前的發現:詞頻可有效地用於神經網絡語言模型中的類別劃分 [16]。霍夫曼樹為高頻詞分配較短的二進制碼,從而進一步減少需要評估的輸出單元數:平衡二叉樹需要評估 $ {\textstyle l\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}} $ 個輸出,而基於霍夫曼樹的層次化 softmax 僅需評估約 $ {\textstyle l\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{({U\hspace{0pt}n\hspace{0pt}i\hspace{0pt}g\hspace{0pt}r\hspace{0pt}a\hspace{0pt}m\hspace{0pt}\_\hspace{0pt}p\hspace{0pt}e\hspace{0pt}r\hspace{0pt}p\hspace{0pt}l\hspace{0pt}e\hspace{0pt}x\hspace{0pt}i\hspace{0pt}t\hspace{0pt}y\hspace{0pt}{(V)}})}} $。例如,當詞表為一百萬詞時,評估速度約提升兩倍。儘管對神經網絡 LM 而言,由於計算瓶頸在 $ {\textstyle N \times D \times H} $ 項,該加速並非關鍵,但我們隨後將提出無隱藏層、因而高度依賴 softmax 歸一化效率的架構。
2.2 循環神經網絡語言模型(RNNLM)
為克服前饋 NNLM 的某些限制(如必須指定上下文長度,即模型階數 $ {\textstyle N} $),人們提出了基於循環神經網絡的語言模型;並且理論上 RNN 可比淺層神經網絡更高效地表示更複雜的模式 [15, 2]。RNN 模型沒有投影層,僅有輸入層、隱藏層和輸出層。這類模型的特別之處在於使用了時延連接將隱藏層與自身相連的循環矩陣。這使循環模型能夠形成某種短期記憶,過去的信息可由隱藏層狀態表示,該狀態根據當前輸入和上一時刻隱藏層狀態進行更新。
RNN 模型每個訓練樣本的複雜度為
| $ {\displaystyle {Q = {{H \times H} + {H \times V}}},} $ | (3) |
其中詞表示 $ {\textstyle D} $ 與隱藏層 $ {\textstyle H} $ 同維。同樣,使用層次化 softmax 可將項 $ {\textstyle H \times V} $ 高效地降為 $ {\textstyle {H \times l}\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}} $。此後大部分複雜度來自 $ {\textstyle H \times H} $。
2.3 神經網絡的並行訓練
為在超大數據集上訓練模型,我們在一個名為 DistBelief 的大規模分布式框架 [6] 上實現了多種模型,包括前饋 NNLM 和本文提出的新模型。該框架允許並行運行同一模型的多個副本,每個副本通過維護所有參數的中央服務器同步其梯度更新。在該並行訓練中,我們使用基於 小批量 的異步 梯度下降 以及自適應 學習率 方法 adagrad [7]。在此框架下,通常使用一百個或更多模型副本,每個副本在數據中心的不同機器上使用多個 CPU 核心。
3 新的對數線性模型
在本節中,我們提出兩種新的模型架構來學習詞的分布式表示,目標是最小化計算複雜度。上一節的主要觀察是大部分複雜度由模型中的非線性隱藏層引起。雖然非線性是神經網絡的吸引力所在,但我們決定探索更簡單的模型——它們或許無法像神經網絡那樣精確地刻畫數據,但有可能在更大數據上高效訓練。
新架構直接沿用了我們早期工作 [13, 14] 中提出的方案,其中發現神經網絡語言模型可分兩步成功訓練:首先用簡單模型學習連續詞向量,然後在這些分布式詞表示之上訓練 N-gram NNLM。此後雖然已有大量針對詞向量學習的研究,我們仍認為 [13] 提出的方法是最簡單的一種。注意更早的相關模型也已被提出 [26, 8]。
3.1 連續詞袋模型
第一種提出的架構與前饋 NNLM 類似,但移除了非線性隱藏層,且投影層對所有詞共享(不僅是投影矩陣);因此所有詞被投影到同一位置(其向量被平均)。由於歷史詞的順序不影響投影,我們稱這種架構為詞袋模型。此外,我們還使用未來詞;通過構建一個以輸入為四個未來詞和四個歷史詞的對數線性分類器,並以正確分類當前(中間)詞為訓練準則,我們在下一節介紹的任務上獲得了最佳性能。此時訓練複雜度為
| $ {\displaystyle {Q = {{N \times D} + {{D \times l}\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}}}}.} $ | (4) |
下文我們將該模型記為 CBOW,因為它與標準詞袋模型不同——使用上下文的連續分布式表示。模型架構如圖 1 所示。注意輸入層與投影層之間的權重矩陣在所有詞位置間共享,方式與 NNLM 中相同。
3.2 連續 Skip-gram 模型
第二種架構類似 CBOW,但不是基於上下文預測當前詞,而是嘗試基於同一句中的另一個詞來最大化對某個詞的分類。更確切地說,我們將每個當前詞作為帶有連續投影層的對數線性分類器的輸入,預測當前詞前後一定範圍內的詞。我們發現增大該範圍可提高所得詞向量的質量,但也會增加計算複雜度。由於距離較遠的詞通常與當前詞的相關性弱於距離近的詞,因此我們在訓練樣本中減少對遠距離詞的採樣,從而對其賦予較小權重。
該架構的訓練複雜度正比於
| $ {\displaystyle {Q = {C \times {({D + {{D \times l}\hspace{0pt}o\hspace{0pt}g_{2}\hspace{0pt}{(V)}}})}}},} $ | (5) |
其中 $ {\textstyle C} $ 為詞的最大距離。例如若取 $ {\textstyle C = 5} $,則對每個訓練詞隨機選取一個範圍在 $ {\textstyle < 1;C >} $ 內的數 $ {\textstyle R} $,並將當前詞歷史中的 $ {\textstyle R} $ 個詞和未來中的 $ {\textstyle R} $ 個詞作為正確標籤。這需要執行 $ {\textstyle R \times 2} $ 次詞分類,輸入為當前詞,輸出分別為這 $ {\textstyle R + R} $ 個詞。後續實驗中使用 $ {\textstyle C = 10} $。
4 結果
為比較不同版本詞向量的質量,以往論文通常用表格展示示例詞及其最相似的詞,並憑直覺理解。雖然容易展示詞 France 與 Italy 以及其他一些國家相似,但若要將這些向量置於更複雜的相似度任務中考察則更具挑戰性,如下所述。我們沿用此前的觀察:詞與詞之間可以存在多種類型的相似性——例如,詞 big 與 bigger 的相似關係,和 small 與 smaller 的相似關係是同一種類型。另一類關係的例子是 big - biggest 和 small - smallest [20]。我們進一步將具有同一關係的兩對詞記為一個問題,可以這樣問:「在 biggest 之於 big 的同一關係下,與 small 相對應的是哪個詞?」
頗為令人驚訝的是,這些問題可以通過對詞向量做簡單的代數運算來回答。要尋找在 biggest 之於 big 的同一關係下與 small 相對應的詞,只需計算向量 $ {\textstyle X = {{{v\hspace{0pt}e\hspace{0pt}c\hspace{0pt}t\hspace{0pt}o\hspace{0pt}r\hspace{0pt}{({"\hspace{0pt}b\hspace{0pt}i\hspace{0pt}g\hspace{0pt}g\hspace{0pt}e\hspace{0pt}s\hspace{0pt}t\hspace{0pt}"})}} - {v\hspace{0pt}e\hspace{0pt}c\hspace{0pt}t\hspace{0pt}o\hspace{0pt}r\hspace{0pt}{({"\hspace{0pt}b\hspace{0pt}i\hspace{0pt}g\hspace{0pt}"})}}} + {v\hspace{0pt}e\hspace{0pt}c\hspace{0pt}t\hspace{0pt}o\hspace{0pt}r\hspace{0pt}{({"\hspace{0pt}s\hspace{0pt}m\hspace{0pt}a\hspace{0pt}l\hspace{0pt}l\hspace{0pt}"})}}}} $。隨後在向量空間中搜索距 $ {\textstyle X} $ 餘弦距離最近的詞作為該問題的答案(搜索時排除輸入問題中的詞)。當詞向量訓練良好時,可以用該方法找到正確答案(詞 $ {\textstyle s\hspace{0pt}m\hspace{0pt}a\hspace{0pt}l\hspace{0pt}l\hspace{0pt}e\hspace{0pt}s\hspace{0pt}t} $)。
最後,我們發現,當在大量數據上訓練高維詞向量時,所得向量可以用於回答詞與詞之間非常微妙的語義關係,例如城市與其所屬國家的關係,如 France 之於 Paris 如 Germany 之於 Berlin。具有此類語義關係的詞向量可用於改進許多現有 NLP 應用,例如機器翻譯、信息檢索和問答系統,並可能催生其他尚未發明的未來應用。
4.1 任務描述
為衡量詞向量的質量,我們定義了一個全面的測試集,包含五類語義問題和九類句法問題。表 1 給出了每類兩個示例。總計 8869 個語義問題和 10675 個句法問題。每類問題分兩步創建:首先手工列出一組相似詞對;然後通過組合兩對詞形成大量問題。例如,我們列出了 68 個美國大城市及其所屬州,並通過隨機選取兩對詞形成約 2.5K 個問題。測試集中只包含單 token 詞,因此不含多詞實體(如 New York)。
我們評估所有問題類型的整體準確率,以及各類型(語義、句法)單獨的準確率。僅當用上述方法計算所得向量的最近詞與問題中的正確詞完全相同時,才算回答正確;因此同義詞計為錯誤。這也意味着達到 100% 準確率幾乎不可能,因為當前模型沒有任何關於詞形態的輸入信息。但我們認為,詞向量在某些應用中的有用性應與該準確率指標正相關。通過引入關於詞結構的信息——特別是對句法問題——可以取得進一步進展。
關係類型 詞對 1 詞對 2 共同首都 Athens Greece Oslo Norway 所有首都 Astana Kazakhstan Harare Zimbabwe 貨幣 Angola kwanza Iran rial 城市-州 Chicago Illinois Stockton California 男-女 brother sister grandson granddaughter 形容詞轉副詞 apparent apparently rapid rapidly 反義 possibly impossibly ethical unethical 比較級 great greater tough tougher 最高級 easy easiest lucky luckiest 現在分詞 think thinking read reading 國籍形容詞 Switzerland Swiss Cambodia Cambodian 過去時 walking walked swimming swam 名詞複數 mouse mice dollar dollars 動詞複數 work works speak speaks
4.2 準確率的最大化
我們使用 Google News 語料訓練詞向量。該語料約含 6B token。詞表規模限制為最常見的 1 百萬詞。顯然,我們面臨的是一個有時間約束的優化問題,因為可以預期使用更多數據和更高維的詞向量都能提升準確率。為快速找到能儘量取得好結果的模型架構最佳選擇,我們首先在訓練數據的子集(詞表限制在最常見的 30k 詞)上評估了模型。使用 CBOW 架構在不同詞向量維度和遞增訓練數據量下的結果見表 2。
可以看到,超過某一閾值後,增加維度或增加訓練數據帶來的改善會遞減。因此,我們必須同時增加向量維度與訓練數據量。儘管這一觀察看似平凡,但需注意當前流行的做法是用相對大量的數據訓練詞向量但維度不足(如 50–100)。根據公式 4,將訓練數據量翻倍帶來的計算複雜度增長,與將向量維度翻倍的增長大體相當。
維度 / 訓練詞數 24M 49M 98M 196M 391M 783M 50 13.4 15.7 18.6 19.1 22.5 23.2 100 19.4 23.1 27.8 28.7 33.4 32.2 300 23.2 29.2 35.3 38.6 43.7 45.9 600 24.0 30.1 36.5 40.8 46.6 50.4
對於表 2 與 4 報告的實驗,我們使用三個訓練 輪次,採用 隨機梯度下降 與 反向傳播。初始 學習率 為 0.025,併線性遞減,使其在最後一個訓練 輪次 結束時趨於零。
4.3 模型架構對比
我們首先在相同訓練數據和相同 640 維詞向量下比較不同的模型架構。後續實驗中,我們使用新的 Semantic-Syntactic Word Relationship 測試集中的全部問題,即不限制於 30k 詞表。我們也給出在 [20] 中提出的、專注於詞間句法相似性的測試集上的結果333感謝 Geoff Zweig 向我們提供該測試集。。
訓練數據由多個 LDC 語料組成,詳見 [18](320M 詞,82K 詞表)。我們使用這些數據與一個先前訓練的循環神經網絡語言模型進行比較,後者在單 CPU 上訓練耗時約 8 周。我們使用 DistBelief 並行訓練 [6] 訓練了一個具有相同 640 隱藏單元數的前饋 NNLM,並使用前 8 個詞的歷史(因此 NNLM 比 RNNLM 擁有更多參數,因投影層規模為 $ {\textstyle 640 \times 8} $)。
由表 3 可見,RNN 詞向量(如 [20] 中所用)主要在句法問題上表現良好。NNLM 詞向量顯著優於 RNN——這並不令人意外,因為 RNNLM 中詞向量直接連接到非線性隱藏層。CBOW 架構在句法任務上優於 NNLM,在語義任務上與之相當。最後,Skip-gram 架構在句法任務上略遜於 CBOW(但仍優於 NNLM),而在測試的語義部分遠優於所有其他模型。
模型 Semantic-Syntactic Word Relationship 測試集 MSR Word Relatedness 架構 語義準確率 [%] 句法準確率 [%] 測試集 [20] RNNLM 9 36 35 NNLM 23 53 47 CBOW 24 64 61 Skip-gram 55 59 56
接下來,我們評估了僅使用一顆 CPU 訓練的模型,並將結果與公開可得的詞向量進行比較,對比見表 4。CBOW 模型在 Google News 數據子集上約一天即可訓練完成,而 Skip-gram 模型的訓練時間約為三天。
模型 向量 訓練 準確率 [%] 維度 詞數 語義 句法 總體 Collobert-Weston NNLM 50 660M 9.3 12.3 11.0 Turian NNLM 50 37M 1.4 2.6 2.1 Turian NNLM 200 37M 1.4 2.2 1.8 Mnih NNLM 50 37M 1.8 9.1 5.8 Mnih NNLM 100 37M 3.3 13.2 8.8 Mikolov RNNLM 80 320M 4.9 18.4 12.7 Mikolov RNNLM 640 320M 8.6 36.5 24.6 Huang NNLM 50 990M 13.3 11.6 12.3 Our NNLM 20 6B 12.9 26.4 20.3 Our NNLM 50 6B 27.9 55.8 43.2 Our NNLM 100 6B 34.2 64.5 50.8 CBOW 300 783M 15.5 53.1 36.1 Skip-gram 300 783M 50.0 55.9 53.3
在後續實驗中,我們僅使用一個訓練 輪次(同樣,學習率 線性遞減並在訓練結束時趨於零)。在兩倍數據上訓練一個 輪次 的結果與在相同數據上迭代三個 輪次 相當或更優,如表 5 所示,並帶來少量額外加速。
模型 向量 訓練 準確率 [%] 訓練時間 維度 詞數 [天] 語義 句法 總體 3 輪次 CBOW 300 783M 15.5 53.1 36.1 1 3 輪次 Skip-gram 300 783M 50.0 55.9 53.3 3 1 輪次 CBOW 300 783M 13.8 49.9 33.6 0.3 1 輪次 CBOW 300 1.6B 16.1 52.6 36.1 0.6 1 輪次 CBOW 600 783M 15.4 53.3 36.2 0.7 1 輪次 Skip-gram 300 783M 45.6 52.2 49.2 1 1 輪次 Skip-gram 300 1.6B 52.2 55.1 53.8 2 1 輪次 Skip-gram 600 783M 56.7 54.5 55.5 2.5
4.4 模型的大規模並行訓練
如前所述,我們在名為 DistBelief 的分布式框架中實現了多種模型。下面我們報告在 Google News 6B 數據集上使用 小批量 異步 梯度下降 與名為 adagrad [7] 的自適應 學習率 方法訓練的若干模型的結果。訓練時使用 50–100 個模型副本。CPU 核數為估算值,因為數據中心機器與其他生產任務共享,使用量會有較大波動。請注意,由於分布式框架的開銷,CBOW 與 Skip-gram 模型的 CPU 占用比在單機實現中更接近。結果見表 6。
模型 向量 訓練 準確率 [%] 訓練時間 維度 詞數 [天 x CPU 核] 語義 句法 總體 NNLM 100 6B 34.2 64.5 50.8 14 x 180 CBOW 1000 6B 57.3 68.9 63.7 2 x 140 Skip-gram 1000 6B 66.1 65.1 65.6 2.5 x 125
4.5 Microsoft Research Sentence Completion Challenge
Microsoft Sentence Completion Challenge 是近期提出的任務,用於推動語言建模和其他 NLP 技術的發展 [32]。該任務由 1040 個句子組成,每句缺一個詞,目標是從五個合理選項中選出與其餘部分最為連貫的詞。已報道在該集合上的多種技術,包括 N-gram 模型、基於 LSA 的模型 [32]、log-bilinear 模型 [24],以及當前以 55.4% 準確率保持最先進性能的循環神經網絡組合 [19]。
我們考察了 Skip-gram 架構在該任務上的表現。首先,在 [32] 提供的 50M 詞上訓練 640 維模型。然後,對測試集中每個句子,將未知詞作為輸入並預測句中所有周圍詞,從而計算每句的得分;最終句子得分為這些單獨預測分數之和。基於這些句子得分,選擇最可能的句子。
表 7 給出此前部分結果及新結果的簡要概覽。雖然 Skip-gram 模型本身在該任務上不優於 LSA 相似度,但該模型的得分與 RNNLM 的得分具有互補性,加權組合可達到新的最先進結果——58.9% 準確率(開發集 59.2%、測試集 58.7%)。
架構 準確率 [%] 4-gram [32] 39 Average LSA similarity [32] 49 Log-bilinear model [24] 54.8 RNNLMs [19] 55.4 Skip-gram 48.0 Skip-gram + RNNLMs 58.9
5 學到的關係示例
表 8 列出了遵循各種關係的詞。我們沿用前述方法:通過相減兩個詞向量定義關係,將結果加到另一個詞上,例如 Paris − France + Italy = Rome。可見準確率相當好,但顯然仍有較大的提升空間(注意:按照要求精確匹配的準確率指標,表 8 中的結果只有約 60%)。我們相信在更大數據集與更高維度上訓練的詞向量將顯著表現更好,並能催生創新應用。另一種提升準確率的方法是提供多個關係示例。使用十個而非一個示例來形成關係向量(取各向量的平均),我們觀察到我們最好的模型在語義-句法測試上的準確率絕對提升約 10%。
也可應用向量運算解決不同任務。例如,我們觀察到在挑選「不屬於該列表」的詞時具有良好準確率——做法是計算一組詞的平均向量,並找到距離最遠的詞向量。這是某些人類智力測試中的一類常見問題。顯然,使用這些技術仍可有許多發現。
關係 示例 1 示例 2 示例 3 France - Paris Italy: Rome Japan: Tokyo Florida: Tallahassee big - bigger small: larger cold: colder quick: quicker Miami - Florida Baltimore: Maryland Dallas: Texas Kona: Hawaii Einstein - scientist Messi: midfielder Mozart: violinist Picasso: painter Sarkozy - France Berlusconi: Italy Merkel: Germany Koizumi: Japan copper - Cu zinc: Zn gold: Au uranium: plutonium Berlusconi - Silvio Sarkozy: Nicolas Putin: Medvedev Obama: Barack Microsoft - Windows Google: Android IBM: Linux Apple: iPhone Microsoft - Ballmer Google: Yahoo IBM: McNealy Apple: Jobs Japan - sushi Germany: bratwurst France: tapas USA: pizza
6 結論
本文研究了多種模型在一組句法和語義語言任務上得到的詞向量表示的質量。我們觀察到,與流行的(前饋和循環)神經網絡模型相比,可以使用非常簡單的模型架構訓練出高質量的詞向量。由於計算複雜度遠低,可在更大的數據集上計算非常精確的高維詞向量。利用 DistBelief 分布式框架,應能在萬億詞的語料、詞表規模基本無限的條件下訓練 CBOW 與 Skip-gram 模型。這比此前同類模型已發表的最佳結果大若干數量級。
近期已證明詞向量顯著優於以往最先進結果的一項有趣任務是 SemEval-2012 Task 2 [11]。公開可得的 RNN 向量與其他技術結合,使得 Spearman 等級相關性較此前最佳結果提升超過 50% [31]。基於神經網絡的詞向量此前已被應用於許多其他 NLP 任務,例如情感分析 [12] 與同義改述檢測 [28]。可以預期這些應用將從本文所述的模型架構中獲益。
我們正在進行的工作表明,詞向量可以成功應用於知識庫中事實的自動擴展,以及對已有事實正確性的驗證。機器翻譯實驗結果同樣十分令人鼓舞。未來,將我們的技術與 Latent Relational Analysis [30] 等進行比較也將很有意思。我們相信,我們提供的全面測試集將幫助研究社區改進現有詞向量估計技術。我們也期待高質量的詞向量將成為未來 NLP 應用的重要構件。
7 後續工作
在本文初版之後,我們發布了用於計算詞向量的單機多線程 C++ 代碼,支持 continuous bag-of-words 與 skip-gram 兩種架構444代碼可在 https://code.google.com/p/word2vec/ 獲取。訓練速度顯著高於本文此前所報告,即對典型 超參數 選擇,每小時可處理數十億詞級別。我們還發布了超過 140 萬個表示命名實體的向量,使用超過 1000 億詞訓練得到。我們的部分後續工作將發表於即將到來的 NIPS 2013 論文 [21]。
參考文獻
- [1] Y. Bengio, R. Ducharme, P. Vincent. A neural probabilistic language model. Journal of Machine Learning Research, 3:1137-1155, 2003.
- [2] Y. Bengio, Y. LeCun. Scaling learning algorithms towards AI. 收錄於:Large-Scale Kernel Machines, MIT Press, 2007.
- [3] T. Brants, A. C. Popat, P. Xu, F. J. Och, and J. Dean. Large language models in machine translation. 收錄於 Proceedings of the Joint Conference on Empirical Methods in Natural Language Processing and Computational Language Learning, 2007.
- [4] R. Collobert and J. Weston. A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning. 收錄於 International Conference on Machine Learning, ICML, 2008.
- [5] R. Collobert, J. Weston, L. Bottou, M. Karlen, K. Kavukcuoglu and P. Kuksa. Natural Language Processing (Almost) from Scratch. Journal of Machine Learning Research, 12:2493-2537, 2011.
- [6] 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, NIPS, 2012.
- [7] J.C. Duchi, E. Hazan, and Y. Singer. Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 2011.
- [8] J. Elman. Finding Structure in Time. Cognitive Science, 14, 179-211, 1990.
- [9] Eric H. Huang, R. Socher, C. D. Manning and Andrew Y. Ng. Improving Word Representations via Global Context and Multiple Word Prototypes. 收錄於:Proc. Association for Computational Linguistics, 2012.
- [10] G.E. Hinton, J.L. McClelland, D.E. Rumelhart. Distributed representations. 收錄於:Parallel distributed processing: Explorations in the microstructure of cognition. Volume 1: Foundations, MIT Press, 1986.
- [11] D.A. Jurgens, S.M. Mohammad, P.D. Turney, K.J. Holyoak. Semeval-2012 task 2: Measuring degrees of relational similarity. 收錄於:Proceedings of the 6th International Workshop on Semantic Evaluation (SemEval 2012), 2012.
- [12] A.L. Maas, R.E. Daly, P.T. Pham, D. Huang, A.Y. Ng, and C. Potts. Learning word vectors for sentiment analysis. 收錄於 Proceedings of ACL, 2011.
- [13] T. Mikolov. Language Modeling for Speech Recognition in Czech, 碩士論文, Brno University of Technology, 2007.
- [14] T. Mikolov, J. Kopecký, L. Burget, O. Glembek and J. Černocký. Neural network based language models for higly inflective languages, 收錄於:Proc. ICASSP 2009.
- [15] T. Mikolov, M. Karafiát, L. Burget, J. Černocký, S. Khudanpur. Recurrent neural network based language model, 收錄於:Proceedings of Interspeech, 2010.
- [16] T. Mikolov, S. Kombrink, L. Burget, J. Černocký, S. Khudanpur. Extensions of recurrent neural network language model, 收錄於:Proceedings of ICASSP 2011.
- [17] T. Mikolov, A. Deoras, S. Kombrink, L. Burget, J. Černocký. Empirical Evaluation and Combination of Advanced Language Modeling Techniques, 收錄於:Proceedings of Interspeech, 2011.
- [18] T. Mikolov, A. Deoras, D. Povey, L. Burget, J. Černocký. Strategies for Training Large Scale Neural Network Language Models, 收錄於:Proc. Automatic Speech Recognition and Understanding, 2011.
- [19] T. Mikolov. Statistical Language Models based on Neural Networks. 博士論文, Brno University of Technology, 2012.
- [20] T. Mikolov, W.T. Yih, G. Zweig. Linguistic Regularities in Continuous Space Word Representations. NAACL HLT 2013.
- [21] T. Mikolov, I. Sutskever, K. Chen, G. Corrado, and J. Dean. Distributed Representations of Words and Phrases and their Compositionality. 已被 NIPS 2013 接收.
- [22] A. Mnih, G. Hinton. Three new graphical models for statistical language modelling. ICML, 2007.
- [23] A. Mnih, G. Hinton. A Scalable Hierarchical Distributed Language Model. Advances in Neural Information Processing Systems 21, MIT Press, 2009.
- [24] A. Mnih, Y.W. Teh. A fast and simple algorithm for training neural probabilistic language models. ICML, 2012.
- [25] F. Morin, Y. Bengio. Hierarchical Probabilistic Neural Network Language Model. AISTATS, 2005.
- [26] D. E. Rumelhart, G. E. Hinton, R. J. Williams. Learning internal representations by back-propagating errors. Nature, 323:533.536, 1986.
- [27] H. Schwenk. Continuous space language models. Computer Speech and Language, vol. 21, 2007.
- [28] R. Socher, E.H. Huang, J. Pennington, A.Y. Ng, and C.D. Manning. Dynamic pooling and Unfolding Recursive Autoencoders for Paraphrase Detection. 收錄於 NIPS, 2011.
- [29] J. Turian, L. Ratinov, Y. Bengio. Word Representations: A Simple and General Method for Semi-Supervised Learning. 收錄於:Proc. Association for Computational Linguistics, 2010.
- [30] P. D. Turney. Measuring Semantic Similarity by Latent Relational Analysis. 收錄於:Proc. International Joint Conference on Artificial Intelligence, 2005.
- [31] A. Zhila, W.T. Yih, C. Meek, G. Zweig, T. Mikolov. Combining Heterogeneous Models for Measuring Relational Similarity. NAACL HLT 2013.
- [32] G. Zweig, C.J.C. Burges. The Microsoft Research Sentence Completion Challenge, Microsoft Research Technical Report MSR-TR-2011-129, 2011.