统计分析和智能聚类在游戏数据中的应用

2021-01-20
2020年12月18日,数数科技在广州举办了游戏数据分析高端分享沙龙,特邀了擎天柱的数据负责人武彤老师进行分享。在本次活动中,武彤老师结合实际业务分享了企业在数据平台的实践经验,包括行业内目前在数据体系建设上的常见问题,和数据分析的实战案例,从数据统计到智能聚类分析,由浅入深。本文为活动现场武彤老师的内容部分实录,需要观看完整视频的可以访问数数科技官网。

今天非常荣幸的能够在这里跟大家,做一些我们公司在数据工作业务上的一些分享。分享主要是三个内容:

01、平台选型考量

在使用TA系统之前,我们内部是有一套系统的,实话说它应该是叫一个运营的工具,是这样的一个定位,它包含我们的比如说封号发奖这样一些功能,同时兼顾了数据库的功能。我们在用我们自己搭建的平台做数据分析的流程,其实是要把数据取到本地,在本地做一些计算,然后再得到相应的数据,这个过程大家可以想象,是非常漫长和痛苦的。在随着数量和业务量的增长,我们就产生在外部选择一个平台的迫切需求。

对于我们中小型公司来说,自建平台其实是一个成本很高的一个事情,尤其你的业务量不高的情况下,所以我们从三个角度去考量,当时也在市场上看了很多个,一个是成本,一个是效率,一个是服务。从成本这部分我们认为有显性和隐性两方面,显性都很简单,就是我们的开发以及后续迭代的成本,引进的成本包含沟通成本,也就是需求在实际落地的过程中的这些沟通成本,当需求越复杂的时候,沟通中的信息损失就会越多,交接成本也是同样的道理。但是作为中小型公司而言,我们无法投入项目,输出这样的一个人力资源和技术水平去做这件事。

02、关于服务

我们首先考虑的是第三方系统要支持私有化部署,也就是数据储存在哪的问题,当然市面上是有些平台是免费的,或者说收一部分费用,收费价格偏低,但是它存在的问题就是数据是要存在他们那边的,不过,我们的数据存储在本地是一个原则性的需求。综合来看,我们认为 数数科技的TA系统性价比是相对高的,在效率上也非常高,支持私有化部署,在后续的客户服务和功能迭代上,也是我们比较满意的,尤其在客户服务方面,数数科技的伙伴们也伴随我们度过了很多个加班的夜晚。功能迭代这方面,我们也是配合从1.0做到现在的3.0的版本一步步走过来。


03、TA系统下的应用经验

接下来跟大家介绍一下我们在TA系统下的应用经验。

先看流程部分,如果是我们传统的BI报表,首先会遇到的一个问题是复杂度的问题,因为你的需求要同时去想,至少涉及到研发和平台部,平台又要分后端和前端分别负责计算和展示的部分,最后你做一个验收。这套流程走下来,它的时间很长,而且跨度很大,跨部门的难度很大,中间万一出了bug,是研发上报的数据有问题,还是平台的计算逻辑有问题,还是平台的前端展示有问题,很难排查。整个过程就会很漫长,它的成本也很高。在接入数数的TA之后,我们现在的流程依然是提出需求,但是只需要研发做一个数据埋点,刚刚讲到埋点的数据会直接回复到我们的平台本身的数据库里面,然后我们只要对数据来源,数据本身做一个验收就可以了。比如说我们去跑一下他的生成数据事件,看一下这个升级的数据是不是对的,就可以做我们的报表了,整个复杂度和时间是有很大优化的。所以我们可以说TA平台提供的这套模块化的工具集带来的一个流程优化比较显著。


我们围绕TA系统的一些实践和探索。包含三个部分:指标监控 / 周期报告 / 描述统计。

// 指标监控:

这部分其实就是大家理解的看板,我们给它分为三类,一个叫核心指标,一个叫系统玩法,一个叫异常监控。


  • 核心指标这部分我们的目的就是让策划能够一眼就很明确的知道游戏现在的运营情况;
  • 系统玩法就是更细一级的让每个负责系统的策划去了解当前系统的一个情况;
  • 异常监控就是一些关键服务的监控。


