論文:
論文地址:https://arxiv.org/abs/1803.02349
論文題目:《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》
一 产弹、背景
我們在前面的airbnb那篇文章里面詳細(xì)介紹了airbnb如何將list(房源)轉(zhuǎn)化為低維的embedding娇钱,并運用這些得到的embedding運用到搜索任務(wù)的排序模型中哗咆,取得了不錯的效果较坛。在很多召回任務(wù)中拙已,embedding被當(dāng)作一個非常重要的特征去使用澈蝙,例如拔鹰,在youtube那邊推薦系統(tǒng)論文中占卧,將用戶的embedding和視頻的embedding訓(xùn)練出來后就可以直接計算相似度了甘苍,并用相似度計算的結(jié)果進(jìn)行召回尝蠕。
在淘寶的推薦中,主要面臨著三個技術(shù)挑戰(zhàn)载庭,分別是可擴(kuò)展性(scalability)看彼、稀疏性(sparsity)、冷啟動問題(cold start)囚聚。淘寶商城中的物品數(shù)量是十億級別的靖榕,這么稀疏的情況下,迫切需要將這些高維稀疏的item轉(zhuǎn)化為低維稠密低向量顽铸。同時茁计,每天在淘寶上新的物品也是很多的,如果解決冷啟動問題也是關(guān)鍵跋破◆さ恚基于以上考慮,淘寶提出了一種圖嵌入(graph embedding)的方法來解決上面的三個問題毒返。
在淘寶的推薦中租幕,面臨以下三個問題:
可擴(kuò)展性(scalability):一些現(xiàn)有的推薦系統(tǒng)方法,在小規(guī)模數(shù)據(jù)集上效果很好拧簸,但是在想淘寶這樣的擁有十億用戶和二十億商品的數(shù)據(jù)集上劲绪,表現(xiàn)得并不好。
稀疏性(sparsity):用戶僅與非常少的商品有過交互行為盆赤,這樣的話很難精確訓(xùn)練一個推薦模型贾富,也就是正負(fù)樣本的比例過大。
冷啟動(cold start):在淘寶中牺六,每個小時都有百萬級別的新的商品上線颤枪,這些商品沒有過用戶行為,預(yù)測用戶對這些商品的偏好是十分具有挑戰(zhàn)性的淑际。
為了解決上面的這些問題畏纲,淘寶也采用了業(yè)界常用的兩階段框架扇住,第一階段稱為匹配階段,也可以叫做召回階段盗胀,從大規(guī)模的商品集中召回一個比較小的候選集艘蹋。第二階段是排序階段,對召回的候選集進(jìn)行精確排序票灰,排序模型是一個深度神經(jīng)網(wǎng)絡(luò)模型女阀。由于兩個階段的目標(biāo)是不同的,從而導(dǎo)致了單獨的技術(shù)解決方案屑迂。
前面提到了一般embedding都是運用在召回階段的浸策,youtube那篇文章就是向量召回的典范,因此本文的embedding策略也是著重于如何解決召回階段的挑戰(zhàn)屈糊,其中的核心任務(wù)是根據(jù)用戶的行為計算所有物品之間的成對相似度的榛。當(dāng)然琼了,有了物品之間的相似度逻锐,我們就可以進(jìn)一步的得到召回的候選集并進(jìn)行排序了。在以往雕薪,我們可以通過CF(協(xié)同過濾)的方法計算物品之間的相似度昧诱,回一下CF方法,我們通過jaccard方法計算了物品之間的相似度所袁,并且根據(jù)這個相似度進(jìn)行召回盏档。但是協(xié)同過濾僅僅考慮了商品在交互矩陣中的共現(xiàn)性,相似度矩陣的計算要不斷的進(jìn)行更新燥爷,這也是一個比較棘手的問題蜈亩。
除了CF方法外,還有運用圖的隨機(jī)游走策略來計算相似度前翎。在之前的工作中稚配,使用物品圖中的隨機(jī)游走策略,我們可以捕獲項目之間的高階相似性港华。因此道川,它優(yōu)于基于CF的方法。但是立宜,要得到幾乎沒有交互作用甚至沒有交互作用的物品的準(zhǔn)確embedding仍然是一個挑戰(zhàn)冒萄。(我們將在下一篇文章中詳細(xì)介紹隨機(jī)游走,node2vec等embedding策略)橙数。
因此尊流,本文提出使用基于side information的圖嵌入學(xué)習(xí)方法,稱作Graph Embedding with Side information (GES)灯帮。這里的side information你可以理解為輔助信息崖技,比如一個商品的品牌蜘澜、店鋪名、類別等等响疚。使用side information來學(xué)習(xí)商品的embedding的話鄙信,同一個品牌或者類別的商品應(yīng)當(dāng)更相似。但是在淘寶中忿晕,有數(shù)以百計的side information装诡,這些side information對于商品向量的貢獻(xiàn)程度是不同的〖危考慮不同的side information對最終的item embedding的不同影響鸦采,這種方法稱作Enhanced Graph Embedding with Side information (EGES)。
二 咕幻、模型結(jié)構(gòu)
在第一章里面我們提到了GES和EGES渔伯,為了作為對比還介紹了一種BGE方法,所以總共需要介紹三種方法肄程,分別是Base Graph Embedding (BGE)锣吼、Graph Embedding with Side information (GES)和Enhanced Graph Embedding with Side information (EGES)。
2.1 Base Graph Embedding (BGE)
BGE方法可以參考上面這張圖蓝厌,通過用戶的點擊序列構(gòu)建item graph玄叠,并用random walk的方法構(gòu)建序列,然后用skip-gram的方法訓(xùn)練出item embedding拓提。
此外读恃,從用戶的行為中抽取出序列表示,我們需要注意到幾點關(guān)鍵的地方代态。
一個是寺惫,如果使用用戶的全部點擊序列,那么對于這么多item蹦疑,計算和空間成本將變得十分昂貴西雀。
另一個是,用戶的興趣往往會隨著時間而變化必尼。 因此實際上蒋搜,我們設(shè)置了一個時間窗口,并且僅在該窗口內(nèi)選擇用戶的行為判莉,這稱為基于會話的用戶行為豆挽。 根據(jù)經(jīng)驗,時間窗口的持續(xù)時間為一小時券盅。這個跟我們之前session切分方式是一樣的帮哈,切分的時間間隔一般是30min或者1h這樣。就如同上面這張圖中的u2锰镀,我們的session就切分為BE和DEF兩部分娘侍。
根據(jù)上一步咖刃,我們得到了每個用戶的session序列,接下來就是用這些session構(gòu)建帶權(quán)有向圖了憾筏。如圖中的B->E出現(xiàn)了一次嚎杨,那么就會有一條從B指向E的帶權(quán)邊,同時邊的權(quán)重為1氧腰。注意到枫浙,這里是用所有用戶的session匯總起來得到一個有向帶權(quán)圖,并不是一個用戶對應(yīng)于一張圖古拴。
在實際應(yīng)用中箩帚,需要對一些噪聲信息進(jìn)行過濾,主要有:
1)點擊之后用戶停留時間小于1s黄痪,這可能是用戶的無意點擊紧帕,需要過濾。
2)太過活躍的用戶進(jìn)行過濾桅打,比如三個月內(nèi)購買了1000件以上的商品是嗜,點擊了3500個以上的商品。這是為了避免活躍用戶對整個圖造成過大對影響油额。
3)同一個ID叠纷,但是發(fā)生變化的商品需要過濾。
構(gòu)建完帶權(quán)有向圖后潦嘶,我們采用random walk的方法構(gòu)建skip-gram所需要的“句子”。
其中是item i 到item j的權(quán)重崇众,P(vj | vi)是轉(zhuǎn)移的概率掂僵,N+是vi指向的所有item。
這樣顷歌,我們就得到了要訓(xùn)練的序列:
接下來就是我們經(jīng)典的skip-gram訓(xùn)練embedding的方法了:
這里應(yīng)該是maxmize吧锰蓬,極大似然法,讓整個概率最大眯漩,后面的t是負(fù)采樣得到的負(fù)樣本芹扭。
2.2 Graph Embedding with Side information (GES)
上面的BGE方法,可以較好的學(xué)習(xí)到item embedding赦抖,但是冷啟動問題無法很好的解決舱卡。基于此队萤,提出了Graph Embedding with Side information方法轮锥。在電子商務(wù)中,side information是指商品的類別要尔,商店舍杜,價格等新娜,它在排序階段被廣泛用作關(guān)鍵特征,而在召回階段卻很少應(yīng)用既绩。我們可以通過在圖嵌入中加入輔助信息來緩解冷啟動問題概龄。例如,優(yōu)衣庫(同一家商店)的兩個帽衫(相同類別)可能看起來相似饲握,并且喜歡尼康鏡頭的人也可能對佳能相機(jī)(相似類別和相似品牌)感興趣旁钧。這意味著具有相似輔助信息的物品在嵌入空間中應(yīng)該更靠近。
為了與之前的item embedding區(qū)分開互拾,在加入side information之后歪今,我們稱得到的embedding為商品的aggregated embeddings。商品v的aggregated embeddings計作Hv颜矿。aggregated embeddings的計算公式如下:
其中寄猩,是item v的item embedding,是第s種side information的embedding骑疆,也就是將這些embedding作avg操作田篇,然后得到aggregated embedding。
2.3 Enhanced Graph Embedding with Side information (EGES)
在GES中箍铭,aggregated embedding的計算就是所有的embedding簡單的作平均泊柬,但是從現(xiàn)實中來看,每個side information 的embedding的重要性是不同的诈火,比如商品的品牌就應(yīng)該有更大的權(quán)重兽赁,比如一個用戶喜歡購買蘋果的產(chǎn)品,手機(jī)是iphone冷守,電腦是mac刀崖,自然就能想到品牌應(yīng)該占據(jù)更大的權(quán)重。
因此拍摇,需要對上面的公式進(jìn)行改進(jìn)亮钦,改為帶權(quán)重的avg:
其中,是第j個side information的embedding的權(quán)重充活,但是我們?yōu)榱俗屆總€side information都有貢獻(xiàn)蜂莉,就取了e的指數(shù)次方,其實就是softmax來計算權(quán)重混卵。
2.4 GES和EGES的訓(xùn)練方法
直接來看這個圖映穗,除了輸入部分跟基本的skip-gram不一樣,輸出跟skip-gram是一樣的淮菠,所以我們來解釋一下輸入部分男公。
輸入部分就是我們之前說的帶權(quán)avg操作,但是權(quán)重參數(shù)a是可學(xué)習(xí)的參數(shù),這里可能論文提出的比較早枢赔,或許這里可以使用attention來操作一下澄阳。
損失函數(shù):
其中,v是中心item踏拜,u是v的上下文的item碎赢,H跟Z分別代表他們的embedding,y是label速梗。
前面說了a是學(xué)習(xí)的參數(shù)肮塞,主要是來源于論文中的一個公式:
這里可以看到a是需要學(xué)習(xí)的參數(shù)。
同樣的其他的W的參數(shù)也是通過反向傳播學(xué)習(xí)到:
三 姻锁、實驗結(jié)果和冷啟動問題
3.1 實驗結(jié)果
當(dāng)然枕赵,肯定是EGES效果最好。
3.2 冷啟動問題
對于新加入的商品位隶,我們使用其side information對應(yīng)的embedding的均值來代替它的embedding拷窜,這樣做的效果如下:
可以看到對于新加入的物品,用這種方法來代替它的embedding效果還是不錯的涧黄。
side information的權(quán)重可視化:
可以看到篮昧,這種針對每一個item,本身的side information的權(quán)重都是不一樣的笋妥,這也是因為權(quán)重參數(shù)a是訓(xùn)練出來的效果懊昨。