當前位置:編程學習大全網 - 腳本源碼 - 200314 Embedding及其與word2vec關系的個人理解

200314 Embedding及其與word2vec關系的個人理解

參考鏈接 keras:3)Embedding層詳解

示例原文鏈接:

/qianshishangdi/article/details/88640204

以下是個人對Embedding及其與word2vec關系的通俗理解,表達盡量接地氣,語言可能不準確,有不正確的地方歡迎指正。

keras原型和關鍵參數:

keras.layers.embeddings.Embedding(input_dim, output_dim, input_length=None)

? input_dim: int > 0。詞匯表大小, 即,最大整數 index + 1。

? output_dim: int >= 0。詞向量的維度。

? input_length: 輸入序列的長度,必須和輸入數據長度壹致。當它是固定的時。 如果妳需要連接 Flatten 和 Dense 層,則這個參數是必須的 (沒有它,dense 層的輸出尺寸就無法計算)

Embedding:建立壹個可訓練的兩層神經網絡,對輸入的數據進行預處理;包括輸入層、input層和output層。

input_dim即input層節點數對應詞匯表, Embedding層自動實現每節點對應壹個詞匯

Embedding實質是訓練壹個與輸入相關的向量表,該向量表的尺寸為[input_dim,input_length,output_dim](隱含要求輸入是one-hot碼);訓練過程input層和output層權重逐漸優化,權重表可以表達訓練數據之間的邏輯關系。

Embedding輸出=輸入*Embedding,相當於按輸入one-hot碼在Embedding權重矩陣中查表,得到壹個與輸入對應的向量。該向量在nlp中可以用作詞向量,與one-hot相比,該詞向量尺寸更小並且可以表達詞之間的邏輯關系,詞向量之間的夾角表示詞向量之間語義相近程度。

word2vec與Embedding關系:word2vec本身是壹個語言模型,壹般認為是壹個三層的神經網絡,其中第壹層相當於Embedding,且優化了查表速度(因為Embedding本身是兩層網絡,所以可以將word2vec理解為壹個4層的深度神經網絡)。word2vec第壹層的權重即為輸入的詞向量表,第壹層的輸出即為word2vec的詞向量。很多NLP將word2vec單純作為文本向量化工具。

運行結果

  • 上一篇:如何看待《最強大腦》錄制時郭敬明中途離場?
  • 下一篇:手動殺毒怎麽進行呢
  • copyright 2024編程學習大全網