介紹
CVR轉化率預估過程中存在樣本選擇偏差和數據稀疏問題。這兩個問題在阿里的上一篇論文ESMM中有提到,這里介紹一下。
- 樣本選擇偏差:CVR模型建模通常使用點擊后的樣本post-click,或者說使用記錄用戶在點擊后是否產生訂單的數據;而模型在實際應用過程中是在整個樣本空間上,用戶還沒有發生點擊。這就導致數據有偏,不同分布。在post-click樣本上建模后,在實際應用過程中并不能保證模型的準確性,而且應用模型的泛化能力。
- 數據稀疏:在電商系統,如淘寶,用戶的行為鏈,通常包括曝光、點擊、購買,各個階段的數據量逐漸減少。使用post-click數據建模,這部分數據量相較于用于CTR訓練的數據少1-3個數量級。
ESMM模型使用多任務學習,分別學習post-view點擊率CTR和post-view 點擊轉化率CTCVR,目標CVR通過兩者計算得到CVR=CTCVR/CTR;點擊率CTR是在整個樣本空間上,即所有的曝光樣本進行訓練,CTCVR也是在整個曝光樣本上進行訓練,pCTCVR=pCTRpCVR,最終的CVR任務也是在整個曝光樣本上進行訓練,應用,這樣就可以解決樣本選擇偏差問題。同時兩個任務CTR、CVR底層的embedding權重是共享的,可以緩解*數據稀疏問題。但是由于訂單樣本相較于曝光樣本來說是在是太少,只有不到0.1%的曝光樣本最后產生了訂單;數據稀疏問題不能得到充分解決。
通過對用戶的網購行為進行分析,發現用戶在發生點擊行為后通常會有幾種和購買行為相關的操作,進而提出了一種將post-click行為分解的建模方法。post-click行為根據是否和購買行為相關,可以分為決定性行為Deterministic和其他行為,決定性行為包括:加入購物車,加入心愿清單。這兩種行為插在點擊和購買之間,形成行為序列"曝光->點擊->D(O) Action ->購買"。在這個行為序列圖上進行模型建模,可以充分利用整個樣本空間上的曝光樣本,此外,由于加入購物車、加入心愿清單的樣本數據相比購買數據會大很多,使用來自D、O Action的監督信號可以同時有效解決抽樣選擇偏差和數據稀疏問題。
基于這個想法,提出了ESM2模型。根據在序列圖上定義的條件概率,使用多任務學習分別預測各自的小目標,然后將它們合并構成最終的CVR預測結果。
模型分為3個模塊:SEM、DPM和SCM。其中SEM,embedding權重共享層,在多個子任務之間共享權重,充分利用所有的曝光樣本數據;DPM,分解預測模塊,分解計算自己的任務task;最后是SCM,序列組合模塊,將多任務的結果進行組合,構成最終的目標CVR。
簡單來說,ESM2的三個模塊,功能分別是embedding訓練結果共享、單任務訓練,多任務組合得到最終結果CVR。
用戶行為序列"曝光-> 點擊->D/O Action -> 購買",從收集到的數據集,我們可以知道構建不同的標簽,是否點擊、是否點擊&發生D行為、是否點擊&發生O行為,是否點擊&是否轉化(可以簡化為是否轉化),因為D行為和O行為是互斥的,點擊&發生O行為=1-點擊&發生D行為。不同的標簽就可以用于不同的任務進行學習、訓練。
任務分解
曝光-> 點擊:點擊率建模。在整個曝光樣本上進行訓練。
表示曝光后發生點擊的概率,v表示是否發生曝光,取值為{0,1};c表示是否發生點擊行為,取值為{0,1}。下標i表示第i個曝光樣本。。
曝光-> 點擊 -> D Action:在整個曝光樣本上進行建模。
其中,a表示是否發生D行為,取值為{0,1}。
根據全概率公式可以,曝光樣本發生D行為的概率等于曝光樣本發生點擊&D行為的概率 + 曝光樣本未發生點擊但發生D行為的概率。因為如果曝光樣本發生了D行為,那么必然發生了點擊行為,所以,
,其中
表示第i個曝光點擊樣本發生D行為的概率:點擊->D Action。
點擊->轉化:點擊->D/O Action -> 轉化。
其中b表示第i個曝光樣本發生轉化行為,取值為{0,1}。根據全概率公式和條件概率公式可以知道,
曝光-> 點擊->轉化:曝光-> 點擊-> D/O Action->轉化,完整行為序列。
PCTCVR=PCTR*PCVR.
根據收集到的三類標簽:曝光后是否點擊、曝光樣本是否發生D Action(曝光->點擊->D Action),曝光樣本是否發生轉化(曝光-> 點擊->D/O Action ->轉化),可以分別對pctr、pctavr、pctcvr在整個曝光樣本上進行建模訓練。同時根據條件概率可以知道,我們最終的目標PCVR也適用于整個曝光樣本,pCVR=pCTCVR/pCTR,這樣就可以解決樣本選擇偏差問題,同時由于D/O Action行為樣本相比于轉化樣本數據量會提升,對于數據稀疏問題也可以得到進一步緩解。
Loss定義
三類標簽,三種loss分別是pctr、pctavr、pctcvr loss。每種loss使用交叉熵損失函數:
[圖片上傳失敗...(image-e9b19f-1605970000092)]
最終loss為三者的加權和:
實驗&其他
其他:
深度學習網絡的超參數調整
控制變量法。逐個調整,對于調整的當前超參數,比如MLP層數,通過選擇不同的參數,進行訓練、評估驗證;將評估結果整理,通過圖表展示,選擇合適的參數。
數值特征的embedding表示
對于數值特征進行embedding表示前,一般需要先進行離散化表示轉化為one-hot特征,進而embedding訓練。論文指出,數值特征離散onehot轉化后進行embedding訓練會影響模型的表現效果。因此,對數值特征進行正則化,然后進行tanh函數轉化,這部分特征不進行embedding訓練表示。
這部分特征轉化后直接拼接離散特征的embedding表示,然后送到esm2模型進行訓練、評估。