机器学习落地游戏实践简析
1.绪论与前提 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 算法接入背景
![]() 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 种方法:
具体过程: 1)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的) 2)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等) 3)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
![]() Boosting的核心思路 :挑选精英
1)通过加法模型将基础模型进行线性的组合; 2)每一轮训练都提升那些错误率小的基础模型权重,同时减小错误率高的模型权重; 3)在每一轮改变训练数据的权值或概率分布,通过提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来使得分类器对误分的数据有较好的效果。
![]() 4.4 游戏商业化系统落地 游戏内幸运空投系统
![]() 不放回抽奖系统 现存问题
解决方案
![]() XGBoost算法原理
具体过程 lXGBoost算法的基本思想与GBDT类似,不断地地进行特征分裂来生长一棵树,每一轮学习一棵树,其实就是去拟合上一轮模型的预测值与实际值之间的残差。当我们训练完成得到k棵树时,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后只需将每棵树对应的分数加起来就是该样本的预测值。 ![]() 5.其他游戏商业化应用现状 5.1 精细化概率 《英雄联盟》的页面抽奖
![]() CFM的放回抽奖
![]() 5.2 实时彩蛋 CF的王者轮回及千变轮回、COD的夺宝行动、剑灵的洪门秘宝、NBA的巨星陈列室等
![]() CF的每日一抽
![]() 5.3 个性化奖池 《英雄联盟》的武神降临抽奖、鸡里奥宝典等比较具有代表性 ![]() ![]() 今天,机器学习经过半个世纪的发展,已经进入计算机科学的诸多分支学科领域中,并且与普通人的生活密切相关,本文仅是结合自身在PUBGM游戏中的落地实践进行抛砖引玉,尝试针对游戏商业化相关的机器学习分析,欢迎交流讨论,新年快乐哇! |
原创文章,作者:,如若转载,请注明出处:https://www.3og.cn/51484.html