小叽導讀:在今年的拉動手淘使用者增長戰略中,支付寶小程式作為日活2億同時包含大量手淘新使用者的場景,在拉新中承擔着十分重要的作用。我們的目标人群是将使用者轉化為淘寶使用者,阿裡工程師是用什麼方法完成這樣的轉化呢?今天的文章,馬上為你揭曉!
作者 | 亦汀、吳越、一塵、理欣
一、背景
“支付寶拉新”依托“綠洲”營銷算法平台,精選淘搶購、天天特價、聚劃算等營銷商品,在支付寶首頁進行個性化投放,旨在給支付寶使用者一個非常好的購物初體驗,進而引導使用者安裝手淘app體驗更多精彩。
然而,新使用者沒有任何行為,且購買力等重要使用者畫像特征嚴重缺失,在對使用者一無所知的情況下,個性化投放變得異常困難。幸運的是,這些使用者在支付寶領域大多為成熟使用者,我們可以通過全域帳号打通,得知使用者線下進行哪些品類的消費,也能知道使用者在支付寶花錢多或少。是以,我們提出一種通過跨domain的使用者表征方式:CroSs Domain Embedding(CSDE),由支付寶domain的特征生成與淘寶domain特征非常相似的向量,據此對使用者進行推薦,實驗和線上測試都表明,我們的方法對新使用者具有更好的表征能力,能更加準确的為新使用者進行推薦。
由于我們的目标人群是将使用者轉化為淘寶使用者,因而後續讨論中活躍使用者、新使用者、流失使用者特指手淘app中使用者分類。

