推荐系统中的Embedding
推薦系統之Embedding
- 一、什么是embedding?
- 1. 讓embedding空前流行的word2vec:
- 2. 從word2vec到item2vec
- 二、Graph Embedding
- 1. 經典的Graph Embedding方法 — DeepWalk
- 2. DeepWalk改進 — Node2vec
- 3. 阿里的Graph Embedding方法EGES
- 三、深度學習推薦系統中,Embedding的應用
- 1. 深度學習網絡中的Embedding層
- 2. Embedding的預訓練方法
- 3. Embedding作為推薦系統或計算廣告系統的召回層
- 學習參考文章:
一、什么是embedding?
Embedding:用一個低維的向量來表示一個物體,可以是一個詞,或是一個商品,一個用戶。這個embedding向量的性質是能使距離相近的向量對應的物體又相近的含義。
1. 讓embedding空前流行的word2vec:
2. 從word2vec到item2vec
二、Graph Embedding
1. 經典的Graph Embedding方法 — DeepWalk
主要思想:由用戶點擊序列構建物品圖,在圖結構上進行隨機游走,產生大量的物品序列,然后將這些物品序列作為訓練樣本輸入到word2vec進行訓練,得到物品的embedding。
Random work 采樣概率:
Mij是節點vi到節點vj邊的權重
2. DeepWalk改進 — Node2vec
斯坦福大學在DeepWalk的基礎上更進一步,通過調整隨機游走權重的方法使graph embedding的結果在網絡的同質性(homophily)和結構性(structural equivalence)中進行權衡權衡。
同質性:距離相近的節點的embedding應該盡量近似。如u與s1、s2、s3、s4。
結構性:結構相似的節點的embedding應該盡量相似。如u與s6
直觀解釋:同質性的物品可能是同品類、同屬性、或常被同一用戶購買;結構像是的物品則是各品類的爆款、個品類的最佳臭蛋商品等擁有類似趨勢的商品。
Node2vec 中從節點 t 跳轉到節點 v 后,下一步從節點 v 跳轉到周圍各點的跳轉概率:
節點v跳轉到下一節點x的概率:
w是邊vx的權重
dtx是節點t到x的距離
參數p和q共同控制著隨機游走的傾向性。
Node2vec靈活的表達了同質性和結構性的特點:圖1可以看到距離相近的節點顏色相近。圖2可以看到結構相似的節點顏色更為相近。
3. 阿里的Graph Embedding方法EGES
EGES(Enhanced Graph Embedding with Side Information)
基本思想:在DeepWalk生成的graph embedding基礎上引入補充信息。
DeepWalk缺點:單純使用用戶行為生成的物品相關圖,可以生成物品Embedding。但是遇到新加入的物品,或者沒有過多交互信息的長尾物品,推薦系統將會出現嚴重的冷啟動問題。
EGES:通過引入更多補充信息來豐富Embedding信息的來源,從而使沒有歷史行為記錄的商品獲得Embedding。具體來講,在構建物品關系圖的時候,不僅考慮了用戶行為序列生成的物品關系,也考慮了物品相同的屬性、類別等信息(這就是side information),這種圖一般也叫知識圖譜(Knowledge Graph)。
如圖:SI0、SI1…、SIn是一個物品的多個embedding向量,用胡同權重a0、a1…、an進行加權平均得到該物品的hidden representation、最后通過softmax層進行分類。
三、深度學習推薦系統中,Embedding的應用
1. 深度學習網絡中的Embedding層
在深度學習網絡中作為Embedding層,完成從高維稀疏特征向量到低維稠密特征向量的轉換。
本質:求解一個m(輸入高維稀疏向量的維度) X n(輸出稠密向量的維度)維的權重矩陣的過程。(embedding層的權重占據了整個網絡權重的絕大部分。那么訓練過程大部分的訓練時間和計算開銷都被Embedding層所占據。所以,Embedding層往往采用預訓練的方式完成。)
2. Embedding的預訓練方法
作為預訓練的Embedding特征向量,與其他特征向量連接后一同輸入深度學習網絡進行訓練。
典型的采用Embedding預訓練方法的模型是FNN
FNN:利用了FM訓練得到的物品向量,作為Embedding層的初始化權重,從而加快了整個網絡的收斂速度。在實際工程中,直接采用FM的物品向量作為Embedding特征向量輸入到后續深度學習網絡也是可行的辦法。
Embedding的本質是建立高維向量到低維向量的映射,而“映射”的方法并不局限于神經網絡,實質上可以是任何異構模型,這也是Embedding預訓練的另一大優勢,就是可以采用任何傳統降維方法,機器學習模型,深度學習網絡完成embedding的生成。
典型的例子是2013年Facebook提出的著名的GBDT+LR的模型,其中GBDT的部分本質上也是完成了一次特征轉換,可以看作是利用GBDT模型完成Embedding預訓練之后,將Embedding輸入單層神經網絡進行CTR預估的過程。
3. Embedding作為推薦系統或計算廣告系統的召回層
通過計算用戶和物品的Embedding相似度,Embedding可以直接作為推薦系統或計算廣告系統的召回層或者召回方法之一。
其中Youtube推薦系統召回層的解決方案是典型的做法:
Youtube利用深度學習網絡生成Video Embedding和User Embedding的方法:Softmax前一層的輸出就是User Embedding,Softmax后一層的輸出的列向量就是Item Embedding。(在模型部署過程中,沒有必要部署整個深度學習網絡來完成從原始特征向量到最終輸出的預測過程,只需要將User Embedding和Item Embedding存儲到線上內存數據庫,通過內積運算再排序的方法就可以得到item的排名。這大大加快了召回層的召回效率。)
學習參考文章:
萬物皆Embedding,從經典的word2vec到深度學習基本操作item2vec
深度學習中不得不學的Graph Embedding方法
Embedding在深度推薦系統中的3大應用方向
總結
以上是生活随笔為你收集整理的推荐系统中的Embedding的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android官方开发文档Trainin
- 下一篇: IntentService解析