AWS 利用 xGoals 技术为德甲联赛提供强大技术支持
网址:
很多朋友在闲暇时喜欢看足球比赛,能够根据射门的位置和角度,快速判断当前球员的射门命中球门的几率。如果在电视上看比赛,再加上主持人的解说和情绪引导,几乎每个人都能预测到最后的射门效果会是怎样。但在过去,这样的判断只能通过肉眼观察,同时根据当前防守球员的数量做出假设(比如守门员的位置,或者射门者是在球门前还是在球门侧面)。现在,利用(“预期进球”的缩写)技术,AWS 能够为德甲联赛提供强有力的技术支持,充分发挥数据和洞察的力量,帮助球迷即时确定球场上各个位置进球的准确概率。
德国足球联赛是德国职业足球的组织者和营销者。在每场比赛中,德甲联赛都会收集超过 360 万个数据点,以深入了解赛场上发生的事情。在此基础上,德甲联赛在为全球超过 5 亿球迷和 70 多家合作媒体提升观赛体验方面积累了丰富的经验,这也使其成为全球最具创新力的体育联赛之一。德甲联赛希望以新的方式利用技术成果,提供由机器学习 (ML) 驱动的实时统计数据,最终为球迷构建个性化内容,并将数据转化为洞察甚至实际行动。
它是德甲联赛与 AWS 于 2020 年 5 月底正式推出的两项全新 Match Facts 功能之一(另一项是 Match Facts)德甲球队标志,旨在提升全球球迷观赛参与度,同时统计每场比赛最高平均进球数。该服务采用的机器学习模型完全托管构建、训练和部署。它可以客观评估德甲球员在场上任何位置射门得分的机会,还可以判断当前的传球(相较于当前球员坚持单刀,或者传球给其他球员)是否会增加得分机会。
而德甲联赛其他赛事信息服务则试图在数据的基础上构建分析洞察,同时也为整个足球领域的实时数据统计树立新的标杆。
量化进球机会
Match Facts 于 2020 年 5 月 26 日在多特蒙德和拜仁慕尼黑的比赛中首次亮相,该比赛在全球 200 多个国家/地区进行了直播。这是一场艰苦的比赛,两支球队的防守都很严密,每一次进攻机会都必须努力争取。在此期间,拜仁慕尼黑表现出色。然而,考虑到距离球门、射门角度、周围防守球员数量等因素,他只有 6% 的得分机会。
机器学习模型可以生成0~1之间的概率图,具体数值以百分比形式展示。例如,在对德甲比赛上训练的机器学习模型进行评估后,可以看到每次点球的xG(简称“xG”)值为0.77,也就是进球的概率为77%。引入这个数值是为了量化衡量球员或球队的进球机会,并结合各种相关因素呈现给屏幕前的观众。
每场比赛结束时,屏幕还会显示两队得分的汇总。这让观众能够看到客观的得分机会指标。如果不是那次成功的射门,比赛很容易以平局结束。能够以多种方式增强观看体验并提供分析见解,有助于球迷保持高度参与度,同时深入了解特定球员和球队在当前比赛和整个赛季中的表现。
考虑到射门次数是一个高度动态的指标,实际比赛中的数值很少超过 70%。球员的位置不断变化,射手必须在有限的信息(主要基于直觉)下做出瞬间决定。因此,即使在禁区内射门的难度也会因情况的不同而有很大差异。因此,最重要的是对每个特定时刻场上的所有事件有全面的、基于数据的了解。只有这样,当这些信息被输入到机器学习模型中时,系统才能在考虑到所有球员的位置的情况下做出真正可靠的判断。
一切始于数据
为了让比赛更加生动、精彩,德甲需要在赛前、赛中和赛后完成一系列检查和处理。所有相关方都将参与数据收集、数据处理、图形生成、内容创作(如电视上的精彩片段)和实时评论。每个德甲足球场都配备了多达 20 台摄像机,这些摄像机使用自动光学跟踪技术连续捕捉球员和球的位置。编辑团队负责处理其他视频数据,选择理想的摄像机角度和场景进行转播,包括何时适合在电视屏幕上显示比赛事实统计数据。
几乎所有场上事件(包括点球和射门)都将被实时记录并发送到德甲系统进行远程验证。人工注释员将对事件进行分类并添加特定于情况的描述信息。例如,他们可以添加球员和球队的指定战术,以及当前的动作类型(抢断或助攻)。
最终,所有原始比赛数据都会被输入到 AWS 上的 Match Facts 系统中,该系统会计算数值并将其发布给全球观众。
对于德甲官方应用程序和网站,Match Facts 将实时持续显示在终端用户设备上。当然,德甲也在努力加快向第三方数字平台和其他外部客户提供 Match Facts 结果的速度,以确保为全球球迷提供最新的见解和高级统计数据。
如今,实时内容分发和粉丝参与已经成为职业体育赛事的绝对核心。受疫情影响,本届德甲比赛只能在空旷的体育场内进行,没有任何观众——这当然严重影响了比赛的观赛体验。
我们的机器学习之旅:将代码投入生产
德甲联赛的领导层、管理层和开发部门一直与 AWS 专业服务部门密切合作,通过机器学习的力量提升观众体验。AWS 数据科学顾问的任务是通过高效使用机器学习技术来加速客户业务成果。客户首先参与初步评估,并从业务和技术角度仔细研究期望的结果和可行性。AWS 专业服务顾问为客户的内部团队提供专业知识和行业经验,开发概念验证 (POC) 项目,构建最小可行产品 (MVP),并最终将机器学习解决方案投入生产。在此期间,我们将继续推动学习和知识转移,以确保技术尝试始终与明确的商业价值保持一致。
除了德甲子公司内部实验和原型开发外,我们还在努力建立一个独立完善的研究社区,致力于进一步提高计算的性能和准确性。将这一领域的知识与正确的技术堆栈和最佳实践相结合,将使我们能够更快地推动大规模创新和实际实施,同时确保卓越运营、安全性、可靠性、性能效率和成本优化。
足球比赛的历史数据无疑是基于机器学习技术的模型的训练基础。我们利用这些数据训练机器学习模型,根据场上的具体情况推断可能的结论。为了进行数据质量评估和初步实验,我们需要进行探索性数据分析、数据可视化、数据转换和数据验证。这项工作可以通过 等解决方案来完成。下一步是将机器学习工作负载从研究阶段转移到开发环境。这一部署过程需要使用跨学科的工程方法,包括数据工程、数据科学和软件开发的结合。生产环境还需要采取错误处理、故障转移和恢复计划等多项措施。一般来说,机器学习系统的开发和运行 (MLOps) 涉及一系列复杂的过程,包括代码重构、重新设计和优化、自动化、设置云基础设施基础、实施和安全模型、执行端到端测试、监控以及确保使用正确的系统设计。我们的目标始终是尽可能多地自动化系统组件,以最大限度地减少人为干预和手动维护的需要。
在下一节中,我们将仔细研究AWS为德甲联赛Match Facts提供的底层技术堆栈,以及将其投入生产时的基本注意事项。
使用经过训练的模型
传统的机器学习模型纯粹基于事件数据。这意味着在评估进球概率时,模型只考虑球员当前的位置以及球员与球门之间的距离。但德甲联赛将射门事件与以 25 Hz 帧率获取的高精度位置数据相结合——虽然更高的数据采集精度会给数据流分析管道带来更高的数据清洗和数据预处理压力德甲球队标志,但可以带来更准确的预测结果,充分抵消了额外工作量和复杂性的开销。通过不断跟踪球和球员的位置,模型可以确定一系列额外的特征,例如球员与球门之间的距离、当前射门角度、球员的速度、对方防守球员的数量以及对方守门员的扑救范围。
在其中,我们使用算法来训练机器学习模型,使用自 2017 年以来德甲联赛的 40,000 多个历史射门。可以使用默认训练脚本(作为内置算法)进行训练,也可以通过添加预处理和后处理脚本(作为框架)来扩展模型。SDK 借助内置的扩展功能,可以轻松地以编程方式执行训练作业。它还抽象了自动超参数优化所涉及的资源部署和管理复杂性。我们建议您从一小部分可用数据开始,以实现更快的实验启动速度,然后逐渐在完整数据集上开发并最终优化更复杂的机器学习模型。
训练工作包括一个二元分类任务,以 ROC 曲线下面积 (AUC) 作为目标指标,以及一个高度不平衡的投篮训练和验证数据集(无论是否实际得分)。
基于贝叶斯搜索的超参数优化作业提供了多种机器学习模型选项,我们可以选择最强大的机器学习模型并将其部署到终端节点。由于不同的模型在训练期间具有不同的资源和生命周期要求,因此我们的模型训练和托管环境是相互分离的。我们可以使用 API 实时推理从应用程序(例如 AWS 函数)或内部调用终端节点。
但仅仅训练一个机器学习模型是远远不够的,其他基础设施组件对于建立完整的云端机器学习管道也至关重要,包括数据集成、数据清洗、数据预处理、特征工程以及机器学习模型的训练和部署,此外,我们还需要集成其他特定于应用程序的云端组件。
架构:无服务器机器学习
在设计应用程序架构之前,我们已经建立了持续集成和持续交付/部署 (CI/CD) 管道。根据 AWS Well- 白皮书,我们使用多账户设置方法建立独立的开发、暂存和生产 CI/CD 管道。我们将其与基础设施即代码 (IaC) 方法相结合,为交付环境之外的每次代码变更提供可预测的部署支持。以此为基础,团队可以成功隔离不同的环境、缩短发布周期并促进代码的可测试性。在开发人员工具部署到位后,我们开始设计应用程序的基本架构。下图显示了此架构的基本情况。
数据以两种独立的方式提取:AWS(一种无服务器容器计算引擎)用于接收位置和事件数据流,API 用于接收其他元数据,例如球队名单和球员姓名。这些输入数据会触发相应的功能,这些功能负责处理许多短期一次性任务 - 例如自动停用闲置资源、数据预处理、简单的提取、转换和加载 (ETL) 作业,以及每次使用新的比赛数据时进行多轮数据质量测试。我们还使用调用端点根据给定的一组输入特征检索预测。
我们使用两个数据库来存储游戏状态:一个键值数据库和一个文档数据库(兼容)。后者允许我们使用嵌套结构以 JSON 格式轻松查询和索引位置和事件数据。此数据库特别适合需要灵活性来实现快速迭代的工作负载。对于官方游戏数据的集中存储,我们使用(S3)。S3 负责存储所有历史游戏数据,以便迭代改进模型。S3 还将存储有关模型性能、模型监控和安全指标的所有相关元数据。
为了监控应用程序的性能,我们使用了 AWS Web 应用程序。这使运营团队和利益相关者能够通过用户友好的仪表板查看系统运行状态、比赛事实计算状态以及底层云基础设施的运营概览。这种运营洞察力有助于我们捕获和构建赛后评论,以不断改进当前系统。仪表板还帮助我们收集大量测量数据,以衡量和评估业务目标的实现程度。最后,持续监控相关 KPI(包括整体系统负载和性能、端到端延迟和其他非功能性要求)可确保德甲联赛从业务和技术角度充分了解当前系统。
该架构完全以无服务器形式构建,以提高可扩展性和易用性。完全托管的服务消除了服务器和其他基础设施组件的繁重管理和维护工作。这种架构使我们能够在游戏开始后动态支持各种需求,并在游戏结束时自动释放资源——无需任何手动操作——大大降低了应用程序成本和运营费用。
总结
自 2020 年 1 月指定 AWS 为官方技术提供商以来,德甲联赛携手 AWS 为全球 200 多个国家的球迷和广播公司带来高级分析功能。由 AWS 提供支持的德甲联赛直播可以帮助观众更好地了解场上决策需要考虑的战略因素。它帮助球迷根据场上的几个量化指标快速评估进球的机会。具体用例包括从个人球员和守门员的角度估计进球或成功扑救的机会,以及比赛的实际得分结果是否与场上的客观状态指标一致。
AWS 专业服务一直与德甲联赛及其子公司合作,推进数字化转型,加速业务成果,并不断创新。在接下来的几个赛季中,德甲联赛还将引入 AWS 提供的全新 Match Facts 功能,以确保全球球迷都能享受到集参与度和娱乐性于一体的一流观赛体验。
“德甲联赛能够利用 AWS 提供的先进技术,包括统计、分析和机器学习,来解释数据,提供更深入的见解,并更好地理解球场上做出的瞬间决策。借助德甲联赛比赛信息服务,观众还可以真正了解他们所关注的球队如何根据实际情况做出战术决策。”
— 德甲联赛集团数字创新执行副总裁
关于作者
作为 AWS 专业服务团队的一名数据科学家,他与客户合作,利用 AI/ML 加速业务成果。他还是德甲联赛 Match Facts 项目的首席开发人员。闲暇时,他喜欢长途旅行德甲球队标志,并且是极简主义设计和建筑的狂热崇拜者。
米尔科
拜仁慕尼黑有限公司(德甲联赛子公司)IT 开发主管,负责集团内的数据收集、数据/统计系统和足球分析。Mirko 热爱足球,从小就关注德甲联赛和家乡球队。闲暇时,他喜欢和家人朋友一起去巴伐利亚阿尔卑斯山徒步旅行。
莉娜
AWS 专业服务高级企业服务经理。Lina 致力于帮助媒体和娱乐客户构建云战略和方法,并指导他们成功完成转型。她对 AI/ML 等新兴技术充满热情,尤其对如何使用这些技术帮助客户实现业务成果感兴趣。闲暇时,住在慕尼黑的 Lina 喜欢和家人朋友一起去附近的阿尔卑斯山徒步旅行。
标签:,机器学习