本文將介紹阿里發表在 SIGIR’18 的論文ESMM《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》。文章提出使用多任務學習解決CVR(轉化率)預估時的樣本選擇誤差和數據稀疏問題。git
在推薦系統、在線廣告等應用中,CVR預估比CTR預估更加劇要,CTR預估聚焦於點擊率預估,即預測用戶會不會點擊,可是用戶點擊後進行消費纔是最終目標。傳統的CVR預估任務一般採用相似於CTR預估的技術,然而,這種作法存在兩個重大問題:1) 樣本選擇誤差;2) 訓練數據稀疏github
1.樣本選擇誤差網絡
轉化是在點擊以後發生,傳統CVR預估模型在clicked數據上訓練,可是在推理時使用了整個樣本空間見圖。訓練樣本和實際數據不服從同一分佈,不符合機器學習中訓練數據和測試數據獨立同分布的假設。直觀的說,會產生轉化的用戶不必定都是進行了點擊操做的用戶,若是隻使用點擊後的樣原本訓練,會致使CVR學習產生偏置。具體的實驗結果能夠見原論文[1]架構
2.訓練數據稀疏機器學習
訓練數據稀疏問題很明顯,點擊樣本在整個樣本空間中只佔了很小一部分,而轉化樣本更少,高度稀疏的訓練數據使得模型的學習變得至關困難。函數
首先明確CTR、CVR、CTCVR。CTR表示點擊率、CVR表示假設用戶點擊後的轉化率、CTCVR表示用戶點擊而且成功轉化。學習
如何解決上述問題?ESMM 引入點擊率(CTR)和點擊轉化率(CTCVR)做爲輔助任務,將CVR做爲一箇中間變量。它們的關係以下
\[ \underbrace{p(y=1, z=1 | x)}_{p C T C V R}=\underbrace{p(y=1 | x)}_{p C T R} \times \underbrace{p(z=1 | y=1, x)}_{p C V R} \]
能夠看出,\(pCTR\)和\(pCTCVR\)是在整個樣本空間上進行學習獲得的,只是label不一樣,\(pCVR\)是中間變量,這樣就解決了樣本選擇誤差問題。模型架構以下測試
能夠看出在 ESMM 中,CVR 與 CTR 任務共享Embedding 參數。這種參數共享機制使 ESMM 中的 CVR 網絡能夠從未點擊的樣本中學習,在必定程度緩解了數據稀疏性問題。spa
至此,兩個問題已經被解決了,下面看下ESMM如何學習,模型的損失函數以下:
\[ \begin{aligned}L\left(\theta_{c v r}, \theta_{c t r}\right) &=\sum_{i=1}^{N} l\left(y_{i}, f\left(x_{i} ; \theta_{c t r}\right)\right)+\sum_{i=1}^{N} l\left(y_{i} \& z_{i}, f\left(x_{i} ; \theta_{c t r}\right) \times f\left(x_{i} ; \theta_{c v r}\right)\right)\end{aligned} \]
第一項是CTR預估的損失,點擊label爲1不然爲0;第二項是CTCVR預估的損失,點擊且轉化的label爲1,不然爲0。設計
這裏還有一個問題,既然\(pCTCVR\)能夠由\(pCTR\)和\(pCVR\)相乘獲得,那麼從理論上說,轉化爲除法也能夠,即
\[ p(z=1 | y=1, x)=\frac{p(y=1, z=1 | x)}{p(y=1 | x)} \]
這樣能夠分別訓練兩個模型,CTR和CVCTR,最終也能夠獲得CVR。論文對這種狀況作了實驗分析,發現實際上\(pCTR\)的值較小,會引發數值不穩定。
- 巧妙的引入了兩個輔助任務解決CVR預估,解決了樣本選擇偏置問題,共享參數能夠緩解數據稀疏
- 多任務學習在其餘領域已經有不少應用,但在推薦中,更應該結合具體的數據和任務設計。例如,在跨領域任務中,不一樣領域的環境樣本是不同的,但用戶信息可能有重複,那麼針對這種場景怎麼設計多任務學習,樣本信息的利用須要更多得考慮。
references:
[1] Xiao Ma, Liqin Zhao, Guan Huang, Zhi Wang, Zelin Hu, Xiaoqiang Zhu, and Kun Gai. 2018. Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate. SIGIR (2018).