如何基於機器學習來挖掘遊戲付費用戶特征?

11-22

前言

網絡遊戲制作是脆弱的,考察目前國內遊戲制作過程和修改過程,往往發現其決策缺乏客觀中立的數據依據,以策劃的經驗和拍腦袋為主,產品成功總體概率很低。北京深極智能科技近日發佈瞭一篇基於遊戲數據挖掘的文章,試圖以大量的玩傢行為數據呈現出規律作為決策提供依據。

付費率與付費深度,是網絡遊戲的關鍵指標之一。如果能夠根據用戶的遊戲行為數據挖掘出用戶在遊戲當中的傾向,研發商可根據兩類用戶的行為與屬性差異,針對性修改遊戲,把更多的非付費玩傢轉化成付費玩傢,提升產品付費率;或者根據用戶的行為給用戶給予適當優惠用以刺激消費,這樣可以提高收入。

本文使用機器學習技術中一類監督學習技術—樹提升,從一款成功的 ARPG 手機網遊 K(以下簡稱遊戲 K)埋點數據中進行數據挖掘,解決基於數據的付費用戶與非付費用戶特征自動學習與預測問題,取得瞭初步成果,分享給遊戲行業,推進網遊制作決策量化與科學化。

1. XGBoost 算法原理介紹

遊戲 K 數據中有每個用戶在遊戲中前 4 天的點擊動作、動作時間戳、鉆石、金幣、黑鉆、戰力、玩傢設備型號、IP 地址等數據,半年總數據達到 8TB。

我們通過對比各種經典監督學習算法,綜合考慮效率與算法準確率,最終選用瞭 XGBoost 算法 [ 3 ] 。

XGBoost 是一個設計高效、靈活並且可移植的優秀的分佈式決策梯度提升庫,它通過一組弱分類器(決策樹)的迭代計算實現準確的分類效果,實現瞭梯度提升框架下的機器學習算法,已經在實踐中證明可以有效地用於分類和回歸任務的預測挖掘。此算法對於處理遊戲 K 海量遊戲玩傢行為日志數據非常合適。

1.1 決策樹

本方法的基礎是決策樹,決策樹是一種基本的分類與回歸方法,可以認為是一種 if-then 規則集合。決策樹由節點和有向邊組成,內部節點代表瞭特征屬性,外部節點(葉子節點)代表瞭類別 , 決策樹的學習就是利用已經有的數據學習各種規則對未來未知的數據進行預測。

但決策樹算法過於簡單,對於一些比較復雜邏輯關系的數據,決策樹無能為力,或者容易出現過擬合,尤其是在網絡遊戲中單玩傢可以執行的動作超過 4000 個,各種屬性十分復雜之情形下。

1.2 集成學習

通常一個基模型很難保障預測精度,常見的解決思路是采用樹的集成模型,把多個樹的預測綜合在一起。假設有 K 個樹,樹集成模型為:

其中 fk 是函數空間 F 裡面的一個函數,而 F 是包含所有分類樹的函數空間。樹集成模型參數包括每棵樹的結構以及葉的得分,可以簡單地使用函數 fk 作為參數,Θ = { f1, f2, f3,....,fK}。目標函數包含損失函數和正則化項:

其中:

XGBoost 的正則化項 ? 包括 L1 和 L2 正則。優化目標函數實際上是求解分類樹的結構和葉分數,立即訓練所有的樹是不容易的,這要比傳統的優化問題困難得多。

XGBoost 采用增量訓練(Additive Training):每一步我們都是在前一步的基礎上增加一棵樹,而新增的這棵樹是為修復上一顆樹的不足,我們把每 t 步的預測用 fi ( t ) 表示,這樣我們就有瞭:

利用上面的增量學習的方法,訓練 XGBoost,用牛頓法訓練每一顆樹。

XGBoost 在代價函數裡面加入瞭正則項,用來控制模型的復雜程度,正則項裡包含瞭樹的葉子節點個數、每個葉子節點上輸出的 score 的 L2 模的平方和。從 Bias-variance tradeoff 角度來講,正則項降低瞭模型的 variance,使學習出來的模型更加簡單,防止過擬合,這也是 xgboost 優於傳統 GBDT 的一個特性。XGBoost 借鑒瞭隨機森林的做法,支持列抽樣,不僅能降低過擬合,還能減少計算。XGBoost 在特征粒度上面並行計算權重,在我們的遊戲數據當中有大量的特征,我們去並行計算每個特征的信息熵,加速瞭訓練過程。

2. 埋點數據挖掘與分類過程

對遊戲 K 的數據挖掘過程流程如下:

具體步驟與相關數據如下:

2.1 實驗數據

