Categories
程式開發

Uplift-Model在貝殼業務場景中的實踐


1 背景

隨著互聯網和人工智能技術的不斷發展,智能營銷已經慢慢滲透到各個行業,相對應的智能營銷手段也越來越普及,在貝殼平台有多種觸達消費者的渠道:比如,通過DMP人群標籤圈定目標人群,然後對目標人群通過短信或者IM發送市場行情或用戶關注房源信息(價格)變化,增加用戶粘性;也可以通過定向發送優惠券引導用戶向成交轉化;在站外可以通過貝殼DSP平台進行廣告推送,為平台拓展新用戶。

目前貝殼平台智能營銷覆蓋的群體中,其中有一部分自然轉化率就很高,很明顯這部分人是不需要投入運營成本的。那麼如何通過技術來衡量和預測營銷干預帶來的“增量提升”,而不把營銷預算浪費在“本來就會轉化”的那部分人群身上,成為智能營銷算法最大的挑戰。

無論是廣​​告還是優惠券,我們都稱為營銷的干預手段,這些手段都需要花費成本。營銷的目標就是:在成本有限的情況下最大化營銷的總產出,這其中最關鍵的一點就是我們能否準確找到真正能被營銷打動的用戶,我們稱之為營銷敏感人群,在營銷活動中,對用戶進行干預成為treatment,例如發放優惠券就是一次treatment,對人群進行四象限劃分,我們可以將用戶分為以下四類:

Uplift-Model在貝殼業務場景中的實踐 43

圖1 營銷人群四象限劃分圖

其中,橫縱坐標分別是用戶在有乾預和無干預情況下的購買情況。

  • 有說服力

    不發券不購買,發券才會購買的人群,即優惠券敏感人群

  • 當然可以

    無論是否發券,都會購買,也就是自然轉化人群

  • 丟失的原因

    無論是否發券都不會購買,難以觸達,可以選擇放棄

  • 睡狗

    與Persuadables恰好相反,對營銷活動比較反感,不發券的時候有購買行為,發券後不再購買

很明顯在營銷中我們需要觸達的是Persuadables,而對於Sleeping dogs需要盡量避免。

2 增益模型在智能營銷中的價值

在營銷這個場景中很容易想到套用點擊率預測模型,在這裡我們稱為響應模型(response model),即預測用戶看到優惠券後購買商品的概率。但是這其中有一個問題就是:用戶是本來就有購買意願,還是因為發放了優惠券誘使用戶購買?可以看到使用response model,很難區分上面提到的四類人群,因為模型只預測是否購買,但人群的群分需要明確是否因為發放優惠券才導致了購買行為,這就轉化成一個​​因果推斷問題(casual inference)。

在營銷活動中,我們要預測的是某種干預(treatment)帶來的增量,這種模型稱為增益模型(uplift model)。設G表示模型乾預策略(如是否推送廣告),X表示用戶特徵,Y = 1表示用戶輸出的正向結果(如下單或者點擊):

  • 響應模型:

    P(Y = 1 | X),看過廣告後購買的概率

  • 提升模型:

    P(Y = 1 | G, X),因為廣告而購買的概率

為了更好的理解response model和uplift model的差異,我們可以具體看一個栗子:

有兩類人群:User1和User2,這兩類人群對於廣告的CVR分別為0.8%和2.0%。假如只有一次廣告曝光的機會,應該像哪一類用戶投放廣告呢?

按照以往的直直覺和經驗,可能會選擇第二類,因為其轉化率最高,但這個結論是正確的麼?

假如我們可以知道這兩部分人群無廣告觸達下的轉化率,如表1:

表1 User1和User2人群轉化信息表

廣告CVR 無廣告CVR 隆起
用戶1 0.8% 0.2% 0.6%
用戶2 2.0% 1.7% 0.3%

