日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

分享嘉賓:王修充 阿里巴巴 算法專家

編輯整理:張文君

出品平臺:DataFunTalk

 

導讀:近年來,電商呈現內容化的趨勢,以直播和短視頻為首,內容化提升了用戶體驗,增加了平臺收益。作為電商的重要流量入口,推薦算法除了應用于商品,現在也被應用于直播場景。我們將以阿里的B類電商網站1688為例,分享直播推薦相比于商品推薦所面臨的核心問題和難點。今天的分享圍繞四個方面:

  • 核心問題介紹
  • 直播排序模型迭代
  • 多目標學習
  • Debias
  • 總結

01

核心問題介紹

推薦系統從推薦的物料量級來說,分為百萬級的召回,萬級的粗排和千級的精排,本文主要聚焦于三個精排中的核心問題:

  • 異構行為的建模。在電商網站中,用戶的主要行為是在商品上的行為,直播的內容行為數據比較稀疏,因此商品行為應與直播行為結合來優化直播推薦。
  • 多目標學習,直播推薦的效能類指標和滿意度指標很多,包括用戶看到直播間的點擊率,進入直播間的停留時長,轉化率,關注率,留言率等。
  • 減少偏差,position bias與selection bias會影響模型的準確性,增強馬太效應,損害腰部、尾部主播的利益。

02

直播排序模型迭代

1688的直播推薦排序模型迭代了三次,共有四個版本。

V1:基于特征工程與機器學習的排序模型

第一版模型是一個基于推薦特征工程和機器學習的排序模型,重點在于實時特征和打點體系的建立。

① 直播排序特征

我們用到的特征包括了推薦系統中非常經典的三方面的一些特征體系,也就是item側,用戶側,用戶和item側交叉的特征體系。

  • 直播側

第一是直播的實時和歷史的統計特征,包括實時以30分鐘,3天,7天,15天為窗口的開播次數,曝光數,點擊數,CTR,CVR等特征。第二是內容側特征,包括封面圖和標題的embedding。第三是商家畫像特征,靜態信息有商家等級和店鋪交易數據,B類信息有商家工廠能力。

  • 用戶側

用戶側特征里,我們一方面采用了網站的用戶畫像,包括網站的身份,等級,來訪頻次等,另一方面采用直播畫像,包括偏好,訪問天數,下單數,RFM等特征。

  • 直播用戶交叉

用戶和直播的交叉特征,以非常好地反映用戶對直播的偏好程度。我們分別用到了用戶在item的序列和用戶在live序列在不同的時間和次數窗口上與直播間的商品,以及直播間本身的一些交叉的次數,點擊率和轉化率的特征。

② 模型與結果

第一版中,我們采用的模型是一個以CTR為目標的GBDT point-wise模型,因為我們的業務要同時兼顧轉化率,停留時長等多目標,我們也基于轉化率和停留時長 的樣本,對其做了基于樣本權重的賦權。模型上線之后,轉化率和停留時長分別增長了10%和30%

V2:深度模型時代:異構行為序列Attention模型

① Embedding+MLP深度學習時代的范式

在第一版模型得到非常好的效果驗證之后,也得益于我們在商品推薦上積累的一些深度學習的經驗,我們正式進入深度學習模型時代。第二版模型為基于異構行為序列的Attention模型。深度學習做推薦排序的范式為Embedding加MLP。其中Embedding是將用戶行為序列的ID特征以及商品的ID特征經過Embedding層變成一個稠密的向量,拼接后基于多層的全連接神經網絡做對應的任務,比如CTR任務的預估。在深度學習推薦模型的迭代中,YouTube的DNN和DIN是兩個非常經典的工作。

② 模型啟發

阿里1688直播推薦算法實踐

 

  • Youtube DNN(Recsys’ 16)

YouTube的DNN為Recsy16年的一篇文章,它首次提出加入用戶行為序列的特征。在將用戶看過看過的一些視頻的ID變為Embedding后,取Average Pooling,即平均池化,將其變為一個固定長度的向量來表征用戶行為序列建模的向量,再與一些統計特征包括播放次數等做歸一化、log處理,之后與Embedding做拼接,最后加入到MLP中做CTR預估。總之,Youtube的DNN模型首次建模了用戶的行為,但方法比較簡單粗暴,僅僅使用平均池化,用一個向量來表達用戶的一個興趣。但用戶的行為是非常多樣性的,僅用一個向量來表示不夠準確,在這樣的背景下,阿里巴巴在18年提出了DIN深度模型。

  • DIN(Deep Interest Network KDD‘18)

