如何使用機器學習做遊戲留存數據挖掘?

11-22

前言

網遊產品的一個核心關註點是留存數據,尤其是次留數據和三留數據。最大程度提高遊戲用戶的留存率,對遊戲在競爭激烈的市場存活至關重要。本文嘗試應用統計學分析技術、機器學習和大數據挖掘技術,對遊戲前期埋點數據進行挖掘,從中尋找遊戲顯著統計特征,找到流失玩傢和非流失玩傢的差異,試圖以數據找到遊戲用戶流失 / 留存的原因。

北京深極智能科技是一傢專註遊戲領域數據挖掘、網遊聊天頻道廣告智能識別與過濾、使用深度強化學習改進遊戲制作過程的人工智能創業公司。在本文中,他們的數據挖掘團隊從客觀數據出發來研究遊戲留存數據,屬探索性質,所得結果是初步和粗淺的,但相信此研究方向對於國內遊戲制作量化決策的意義。

1. 研究對象與初步結果

本實驗中使用北京深極智能科技有限公司數據挖掘組湯州林在論文中的同一數據,即一款成功的 ARPG 手機網遊 K(避免廣告嫌疑,下文簡稱 " 遊戲 K")前期的埋點數據數據進行用戶流失分析。埋點數據中包含玩傢 ID,動作時間戳,動作,玩傢關鍵屬性,即玩傢在遊戲中所獲得的金幣,鉆石,所在的等級等特征,見下圖。

圖 1:遊戲 K 埋點數據樣本

為瞭研究卡頓對產品留存影響,我們還研究瞭另外一款頁遊 S,與遊戲 K 進行瞭對比,具體實驗過程和明確結論在本文第 5.3 小節。

實驗取得瞭初步的成果,使用 XGBoost 進行分類,最終得到首日用戶流失分類準確率為 76%,次日用戶流失分類準確率為 75%。我們對提取出的關鍵特征進行瞭深入的分析,並提出瞭若幹建議,以大量的玩傢行為數據所呈現出的規律為決策提供依據。

2. 數據預處理與屬性選擇

2.1 數據清洗

我們選擇瞭遊戲 K 2016.10.10 0:0:47 至 2016.10.13 0:0:0 的埋點數據,剔除起始日期不在 10 日的玩傢,並以自然天進行分割,得到第一,二, 三天的數據,在這三天的數據中分別獲得第一天,第二天,第三天玩傢的特征和標簽。特征包含行為特征和關鍵屬性特征,標簽為流失或者非流失。為簡化分析,本研究中沒有考慮玩傢一天流失回流、二天流失回流等行為比例。

在原始數據中,發現操作動作數量小於 16 的玩傢流失較多,這一部分的玩傢很可能是由於對目標遊戲的題材不感興趣而流失,這部分的玩傢對遊戲的分析無意義,故剔除之。

在第一自然天中總共有 17965 個玩傢,其中有 7142 個非流失玩傢,10823 個流失玩傢,剔除動作數量小於 16 的玩傢,得到非流失玩傢 6958 個,流失玩傢 9326 個,比例約為 1:1.34,大致符合 1:1,故不進行采樣,第二天遊戲玩傢大約有 50% 會流失,所以未進行采樣,在第三天中,由於數據本身的原因(第四天的數據中隻統計瞭很小的時間段內),未進行分析。

2.2 玩傢行為特征

將數據以自然天分割之後,全部的數據中總共有 4867 個動作,剔除一部分冷門動作,冷門動作指操作過該動作的玩傢數量很少的動作,這些動作基本都是玩傢自身固有的聊天動作,基本上這樣的聊天動作隻會有一個玩傢操作,在本實驗中選擇的最小動作支持度是 5,即在所有玩傢的所有點擊動作中,操作該動作的玩傢數量小於等於 5 則會被剔除,由此得到 2675 個動作,並得到玩傢的動作序列,為消除動作序列長度對分類準確率的影響,以詞袋模型處理玩傢的動作序列,並由此得到玩傢動作序列的 TF-IDF 矩陣。

在玩傢的每一個動作序列的每一個動作的頻率計算如下:

  ( 2.1 )  

上式中,   表示動作 i 在動作序列 j 中出現的次數,   表示動作 i 在動作序列 j 中的頻率。, 體現瞭該玩傢對於動作 i 的偏愛程度。

每一個動作的    計算如下,D 表示玩傢的動作序列集合,計算玩傢的總數量與操作該動作的玩傢數量的比值。

  ( 2.2 )

  值體現瞭動作 i 在所有動作序列中的區分程度。

