1. 程式人生 > >推薦系統遇上深度學習(十九)--探祕阿里之完整空間多工模型ESSM

推薦系統遇上深度學習(十九)--探祕阿里之完整空間多工模型ESSM

歡迎關注天善智慧,我們是專注於商業智慧BI,人工智慧AI,大資料分析與挖掘領域的垂直社群,學習,問答、求職一站式搞定!

對商業智慧BI、大資料分析挖掘、機器學習,python,R等資料領域感興趣的同學加微信:tsaiedu,並註明訊息來源,邀請你進入資料愛好者交流群,資料愛好者們都在這兒。

本文來自天善智慧社群專欄作者[文文](https://ask.hellobi.com/people/%E7%9F%B3%E6%99%93%E6%96%87)

配套學習視訊教程: [手把手教你用Python 實踐深度學習](https://edu.hellobi.com/course/278)

阿里近幾年公開的推薦領域演算法有許多,既有傳統領域的探索如MLR演算法,還有深度學習領域的探索如entire-space multi-task model,Deep Interest Network等,同時跟清華大學合作展開了強化學習領域的探索,提出了MARDPG演算法。

上一篇,我們介紹了深度興趣網路(Deep Interest Network),充分利用使用者歷史行為資料中的Diversity和Local Activation特性進行建模。再來回顧一下DIN的網路結構:

4155986-3748528c2a5fc919.png

這一篇,我們將焦點轉向CVR的預估,來看一下阿里提出的完整空間多工模型ESSM是如何處理CVR預估中存在的樣本選擇偏差(sample selection bias)和資料稀疏(data sparsity)問題的。

在正式開篇之前,我們先介紹一下幾個名詞:

impression:使用者觀察到曝光的產品

click:使用者對impression的點選行為

conversion:使用者點選之後對物品的購買行為

CTR:從impression到click的比例

CVR:從click到conversion的比例

CTCVR:從impression到conversion的比例

pCTR:p(click=1 | impression)

pCVR: p(conversion=1 | click=1,impression)

pCTCVR: p(conversion=1,click=1 |impression) = p(click=1 | impression) * p(conversion=1|click=1,impression)

1、背景

以電子商務平臺為例,使用者的購買行為一般遵循以下的順序決策模式:impression-click-conversion,即使用者先觀察到系統推薦的產品,然後會對自己感興趣的商品進行點選,進而產生購買行為。從點選到購買的轉化我們稱為post-click Conversion rate(以下簡稱CVR),CVR的預估在資訊檢索、推薦系統、線上廣告投放等工業級應用中是至關重要的。

不過傳統的CVR預估問題存在著兩個主要的問題:樣本選擇偏差和稀疏資料。我們來看下面的圖,我們把給使用者曝光過的產品看作是整個樣本空間X的話,使用者點選過的產品僅是中間灰色的部分,我們定義為Xc,而使用者購買過的產品僅是圖中黑色的部分。

4155986-31ccd3226cc1426d.png

樣本選擇偏差(sample selection bias,SSB):傳統的推薦系統僅用Xc中的樣本來訓練CVR預估模型,但訓練好的模型是在整個樣本空間X去做推斷的。由於點選事件相對於曝光事件來說要少很多,因此只是樣本空間X的一個很小的子集,從Xc上提取的特徵相對於從X中提取的特徵而言是有偏的,甚至是很不相同。從而,按這種方法構建的訓練樣本集相當於是從一個與真實分佈不一致的分佈中取樣得到的,這一定程度上違背了機器學習中獨立同分布的假設。這種訓練樣本從整體樣本空間的一個較小子集中提取,而訓練得到的模型卻需要對整個樣本空間中的樣本做推斷預測的現象稱之為樣本選擇偏差。樣本選擇偏差會傷害學到的模型的泛化效能。

資料稀疏(data sparsity,DS):推薦系統展現給使用者的商品數量要遠遠大於被使用者點選的商品數量,同時有點選行為的使用者也僅僅只佔所有使用者的一小部分,因此有點選行為的樣本空間Xc相對於整個樣本空間X來說是很小的,通常來講,量級要少1~3個數量級。如下表所示,在淘寶公開的訓練資料集上,Xc只佔整個樣本空間X的4%。這就是所謂的訓練資料稀疏的問題,高度稀疏的訓練資料使得模型的學習變得相當困難。

4155986-570b012bc8af5139.png

為了解決上面的兩個問題,阿里提出了完整空間多工模型ESSM。下一章,我們將會來學習一下阿里是如何設計整個網路的。

2、ESSM模型

2.1 模型結構

阿里媽媽的演算法同學提出的ESMM模型借鑑了多工學習的思路,引入了兩個輔助的學習任務,分別用來擬合pCTR和pCTCVR,從而同時消除了上文提到的兩個挑戰。ESMM模型能夠充分利用使用者行為的順序性模式,其模型架構下圖所示:

4155986-e583e6dbf39b38d5.png

可以看到,ESSM模型由兩個子網路組成,左邊的子網路用來擬合pCVR,右邊的子網路用來擬合pCTR,同時,兩個子網路的輸出相乘之後可以得到pCTCVR。因此,該網路結構共有三個子任務,分別用於輸出pCTR、pCVR和pCTCVR。

假設我們用x表示feature(即impression),y表示點選,z表示轉化,那麼根據pCTCVR = pCTR * pCVR,可以得到:

4155986-148dbce6adc8dd64.png

將乘法轉化為除法,我們可以得到pCVR的計算:

4155986-716f554b649e1c43.png

2.2 模型特點

ESSM模型共有以下兩個主要的特點:

在整個樣本空間中進行建模

由上面提到的等式可以看出,pCVR是可以通過pCTR和pCTCVR的預估推匯出來的。因此,我們只需要關注pCTR和pCTCVR兩個任務即可。為什麼是這兩個任務呢?其實就是為了消除樣本選擇偏差嘛,因為CVR是從click到conversion,而CTCVR是從impression到conversion,CTR是從impression到conversion,所以CTR和CTCVR都可以從整個樣本空間進行訓練,一定程度的消除了樣本選擇偏差。

我們可以將有點選行為的曝光事件作為正樣本,沒有點選行為的曝光事件作為負樣本,來做CTR預估的任務。將同時有點選行為和購買行為的曝光事件作為正樣本,其他作為負樣本來訓練CTCVR的預估部分。

模型具體是怎麼做的呢?可以看到,用來訓練兩個任務的輸入x其實是相同的,但是label是不同的。CTR任務預估的是點選y,CTCVR預估的是轉化z。因此,我們將(x,y)輸入到CTR任務中,得到CTR的預估值,將(x,z)輸入到CVR任務中,得到CVR的預估值,CTR和CVR的預估值相乘,便得到了CTCVR的預估值。因此,模型的損失函式可以定義為:

4155986-3543355f3bed04dc.png

其中,θctr和θcvr分別是CTR網路和CVR網路的引數,l(⋅)是交叉熵損失函式。

共享特徵表示

ESMM模型借鑑遷移學習的思路,在兩個子網路的embedding層共享embedding向量(特徵表示)詞典。網路的embedding層把大規模稀疏的輸入資料對映到低維的表示向量,該層的引數佔了整個網路引數的絕大部分,需要大量的訓練樣本才能充分學習得到。由於CTR任務的訓練樣本量要大大超過CVR任務的訓練樣本量,ESMM模型中特徵表示共享的機制能夠使得CVR子任務也能夠從只有展現沒有點選的樣本中學習,從而能夠極大地有利於緩解訓練資料稀疏性問題。

3、實驗效果

3.1 對比模型介紹

為了驗證ESSM的效果,阿里團隊與如下的演算法進行了對比:

3901436-3bb2a08bfcc8f44a.png

3.2 公開資料集實驗

下圖展示了在公開實驗資料集上模型的對比效果:

4155986-b50a185fa9778b6a.png

可以看到,ESSM模型相比於其他的模型,實驗效果顯著提升。

3.3 淘寶資料集實驗

下圖展示了ESMM模型在淘寶生產環境資料集上的測試效果對比:

4155986-bb500b1a936c380b.png

可以看到,相對於BASE模型,ESMM模型在CVR任務中AUC指標提升了 2.18%,在CTCVR任務中AUC指標提升了2.32%。

4、總結

總結一下,ESMM模型利用使用者行為序列資料在完整樣本空間建模,避免了傳統CVR模型經常遭遇的樣本選擇偏差和訓練資料稀疏的問題,取得了顯著的效果。另一方面,ESMM模型的貢獻在於其提出的利用學習CTR和CTCVR的輔助任務,迂迴地學習CVR的思路。ESMM模型中的BASE子網路可以替換為任意的學習模型,因此ESMM的框架可以非常容易地和其他學習模型整合,從而吸收其他學習模型的優勢,進一步提升學習效果,想象空間巨大。

參考文獻

歡迎關注個人公眾號:小小挖掘機

4155986-808d0609856fbc30

新增微信sxw2251,可以拉你進入小小挖掘機技術交流群喲!