在對候選品做預估時,我們應該只關注與該候選品相關的用戶行為,因此我們引入推薦系統中非常重要的target attention概念。我們以候選打分的產品為Query,去跟用戶行為序列的每一個item計算一次Attention的權重。得出的結果再經過該用戶多個行為attention的sum pooling,針對不同候選品,我們將得到不同的用戶行為序列建模的表征,這樣得到的表征與品相關性更強,能預測出更高的點擊率。DIN首次引用了Target attention的概念,建模用戶對不同品的基于行為的興趣。

③ 電商直播場景:異構雙序列Attention模型

阿里1688直播推薦算法實踐

 

  • 行為異構性:商品序列、直播序列

受DIN的啟發,我們迭代了第一版深度學習模型,因為直播推薦模型是異構雙序列模型,異構雙序列指我們需要建模的用戶的行為序列在電商直播里包含兩種,一種是用戶在商品上的序列,第二種是用戶在直播上的序列。因此我們采用了兩個Target Attention的結構,分別基于用戶在Item上的序列與當前直播正在講解的商品做一個Attention。也就是說,如果用戶的Item序列與當前直播的商品匹配程度比較高,模型即可捕捉對應的興趣。第二是我們會基于用戶歷史點過直播的序列與直播間的ID做一個Attention。用戶如果歷史看的直播與當前直播間比較相似,模型也能捕捉到用戶對應的興趣,來提升預測CTR準確度。

  • 直播實時性:大量實時統計特征

第二,直播推薦里面有大量統計特征,在輸入進模型前需要繁瑣的特征歸一化,否則訓練的時候梯度就會不太穩定。我們采用了GBDT Embedding的方法。首先基于統計特征和機器學習版的數據去訓練一棵GBDT樹,然后在線上預測時,將統計特征的樣本輸入到整個GBDT樹里,即可獲得每個GBDT樹上的葉子節點的ID,再將id經過Dense層或者Max Pooling Dense層,輸入到DIN的模型里。這樣既實現了統計特征的特征歸一化,另一方面也完成了特征交叉的工作,我們也可以利用上機器學習時代所遺留下來的統計征。值得一提的是,如果將全連接層(Dense層)換成單層sigmoid,即退化為GBDT+LR模型。,這樣的異構雙序列的Attention模型得到了非常好的效果,上線后,UV 點擊率(CTR)又提升了5%,這也是我們深度學習時代的第一版模型。

④ 思考

第一版模型上線后,我們也對其有著一些思考。對于1688電商網站,大量的用戶只有關于商品(item)的行為,缺少直播相關的行為。因此用戶直播的序列的Attention結構就不會生效,只剩下用戶商品行為序列和當前直播間講解的商品做對應的Attention。而只用直播間當前講解的一個商品來表征直播的信息是不太準確的,因為直播的商品是很多變的,我們希望用歷史的商品和未來商品共同表征直播的信息,于是我們希望可以實現從用戶的商品行為序列來直接做到直播(live)的信息的激活,也就是希望能將直播和商品表征到同一向量空間,即可用商品行為序列直接預測對直播的興趣。

V3:HIN異構網絡建模

我們采用的方案為直播異構網絡 Heterogeneous Information Network (HIN) ,因為在我們的直播業務中有著“直播-用戶-商品”的豐富異構網絡。包括用戶點擊直播,用戶點擊商品,直播間播放一些商品,商品和商品,直播和直播之間也有一些相關的關系,構建了一個非常豐富的網絡,我們可以在這樣的網絡中學習到每個節點的表征,并把這些表征預訓練加入到我們的排序模型里,形成item sequence到live的Attention結構。

圖表征的方法在同構圖中有DeepWalk、Line、Node2vec、GCN、GAT,異構圖的方法主要為Metapath2vec,也是我們采用的方法。Metapath2vec的主要思想為先指定游走元路徑,基于元路徑指導圖上節點的游走,采樣出序列后,經過skip-gran生成Metapath語義下的表征,最后對表征做一個融合,得到節點的最終表征。具體來說,Metapath融合網絡建模分為四個步驟。

① 構建圖

首先第一步構建電商直播的圖。

阿里1688直播推薦算法實踐

 

② Metapath選取

第二部分是Metapath的選取,分為兩種方案:

  • 人工指定語義

例如User-Item-User(user CF)或者Item-user-item(item CF),item-user-item相當于一個用戶同時點了兩個商品,這兩個商品就會較為相似。但對于節點類型多,metapath比較長的序列,效果不好,可解釋性較差。

  • 集合中取最優