每一個動作序列的每一個動作的    值即為該動作在玩傢序列中的頻率 , 和該動作的   值的積,計算公式如下。

  ( 2.3 )

  值體現瞭玩傢對於動作序列 j 中 i 動作的偏好程度,同時也兼顧瞭動作 i 在所有玩傢動作序列中的區分程度。

2.3 玩傢關鍵屬性特征

根據數據中的信息計算玩傢的派生屬性,由於我們已經剔除瞭遊戲中的臟數據和一些極端數據(不符合統計規律),故使用平均值來進行試驗,派生屬性包含玩傢動作時間間隔的平均值,動作之間的平均時間間隔計算如下,N 表示動作的變化次數。

  ( 2.4 )

派生屬性還包含玩傢的戰力,等級,金幣,鉆石,黑鉆,體力的平均增長速度, 即戰力,等級,金幣, 鉆石,黑鉆,體力的變化值與時間的比值,平均增長速度計算如下,N 表示特征的變化次數。考慮到遊戲玩傢行為的特殊性(睡覺、休息),我們對時間變化量超過五分鐘的也統一按照五分鐘來處理。

  ( 2.5 )

派生屬性還包含動作時間間隔的最大值,動作種類,遊戲時間,是否是 vip 用戶,戰力,等級,金幣,鉆石,黑鉆,體力的最大值,最小值,以及變化次數。

玩傢動作時間間隔的平均值可以反映出玩傢在遊戲中動作的連貫性,可反映出玩傢對於該遊戲的熟練程度。

玩傢動作時間間隔和動作時間間隔的最大值可反映出遊戲是否有卡點。

玩傢的戰力,等級,金幣,鉆石,黑鉆,體力的平均增長速度可以反映出玩傢對於遊戲是否領會,同時也反映瞭玩傢對於遊戲的熟悉程度。

玩傢的戰力,等級,金幣,鉆石,黑鉆,體力的最大和最小值可以反映玩傢在遊戲中的獲得感和失落程度。

玩傢戰力,等級,金幣,鉆石,黑鉆等的變化次數可以反映玩傢在遊戲中的活躍程度。

動作的種類,和玩傢在遊戲中的時長反映瞭玩傢對於遊戲本身的喜愛程度,用戶是否是 vip 用戶,由於隻有 6% 的 VIP 用戶會流失,所以用戶是否是 vip 用戶也反映瞭用戶對於遊戲的喜愛程度。

在以上派生屬性中,玩傢的動作種類,玩傢遊戲的總時長,玩傢戰力,等級,金幣,鉆石,黑鉆,體力的最大值與遊戲時長有一定的關聯,單獨使用玩傢關鍵屬性特征進行分類,得到的分類準確率為 64%。

3. XGBoost 算法介紹

a ) 集成學習

通過對比經典監督學習中不同的算法,綜合考慮模型的效果和可解釋性,我們最終選擇瞭集成學習 [ 2 ] 中的 XGBoost 算法來對本文涉及的遊戲埋點數據進行機器學習。

圖 2:集成機器學習

如上圖所示,集成學習通過構建並結合多個機器學習器來完成學習任務,常可獲得比單一學習器顯著優越的泛化性能。

根據個體學習器的產生方式,目前的集成學習方法大致可以分為兩大類,即個體學習器間存在強依賴關系,必須串行生成的序列化方法,以及學習器間不存在強依賴關系,可同時生成的並行化方法,前者的代表是 Boosting,後者的代表是 Bagging。

b ) XGBoost

在本文中我們將使用集成學習中 Boosting 方法中的梯度提升樹的改進型,XGBoost 算法來進行分析,XGBoost 顯式的將樹模型的復雜度作為正則項加在瞭優化目標函數中,可防止模型過擬合,同時在迭代過程中,允許使用列抽樣,也起到瞭防止過擬合的作用,增強瞭模型的泛化能力。XGBoost 通過計算每一個節點特征分割的基尼系數得到特征權重,並根據權重的大小,自動抽取特征中較為重要的特征,更註重模型的可解釋性。

4. 實驗流程

對於前面清洗出的數據,以自然天進行分割,得到第一,二,三天的數據,在這三天的數據中分別獲得第一天,第二天,第三天玩傢的特征和標簽,通過前面所述 XGBoost 算法進行機器學習。具體參數設定如下:使用 k 折交叉驗證和網格搜索得到最優的參數為學習率 0.1,最大樹的個數為 20,樹的最大深度為 3。

