需求与用研首页投稿(暂停使用,暂停投稿)Ivan的用研笔记

如何为《命运》的玩家们打造游戏内推荐系统

2018-01-27  本文已影响33人  IvanMu

​游戏中的推荐系统

推荐系统是什么?如果你使用过任何的订阅服务,那么你就应该不会对推荐系统感到陌生。其核心在于利用机器学习的算法预测用户是否会喜欢某些商品。这些系统通过可能诸多方式镶嵌到产品中。比如Netflix利用协同过滤的算法找到那些和你类似的用户,并将它他们所喜欢的影片推荐给你。Amazon则使用基于内容的算法向用户推荐商品,比如向喜欢《指环王》的用户推荐其他的魔幻小说。

我们(Anders Drachen等人)试图为《命运》打造一个混合的推荐系统(这个系统是基于命运1所开发的,在命运2正式发布前才完成)。在这里我们所说的“混合系统”指的是这个系统使用了多种推荐方式。《命运》为玩家所操纵的游戏角色提供数百种不同的枪械和特殊技能用于对抗怪物和其他玩家。在目前的分析中集中于玩家对战(PvP)的模式。下图中可以看到在PvP模式中玩家们所偏爱的武器类型,从其中我们就能大概了解到玩家所面对的可选项有多少了。

在游戏中打造推荐系统面临着一个独特的挑战:我们并不是在推荐玩家去玩什么游戏,而是向玩家推荐某些行为以提升其在游戏中的表现。对玩家而言,《命运》这样的MMOG通常具有非常庞杂的游戏系统,对玩家的决策能力有很高的要求,而大多数玩家可能不知道该如何提升其游戏水平。我应该点这个技能还是装备那件武器呢?最显而易见的提升方法当然是“多玩会儿”。那些在游戏中消耗了10000小时的玩家肯定会比只玩了10个小时的水平要高。尽管如此,我们仍然需要一个通过数据来系统性帮助玩家提升的方法。构建游戏内推荐系统的难度就在于玩家通常有自己独特的玩法偏好。我们显然不能向喜欢用散弹枪的玩家推荐使用狙击枪。

图 1: PvP模式中不同枪械的击杀数据分布​

推荐系统的构建

数据预处理

利用Bungie的API随机抽取了10,000名玩家的数据。这些数据非常全面:首先是玩家PvP的对战数据,包括每种武器的击杀数、平均的击杀距离、死亡率等表现玩家游戏水平的数据;其次则是关于玩家核心角色信息的数据,我们可以从这些信息了解到玩家们如何分配属性点。对于属性点我们主要关注两类:战斗属性(battle stats)和冷却属性(cooldown stats)。战斗属性(敏捷、韧性、恢复)影响角色的移动、血量和恢复能力。冷却属性(智力、力量、戒律)则影响了各种特殊技能的冷却时间。在剔除一些无关的数据后,我们将部分数据转换成百分比(考虑到游戏经历和等级差异很大程度上会影响数据指标)并对各数据列进行标准化转换。

聚类分析

在向玩家做出推荐之前,我们需要先找到那些具有类似偏好/行为的玩家。不过游戏风格确实很难通过某个单一的维度进行量化,所以我们通过聚类分析为每个角色构建了3个能够描述其核心游戏风格的数据画像。

前两个数据画像通过K-means聚类了战斗属性和冷却属性,结果见下图2和图3。这两个热力图描述了每个类别在数据上的均值。基于易解读性和对游戏的了解,我们从战斗属性的聚类结果中得出了4类玩家(图2. Z1~Z4),而从冷却属性中则选出了3类玩家(图3. Z1~Z3)。从图中可以看到这些不同类别的玩家在属性分配上有着各自的偏好。

​图2:战斗属性所得到的聚类 图3:冷却属性所得到的聚类​  

第三个数据画像则是通过原型分析(archetypal analysis)所获得的,如图4. 原型分析是一种无监督学习算法,通常用于挑选数据库中的极端数列(即原型)。借助原型算法,我们获得了与K-means等中心聚类算法结果相互关联的独特画像。图4中获得的大多数原型都表现出了玩家对特定武器的偏好,例如Z1就代表了喜欢自动步枪的玩家,而Z5就是喜欢用散弹枪的玩家。也有其它的原型表现出了一定的游戏风格,例如Z2表示玩家善于把握使用超级技能的时机并能够借机大肆收割一波数值。

在这个多重数据画像的分析中,我们可以得到72(4 x 3 x 6)种游戏风格的组合。而所有的玩家都属于其中一种。

图3:玩家武器使用风格的原型​  

推荐系统的框架

我们将通过是三个数据画像的交集来完成推荐系统的搭建,如下图5。数据画像之间的每个交集都是一个可以向其他玩家进行推荐的玩家模板。为了便于理解,接下来我们将借助如何为玩家X做出推荐的场景来解释这个推荐系统。

图5:推荐系统的模型​

