自然語言處理中,如何多文本訓練,做機器翻譯,人機問答呢?這裡面一般比較底層的技術便是獲取每個詞的嵌入向量。
今天和大家分享一個深度學習中的基礎概念:嵌入。關於嵌入提出幾個問題,讀者朋友們,你們可以先思考下。然後帶著這些問題,點擊閱讀原文,查看官方解答。
1、為什麼要有嵌入?
2、什麼是嵌入?
3、如何得到嵌入向量?
4、 如何可視化展示嵌入向量?
5、嵌入向量的實際應用有哪些?
一個單詞集合,這些屬於離散的非數值型對象,數值計算的基本要求是數值型,所以需要將他們映射為實數向量。
嵌入是將離散對象數值化的過程。
嵌入向量,google 開源的 word2vec 模型做了這件事,現在 TensorFlow 中調用 API 幾行代碼便可以實現:
word_embeddings = tf.get_variable(“word_embeddings”,
[vocabulary_size, embedding_size])
embedded_word_ids = tf.nn.embedding_lookup(word_embeddings, word_ids)
embedded_word_ids 的形狀 [vocabulary_size, embedding_size]
可視化展示主要需要對高維向量降維。
嵌入可以通過很多網絡類型進行訓練,並具有各種損失函數和數據集。例如,對於大型句子語料庫,可以使用遞歸神經網絡根據上一個字詞預測下一個字詞,還可以訓練兩個網絡來進行多語言翻譯。
閱讀更多 Python與算法社區 的文章