天天看點

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

作者:閑魚技術-深宇

背景

  在網際網路行業中,為了增加使用者對産品的粘性,常常會針對性地開展使用者營運活動。以紅包活動為例介紹營運活動的一般流程。首先根據以往紅包活動具有對不同活躍度的使用者産生不同促活效果的經驗,将使用者群體劃分為低活、中活、高活人群;其次為了提高使用者的次日留存率,設計了預約次日領取紅包的方案,紅包的内容比如“現金寶箱”或者“金額範圍”需要通過圈定樣本人群進行AB實驗,根據AB實驗的顯著性以及次日留存率結果選擇較優的設計方案;最後将活動上線推向大盤人群,進行後續的資料總結和分析。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

痛點

  AB實驗過程中分析次日留存率名額存在一個制約,即對于T+0天實驗的活動,短時間内隻能得到曝光率、點選率、領用率等活動相關的直接可觀測或計算的名額,然而對于活動的T+1留存率隻能在T+2的時候才能擷取得到,導緻整個實驗周期變長,不利于營運對活動的快速響應。

仿真方案

  針對上文提到的響應周期長的痛點,我們希望通過資料仿真的能力來輔助營運作出及時的活動預判及調整。

  整體仿真方案為從曆史相關活動日志資料中拉取小時級資料,按照人群标簽進行歸類,通過監督學習算法訓練模型;設計相關名額,在新活動短期小時級資料上進行預測,并對比效果差異。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  要實施仿真,需要在有限資料下盡量提高預測的準确率。有兩個問題需要考慮:1)怎樣組織資料 2)怎樣設計預測模型。

資料組織

  曆史相關活動選擇一類具有共性的活動。比如增長類活動、大促類活動等。人群标簽應該具有代表性和通用性,圈選的人群參與過曆史相關的活動。

  小時級資料在每天整點進行資料累加,比如9點的資料統計的是0點到9點之間的結果,10點的資料統計的是0點到10點之間的結果,可以看出10點的資料包括了9點的資料。這樣累加的好處是緩解了時間點較早參與活動人數較少時,統計數值出現随機誤差的問題。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  資料組織成如上的層次結果。一個特定的活動,參與人群通過特定的标簽進行分類,每個标簽人群又可以通過标簽值進行分組,每組标簽值下的人群再進行AB實驗分桶,最後統計每個桶中人群的小時級資料。還是舉最開始的例子,對于預約紅包活動,人群可以通過标簽“使用者活躍度”、“是否敏感人群”、“買家最近30天成交數”等标簽進行分類。在“使用者活躍度”這個标簽下,人群又可以根據“低活”、“中活”、“高活”進行分組,每組人群再進行基準桶和實驗桶分桶,最後統計每個桶人群的小時級資料。

模型設計

  模型的設計和名額本身的類型相關。在仿真模型中,名額主要分成三類:觀測名額、實時名額以及延時名額。其中觀測名額為通過埋點日志可以直接得到的,比如活動曝光人數、紅包使用人數、app解除安裝人數等等;實時名額為通過觀測名額能計算得到的名額,比如紅包使用率可以通過紅包使用人數和領用人數計算得到;延時名額無法通過觀測名額或實時名額直接獲得,比如活動的次留率,需要在T+2才能獲得。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  1)實時名額的預測模型為:

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  2)延時名額的預測模型為:

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  實時名額模型設計為在T+0天實時名額X在t時刻的預測值等于從0到t-1時刻名額X在f1模型下的預測結果。

  延時名額模型設計為在T+n天延時名額Y在t時刻的預測值等于T+0天t時刻觀測名額或者實時名額X1、X2……XN在f2模型下的預測結果。

