乐趣区

关于机器学习:案例分享德甲-X-AWS进球神预言到底是如何做到的

很多敌人喜爱在业余时间观看足球比赛,而且可能疾速依据以后球员射门的地位与角度,判断出这一脚有多大机会命中球门。如果是在电视上观看较量,再配合上主持人的讲解与充斥情绪的疏导,大家简直可能预测出这临门一脚会有怎么的成果了。

但以往,这样的判断只能通过肉眼察看实现,同时联合以后防守球员的数量(例如守门员所在位置,或者射门球员位于球门侧面还是侧面)做出假如。当初,应用 xGoals(即「预期进球」的缩写)技术,AWS 得认为德甲联赛提供弱小的技术支持,充分发挥数据与洞见的弱小力量,帮忙球迷们即时判断在球场各个地位射门得分的确切概率。

德国足球甲级联赛是德国职业足球的组织与营销主办方。在每场较量中,德甲联赛将收集到超过 360 万个数据点,旨在更深刻地理解运动场上正在产生的所有。以此为根底,德甲联赛积攒起为寰球 5 亿多球迷及 70 多家单干媒体加强观赛体验的丰盛教训,这也使其成为世界上最具创新性的体育联盟之一。德甲联赛心愿通过新的形式应用技术成绩,以机器学习(ML)为驱动力提供实时统计数据,最终为粉丝建设起个性化内容并将数据转化为洞见乃至实际行动。

xGoals 则是德甲联赛与 AWS 在 2020 年 5 月底正式启动的两项全新 Match Facts 性能之一(另一项为 Average Positions),旨在加强寰球球迷的观赛参与度,同时统计每场较量的最高均匀进球数。这项服务中应用的机器学习模型由全托管 Amazon SageMaker 负责构建、训练以及部署。xGoals 可能主观评估德甲球员在赛场上任意地位的射门得分几率,还能够确定以后传球(相较于以后球员保持单刀、或者是传给其余球员)是否会晋升得分几率。

xGoals 及其他德甲 Match Facts 服务以数据为根底建设剖析洞见的尝试,也给整个足球畛域建设起新的实时数据统计标杆。

量化进球几率

xGoals Match Facts 服务于 2020 年 5 月 26 日多特蒙德队对阵拜仁慕尼黑的较量中首次亮相,本场较量在寰球 200 多个国家进行播放。这是一场艰辛的较量,单方的防守都异样弱小,每一次防御机会都须要拼尽全力去争取。在此期间,拜仁慕尼黑队的 Joshua Kimmich 带来了杰出体现。但联合到球门的间隔、射门角度、周边防守球员数量以及其余因素,弱小如他也只有 6% 的得分几率。

xGoals 机器学习模型可能产生一份介于 0 和 1 之间的概率图,具体数值以百分比模式显示。例如,在对德甲较量中训练的机器学习模型进行评估后,能够看到每一脚点球的 xGoals(简称「xG」)值为 0.77,意味着进球得分的几率为 77%。xGoals 引入的这个数值可能以定量形式掂量球员或者球队的得分机会,并联合各项相干因素将其出现给屏幕前的观众。

在每场较量的最初,屏幕上还会显示出两支球队的 xGoals 值汇总。这样,观众就能看到主观得分机会的指标。如果不是 Kimmich 那一脚胜利的射门,这场较量很有可能打成平局。xGoals 可能通过多种形式加强观看体验并提供剖析洞见,帮忙球迷们放弃极高的参与度,同时深刻了解以后较量乃至整个赛季中特定球员及球队的赛场体现。

思考到射门得分是一项具备极高动静属性的指标,理论较量中的 xGoals 值很少能超过 70%。球员们的地位会一直变动,射门者必须在无限的信息之下(次要依附直觉)做出霎时决策。因而,依据理论状况,即便曾经攻入禁区之内,射门得分的难度也可能存在很大差别。因而,最重要的就是在每一个特定时刻,以数据为根据全面理解赛场上的所有事件。只有这样,将这些信息输出 xGoals 机器学习模型时,零碎能力综合考量所有球员的地位做出真正牢靠的判断。

所有以数据为终点

为了让赛事变得更加活泼精彩,德甲联赛方面须要在赛前、赛中与赛后实现一系列查看与解决工作。各相干方都将参加到数据采集、数据处理、图形生成、内容创立(例如电视上的精彩霎时集锦)以及实时评论等环节。每个德甲足球场装备多达 20 部摄像机,应用主动光学跟踪技术继续拍摄球员与皮球的地位。编辑团队则负责解决其余视频数据,抉择现实的摄像机角度与场景进行广播,包含何时适宜在电视画面上显示 Match Facts 统计信息。

赛场上的简直所有事件(包含罚球与射门)都将被实时记录下来,并发送至德甲联赛的零碎进行近程验证。人工正文者将对事件进行分类,同时补充针对特定状况的形容信息。例如,他们能够增加球员与球队的调配战术,以及以后行为类型(抢断或者助攻)。

