阿里1688直播推薦算法實踐

{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"近年來,電商呈現內容化的趨勢,以直播和短視頻爲首,內容化提升了用戶體驗,增加了平臺收益。作爲電商的重要流量入口,推薦算法除了應用於商品,現在也被應用於直播場景。我們將以阿里的B類電商網站1688爲例,分享直播推薦相比於商品推薦所面臨的核心問題和難點。今天的分享圍繞四個方面:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"核心問題介紹"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"直播排序模型迭代"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多目標學習"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Debias"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"總結"}]}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"核心問題介紹"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"推薦系統從推薦的物料量級來說,分爲百萬級的召回,萬級的粗排和千級的精排,本文主要聚焦於三個精排中的核心問題:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"異構行爲的建模。在電商網站中,用戶的主要行爲是在商品上的行爲,直播的內容行爲數據比較稀疏,因此商品行爲應與直播行爲結合來優化直播推薦。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多目標學習,直播推薦的效能類指標和滿意度指標很多,包括用戶看到直播間的點擊率,進入直播間的停留時長,轉化率,關注率,留言率等。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"減少偏差,position bias與selection bias會影響模型的準確性,增強馬太效應,損害腰部、尾部主播的利益。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"直播排序模型迭代"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"1688的直播推薦排序模型迭代了三次,共有四個版本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"V1:基於特徵工程與機器學習的排序模型"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一版模型是一個基於推薦特徵工程和機器學習的排序模型,重點在於實時特徵和打點體系的建立。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① 直播排序特徵"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們用到的特徵包括了推薦系統中非常經典的三方面的一些特徵體系,也就是item側,用戶側,用戶和item側交叉的特徵體系。"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"直播側"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一是直播的實時和歷史的統計特徵,包括實時以30分鐘,3天,7天,15天爲窗口的開播次數,曝光數,點擊數,CTR,CVR等特徵。第二是內容側特徵,包括封面圖和標題的embedding。第三是商家畫像特徵,靜態信息有商家等級和店鋪交易數據,B類信息有商家工廠能力。"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶側"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶側特徵裏,我們一方面採用了網站的用戶畫像,包括網站的身份,等級,來訪頻次等,另一方面採用直播畫像,包括偏好,訪問天數,下單數,RFM等特徵。"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"直播用戶交叉"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶和直播的交叉特徵,以非常好地反映用戶對直播的偏好程度。我們分別用到了用戶在item的序列和用戶在live序列在不同的時間和次數窗口上與直播間的商品,以及直播間本身的一些交叉的次數,點擊率和轉化率的特徵。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② 模型與結果"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一版中,我們採用的模型是一個以CTR爲目標的GBDT point-wise模型,因爲我們的業務要同時兼顧轉化率,停留時長等多目標,我們也基於轉化率和停留時長 的樣本,對其做了基於樣本權重的賦權。模型上線之後,轉化率和停留時長分別增長了10%和30%"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"V2:深度模型時代:異構行爲序列Attention模型"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① Embedding+MLP深度學習時代的範式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在第一版模型得到非常好的效果驗證之後,也得益於我們在商品推薦上積累的一些深度學習的經驗,我們正式進入深度學習模型時代。第二版模型爲基於異構行爲序列的Attention模型。深度學習做推薦排序的範式爲Embedding加MLP。其中Embedding是將用戶行爲序列的ID特徵以及商品的ID特徵經過Embedding層變成一個稠密的向量,拼接後基於多層的全連接神經網絡做對應的任務,比如CTR任務的預估。在深度學習推薦模型的迭代中,YouTube的DNN和DIN是兩個非常經典的工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② 模型啓發"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/c5\/c5c3f71fc8aa79d6f009568ab611c7c1.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Youtube DNN(Recsys’ 16)"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"YouTube的DNN爲Recsy16年的一篇文章,它首次提出加入用戶行爲序列的特徵。在將用戶看過看過的一些視頻的ID變爲Embedding後,取Average Pooling,即平均池化,將其變爲一個固定長度的向量來表徵用戶行爲序列建模的向量,再與一些統計特徵包括播放次數等做歸一化、log處理,之後與Embedding做拼接,最後加入到MLP中做CTR預估。總之,Youtube的DNN模型首次建模了用戶的行爲,但方法比較簡單粗暴,僅僅使用平均池化,用一個向量來表達用戶的一個興趣。但用戶的行爲是非常多樣性的,僅用一個向量來表示不夠準確,在這樣的背景下,阿里巴巴在18年提出了DIN深度模型。"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"DIN(Deep Interest Network KDD‘18)"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在對候選品做預估時,我們應該只關注與該候選品相關的用戶行爲,因此我們引入推薦系統中非常重要的target attention概念。我們以候選打分的產品爲Query,去跟用戶行爲序列的每一個item計算一次Attention的權重。得出的結果再經過該用戶多個行爲attention的sum pooling,針對不同候選品,我們將得到不同的用戶行爲序列建模的表徵,這樣得到的表徵與品相關性更強,能預測出更高的點擊率。DIN首次引用了Target attention的概念,建模用戶對不同品的基於行爲的興趣。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"③ 電商直播場景:異構雙序列Attention模型"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/53\/533e2248536f8a1b2ca2eb953b939084.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"行爲異構性:商品序列、直播序列"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"受DIN的啓發,我們迭代了第一版深度學習模型,因爲直播推薦模型是異構雙序列模型,異構雙序列指我們需要建模的用戶的行爲序列在電商直播裏包含兩種,一種是用戶在商品上的序列,第二種是用戶在直播上的序列。因此我們採用了兩個Target Attention的結構,分別基於用戶在Item上的序列與當前直播正在講解的商品做一個Attention。也就是說,如果用戶的Item序列與當前直播的商品匹配程度比較高,模型即可捕捉對應的興趣。第二是我們會基於用戶歷史點過直播的序列與直播間的ID做一個Attention。用戶如果歷史看的直播與當前直播間比較相似,模型也能捕捉到用戶對應的興趣,來提升預測CTR準確度。"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"直播實時性:大量實時統計特徵"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二,直播推薦裏面有大量統計特徵,在輸入進模型前需要繁瑣的特徵歸一化,否則訓練的時候梯度就會不太穩定。我們採用了GBDT Embedding的方法。首先基於統計特徵和機器學習版的數據去訓練一棵GBDT樹,然後在線上預測時,將統計特徵的樣本輸入到整個GBDT樹裏,即可獲得每個GBDT樹上的葉子節點的ID,再將id經過Dense層或者Max Pooling Dense層,輸入到DIN的模型裏。這樣既實現了統計特徵的特徵歸一化,另一方面也完成了特徵交叉的工作,我們也可以利用上機器學習時代所遺留下來的統計徵。值得一提的是,如果將全連接層(Dense層)換成單層sigmoid,即退化爲GBDT+LR模型。,這樣的異構雙序列的Attention模型得到了非常好的效果,上線後,UV 點擊率(CTR)又提升了5%,這也是我們深度學習時代的第一版模型。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"④ 思考"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一版模型上線後,我們也對其有着一些思考。對於1688電商網站,大量的用戶只有關於商品(item)的行爲,缺少直播相關的行爲。因此用戶直播的序列的Attention結構就不會生效,只剩下用戶商品行爲序列和當前直播間講解的商品做對應的Attention。而只用直播間當前講解的一個商品來表徵直播的信息是不太準確的,因爲直播的商品是很多變的,我們希望用歷史的商品和未來商品共同表徵直播的信息,於是我們希望可以實現從用戶的商品行爲序列來直接做到直播(live)的信息的激活,也就是希望能將直播和商品表徵到同一向量空間,即可用商品行爲序列直接預測對直播的興趣。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"V3:HIN異構網絡建模"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們採用的方案爲直播異構網絡 Heterogeneous Information Network (HIN) ,因爲在我們的直播業務中有着“直播-用戶-商品”的豐富異構網絡。包括用戶點擊直播,用戶點擊商品,直播間播放一些商品,商品和商品,直播和直播之間也有一些相關的關係,構建了一個非常豐富的網絡,我們可以在這樣的網絡中學習到每個節點的表徵,並把這些表徵預訓練加入到我們的排序模型裏,形成item sequence到live的Attention結構。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"圖表徵的方法在同構圖中有DeepWalk、Line、Node2vec、GCN、GAT,異構圖的方法主要爲Metapath2vec,也是我們採用的方法。Metapath2vec的主要思想爲先指定遊走元路徑,基於元路徑指導圖上節點的遊走,採樣出序列後,經過skip-gran生成Metapath語義下的表徵,最後對錶徵做一個融合,得到節點的最終表徵。具體來說,Metapath融合網絡建模分爲四個步驟。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① 構建圖"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"首先第一步構建電商直播的圖。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/2f\/2f959ea6e83615baea2251111f87b06c.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② Metapath選取"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二部分是Metapath的選取,分爲兩種方案:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"人工指定語義"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"例如User-Item-User(user CF)或者Item-user-item(item CF),item-user-item相當於一個用戶同時點了兩個商品,這兩個商品就會較爲相似。但對於節點類型多,metapath比較長的序列,效果不好,可解釋性較差。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"集合中取最優"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二種方案是我們使用的方案,就是在集合中取最優的方法。首先在圖中做random walk,採樣出不同的序列,再做一些規則篩選,比如要求至少要覆蓋兩種不同的節點的類型。所以再用打分公式做一個打分,打分公式核心關注該metapath被採樣出了多少條不同的ID組合序列,條數越多說明這樣的metapath在圖中共性越高,同時我們會更關注核心節點,比如直播節點的出現次數,依此制定打分公式來選出對應三到五條metapath做採樣學習。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"③ 圖遊走採樣"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f1\/f13ca99ffe585ae13fadf8e98ff0bc73.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三部分爲基於選出的metapath在圖中做遊走採樣,再用Skip-Gram訓練出metapath語義下的Embedding。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"④ Embedding融合"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第四部分是構建融合多個Metapath Embedding的語義網絡,具體訓練任務爲link prediction,採用負採樣loss。使用方法上,融合了一些GCN類的想法,加入一些臨界節點的信息,分別基於Average Pooling和self attention做最終融合,最後基於負採樣loss來訓練出整個融合的網絡,我們因此可以得到圖中每個節點的表徵,形成item sequence到live的結構。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"⑤ 結果"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"模型上線後在日常的CVR和停留時長分別提升了2.5%和3.9%,大促的轉化率提升了10%,這也是因爲在大促中新人用戶更多,直播行爲缺失。同時異構圖上的表徵也可以用於直播召回,包括user2live,item2live,live2live,作爲副產物提升召回效果。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"V4:直播Transformer異構行爲建模"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"V3的模型仍存在一些問題,其一它不是端到端模型,其二,T+1更新無法表徵實時商品。於是我們採用的新方案:直播transformer,一方面可以讓HIN融合多個商品表徵,另一方面可以引入實時直播正在講解的多個商品的信息。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① Transformer模型"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/37\/37c930b3880b4634ffb4580e2903169a.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Transformer方案中,直播表徵爲m個歷史核心商品加k個實時講解商品的集合序列,這m個商品是基於歷史銷售數據得出的核心商品。用戶的商品足跡爲用戶行爲序列。三組序列進行拼接輸入進Transformer後即可用來對任意用戶商品行爲足跡到直播間核心品或實時品進行建模。Transformer層包括四部分:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Embedding:輸入的Embedding包括Type Embedding和Position Embedding"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Multi head Self Attention:任意用戶足跡與直播商品表徵的交叉"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Feed Forward Layer:加強模型的非線性能力"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Pooling Layer:直播Item表徵爲不定長,Average&Max pooling"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② 輸入Embedding"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/88\/88e9017b5f791bb029536b0c317c34b4.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"再Transformer模型中,Embedding的構建十分關鍵。輸入的Embedding不僅包含了商品的ID Embedding,還包含Type和Position Embedding。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Type Embedding"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Type Embedding表徵self attention layer中每個token的類型,比如用戶序列,直播間歷史品,或是實時品。同時用戶序列的商品分爲點擊,加購,下單商品三種類型。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Position Embedding"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Position Embedding用來表徵一個序列時間或者空間上的先後順序,此處我們建模了三種不同的條件:一是用戶行爲序列長度,時間由近到遠,編號由0到n-1;二是直播歷史核心商品,重要程度由強到弱,編號由0到m-1;三是直播實時講解商品,當前商品爲0,下一個商品爲1,一直到k-1。同時,position embedding都是端到端的學習。重要性強的位置交叉,給予模型更強的信號。例如用戶某個最近的歷史行爲與當前直播的商品有較強的相關性,模型信號將會更強。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"③ 結果"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Transformer方案使線上轉化率提升了4.8%,但整體響應時間(RT)較高,相對增加了13毫秒,仍在可接受範圍內。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"小結"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/14\/14f20adc66986efd9d9dfd5e2e47583b.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"直播用戶行爲的建模如圖示,分爲三部分,首先商品行爲到候選直播的異構興趣,我們將其拆成了商品序列,直播歷史核心序列和直播實時商品的序列,經過transformer進行交叉建模。對於用戶直播行爲序列,我們採用Target attention結構做興趣建模。對於統計特徵和內容特徵,我們採用GBDT Embedding變成向量後再加入模型。後續經過全連接網絡來預測CTR或多目標任務。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"多目標學習"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二部分是關於直播的目標學習框架,首先直播是一個非常經典的多目標學習的場景,優化目標包括直播背景頁面的點擊(CTR)、進入直播間後的停留時長(Stay Time)、轉換率(CVR)、互動率(CMR)、關注率(FLR)。業務往往需要同時優化多個目標,因此多目標學習是非常重要的技術。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/b0\/b0a4f92158114d586f9798445e8cd9ed.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. Baseline Model"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/69\/69bc6b1188792c7cdc79937c6422f9dd.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多目標學習的第一版模型是Baseline模型,是基於shared bottom的工業界標配模型,多目標之間底層共享,頂層各個目標由MLP分開。相比於每個任務學習一個模型有以下三個優點:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"可實現多目標輔助學習,解決某些目標稀缺性"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"相比每個task一個模型,參數量大大減少"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"線上serving,一次計算多個目標"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在1688直播實戰裏,我們以CTR、CVR、Staytime爲三個目標構建了第一版多目標的模型,我們也發現將單目標的模型升級爲多目標模型的效果提升明顯,因爲加入了很多新的label信息。在線上實驗中,UV點擊率、轉化率和停留時長分別增長了2%, 5%和17%。Shared Bottom 模型在工業界得到了廣泛應用,但仍存在一個缺點,即當需要優化的多個目標方向不一致時,效果並沒有那麼好。在這樣的背景下,谷歌在18的KDD中提出了MMOE模型。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. MMOE Model"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/b0\/b04580ecf5ef0c8ae6c7e21e10094a6a.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"MMOE的前生是Mixture-of-experts(MOE)模型,在input之後,shared bottom改進爲了多個expert專家網絡和一個gate網絡,基於用戶的不同來爲每個專家網絡分配權重,但這個網絡仍存在缺點,對於不同的任務,輸入還是相同的,多目標之間的輸入沒有任何區別。谷歌於是進行了下一步優化,得到MMOE網絡。MMOE網絡仍有多個專家網絡,不同的是對於每一個target都有一個gate網絡來學習不同的權重,從而每個task都可以通過各自的gate獲取差異化的輸入。同時gate網絡的參數量很小,可以說MMOE採用了一個輕量級的gate網絡即實現了多目標輸入的差異性。實驗驗證中,點擊率、轉化率、關注率和停留時長的多任務的離線指標都是正向的,線上多目標平均提升0.5%。MMOE模型也是1688目前線上服務的多目標模型。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3. 實戰分析"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下面介紹一下多目標的實戰經驗。分爲Label處理,Loss和線上打分三個部分。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① Label 處理"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一就是Label的處理,因爲在做多目標學習時,我們往往會優化一個重要指標:用戶的停留時長,而停留時長作爲數值型的迴歸目標,數值波動較大,不易學習,據統計一般符合對數正態分佈。因此我們通常對其取log處理,使其數值更穩定且提高迴歸擬合效果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② Loss"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二,多目標學習的loss爲各個目標的loss加權求和。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/64\/64de97807b395164731b2425dfcc061b.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"比如上圖公式中,我們把點擊率,轉化率和關注率的交叉商損失函數利率與停留時長MSE損失函數做一個加權的求和。不同的權重會影響模型的效果,代表訓練對不同任務的側重程度。一個任務的loss權重越大,模型更新的一個梯度就越受它影響。衝着優化它的方向來去優化整個模型的參數,對於別的任務可能會有所傷害。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們的調參經驗爲:第一點將多目標收斂loss加權到同一量級,一定程度避免梯度的支配,保證多目標的同時優化。第二點提高核心任務的權重。第三點可以參考19年Recsys提出的基於帕累托最優的PE-LTR框架,以及CVPR18年的基於任務的不確定度確認loss權重。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"③ 線上打分"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三,多目標模型訓練完成並上線時需要排序分數將多目標分數整合,常用方法爲拍公式和權重。排序公式如圖所示主要爲點擊率乘轉化率、停留時長等的加權求和。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/9d\/9d075f7d8bab766daf70ddf37ecbee0d.png","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"權重中人工給定多組參數,再根據業務優先級選擇合適參數。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"直播排序Debias"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三部分工作爲直播排序的Debias。Position Bias是直播場景中最突出的Bias,代表着位置越靠前的直播點擊率越高,rank模型越趨向於給熱門主播打高分,進而獲得更大流量,形成feedback loop即數據循環。數據會造成兩個後果,一是模型預估不準確,用戶看到的結果都比較偏向於熱門,二是馬太效應增強,頭部主播流量進一步增強,腰尾部逐步減少,造成主播流失。直播業務背後是真人主播,考慮平臺的長期發展,更應該重視模型的debias。因此我們的目標爲解決position bias,不損失效能 (CTR、CVR) 下提升個性化程度、降低馬太效應。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/ec\/ec82ec0a6a71da2f8ff9dc5433f35424.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"於是我們引入兩個Metrics,一是個性化指標,讓用戶間排序top-L的差異化佔比越大越好。二是馬太效應指標,頭部T個主播總曝光流量佔比越小越好。爲了優化這兩個指標,我們嘗試了幾種不同的方法,分別爲as feature\/ as model\/ 多塔模型方案。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. As feature方案"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一版方案,Position as feature,是業界經典方案,主要做法爲將position當作feature加入模型,模型即可學習到不同位置的偏置,線上預測時,將position取默認值(如0),不同item在相同位置可得到對比,達到去偏的效果。線上實驗結果顯示該方法對於熱門直播去偏能力很強,但線上效能有下降。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/5d\/5d1d30dbb170e5ef24e681d8faf2e302.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. As Model 方案"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/4e\/4e012b5a033c5c5dc816677cb2515902.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"於是我們更新到第二版模型,position as model。訓練階段加入Biasnet,估計出每個position的bias logits。主網絡負責目標任務,例如CTR預測。兩個網絡的結果求和後經過sigmoid計算點擊率loss。該模型優點在於Biasnet學習偏置,實現了主網絡的無偏效果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Biasnet建模中也加入了系統、場景id等特徵,建模不同區塊展示樣式的bias。線上預測時我們可以摘除Biasnet,只保留無偏主網絡。線上效果符合預期,個性化提高、馬太效應降低,效能也有提升(預估更準)。待改進點爲Biasnet認定每個position的bias爲一個定值,無關於與用戶的相關性。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3. 多塔模型"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因此,我們就提出了第三版模型,多塔位置敏感模型。該模型的出發點爲建模不同相關性的直播,在不同位置的位置bias的差異性,進而優化全局的排序效果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"① 特點"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們依此建模出的多塔模型有以下特點:"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多塔預測多個position上的CTR"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"每個塔樣本來自同樣位置,沒有bias;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用上所有的用戶與直播的交叉特徵,擬合出每個位置對應的CTR分佈與CTR delta;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多目標學習範式,底層共享表徵"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/dc\/dce0057d4f3ca3ff6e071d766c15410c.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"② 建模方法"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/6b\/6b057f13a317e3c1f6326919e056c877.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在具體的建模方法中,我們將position 1~9 作爲9個塔,position大於10的作爲第十個塔。同時由於每條樣本只屬於一個position,我們將每個塔的loss傳入loss mask,保證只有對應的塔的梯度回傳。在線上服務中,多塔模型可以預測出商品在每一個位置的點擊率,可使用貪心選擇每個位置CTR最高的直播,構成推薦list。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"③ 模型優化探索"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"同時我們對於多塔模型也有一些優化和探索,首先它是一個多目標範式,因此可以做一些多目標優化。第二就是我們也希望強化建模不同塔對應position的CTR分佈(如KL loss)。第三除貪心法外,我們也可以使用list-wise或者組合優化的推薦列表生成。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"④ 1688直播線上效果與原因"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"CVR增加了3.6%,staytime增加了3%,但個性化和馬太效應持平甚至負向,不符合預期。分析後原因有以下三點:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"數據分佈"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多塔模型消除了position bias,但引入更嚴重的selection bias,頭部訓練數據多爲熱門主播,冷門主播訓練不夠充分,點擊率不夠高。可以考慮引入隨機樣本、樣本單邊採樣等方法解決。"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"召回不豐富"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"直播場景推薦物料較少,召回個性化較弱, 而對於短視頻\/商品推薦等召回豐富的場景,多塔模型預期效果更好。"}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"展示Bias"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/59\/5957d9a24160b5a6e7603d68e251fc4d.jpeg","alt":"圖片","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"直播Feeds卡片會展示在線人數、熱度等,用戶更傾向於點熱度高的,這也加重了直播域的Selection bias。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"然後目前我們仍致力於解決這些問題,還在做一些技術的迭代。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"總結"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"今天分享了基於用戶直播易構行爲建模的排序模型迭代,線上採用的是Target Attention加Transformer的方案,多目標學習的shared bottom和MMOE模型,和直播排序Debias的As Feature,As Model,多塔模型。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/17\/0d\/17c85c158e942b89546f5d821ddyy20d.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們的最終模型如上圖所示。在用戶行爲建模層,我們基於transformer建模item序列的異構興趣。對於用戶的直播序列,我們採用target attention。對於其他特徵,我們採用GBDT encoding。將三個結果進行Embedding和拼接,傳入頂層二分模型。一部分是無偏的CTR預估模型,在訓練中加入Biasnet並在線上預估時去掉達到debias效果。另一部分針對點擊後目標,包括停留時長、轉化率等,使用MMOE做多目標學習,同時我們也會將CTR任務加入模型作爲輔助模型,但是線上並不使用。最後融合多個目標結果得出排序結果。以上就是分享的全部內容。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"分享嘉賓:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"王修充"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"阿里巴巴 | 算法專家"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"王修充,阿里巴巴算法專家,碩士畢業於北京航空航天大學,先後在京東推薦算法、阿里巴巴CBU技術部推薦算法團隊工作,目前工作方向爲直播、短視頻推薦算法在電商場景的應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"本文轉載自:DataFunTalk(ID:dataFunTalk)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文鏈接:"},{"type":"link","attrs":{"href":"https:\/\/mp.weixin.qq.com\/s\/4rwdlnRH-r65ltQFb2AwnQ","title":"xxx","type":null},"content":[{"type":"text","text":"阿里1688直播推薦算法實踐"}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章