實驗流程如下圖

圖 3:數據處理流程

5. 實驗結果

5.1 首日用戶流失分析

使用第一天玩傢的動作特征和其餘特征使用 XGBoost 進行分類 在測試集上的準確率為 76%,對於非流失玩傢的預測精確率和召回率為 72%, 60% 對於流失玩傢的預測精確率和召回率為 74%, 85%。在第一自然天的玩傢埋點數據中,所提取的高區分度特征如下。

5.1.1 玩傢行為特征

在第一自然天的玩傢埋點數據中,所提取的高區分度動作特征由以下幾個表顯示, A 表示動作,B 表示動作的詳細說明,C 表示點擊該動作的用戶數量,D 表示點擊該動作之後流失的用戶數量,E 表示非流失玩傢點擊該動作的平均次數與流失用戶點擊該動作的平均次數的比值,F 表示該動作在分類器中的重要性。該動作在分類器中的重要性由 XGBoost 根據特征在節點分割時的基尼系數得到。

經過統計,在第一自然天中,非流失玩傢的平均點擊次數為 1240.2,流失玩傢平均點擊次數為 277.9,二者的比值大約為 4.6, 如果 E 列的值大於 4.6 表示非流失玩傢更偏好點這個動作,如果 E 列的值小於 4.6 表示流失玩傢更偏好這個動作,由於使用的是平均值,所以比值可能會在 4.6 附近浮動。

由分類器所提取出的關鍵動作中主城類動作如下表:

表 1

在主城類動作中,技能類動作,以及獎勵,消費類動作區分度較高,非流失玩傢平均點擊動作 " 明日領取 "," 鉆石商城 " 的次數與流失玩傢的比值大於 4.6, 玩傢點擊 " 明日領取 " 可以在第二天獲得相應的裝備,這個動作使得玩傢對於遊戲充滿瞭期待,建議增加相應活動對玩傢的誘惑性,同時增加此類動作的展示,使其在遊戲中更加醒目。

由分類器所提取的關鍵動作中關卡類動作如下表:

表 2

關卡類動作中,動作 " 關卡,獲得新道具 " 和 " 關卡,守護水晶關卡點擊給水晶充能 " 流失玩傢和非流失玩傢點擊次數的比值與平均比值 4.6 接近,說明這些動作所造成的潛在的影響影響瞭玩傢的去留,如道具的吸引程度較大,符合玩傢的預期,建議增大道具的誘惑性。

關卡類動作中,暫停類動作區分度高,暫停類動作具有一定的偶然性,因為玩傢在遊戲中可能被別的事物打擾。其中 " 關卡結束,返回主城 " 動作的留存比較高 , 在遊戲的實際體驗中,過瞭一個關卡,可以選擇繼續進行或者返回主城,返回主城之後,缺乏指導,導致玩傢不知道如何繼續,建議遊戲在玩傢返回主城之後,增加引導。

由分類器所提取得關鍵動作特征中獎勵類動作特征如下表:

表 3

在獎勵類動作中,非流失玩傢的平均點擊次數與流失玩傢的比值均大於 4.6,建議加大遊戲中對於獎勵的誘惑性,以吸引更多的玩傢留下。

由分類器所提取的關鍵動作特征中,裝備類特征如下表:

表 4

以上裝備類動作中,可以發現非流失玩傢平均點擊次數與流失玩傢的平均點擊次數都大於 4.6,其中 "/list/icontent/c1/bgbg" 中非流失玩傢平均點擊次數與流失玩傢的平均點擊次數遠超 4.6 值得註意,這表明非流失玩傢對於裝備類動作的偏好程度要大於流失玩傢,建議增強遊戲中裝備的醒目程度,並增強裝備的感官體驗,以裝備來吸引玩傢。

5.1.2 玩傢關鍵屬性

由分類器所提取的玩傢關鍵屬性特征如下:

表 5

最大時間間隔對玩傢的流失與否無明顯關聯,最大時間間隔本身具有一定的偶然性。

分析上述幾個特征,由於這幾個特征都和時間有很大的關聯,如玩傢玩的時間越長體力的變化次數和最大的體力自然越大,而玩傢玩的時間越長,說明玩傢對該遊戲的喜愛程度越深,自然越不易流失,這也符合我們的一般認知,玩傢的戰力,等級,金幣,鉆石,黑鉆,體力的最大值和變化次數,動作的種類與玩傢的遊戲時間都有有潛在的關系,所以剔除掉時間因素得到其餘派生屬性的特征的重要性如下:

