深入理解wmd算法


深入理解wmd算法

WMD(Word Mover’s Distance)1是2015年提出的一種衡量文本相似度的方法。它具有以下幾個優點:

  • 效果出色:充分利用了word2vec的領域遷移能力
  • 無監督:不依賴標注數據,沒有冷啟動問題
  • 模型簡單:僅需要詞向量的結果作為輸入,沒有任何超參數
  • 可解釋性:將問題轉化成線性規划,有全局最優解
  • 靈活性:可以人為干預詞的重要性

當然它也有一些缺點:

  • 詞袋模型,沒有保留語序信息
  • 不能很好的處理詞向量的OOV(Out of vocabulary)問題
  • 處理否定詞能力偏差
  • 處理領域同義詞互斥詞的能力偏差
  • 時間復雜度較高:O(p3logp)O(p3log⁡p)(其中,p代表兩篇文本分詞去重后詞表的大小)

在利用WMD計算兩條文本的相似度時,會進行以下步驟:

  • 利用word2vec將詞編碼成詞向量

  • 去掉停用詞

  • 計算出每個詞在文本中所占權重,一般用詞頻來表示

  • 對於每個詞,找到另一條文本中的詞,確定移動多少到這個詞上。如果兩個詞語義比較相近,可以全部移動或移動多一些。如果語義差異較大,可以少移動或者不移動。用詞向量距離與移動的多少相乘就是兩個詞的轉移代價

  • 保證全局的轉移代價加和是最小的

  • 文本1的詞需要全部移出,文本2的詞需要全部移入

    我們先把文檔看成詞的一個分布(比如使用歸一化的詞頻特征)。首先考慮如何令“文檔 1 中的每個詞以不同權重匹配到另一個文檔的所有詞上”。如下圖,很簡單,我們允許“部分匹配”就可以了。這里我們把匹配看成是把文檔 1 中的詞“移動”到文檔 2 中的詞的一個過程,移動代價是兩個詞向量的 Euclidean 距離。比如說“Obama”在文檔 1 中的權重(概率)是 0.5,如果我把 0.4 移動到“President”、0.05 移動到“greets”……等等,移動代價就是[公式]
    這里應該有個約束:把“Obama”分到文檔 2 中詞的權重的和應該等於它在文檔 1 中的權重,即[公式]

    現在考慮“強制性”這個特性。要想文檔 2 的詞都會被匹配到,我們可以同時要求,流進文檔 2 中某個詞的權重(比如對於“Press”,流進它的權重 = “Obama”→“press” 的權重 + “speaks”→“press” 的權重 + “media”→“press” 的權重 + ……),等於它在文檔 2 中的權重。這樣對於每個符合以上兩個約束的詞的移動方式,我們都有一個總的移動代價。我們令最小的移動代價為兩個文檔之間的 Word Mover's Distance(WMD),即

    作者:子元

    鏈接:https://www.zhihu.com/question/33952003/answer/134691643


免責聲明!

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



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