第二種方案是我們使用的方案,就是在集合中取最優的方法。首先在圖中做random walk,采樣出不同的序列,再做一些規則篩選,比如要求至少要覆蓋兩種不同的節點的類型。所以再用打分公式做一個打分,打分公式核心關注該metapath被采樣出了多少條不同的ID組合序列,條數越多說明這樣的metapath在圖中共性越高,同時我們會更關注核心節點,比如直播節點的出現次數,依此制定打分公式來選出對應三到五條metapath做采樣學習。

③ 圖游走采樣

阿里1688直播推薦算法實踐

 

第三部分為基于選出的metapath在圖中做游走采樣,再用Skip-Gram訓練出metapath語義下的Embedding。

④ Embedding融合

第四部分是構建融合多個Metapath Embedding的語義網絡,具體訓練任務為link prediction,采用負采樣loss。使用方法上,融合了一些GCN類的想法,加入一些臨界節點的信息,分別基于Average Pooling和self attention做最終融合,最后基于負采樣loss來訓練出整個融合的網絡,我們因此可以得到圖中每個節點的表征,形成item sequence到live的結構。

⑤ 結果

模型上線后在日常的CVR和停留時長分別提升了2.5%和3.9%,大促的轉化率提升了10%,這也是因為在大促中新人用戶更多,直播行為缺失。同時異構圖上的表征也可以用于直播召回,包括user2live,item2live,live2live,作為副產物提升召回效果。

V4:直播Transformer異構行為建模

V3的模型仍存在一些問題,其一它不是端到端模型,其二,T+1更新無法表征實時商品。于是我們采用的新方案:直播transformer,一方面可以讓HIN融合多個商品表征,另一方面可以引入實時直播正在講解的多個商品的信息。

① Transformer模型

阿里1688直播推薦算法實踐

 

Transformer方案中,直播表征為m個歷史核心商品加k個實時講解商品的集合序列,這m個商品是基于歷史銷售數據得出的核心商品。用戶的商品足跡為用戶行為序列。三組序列進行拼接輸入進Transformer后即可用來對任意用戶商品行為足跡到直播間核心品或實時品進行建模。Transformer層包括四部分:

  • Embedding:輸入的Embedding包括Type Embedding和Position Embedding
  • Multi head Self Attention:任意用戶足跡與直播商品表征的交叉
  • Feed Forward Layer:加強模型的非線性能力
  • Pooling Layer:直播Item表征為不定長,Average&Max pooling

② 輸入Embedding

阿里1688直播推薦算法實踐

 

再Transformer模型中,Embedding的構建十分關鍵。輸入的Embedding不僅包含了商品的ID Embedding,還包含Type和Position Embedding。

  • Type Embedding

Type Embedding表征self attention layer中每個token的類型,比如用戶序列,直播間歷史品,或是實時品。同時用戶序列的商品分為點擊,加購,下單商品三種類型。

  • Position Embedding

Position Embedding用來表征一個序列時間或者空間上的先后順序,此處我們建模了三種不同的條件:一是用戶行為序列長度,時間由近到遠,編號由0到n-1;二是直播歷史核心商品,重要程度由強到弱,編號由0到m-1;三是直播實時講解商品,當前商品為0,下一個商品為1,一直到k-1。同時,position embedding都是端到端的學習。重要性強的位置交叉,給予模型更強的信號。例如用戶某個最近的歷史行為與當前直播的商品有較強的相關性,模型信號將會更強。

③ 結果

Transformer方案使線上轉化率提升了4.8%,但整體響應時間(RT)較高,相對增加了13毫秒,仍在可接受范圍內。

小結:

阿里1688直播推薦算法實踐

 

直播用戶行為的建模如圖示,分為三部分,首先商品行為到候選直播的異構興趣,我們將其拆成了商品序列,直播歷史核心序列和直播實時商品的序列,經過transformer進行交叉建模。對于用戶直播行為序列,我們采用Target attention結構做興趣建模。對于統計特征和內容特征,我們采用GBDT Embedding變成向量后再加入模型。后續經過全連接網絡來預測CTR或多目標任務。

03

多目標學習

第二部分是關于直播的目標學習框架,首先直播是一個非常經典的多目標學習的場景,優化目標包括直播背景頁面的點擊(CTR)、進入直播間后的停留時長(Stay Time)、轉換率(CVR)、互動率(CMR)、關注率(FLR)。業務往往需要同時優化多個目標,因此多目標學習是非常重要的技術。