利用遊戲 K 的 2017 年 8 月 4 日 -8 月 10 日數據,一共有 97203 個用戶,其中 VIP 用戶共有 4448 人。VIP 用戶就是付費玩傢,而非 VIP 用戶就是非付費玩傢,兩類玩傢組成瞭對數據的分類標簽,用於監督學習訓練,該數據量為 25.2GB, 而半年其他日期數據可作為驗證數據集。

2.2 數據清洗

清除瞭一部分從一開始 VIP 字段就為 1 或者以上的用戶,這類用戶一共有 379 人,這類數據為噪聲數據所以清除。

很多流失用戶在遊戲開始時,隻有很少的點擊動作,而這類流失的用戶的點擊動作基本相同,都是在引導階段就流失,而這類用戶大部分因為不喜歡這一類遊戲故而流失,而這類用戶的點擊不能夠提取有效的用戶偏向信息,故而剔除,約 9000 人。

有少部分用戶的起始日期不在 8.4-8.10 這個范圍故而清除,約有 100 人。

有一部分用戶動作發生的時間戳不對故將這類用戶清除約有 90 人。

2.3 特征提取

1)動作點擊概率

在遊戲 K 的數據中,使用用戶點擊的所有動作作為用戶的特征,在這一周的數據裡共有接近 8000 個動作,刪除瞭有 data leaking 嫌疑的動作,比如帶有 VIP,recharge,yueka,chongzhi 等字眼的動作,並且將用戶點擊動作的概率差別較大的動作做為特征。最終抽取出約為 2000 個動作,也就是 2000 個特征。其中:

2)其它信息的提取

使用用戶的金幣變化率,黑鉆變化率,鉆石變化率,戰力變化率為特征。其中每個變化率的計算公式如下:

需要特別註意的是:以上變化率不是隨時間的變化率,而是以玩傢點擊動作量的變化率。

2.4 使用 XGBoost 提取關鍵特征

XGBoost 會提取出對分類有指導意義的特征,並且對特征的重要性進行排名。XGBoost 對每一個特征都會有一個分類重要性的衡量,這個重要性在數學上就是每一個特征在 XGBoost 訓練出來的所有決策樹中的信息熵的平均值。

2.5 分類過程

分類器的量化評價標準是分類的精確率(precision)和找回率(recall)和準確率(accuracy),其定義如下:

分類的具體過程如下:

1)選取遊戲 K2016.8.4-2016.8.10 的數據,提取瞭用戶在成為 VIP 用戶之前的所有的動作數據(成為 VIP 之後就不能夠提取瞭,因為成為 VIP 用戶之後動作數據就不太一樣瞭),每個動作使用點擊概率量化,采用這個指標可以防止遊戲時間長度不同帶來的 data leaking 的問題,而且從某種程度上來說,該值表明瞭用戶的傾向。

2)為瞭防止用戶點擊動作類別的差異性帶來的 data leaking 的問題,剔除瞭隻玩瞭不到兩個小時的的用戶。

3)因為付費用戶和非付費用戶數量上的差異性,采用瞭重采樣的方法獲得瞭平衡的數據,最終訓練集當中的付費用戶為 6042 人(實際為 3021 人),非付費用戶 7095 人。測試數據集當中付費用戶為 896 人,非付費用戶為 5023 人。

最終將上面獲得的特征數據放入 XGBoost 進行訓練,當僅僅有動作特征時最終的測試指標如下:

當加上用戶的金幣變化率,黑鉆變化率,鉆石變化率,戰力變化率時最終的測試指標如下:

2.6 結果及結論

在分類之後 XGBoost 提取瞭 200 個對分類有指導意義的動作,並且統計瞭動作的二級前綴,最終得到前七個有意義的結果如表 1。

表 1: 動作前綴及次數和所屬界面

使用點擊概率的原因是 VIP 用戶點擊次數天然就大於非 VIP 用戶,使用點擊次數也會產生時間上的信息泄露。點擊概率消除這中信息泄露,本身也表明兩類用戶點擊的傾向程度,在數值上更有表達能力。

點擊概率比值 : 將付費用戶的動作點擊概率除以非付費用戶的動作點擊概率,如果大於 1 就說明此動作付費更傾向於點擊。

用 XGBoost 提出來的對分類有指導意義的動作,也就是對應的重要性較大的動作的 VIP 點擊概率,非 VIP 點擊的概率,VIP 和非 VIP 點擊概率的比值以及動作的意義如下面的三個表所示:

表 2:與裝備有關動作

表 3:聊天動作

表 4:Richman 相關動作

上面的表格當中都是用戶的動作類信息,沒有引入其他信息。除瞭上面提到的動作特征外,加入瞭每個用戶成為付費用戶之前的金幣,鉆石,黑鉆,戰力的變化率,這四個屬性的變化率的計算如特征提取第 2 點中描述,相關屬性的變化率如下表所示:

表 5:道具變化率

