求通俗講解下tensorflow的embedding_lookup接口的意思


https://www.zhihu.com/question/48107602

 

作者:王凱
鏈接:https://www.zhihu.com/question/48107602/answer/159801895
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

從id類特征(category類)使用embedding_lookup的角度來講:

1、onehot編碼神經網絡處理不來。embedding_lookup雖然是隨機化地映射成向量,看起來信息量相同,但其實卻更加超平面可分。

2、embedding_lookup不是簡單的查表,id對應的向量是可以訓練的,訓練參數個數應該是 category num*embedding size,也就是說lookup是一種全連接層。詳見 brain of mat kelcey

3、word embedding其實是有了一個距離的定義,即出現在同一上下文的詞的詞向量距離應該小,這樣生成向量比較容易理解。autoencode、pca等做一組基變換,也是假設原始特征值越接近越相似。但id值的embedding應該是沒有距離可以定義,沒有物理意義,只是一種特殊的全連接層。

4、用embedding_lookup做id類特征embedding由google的deep&wide提出,但隱藏了具體實現細節。阿里 第七章 人工智能,7.6 DNN在搜索場景中的應用(作者:仁重) 中提下了面對的困難,主要是參數數量過多(引入紫色編碼層)和要使用針對稀疏編碼特別優化過的全連接層( Sparse Inner Product Layer )等。

5、在分類模型中用這種id類特征,主要是希望模型把這個商品記住。但id類特征維度太高,同一個商品的數據量也不大,因此也常常用i2i算法產出的item embedding來替代id特征。

 

一般做自然語言相關的。需要把每個詞都映射成向量,這個向量可以是word2vec預訓練好的,也可以是在網絡里訓練的。
在網絡里需要先把詞的id轉換成對應的向量,這個函數就是做這件事的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM