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