以数据挖掘技术预测用户流失情况的方法
所有网络服务及在线游戏的硬伤是什么?也就是游戏开始头几分钟或几小时内出现的大量用户流失情况。已经有不少人通过多种方式探索这个问题的解决之道,其中多由界面的易用性和简洁性,免费试玩模式的有效性,难度曲线,以及新手教程质量等方面入手。这些都是公认的重要考虑因素。
而我们的目标是研究新用户为何早早退出游戏,并尝试预测哪些用户会提前离开。在此,我们以MMOPRG游戏《永恒之塔》为研究案例,但其研究结果也适用于多种服务和游戏类型。虽然这款游戏在调查期间是一款纯订阅游戏,并采用7天免费试玩至20级的模式,多数流失用户还不到付费阶段就已经离开游戏。我们主要研究的是促使用户离开的游戏内部因素。
AION(from aiongamers.com)
行为研究表明,休闲玩家的注意力很有限。他们可能今天离开游戏,明天甚至就想不起来自己曾安装并玩过这款游戏。如果玩家离开游戏,我们就得立即采取措施让他们返回游戏。
但究竟该如何区分那些只是有事暂时无法登录游戏的玩家和真正的休闲玩家?最理想的方式恐怕就是在玩家仍在玩游戏时,就提前预测他们离开游戏的可能性——这种预测甚至要早于他们产生离开游戏的念头。
我们的目标很现实——在新玩家登录游戏当天就预测他们离开的概率。我们将7天处于非活跃状态的玩家定义为流失用户,目的并不是等待7天结束,确认玩家不会重返游戏,而是在他们最后一天玩游戏时预测其流失可能性。
技术支持
我们已经掌握大量数据。所幸《永恒之塔》这款韩国网游拥有理想的记录系统,它几乎可以追踪玩家每一步操作,支持查询玩家前10级,或者10小时内的玩游戏数据,可以锁定50%以上的早期流失用户。
我们使用的是两个Dual Xeon E5630 blades,它们都运行MS SQL 2008R2,其中一者作为数据仓库使用,另一个作为MS Analysis Services。我们只使用标准的微软BI软件栈。
第1阶段:误认为自己无所不知
身为富有经验,并且经历100多次测试的游戏设计师,我确信自己的能力足以解答所有关于用户流失的问题。玩家若不知如何在游戏世界中进行超时空传送,他可能就会退出游戏。首个敌人带来的致命一击,也可能让他退出。《永恒之塔》拥有绝妙的视觉效果,技术也很过硬,但却并不是一款适合新玩家的游戏。
所以我就先扮演“普通玩家”,在游戏试玩期中体验了两个种族的不同职业,详细记录了游戏玩法中的问题,并初步假设以下因素可能导致用户流失:
*种族和职业。我认为这是最主要的因素,因为发挥辅助作用的祭司的游戏玩法与强大的法师截然不同,这会影响玩家的游戏乐趣。
*玩家是否尝试过俄罗斯运营商Innova代理的其他游戏?(Innova游戏使用的是同一个帐号)
*玩家在不同程度和职业中尝试过多少个角色?
*玩家在试玩期间每个等级以及总体游戏过程中的死亡情况。
*与其他玩家的组队情况(包括高级和低级玩家)。
*玩家接收到的邮件及加入公会情况(以此检测是否存在铁杆玩家所掌握的“小号”)。
*每个等级及整个过程中完成的任务。
*在战斗中使用的技能种类。
这个列表描述了许多可能导致玩家离开游戏的因素。
我们的第一个数据挖掘模型的理念很简单,就是将布尔型变量视为一个离开用户,它可以指出用户今天会离开游戏,还是继续在游戏中逗留一段时间:
Data Mining Lift Chart(from gamasutra)
以上图表底部直线是一个简单的随机猜测。上方飙升的线段命名为The Transcendent One,它代表未来情况。这两者间有一个波动线段,代表我们的数据挖掘模型。我们的线段越接近The One,就说明预测结果越准确。这个图表主要针对第7级用户,但对第2至9级的玩家来说并无差别。
不幸的是,从中可以看出,我们的首个模型就像是抛硬币看正反面来预测未来情况。所以我们需要抽取其他假设进行分析:
Data Mining Lift Chart (from gamasutra)
现在情况略有好转,但预测的准确性仅超过50%,误报率仍然达到了惊人的28%。
注:准确率越高,这个模型检测到的真实流失用户也就越多。误报率是指将某些玩家预测为流失用户,而实际上并非如此。
第1阶段结果:我所有的初步想法都错了。
第2阶段:发现自己完全是新手
第一个也是最简单的数据挖掘算法就是Naive Bayes(朴素贝叶斯分类器),它极具人性化并且通俗易懂。但它表明原先的假设参数无法与真实的流失用户对应。第二种方法是Decision Trees(决策树),它指出我的一些想法确实很管用,但并不足以最大化提升预测准确率。
数据挖掘算法知识:Naive Bayes在初步数据集分析以及指出参数之间关联性这方面作用很大,Decision Trees则擅长将数据集归纳为不同的子集,有利于区分流失用户及满意用户。这些方法都易于理解,但它们内部的数学原理及实用价值却极为不同。Neural Network(神经网络)本质上是一个能够计算复杂变量关系的黑盒,它可以产生更准确的预测结果,但却不易为开发者所理解。
我和《永恒之塔》团队在头脑风暴过程中讨论了新手玩家的类型,游戏行为以及其他特征。我们都知道自己的亲友初次进入游戏的过程,以及他们的感受。
这番讨论结果使我重新修订了影响新手玩家的一些游戏内部因素列表(游戏邦注:例如,玩家是否扩展了仓库大小,跳过了复活点,使用了加速移动卷轴?),以及衡量玩家在游戏中一般活动的想法。
我们使用了如下参数:
*每个等级的杀敌数
*每个等级所完成的任务
*每个等级的游戏时间(以分钟为单位)
此时我们也完全修正了ETL部分(包括数据提取、转换以及加载)的内容,我们的SQL工程师也制作了一个高级的SSIS游戏记录处理器,提升了可扩展性,有利于添加新游戏事件。记录系统的容量已达千兆字节,所以我们可以轻松添加新的假设命题。
我们载入和处理新数据,审核了数据挖掘模型,并分析了结果。为了让结果更为简洁明了,在此我只发布修正后的结果:
precision & recall per level(from gamasutra)
注:第9级的准确率异常高,这与调查时期的游戏活动有关,所以可以忽略这个数据。
在此阶段,我们的模型准确率大为提高——尤其是第2级至第4级,不过6到8级的准确率仍然很不乐观。这种不准确的数据几乎没有用处。
Decision Tree表明一般活动参数正是关键的预测考虑因素。在这种情况 下,每级的游戏时间、每级杀敌数和每级完成任务等参数组成了我们预测模型的核心。其他参数对整体准确率的贡献率不足5%。另外,Decision Tree很简短,只有两三个分枝,这意味着它缺乏相关参数。我仍然无法理解为何这三个算法在不同等级的准确/召回率会如此不同。
第2阶段结果:我们通过一般活动参数取得了相当进展,虽然准确率仍然有待改进,但我们找到了正确的分析方法,即先使用Naive Bayes,之后再使用Decision Tree。
第3阶段:步入正轨
看到数据挖掘结果的准确率明显提升,我设置了三个发展向量,更多一般活动参数,更多游戏特定参数,以及更深入掌握微软BI工具。
经过对一般活动的试验之后,我们最终确定了以下关键因素:
*当前等级、之前等级及整体游戏时间
*每分钟杀敌数(包括当前/之前/整体等级情况)
*每分钟完任任务(同上)
*平均每天游戏时长
*玩游戏天数
*缺勤率(游戏邦注:这里指玩家在七天免费试玩期间缺席的天数)
这些参数极大提升了召回率(因此降低了误报率),Decision Tree最终开始尽情扩散出分枝。我们也看到不同数据挖掘算法针对所有等级的一致性,这表明预测过程已经趋于稳定,降低了随机性。Navie Byes在准确性上比Tree和Neural算法相差了足足10%。
新加入的个体参数实际上非常难以管理,手动分离自动攻击使用情况要涉及一些数学知识,SQL查询的第75百分位计算也是如此。但我们标准化了数据,因此可以对比不同的游戏职业,数据挖掘模型接受的是分类索引数据而非原始数据。标准化和索引化新个体参数使整体预测精确度又提升了3-4%。
注:在网络游戏中,角色要使用技能及能力进行攻击。自动攻击是最基本和自由的招式。资深玩家使用所有技能时他们的自动攻击比率就会较低,不过游戏及职业机制也会深刻影响这一参数。在《永恒之塔》中,法师这一比率的中间值是5%,而战士则是70%,即使是在同个职业中,标准偏差也会很高。
下一步就是参考《Data Mining with Microsoft SQL Server 2008》这本书,从中查找使用分析服务的决窍。这本书很有助于解释Decision Tree微调的复杂原理,它还让我认识到了正确数据离散化的重要性。
在以上例子中,我们通过手动操作实现了自动攻击参数的离散化。我刚开始处理这些数据时,就发现SQL Server的自动离散化是可以并且应该进行微调。手动调整数据会极大影响Tree的形状和精确度(对其他模型也同样会有影响,但是对Tree的影响更明显)。
我花了一整周时间挨个调整9个挖掘结构的30多个维度(每个游戏等级有一个结构,一共有9个等级)。从这一试验中可以发现一些有趣的模式,并且可轻松将7级和8级之间的精确度提升2%。例如,杀敌数是20,整体游戏时长是12,而每级游戏时长是7。
微调之后的结果极大减少了误报率,将Tree的数据提升至与Neural Network相当的水平:
precision & recall per level (from gamasutra)
第3阶段结果:我们终于得到了一些合适的数字,也搜集了大量关于玩家的有趣数据。
第4阶段:获得成功
坦白说,我认为我们已经到达到准确预测的极限。新参数和假设并没有再度提升精确度,这些模型已经稳定。78%的精确度 VS 16%的误报率已经足以展开预测流失用户的工作。
以免费订阅或高价值道具刺激他们重返游戏并不一定奏效(因为在俄罗斯这些赠品也支带来一些增值税),但向他们发个邮件总不会有什么问题吧?
当我们的数据挖掘项目进入第三个月时,我们发现数据有点过时了,因为那时的游戏已经更新了数次补丁。
重新载入这三个月所有更新、更大的数据集时,我发现了梯度图表发生了一些变化。虽然精确度/召回率仍然保持原状,但数据表现略有差别。
需要再次重新编写ETL程序,此时每个等级处理时间不足1分钟,所以增加一个数据集的等待时间是我们尚可接受的5分钟。但不幸的是,所以手动微调工作都要重做,不过从以下图表可以看出,增加数据集后,我们极大提升了模型的有效性!
precision & recall per level(from gamasutra)
但针对第1级的情况,我们确实无能为力。正如网络分析大师Avinash Kaushik所言,“我来,我吐,我闪”(I came, I puked, I left)。这些玩家创建了自己的角色之后就退出了游戏,我们针对他们的行动记录也非常之少。
以上所有数字均出自历史数据以及我们挖掘模型的一个学习数据集。但我是一个非常多疑的人,我还想要战斗测试结果。所以我们采用了新玩家(今天才注册的用 户)数据,将其引进预测模型,并保存结果。7天之后,我们对比了一周前的预测流失用户以及他们真实的行为,获得了如下结果:
prediciton results(from gamasutra)
结果
我们终于成功实现了预测玩家是否将退出游戏的这一最初目标。看到如此之高的精确度/召回率,我们确信自己的积极和专注获得了回报。
但我们是否实现了第二个目标,判断玩家为何离开?没有。对我来说,这也是最有趣的结果——我们已经知道玩家可能离开的概率,却仍然不晓得他们为何离去。我在本文开篇列出了可能导致玩家早早离场的假设因素:
*种族和职业
*玩家是否尝试过其他的Innova游戏(我们用同一个帐号)
*玩家尝试过的种族和职业角色数量
*在免费试玩期间每级和整体死亡情况
*以及其他多种因素
我们测试了60多种个体及游戏特定参数。发现没有一者是导致用户离开的主因!也就是说,我们没有发现阻碍用户享受游戏乐趣的主要因素。
这个调查中的关键参数比较适用于试玩游戏首天的所获等级的情况,但低于考查7级游戏情况的需求,这相当于3个小时的游戏时间,意味着此时的用户流失率极高。另一批预测流失率的参数主要与整体活动有关:
*每级杀敌数
*每级完成任务
*每级游戏时长(分钟)
*每天游戏时长
总结
我们历时三个月,研究了两本书,并投入大量精力和热情从头创建了这个数据挖掘项目。团队中没有人曾有这方面经验。我们为Innova被动的分析系统中制造了一个富有前瞻性的预测工具。我们可以及时接收潜在的流失用户信息,并给予他们一些极富个性化和关联性的决窍以提升游戏体验。
数据分析咨询请扫描二维码
在准备数据分析师面试时,掌握高频考题及其解答是应对面试的关键。为了帮助大家轻松上岸,以下是10个高频考题及其详细解析,外加 ...
2024-12-20互联网数据分析师是一个热门且综合性的职业,他们通过数据挖掘和分析,为企业的业务决策和运营优化提供强有力的支持。尤其在如今 ...
2024-12-20在现代商业环境中,数据分析师是不可或缺的角色。他们的工作不仅仅是对数据进行深入分析,更是协助企业从复杂的数据信息中提炼出 ...
2024-12-20随着大数据时代的到来,数据驱动的决策方式开始受到越来越多企业的青睐。近年来,数据分析在人力资源管理中正在扮演着至关重要的 ...
2024-12-20在数据分析的世界里,表面上的技术操作只是“入门票”,而真正的高手则需要打破一些“看不见的墙”。这些“隐形天花板”限制了数 ...
2024-12-19在数据分析领域,尽管行业前景广阔、岗位需求旺盛,但实际的工作难度却远超很多人的想象。很多新手初入数据分析岗位时,常常被各 ...
2024-12-19入门数据分析,许多人都会感到“难”,但这“难”究竟难在哪儿?对于新手而言,往往不是技术不行,而是思维方式、业务理解和实践 ...
2024-12-19在如今的行业动荡背景下,数据分析师的职业前景虽然面临一些挑战,但也充满了许多新的机会。随着技术的不断发展和多领域需求的提 ...
2024-12-19在信息爆炸的时代,数据分析师如同探险家,在浩瀚的数据海洋中寻觅有价值的宝藏。这不仅需要技术上的过硬实力,还需要一种艺术家 ...
2024-12-19在当今信息化社会,大数据已成为各行各业不可或缺的宝贵资源。大数据专业应运而生,旨在培养具备扎实理论基础和实践能力,能够应 ...
2024-12-19阿里P8、P9失业都找不到工作?是我们孤陋寡闻还是世界真的已经“癫”成这样了? 案例一:本硕都是 985,所学的专业也是当红专业 ...
2024-12-19CDA持证人Louis CDA持证人基本情况 我大学是在一个二线城市的一所普通二本院校读的,专业是旅游管理,非计算机非统计学。毕业之 ...
2024-12-18最近,知乎上有个很火的话题:“一个人为何会陷入社会底层”? 有人说,这个世界上只有一个分水岭,就是“羊水”;还有人说,一 ...
2024-12-18在这个数据驱动的时代,数据分析师的技能需求快速增长。掌握适当的编程语言不仅能增强分析能力,还能帮助分析师从海量数据中提取 ...
2024-12-17在当今信息爆炸的时代,数据分析已经成为许多行业中不可或缺的一部分。想要在这个领域脱颖而出,除了热情和毅力外,你还需要掌握 ...
2024-12-17数据分析,是一项通过科学方法处理数据以获取洞察并支持决策的艺术。无论是在商业环境中提升业绩,还是在科研领域推动创新,数据 ...
2024-12-17在数据分析领域,图表是我们表达数据故事的重要工具。它们不仅让数据变得更加直观,也帮助我们更好地理解数据中的趋势和模式。相 ...
2024-12-16在当今社会,我们身处着一个飞速发展、变化迅猛的时代。不同行业在科技进步、市场需求和政策支持的推动下蓬勃发展,呈现出令人瞩 ...
2024-12-16在现代商业世界中,数据分析师扮演着至关重要的角色。他们通过解析海量数据,为企业战略决策提供有力支持。要有效完成这项任务, ...
2024-12-16在当今数据爆炸的时代,数据分析师是组织中不可或缺的导航者。他们通过从大量数据中提取可操作的洞察力,帮助企业在竞争激烈的市 ...
2024-12-16