2016-01-22 149 views
6

我在Python中使用Doc2Vec函數gensim將文檔轉換爲向量。如何解釋gensim的Doc2Vec函數中的「size」參數?

使用

model = Doc2Vec(documents, size=100, window=8, min_count=5, workers=4)

的一個例子,我應該如何解讀size參數。我知道如果我設置size = 100,輸出向量的長度將爲100,但這意味着什麼?例如,如果我將size增加到200,有什麼區別?

+1

啊,大小黑魔法! – alvas

回答

1

不同之處在於模型可以捕捉的細節。一般來說,您給Word2Vec的尺寸越多,模型越好 - 直到某個點。

通常大小在100-300之間。你總是不得不考慮更多的維度也意味着,需要更多的內存。

+0

你好,非常感謝你的評論。但是我的問題是,模型「捕獲」了什麼?例如,在TF模型中,如果我設置size = 100,它將返回100個最常用的單詞 - 這很容易理解。但在Doc2Vec中,我並不是很瞭解。 – mamatv

+0

問題是,你根本無法說出更多維度會產生什麼效果。你必須以不同的方式來看待它。當你有100個維度時,你只有100個變量來建模一個單詞的關係。但有300個維度,你有300個。所以理論上它可以捕捉更多細節,因爲它在訓練過程中有更多可變因素。或簡稱:Tweet與Book,您會在哪裏找到關於某個主題的更詳細的概述? :D – Saytiras

+0

你好@Saytiras,我完全理解它:),但我的問題是,「100」是什麼意思。例如,正如我所說的,在TF模型中,100表示​​文本中最常用的100個單詞,所以如果將參數更改爲200,則會返回200個最常出現的單詞。但是在Doc2Vec中,它在技術語言中意味着什麼? – mamatv

7

Word2Vec捕獲字基本上意味着分佈表示,多個神經元捕捉單個概念(概念可以是語音等的字義/情緒/部分),並且還單個神經元有助於多個概念

這些概念是自動學習的,並沒有預先定義,因此您可以將它們視爲潛在/隱藏。同樣出於同樣的原因,單詞向量可以用於多個應用程序。

尺寸參數越多,您的神經網絡表示這些概念的能力越多,但需要更多數據來訓練這些向量(隨機初始化)。在沒有足夠數量的句子/計算能力的情況下,最好保持size小。

Doc2Vec與Word2Vec相比略有不同的神經網絡體系結構,但size的含義是類似的。

+0

你好,你的意思是「尺寸」是神經網絡Doc2Vec中用於訓練和輸出矢量的神經元數量? –

+0

每層神經網絡中神經元的數量將取決於體系結構,無論是DBOW還是DM。結帳(在答案中提到) – kampta