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