阿里1688直播推薦算法實踐

 

1. Baseline Model

阿里1688直播推薦算法實踐

 

多目標學習的第一版模型是Baseline模型,是基于shared bottom的工業界標配模型,多目標之間底層共享,頂層各個目標由MLP分開。相比于每個任務學習一個模型有以下三個優點:

  • 可實現多目標輔助學習,解決某些目標稀缺性
  • 相比每個task一個模型,參數量大大減少
  • 線上serving,一次計算多個目標

在1688直播實戰里,我們以CTR、CVR、Staytime為三個目標構建了第一版多目標的模型,我們也發現將單目標的模型升級為多目標模型的效果提升明顯,因為加入了很多新的label信息。在線上實驗中,UV點擊率、轉化率和停留時長分別增長了2%, 5%和17%。Shared Bottom 模型在工業界得到了廣泛應用,但仍存在一個缺點,即當需要優化的多個目標方向不一致時,效果并沒有那么好。在這樣的背景下,谷歌在18的KDD中提出了MMOE模型。

2. MMOE Model

阿里1688直播推薦算法實踐

 

MMOE的前生是Mixture-of-experts(MOE)模型,在input之后,shared bottom改進為了多個expert專家網絡和一個gate網絡,基于用戶的不同來為每個專家網絡分配權重,但這個網絡仍存在缺點,對于不同的任務,輸入還是相同的,多目標之間的輸入沒有任何區別。谷歌于是進行了下一步優化,得到MMOE網絡。MMOE網絡仍有多個專家網絡,不同的是對于每一個target都有一個gate網絡來學習不同的權重,從而每個task都可以通過各自的gate獲取差異化的輸入。同時gate網絡的參數量很小,可以說MMOE采用了一個輕量級的gate網絡即實現了多目標輸入的差異性。實驗驗證中,點擊率、轉化率、關注率和停留時長的多任務的離線指標都是正向的,線上多目標平均提升0.5%。MMOE模型也是1688目前線上服務的多目標模型。

3. 實戰分析

下面介紹一下多目標的實戰經驗。分為Label處理,Loss和線上打分三個部分。

① Label 處理

第一就是Label的處理,因為在做多目標學習時,我們往往會優化一個重要指標:用戶的停留時長,而停留時長作為數值型的回歸目標,數值波動較大,不易學習,據統計一般符合對數正態分布。因此我們通常對其取log處理,使其數值更穩定且提高回歸擬合效果。

② Loss

第二,多目標學習的loss為各個目標的loss加權求和。

阿里1688直播推薦算法實踐

 

比如上圖公式中,我們把點擊率,轉化率和關注率的交叉商損失函數利率與停留時長MSE損失函數做一個加權的求和。不同的權重會影響模型的效果,代表訓練對不同任務的側重程度。一個任務的loss權重越大,模型更新的一個梯度就越受它影響。沖著優化它的方向來去優化整個模型的參數,對于別的任務可能會有所傷害。

我們的調參經驗為:第一點將多目標收斂loss加權到同一量級,一定程度避免梯度的支配,保證多目標的同時優化。第二點提高核心任務的權重。第三點可以參考19年Recsys提出的基于帕累托最優的PE-LTR框架,以及CVPR18年的基于任務的不確定度確認loss權重。

③ 線上打分

第三,多目標模型訓練完成并上線時需要排序分數將多目標分數整合,常用方法為拍公式和權重。排序公式如圖所示主要為點擊率乘轉化率、停留時長等的加權求和。

阿里1688直播推薦算法實踐

 

權重中人工給定多組參數,再根據業務優先級選擇合適參數。

04

直播排序Debias

第三部分工作為直播排序的Debias。Position Bias是直播場景中最突出的Bias,代表著位置越靠前的直播點擊率越高,rank模型越趨向于給熱門主播打高分,進而獲得更大流量,形成feedback loop即數據循環。數據會造成兩個后果,一是模型預估不準確,用戶看到的結果都比較偏向于熱門,二是馬太效應增強,頭部主播流量進一步增強,腰尾部逐步減少,造成主播流失。直播業務背后是真人主播,考慮平臺的長期發展,更應該重視模型的debias。因此我們的目標為解決position bias,不損失效能 (CTR、CVR) 下提升個性化程度、降低馬太效應。

阿里1688直播推薦算法實踐

 

于是我們引入兩個Metrics,一是個性化指標,讓用戶間排序top-L的差異化占比越大越好。二是馬太效應指標,頭部T個主播總曝光流量占比越小越好。為了優化這兩個指標,我們嘗試了幾種不同的方法,分別為as feature/ as model/ 多塔模型方案。。