從上面的表不難看出,第一類用戶的廣告轉化率雖然低,但是在沒有廣告觸達的情況下更低,因此廣告帶來的增量(uplift)反而比第二類更高,從全局的角度考慮我們要最大化總體的轉化率其實等價於最大化廣告帶來的增量,按照這個邏輯我們應該向第一類用戶投送廣告。可以看出使用response model很可能會誤導我們做出錯誤的決策,response model和uplift model最主要的差異主要是預測目標上的差異:

  • response model的目標是估計用戶看過廣告後的轉化率,這本身是一個相關性分析問題,而這會導致我們無法區分自然轉化人群
  • uplift model是估計用戶因為廣告購買的概率,即時一個因果推斷問題,幫助精準尋找營銷敏感人群。所以uplift model是整個智能營銷中的關鍵技術,預知每個用戶的營銷敏感程度,從而幫助我們制定營銷策略,促成整個營銷的效用最大化。

3 增益模型的表示

Uplift model是一個增量模型,其目標是預測某種干預對於個體轉態或行為的因果效應(ITE, individual treatment effect),那麼如何表示這個增益模型呢?

假設有N個用戶,Y_i(1)表示對用戶干預後用戶輸出的結果,比如給用戶i發放優惠券(干預)後用戶下單(結果),Y_i(0)表示沒有對用戶干預情況下的輸出結果。用戶i的因果效應的計算方式如下:

Uplift-Model在貝殼業務場景中的實踐 44

(1)

訓練增益模型目標就是最大化增量τ_i,即有乾預策略相對於無干預策略的提升,更簡單的解釋就是乾預前後用戶輸出結果的差值。在實際使用時會採用所有用戶的因果效應期望來衡量該用戶群的整體表現,稱為條件平均因果效應(CATE, Conditional Average Treatment Effect):

Uplift-Model在貝殼業務場景中的實踐 45

(2)

上式中X_i是用戶i的特徵,所謂的conditional是指的基於用戶的特徵。

在實際場景中,對於任意一個用戶我們是不可能看到其同時受到干預策略(treatment)和不干預策略(control)時的反應的,所以式(2)是uplift的理想計算公式,我們對其進行修正:

Uplift-Model在貝殼業務場景中的實踐 46

(3)

其中Y_i^obs是用戶i可以觀察到的輸出結果,W_i為二值變量,如果用戶i被干預則W_i = 1,否則W_i = 0。當用戶特徵和乾預策略滿足條件獨立假設(CIA,Conditional Independence Assumption)時,條件平均因果效應的期望估計值可以寫作:

Uplift-Model在貝殼業務場景中的實踐 47

(4)