最终,所有原始匹配数据都将被纳入 AWS 上的 Bundesliga Match Facts 零碎当中,由其计算出 xGoals 值,而后公布给全世界的观众。

对于德甲官网利用及网站,Match Facts 会第一工夫在最终用户设施上继续显示。当然,德甲方面也在致力放慢第三方数字平台及其他内部客户的 Match Facts 后果交付速度,保障为寰球球迷提供最新的洞见与高级统计信息。

当初,实时内容散发与球迷参与度曾经成为职业体育赛事的相对外围。而受到疫情影响,目前的德甲较量只能在没有一位观众的空阔赛场内进行 —— 这当然会重大影响到球赛观看体验。

咱们的机器学习之旅:将代码引入生产

德甲联赛的领导层、治理团队以及开发部门始终在采纳云服务的过程中与 AWS 业余服务团队通力配合,心愿借助机器学习的力量加强观众体验。AWS 数据迷信参谋的工作,正是通过高效使用机器学习技术减速客户业务成绩。客户须要首先参加初步评估,并从业务及技术两个方面认真钻研心愿达成的后果与相应可行性。AWS 业余服务参谋则为客户的外部团队提供专业技能与行业教训、开发概念验证(POC)我的项目、打造最低可行性产品(MVP)并最终将机器学习解决方案投入生产。在此期间,咱们还将继续推动学习与常识的转移,保障技术层面的尝试始终可能与明确的商业价值对应起来。

除了在德甲联赛下辖子公司 Sportec Solutions 中进行的外部试验与原型开发之外,咱们也在全力建设独立的欠缺钻研社区,致力于进一步晋升 xGoals 计算的性能与准确率。将这一畛域的常识与正确的技术栈上联合,再配合上最佳实际,咱们将可能在保障卓越经营、安全性、可靠性、性能效率与老本优化的同时,更快推动大规模翻新与理论执行。

足球比赛的历史数据无疑是基于机器学习技术的 xGoals 模型的训练根底。咱们应用这些数据训练机器学习模型,依据赛场上的特定条件推理 xGoals 可能得出的论断。为了进行数据品质评估与初步试验,咱们须要进行探索性数据分析、数据可视化、数据转换以及数据验证。

这方面工作,能够通过 Amazon SageMaker notebook 等计划进行。下一步天然就是将机器学习工作负载从钻研阶段转移至开发环境。这一部署流程须要应用跨学科工程办法,包含将数据工程、数据迷信与软件开发联合起来。生产设置还须要配合错误处理、故障转移与复原打算等多项动作。总体而言,机器学习零碎的开发与经营(MLOps)波及一系列简单流程,包含代码重构、从新设计与优化、自动化、设置云基础设施根底、施行 DevOps 与平安模式、执行端到端测试、监控并保障应用正确的零碎设计。咱们的指标,始终是尽可能在更多零碎组件中实现自动化,最大水平缩小人工干预与手动保护需要。

在下一节中,咱们将进一步探讨 AWS 为德甲较量 Match Facts 提供的底层技术栈,以及在将 xGoals 投入生产环境时的根本注意事项。

应用 Amazon SageMaker 训练 xGoals 模型

传统的 xGoals 机器学习模型单纯以事件数据为根底。这意味着评估进球几率时,模型只思考球员的以后地位及其与球门之间的间隔。但德甲方面将射门事件与以 25Hz 帧频获取的高精度地位数据联合起来 —— 尽管更高的数据采集精度会给数据流剖析管道带来更高的数据荡涤与数据预处理压力,但却可能带来更精确的预测后果,进而全面对消额定工作量与复杂性产生的开销。通过继续跟踪皮球与球员的地位,该模型可能确定一系列附加特色,例如球员到球门间的间隔、以后射门角度、球员的速度、对方防守球员数量以及对方门将的扑救范畴等。

在 xGoals 当中,咱们自 2017 年开始就应用 Amazon SageMaker XGBoot 算法应用德甲联赛超过 40000 次历史射门数据训练机器学习模型。训练工作能够应用默认的训练脚本(以 XGBoost 作为内置算法)执行,也能够通过以下办法进行模型扩大:增加预处理与后处理脚本(将 XGBoost 作为框架)。Amazon SageMaker Python SDK 使您可能轻松通过内置的规模伸缩性能以编程形式执行训练作业。它还形象了 XGBoost 主动超参数优化中所波及的资源部署与治理复杂性。咱们倡议大家先从一小部分可用数据起步,借此实现更快的试验启动速度,而后逐渐倒退并最终在残缺的数据集上实现更加简单的机器学习模型优化。

xGoals 训练作业中蕴含一项二进制分类工作,其中将 ROC 曲线下面积(AUC)作为指标指标,同时配合高度不均衡训练与射门验证数据集(无论是否理论进球)。

