參考:
http://www.sohu.com/a/206922947_390227
https://zhuanlan.zhihu.com/p/27830489
https://www.jianshu.com/p/0bb00eed9c63
https://www.jianshu.com/p/2a76b7d3126b
https://blog.csdn.net/k284213498/article/details/83474972
嵌入(Embedding)
例如,想用將具有三個等級的輸入變量表示為二維數據。使用嵌入層,底層自微分引擎(the underlaying automatic differentiation engines,例如Tensorflow或PyTorch)將具有三個等級的輸入數據減少為二維數據。
嵌入式數據
輸入數據需要用索引表示。這一點可以通過標簽編碼輕松實現。這是你的嵌入層的輸入。
這里有一個簡單的例子,在keras中使用嵌入層,點擊鏈接,查看詳情:https://github.com/krishnakalyan3/FastAI_Practice/blob/master/notebooks/RecSys.ipynb
最初,權重是隨機初始化的,它們使用隨機梯度下降得到優化,從而在二維空間中獲得良好的數據表示。可以說,當我們有100個等級時,並且想要在50個維度中獲得這個數據的表示時,這是一個非常有用的主意。
示例:
原始數據:
標簽數據:
獨熱編碼:
嵌入數據:
2.機器學習中的embedding原理及tensorflow 相關API的理解
embedding 算法主要用於處理稀疏特征,應用於NLP、推薦、廣告等領域。所以word2vec 只是embbeding 思想的一個應用,而不是全部。
原文地址:https://gshtime.github.io/2018/06/01/tensorflow-embedding-lookup-sparse/
代碼地址:git@github.com:gshtime/tensorflow-api.git
embedding原理
常見的特征降維方法主要有PCA、SVD等。
而embedding的主要目的也是對(稀疏)特征進行降維,它降維的方式可以類比為一個全連接層(沒有激活函數),通過 embedding 層的權重矩陣計算來降低維度。
假設:
- feature_num : 原始特征數
- embedding_size: embedding之后的特征數
- [feature_num, embedding_size] 權重矩陣shape
- [m, feature_num] 輸入矩陣shape,m為樣本數
- [m, embedding_size] 輸出矩陣shape,m為樣本數
從id(索引)找到對應的 One-hot encoding ,然后紅色的weight就直接對應了輸出節點的值(注意這里沒有 activation function),也就是對應的embedding向量。
3.Word Embedding的發展和原理簡介
https://www.jianshu.com/p/2a76b7d3126b
可以將Word Embedding理解為一種映射,其過程是:將文本空間中的某個word,通過一定的方法,映射或者說嵌入(embedding)到另一個數值向量空間(之所以稱之為embedding,是因為這種表示方法往往伴隨着一種降維的意思。
1.2 Word Embedding的輸入
Word Embedding的輸入是原始文本中的一組不重疊的詞匯,假設有句子:apple on a apple tree。那么為了便於處理,我們可以將這些詞匯放置到一個dictionary里,例如:["apple", "on", "a", "tree"],這個dictionary就可以看作是Word Embedding的一個輸入。
1.3 Word Embedding的輸出
Word Embedding的輸出就是每個word的向量表示。對於上文中的原始輸入,假設使用最簡單的one hot編碼方式,那么每個word都對應了一種數值表示。例如,apple對應的vector就是[1, 0, 0, 0],a對應的vector就是[0, 0, 1, 0],各種機器學習應用可以基於這種word的數值表示來構建各自的模型。當然,這是一種最簡單的映射方法,但卻足以闡述Word Embedding的意義。下文將介紹常見的Word Embedding的方法和優缺點。
2 Word Embedding的類型
Word Embedding也是有流派的,主流有以下兩種:
基於頻率的Word Embedding(Frequency based embedding)
基於預測的Word Embedding(Prediction based embedding)
下面分別介紹之。
2.1 基於頻率的Word Embedding
基於頻率的Word Embedding又可細分為如下幾種:
Count Vector
TF-IDF Vector
Co-Occurence Vector
其本質都是基於one-hot表示法的,以頻率為主旨的加權方法改進。