DOTA2:面对峰哥质疑,大老师为什么这么准?

电竞杜淳何求知从专业角度为大家科普,走近科学,Dota Plus 大老师为什么就那么准!

还记得一个多月前的 4月4日 DAC 主赛事 VG vs TNC 第三局,比赛进行到 45 分钟 VG 被破一路、经济落后近 3W,几乎所有人都认为九一开、VG 将输掉比赛之时,大老师却坚信 VG 仍有五成胜率。最终 VG 成功翻盘,大老师一战成名!

赛后众多老铁(云玩家)们议论纷纷:难道大老师预言了瑞文同志的入党?或者直接改写了掉圣剑的剧本?大老师究竟有什么奇技淫巧?

问题:大老师到底从哪里借了一双慧眼,居然比打了10多年刀塔的知名玩家看得还准?

——最适合回答这个问题的人应该是大老师的作者度假社员工,其次是机器学习大牛。但是真正的大牛都很忙,毕竟往往没时间做科普。

那么,就由我这个初级数据分析师给大家简单讲一讲吧。

实时预测 DOTA2 胜负有多难?

其实很多朋友被“预测贼准、从不失误”的大老师吓到了,甚至因此加深了对人工智能的恐惧...

对此我只想说:兄 dei,你误会了!

其实,这件事并没有这么难,大数据老师仍只是在弱人工智能的大框架下解决了一个不太复杂的问题。本质上讲,实时预测 DOTA2 胜负和机器学习经典模式识别问题(比如垃圾邮件识别、图像识别等)是一样的(只是多了一个时间维度)。这类问题的数据源、特征和常用模型都不复杂:

数据:海量数据(每天百万级别的 DOTA2 游戏局数)

特征:特征丰富,容易提取和胜负相关的特征

模型:模型成熟,经典的逻辑回归或随机森林就能取得很好效果

而 DOTA2 玩家熟知的更难的问题是:

【已解决】中路 SOLO 赛,AI 吊打人类最强选手(模型复杂)

【未解决】AI 预测 TI8 冠军(数据样本少,有效特征提取难)

所以,不要慌。等 AI 在 5V5 正式比赛中吊打最强人类队伍,或者微软又跳出来预测 TI8 赛况非常准确时,才是我们真正该恐惧的时候~

(记得去年 TI 上吊打 Dendi 老司机的 OpenAI 吗?)

大老师是怎么做到的?

除非 V 社员工亲自讲解大老师的预测算法,否则我们无法确切知道底层实现细节。好在「DOTA2 胜负预测」这个问题已经有不少人研究过,并公开发表了论文。下面就以 UCSD 两位刀友的论文「DOTA2 Win Prediction」为例,给大家介绍一下大老师的可能包含的算法之一。

和大老师主打的「实时预测DOTA2胜负」不同,这篇论文是在赛前(BP结束,阵容确定)和赛后对胜负进行预测。这两个用逻辑回归做的预测模型,都取得了非常出色的准确率:

赛前,仅根据双方阵容预测胜负的准确率是73.0%

赛后,根据双方队伍的 GPM\\XPM\\KPM 之差预测胜负的准确率接近 100%(有水友就要问了,比赛都结束了,胜负已分还需要预测吗?下个段落说)

我们先详细介绍一下论文中的两个模型:「看阵容,猜胜负」和「看赛后统计,猜胜负」。然后再过渡、引申到大老师的「看赛中实时数据,猜胜负」模型。

先说数据源

该论文的作者用 V 社提供的 API 收集了 2015-11-20~2015-11-22 的 62,000 场游戏数据作为数据源,选取限定条件是:

游戏等级为 “very high”:

研究者认为这些局里面的选手都是会玩的,避免了由于选手实力导致的数据偏差。(是的,要是不努力提高自己的 DOTA2 水平,大老师都懒得分析你...)

5V5 正常模式,中途无人退出;游戏时长大于 10 分钟。