其中用戶特徵和乾預策略相互獨立即:{Y_i (1),Y_i (0)⊥W_i |X_i。

4 增益模型建模

那麼如何進行建模呢?

在建模前我們需要注意一個很重要的問題:Uplift Model對樣本要求很高,需要用戶特徵和乾預策略相互獨立。

那麼什麼樣的樣本用戶這樣的特徵,這樣的樣本又該如何獲取?

最簡單直接的方式就是隨機A/B實驗,A組採用乾預策略,B組不進行任何干預,經過A組和B組的流量得到的兩組樣本在特徵分佈上基本一致(即滿足CIA),可以通過模擬兩組人群的τ(X_i)進而得到個人用戶的τ(X_i)。因此隨機A/B實驗在Uplift Model建模過程中至關重要,在訓練樣本高度無偏情況下,模型才能表現出更好的效果。

4.1 差分響應模型(Two-Model Approach)

最簡單粗暴的建模方法是基於Two Model的差分響應模型,對A組和B組數據進行單獨建模:

Uplift-Model在貝殼業務場景中的實踐 48

圖2 Two-Model差分響應模型流程圖

其中模型G^T用來學習用戶在有乾預策略影響下的響應,另外一個模型G^C用來學習用戶在沒有乾預策略下的響應,對於預測組數據,分別過兩個模型,將得到的模型預測分數做差,就得到uplift score。

優點 缺點
原理簡單,容易理解 誤差積累
可以直接套用現有分類模型(LR/GBDT/NN) 間接建模,對微弱的uplift信號不敏感

在實際中以uplift score進行排序,由其高低決定是否進行干預。雖然兩個模型單獨訓練容易累計誤差傳遞到uplift score,但是考慮到實現簡單迅速,可以將其作為baseline。

4.2 差分響應模型升級版(One-Model Approach)

基於Two Model的差分響應模型,訓練數據和模型都是相互獨立,那麼是否可以進行模型統一和數據共享呢?答案是肯定的,那就是基於One Model的差分響應模型,那麼問題來了,數據共享、模型統一,怎麼學習干預組合非干預組樣本的差異呢?在阿里文娛中提到一種方法:在特徵維度進行擴展,引入乾預信號相關特徵T(T為0代表乾預組,否則為非干預組,T同樣可以擴展為0-N,建模multiple-treatment問題,比如優惠券的不同額度,廣告的不同素材)。

4.3 標籤轉換模型(Class Transformation Method)

即使基於One Model的差分響應模型在訓練數據和模型層面上打通,但其本質還是對於uplift的間接建模,更為嚴謹的一種實現實驗組和對照組數據和模型打通的方法是:標籤轉換方法(Class Transformation Method),可以直接對τ(X_i)進行建模。

Uplift-Model在貝殼業務場景中的實踐 49

圖3 One-Model標籤轉換模型流程圖

標籤轉換是在二分類的情境下提出的,這種方法的目標函數形式為:

Uplift-Model在貝殼業務場景中的實踐 50

(5)

其中Z_i∈{0,1}是轉化後的標籤,其轉換的規則如下:

Uplift-Model在貝殼業務場景中的實踐 51

(6)

可以看到當用戶處於實驗組且轉化和處於對照組未轉化的用戶對應的標籤為1,其餘對應標籤為0,那這樣優化目標就變成P(Z=1|X),這與之前的優化目標之間存在什麼關係呢?下面我們來證明一下。在證明前需要說明兩個假設:

  • 用戶特徵和乾預策略相互獨立
  • 用戶被分到實驗組和對照組的概率一致P(T)=P©=0.5

Uplift-Model在貝殼業務場景中的實踐 52

(7)

根據上面兩個假設,上式可以改寫為:

Uplift-Model在貝殼業務場景中的實踐 53

(8)

進而可得:

Uplift-Model在貝殼業務場景中的實踐 54

(9)

(9)式對應的就是uplift score,此時只有一個變量,因此優化P(Z=1|X)就相當於優化τ(X),而不再需要對實驗組和對照組進行單獨建模,這種方法之所以流行是因為它同樣也是原理簡單,並且效果優於差分響應模型,可以採用任何你想使用的分類模型進行訓練,但是其需要滿足上面提到的兩個假設。

第一個假設一直是我們強調的很好理解,第二個假設(個體對對照組和實驗組的傾向必須一樣)看似非常嚴格,幸運的是,可以通過一些轉換操作來解決實驗組和對照組的個人傾向不同的問題。

最簡單的方式就是對數據進行重採樣使得數據滿足假設,即使不滿足也可以通過引入用戶傾向分來進行調整,調整後對於CATE的估計值轉化為:

Uplift-Model在貝殼業務場景中的實踐 55

(10)

其中p(X_i)=P(W_i |X_i)表示個人傾向分,其代表在X_i條件下進入實驗組概率,這種轉換必須是在CIA假設條件,在X_i的條件下等同於CATE即E[Y_i^* |X_i ]=τ(X_i)。

當實驗組和對照組的樣本比例不相同時,這時對應的Y_i^*是一個連續值,因此我們可以採用任意一種回歸模型進行求解。

4.4 直接建模(Modeling Uplift Directly)

對於uplift直接建模的方式除了上述標籤轉換的方式外,還有一種就是通過修改已有的學習學習器結構直接對uplift進行建模,比如修改LR、k-nearest neighbors、SVM,比較流行的就是修改樹模型的特徵分裂方法。

傳統樹模型的分裂過程中,主要參照指標是信息增益,其本質是希望通過特徵分裂後下游正負樣本的分佈更加懸殊,即代表類別純度變得更高。同理這種思想也可以引入到Uplift Model建模過程,我們希望通過特徵分裂後能夠把uplift更高和更低的兩群人更好地區分開。

傳統信息增益表示為:

Uplift-Model在貝殼業務場景中的實踐 56

,可以直接修改為:

Uplift-Model在貝殼業務場景中的實踐 57

其中D_before (P^T,P^C )和D_after (P^T,P^C)分別表示分裂前後實驗組合對照的樣本分佈,如何從數學角度來衡量這種分佈之間的差異呢?最直觀的方法就是採用距離度量,比如KL散度(KL divergence)、歐氏距離、卡方距離等等。

這種模型的優點就是可以直接量化uplift,對uplift的量化更加靈敏更加精準,在理論上精度相較其他模型會更高,但實際應用時除了修改分裂規則外,還需要修改loss函數、剪枝等一系列的操作,模型收斂性和泛化能力也很難去保證,所以落地成本較高。

5 增益模型的評估

前面我們已經介紹了三種常見的uplift建模方法,那麼我們如何對訓練好的uplift模型進行評估呢?響應模型可以通過觀察模型在測試集上的AUC、Precision、Recall等指標來評價模型好壞,但在增益模型中我們並不能得到一個用戶uplift的ground truth,因此無法直接計算上述指標。

不能直接那還不能間接麼?一個思路是通過構造特徵相似的鏡像人群的方式來間接計算uplift的ground truth,而不是在一個測試集上直接評估。將訓練好的模型分別預測實驗組和對照組的測試集數據,得到這兩群人的uplift score,然後按照uplift score進行降序排列,通過分數這一橋樑,把兩組人群進行鏡像拉齊。

分別截取top10%,top20%…top100%的用戶,計算每一分位下兩組人群的轉化率差異,這個差異可以近似的認為是該分位下對應人群的真實uplift值,將這些分為差異值連接起來就得到uplift cure也成為Qini curve,其具體計算公式如下:

Uplift-Model在貝殼業務場景中的實踐 58

(11)

其中,ϕ是按照uplift score由高到低排序的用戶數量佔實驗組或對照組用戶數量的比例,比如ϕ = 0.1表示實驗組或者對照組top10%的用戶。 n_(t,y=1) (ϕ)表示在ϕ下,實驗組中轉化(下單)的用戶數;同理n_(c,y=1) (ϕ)表示在同樣分位數下,對照組中轉化(下單)的用戶數。 N_t和N_c分別表示實驗組和對照組的總用戶數。

Uplift-Model在貝殼業務場景中的實踐 59

圖4 Qini曲線圖

圖中灰色虛線是隨機的base曲線,可以通過計算Qini curve和隨機base曲線之間的面積作為模型的評估指標,其與響應模型的AUC類似,稱為AUUC(Area Under Uplift Curve)面積越大越好,表示模型結果遠超隨機選擇結果。

注意到在計算Qini值時,分母是實驗組和對照組的全部用戶數,如果實驗組和對照組用戶數差別較大,結果容易失真,因此可以通過計算累計增益來避免這個問題,其計算公式如下:

Uplift-Model在貝殼業務場景中的實踐 60

(12)

其中各符號與Qini值計算公式中含義相同,不同的為n_t (ϕ)和n_c (ϕ)代表百分比ϕ下的實驗組和對照組人數(不是全部的了哦),以n_t (ϕ)+n_c (ϕ)作為全局調整係數,避免因實驗組和對照組用戶人數差異過大而產生的指標失真問題。

Uplift-Model在貝殼業務場景中的實踐 61

圖5 累積增益曲線圖

同樣可以計算累計增益曲線和隨機曲線下的面積作為模型評估的指標。

6 業務應用

在貝殼新房業務場景下,我們希望當用戶進入新房頻道首頁時,為用戶發放帶看券或者成交券,在保證ROI大於0的前提下,提升用戶帶看率和成交率,進而提昇平台GMV。

我們將問題進行抽象,在進入到新房頻道首頁的用戶中,精準識別出那些對於優惠券敏感的人群,進行優惠券發放。也就是我們需要對用戶進行優惠券敏感度建模,這正是uplift model做的事情。

6.1 樣本構造

目前新房業務場景下,已經做過很多優惠券相關的活動,但這些活動的運營對象時全部用戶,也就是所有用戶多會發,需要用戶主動進行領取,這顯然是不滿足uplift model對於訓練樣本的要求的。

我們選擇新房業務下最近的一個活動“618惠住季”來構建訓練樣本,為了更好的模擬隨機A/B實驗,按照是否瀏覽過活動領券頁面將用戶分為實驗組用戶和對照組用戶(在這裡我們認為用戶沒有瀏覽過活動領券頁面,就可以認為對其沒有發券)。

在房產交易場景中,用戶決策週期很長,如果拿成交和帶看來作為轉化的目標可能對導致轉化樣本數過低,因此我們加入了委託,我們認為只要用戶在領券後的未來7天內,發生委託或帶看或成交任一種重行為的轉化,即將其標定成為一條正樣本,標定後的正負樣本分佈如下表:

表2 實驗組和對照組正負樣本分佈表

干預類型 正樣本 負樣本
發券 8512 277300
不發券 33378 5786240

可以看到實驗組和對照組總人數數量之間差異巨大,為了後續可以使用標籤轉換方式訓練模型,我們對對照組進行欠採樣,最終實現對照組人數和實驗組人數基本一致。

6.2 特徵工程

在特徵工程層面我們主要選取了用戶行為特徵、城市特徵、偏好特徵、時序特徵等。

表3 樣本特徵信息表

特徵類型 備註
行為特徵 不同時間週期內用戶pv,商機,委託,帶看等行為次數
城市特徵 城市one-hot
偏好特徵 偏好分佈
時序特徵 通過LSTM對用戶行為序列編碼後的表徵

我們分別將實驗組和對照組各80%的數據作為訓練集,20%數據為測試集來評估模型表現。為了方便起見,將對照組和實驗組的測試集合併用來觀測訓練過程,在真正預測時在將其分開。

6.3 模型訓練與評估

在模型選擇上,我們以XGBoost模型作為基學習器,分別在Two Model差分響應模型、One Model差分響應模型(無標籤轉化+引入T/C特徵)、One Model差分響應模型(引入標籤轉化)和One Model差分響應模型(引入個人傾向分)上進行了嘗試。 One Model差分響應模型(無標籤轉化+引入T/C特徵)訓練流程如下:

Uplift-Model在貝殼業務場景中的實踐 62

圖6 One Model差分響應模型(無標籤轉化+引入T/C特徵)流程圖

在實驗組和對照組分別取80%的用戶合併成訓練樣本,然後引入乾預策略相關特徵進行模型訓練,在實驗組和對照組各20%的用戶樣本上將每個用戶干預策略特徵分別置1和0,預測兩次,然後將預測結果相減即為uplift值。

在全部模型試驗中,Two Model差分響應模型表現最差,One Model差分響應模型(無標籤轉化+引入T/C特徵)和引入傾向分後的回歸模型表現較好。

Uplift-Model在貝殼業務場景中的實踐 63

圖7 two-model差分響應模型(無標籤轉化+引入T/C特徵)Qini曲線

Two Model模型會導致誤差累計,在具體實驗中也得到了同樣結論;標籤轉化方法在邏輯上推導可行,實驗結果顯示並不盡如人意,分析其主要原因還是對於樣本的要求太高,目前構造的數據雖然保證了實驗組和對照組用戶數量基本一致,但是完全隨機基本無法保證。相反,引入個人傾向分後,將其轉化為回歸問題,在一定程度上解決了這個問題,標籤轉化雖然邏輯上可以,但是還是需要一定解釋成本。

在實驗中表現最好的One Model差分響應模型(無標籤轉化+引入T/C特徵),在結果輸出上解釋成本也是最低的,在對於每個用戶預測時,分別加入T和C干預信號特徵,然後預測值相減即得到用戶的uplift score。

7 寫在最後

本文主要從基礎概念、表示方式、構建方法、評估方式以及應用方案等幾方面對增益模型進行介紹,讓各位讀者對增益模型有了一個更全面的認識。由於增益模型對於樣本數據質量要求極高,因此在真正業務場景中落地還是具有一定難度的。

目前增益模型在貝殼平台上已經得到了實踐與應用,並取得了不錯的效果。但隨著營銷手段越來越複雜,treatment維度會劇烈增加,這樣對於模型升級和無偏樣本規模提出更高的要求。後續可以考慮強化學習多智能學習的思路,進行多任務學習,聯合多場景建模,進而緩解樣本壓力。

【引用資料】

  1. 因果推理和提升模型:文獻綜述
  2. 臨床試驗數據的提升模型
  3. Pylift:用於提升建模的快速Python包
  4. 阿里文娛智能營銷增益模型技術實踐

本文轉載自公眾號貝殼產品技術(ID:beikeTC)。

原文鏈接

Uplift-Model在貝殼業務場景中的實踐