深度學(xué)習(xí)在阿里B2B電商推薦系統(tǒng)中的實踐
掃描二維碼
隨時隨地手機看文章
導(dǎo)讀: 推薦導(dǎo)購場景在電商中是重要的滿足用戶"逛"和"買"的場景,本次分享我們聚焦深度學(xué)習(xí)在阿里B2B電商 ( 1688 ) 推薦系統(tǒng)中的應(yīng)用,其中包括商品推薦中召回 ( 多興趣Deep Match ),排序 ( 自研DMR ) 的相關(guān)工作,以及在新興的互動內(nèi)容場景 ( 直播、短視頻 ) 中通過異構(gòu)網(wǎng)絡(luò)來解決異構(gòu)信息的精準匹配問題。
本文分享大綱如下:
-
發(fā)展歷史
-
商品召回:Deep Match
-
商品排序:DIN-DIEN, DMR
-
內(nèi)容推薦:直播排序
▌發(fā)展歷史
1. 2017年
從17年開始,我們才更加的專注于個性化的分發(fā),不管是搜索還是推薦。如果是做推薦的同學(xué)們也知道,一開始,我們要做召回、排序、業(yè)務(wù)的定制以及類似的一些工作。所以我們在17年的時候,主要是借助阿里之前淘系的基建,比如SWING & E-TREC這些I2I的方法,這其實就是協(xié)同過濾的升級版本,然后去進行一個基本的召回方式,以及用LR到GBDT去做一個最初始的CTR預(yù)估。然后到年底的時候,我們從LR到GBDT轉(zhuǎn)換到了W&DL,因為當(dāng)時,大概是16年吧,谷歌的W&DL的論文出來后,然后17年在阿里有一個比較大的場景的一些實踐??赡苡行┽槍I(yè)務(wù)定制的是我們的Unbalance I2I,這個I2I的意思呢,是我們總有一些業(yè)務(wù)是一個小的商品池,它是一個比較特定的它不是一個全域可推薦的范圍,當(dāng)我們進行一個大的商品觸發(fā)的時候,就是定向的往這個小的商品池里觸發(fā)。
2. 2018年
18年深度學(xué)習(xí)在業(yè)界越來越火了,所以我們順著這個潮流,在排序當(dāng)中是走到了DIN和DIEN,這兩個工作是阿里媽媽北京的團隊做的在廣告上的一個CTR的模型的排序,以及順著Youtube的Deep Match的工作我們也做了我們這邊的Deep Match,以及一些機制的構(gòu)建,補足了之前我們只有CTR模型沒有CVR模型的一個短板,一些更“標題黨”的商品會往下落。
3. 2019年
在最近的一年,我們在召回上去進行了一個多興趣點的Deep Match的嘗試,在粗排上從GBDT走到了雙塔,以及在排序當(dāng)中,之前是借鑒公司以及業(yè)界的一些先進的經(jīng)驗,我們在這邊有了一些自己的更多的一些創(chuàng)新的工作,比如說在CTR中有一些DMR,等一下會詳細的講到(AAAI 2020),還有就是在CVR模型當(dāng)中走到了ESMM+MMOE這樣子的模型。最近特別火的就是直播了,以及直播這種內(nèi)容化的一些推薦。
▌商品召回
大家都知道,一開始做召回的話主要就是協(xié)同過濾類的方法,例如比較經(jīng)典的I2I召回和U2I召回,1688使用過的是Deep Match U2I召回。
1. I2I召回
-
采用了SWING/E-TREC 等啟發(fā)式方法,效果好,普適性高
-
因為有I2I的關(guān)系,用戶要是有新的行為馬上能進行一個觸發(fā),可以進行一個實時的召回
-
有解釋性的保障
2. U2I召回
-
采用了優(yōu)化的方法,通常比啟發(fā)式方法靠譜
-
主要是由User ID來進行一個embedding的生成,新的行為進來后比較難進行實時更新(實時效率低可以進行彌補)
-
可解釋性也比較差(并沒有辦法解決)
3. Deep Match U2I召回
16年YouTube提出的Deep Match的方法主要是解決了之前召回效率低的問題,因為這種方法是把用戶的歷史序列以及他對應(yīng)的user profile進行一個embedding之后,然后通過MLP得到一個用戶的表征,這個表征由于是實時生成,用戶的足跡在不斷的往里面加,那么這個效率是比較高的。Deep Match模型可以更多的用到一些商品側(cè)的自身的一些行為、類目、屬性的信息,從而能更好的構(gòu)建模型。但是它的可解釋性較差,另外召回是bad case還是驚喜是一個各花入各眼的過程,需要線上的ABtest給出答案。
在Youtube Deep Match的基礎(chǔ)上,我們基于序列上下文的Attention,構(gòu)建用戶表征,即通過時間衰減/行為類別/停留時間等信息對用戶序列進行建模。
經(jīng)過線上測試uv點擊率 +0.92%,人均點擊次數(shù) +9.81%,發(fā)現(xiàn)性曝光占比 +8.04%。
Practical Lessons:
-
因為是一個match的過程,所以我們選擇了隨機負采樣作為負樣本
-
Position Embedding很有效,用戶行為的遠近是比較重要的
-
Item Feature Sequence能有效增加信息量
迭代方向:
-
用戶多興趣點提取
-
雙塔結(jié)構(gòu),利用target的side information輔助
▌商品排序
1. DIN
17年的時候,我們演進到了WDL的過程,然后18年的時候因為阿里媽媽在KDD18的時候發(fā)表了DIN的那篇paper,同時也在公司內(nèi)部做了一些介紹,我們就順著這個潮流從WDL走到了純的用戶向量表征再接MLP的范式。
DIN是顯性的用戶表征學(xué)習(xí),對Behavior和Candidate引入了Attention使得用戶表征隨著候選的不同而發(fā)生變化。
線上效果 ( baseline: WDL ):
-
CUN:CTR +5% ,CVR +11%
-
1688: CTR +4% , CVR + 1%
關(guān)于Attention:
-
Concat( keys, querys, keys * querys, keys - querys) + Relu + MLP
-
運算量 = 400 候選 * 50 sequence + 400 MLP
-
線上DIN在400個候選RTP打分的響應(yīng)時間是 15ms
DIN沒有考慮的信息:
用戶長期興趣偏好 ( 廣告區(qū)別于推薦 ) 詞袋模型, 序列不敏感(對最近的行為無額外偏好)沒利用 raw feature
2. LSRMM
基于DIN存在的一些問題,,我們做了一些改進,提出了LSRMM ( Long Short-Range Mixture Model ),該模型能夠去抽取一個長期的用戶偏好。這個興趣偏好不是整個end to end學(xué)出來的,而是直接通過離線的方式統(tǒng)計出用戶在各個時間是否都對于一個特定的類別的東西有一個偏好。比如說像我喜歡羽毛球,那在候選中會額外的出現(xiàn)羽毛球。
LSRMM特點:
-
長期興趣偏好:長期興趣提取后,縮減候選,形成單獨序列
-
行為時序信息利用:近期(session)短序列截取,形成單獨序列
-
利用raw feature信息: GBDT Embedding 處理統(tǒng)計類raw feature
線上效果:
CUN CTR +1.57%,CVR +3.32% ( baseline:DIN )
3. DIEN
當(dāng)我們知道DIN和DIEN的時候,這兩篇paper都引出來了,但是為什么我們沒有直接上DIEN而是用了DIN呢,主要原因就在于DIEN在用戶表征里有兩層GRU的結(jié)構(gòu),用GRU跑起來是一個串行的結(jié)構(gòu),它不能并行。我們預(yù)估起來它這個耗時是比較厲害的,存在一定的上線的工程風(fēng)險,所以我們在這邊就是先上的DIN再上的DIEN。
模型演化過程:
① GRU + Attention + GRU
② GRU + Attention + ATGRU
③ GRU + Attention + ATGRU + Auxiliary Loss
Practical Lessons—rt降低之路 ( 1000個item打分時長 )
這是我們做的一些優(yōu)化以改進DIEN的效率,原版DIEN ( 350ms ):
① user feature只傳一次節(jié)省通信開銷 ( 340ms )
② 第一層RNN只跑一次 ( 250ms )
③ Embedding size降至32 ( 140ms ),( 這個會影響效果 )
④ 簡化attention后 ( 140ms )
⑤ 分batch并發(fā)請求rtp ( 100ms以內(nèi) )
4. DMR:Deep Match to Rank
DMR是我們最新發(fā)表在AAAI2020上的論文 ( oral ),在Ranking中融合了Matching的思想,建模u2i相關(guān)性。DIN和DIEN都是聚焦用戶興趣的建模,而DMR又往前走了一步,對u2i相關(guān)性進行建模,這個相關(guān)性可以直接衡量用戶對商品的偏好程度,從而提升模型的效果。這個u2i相關(guān)性是無法通過統(tǒng)計的方法得到的,因為通常不會給用戶推薦重復(fù)的商品;也無法從召回得到,因為通過是有多路召回,每路召回的相關(guān)性不能相互比較。
DMR提供了一個統(tǒng)一的任意u2i相關(guān)性的建模方法。DMR中采用兩個子網(wǎng)絡(luò)建模u2i相關(guān)性,其中User-to-Item Network直接通過user和item的向量內(nèi)積建模u2i相關(guān)性,并用一個輔助的deepmatch任務(wù)聯(lián)合訓(xùn)練,促使更大的內(nèi)積表征更強的相關(guān)性,從而提升效果。Item-to-item網(wǎng)絡(luò)采用間接的方式建模u2i相關(guān)性,類似于DIN的網(wǎng)絡(luò),我們先做一個target attention,這個attention權(quán)重可以理解成i2i權(quán)重,再將權(quán)重求和得到第二種u2i相關(guān)性。DMR提供了一個u2i相關(guān)性建模的范式,可以很方便的加入到其他深度模型中。
DMR的實驗:
線上效果 ( DMR vs DIN ):
① uv-ctr相對提升1.23%
② 人均點擊次數(shù)相對提升9.13%
③ pv-ctr相對提升3.61%
④ L-O轉(zhuǎn)化相對提升1.81%
▌內(nèi)容推薦
1688團隊從2019年開始大規(guī)模的去做直播業(yè)務(wù),最近直播有多火呢,連法院拍賣這個事情都開始上直播了。
1. 1688直播推薦的業(yè)務(wù)背景
-
電商內(nèi)容化重要?向, 提升?戶時長與粘性
-
B類采購批發(fā),小商家為主, 主要類目為?裝/童裝/配飾/?品等
-
轉(zhuǎn)化率?,目前頻道?UV轉(zhuǎn)化率17%, 全導(dǎo)購場景第?
-
核?考察指標為買家數(shù)(轉(zhuǎn)化率) , 同時關(guān)注點擊與?戶時?
2. 直播在1688上面臨的一些特色的問題
第一個呢是只用排序就行了的場景,因為每一個時段同場次在線的直播數(shù)還不過1000,不過1000的話那未必有一個召回的訴求,給1000個打個分我們的模型性能還是罩得住的,所以我們對召回訴求就不強。
第二個,直播是一個多目標學(xué)習(xí)的過程,在哪里建模也都是一個多目標的過程,比如既要點擊率又要在觀看時間長,又要轉(zhuǎn)化率高,還有些粉絲親密度的問題。
還有個問題是,直播這個東西,本來我們是推商品的,這邊又開始推直播了,我們就想直播和商品之間是一個什么樣的關(guān)系,是不是一個商品很不錯,它對應(yīng)的一個老板做直播就很不錯,其實答案是否定的。就是商品和商家的直播之間還是不一樣的,有很多商家日常商品經(jīng)營做的好的,未必就是直播做的好的。所以在這里它是一個內(nèi)容的異構(gòu)網(wǎng)絡(luò)。
接下來我們講介紹整體的算法迭代流程。
3. 直播排序迭代V1: 特征工程+機器學(xué)習(xí)
業(yè)務(wù)初期選擇了特征?程 + 機器學(xué)習(xí) LR/GBDT,核心在于實時數(shù)據(jù)、實時交叉特征打點?志的建設(shè),在特征?程上選取了經(jīng)典推薦的user, item(live), user X item三個維度,這里相比于之前排權(quán)重,UV和轉(zhuǎn)換率都有一個比較明顯的提升。
4. 直播算法迭代V2:深度學(xué)習(xí)雙序列模型 + 多目標學(xué)習(xí) (Multi Seq MTL Model)
我們通過拆解用戶行為軌跡當(dāng)中,直播和商品作為兩條不同的行為序列去進行分別的Attention,直播中每一個賣家都在貼一個正在介紹的商品,所以會有一個Candidate Item。
此外,由于DNN類模型難以處理Scale不一的實時統(tǒng)計特征,我們采取了DNN + GBDT embedding的模型結(jié)構(gòu),實時統(tǒng)計特征預(yù)訓(xùn)練GBDT模型,線上實時獲取多顆葉子節(jié)點的Multi-Hot encoding當(dāng)做表征,再連接Dense層映射為表征向量。相比于V1版本離線測試顯示CTR 和 CVR AUC均有增長,線上測試UV CTR + 2.2%, CVR+ 5.2%,AST +17.6%
5. 直播算法迭代V3: Item到Live異構(gòu)行為激活 ( HIN Attention )
動機:V2中?戶行為都為同構(gòu)的, 即item-> Item Att, Live-> Live Att,但對于?多數(shù)?戶, 尤其是直播新?僅有Item?為的?戶,最重要的是基于?戶商品行為到直播的 Item-> Live 的異構(gòu)推薦排序
V3:引?一路 Candidate Live到Item Seq的興趣提取單元, 并在Live和Item表征中嘗試了幾種?法:
-
End2End Share embedding, 與V2模型中的其他部分live和item embedding共享, 共同訓(xùn)練
-
End2End not share embedding,為該路HIN Attention單獨聲明和訓(xùn)練embedding
-
HIN Pre-train, 基于Live 2Item的邊關(guān)系, User 2 Item和User 2 Live的異構(gòu)網(wǎng)絡(luò), 集合HIN Metapath2vec的方案預(yù)訓(xùn)練embedding, 預(yù)期可融?更多信息
效果:當(dāng)前上線:End2End not share CVR +2.47%,停留時?AST + 3.92%
▌Future
這部分是我們預(yù)期在未來進行的工作
粗排網(wǎng)絡(luò):
① 同時開播業(yè)務(wù)體量達到?定量級后, 基于雙塔向量召回的粗排模型
多目標學(xué)習(xí)MTL:
① MMOE結(jié)構(gòu),多個Expert Net建模不同目標,多業(yè)務(wù)場景已驗證有效
② 多目標級聯(lián)的Bayesian Net結(jié)構(gòu)優(yōu)化
異構(gòu)網(wǎng)絡(luò)HIN:
① 引?更多關(guān)系(如粉絲關(guān)注) 的預(yù)訓(xùn)練向量,也可?于召回和商業(yè)化的商品分銷
② 端到端的HIN2Rec建模, 如直接在模型中直播間本次講解的多個商品去實時表征直播
內(nèi)容理解:
① 業(yè)界正在探索的?向, 還沒有很成熟的落地
特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:
![]()
長按訂閱更多精彩▼
![]()
如有收獲,點個在看,誠摯感謝
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!