2016-03-15 93 views
1

我從https://www.kaggle.com/c/word2vec-nlp-tutorial/details/part-3-more-fun-with-word-vectors 讀取了Kaggle的word2vec示例,我無法理解模型的詞彙長度如何與單詞向量長度不同。爲什麼word2vec詞彙長度不同於單詞向量長度

單詞向量中的每個單元格是不是表示與詞彙表中其他單詞的關係,因此每個單詞與每個其他單詞都有關係? 如果不是,那麼單詞向量中的每個單元格代表什麼?

真的很感謝任何幫助。

回答

1

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

這些概念是自動學習的,並沒有預先定義,因此您可以將它們視爲潛在/隱藏。因爲它們是隨機初始化的,所以需要更多的數據來訓練這些向量。如果神經元的數量越多,那麼神經元的數量就越多。

size由於我們想要一個單詞的壓縮表示,因此單詞向量明顯小於詞典大小(通常)。兩個單詞向量之間的餘弦相似性表示兩個單詞之間的相似性。

EDIT

爲了更清楚,認爲每個字被早些時候詞彙的大小中的一個熱編碼載體,其爲數千/數百萬的數量級來表示的。同一個詞現在被壓縮成200或300維向量。爲了找到兩個單詞之間的關係,需要計算這兩個單詞的向量表示之間的餘弦相似度。

1

word2vec將單詞嵌入維度爲用戶定義的向量空間中。出於計算和性能的原因,這個維度通常很小(介於50-1000之間)。

事實上,Levy和Goldberg的這個excellent paper顯示word2vec有效地計算了PMI矩陣的分解,這與您所想到的類似。因此,單詞嵌入中的每個座標可以被解釋爲量化與多個(如果不是全部的話)詞語的一個未知的線性關係,而不僅僅是一個。

+1

嵌入式矢量大小訴模型的性能/精度以前有什麼研究呢? – velocirabbit

+0

是的。許多論文報告了固定所有參數並更改嵌入維度大小(甚至是我引用的)的結果。 通常,最佳維度取決於培訓數據,任務,特定模型,涉及的其他功能等。如果您正在複製其他人的工作,則可以(也可能應該)從他們的報告配置開始。 –

1

以前的答案提到性能和計算成本是因爲矢量大小小於詞彙大小的原因。如果這個向量不是與詞彙表中所有其他詞的關係,那麼我想知道它到底是什麼。

一些較早的算法創建了全尺寸的單詞向量,然後使用線性代數將其縮小。然後將濃縮的特徵向量輸入神經網絡。

word2vec將這個過程簡化爲一個步驟,並在其神經網絡的隱藏層中構建單詞向量。單詞向量的大小對應於隱藏層中的節點數量。

這與來源更長的版本可用here