作過深度學習的小夥伴,你們應該多多少少都據說過Embedding,這麼火的Embedding究竟是什麼呢?這篇文章就用來介紹Embedding。另外,基於深度學習的推薦系統方法或者論文尚未結束,我打算穿插進行講解,畢竟,深度學習出來的推薦框架的算法實在是太相像了,很難有大的不一樣。因此,這一篇就聊聊Embedding。算法
Embedding又被成爲向量化,或者向量的映射。Embedding(嵌入)也是拓撲學裏面的詞,在深度學習領域常常和Manifold(流形)搭配使用。在以前的Embedding的操做,每每都是將稀疏的向量轉換成稠密的向量,以便於交給後面的神經網絡處理。其實,Embedding還有更多應用場景,以及更多的實現方法,後面會慢慢談到這些方法。Embedding能夠看作是用低維稠密向量表示一個對象,能夠是單詞,能夠是用戶,能夠是電影,能夠是音樂,能夠是商品等等。只要這個向量可以包含,或者表達所表示對象的特徵,同時可以經過向量之間的距離反應對象之間的關係或者類似性,那麼Embedding的做用就體現出來了。網絡
以下圖所示,就是Embedding在天然語言處理當中,對單詞Embedding的一種刻畫:
框架
上圖中從king到queen,與從man到woman的距離向來那個幾乎相同,說明Embedding之間的向量運算可以包含詞之間的語義關係信息,同理,圖中的詞性例子當中,從進行時態到過去時態也是相同的距離。Embedding能夠在大量預料的輸入前提下,發掘出一些通用的常識,好比首都-國家之間的關係。學習
經過這個例子,咱們能夠了解到,在詞向量空間當中,即便是徹底不知道一個詞向量的含義下,僅依靠語義關係加詞向量運算就能夠推斷出這個詞的詞向量。Embedding就這樣從一個空間表達對象,同時還能夠表示對象之間的關係。編碼
除了在天然語言處理中對單詞進行Embedding以外,咱們能夠對物品進行Embedding。好比在影視做品推薦當中,「神探夏洛克」與「華生」在Embedding向量空間當中會比較近,「神探夏洛克」與「海綿寶寶」在向量空間中會比較遠。另外,若是在電商推薦領域,「桌子」和「桌布」在向量空間中會比較緊,「桌子」和「滑雪板」在向量空間中會比較遠。對象
不一樣領域在使用這些語義資料進行訓練的時候也會有不一樣,好比電影推薦會將用戶觀看的電影進行Embedding,而電商會對用戶購買歷史進行Embedding。blog
通常來講,推薦系統當中會大量使用Embedding操做:get
等等方法,以及文中提到的局部敏感哈希,也會在後續的系列文章逐步更新介紹。深度學習