对每局游戏,收集以下信息:获胜方、游戏时长、十名选手的赛后统计数据(GPM\\XPM\\Kills\\Assists\\Deaths)。

在分析之前,有必要了解一下数据源的基础统计特征:6W局游戏平均时长30分53秒(标准差6分42秒),天辉胜率为56.5%。

看阵容,猜胜负

阵容对 DOTA2 比赛的影响非常大,一般 BP 阶段弹幕大神也会异常活跃。相信大家经常看弹幕大神根据阵容来预测比赛胜负:

小鱼人拿的好蠢,被对面血克!(克制关系)

这狗拿的不好,没有车!(协同关系)

又选主宰!不知道主宰已经不适合这个版本了吗?(英雄在当前版本的表现)

那么大老师是怎么做的呢?其实和弹幕大神也没差太多,这个模型关注每局游戏的四个特征:

offset:衡量天辉对于夜魇的优势,也就是无脑预测天辉获胜也可以拥有56%的准确率(高于掷硬币的50%)

matchup:pick 英雄的二进制特征(上场为1,不上场为0,形成一个一维向量),衡量天辉夜魇各自阵容中每一个英雄的影响

synergy:衡量英雄协作关系

countering:衡量英雄克制关系

重点介绍两个:synergycountering

前者反映了英雄两两之间的协同作用,后者反映了双方阵容的克制关系。

先看英雄搭配:如下图所以,虽然大部分英雄组合的胜率接近50%,但仍然存在大量的异常值:

好组合:[兽王,狼人]、[露娜,狼人]、[兽王,露娜]的组合胜率超过90%

烂组合:[光法,小精灵]、[光法,小鹿]、[小鹿,小精灵]的组合胜率低于10%

正是因为不同英雄组合的胜率存在比较明显的差异,才可以使用synergy特征来预测胜负。(这些是2015年底的数据了,了解当时版本的朋友可以在留言中解读一下这些异常值。)

英雄克制关系与协同关系的数据分布类似,大部分英雄间克制胜率是50%,但也存在许多强烈的克制关系:

比如[狼人->小精灵]、[军团->米波]、[拉席克->毒狗]的克制胜率超过78%。

好了,对水友来讲,不需要再说更多的技术细节了。只需要知道这个方法的逻辑是:大数据老师,把几万场 DOTA2 游戏的阵容看了一遍,学习每一场游戏的特征,训练逻辑回归模型,根据双方阵容预测比赛胜负。该模型的准确度是 73%

无需怀疑,这个准确度肯定可以吊打玩了 10 年(加 5 年云)DOTA 的你。毕竟大数据老师是见的多了,哪一场高级比赛它没看过?哪一种阵容组合它没分析过?相比之下,任何人类选手输入的游戏信息量都不值一提,图样图森破,上台拿衣服。

但幸运的是,人类选手仍然可以创造新的阵容组合,上升空间并没有被智子锁死!

看赛后统计,猜胜负

这个模型的思想和「看阵容,猜胜负」相似,只是选取的特征不同:

赛后双方 GPM 之差(不用总经济,是为了排除比赛时间长短不同的影响)

赛后双方 XPM 之差

赛后双方 KPM(每分钟击杀)之差

这些指标大家都非常熟悉了,为什么选这些指标?道理也是显而易见的:这些指标和胜负的相关性特别高。以 GPM 为例,比赛结束时经济领先的一方,绝大多数都取得了胜利。6W 场比赛中,一共只有 500 场比赛(不到1%)结束时,经济高的一方输掉了比赛。所以,哪怕仅用 GPM 这一个指标来预测胜负,也已经非常准确了。

同时使用 GPM+XPM+KPM 三个特征预测时,准确度几乎达到100%

现在回答问题:比赛结束后,胜负已分,为什么还要进行预测?因为方法依然通用!可以把这个方法照搬到 VG 打 TNC 的第三局的任意时间点!举例两个时间点:

1. 37分钟时,VG 经验落后 2W7(整场比赛最大经验差),人头比 15:25(整场比赛最大人头差),经济落后2w4。