表 6

由上述表格可得非流失玩傢的平均時間間隔要略小於流失玩傢,同時非流失玩傢的戰力增長,鉆石增長和黑鉆增長速度都高於流失玩傢,表明非流失玩傢在操作上的熟練程度要略高於流失玩傢,同時也反映瞭非流失玩傢在遊戲的專心程度上要高於流失玩傢,這可能是因非流失玩傢本身對 ARPG 遊戲熟悉,也有可能是這些玩傢是從別的服務器轉來的用戶。

5.2 次日用戶流失分析

使用第二自然天的用戶的動作特征和其餘特征進行 XGBoost 分類,在測試集上的準確率為 75%,對於非流失玩傢的預測精確率和召回率為 74%,76% 對於流失玩傢的預測精確率和召回率為 76%, 74%。

5.2.1 玩傢行為特征

在第二自然天用戶埋點數據中,所提取的高區分度動作由以下幾個表顯示。 A 表示動作,B 表示動作的詳細說明,C 表示點擊該動作的用戶數量,D 表示點擊該動作之後流失的用戶數量,E 表示的是非流失玩傢點擊該動作的平均次數與流失用戶點擊該動作的平均次數的比值,G 表示該動作在分類器中的重要性。

在第二天中,非流失玩傢的平均點擊次數為 1499.38,流失玩傢的平均點擊次數為 463.64,二者的比值是 3.23,如果 F 列的值大於 3.23 說明非流失玩傢更偏好該動作,如果小於 3.23 說明流失玩傢更偏好該動作。

由分類器所提取的關鍵動作特征中,主城類動作如下所示:

表 7

在主城類動作中," 冒險 "," 好友提示 "," 競技 " 類動作,非流失玩傢的平均點擊次數與流失玩傢的比值均大於 3.23,表明非流失玩傢更加偏好這類動作,其中 " 好友提示 " 體現瞭玩傢在遊戲中的社交性,如果一起玩的人更多,會導致玩傢更願意留下,建議在遊戲中,更多的增加遊戲的社交屬性。

" 主城,收縮按鈕 "," 主城,右下方收縮按鈕 " 流失人數較多,而這兩個動作在首日流失分析中,流失人數同樣也很多,通過進行卡點分析,玩傢在首日和次日的動作隨後的平均時間間隔為 3.4 秒," 主城,收縮按鈕 " 隨後的平均時間間隔為 2.64 秒," 主城,右下方收縮按鈕 " 隨後的平均時間間隔為 2.01 秒,均小於平均時間間隔,可排除卡點對這兩個動作的影響。

由分類所提取的動作類特征中,裝備類動作如下表:

表 8

在以上裝備類動作中,E 列的值均大於 3.23,說明非流失玩傢更偏好遊戲中的裝備,建議將這些動作所展示的裝備設置的更加醒目,更加具有美感和誘惑性,能夠更多的吸引玩傢。

由分類器所提取的關鍵動作特征中遊戲進行中的動作特征如下:

表 9

在以上動作中 :

" 角色戰敗,點擊此處繼續 " 動作的流失玩傢較多,而且 E 列的值小於 3.23,同樣 " 角色戰敗,再來一次 " 動作 E 列的比值同樣小於 3.23,流失玩傢更偏好點擊這些動作,表明,流失玩傢在進行遊戲時,戰敗的可能更大,同時對於戰敗也更加敏感,符合預期,建議遊戲適當的降低難度。

" 競技場,自動戰鬥 " 動作流失玩傢玩傢較多,而且 E 列值小於 3.23,表明流失玩傢更偏好進行自動戰鬥,建議遊戲增加玩傢戰鬥時的場面,使戰鬥場面更具美感,增強遊戲的感官體驗,以吸引玩傢。

" 恭喜獲得提示,點擊關閉 "," 第一章第七關,進入後,引導員出現,點擊引導員或對話框 " 兩個動作 E 列的值均小於 3.23,說明流失玩傢更傾向於獲得提示,這也反應瞭流失玩傢對於遊戲熟悉度不夠,建議適當加強引導。

" 網絡連接中,點擊屏幕 " 動作的流失人數較多,說明因為網絡的原因使得玩傢缺乏瞭耐心,繼而導致流失,流失玩傢更偏好點擊,因此技術優化提升遊戲流暢度在遊戲前期很重要。