首先核心指标这部分我们会使用TA的看板功能,比如说这是TA看板,这条实线是当前月的一个流水的累积,这个虚线是上个月的累计,如果这里有一个完整的数据,就可以看到两个累计值在哪里出现差异,它总体趋势是怎么样的,能够方便大家非常快速的建立一个整体的观感,你在这里可以对流水,新增,活跃这种关键信息做一个统计,展示最关键的。在指标监控这个部分,核心指标这部分,我们会通过报表的形式去列出一段时间内的核心指标的变化,数值变化情况,同时也会用这种属性拆分或者用户产生的方式,就把它拆分成不同的玩家的情况,比如说我今天的新增活跃,但是付费额这部分我们会拆除新增的付费,我们主要会看常规的新增,活跃,付费以及关键商品,关键商品可能是月卡的这种核心玩法总结,这是核心指标的部分,这部分主要目的就是帮助大家迅速的,全面的建立游戏数据中心。


到了系统玩法这部分,各个玩法会有不同的侧重。对于养成玩法来说,我们觉得还有参与意愿,就是参与的一个情况和参与意愿的情况,以及当前的养成进度的分布的情况,尤其对于我们公司卡牌玩法会比较多,所以我们关注它的参与意愿,以及它的分布主要体现为范围的分布,你还会关注它的体验,也就是平衡性的部分。平衡这个部分大家可以看到这是一点,比如说我们进攻阵容,会有一些阵容的配置,进攻阵容的偏好,按天的波动情况,可以看到有一个阵容它是异常的高,远高于其他的。另外一个是单位时间收益,我们认为单位时间收益能够显著的影响玩家的体验。所以我们关注这一点。资源的部分很简单,如果是真实值的话,大家可以看到每天资源的产出或者消耗按途径的分布,就是它在哪些途径产出和消耗,以及库存的按天的一个沟通情况。比如说哪天的库存高了,还是说它整体是一个很好的趋势?我们活动这部分指标相对简单一点,我们会把大量的报表塞看板里面,让策划去看这个数据的时候,非常直观的建立一个印象,就是我这期活动相比于之前的那一期是一个什么样的状态,是什么样的水平?那么商品就更简单了,我们看商品的人数,次数和商品的种类,商品可以重新做分类。这是指标监控的部分,也是我们日常使用中最长的一个部分,日常观看的部分。


接下来还有一个是异常监控的部分,大家可以看到,比如说这里就是同一个IP的角色数据监控我们游戏内工作室的一个数量,因为是测试组的数据,所以大家可能看的不是很直观,但是大家可以明显的看到几个IP是最高的,方便去定位我们当前的新的整个环境的地方,包括我们日质量监控的一些情况。

// 周期报告:

除了我们常规每天都要看的数据之外,我们可能会在一些周期性的节点做一个周期报告,比如说日报或者周报统计。在这里面我们使用 TA系统的API的功能,直接从数据库去拉取数据,然后结合我们其他数据库的数据,我们本地数据做一个统一的计算。当然大家也可以把别的数据倒到数据库里,这样也是可以的,这是我们的一个做法。


// 描述统计:


在讲完了系统玩法和异常监控之外,就来到我们一些数值分析的部分,这里我们的想法或者说思路其实也是比较传统的,还是用户分群或者说精细化运营这么一套思路,具体我们是怎么结合TA系统实现的呢?我们主要在这个部分用的是用户标签的功能,给用户打上标签,然后把标签做一个抽样,分出来相应的群,再去观察它的用户描述,观察它的行为,以及观察它的周期流转。比如说我们会对玩家分类,就是边缘日常玩家有100人,这是一个用户描述的部分,行为统计可能是针对不同的玩家去看它的参与率,然后跟踪,比如说用户A在12月还是一个边缘日常玩家,1月变成一个核心竞技玩家,我们会关注用户群的有关情况,在这里我们主要用到的是TA的用户标签功能。


刚才我讲到一个自定义条件,这种我们可以去定义它的时间,充值金额,首末次特征以及指标值的标记,什么情况下需要用到ID上传呢?一般是这样的几个情况,一个是复杂数据结构,比如说一个多层嵌套,包含各种各样奇怪数据类型。其他平台数据有些时候是导进来也比较麻烦,复杂特征处理,比如说你要对一系列的玩家,一系列的周期内的行为做一个数字特征的处理,然后你要看他周期内的,就是他今天打了50场,他明天打了30场,你看这10天整个趋势,它是负的还是正的,我们会在离线的时候去处理。数值获取我们还是用TA的这套系统去取一些用户的当前属性值,区间行为和历史累计值,对其他的数据我们也会做一些特殊处理。


