從詞嵌入到文檔距離 (RWMD)

From Word Embeddings To Document Distances

  1. 整體來說,這是一種利用線性規劃的思想,解決了一種運輸問題。
  2. 通過詞向量間的歐氏距離及其權重來計算相似度,權重是通過運輸模型建模找到的最佳轉移量
  3. 這種相似度可以度量語句或者文檔的相似性,考慮了每個詞彙(非停用詞)與其它詞彙的轉移量及權重。

目的

文章的目的主要是爲了提出一種改進的速度更快的RWMD算法來加速計算。
原因
1.原始WMD的時間複雜度是 O(p3logp)O(p^3 logp),複雜度較高。
2.後來提出的WCD是WMD的一個下界,但這種近似算法其實與WMD差很多,時間複雜度是 O(dp)。
於是,文章作者從約束條件下手,通過消掉第一或者第二條約束,只保留一條(考慮轉移詞彙轉移量要與轉移詞彙本身擁有的量一致,或者接收詞彙的接收量要與接收詞彙本身的接收量一致)。於是找到了兩個新的下界(取距離最大的),其最近鄰的時間複雜度是 O(p2)O(p^2)

注:

  1. p denotes the number of unique words in the document
  2. d 是詞向量的維度
  3. 詞彙 - 倉庫 ,量 - 貨物;替換到上面可能更好理解。

文章脈絡

這篇文章 網上已經有很詳細的說明了,推薦資料

  1. 講述了文章的脈絡,比較清晰
    文章1
    文章2
    文章3
    文章4

  2. 預備知識
    1)單詞的embedding是將單詞通過如word2vec、glove等的訓練方法轉換成稠密向量。
    2)nBOW(normalized bag-of-words)詞袋錶示,將文檔中詞出現的詞頻與所有詞頻和的比值。

  3. WMD、WCD
    寫出了之前文章提出的 方法及其公式

  4. RWMD
    由約束條件着手,提出了一個新的速率更快的近似算法。

  5. 用法
    找前K個相鄰文檔時,可以如下計算

     1. 首先根據WCD距離對文檔進行升序排序,接着對最小的前k個文檔計算WMD距離
     2. 對於剩下的文檔,
     2.1 先計算其RWMD距離,如果大於前K個最大的WMD距離則直接忽略,
     2.2 如果其RWMD距離小於前K個的WMD距離,則進一步計算其真實的WMD距離。
    

通過這種方法在某些數據集上可以使用RWMD過濾掉95%的WMD計算。

  1. 用法思考

     1) 不一定非要用 nBOW,還可以用TFIDF等
     2) 在實際工程中,不僅要考慮停用詞、還要考慮廣告語、宣傳詞句等,具體做法要看實際業務的需求
    
  2. 實驗

     1) The kNN test error results on 8 document classification data sets
     2) 文本分類
     3) 不同embedding
     4)  Lower Bounds and Pruning
    

優點

  1. 無超參
  2. 可解釋性好

不足:

  1. WMD這個算法用在聚類效果比較好(查詢哪些文檔相近),但是分類上不是很好。
  2. WMD算法基於KNN的分類精度雖然高於其他方法,但是根據時間複雜度O(p2)O(p^{2})可以看出當 p 很大時候,計算成本依然很高。
  3. WMD只是一個距離,只能與KNN等結合使用,但是許多機器學習算法需要一個固定長度的特徵作爲輸入。
  4. 只是從詞的角度,而沒有考慮主題等更深的層面考慮文檔的語義關係

解決方法:

  1. 在2016年NIPS上,提出WMD算法的這些作者又加上2個其他一作,發了篇Supervised Word Mover’s Distance(可監督的詞移距離),在WMD距離中加入可以訓練類別權重功能,解決分類問題的弱點。(不足之處1)(論文:Supervised Word Mover’s Distance 鏈接:https://papers.nips.cc/paper/6139-supervised-word-movers-distance.pdf)
  2. 然後在2018年的EMNLP上,又有篇論文提出了Word Mover’s Embedding(WME)算法,給出了生成可變長度文本的無監督語義嵌入,將對文本長度時間複雜度從二次方降爲linear,大幅度降低計算速度。(不足之處2,3)(論文Word Mover’s Embedding: From Word2Vec to Document Embedding 鏈接:https://www.aclweb.org/anthology/D18-1482)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章