支付寶小程式頁面
二、算法介紹
1、基本思路
我們核心目标,是為淘寶domain中行很少的新使用者,利用支付寶domain的特征為其生成一個新的畫像,使之可以完全拟合使用者在淘寶特征表達。有了這一生成網絡,我們将可以為新使用者、流失使用者、行為缺失或畫像缺失的使用者生成特征,來減小其淘寶特征缺失的影響,提高推薦的準确性。因而我們的模型分為兩個環節: CroSs Domain Embedding Learning(CSDE) :主要學習支付寶特征生成淘寶特征網絡;以及Adaptive Prediction with CSDE :将學到的這一生成網絡應用于小程式的深度模型中,補充新使用者的表達。
為了友善問題的描述,我們首先給出關于 Input 和 Dataset 的符号定義:
表示使用者在alipay domain中的特征,如投資力、支付寶消費頻次、線下偏好類目等。
表示使用者在taobao domain的特征,如果淘系購買力、人群标簽、近期點選商品序列等。
i 表示商品的特征,如商品類目、賣家、價格檔、性别屬性、曆史銷售情況等。
表示一條樣本的所有特征,而 y 為标簽,代表本次曝光是否引導使用者購買該商品。
表示全部使用者資料集,涵蓋了高活、流失使用者、新使用者。
表示淘寶active user資料集,他們在手淘中有着豐富的行為,大多數喜好線下消費,在兩個domain中特征都較為豐富。
表示淘寶new user資料集,他們在手淘中沒有任何行為。
- CroSs Domain Embedding Learning(CSDE)
針對資料集 我們建構如下網絡:
我們希望獲得的是由支付寶特征生成淘寶特征的一個網絡,最直接的做法是将支付寶encode為淘寶特征,然而,一方面由于淘寶特征複雜度太高,例如行為序列是很難encode,另一方面淘寶原始特征中也有一些備援或無用資訊無須被複原出來,我們的做法是,在目标函數中,先将淘寶特征轉化為具有較好使用者表達的embedding,再令支付寶domain生成的向量與這一embedding相似,我們稱之為cross domain embedding。同時,我們也希望他具有一定的預測能力,是以我們的loss function由3部分組成:Lt -- Taobao Classification Loss(學習淘寶特征的良好表達)、Ls--Similarity Metric Loss(拉近兩個domain距離)、 Lc -- CSDE Classification Loss(生成的表達有預測能力),損失函數如下:
生成網絡的好壞主要取決于生成的CSDE與淘寶向量是否足夠相似,因而S (Similarity Metric Loss) 的選擇格外重要。我們嘗試了兩種度量目标函數,一種是拉進生成向量在空間中的距離,另一種是将CSDE視作fake taobao,而将淘寶向量視為real taobao,用判别網絡去區分who's the real,生成網絡盡可能去使判别網絡無法區分兩個domain的表達。
遺憾的是,第二種使用甚廣的Domain Adaptation(DA)的方法,在我們的實驗中提升非常的微弱,這可能是由于,DA的方法拉近的是整體的distribution,他并不限制domain pair對之間的相似,也就是說,對于一個支付寶中“高消費,偏好航旅交通的男性使用者”,即使生成淘寶中“偏愛低價裙子”這一表達,隻要這一畫像符合且存在于淘寶真實使用者中,loss function就不會對他做出懲罰,這與我們的初衷是相違背的,反而element-wise的距離限制更好地限制了映射與對應關系。之後的實驗将主要基于第一種方法展開。
- Adaptive Prediction with CSDE
這一部分我們基于全部使用者訓練 Da={xi,y},目标是cvr,并分别在D、Da、Dn 三種使用者群體上進行測試和分析。 通過CroSs Domain Embedding Learning得到的生成網絡G(CSDE Network),我們将這部分網絡加入使用者表達網絡中,提升整體的預測能力。
網絡結構:
Domain Attention:我們将生成網絡直接加入使用者embedding中,與不加CSDE網絡對比是有一定的提升的。同時,經過分析不同類型使用者群體的收斂速度我們觀察到,受特征複雜度的影響,訓練後期主要優化的是淘寶特征相關的複雜網絡,而這一優化對新使用者是沒有作用的,但卻會削弱CSDE網絡的貢獻。于是我們加入domain attention,來選擇不同domain的重要程度,可以極大的平衡這一點,後面的實驗部分也有相關說明。
三、實驗和線上測試
CroSs Domain Embedding Learning和Adaptive Prediction with CSDE環節,我們均使用支付寶小程式7天日志作為訓練樣本,預測下一天的轉化率。
- auc對比:
我們以沒有CSDE網絡的模型為base,對比auc如下:
- 線上測試:
我們取Adaptive Prediction with CSDE得到的模型更新至線上,在新使用者群上進行測試,對比測試桶和base桶的轉化率:
- 不同使用者群Attention對比:
支付寶:你長大了,該學會認識新朋友了!
我們主要對比alipay attention 和CSDE Attention,這兩部分網絡的輸入特征均為支付寶特征,不同的是,alipay network的主要作用是學習支付寶特征的表達,CSDE adaptive network的主要作用是利用支付寶特征生成淘寶使用者畫像,使之彌補淘寶特征确實的影響。通過上圖不同使用者群的domain selection結果我們可以看出:
使用者活躍度越高,CSDE和alipay attention越低,支付寶特征相關的網絡越不重要。這是因為淘寶特征在cvr預估中具有更強的表達能力,因而淘寶特征約豐富的樣本,越傾向于選擇淘寶特征作為使用者表達,支付寶特征越不重要。
使用者活躍度越低,CSDE network和alipay network的重要度差異度越大。從圖中可以看出,新使用者alipay attention和CSDE attention之間的gap遠大于活躍使用者,這說明了對于沒有淘寶特征的使用者,alipay network關注支付寶特征本身的表達,而CSDE network關注由支付寶生成淘寶畫像的表達,但是它們的作用是完全不一樣的,并且生成淘寶畫像這一網絡的作用更加重要。
全部使用者群體中,同樣可以看到CSDE的attention高于alipay attention,這是因為全部使用者還包含大量流失使用者(很久沒有通路手淘),他們的淘寶特征同樣缺失嚴重,而CSDE的加入對這部分使用者的預估準确度也有很大的提升。
四、生成對抗模型在cross domain使用者表征的一些探索
- 任務目标
盡管Domain Adaptation的方法提升微弱,我們仍然好奇生成對抗模型在Domain間的遷移和生成能力,這裡介紹關于生成對抗模型的一些探索與嘗試。我們利用使用者在手淘app的行為序列,預估/生成支付寶中的行為序列,并将預估結果直接輸入給支付寶行為序列的預測網絡,在不改變且不重新訓練該網絡的情況下,達到比較好的預測效果。下列描述中,Domain A 代表手淘中的行為序列,而Domain B 代表支付寶中的行為序列。
- 算法實作
考慮到兩個domain的使用者不一定有很多重合,是以在訓練時需要使用unpairwise的模式,即在訓練時A domain與B domain同時傳入到一個batch中的資料是沒有對應關系的。這也意味着在訓練時我們不能通過直接計算同一個使用者在兩個domain的行為來優化模型。
為解決這一問題,我們使用了目前被廣泛關注的生成對抗網絡來設計模型。參考在圖像領域顯示出優良效果的雙向對抗模式如CycleGAN、DisoGAN、DualGAN等,我們設計實作了如下圖所示的雙向對抗網絡結構。
Input A通過生成器A2B後,得到A在B domain的遷移表示Generated B,并将其與Input B——同傳輸給判别器B來區分真假,通過疊代訓練多次之後,當判别器沒辦法很好區分這兩個輸入時,生成器A2B生成的Generated B便是Input A在B domain的一個較好呈現,可以直接用于B domain的目标任務中。将Generated B通過生成器B2A再還原回A,計算cyclic loss加入生成器的優化loss中,進而保證生成器生成樣本的多樣性。
同理,Input B也有對應的一條資料流進行訓練,進而形成雙向對抗。算法中的生成器和判别器均通過全連接配接層實作。相關loss計算采用在生成對抗領域效果優秀的Wasserstein GAN with gradient penalty實作。
與圖像處理不同,在遷移使用者行為的embedding向量時,我們發現向量特征不像圖像那樣隐含了像素的位置等額外資訊,采用生成對抗模式訓練時自由度更高,很容易就會跑偏,是以考慮将目标task的loss加入生成器的訓練中,來指引訓練流程。由于訓練時unpairwise的特性,生成器生成的使用者行為沒法找到對應的使用者和商品進行關聯,來計算B domain中目标任務的loss,于是我們将訓練時對應domain的使用者profile以及item特征一并做遷移,形成3路并行的雙向對抗網絡,将3路生成器輸出拼接起來輸入另一個domain的目标任務中計算loss,達成在生成器訓練loss中引入目标任務loss指導訓練的目的。
- 實驗結果
可視化分析:
我們将 Domain A, Origin domain B(訓練初始), Generated A by B(經Cycle GAN充分訓練後)的分布均值進行可視化:
Domain A :
Origin domain B :
Generated A by B :
可以看出,原始的A和B,差異度是非常大的,而經過Cycle GAN轉換之後,Generated A by B與A的分布确實非常相似,我們的算法确實能夠在一定程度上将一個domain的資料以另一個domain的分布形式進行遷移。
預估實驗:
domain A中有大規模的資料&特征可以充分訓練完備的預估模型,然而對于domain A中資訊缺失的使用者,預估精度會大大降低。這裡我們希望訓練一個通用的轉化器,使任何domain B的特征都可以生成與之對應的A,在不經過重新訓練的情況下直接套用完備的domain A預估模型,便可以完成轉化率預估任務。
為了驗證模型效果,我們進行如下實驗,可以看出,沒有A後,auc從0.6494下降至0.6056,而如果我們用generated A by B來填補這一缺失,auc會上升至0.6293。因而,對于A特征缺失的使用者,我們的雙向對抗網絡可以為之生成特征。
五、總結
我們提出了一種新穎的新使用者推薦模型,來解決使用者特征不足的問題。
CSDE借助了使用者source domain中相似活躍使用者在target domain的特征,并将這一knowledge transfer至新使用者的推薦任務上。
我們的domain attention,是一種不同使用者的domain selection機制,他平衡了輸入特征的不均勻性,較人工切分使用者流失度而言,他用了一種更加soft和靈活的方式讓使用者自特征進行自我打标與特征選擇。
我們将cross domain learning描述為雙向對抗網絡,對生成對抗的基礎上增加還原loss,來增強domain similarity的限制。
實驗結果與線上測試顯示,我們的算法相較于普通的深度模型網絡,對轉化率有顯著的提升。
原文釋出時間為:2018-12-19
本文作者: 搜尋事業部
本文來自雲栖社群合作夥伴“
阿裡技術”,了解相關資訊可以關注“
”。