1. As feature方案

第一版方案,Position as feature,是業界經典方案,主要做法為將position當作feature加入模型,模型即可學習到不同位置的偏置,線上預測時,將position取默認值(如0),不同item在相同位置可得到對比,達到去偏的效果。線上實驗結果顯示該方法對于熱門直播去偏能力很強,但線上效能有下降。

阿里1688直播推薦算法實踐

 

2. As Model 方案

阿里1688直播推薦算法實踐

 

于是我們更新到第二版模型,position as model。訓練階段加入Biasnet,估計出每個position的bias logits。主網絡負責目標任務,例如CTR預測。兩個網絡的結果求和后經過sigmoid計算點擊率loss。該模型優點在于Biasnet學習偏置,實現了主網絡的無偏效果。

Biasnet建模中也加入了系統、場景id等特征,建模不同區塊展示樣式的bias。線上預測時我們可以摘除Biasnet,只保留無偏主網絡。線上效果符合預期,個性化提高、馬太效應降低,效能也有提升(預估更準)。待改進點為Biasnet認定每個position的bias為一個定值,無關于與用戶的相關性。

3. 多塔模型

因此,我們就提出了第三版模型,多塔位置敏感模型。該模型的出發點為建模不同相關性的直播,在不同位置的位置bias的差異性,進而優化全局的排序效果。

① 特點

我們依此建模出的多塔模型有以下特點:

  • 多塔預測多個position上的CTR
  • 每個塔樣本來自同樣位置,沒有bias;
  • 用上所有的用戶與直播的交叉特征,擬合出每個位置對應的CTR分布與CTR delta;
  • 多目標學習范式,底層共享表征
阿里1688直播推薦算法實踐

 

② 建模方法

阿里1688直播推薦算法實踐

 

在具體的建模方法中,我們將position 1~9 作為9個塔,position大于10的作為第十個塔。同時由于每條樣本只屬于一個position,我們將每個塔的loss傳入loss mask,保證只有對應的塔的梯度回傳。在線上服務中,多塔模型可以預測出商品在每一個位置的點擊率,可使用貪心選擇每個位置CTR最高的直播,構成推薦list。

③ 模型優化探索

同時我們對于多塔模型也有一些優化和探索,首先它是一個多目標范式,因此可以做一些多目標優化。第二就是我們也希望強化建模不同塔對應position的CTR分布(如KL loss)。第三除貪心法外,我們也可以使用list-wise或者組合優化的推薦列表生成。

④ 1688直播線上效果與原因

CVR增加了3.6%,staytime增加了3%,但個性化和馬太效應持平甚至負向,不符合預期。分析后原因有以下三點:

  • 數據分布

多塔模型消除了position bias,但引入更嚴重的selection bias,頭部訓練數據多為熱門主播,冷門主播訓練不夠充分,點擊率不夠高。可以考慮引入隨機樣本、樣本單邊采樣等方法解決。

  • 召回不豐富

直播場景推薦物料較少,召回個性化較弱, 而對于短視頻/商品推薦等召回豐富的場景,多塔模型預期效果更好。

  • 展示Bias
阿里1688直播推薦算法實踐

 

直播Feeds卡片會展示在線人數、熱度等,用戶更傾向于點熱度高的,這也加重了直播域的Selection bias。

然后目前我們仍致力于解決這些問題,還在做一些技術的迭代。

05

總結

今天分享了基于用戶直播易構行為建模的排序模型迭代,線上采用的是Target Attention加Transformer的方案,多目標學習的shared bottom和MMOE模型,和直播排序Debias的As Feature,As Model,多塔模型。

阿里1688直播推薦算法實踐

 

我們的最終模型如上圖所示。在用戶行為建模層,我們基于transformer建模item序列的異構興趣。對于用戶的直播序列,我們采用target attention。對于其他特征,我們采用GBDT encoding。將三個結果進行Embedding和拼接,傳入頂層二分模型。一部分是無偏的CTR預估模型,在訓練中加入Biasnet并在線上預估時去掉達到debias效果。另一部分針對點擊后目標,包括停留時長、轉化率等,使用MMOE做多目標學習,同時我們也會將CTR任務加入模型作為輔助模型,但是線上并不使用。最后融合多個目標結果得出排序結果。以上就是分享的全部內容。

今天的分享就到這里,謝謝大家。

分享到:
標簽:算法 推薦
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定