举例给大家说,比如说大家可以看到这里是一个原始的付费情况,包含用户的ID事件发生的时间,他购买的商品类型和他购买商品的一个金额,我们对这样的原始数据做一个聚合的操作会得到什么呢?用户A在我们指定的区间充100块钱,这100块钱里面有99块钱买了战力,有一块钱买了礼包没有买钻石。在这里我们把它的数值特征转化成比例特征,用户A这100块钱里面耗在战力上的比例是99,在每日礼包的比例上是1,用在礼包上的比例就只有1%。特征处理的这种目的是什么?比如说它主要是做一个边界值的转换,如果只看这种聚合后的数据的话,大家可以看到玩家花了90多块钱在战力上,你说玩家是不是偏好战力?我一个大R我在钻石上花了5000块钱,我一个中R的钻石上花了500块钱,你说谁偏好钻石?

你能定义这样一个绝对值的边界值去做用户的分类或者分成,所以我们会把这种数据做一些特征化的处理,特征处理之后,我们会把这些特征人工分类一些属性特征,比如说峰值100的我们叫小R (现在也是估值1000的),我们对于这种付费占比的,可能以50%做一个标志边界,这是我们在日常工作中做特殊处理的一些基本的经验。一些维度的部分我们是不需要做处理的,比如玩家的付费额,老玩家等级,玩家占比。但刚刚讲到的商品付费比例,这种我们做处理,还有消耗的比例之类的一些问题。


然后在统计部分我们会有一些数字特征的处理,比如说看离散程度,我们也会对一些数据做一个提示处理,也标准化,比如说明月的地缘日,一个是5月3号,一个是6月3号,可能3号是他的发行日,所以我们做标准化之后就能够提取出这样一个特征,提取出特征之后,我们就获得了一个相当于特征处理后的一些数据。对这些数据我们的目的是根据玩家的数据为玩家做一个不同的分类,我们当前使用的主要还是人工分类的方式,还是一个比较原始的方式。这个分类我们会首先把一些相近的数据提取出来,比如说总场次pvp占比和pvp占比,这都属于战斗数据对吧?我们把这个部分和 pvp占比的部分和它的数字提取出来,我们认为这是属于一类。然后我们去观察这个数据它有什么样的一个分布特征或者相关特征呢?

我们会去回过头来再依据这些特征,把这一些多维的数据,一定是可预设到的,归此类上。比如说用户A它总场次是271,我们认为它是轻度竞技无偏好的玩家。用户B总场次是963,我们就认为它是重度偏好pvp玩家。同样的道理,我们可以把这样的方法运用到多种其它类别的这种特征上,就会得到各种各样的子类,然后再把这些子类做一个组合,我们就可以得到一系列很奇怪的或者说很长的一个类的描述,比如说轻度无偏好,弱付费低活跃,弱社交玩家。你来做对这些组合之后,最后我们会观察它的一个分布情况或者说人数情况,这方面主要还是基于你自己的业务理解和业务经验,去对这些组合结果再做一个抽样。


比如说我们认为A就是1个边缘日常型玩家,像这种还是比较好理解的,很好的就能够把它归类为它是什么样的一个玩家,在这个过程中我们还可能会遇到复杂的,有可能一个数据或者说一个类别的比重非常多,它可能有10个维度,这个时候我们通常采用的1个方法是判断相关性。判断相关性,我们就可以舍弃一些维度,这样的话就可以达到效果。我们最近也在探索一些关于自动聚类方面的工作,就是利用 TA或者一些平时获得一些方法,去做一些自动识别的探索,但自动识别里面大家也知道存在一个比较难搞的问题,就是它的可解释性非常的差,所以这方面是我们还在探索的一个部分,希望能跟大家多交流这方面的资源。

整体来说,我们基于TA的使用经验就是这些,其实在我们的日常运用,在我们的一些定制化需求,在我们的一些深度分析方面,TA系统都给到我们很强大的一个支撑,这是对于我们中小型公司来说,它的性价比是非常高的。还有一个非常重要的点没有说,我们来看一下从TA得到的分类数据之后,因为我们刚刚已经通过TA取得了一些分类,通过把这些离线计算得到的分类,再回传给TA这个平台。然后回传之后,我们就可以利用一些统计分析的模型和工具去做相应的分析了,比如说我们回访回来的玩家是某一个类型的,我们可以观察他的描述,描述观察他的行为和观察他的周转。

这就是我们所有的分享的内容,谢谢大家。


最新评论
暂无评论
参与评论