基于贝叶斯搜寻的超参数优化作业提供多种机器学习模型选项,咱们能够抉择性能最强的机器学习模型并将其部署至 Amazon SageMaker 端点之上。因为不同模型在训练中有着不同的资源与生命周期要求,因而咱们的模型训练与托管环境彼此拆散。咱们能够应用 API 实时推理从应用程序(例如 AWS Lambda 函数)或者 Amazon SageMaker Notebook 外部调用端点。

然而,单纯应用 Amazon SageMaker 训练机器学习模型还远远不够。其余基础设施组件对于残缺云机器学习管道的建设同样至关重要,具体包含数据集成、数据荡涤、数据预处理、特色工程以及机器学习模型的训练与部署等等。此外,咱们还须要对其余特定应用程序云组件进行集成。

xGoals 架构:无服务器机器学习

在设计应用程序架构之前,咱们曾经建设起继续集成与继续交付 / 部署(CI/CD)管道。依据 AWS 良好架构框架白皮书中的阐明,咱们采纳多账户设置办法建设起独立开发、分段与生产 CI/CD 管道。咱们将其与基础设施即代码(IaC)办法配合起来,在交付环境之外为每一项代码变更提供可预测的部署反对。以此为根底,团队即可胜利隔离不同环境、缩短公布周期,并促成代码的可测试性。开发者工具部署到位之后,咱们开始为利用程序设计根本架构。下图所示,为这套架构的根本状况。

数据以两种互相独立的形式进行摄取:AWS Fargate(面向容器的无服务器计算引擎)用于接管地位与事件数据流,而 Amazon API Gateway 则用于接管其余元数据,例如球队名单与球员姓名。此输出数据将触发对应的 Lambda 函数,后者负责解决多项短暂的一次性工作 —— 例如主动撤销闲置资源,数据预处理,简略的提取、转换与加载(ETL)作业,并在每次应用新的匹配数据时进行多轮数据品质测试。咱们还应用 Lambda 调用 Amazon SageMaker 端点,以给定的一组输出特色为根底检索 xGoals 预测后果。

咱们应用两套数据库以存储较量状态:键值数据库 Amazon DynamoDB,以及文档数据库 Amazon DocumentDB(兼容 MongoDB)。后者可帮忙咱们应用嵌套构造轻松查问及索引 JSON 格局的地位与事件数据。这套数据库特地适宜匹配那些要求以灵便 Schema 实现疾速迭代的工作负载。对于官网较量数据的集中存储,咱们应用 Amazon Simple Storage Service (Amazon S3)。Amazon S3 负责存储所有较量历史数据,用于迭代改良 xGoals 模型。Amazon S3 还将存储对于模型性能、模型监控以及平安指标的全副相干元数据。

为了监控应用程序的性能,咱们应用 AWS Amplify Web 应用程序。这样,经营团队与各相干方可能通过用户敌对型仪表板查看零碎运行状态、Match Facts 计算状态以及底层云基础设施的运行概述。这样的经营洞见可能帮忙咱们捕获并建设赛后回顾剖析,进而对以后零碎进行继续改良。该仪表板还能帮忙咱们收集大量测量指标,掂量并评估业务指标的实现程度。最初,继续监控相干 KPI(包含总体零碎负载与性能、端到端提早以及其余非功能性要求)则能保障德甲联赛从业务及技术角度充沛理解以后零碎。

xGoals 架构齐全以无服务器模式构建,旨在进步可扩展性与易用性。全托管服务打消了服务器及其他基础设施组件带来的沉重治理与保护工作。这样一套架构,使咱们可能在较量开始之后动静反对各类需要,并在较量完结时主动开释资源(无需任何手动操作)显著升高应用程序老本与经营开销。

总结

自 2020 年 1 月将 AWS 指定为官网技术供应商以来,德甲联赛与 AWS 携手踏上征途,为寰球 200 多个国家 / 地区的球迷及广播公司带来先进的剖析技术。AWS 反对的德甲较量实况可帮忙观众更好地了解场上决策须要考量的策略性因素。xGoals 则帮忙球迷们依据赛场上的几项定量指标疾速评估射门得分的几率。具体用例包含以集体球员及守门员的视角登程,估算得分或胜利扑救的几率,以及较量的理论得分后果是否与赛场上的主观状态指标相符。

AWS 业余服务始终与德甲联赛及其子公司 Sportec Solution 携手单干,推动数字化转型过程、放慢业务成绩交付并持续保持翻新。在接下来的几个赛季中,德甲联赛还将引入 AWS 提供的全新 Match Facts 性能,保障为寰球球迷们带来融参与度、娱乐性于一身的一流赛事观看体验。

“德甲联赛得以应用 AWS 提供的先进技术(包含统计信息、剖析与机器学习)解释数据,提供更深刻的洞见并对球场上做出的霎时决策建设起更好的了解。通过德甲 Match Facts 服务,观众们也能够真正了解本人关注的球队如何依据理论状况做出战术决策。”——德甲团体数字翻新执行副总裁 Andreas Heyden

退出移动版