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