什么是深度學習里的Embedding?
這個概念在深度學習領域最原初的切入點是所謂的Manifold Hypothesis(流形假設)。流形假設是指“自然的原始數據是低維的流形嵌入於(embedded in)原始數據所在的高維空間”。那么,深度學習的任務就是把高維原始數據(圖像,句子)映射到低維流形,使得高維的原始數據被映射到低維流形之后變得可分,而這個映射就叫嵌入(Embedding)。比如Word Embedding,就是把單詞組成的句子映射到一個表征向量。但后來不知咋回事,開始把低維流形的表征向量叫做Embedding,其實是一種誤用。。。
如果按照現在深度學習界通用的理解(其實是偏離了原意的),Embedding就是從原始數據提取出來的Feature,也就是那個通過神經網絡映射之后的低維向量。
什么是embedding?為什么說embedding是深度學習的基本操作?
簡單來說,embedding就是用一個低維的向量表示一個物體,可以是一個詞,或是一個商品,或是一個電影等等。這個embedding向量的性質是能使距離相近的向量對應的物體有相近的含義,比如 Embedding(復仇者聯盟)和Embedding(鋼鐵俠)之間的距離就會很接近,但 Embedding(復仇者聯盟)和Embedding(亂世佳人)的距離就會遠一些。
除此之外Embedding甚至還具有數學運算的關系,比如Embedding(馬德里)-Embedding(西班牙)+Embedding(法國)≈Embedding(巴黎)
從另外一個空間表達物體,甚至揭示了物體間的潛在關系,上次體會這樣神奇的操作還是在學習傅里葉變換的時候,從某種意義上來說,Embedding方法甚至具備了一些本體論的哲學意義。
言歸正傳,Embedding能夠用低維向量對物體進行編碼還能保留其含義的特點非常適合深度學習。在傳統機器學習模型構建過程中,我們經常使用one hot encoding對離散特征,特別是id類特征進行編碼,但由於one hot encoding的維度等於物體的總數,比如阿里的商品one hot encoding的維度就至少是千萬量級的。這樣的編碼方式對於商品來說是極端稀疏的,甚至用multi hot encoding對用戶瀏覽歷史的編碼也會是一個非常稀疏的向量。而深度學習的特點以及工程方面的原因使其不利於稀疏特征向量的處理(這里希望大家討論一下為什么?)。因此如果能把物體編碼為一個低維稠密向量再喂給DNN,自然是一個高效的基本操作。
鏈接:https://www.zhihu.com/question/38002635/answer/1382442522