推薦系統實踐 0x12 什麼是Embedding

作過深度學習的小夥伴,你們應該多多少少都據說過Embedding,這麼火的Embedding究竟是什麼呢?這篇文章就用來介紹Embedding。另外,基於深度學習的推薦系統方法或者論文尚未結束,我打算穿插進行講解,畢竟,深度學習出來的推薦框架的算法實在是太相像了,很難有大的不一樣。因此,這一篇就聊聊Embedding。算法

初識Embedding

Embedding又被成爲向量化,或者向量的映射。Embedding(嵌入)也是拓撲學裏面的詞,在深度學習領域常常和Manifold(流形)搭配使用。在以前的Embedding的操做,每每都是將稀疏的向量轉換成稠密的向量,以便於交給後面的神經網絡處理。其實,Embedding還有更多應用場景,以及更多的實現方法,後面會慢慢談到這些方法。Embedding能夠看作是用低維稠密向量表示一個對象,能夠是單詞,能夠是用戶,能夠是電影,能夠是音樂,能夠是商品等等。只要這個向量可以包含,或者表達所表示對象的特徵,同時可以經過向量之間的距離反應對象之間的關係或者類似性,那麼Embedding的做用就體現出來了。網絡

Example

以下圖所示,就是Embedding在天然語言處理當中,對單詞Embedding的一種刻畫:
框架

上圖中從king到queen,與從man到woman的距離向來那個幾乎相同,說明Embedding之間的向量運算可以包含詞之間的語義關係信息,同理,圖中的詞性例子當中,從進行時態到過去時態也是相同的距離。Embedding能夠在大量預料的輸入前提下,發掘出一些通用的常識,好比首都-國家之間的關係。學習

經過這個例子,咱們能夠了解到,在詞向量空間當中,即便是徹底不知道一個詞向量的含義下,僅依靠語義關係加詞向量運算就能夠推斷出這個詞的詞向量。Embedding就這樣從一個空間表達對象,同時還能夠表示對象之間的關係。編碼

應用

除了在天然語言處理中對單詞進行Embedding以外,咱們能夠對物品進行Embedding。好比在影視做品推薦當中,「神探夏洛克」與「華生」在Embedding向量空間當中會比較近,「神探夏洛克」與「海綿寶寶」在向量空間中會比較遠。另外,若是在電商推薦領域,「桌子」和「桌布」在向量空間中會比較緊,「桌子」和「滑雪板」在向量空間中會比較遠。對象

不一樣領域在使用這些語義資料進行訓練的時候也會有不一樣,好比電影推薦會將用戶觀看的電影進行Embedding,而電商會對用戶購買歷史進行Embedding。blog

深度學習推薦系統中的Embedding

通常來講,推薦系統當中會大量使用Embedding操做:get

  1. 使用one-hot對類別,id等類型進行編碼會致使特徵向量極其稀疏,使用Embedding能夠將高維稀疏的特徵向量轉化爲低維稠密的特徵向量。
  2. Embedding具備很強的表達能力,在Graph Embedding提出以後,Embedding能夠引入任何信息進行編碼,包含大量有價值的信息。
  3. Embedding能夠表達對象之間的關係,能夠對物品、用戶的類似度進行計算,在推薦系統的召回層常常使用,尤爲是在局部敏感哈希(Locality-Sensitive Hashing)等快速最近鄰搜索提出以後,Embedding被用來對物品進行快速篩選,到幾百或幾千的量級以後再進行神經網絡的精排。

常見方法

  • Word2Vec
  • Item2Vec
  • Node2Vec

等等方法,以及文中提到的局部敏感哈希,也會在後續的系列文章逐步更新介紹。深度學習

參考

深度學習推薦系統 王喆編著
怎麼形象理解embedding這個概念? - 劉斯坦的回答 - 知乎it

相關文章
相關標籤/搜索