來源:DataFunSummit
導讀 本文結合專家在遊戲出海方面的探索經驗,重點介紹基於因果推斷的海外廣告投放,包括受眾選擇、廣告媒體隱私政策應對、出價最佳化等。
此外,本文亦涉及實驗在業務應用中常見疑難的識別和解決方法、對於實驗驅動業務的邊界性問題的思考等。分享嘉賓|張潔 騰訊 資深資料科學家
編輯整理|曾默默
出品社群|DataFun
在遊戲裡,我們可以藉助實驗完成哪些方面的科學決策?每款遊戲,乃至每款 C 端產品,使用者生命週期都可以簡化為潛在使用者、新手使用者、有效活躍、活躍下降、即將流失、流失 6 個階段,每一個生命週期階段會有不同的研發、運營側重點:① 潛在使用者階段,運營重點是高效拉新。決策點包括:拉新廣告的投放渠道選擇、廣告觸達使用者選擇、廣告素材選擇、廣告出價策略制定、APP icon 設計等。② 新手階段側重對安裝、註冊、體驗等轉化漏斗的最佳化、對新手系統的最佳化等。③ 活躍階段側重對遊戲內的玩法設計,如戰鬥、成就、社交、獎勵及商業化系統等的最佳化。④ 流失階段側重對迴流廣告投放及玩家迴流後的任務、獎勵系統的最佳化。可以看到,遊戲裡的決策點很龐雜,其中不乏許多決策點非常細節且微觀。如果都依靠專家經驗或傳統資料分析,將會面臨科學性和效率的瓶頸。因此依靠實驗來驅動高效的遊戲增長決策,是一個必然的發展過程。本文將分別就廣告投放和使用者運營兩個場景的具體案例展開分享。這張趨勢圖是一個市場上典型的 ARPG 遊戲上線 8 周的情況。遊戲上線 8 周後,累計流失玩家已經佔總註冊玩家的 78%。而隨著遊戲上線時間推移,潛在使用者不斷進入,拉新成本越來越高。盤活已經流失的玩家,必定會成為遊戲運營重點。海外廣告投放面臨著高昂的渠道觸達成本,因此需要在觸達使用者的選擇、出價策略上做得非常精準。首個挑戰是如何在全量的流失玩家裡,找到真正值得投放廣告的使用者?典型的思路是訓練響應模型,給迴流機率高的流失玩家投廣告,這是很多團隊長期採用的思路。但透過 A/B test 會發現,該策略篩選出的精準包的使用者投廣告和不投廣告的迴流機率都很高,他們本就會自然迴流,與看不看廣告關係不大。我們觀測不同預測機率區間的玩家在投廣告與不投廣告的情況下的真實迴流曲線,會發現:預測迴流機率最高的玩家對廣告不敏感,而預測迴流機率的中高段(0.5 -0.9) 的玩家,投廣告可以帶來一定的正向收益。因此,直接得出一個最佳化:給預測回機率中高段的玩家投廣告。從效果看,這個最佳化確實讓干預效果變得顯著了,但它的科學性不夠,因為所謂“中高機率迴流的玩家對投廣告略有敏感”這一假設並沒有邏輯上的必然性。我們真正想知道的是廣告對每一個使用者的迴流機率到底能提升多少。因此不如調整問題的定義:直接預測投放廣告對於使用者的迴流機率的增益,即在四象限裡找到投放廣告會迴流,但不投放廣告不會迴流的 persuadable 使用者。這是因果推薦領域中典型的 uplift model 的問題。uplift model 主要有 4 個流派:① 基於傳統機器學習的源分類器的組裝形成的 Meta-learner② 以樹模型調整分裂方式作為基礎的 Tree Based Model④ 對 Label 做數值變化進行擬合的 Transform Model我們基於uplift model預測出了三種使用者:① sleeping dog,遊戲裡面佔比 4%,對這些玩家投放廣告後反而產生副作用。分析他們的特徵發現,他們在遊戲裡面比普通使用者花的時間更長,但進展不足。也就是說,這批使用者在新手階段非常努力地嘗試過,但是受挫比較厲害,給這群使用者投放廣告,出現負面效果的可能性很大。② sure thing 和 lost cost ,佔比 69%,給這些玩家投不投放廣告沒有差異。③ 我們真正需要的 persuadable 使用者佔比 27%。三類使用者的分佈也比較符合直觀感受,這個方案比基於自然迴流機率預測的方案,人均增益從 1.4% 提升到 2%。前文分享了透過 uplift model 尋找廣告投放使用者的必要性。但是,建立 uplift model 有一個前提:訓練樣本需要包括使用者在曝光廣告和不曝光廣告的情況下的迴流 Label。於是要透過隨機對照實驗的方式,把流失使用者切分成無偏的對照組跟干預組。但在海外場景的另外一個挑戰:海外廣告媒體有非常嚴格的隱私政策,對廣告主來說,哪些使用者被曝光了廣告是個黑盒。如果廣告曝光有偏,uplift model 預測出的廣告對使用者的增益就不準確了。我們首先要在廣告媒體的黑盒隱私政策下,驗證廣告曝光是否有偏。我研究了 Google、 Facebook 的隱私政策。以 Google 為例,一是絕對不會告訴廣告主單個使用者有沒有被曝光,二是不會告訴廣告主曝光人數低於 50 人的群體的曝光率。基於這這兩條隱私政策,我把使用者按遊戲裡的特徵進行聚類,同時使得每一類的曝光人數在 50 人以上,以 cohort 為粒度向廣告媒體請求每個 cohort 的曝光率。如果不同類之間曝光率的差異很大,則可證明曝光事件有偏(反之不成立)。① 圖 1:預期被全量曝光廣告的干預組的樣本中只有 13% 的使用者實際被曝光了廣告。② 圖 2:廣告曝光跟使用者特徵之間不獨立。部分 cohort 的曝光率可高達 30%,另一些 cohort 曝光率只有 9%,所以曝光事件有偏。③ 圖 3:廣告曝光率跟自然迴流機率基本呈正比。即廣告媒體傾向於給原本就會迴流的使用者投廣告,這對於廣告主來說是個很壞的現象。影響:曝光有偏會讓 uplift model 向曝光率高的群體傾斜,而曝光率又與自然迴流率成正比。因此我們的 uplift model 本質上還是沒有逃離自然迴流模型的藩籬。於是我引入了樣本的曝光機率對樣本調權,使曝光事件與玩家特徵獨立。去偏之後,干預增益從 0.74 提升到了 1.5。到這裡就完成了 audience targeting 部分的模型最佳化,本質上識別出了更多的廣告曝光率低、但對廣告敏感的使用者。這些廣告曝光率低、但對廣告敏感的使用者在目前的競價策略下,競價能力差。如果不最佳化競價策略,他們依然看不到廣告。廣告是依據每一次廣告曝光預期給廣告媒體側帶來的收入(即 eCPM)做競價排序的。eCPM 的公式由兩部分相乘:廣告主設定的願意為單次轉化支付的 target CPA、媒體側預測的使用者看到廣告後的轉化機率。其中 target CPA 由投放人員的業務經驗決定,例如某個時期的 ARPG 遊戲在日韓地區的 target CPA 固定為 4 美元。這就造成我們前文講到的廣告媒體傾向於給原本回流機率高(轉化率高)的人投廣告。為了解決這個問題,我們從 eCPM 等式的右邊入手,把其改寫成廣告能帶來多少個增量使用者(看廣告之後迴流的人數 - 原本就會自然迴流的人數),再把增量使用者再乘以我願意為每個增量使用者支付的單價。這兩個式子聯立,就是最佳化後的出價。直觀理解出價最佳化就是,為對廣告敏感但自然迴流率低的使用者提高 target CPA;為對廣告不敏感但自然迴流率高的使用者降低 target CPA。遊戲使用者運營最常見的落地方案就是給使用者推送運營活動。決策點包括:給哪些使用者推、推哪些任務、發什麼禮包、活動頁面如何設計。這張流程圖是一個典型的實驗設計:先把所有使用者做隨機分流,每一股流量採用不一樣的待決策變數,最後評估每一個策略相對於對照組是否有顯著增益。雖然原理聽起來非常簡單,但事實上實驗的坑非常深。在上述流程裡,每個環節稍有差池都可能導致實驗的結論錯誤。下面展開介紹 4 個比較常踩的坑:③ 遊戲裡面很多場景不能做實驗,應該如何科學決策?④ 如果運營活動可以分享,實驗組的使用者把活動或分享給對照組,造成組間的汙染怎麼辦?很多同學會有疑問:賬號分流有什麼難的嗎?每個使用者都有一個賬號尾號,根據尾號分流不就好了?但細想就會發現,按尾號分流會造成多個實驗之間相互汙染的問題。例如圖中展示的兩次實驗,效果產生了重疊。整體看,實驗組與對照組沒有差異,得到結論實驗 1 與實驗 2 均沒有效果。但真相是,實驗 1 產生了負向效果,實驗 2 產生了正向效果。進一步,是否可以用 random 函式生成隨機數,作為賬號分流的依據?這種方式相比按尾號分流會好很多,但依然不建議。為了回溯分析,需要儲存隨機數與使用者 ID 的對映關係,儲存和管理成本都很高,一旦儲存錯誤或丟失,整個實驗都白做了。因此建議採用雜湊加種子的方式做分流,它既能滿足不同實驗之間的正交(只需要給不同實驗傳遞不同的種子),也非常容易管理(不需要儲存使用者粒度的分流結果表,只需要儲存每次實驗的種子)。第二個問題,實驗做完之後指標不顯著怎麼辦?指標不顯著存在兩個可能性:一是策略本身確實沒有提升;但還存在一種可能性,即策略本身是有提升的,但實驗的靈敏度太低了,檢測不到提升。上圖中的公式是樣本量、方差、一類錯誤、power、指標敏感度之間的關係。根據這個公式,在不改變一二類錯誤率的情況下,有兩個方式可以提升靈敏度:一是增加樣本量,二是縮小指標方差。縮小方差的方法也有很多,比如微軟提的引入協變數進行方差縮減的 CUPED 方法、更換指標(從偏度很大的數值類指標換成比例類指標)、對指標做 log 變換,減小取值範圍等。第三個問題,如果有一些策略探索不適合做實驗怎麼辦?比如想在遊戲裡測試新的裝備、新的戰鬥數值、或類似 MOBA 遊戲裡防禦塔的血量等數值調整。如果在部分使用者或者部分對局上做測試,會造成系統的平衡性出問題。與此類似的,還有商業化測試,比如測試某個道具更高或者更低的定價,也可能導致公平性失衡帶來的輿論危機。對於這些無法對使用者做 A/B test 的場景,該如何科學決策呢?我們的解決方式是,不以使用者作為測試單元,而是以國家、伺服器作為測試單元,找到特徵相似的兩組國家/伺服器分別作為實驗組對照組。但很多時候找不到非常相似的國家/伺服器,這時候可以用合成控制的方法,把多個國家透過加權擬合成一個虛擬國家。下一個問題是,實驗組和對照組之間的使用者互相影響對方的行為怎麼辦?如圖中最左邊的圖,理想的 A/B 實驗中,我們希望對照組和實驗組的使用者在面對不一樣的產品策略的時候,獨立地做出決策。但事實上,使用者之間會互相影響。比如,在一個活動中,實驗組的使用者可以把活動分享給對照組的朋友。如果使用者的分享意願足夠強,就可能出現,每個對照組的使用者都和實驗組的使用者一樣看到了這個活動(因為他們被實驗組使用者分享了活動連結),這種時候 A/B TEST 就失效了。這種使用者決策不獨立的現象叫做網路效應。事實上,除了很少的場景,比如像搜尋場景中,使用者之間很難互相影響外,網路效應是廣泛存在的,在實驗裡面一定要考慮這一點。不同的業務中,網路效應產生的影響也不一樣。比如 Facebook 使用者之間更容易發生正向的影響。一個使用者活躍了,會帶動他的社交圈一起活躍。這種情況下,實驗組和對照組的對比結果往往要比它真實的差別小。而像 Uber 這種場景,在司機數量一定的情況下,使用者跟使用者之間更容易發生逆向影響。實驗組的使用者搭車多了,會造成對照組的使用者搭車少。這就導致了實驗組與對照組的對比結果比真實的影響要大。
首先,在處理網路效應之前,要先識別實驗中是否存在網路效應。首先介紹一個比較簡單的識別方法:可以先做一個小流量實驗,這時即使有網路效應,影響也很小。然後再上線一個大流量的實驗,對比兩次實驗的結論,假設兩次結論的差異不大,說明這網路效應較小,可以忽略的。如果兩次實驗差別很大,就需要處理網路效應。處理網路效應的方法是從按使用者切分實驗組跟對照組,改成按 cluster 切分實驗組跟對照組:先把使用者按照社交關係鏈構建網路,再根據網路結構進行使用者的聚類,切分cluster。其方法比較多,比如像 LPA、fast unfolding 等社群識別演算法。繼而按 cluster 進行流量切分,同一個 cluster 裡面的使用者要麼都是對照組,要麼都是實驗組。最後把策略增益推導到大盤,估計大盤的策略效果。大家都聽過很多實驗的價值,在此我不再贅述。它作為黃金準則,其科學性,以及在擠水分方面對行業做出的貢獻大家有目共睹。我從踩過很多坑的一個資料科學人員的角度,給出幾點提醒:① 首先今天分享的內容,實驗的原理性內容比較少,更多是在講實驗過程當中發現的坑和避坑的實踐。而實驗的任何環節中稍有不慎都會掉進坑裡,帶來系統性的偏差。掉坑的伴生成本,包括錯誤決策的成本、排查解決問題的人力成本非常的高。成本和收益的 balance 是我們需要永遠注意的。② 第二個提醒是,我們的業務很複雜,業務策略的解空間是無限大的,很多業務為了在有限的流量上用實驗指導決策,硬是把決策空間坍縮成 n 選 1 的這種簡單決策。這就成了削足適履。③ 第三個提醒是實驗的介入時間。我們都知道實驗特別適合增長曲線到達中後期的產品,業務進入存量時期後需要像抹膩子一樣一點一點增長。但如果業務是在起步階段或者是成長初期,建議多把資源投入在創意上,讓飛輪先自己轉起來。問答環節
Q1:實驗組樣本大小如何決定?如何平衡實驗潛在收益和成本之間的關係?A1:我們是有公式或者線上工具決定實驗組的樣本大小,如上文提到的計算公式。實驗潛在的收益和成本,是一個非常好並且複雜的問題。需要我們做一個算總賬的事情,在這裡不能快速回答。希望大家去算成本的時候可以看得更多一些,不能光看對當前這一小撮使用者的影響,或者是對當前比如影響了幾個 DAU 這種小成本。Q2:這裡延伸的一個問題,你們做實驗的時候有多少是失敗的實驗?A2:這個和成本不一定有特別大的關係。我們並不認為實驗的失敗率高是一件壞事,我們反而害怕失敗率低。但是很多時候我們甚至意識不到失敗了,裡面有一些坑,甚至不知道我們踩了坑。這個是一件非常普遍的存在,但是容易被大家忽視的成本。Q3:當 uplift 找出的使用者量級較小的時候,怎麼評估最終收益?A3:它其實也是一個閾值選擇的問題,可以把它的閾值調低一些,如果量級小,也是量級和效果之間的 trade off,還是看我們願意花多少成本算 ROI。Q4:使用合成控制法評估效果時,如果合成組發生一些極端事件,導致和實驗組差異較大,該怎麼刨除這些極端事件的影響,做出一個合理的評估?A4:建議重新合成一個組。實際這種情況下,再做一次實驗的 cost 成本很高,但是大機率是,很難有一種方法是完全排除這種極端事件,因為畢竟是 offline 的,沒有辦法 replay。我覺得從成本的角度最節省就是再做一遍。Q5:AA 實驗效果不平可能有哪些原因?
A5:原因其實挺多的,任何環節都可能發生。比如兩組下發的策略不一樣,可能跟下發的時序都會有關係。比如 a 組下發的早一些, b 組延遲了一些,可能一個在業務的高峰期上下發,一個在相當於相對低谷的時間下發,這兩組使用者就會不一樣等等。像剛剛有提到,比如像我們用一些 random 或者是用尾號分割流量的方法,這兩組使用者因為一些尾隨機或者是賬號生成的方式,或者是受前一個實驗的影響造成的兩組使用者本身就不一樣等等,還是具體問題具體分析。這也是為什麼說它的成本高,因為排查的難度大。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027824/viewspace-2944358/,如需轉載,請註明出處,否則將追究法律責任。