最終將上面的四個表格中獲取的動作特征放入決策樹中進行訓練和預測,正確率能夠達到 85.01%,說明上面的提取動作相對比較有代表性,非常值得去統計上表當中的相關指標。

實驗中 VIP 的召回率為 0.83,相對比較高,其中將非付費用戶分類成付費用戶,從某種程度上來說可以對這部分用戶進行差異化服務(打折,活動等),從而提高收入。

在表 1,2,3 中,某個動作的點擊概率的計算是付費用戶或者非付費用戶的的點擊數量除以該類用戶的總的點擊數目,表示瞭該類用戶對該動作傾向程度,點擊概率的比值就是付費用戶點擊的概率除以非付費用戶的點擊概率,如果概率比較大於 1 表示付費用戶更傾向該工作,小於 1 表示非付費用戶更傾向該動作。

2.7 結論及分析

由上面的分析,得到結論如下:

1)通過分析表 1 和 2 可知:

從表 1 能夠發現付費用戶行為偏好中," 鍛造 " 行為占優。而鍛造與遊戲的核心追求 -- 裝備密切相關。

表 2 當中的動作的概率比值都大於 1,而且很多都大於 1.5,表示 VIP 用戶比較喜歡裝備和物品之類的道具,而且從沒有標明動作具體意思的動作的表面意思(比如 /itemList/icontent/c1/item2it/mc_list/icontent/c2c2 能夠顯然看出這個是與物品相關的動作而且從統計上面可知這個動作是 VIP 非常傾向的),能夠看出付費用戶非常喜歡裝備,而且用概率值量化的傾向程度說明付費用戶的傾向程度超過瞭非付費用戶的 1.5 倍。

綜合以上數據,我們建議加大遊戲對裝備的視覺展示、頂級裝備的前期試用等手段,進一步培養玩傢對裝備的認知與追求,提高遊戲的付費率。

2)通過分析表 3 可知:

付費用戶的動作的概率比值大於 3,說明 VIP 用戶非常喜歡該類動作,也就是說,VIP 用戶比非 VIP 更喜歡聊天,而且傾向程度是所有動作差距最多的,相差甚遠,這可能是因為付費用戶比較喜歡在遊戲裡的社交,說明在遊戲中加入社交元素有利於玩傢付費。

3)通過分析表 4 可知:

表 4 中的動作都是與遊戲中的 Richman 有關,在表 4 中:點擊 Richman 按鈕是個區分度非常高的動作,很多用戶在這個動作發生的時間段進行瞭付費,猜想這些動作是遊戲當中非常優惠的活動。通過與遊戲 K 的策劃溝通知道,Richman 是遊戲當中非常優惠的活動,這個活動能夠花費不多的鉆石而獲得遊戲裡面的頂級裝備,而這個頂級裝備在商城裡購買時,需要消耗大量的鉆石。

通過數據分析發現,裝備是這個遊戲的核心追求,建議增加遊戲對此類功能的開放次數,提高付費率。

4)通過分析表 5 可知:

付費用戶道具的變化率(也就付費用戶平均每次點擊獲得的道具或者戰力數量)都是高於非付費用戶,付費和非付費變化率比值都大於 1.3,甚至鉆石的變化率比值大於 2。

這是因為此類遊戲玩傢喜歡 ARPG 類的遊戲,對這類遊戲比較熟悉,或者這類玩傢屬於滾服玩傢,所以當發現某一些用戶的熟練程度比較高時,那麼他很有可能成為付費用戶,所以可以給予適當的優惠,從而刺激消費,提高收入。

3. 總結

我們采用 XGBoost 分析遊戲埋點行為數據,取得瞭有意義的結果,通過付費用戶分類,可以發現不同用戶的傾向,可以發現付費用戶行為特征,從而提高付費率。

本文的方法和結果都是初步的,一些更深入的特征挖掘沒有進行。例如,我們沒有考慮玩傢動作之間的相關性,且參與分類的特征數量較小。我們下一步計劃是挖掘動作的組合,且在特征提取之時加入更復雜的特征以及特征組合,並使此過程自動化。

參考文獻

[ 1 ] Nassim Nicholas Teleb: 反脆弱,中信出版社,2014 年

[ 2 ] 周志華:機器學習,清華大學出版社,2016 年

[ 3 ] Nielsen, Didrik, Tree Boosting With XGBoost - Why Does XGBoost Win "Every" Machine Learning Competition?  https://brage.bibsys.no/xmlui/handle/11250/2433761

關於作者:

北京深極智能科技有限公司數據挖掘組 湯州林 景春臻 陳鵬達

北京深極智能科技有限公司遊戲 AI 組 馬恒 郭祥昊 ( 微信號 ) gxh_bj

精彩圖片
文章評論 相關閱讀
© 2016 看看新聞 http://www.kankannews.cc/