基于自动机器学习的游戏产业简要分析
作者: 周泽先
摘要:文章分析评论网站Metacritic和VGChartz中,数年的电子游戏评论和销量情况,利用EasyDL、Google Cloud、Azure三个平台,分别建立分类和回归模型。探究电子游戏用户评分、媒体评分和游戏销量之间的联系。得出结论,电子游戏的用户评分受媒体评分影响较大,而用户评分和游戏销量之间可能存在关联。除此之外,还考察了不同自动机器学习平台训练模型的效果,发现EasyDL整体上训练模型速度更快,Google Cloud训练效果受数据集影响较大,Azure效果相对平衡。
关键词:自动机器学习;人工智能;自动调参;电子游戏
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2022)24-0093-03
所谓自动化机器学习(AutoML,Automatic machine learning),指的是通过处理已有数据、经过自动调参,针对目标更方便地选择最优算法,从而省去复杂的工作,极大地促进了机器学习在各个领域的应用。本文旨在通过对电子游戏进行分类和回归算法,在挖掘电子游戏的用户评价、媒体评价和市场销售三者之间联系的同时,展现不同平台(EasyDL、Google Cloud、Azure) 自动化机器学习的情况。
游戏产业作为当今价值百万的巨大产业,渐渐成为一股不容小觑的力量。它已经深入人们的生活。根据市场研究机构Newzoo的报告[1],2021年游戏产业展现出了惊人的体量,甚至超过了1800亿美元,即便在疫情的阴影下,依旧呈现出强劲的发展势头。同其他产业一样,观众的偏好是一个影响产品成功的重要因素,而销量,则是其影响力的重要标志。因此笔者对于游戏产业的分析也围绕产业和销量展开。
本文中,笔者准备了三个数据集分别在EasyDL、Google Cloud、Azure三个平台上进行模型训练。其中分类训练使用了两个数据集。而用于回归算法的数据集则加入了市场销售的要素。
1 不同自动机器学习平台的比较
目前,EasyDL、Google Cloud、Azure是相对重要的三个自动机器学习平台。EasyDL从2019到2020年在中国机器学习平台占据主要份额。而Google Cloud作为国内机器学习市场份额较大且具有自动调参功能的平台,在国外市场中具有不可或缺的位置。Azure跟Google Cloud一样是基于云处理的机器学习平台,但与前者运用了完全不同的技术。
EasyDL采用了迁移学习技术[2],也就是说不重新搭建模型,而是去寻找已有训练中相似的情况。这样就大大节约了时间。Azure还用自动混合精度训练来降低硬件要求。
Azure平台上主要应用概率矩阵分解(PMF,Probabilistic Matrix Factorization) 和贝叶斯优化技术[3]。实际上是将特征和目标通过矩阵匹配,并用线性组合来描述两者间的关系。在实验中发现Azure对于某些数据集进行回归,R2 Score会出现负数,而其他平台则不会,这或许跟Azure这种默认线性关系的特点有关。至于贝叶斯优化方法,它在建立概率模型时,参考之前的结果,选出最有可能的超参数,从而大大节省了时间。
Google Cloud AutoML通过神经网络搜索模型(NAS,Neural Architecture Search) 来探索数据集的特点[4],结合策略梯度加以引导,辅以分布式训练等方法缩短训练模型的时间。也就是说,Google Cloud AutoML不从特征列入手,而从循环神经网络得出的子网络开始,这点与Azure平台不同。循环神经网络的特点在于当前结果与之前的结果相关。
2 实验准备与数据处理
笔者的实验分别应用分类算法和回归算法,并根据其算法特点筛选数据。
分类,即根据所给数据,提炼对象的特点,从而使机器能够判断新的数据的类别。这里以用户评分为目标,通过游戏的其他特点来得出一个游戏是否能令用户满意。
回归,指的是通过提炼各个变量之间的联系并建立模型,从而达到通过所给条件,预测某一特定情形的目的。与分类不同的是,分类得出的结果是一种判断,即一个对象是什么。而回归的结果则以真实情况为标准,力求减少模型结果与真实情况的误差。回归模型的建立可以帮助预测游戏用户的满意程度。在这一过程中,还可以分析游戏评分与各地区销量、发售平台和游戏类型的关系。
2.1 分类算法的数据准备
2.1.1 数据来源
对于分类算法,本文准备了两组数据。分别是评论网站Metacritic上2011年和2019年第八世代游戏机上的电子游戏信息,和2000年到2021年所有平台上电子游戏的信息,记为“数据集1”和“数据集2”。具体包括游戏的基本信息和游戏的整体媒体评分和用户评分,以及各自正面、负面、中性的打分人数。
两组数据相比,因为后者时间上范围更广,涉及平台更多,因此数据量更大。另一方面,因为用户的评论是动态的,所以两组数据内容上也有所不同。本文设置两种数据,分别考察数据集不同时的模型情况。
2.1.2 数据预处理和定义特征
首先,为了保证模型准确性,不受其他因素干扰,将原始数据集中的无关信息剔除,最终留下15个特征。如表1所示,这些大致可以分为游戏基本信息、媒体评分情况和用户评分情况三种,分别是:游戏名、发售平台、开发商、发售日期、游戏类型、游戏分级、玩家数量;媒体评分和好、中、差三种评论数;用户评分和好、中、差三种评论数。
其次,因为Metacritic网站上的整体游戏评分从0到10不等。为了能使数据符合分类算法离散性的要求,这里将用户评分这一目标列按其众数,并结合一般评分习惯划分为推荐、不推荐、中性三类。笔者注意到,尽管10分制的打分习惯上以5分或6分为分界线,但实际上5分以下的评论,在第一个数据集中只占总评论数的9%,而在第二个数据集占17%。而两个数据集7.5分均为整体评分的众数,分别为2858个和1833个。这就说明得到7.5分以上的评分是相对少有的、优秀的作品。因此,这里将7.5分及以上设为“推荐”游戏。由图1所示,两组数据的评分集中在6~8分,据此笔者将6分及以下设为“不推荐”。
再次,需要注意的是,原始数据集中存在部分数据缺失,比如某些小众游戏评论过少因此没有用户评分或者媒体评分。由于各大AutoML平台均具有数据清洗的功能,且缺失数据占比较小,这里不再进行处理。
2.2 回归算法的数据准备
2.2.1 数据来源和预处理
对于回归算法,我们试图通过电子游戏的媒体评分,结合销量情况,来预测用户评分。电子游戏的销量情况来自网站VGChartz,评分情况来自网站Metacritic。具体来说,销量分为北美地区、欧洲、日本和其他地区三种情况。而Metacritic上的数据内容,分类的数据来源部分已经介绍,这里不再赘述。笔者以用户评分为目标列,具体特征列见表2。
时间跨度上,原本笔者打算对2017、2019、2020年的销量情况进行考察。但在实验中,笔者发现2019和2020年的实验结果显示的关联性特别弱,EasyDL平台的r2 score分别为0.272和0.135,而Azure平台R2 Score小于零(如表3所示) ,但2017年的数据情况则相对正常。也是说,对于2019和2020年的实验近乎是无意义实验。通过对2019和2020的数据集进行分析,笔者发现,两个数据集中同时具有完整评分情况和销售情况的电子游戏不超过500个,均不到整体的10%。而2020年符合要求的比2019年更少,这就可以解释为什么2020年的实验结果更差。
因此,笔者决定仅对1976到2017的电子游戏媒体评分和销量情况进行具体考察,记为“数据集3”。同时这也从侧面说明,目前的自动机器学习平台虽然可以接受无监督学习的情况,允许数据集存在部分缺失,但如果要得到较好的实验结果,仍要求大部分数据集是完整的。从电子游戏市场分析的方面看,近些年部分游戏销量和评论的缺失,可能说明一个电子游戏的销售需要数年的积累。或者可以结合独立游戏和小众风格越来越多的情况,这些游戏往往缺乏正式的商业的宣传和媒体的关注。
除此之外,笔者注意到Google Cloud在回归算法上对数据要求更严格,需要保证目标列不能有缺失。笔者以用户评分为目标列,因此通过EasyDataTransform来去除原始数据集中用户评分缺失的列。
2.2.2 模型训练
在分类算法上,笔者分别将数据集1和数据集2在EasyDL、Google Cloud、Azure三个平台上运行,并对比不同自动机器学习平台得出的结果。不同平台本质上是不同的模型训练方法。但三者都是先生成数个模型,然后选择最优的模型。其中Google Cloud和Azure平台会将其他模型的效果也呈现在结果中。回归算法上,将数据集3也在上述3个平台进行运行,综合评价数据结果,并对比不同平台下的训练效果。
另外,Azure平台需要用户自己选择配置,笔者选择的是4核CPU,28GB内存的机器。
3 实验结果与模型评估
3.1 评估标准解释
3.1.1 分类算法的模型评估
分类算法上,笔者通过F1-score、精确率(Precision) 、召回率(Recall) 和运行时间来评估。
其中,精确率(Precision) 指实际上为正占被判定为正的比例。以EasyDL对于数据集1的混淆矩阵为例,数值1表示“推荐”类型的游戏,数值0表示“中性”,数值-1表示“不推荐”。就划分为“推荐”的电子游戏来说,(1,1)为实际上为正且判定也为正(公式上写为TP) ,(1,1)、(0,1)、(-1,1)之和表示被判定为正类(公式上写为TP+FP) 。精确率用来表示对于某一样本预测的准确程度。
[precision=TPTP+FP]
召回率(Recall) 指被判定为正占所有实际上是正的比例。同样以图2为例,就划分为“推荐”的电子游戏来说,(1,1)为TP即实际上为正且判定也为正,(1,1) 、(1,0)、(1,-1)之和为所有实际上为正的情况(公式上写为TP+FN) 。召回率表示对某一项判定的全面程度。
[recall=TPTP+FN]
F1-score表示精确率和召回率的调和平均数,其值越高表示模型越好。
[F1=2precision*recallprecision+recall]
运行时间表示训练开始运行,直到得出最优模型所用的所有时间。
3.1.1 回归算法的模型评估
回归算法上,笔者通过平均绝对误差(MAE) 、平均绝对百分比误差(MAPE) 、均方误差(MSE) 和R2 Score来评估模型效果。
平均绝对误差(MAE) 表示预测值减去真实值结果的绝对值,进行累加再除以项数。越接近0,表示模型效果越好。
平均绝对百分比误差(MAPE) 表示预测值减去真实值的结果,除以真实值之后的绝对值,进行累加再除以项数,再乘100%。越接近0越好,超过1则意味着模型极差。
均方误差(MSE) 表示预测值减真实值结果的平方,进行累加再除以项数,与上述相同,值越小越好。
R2 Score表示自变量能通过回归关系解释因变量的程度,通常越接近1越好,当小于0时表示模型选择不当。
[MAE=1mi=1n|Y(test)i-Yi|],
[MAPE=100%mi=1m|Y(test)i-YiYi|],
[MSE=1mi=1m(Yi-Y(test)i)2],
[R2=1-i=1n(Yi-Y(test)i)2i=1n(Yi-Y)2]
3.2 结果分析
3.2.1 用于分类的实验
由表5可以看出,以电子游戏基本信息和媒体评分以及正面负面及中性评论数为特征列,可以有效建立将电子游戏分成对于用户“推荐”“不推荐”和“中性”的模型。其中EasyDL和Azure的F1-score均在70%以上,而Google Cloud的值均在69%左右。精准率上,三个平台的结果不相上下,而Google Cloud的召回率略低。训练时间上看,EasyDL的训练时间最短,而Azure和Google Cloud用时依次增加,也就是说基于云处理的自动机器学习速度更慢。另一方面,这也可能与EasyDL所用的迁移技术和自动混合精度训练对其速度的提升有关。