此时大老师给出了 VG 整场比赛的最低预测胜率 24% 左右。

2. 45分钟,VG经济落后 2w8(整场比赛最大经济差),人头比变成19:25(VG 能杀人了),经验落后 1W8(经验差在迅速缩小),大老师把 VG 的胜率提升到接近50%。

这下清楚了吧!我们大多数玩家把影响游戏胜负的关键点限制在经济差、破路等因素上(玩不了啦!队友呢?队友呢?队友呢!),而大老师则是综合考虑了更多的关键指标:GPM\\XPM\\KPM(甚至考虑了每分钟回复量、双方护甲值\\攻击力\\魔抗等等许多上文想得到或者没想到的数据特征)。

我们看比赛时很难获得这些数据

当然,PLUS 会员提供的大数据老师,在处理时间维度的时候也极有可能采用了更加牛逼更加复杂的模型(而不是简单的把比赛按每分钟抽样用来训练)。但具体实现细节,我们就不得而知了。

不过写到这里,相信科普的目的已经达到,大家对大老师的手段应该有了比较清晰的认识。

如果你也想学数据分析,打造最牛逼算法和预测模型,从 DOTA 或任何其他行业数据中洞察更多秘密,成为数据分析师是不错的职业选择!特别是在最近火速崛起的电竞行业,参考传统竞技发展,数据分析师也即将成为最抢手职业。

LinkedIn 统计,中国未来会缺少 150 万数据人才,包括数据分析师,也包括能读懂数据、用数据做出关键决策的市场/运营/产品/管理者。因为稀缺所以高薪,新一批人才缺口红利下,动作快的人才能掌握先机。入门数据分析,硅谷前沿技术学习平台优达学城(Udacity)是你最高效、靠谱的选择。

优达学城(Udacity)由 Google 无人车之父 Sebastian Thrun 创立,与 Google、Facebook、亚马逊、百度、腾讯等全球领先企业联合前沿技术课程,结合专业代码审阅、一对一在线答疑等辅导,让每个人都能用远高于线下教育的性价比和效率,掌握最热技术应用,成为能驱动企业创新变革的抢手人才。

Udacity 联手 Kaggle x Tableau 等全球数据领先企业推出的【数据分析师】认证课程,已在全球培养超过 20,000 名数据分析师,通过高效系统的学习曲线、紧贴市场需求的技能图谱、紧密及时的答疑辅导,帮你最快入门、精通数据分析,快人一步成为稀缺人才。

Udacity 课程的一大特色,是通过挑战实战项目来学习,让你通过动手真的深入掌握技能。一起来看看硅谷导师亲自设计的实战项目。

揭秘北上广空气质量

获得北上广等 5 大城市 PM 2.5 数据,分析空气质量变化趋势,学习从提问到可视化分析结论的数据分析流程。

探索共享单车用户行为规律

用 Python 分析共享单车行程和用户数据,分析最热路径、最典型用户等信息;编写交互式代码来查询数据,使用描述性统计学分析。

探索体育赛事/电影/枪支管理真实数据

获得来自 TMDB、医院管理系统、FBI 数据库的精选真实数据集,使用 NumPy 和 Pandas 完整体验分析流程,分析高票房电影有哪些共同点、什么样的球队容易赢得比赛等真实世界问题。

值得关注的是,本期 Udacity 课程开启限量【7 天试学班】。如果你对数据分析感兴趣,想给自己的职业发展来一次突破,但又不确定自己是否真的能学完,建议加入 7 天试学,在行业顶尖助教和班主任的帮助下,手把手带你完成第一个属于自己的数据分析项目,开启新的职业规划和真·弹幕大神之路!

对于想要成为专业电竞数据分析师的学员来说,完成课程你即可加入由何校长 x Udacity 建立的【DOTA2 数据分析交流群】,为成为电竞专业数据分析师而努力,为中国军团的 TI8 征程献出一份力!