2016-07-12 21 views
4

我正在使用word2vec模型來訓練神經網絡,並在向量空間中創建一個用於查找相似詞的神經嵌入。但我的問題是關於單詞和上下文嵌入(矩陣)中的維度,我們在訓練開始時通過隨機數(向量)將它們初始化,如下所示https://iksinc.wordpress.com/2015/04/13/words-as-vectors/Word2Vec中的尺寸從哪裏來?

假設我們要顯示{book,paper ,筆記本,小說}的話,首先我們應該建立一個矩陣,其尺寸爲4x2或4x3或4x4等,我知道矩陣的第一維度就是我們詞彙量的大小| v |。但矩陣的第二維(矢量的維數),例如這是一個單詞「book」的向量[0.3,0.01,0.04],這些數字是什麼?它們有什麼含義?例如0.3的數字相關在詞彙表中,詞「書」和「紙」之間的關係,0.01是書和筆記本之間的關係等。 就像TF-IDF或每個維(列)Y具有含義的共生矩陣 - 與X行中的單詞相關的單詞或文檔。

+0

你問了很多有趣的問題! – Aaron

回答

1

word2vec模型使用網絡體系結構來表示輸入詞和最可能相關的輸出詞。

假設有一個隱藏層(如在問題中鏈接的示例中),引入的兩個矩陣表示允許網絡計算映射輸入向量的函數的內部表示的權重和偏差(例如「cat 「在鏈接的例子中)到輸出向量(例如」攀升「)。

網絡的權重是輸入和輸出之間的映射的子符號表示 - 任何單個權重不一定代表它自己有意義的任何東西。它是網絡中所有單元之間的連接權重(即所有權重的相互作用),這引起了網絡對函數映射的表示。這就是爲什麼神經網絡通常被稱爲「黑盒子」模型 - 要解釋他們爲什麼做出特定的決定以及他們如何學習,可能非常困難。因此,很難說出向量[0.3,0.01,0.04]的準確表示。

網絡權重傳統初始化爲隨機值主要有兩個原因:

  1. 它可以防止偏置被引入到模型訓練開始前
  2. 它允許網絡從搜索不同點開始初始化後的空間(有助於減少局部最小值的影響)

網絡的學習能力可能會對其權重初始化的方式非常敏感。現在有更高級的初始化權重的方法,例如, this paper (see section: Weights initialization scaling coefficient)

權重被初始化並且隱藏層的維度通常被稱爲超參數並且通常根據啓發式和問題空間的先驗知識來選擇。

+0

謝謝馬克爲你解答。所以你的意思是每個權重本身沒有任何意義,並且沒有辦法理解例如這個向量[0.3,0.01,0.04]是什麼與什麼之間的聯繫,對嗎?但是,矩陣W(詞彙矩陣或詞嵌入)的列應該有名字,對嗎?就像我們詞彙中的單詞一樣。有人告訴我,每個維度(列)代表一個以某種方式描述這個詞的 特徵,但我無法理解這是什麼意思「功能」? –

+0

輸入向量(即輸入向量乘以權重矩陣中的特定列)的加權總和表示「特徵」,其可以是主動的,取決於單元的激活函數。這些功能所代表的內容很難再說(如上所述)。它們是訓練算法學習的特徵,可以區分不同情況。儘管對CNN來說,你可以直觀地看到圖像輸入單元檢測到的特徵[here](http://yosinski.com/static/proj/deepvis_all_layers.jpg),(閱讀[here](http://yosinski.com/deepvis )更多)。 – Mark

0

我想知道同樣的事情,並把像(1 0 0 0 0 0 ...)這樣的矢量,看看它是最接近的條款。答案是,返回的結果似乎並沒有圍繞任何特定的含義,而只是一種隨機的。這是使用Mikolov在Google新聞上訓練過的300維矢量。 查找NNSE語義向量的矢量空間,其中個別維度似乎具有特定的人類可以理解的含義。