交集区域1代表了在所有方面都和玩家X相类似的一群人---即与X共享同一种组合画像的其它玩家。换句话说就是,如果玩家X在战斗属性分配行为上类属于Z1、冷却属性类属于Z2、武器风格属于Z5,那么交集区域1代表了所有在三种数据画像中具有Z1 x Z2 xZ5特点的玩家。在这个玩家池中我们能够找到那些有着高KDA或者高战斗评价(Bungie对PvP对战表现的评级系统)的玩家,看看他们都使用什么武器,然后向玩家X进行推荐。通过这种方法能够让我们使用协同过滤的方式向玩家进行推荐,又同时能够保持玩家自有的游戏风格。

这个推荐系统的优点还体现在这样的情况中:玩家X可能并不希望从与其完全相似的玩家那里获得推荐。假设说玩家X希望我们能够推荐如何进行冷却属性的分配。如果我们只考虑交集区域1,那么我们所推荐的行为可能正是玩家X正在做的事情,这种推荐当然完全没有意义。所以在这种情况下,我们就可能看看交集区域2的情况,这部分的数据重叠并没有涉及到冷却属性。因此,我们从这个交集区域中选择出来的推荐模板就与玩家X有着相同的战斗属性和武器风格,但在冷却属性的分配上有所不同。这个推荐过程同样适用于其它的交集区域。

理论上,我们这个基于多重数据画像的推荐系统中的“数据画像”数目并没有具体的限制,只要你的游戏能够产出相应的行为数据。这种推荐系统灵活地整合了游戏风格的不同方面,也同时考虑到了玩家自身所希望得到的提升和改变。


在Reddit上去验证和评估

我们可以有几个办法来验证我们的推荐系统:最好的方式当然是对一部分玩家进行长期追踪的纵向研究,来观察和评估他们游戏水平的提升是因为推荐系统或是因为熟练所导致的。然而,我们的时间是很有限的,而且纵向研究通常需要招募一批有意愿参与的玩家,还会消耗很多的资源。所以我们最终决定做一次定性评估来验证推荐系统的有效性。

在调研玩家之前,我们得先找到他们才行。Reddit就是一个天然的样本库。其子版块r/destinythegame就是一个完全由《命运》的玩家所组成的活跃社区。我们在该论坛上发了个贴,然后邀请感兴趣的玩家参与我们的调研,报酬则是免费的《命运2》。在收到大概50个回复之后,我们收集了玩家的角色名称,然后从API中调取了相应的数据。把这些数据放进推荐系统中过一遍之后,我们就得到了针对每个玩家所生产的推荐报告,部分内容如图6所示。

图6:针对玩家的个人推荐报告  

虽然有部分玩家对推荐系统持有保留意见,但总体上我们获得的反馈是非常积极的。在所有的反馈中,有80%的玩家都认为推荐系统对他们是有帮助的而且会尝试我们的推荐。其中多数玩家表示很享受从相似的玩家身上学习,以及对尝试推荐的枪械配置进行尝试。但是由于玩家们都有着自己的偏好,所以也有一些玩家反馈表示推荐系统的作用有限。这就需要我们回到对玩家个性的考虑了:可能有的玩家就是希望通过持续练习以获得更好的游戏表现,而不是通过武器推荐。尽管如此,我们的主要论调保持不变:玩家仍然渴望了解他们能够在哪些方面获得提升。推荐系统可以帮助回答这一问题,但它可能只对新手有足够的吸引力,对于已经清楚游戏具细的资深玩家则可能帮助有限。

结语

在本文中,我们介绍了如何建立一个推荐系统以帮助《命运》的玩家提升其游戏表现:通过对其武器装备和属性点分配做出推荐。其中的关键在于做出推荐的时候仍需要考虑到玩家自身的游戏偏好。为此,我们首先建立用于描述玩家游戏风格和属性偏好的数据画像。然后我们的混合推荐系统就从数据画像的交集区域中选择具有更高战斗评价的玩家来形成推荐的模板。通过对在线社区Reddit中部分玩家的调研,我们发现推荐系统能够成为玩家的重要助力。我们日后可能会对这一推荐系统进行纵向研究以长期追踪并验证其效果。另外,虽然我们的推荐系统是基于《命运1》的数据所完成的,但在《命运2》中我们也将采用类似的方法为其建构推荐系统。

利用数据分析系统帮助玩家提升其游戏体验将不仅仅只对《命运》这种游戏的体验有着重要的提升作用,同时也将对电竞类游戏产生重要影响。数据和分析对游戏行业的影响正在不断扩大,而作为终身玩家的我们也非常高兴看到这一趋势。

PS. 老实说... 作为离开学校就忘记了大部分数学知识的我 不知道为什么最近总在翻译数据类的文章... 另外,虽然是同一个/批作者,但这篇文章的内容其实来源于论文:Controlling the Crucible: A Novel PvP Recommender Systems Framework for Destiny。

上一篇下一篇

猜你喜欢

热点阅读