機器學習落地遊戲實踐簡析
1.1機器學習是什麼
機器學習定義
給定(訓練)資料,發現一些潛在的模式並將這個模式應用於新資料。機器學習的核心是“使用演算法解析資料,從中學習潛在的模式,然後對世界上的某件事情做出決定和預測”。
機器學習與人工智慧的關係
- 機器學習是人工智慧的一個分支,使用特定的演算法和程式設計方法來實現人工智慧。人工智慧致力於創造出比人類更能完成複雜任務的機器。
- 深度學習是機器學習的一個子集,專注於模仿人類的神經網路的生物學和過程。
基本術語
- 資料集、屬性、樣本空間、特徵向量、維數
- 從資料中學得模型的過程稱為“學習”或“訓練”,這個過程通過執行某個學習演算法來完成
1.2發展歷程與流派
機器學習是人工智慧研究發展到一定階段的必然產物
推理期:
二十世紀五十年代到七十年代初,人工智慧研究處於“推理期”,那時人們以為只要能賦予機器邏輯推理能力,機器就能具有智慧;這一階段的代表性工作主要有A.Newell 和 H.Simom的“邏輯理論家”程式以及此後的“通用問題求解”程式等。
知識期:
二十世紀七十年代中期開啟,人工智慧研究進入了“知識期”,在這一時期,大量專家系統問世,在很多應用領域取得了大量成果並獲得圖靈獎,但是面臨明顯知識工程瓶頸:由人來把知識總結出來再教給計算機是相當困難的。
學習期:
二十世紀八十年代進入了“學習期”,“從樣例中學習”的一大主流是符號主義學習,其代表包括決策樹和基於邏輯的學習;典型的決策樹學習以資訊理論為基礎,以資訊熵的最小化為目標,直接模擬了人類對概念進行判定的樹形流程。基於邏輯的學習著名代表是歸納邏輯程式設計(ILP,Inductive Logic Programming)
統計學習:
二十世紀九十年代中期,“統計學習”登場並佔據主流,代表性技術是支援向量機(SVM,Support Vector Machine)以及“核方法”(kernel methods)
深度學習:
機器學習中一種基於對資料進行表徵學習的演算法
機器學習現今已經發展成為一個相當大的學科領域,本文僅是管中窺豹,很多重要技術不再展開贅述,感興趣的讀者可查閱《神經網路與深度學習》、《機器學習》等書籍。
機器學習的五大流派,主要有符號主義、貝葉斯派、聯結主義、進化主義、行為類推主義等
2.機器學習演算法圖譜
2.1監督及非監督式學習
監督式學習
採用標記資料以特定的模式來識別每種標記型別的新樣本,主要型別是分類和迴歸
非監督式學習
訓練資料沒有標籤或答案,目的是找出資料內部的關聯和模式、趨勢。分為聚類和降維
強化學習
給予演算法一個不斷試錯,並具有獎勵機制的場景,最終是演算法找到最佳路徑或者策略
半監督式學習
在訓練階段結合了大量未標記的資料和少量標籤資料
3.上線流程簡述
3.1 機器學習模型上線流程
3.1.1選擇資料(特徵工程)
訓練資料、測試資料、驗證資料(訓練效果、泛化效果、驗證效果)---將原始資料(日誌、產品購買的歷史記錄等)資料清洗成可以由學習演算法在訓練和預測中使用的向量(vector)的過程
3.1.2資料建模
使用訓練資料來構建使用相關特徵的模型
3.1.3訓練模型
特徵資料接入演算法模型,來確定機器學習演算法的型別、特徵、引數等
3.1.4測試模型
使用測試資料檢查被訓練模型的表現(準確率、召回率)
3.1.5驗證模型
使用完全訓練好的模型在新資料上做預測
3.1.6調優模型
使用更多資料、不同特徵或調整過的引數來提升演算法的效能表現
4.PUBGM專案落地實踐
4.1 演算法接入背景
- 遊戲上線超過2年,海量的歷史資料沉澱
- 現有商業化系統存在一定的可提升空間
- 海外遊戲專案首次接入演算法,利於沉澱經驗
4.2 演算法上線流程-產品側主要工作
前面已經講述過演算法的整體上線流程,產品側的工作重點在於訓練資料梳理涉及的特徵工程及調優模型設計的特徵,整體流程回顧:
選擇資料(特徵工程)
訓練資料、測試資料、驗證資料(訓練效果、泛化效果、驗證效果)---將原始資料(日誌、產品購買的歷史記錄等)資料清洗成可以由學習演算法在訓練和預測中使用的向量(vector)的過程
具體步驟
特徵數量
遊戲道具特徵s1(s11,s12,s13,...,s1k),s2(s21,s22 ,... s2k)...n
、使用者特徵u(u1,u2,u3 ... un)
建立訓練例項,u(u,si)(1 – 購買)和(u,sj)(0 – 未購買)
特徵邏輯
梳理特徵具體至Tlog表名、欄位提取邏輯,提取資料進行清洗
專案實踐
總計梳理900+特徵及日誌提取邏輯,提供給演算法團隊進行資料建模、訓練及測試,在演算法模型不變的情況下,特徵會顯著影響演算法效果
資料建模、訓練、測試、驗證模型由資料探勘側負責進行,此處不再展開贅述
4.3 具體落地演算法簡析
決策樹演算法
決策樹演算法將一組“弱”學習器集合在一起,形成一種強演算法。一種流行的決策樹演算法是隨機森林。在該演算法中,弱學習器是隨機選擇的,這往往可以獲得一個強預測器。
優點:
1)概念簡單,計算複雜度不高,可解釋性強,輸出結果易於理解;
2)資料清洗工作較為簡單,能夠同時處理資料型和常規型屬性,可擴充套件性強;
缺點:
1)容易過擬合
2)對於那些各類樣本數量不一致的資料,在決策樹當中,資訊增益的結果偏向於那些具有更多數值的特徵
3)資訊缺失處理困難,人為改變特徵容易使得分類器判斷錯誤
整合學習原理
整合學習歸屬於機器學習,他是一種「訓練思路」,並不是某種具體的方法或者演算法;它並沒有創造出新的演算法,而是把已有的演算法進行結合,從而得到更好的效果。
整合學習會挑選一些簡單的基礎模型進行組裝,組裝這些基礎模型的思路主要有 2 種方法:
- Bagging(bootstrap aggregating的縮寫,也稱作“套袋法”)
- Boosting
- Bagging的核心思路 :民主
- Bagging 的思路是所有基礎模型都一致對待,每個基礎模型手裡都只有一票。然後使用民主投票的方式得到最終的結果。
- 大部分情況下,經過 bagging 得到的結果方差更小。
具體過程:
1)從原始樣本集中抽取訓練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,得到k個訓練集。(k個訓練集之間是相互獨立的)
2)每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型。(注:這裡並沒有具體的分類演算法或迴歸方法,我們可以根據具體問題採用不同的分類或迴歸方法,如決策樹、感知器等)
3)對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;對迴歸問題,計算上述模型的均值作為最後的結果。(所有模型的重要性相同)
- 主流方式:在 bagging的方法中,最為主流的隨機森林:bagging + 決策樹 = 隨機森林
Boosting的核心思路 :挑選精英
- Boosting 和 bagging 最本質的差別在於他對基礎模型不是一致對待的,而是經過不停的考驗和篩選來挑選出「精英」,然後給精英更多的投票權,表現不好的基礎模型則給較少的投票權,然後綜合所有人的投票得到最終結果。
- 大部分情況下,經過 boosting 得到的結果偏差(bias)更小。
1)通過加法模型將基礎模型進行線性的組合;
2)每一輪訓練都提升那些錯誤率小的基礎模型權重,同時減小錯誤率高的模型權重;
3)在每一輪改變訓練資料的權值或概率分佈,通過提高那些在前一輪被弱分類器分錯樣例的權值,減小前一輪分對樣例的權值,來使得分類器對誤分的資料有較好的效果。
- 主流方式:在 boosting 的方法中,比較主流的有?Adaboost?和 Gradient boosting(梯度提升技術)。
4.4 遊戲商業化系統落地
遊戲內幸運空投系統
- PUBGM幸運空投系統可簡單理解為“推薦商店”,表現形式包裝為遊戲大廳按照指定機制觸發的幸運空投,主要投放外顯類道具
- 演算法模型:整體整合學習Boosting組訓練思路的效果優於隨機森林, Boosting訓練思路用時間遞減熱銷的模型整體購買率最高遠超其他模型3倍以上;幸運空投主要基礎模型(基學習器)為random forest(隨機森林),GBDT(梯度提升技術), logistic regression(邏輯迴歸)
- 前端介面優化:突出倒數計時、道具折扣及新增可穿戴功能,可購買倒數計時的時間縮短會造成一定的壓迫感吸引使用者短時間做出決策,道具品類出現的頻率和折扣節奏的控制會造成一定的損失感吸引使用者進行付費
- 經驗小結:特徵工程對演算法效能、模型調優的影響較為重要,產品側可提出較多高重要度特徵;整合學習演算法集合基演算法模型(基學習器)的優勢,相對於單一機器學習的效果更好。
不放回抽獎系統
現存問題
- 抵扣券的領取及使用分散在不同的介面,整體邏輯未閉環
- 資料分析,發現抵扣券的使用數量較少,且固定梯度發放,絕大部分使用者只使用較少數量抵扣券,存在一定的擼羊毛行為
解決方案
- 新增抽獎介面掉落小空投功能,玩家抽獎時觸發掉落抵扣券,可以直接領取並使用,實現邏輯閉環
- 根據使用者抽獎行為包括歷史/當前抽獎輪次及所獲得的道具,實時觸發抵扣券,提升抽獎次數,從而提升付費ARPU
XGBoost演算法原理
- uxgboost能自動利用cpu的多執行緒,而且適當改進了gradient boosting,加了剪枝,控制了模型的複雜程度;
- uxgboost則對代價函式進行了二階泰勒展開,同時用到了一階導數和二階導數;
- uxgboost在代價函式中加入了正則項,用於控制模型的複雜度。正則項裡面包括樹的葉子節點的個數、每個葉子節點上輸出的score的L2模的平方和。
具體過程
lXGBoost演算法的基本思想與GBDT類似,不斷地地進行特徵分裂來生長一棵樹,每一輪學習一棵樹,其實就是去擬合上一輪模型的預測值與實際值之間的殘差。當我們訓練完成得到k棵樹時,我們要預測一個樣本的分數,其實就是根據這個樣本的特徵,在每棵樹中會落到對應的一個葉子節點,每個葉子節點就對應一個分數,最後只需將每棵樹對應的分數加起來就是該樣本的預測值。
5.其他遊戲商業化應用現狀
5.1 精細化概率
《英雄聯盟》的頁面抽獎
- 玩法:十連抽,可合成或者熔鑄,有里程碑
- 演算法:個性化概率,檢測道具保有量及充值額度
- 暴擊的時機、物品(使用者喜好、熱銷、限定、好友匹配度)、分使用者型別
CFM的放回抽獎
- 玩法:18個道具,放回抽獎
- 演算法:個性化道具概率
- 對於不同使用者型別的玩家,得到極品武器的期望有一定的差異
5.2 實時彩蛋
CF的王者輪迴及千變輪迴、COD的奪寶行動、劍靈的洪門祕寶、NBA的巨星陳列室等
- 玩法:不放回抽獎邏輯,N個道具,、N個觸發彩蛋、道具自選
- 演算法:聚類熱銷個性化獎池;實時彩蛋模型
CF的每日一抽
- 玩法:6個道具,不放回抽獎;有彩蛋;頂級道具自選;每日重新整理道具和輪次
- 演算法:實時彩蛋模型
5.3 個性化獎池
《英雄聯盟》的武神降臨抽獎、雞里奧寶典等比較具有代表性
今天,機器學習經過半個世紀的發展,已經進入電腦科學的諸多分支學科領域中,並且與普通人的生活密切相關,本文僅是結合自身在PUBGM遊戲中的落地實踐進行拋磚引玉,嘗試針對遊戲商業化相關的機器學習分析,歡迎交流討論,新年快樂哇!
相關文章
- 《Python機器學習實踐》簡介Python機器學習
- 位元組跳動機器學習系統雲原生落地實踐機器學習
- Scikit-Learn機器學習實踐——垃圾簡訊識別機器學習
- 機器學習實踐指南機器學習
- 機器學習總結 (機器學習實踐筆記)機器學習筆記
- Serverless Kubernetes 落地實踐Server
- 公有云在中國實踐落地
- 向量資料庫落地實踐資料庫
- ML-機器學習實踐機器學習
- Entitas實現簡析
- 增長黑客國內落地實踐黑客
- 優酷弱網平臺落地實踐
- EFK 配置geo-ip落地實踐
- 得物染色環境落地實踐
- 可落地的DDD程式碼實踐
- 評書:《美團機器學習實踐》機器學習
- DevOps落地實踐,BAT系列,敏捷看板devBAT敏捷
- 對SVN的落地與實踐總結
- Kubernetes在宜信落地實踐
- Serverless 架構落地實踐及案例解析Server架構
- vivo雲原生容器探索和落地實踐
- vivo 製品管理在 CICD 落地實踐
- 實時數倉在滴滴的實踐和落地
- 基於 KubeVela 的機器學習實踐機器學習
- 遊戲轉化率①:整體簡析篇遊戲
- 機器學習(一):5分鐘理解機器學習並上手實踐機器學習
- 遊戲中的牛頓力學,簡析遊戲物理機制遊戲
- DevOps與傳統的融合落地實踐dev
- Kafka 負載均衡在 vivo 的落地實踐Kafka負載
- TDengine 在蔚來能源系統的落地實踐
- Flink 在米哈遊的落地實踐
- Mybatis Plus 框架專案落地實踐總結MyBatis框架
- 最終一致性落地實踐
- 【機器學習PAI實踐五】機器學習眼中的《人民的名義》機器學習AI
- 淺析手機抓包方法實踐
- 回合制遊戲先後手平衡簡析遊戲
- 簡析網路競技遊戲匹配機制遊戲
- 【遊戲分析】異界鎖鏈設計簡析遊戲