Doc2vec實現原理


  論文來源:https://www.eecs.yorku.ca/course_archive/2016-17/W/6412/reading/DistributedRepresentationsofSentencesandDocuments.pdf

1、Doc2vec概述

  Doc2vec 和熟知的 Word2vec 類似,只不過 Word2vec 是訓練詞向量,而 Doc2vec 可以訓練句子,段落,文檔的向量表示。

  Doc2vec 將文本向量化的應用解決了幾個問題:

  1)解決了文本中詞之間的順序問題

  2)解決了文本中詞的語義問題

  3)解決了文本向量化后的高稀疏高維度的問題

  4)解決了文本長度不均的問題,可以轉變成等長的向量,適用於句子,段落和文本。

  利用 Doc2vec 可以極大地提高在文本分類,情感分析等問題上的准確率

2、Doc2vec模型

  Doc2vec 中的兩個模型都是受到 word2vec 激發的。在 word2vec 中的CBOW模型是利用上下文的詞預測中心詞。其具體模型圖如下:

    

  而在 Doc2vec 有個類似的模型,稱為 Distributed Memory Model of Paragraph Vectors (PV-DM)。其具體模型結構如下圖:

    

  PV-DM 模型較 CBOW 的不同點就是引入了段落作為輸入值。假設在我們的語料庫中有 N 個段落、M 個詞,段落映射后的向量長度為p,詞映射后的向量長度為q。則整個模型的參數就是 N × p + M × q 。

  而在輸入值也是采用固定的滑動窗口來輸入的。但是在這里段落該怎么處理呢?原文中是這么說的(不是很明確意思,各位自己理解):

  The contexts are fixed-length and sampled from a sliding window over the paragraph. The paragraph vector is shared across all contexts generated from the same paragraph but not across paragraphs. The word vector matrix W, however, is shared across paragraphs. I.e., the vector for “powerful” is the same for all paragraphs。

  對於這段話我的理解是,段落與段落之間是相互獨立的,而詞在所有段落之間是共享的。

  在預測新的段落(不在語料庫中)的向量時,固定詞向量W 和 softmax時的權重 U 和偏置 b。將新的段落加入到矩陣D中,然后梯度下降求新段落的向量。

  除了PV-DM 模型之外,還有一個 PV-DBOW (Distributed Bag ofWords version of Paragraph Vector模型(該模型有點類似於skip-gram 模型)。具體的模型結構如下:

    

  PV-DBOW 模型是一種忽略了上下文的方法。這個模型輸入時段落矩陣,輸出是從段落中隨機采樣的詞,而且在每次梯度下降迭代時都會重新采樣,以此來訓練段落向量。

  一般來說 PV-DM 模型就可以獲得很好的結果,但是將 PV-DM 和 PV-DBOW 兩個模型生成的向量結合起來的效果會更好。所以更推薦后者。

 


免責聲明!

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



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