簡單理解Embedding技術在推薦系統中的應用
在之前的學習階段做過一些基于Tensorflow的NLP實驗,很多時候在構建模型的model時候不管三七二十一上來就先來上一層Embedding,只知道加上Embedding層后會得到更好的結果卻未曾深究其作用,經過閱讀《深度學習推薦系統》一書,才明白了個大概,拿來分享給大家也方便日后自己理解,本文結合推薦系統來闡述Embedding的作用和原理,但這里沒有涉及具體代碼實作,只做簡單的概念的闡述,
Embedding概述
Embedding操作經常出現在我們設計的模型里,我們稱其為'嵌入',或者翻譯成'向量映射',簡單來說它通常幫助我們實作的是一種用低維稠密向量表示高維稀疏向量的作用,便于上層深度神經網路處理,在深度學習框架中,特別是:推薦、廣告、搜索為核心的互聯網領域,Embedding使用的非常廣泛,Embedding幾乎可以說是Deep Learning的基礎核心操作了,
其實,Embedding并不是單純的去轉化稀疏的one-hot向量這么簡單,它的應用場景非常多元,它既可以處理序列樣本,也可以處理圖樣本,同時也可以處理異構的多特征樣本,同時在工業界,Embedding由于其綜合資訊能力強、易于上線部署的特點,應用非常廣泛,
如何理解Embedding
Embedding可以定義為用一個低維的稠密向量去表示一個物件,物件可以為一個詞、一個商品,也可以是一部電影等等,換言之,Embedding向量可以表示相應物件的某些特征,同時Embedding向量之間的距離反映了物件之間的相似性,
舉個例子會更加直觀(這里直接用樹上的案例吧):
如上圖(左)所示,這是當我們使用Embedding向量表示幾個單詞在Embedding空間的表示,可以看出Embedding(King)到Embedding(Queen)與Embedding(Man)到Embedding(Woman)的距離幾乎完全一樣,這表示Embedding想兩件的距離甚至包含著詞與之間的語意關系資訊(因為我們知道剛才這兩組單詞之間的語意對照是相似的),
而同樣的圖(右),我們去對比Embedding(Walking)和Embedding(Walked)與Embedding(Swimming)和Embedding(Swam)時也發現它們有著相似的距離表示,這就意味著Embedding同時也能夠挖掘出詞與詞之間詞性關系,(即Walking-Walked ∽ Swimming-Swam)其實,這也只是代表著Embedding很小一部分的作用,假如資料集足夠大,有大量的語料輸入的前提下,Embedding甚至可以挖掘出一些通用知識,比如國家和首都的關系(表示為每個國家與其首都的Embedding空間向量距離相似):
Embedding在推薦領域的泛化
我們剛剛舉的例子是在NLP程序中最簡單的例子,當我們面對推薦問題的時候,我們同樣也可以使用Embedding來對應用領域內的物品進項向量化的表示,與文本處理不同的是,之前詞向量使用大量的語料庫作為基礎進行訓練,那么當問題被泛化,顯然不同領域的訓練樣本是不同的,比如視頻推薦往往使用用戶的觀看序列進行電影的Embedding化,而電商平臺則會通過用戶的購買歷史作為訓練樣本,而教育類推薦往往以學生選課的順序序列作為樣本參與Embedding,
Embedding的重要性
剛剛我們說Embedding是Deep Learning的基礎核心操作,或者說推薦系統的核心,主要原因有三個方面:
- 推薦場景中大量使用one-hot編碼對類別、id等特征進行編碼,導致樣本的特征維度很高但卻非常稀疏,深度學習的結構特點卻不擅長處理稀疏的特征向量,所以幾乎所有的DL模型都需要Embedding層作為第一層來將高維稀疏的特征映射到一個相對低維的且稠密的向量上來,
- Embedding本身就是極其重要的特征向量,相比于MF等傳統方法產生的特征向量,Embedding幾乎可以引入任何資訊進行編碼(尤其是Graph Embedding技術出現后),Embedding向量往往會與其他推薦系統特征連接后進入深層神經網路繼續訓練,
- Embedding對物品、用戶相似度的計算常用于推薦系統的召回部分設計,我們都知道推薦系統的核心分為兩部,顯示召回物品,然后是排序回傳TopN序列,那么對于第一部分的召回程序中,當區域敏感哈希等快速最近鄰搜索技術應用于推薦系統后Embedding更適用于對海量資料進行快速篩選,過濾出幾百個相似度高的產品交付給上層進行精準排序,以便生成最終的推薦序列,
對于Embedding相關技術的總結
這里給出一些Embedding相關技術的總結,事實上在《深度學習推薦系統》這本書里有詳細的講解每種技術的起源和原理,本文在此處等于給出了索引,想要更好的使用Embedding相關技術的同學可以就表中的目錄區自行深入了解:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/139102.html
標籤:其他
上一篇:通過tkinter(ttk)可視化計算拼單每個人的優惠價
下一篇:Python識別驗證碼