5.2.2 玩傢關鍵屬性

由分類所提取的關鍵屬性如下表:

表 10

剔除時間影響之後的關鍵屬性如下表所示:

表 11

在第二自然天中,非流失玩傢的動作間的平均間隔小於流失玩傢,同時非流失玩傢的戰力平均增長速度,鉆石的平均增長速度都高於流失玩傢。

5.3 卡點分析

在網遊中,技術原因或網絡原因導致的客戶端卡頓,對於遊戲玩傢體驗和留存有很大影響。本小結試圖量化評估此影響。

針對分類器所提取出的關鍵動作進行深入的分析,探究卡點與動作留存比之間的關系,

對遊戲進行卡點分析,即對玩傢的動作留存比和隨後的時間間隔平均值(即卡頓時間)進行相關性分析,動作留存比定義如下。

  ( 5.1 )

我們計算動作留存比和動作隨後的時間間隔之間的皮爾遜相關系數。針對兩個變量 X 和 Y 皮爾遜相關系數計算公式如下:

  ( 5.2 )

其中 cov ( X,Y ) 為變量 X,Y 之間的協方差,計算公式如下,其中 n 表示變量取值的個數。

  ( 5.3 )

公式 ( 5.2 ) 中 X σ 表示變量 X 的標準差的計算公式如下,E ( X ) 表示變量 X 的數學期望。

  ( 5.4 )

繪制首日玩傢動作留存比和卡頓時間曲線如下圖:

圖 4:首日玩傢動作留存比和卡頓時間曲線

所得到的首日玩傢動作留存比和動作卡頓時間的相關性為 0.09,表明遊戲卡點對首日玩傢流失的影響較小。

繪制次日玩傢動作留存比和卡頓時間曲線如下圖:

圖 5:次日玩傢動作留存比和卡頓時間曲線

所得到的次日玩傢動作留存比和卡頓時間的相關性為 0.10,表明遊戲卡點對次日用戶流失的影響較小。由此可得,遊戲 K 在技術層面已充分調優,卡頓對於玩傢流失的影響可忽略不計。

作為對比,北京深極智能科技公司數據挖掘組對另外一款網遊產品 S 進行瞭同樣的卡頓時間 - 流失分析,數據如下:

表 12:遊戲 S 卡頓時間與留存比數據

繪制曲線如下圖:

圖 6:遊戲 S 前期動作留存比和卡頓時間曲線

可以算出,流失 / 存留比與卡頓時間相關性為 0.929, 是高度正相關。這說明遊戲 S 的前期,卡頓是玩傢流失的主要原因,因此我們得出結論:遊戲 S 需要聚焦技術調優來提升留存,暫不用考慮美術或策劃設計因素。研發商因此調整瞭原定的用修正英雄屬性來提升留存的策略,該遊戲下一次測試數據表明,流失 / 存留比與卡頓時間相關性降低到 0.71,技術原因造成的卡頓對流失的影響降低瞭。

不同遊戲前期的卡頓以及卡頓對留存的影響是不同的,本小節提供瞭一種量化度量辦法,研發商可以用來確定卡頓的影響,從而決策是否需要進行技術調優。

6. 總結與後繼工作方向

本文的思路和算法取得瞭初步結果,可以幫助遊戲研發商借助客觀數據挖掘改進遊戲。但我們研究也存在一些問題,需要在後繼研究中改進:

data leaking 問題沒有很好的解決,影響瞭分類準確率。

從思路上來說,玩傢點擊的不一定是他們感興趣的(比如,遊戲強引導讓玩傢不得不點),而玩傢脫離強制引導後,沒點擊的行為才是一個強行為,其意義更重大。(感謝阿裡雲數據處理專傢王函的寶貴意見,見文獻 [ 3 ] 的評論部分)

在我們的分析過程中,沒有考慮玩傢動作之間的相關性,而關聯動作挖掘其實很重要。

參考文獻

[ 1 ] 李航,統計學習方法,清華大學出版社,2012.3

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

[ 3 ] 湯州林 , 景春臻 , 陳鵬達:基於機器學習的遊戲付費用戶特征挖掘 ,  基於機器學習的遊戲付費用戶特征挖掘

[ 4 ] Nielsen, Didrik, Tree Boosting With XGBoost - Why Does XGBoost Win "Every" Machine Learning Competition?  Tree Boosting With XGBoost - Why Does XGBoost Win "Every" Machine Learning Competition?

關於作者:

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

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

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