模型預測

  這一小節主要介紹延時名額預測模型f2。T+n天t時刻延時名額Y與T+0天t時刻觀測名額或者實時名額X1、X2……XN之間存在較高的非線性性。主要嘗試的模型為CART、GBDT、NN。

  1)CART:分類回歸樹。可用于分類或者回歸,是一種二叉樹,根據是否滿足條件将特征不斷二分,在回歸問題中用平方誤差最小作為特征切分的準則,最後将特征劃分成N個不相交的區域,後續進行回歸時,根據輸入樣本的特征,一步一步往下,使得樣本落入N個區域中的其中一個,使用這個區域訓練樣本的平均值作為樣本預測的結果。下圖中假設延時名額Y包括X1,X2,X3三個特征,回歸樹在建構時基于切分前後平方誤差最小的準則,得到a1,a2,a3三個切分值,整個回歸樹劃分成Y1,Y2,Y3,Y4四個區域。預測時新的樣本資料根據X1,X2,X3特征值一步一步往下落入Y1,Y2,Y3,Y4四個區域其中的一個,用這個區域的平均值作為預測的結果。CART 算法比較簡單,結果可靠,雖然有剪枝操作,但模型仍然會存在過拟合的問題。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  2)GBDT:梯度提升決策樹。GBDT采用CART樹結合boosting內建學習的思路來提高回歸的精度。GBDT每一輪CART樹的訓練是在上一輪訓練的殘差基礎之上進行,這裡的殘差就是上一輪CART樹模型的負梯度值。下圖中延時名額Y仍然包括X1,X2,X3三個特征,CART1基于切分前後平方誤差最小的準則将回歸樹劃分成Y1,Y2,Y3,Y4四個區域,計算每個訓練樣本的負梯度殘差,送入CART2中進行拟合,CART2基于切分前後平方誤差最小的準則将回歸樹劃分成Y5,Y6,Y7,Y8四個區域。依次疊代下去,每輪CART樹都是拟合前一輪CART樹的殘差。舉個簡單的例子,假設有個樣本次留率為0.8,第一輪CART預測的結果為0.6,第二輪CART會對0.2進行拟合得到0.15,第三輪CART會對0.05進行拟合得到0.03,依次下去直到達到最大疊代次數。預測時新的樣本資料根據X1,X2,X3特征值依次運作每棵CART樹得到最終的累加結果。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  3)NN:神經網絡。不管是CART還是GBDT,都是通過模型驅動的方式來進行學習,即需要選擇合理的切分準則。神經網絡則是通過資料驅動的方式來進行學習,通過不同的網絡連接配接方式來學習輸入資料和輸出結果之間的映射關系。一般的,神經網絡通過将輸入層、激活層、全連接配接層、正則化層以及輸出層組織成不同的網絡拓撲結構。下圖中延時名額Y仍然包括X1,X2,X3三個特征,首先對每個特征進行減均值除方差的預處理,然後分别經過全連接配接層、RELU激活層、Dropout正則化層,最後通過sigmoid函數輸出Y的預測結果。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

結果

  快速仿真功能已經應用在閑魚的增長以及沖高活動中,以閑魚的222沖高活動為例,包括八個活動會場:水果會場、優惠卡券、日用百貨、水果、服飾會場、珠寶文玩、遊戲禮包以及暢銷圖書。每個活動主要的實時名額為人均ipv、跳轉點選率、購買率以及釋出率等。使用所有的觀測名額以及實時名額,建立次留率的預測模型。

  以2月21日11點的資料做驗證,表1展示的是八個活動在所有人群标簽下的結果(隻對曝光人數大于100的資料進行處理)。從表1中可以看出整體上NN和GBDT的均方誤差要小于CART。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  下邊左圖展示了八個活動在所有人群下三個模型次留率的比較結果,可以看到服飾會場活動中,NN預測的次留率要明顯差于GBDT和CART預測的次留率,遊戲禮包活動中,NN預測的次留率要明顯好于GBDT和CART預測的次留率。右圖随機選擇了服飾會場在标簽"最近180天閑置買到筆數"下人群不同模型次留率的比較結果,可以看出預測的次留率和真實值比較接近。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

  表2展示的是八個活動在所有人群标簽下的結果(隻對曝光人數大于50的資料進行處理)。從表2中可以看出整體上NN和GBDT的均方誤差要小于CART。與表1相比,當曝光人數限制從100降到50時,均方誤差明顯變大。說明當人數較少時,實時名額存在一定的随機誤差。

納米鏡系列文章|閑魚如何快速仿真營運活動效果?

展望

  上述介紹了如何快速進行活動仿真,包活仿真方案中如何進行資料組織,如何根據名額類型設計模型,然後選擇合适的模型進行預測。未來更進一步可以繼續研究在曝光人數較少時如何得到更準确的預測結果、如何将相鄰小時級資料的影響加入到預測模型以及怎樣通過預測結果給出進一步的營運建議。

繼續閱讀