對【WMD: From Word Embedding to Document Distance】的理解

零、背景簡介

  1. Word Embedding可有效表示不同詞間的語義相似度(通常用歐式或餘弦距離計算),使用BOW(Bag of words)或TF-IDF也能有效表示文檔內不同關鍵詞間的距離,但是上述2種方法在表示不同文檔間的語義相似性時就顯得不那麼好用了。因此作者提出基於Word Embedding的WMD(Word Mover's Distance)算法來計算文檔間的距離(或語義相似性)
  2. 該方法有效表示不同文檔間的語義相似距離,算法無超參數且實現簡單
  3. WMD算法在找出一篇文檔的k個最相似文檔的錯誤率表現已超過目前最好的7個baseline

一、基本概念解釋

  1. 矩陣\(X\)是訓練好的詞庫Embedding, d維,共n個單詞

\[X \epsilon R^{ d\times n} \tag 1 \]
  1. \(i^{th}\)表示詞庫中的第i個單詞
  2. \(X_i\epsilon R^d\) 表示第i個單詞(在詞庫中索引)的embedding表示,每個單詞都是d維
  3. \(C_i\)表示文檔\(d_i\)中,第i個單詞出現次數
  4. \(d_i\) 即標準化詞袋模型(nBOW),表示單詞i出現在當前文檔中的總次數 / 當前文檔所有詞出現總次數之和(當然要去除停用詞),個人理解某篇文檔d同理應該是n維的,要用詞庫及索引表示文檔,因此會很稀疏,具體如下(2)式:

\[d_i = \frac {C_i}{\sum_{j=1}^{n} C_j} \tag 2 \]
  1. \(C(i,j)\)爲文檔1中第i個詞到文檔2中第j個詞間Embedding的歐式距離,具體如下(3)式

\[C(i,j) = \left | \left \| X_i - X_j \right \| \right |_2 \tag 3 \]
  1. \(T_{i,j}\)同樣爲n*n矩陣,表示文檔1中第i個單詞到文檔2中第j個單詞間的轉移成本(也可理解爲權重向量),其中\(T_{i,j}\)非負

二、WMD算法

1.算法思想

計算不同文檔間的語義相似度(或距離),先用不同文檔的所有單詞(去除停用詞)通過單詞出現數量加權和標準化來向量化表示文檔,再計算不同文檔向量之間各個單詞的映射關係,即找出文檔1中所有單詞分別映射到文檔2中具體哪些單詞(該步驟計算使用word embedding計算歐氏距離),最後對匹配好的所有單詞距離進行計算並sum爲文檔距離。 該算法沒有考慮文檔中單詞出現的順序,考慮到了單詞出現的數量,考慮了單詞的語義相似性,也考慮了同一意思的不同句子可以用不同單詞表示的情況。由於WMD算法時間複雜度較大,同時給出了2中優化算法。

2.目標函數

  • 該目標函數表示計算文檔1中的每一個單詞i到文檔2中的每一個單詞的權重 和 embedding距離乘積的SUM, 其中有兩個限制條件:
  1. 文檔1中第i個單詞轉移到文檔2中的每個單詞的權重和等於\(d_i\)
  2. 文檔1中的每一個單詞轉移到文檔2中的第j個單詞的權重和等於\(d'_j\)
  • 以上可表示爲給定條件下的優化問題, 但平均時間複雜度是 \(O(p^3\log{p})\),p表示文檔中去除停用詞的單詞unique數, 由於時間複雜度過高,原文給出了2中優化算法

三、優化算法

1.WCD(Word Centroid Distance)

該算法使用了初中數學講的基本不等式性質:\(\left | a \right | + \left | b \right | \geqslant \left | a+b \right |\),並分別對\(T_{i,j}\)按行,列進行合併

若用d表示單詞embedding維度,p依然表示文檔中去除停用詞的單詞unique數,則WCD的時間複雜度\(O(dp)\) ,極大的降低的時間複雜度,但是該算法計算的文檔距離和WMD距離略遠,可以作爲WMD算法的下屆(Lower Bound)

2. RWMD(Relaxed word moving distance)

該算法通過任意減少WMD算法的限制條件,降低了WMD的時間複雜度,並且RWMD結果更逼近WMD,如下圖爲RWMD目標函數

由於在計算\(T_{i,j}^*\)時使用瞭如下近似計算公式

其近似優化結果如下圖

當分別去掉限制條件1和限制條件2時可獲得文檔距離分別爲\(l_1(d,d')\)\(l_2(d,d')\) ,而最終更逼近WMD的lower bound爲\(l_r(d,d') = \max(l_1(d,d'),l_2(d,d'))\),即RWMD計算結果。
該算法的時間夫再度是\(O(P^2)\)

3. Prefetch and prune

根據以上兩種近似算法,原文作者表示可以極大地降低計算量。若要使用WMD計算k篇最相近的文檔,可以先用WCD計算得出前k語義最相似的文檔,在對其餘文檔用RWMD算法計算,若後面計算的文檔必前k個文檔更相似(距離更小),那麼再可用WMD算法計算該文檔並更新前k個最相似文檔,若使用RWMD計算的其餘文檔比之前WCD計算的文檔距離更大,那麼可剪枝跳過這些文檔(因爲它們一定是距離更遠的)
以上方法是作者提出Prefetch and Prune剪枝操作,在某些數據集可減少95%的計算。

四、總結

  1. WMD算法整體思路簡單,無超參數,比BOW 和 TF-IDF 更能準確計算出文檔語義相似度。
  2. 2種優化算法,也較有效地提升了計算效率。
  3. 展望:接下來若能考慮到句子中單詞的順序來計算語義相似度或能更好表示文檔距離。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章