機器之心專欄
論文地址:https://papers.nips.cc/paper/7368-on-the-dimensionality-of-word-embedding.pdf
<strong>引言
在 2013 年一篇劃時代的論文中,Milokov 等人提出了 Word2Vec 詞嵌入(word embedding)算法。隨後於 2014 年,斯坦福自然語言處理小組的 Pennington 等人提出了 GloVe 方法。自此之後,詞嵌入成為了自然語言處理中最具影響力的工具。在當前的深度學習時代,詞嵌入在諸如情感判別、閱讀理解、機器翻譯等各種任務上幾乎隨處可見。詞嵌入是深度學習模型應用到自然語言處理中不可或缺的一環:神經網絡的輸入是連續空間中的向量,而自然語言運用的則是離散的字符,詞嵌入將自然語言轉換成空間中的向量,是連接兩者不可或缺的橋樑。
維度(dimensionality)是詞嵌入模型裡最重要的一個超參數。大家或許都訓練過詞嵌入模型,但是當我們訓練的時候,有沒有想過該如何選擇維度這個超參數呢?縱觀自然語言處理的論文,研究者對詞嵌入維度的選擇似乎都頗為隨意。在 Word2Vec、GloVe 和 fastText 的原論文中,研究者們都選取 300 作為詞向量的維度。這些頗有影響力的文章導致隨後的研究者紛紛選擇 300 維的詞向量。除此之外,100、200 或者 50 也是常見的選擇。然而,這些隨意做出的選擇並不能保證模型的最優性;事實上,大量的實證研究表明,詞嵌入的學習過程也有欠擬合/過擬合的風險。如果維度選擇得過小或過大,模型的表現將受其影響(見圖 1)。普林斯頓大學的 Sanjeev Arora 教授在一篇博文中就探討了這一現象,並提到這個現象並沒有完善的理論解釋。欠擬合/過擬合的存在導致研究者選擇維度時需要格外謹慎。
Figure 1 過小或過大的維度對詞向量的表現產生負面影響
<strong>一個詞向量維度的理論框架
在《On the dimensionality of word embedding》這篇文章中,作者探討了如何通過理論研究理解詞嵌入的維度對模型本身的影響。這篇文章的貢獻主要有:
- 提出了 Pairwise Inner Product(PIP)損失函數。
- 利用矩陣微擾理論對詞嵌入進行研究,並揭示了維度選擇中的偏差-方差權衡(bias-variance tradeoff)。
- 從理論上證明了 Word2Vec 和 GloVe 對過擬合具有魯棒性(robustness to overfitting)。
- 通過最小化 PIP 損失函數,提出了選擇最優維度的理論指導。
<strong>靈感來源
維度選擇是模型選擇(model selection)的一種情形。在統計學習的框架中,模型選擇有一套基於參數估計(parameter estimation)的完整理論。該理論通常可以分解為三個基本步驟:
- 定義一類估計量(class of estimators)
- 定義一個損失函數
- 選擇損失函數期望最小的估計量
該理論框架包括了大多數機器學習中的算法及模型,例如我們所熟悉的線性迴歸利用的就是線性估計量+平方損失函數。再如,多層感知機(multi-layer perceptron)利用的是全連接網絡估計量+交叉熵損失函數。
不幸的是,這個理論框架並不能直接運用到詞嵌入模型的選擇中。事實上,目前的研究中並無詞嵌入的損失函數。而且就算此類損失函數存在,我們也不知道有沒有有效的方法去計算它。本文解決了這兩方面的問題,並建立起一套基於矩陣微擾理論的維度選擇框架。
<strong>問題 1:詞嵌入的損失函數
在介紹文中提出的 Pairwise Inner Product(PIP)損失函數前,我們先簡單複習一下詞嵌入本身。假設有 n 個需要學習的詞彙集
,詞嵌入算法尋找的是從 V 到
(d 維歐幾里得空間)的一個映射:對每個詞
,分配一個 d 維向量
。這個過程可以等效為尋找一個詞嵌入矩陣(embedding matrix)E:E 的第 i 行是
。大家用 TensorFlow 訓練深度模型時,一定都用過 tf.nn.embedding_lookup 這個算符。而我們研究的詞嵌入矩陣就是這個算符中的第一個參數。
有許多算法可以幫助我們尋找這個映射,例如 Word2Vec 或 GloVe。然而,我們如何定義詞嵌入間的損失函數?
詞嵌入的蓬勃發展帶動了一大批的深入研究。研究者們探討如何提高詞嵌入在不同任務上的表現,例如相似性(word similarity)和類比性(word analogy)。然而我們發現,這類的研究往往是「只見樹木,不見森林」。本文提出的 PIP 損失函數所研究的是嵌入的幾何性質。
<strong>詞嵌入的幾何性質與幾何不變性
詞向量是一個典型的幾何模型。在這個模型中,向量的幾何性質與詞語的語義性質存在著對應關係,這是多麼美妙的巧合!最常見的幾個例子有:
- 相似性。詞語的相似性可以通過向量夾角的餘弦值來表示。對於兩個詞向量
- 和
- ,它們夾角的餘弦值為
的範圍在-1 到 1 之間。這個值越大,代表第 i 個和第 j 個詞之間的相似度越高。在下圖的例子中,love 和 adore 對應的向量之間夾角很小,而 love 和baseball 之間的夾角則較大。
Figure 2 詞向量的幾何相似性
- 類比性。類比性考察的是兩對詞語之間的性質是否相同。Mikolov 的論文中提出的例子 king-queen=man-woman 即體現了這一性質。類似的還有 walk-walking=run-running,Paris-France=Berlin-Germany 等。詞類比這一語義性質對應的幾何性質為平行度:兩對詞向量的差是否互相平行。
Figure 3 詞向量的類比性
- 聚類性。通過觀察訓練出的詞向量,研究者們發現詞向量可以被聚類:義類似的向量之間的距離總是較小,因而這些詞會傾向於聚成一類。例如,距離狗(dog)最近的詞向量是貓(cat)、鼠(mouse)等等,這些詞都代表了動物。聚類性的幾何對應為向量間的距離。
Figure 4 詞向量的聚類性
已知的超參數選擇方法往往僅針對某一類語義學任務。比如,研究者們通過詞向量在人工標註測試集(例如 WordSim353)上的表現來選擇維度。既然我們不知道最優維度是多少,那麼我們就通過暴力測試來解決!我們把 100-1000 維的詞向量統統訓練一遍,然後觀察它們在測試集上的表現。通過這個方法,我們可以選擇和人工標註數據集上表現最好的維度。然而這個解決方案卻不甚優雅:訓練許多詞嵌入模型浪費了大量計算資源,並且有過擬合的風險:在相似性任務測試集上表現最佳的詞嵌入可能在類比性任務中表現不佳。
究其原因,這種研究方法掉入了「只見樹木,不見森林」的思維陷阱。這些不同語義學任務體現的只是詞向量的部分幾何學性質:
- 相似性:向量間夾角
- 類比性:向量的平行度
- 聚類性:向量間距離
既然這些任務都是碎片化的幾何性質,那我們為什麼不上升一個視角,去研究詞嵌入整體的幾何性質呢?這就是 PIP 損失函數的中心思想。
<strong>酉不變(unitary invariant)性質
我們注意到,無論是向量夾角,還是平行度,亦或是距離—它們的共同點都具有酉不變性。假如把詞嵌入整體做一個旋轉或者鏡面對稱,這些幾何性質都不會發生變化。原因在於,酉變換並不改變向量之間的相對位置!這並不是一個巧合。本文作者從邏輯上論證了以下結論:語義學任務所對應的幾何性質一定具有酉不變性。語義學的基礎是分佈式假設(distributional hypothesis),而該假設要求一個詞的意義只能通過其他詞來相對定義。正因如此,如果我們對詞嵌入實施了一個保持向量間相對位置的變換(即酉變換),向量所對應的語義學任務不應有任何改變。相似性、類比性、聚類性等具體的語義學任務只是詞嵌入酉不變性的部分體現。因而當我們尋找一個損失函數時,我們應該著重測量詞嵌入酉不變性質之間的距離。PIP 損失就是這樣的一個損失函數。假如我們有兩個詞嵌入矩陣
和
,它們之間的 PIP 損失函數定義如下:
注意到 PIP 損失函數的酉不變性:假如
是一個酉矩陣(
),
是
的一個酉變換(
),那麼易見
。除此之外,作者證明了 PIP 損失函數可以用來測量所有酉不變性質:假如
和
之間的 PIP 損失較小,那麼它們之間所有的酉不變性質都較為接近(包括夾角、平行度、距離等等),並且反之亦然。換句話說,PIP 損失函數測量的是「森林」,而無論是相似、類別還是聚類性,都只是其中的某棵樹木。
PIP 損失函數有一個漂亮的幾何解釋。
的第 i 行是一個 n 維向量
。該向量可以看成是
的相對座標;其參照物是所有其他的詞向量
至
(見下圖)。在 PIP 損失函數中,當我們比較
和
的差時,我們測量的其實是詞向量們的相對位移。通過建立這樣的相對座標系,我們擺脫了對絕對座標系的依賴,從而得到了一個酉不變的損失函數。
Figure 5 PIP 損失函數的幾何解釋
<strong>問題 2:對 PIP 損失函數的矩陣微擾分析
至此,我們已經解決了第一個難題:如何定義詞嵌入的損失函數。而我們如何分析一個通過訓練得到的詞嵌入
和未知的最優詞嵌入
之間的 PIP 損失,從而找到最優維度呢?
我們發現多數的詞嵌入算法本質上都是矩陣分解。例如潛在語義分析(Latent Semantic Analysis, LSA)通過奇異值分解(SVD)得到詞向量,而最近的論文證明了 Skip-gram Word2Vec 和 GloVe 都是通過隨機梯度的優化方法實現某類矩陣(統稱為信號矩陣)的分解。既然詞嵌入是通過分解信號矩陣得到的,我們自然想到利用矩陣分析的方法來了解 PIP 損失函數。本文的作者通過將詞嵌入轉化為帶噪音的矩陣分解問題,開發了一套基於微擾理論(perturbation theory)的分析技術。通過這個技術,作者發現 PIP 損失函數有偏差-方差分解(bias-variance decomposition)。文章的主定理證明了如下結論:
該定理將訓練得到的詞嵌入矩陣
與未知的最優詞嵌入矩陣
之間的 PIP 損失分解為三項:其中第一項為偏差(bias),第二和第三項均為方差(variance)。這三項也對應了一個基於信噪比的解釋,其中信號為信號矩陣的頻譜(spectrum),而噪音為信號矩陣的估計誤差:
- 第一項:當我們選擇一個 k 維的詞嵌入時,我們丟失了 k+1 維及之後的信號,這導致了模型產生偏差。該項隨著 k 的增大而減小。
- 第二項:噪音的存在導致我們對信號矩陣譜的大小產生估計誤差。隨著 k 的增大,更多的譜信號被引入,導致該項隨著 k 的增大而增加。
- 第三項:同樣由於噪音的存在,我們對信號矩陣譜的方向產生估計誤差。同理於第二項,該項隨著 k 增大而增加。
這個偏差-方差分解直接證明了最佳維度的存在。並且通過尋找偏差和方差的平衡點,我們可以直接求解理論上最優的維度!下圖是 GloVe 算法在 Text8 數據集上的 PIP 損失函數。圖中明顯可見偏差和方差的存在,並且注意在 700 維左右,偏差與方差的和最小。這個就是最優維度。
Figure 6 PIP 損失函數的偏差-方差分解及最優維度
這套理論完整解釋了維度對詞嵌入的影響:當選取的維度過低時,詞嵌入將有較大的偏差(high bias),因為模型丟失了較多信號。而維度過高時,詞嵌入將有較大的方差(high-variance),因為模型中夾雜了大量的噪音。
文中比較了通過最小化 PIP 損失函數得到的最優維度在語義學任務中的表現。這些維度幾乎達到最優表現。
通過對 PIP 損失函數的深入分析,作者證明了常用的詞嵌入算法(例如 Word2Vec 和 GloVe)對過擬合具有魯棒性。這個發現被實驗所進一步證明(圖 7 和圖 8)。當 Word2Vec 和 GloVe 的維度選取過大時,由於過擬合的存在,它們在詞義相似性任務上的表現有所下降;但是下降的幅度隨維度的增加並不明顯。甚至當維度達到 10000 時,它們的表現仍然處在可以接受的範圍內。
Figure 7 過擬合對 Word2Vec 的影響
Figure 8 過擬合對 GloVe 的影響
本文用於詞向量維度選擇的代碼已經在 GitHub 上放出:
https://github.com/ziyin-dl/word-embedding-dimensionality-selection
目前源代碼支持 Word2Vec、GloVe 和 LSA 三種算法。使用者只需要提供一個用來訓練詞嵌入的文本(txt 或 zip 格式),算法即可以自動選擇該文本上詞嵌入的最佳維度。
- Sanjeev Arora. Word embeddings: Explaining their properties, 2016. URL http://www. offconvex.org/2016/02/14/word-embeddings-2/. [Online; accessed 16-May-2018].
- Omer Levy and Yoav Goldberg. Neural word embedding as implicit matrix factorization. In Advances in neural information processing systems, pages 2177–2185, 2014.
- Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781, 2013a.
- Zi Yin and Yuanyuan Shen. On the dimensionality of word embedding. In Advances in Neural Information Processing Systems, 2018.
閱讀更多 學習機器學習 的文章