12 мин.

Технология, лежащая в основе матчей Бундеслиги, Match Facts xGoals: как машинное обучение способствует пониманию футбола

С тех пор, как в январе 2020 года AWS был назван официальным поставщиком технологий, Бундеслига и AWS вместе отправились в путь, чтобы воплотить в жизнь передовую аналитику для футбольных фанатов и вещателей в более чем 200 странах.  Информация о матчах Бундеслиги на базе AWS помогает зрителям лучше понять стратегию принятия решений на поле.

Рассказываем подробности.

Довольно часто, наблюдая за футбольным матчем и глядя, как игрок забивает гол, вы можете предположить, насколько сложно было забить этот гол. Ваше мнение может быть дополнительно подтверждено, если вы смотрите матч по телевизору и слышите, как комментатор восклицает, как же тяжело было этому мячу попасть в сетку. Раньше эти суждения основывались на том, что заметно невооруженным глазом и базировались на количестве присутствующих защитников, месте нахождения вратаря и самого игрока, находился ли он перед сеткой или располагался под углом. Теперь, с xGoals (сокращение от Expected Goals), в качестве ещё одного из фактов о матче Бундеслиги, создаваемых на базе AWS, можно использовать данные и аналитическую информацию о «вау-факторе», показывая болельщикам точные значения вероятности того, что гол будет забит после удара из любой позиции на игровом поле.

Немецкая футбольная лига (DFL) отвечает за организацию и маркетинг профессиональной футбольной лиги Германии, Бундеслиги и Бундеслиги 2. В каждом матче DFL собирает более 3,6 миллиона точек данных для более глубокого понимания того, что происходит на игровом поле. Идея состоит в том, чтобы стать самой инновационной спортивной лигой, расширив возможности более 500 миллионов болельщиков Бундеслиги и более 70 медиа-партнеров по всему миру. DFL стремится реализовать свои идеи, используя новые технологии представления статистики в реальном времени, где в основе лежит машинное обучение (ML), а также создания персонализированного контента для фанатов и превращения данных в информацию и действия.

xGoals - это один из двух новых фактов о матчах (другой Average Positions), которые DFL и AWS официально запустили в конце мая 2020 года, что повысило глобальное взаимодействие болельщиков с Бундеслигой, как высшей футбольной лигой страны и лигой с наибольшим средним количеством голов за матч.  Используя Amazon SageMaker, полностью управляемый сервис для создания, обучения и развертывания моделей машинного обучения, xGoals может объективно оценить голевые шансы игроков Бундеслиги, бьющих из любой позиции на игровом поле.  xGoals также может определить, помог бы пас создать лучшую возможность, чем, если бы  игрок сам нанес удар по воротам или сделал пас партнеру, находящемуся в лучшей позиции для удара.

xGoals и другие факты о матчах Бундеслиги устанавливают новые стандарты, предоставляя аналитическую информацию о мире футбола на основе данных. Количественная оценка голевых моментов XGoals Match Facts дебютировал 26 мая 2020 года во время матча «Боруссия» Дортмунд – «Бавария» Мюнхен, который транслировался более чем в 200 странах мира.  В игре, где любая деталь могла стать решающей, и за каждый мяч нужно было бороться, игрок «Баварии» Йозуа Киммих сделал выдающийся удар. Учитывая расстояние до ворот, угол удара, количество окружающих игроков и другие факторы, вероятность забить гол в этой ситуации составляла всего 6%.

Модель xGoals выдает значение вероятности от 0 до 1, после чего значения отображаются в процентах.  Например, оценка моделей ML, обученных на матчах Бундеслиги, показала, что каждый пенальти имеет значение xGoals (или «xG») 0,77, это означает, что вероятность забить гол составляет 77%.  xGoals представляет собой значение, которое качественно измеряет использование голевых моментов игроком или командой, после чего выдает информацию об их эффективности.

В конце каждого матча также отображается совокупность значений xGoals обеих команд. Таким образом, зрители получают объективную оценку голевых моментов. В указанном выше матче была высокая вероятность ничейного исхода, если бы не гол Киммиха.

Учитывая динамику игры, очень трудно достичь значения xG выше 70%. Позиции игроков постоянно меняются, и игроки должны принимать решения за доли секунды с ограниченным количеством информации, в основном полагаясь на интуицию. Таким образом, даже в непосредственной близости от ворот, в зависимости от ситуации, сложность гола может значительно различаться. Поэтому важно иметь целостное представление обо всех событиях, происходящих на игровом поле в любой момент матча. Точные прогнозы можно делать только тогда, когда принимаются во внимание и позиции других игроков при передаче этой информации в модель xGoals ML.

Все начинается с данных

Чтобы воплотить Match Facts в жизнь, несколько проверок и процессов происходят до, во время и после матчей. Различные заинтересованные стороны участвуют в сборе данных, их обработке, создании графики, контента (например, редактировании телепрограммы) и комментирование в прямом эфире. Каждый из футбольных стадионов Бундеслиги оборудован примерно 20 камерами для автоматического оптического слежения за положением игроков и мяча. Редакционная группа обрабатывает дополнительные видеоданные, выбирая идеальные углы камеры и ракурсы для трансляции. Сюда входит и решение, когда именно показывать Match Facts в эфире.

Практически все события матча, такие как пенальти и удары по воротам, документируются в реальном времени и отправляются в системы DFL для удаленной проверки. Редакторы классифицируют и дополняют события информацией, относящейся к конкретной ситуации. Например, они могут добавить задачи игроков и команд, а также тип выполненного удара (например, блокировка или ассист). В конце концов, все необработанные данные о матчах загружаются в систему Bundesliga Match Facts на AWS для расчета значений xGoals, которые затем распространяются по всему миру для транслирования.

В случае использования официального приложения или веб-сайта Бундеслиги Match Facts постоянно отображаются на устройствах конечных пользователей в кратчайшие сроки. То же самое относится и к другим внешним клиентам DFL со сторонними цифровыми платформами, которые также предлагают самые свежие новости и расширенную статистику футбольным фанатам по всему миру. Распространение контента в реальном времени и вовлеченность болельщиков сейчас особенно важны, потому что матчи Бундеслиги играются на пустых стадионах, что повлияло на восприятие футбольных матчей.

Путь к машинному обучению: внедрение кода в производство контента

Руководство, менеджмент и разработчики DFL работали рука об руку с AWS Professional Services Teams на этом пути перехода к облачным технологиям, обеспечивая ML для расширения возможностей просмотра. Миссия консультантов AWS Data Science – ускорить достижение бизнес-результатов клиентов за счет эффективного использования машинного обучения. Взаимодействие с клиентами начинается с первоначальной оценки и более детального изучения желаемых результатов и их осуществимости как с деловой, так и с технической точки зрения. Консультанты AWS Professional Services дополняют существующие команды клиентов специальными наборами навыков и отраслевым опытом, разрабатывая доказательства концепций (POCs), минимально жизнеспособные продукты (MVPs) и решение о внедрении машинного обучения в производство. В то же время постоянное обучение и передача знаний способствуют устойчивой относительной стоимости бизнеса.

Помимо собственных экспериментов и создания прототипов, выполняемых в Sportec Solutions, дочерней компании DFL, авторитетное исследовательское сообщество уже работает над улучшением производительности и точности расчетов xGoals. Сочетание этих знаний в предметной области с правильным набором технологий и использованием передовых практик позволяет быстрее внедрять инновации и выполнять масштабные задачи, обеспечивая при этом операционное превосходство, безопасность, надежность, эффективность и оптимизацию затрат.

Исторические данные футбольных матчей – это основа современных подходов к обучению ML моделям xGoals. Мы можем использовать эти данные для обучения моделей выводам результатов xGoals на основе заданных условий игрового поля. Для оценки качества данных и начальных экспериментов нам необходимо выполнить исследовательский анализ собранных данных, визуализацию, преобразование и проверку. Следующим естественным шагом является перенос рабочих настроек ML с исследований на разработку. Развертывание моделей машинного обучения в производстве требует междисциплинарного инженерного подхода, включающего сочетание дата-инженерии, анализа данных и разработки программного обеспечения. Производственные параметры требуют обработки ошибок, отработки отказа и планов восстановления. В целом, разработка и эксплуатация системы ML (MLOps) требует равносильного преобразования алгоритмов, реорганизации и оптимизации, автоматизации, настройки базовой облачной инфраструктуры, внедрения DevOps, шаблонов безопасности, сквозного тестирования, мониторинга, а также правильного проектирования системы. Целью всегда должна быть автоматизация как можно большего количества компонентов системы для минимизации ручного вмешательства и уменьшения потребности в обслуживании.

В следующих разделах мы дополнительно рассмотрим технологическую платформу Bundesliga Match Facts на базе AWS и основные соображения при оптимизации путей вывода xGoals в производство.

Обучение модели xGoals с помощью Amazon SageMaker

Традиционные модели xGoals ML основаны только на данных о событиях. Это означает, что при оценке голевых моментов учитывается только примерное положение игрока и их расстояние до гола. В случае Бундеслиги события удара по воротам сочетаются с дополнительными высокоточными позиционными данными, полученными с частотой кадров 25 Гц. Это связано с дополнительными расходами на очистку данных и предварительную их обработку в рамках необходимого конвейера анализа потоков данных. Однако преимущества более точных результатов явно перевешивают необходимые инженерные усилия и сложность. Основываясь на позициях мяча и игрока, которые постоянно отслеживаются, модель может определить массив дополнительных особенностей, таких как расстояние игрока до ворот, угол до ворот, скорость игрока, количество защитников в линии удара и позицию вратаря.

Для xGoals использовали алгоритм Amazon SageMaker XGBoost для обучения модели ML на более чем 40 000 исторических ударах по воротам в Бундеслиге с 2017 года. Это может быть выполнено с помощью учебного сценария по умолчанию (XGBoost как встроенный алгоритм) или расширено при помощи добавления скриптов предварительной и постобработки (XGBoost как фреймворк).  SDK Amazon SageMaker Python упрощает выполнение программ обучения с помощью встроенного масштабирования.  Он также абстрагируется от сложности развертывания ресурсов и управления, необходимых для автоматической оптимизации гиперпараметров XGBoost.  Рекомендуется начинать разработку с небольших подмножеств доступных данных для более быстрого эксперимента и постепенно развивать и оптимизировать в сторону более сложных моделей машинного обучения, обученных на полном наборе данных.

Обучающая работа xGoals состоит из задачи бинарной классификации с областью под кривой ROC (AUC) в качестве объективной метрики и сильно несбалансированного набора данных по обучению и проверке ударов по воротам, которые либо привели, либо не привели к забитому голу.

Учитывая, различные кандидаты в модели машинного обучения из задания по оптимизации гиперпараметров на основе байесовского поиска, для развертывания на конечной точке Amazon SageMaker выбирается как наиболее эффективная.  Из-за различных требований к ресурсам и долговечности обучение модели ML не связано с хостингом.  Конечная точка может быть вызвана из приложений, таких как функции AWS Lambda, или из записных книжек Amazon SageMaker с помощью вызова API для вывода в реальном времени.

Однако обучения модели машинного обучения с помощью Amazon SageMaker недостаточно.  Другие компоненты инфраструктуры необходимы для обработки всего облачного конвейера машинного обучения, который состоит из интеграции данных, очистки, предварительной обработки, разработки функций, а также обучения и развертывания модели машинного обучения.  Кроме того, необходимо интегрировать другие облачные компоненты для конкретных приложений.

Архитектура xGoals: бессерверное машинное обучение

Перед проектированием архитектуры приложения мы устанавливаем конвейер непрерывной интеграции и непрерывной доставки / развертывания (CI / CD).  В соответствии с рекомендациями, изложенными в техническом документе AWS Well-Architected Framework, мы следовали подходу к настройке с несколькими учетными записями для независимых этапов разработки, постановки и производства CI / CD.  Мы объединили это с подходом «инфраструктура как код» (IaC) для обеспечения этих сред и предсказуемого развертывания для каждого изменения кода. Это позволяет команде иметь отдельные среды, сокращает циклы выпуска и облегчает тестирование кода.  После того, как инструменты разработчика были готовы, мы приступили к разработке архитектуры приложения.  Следующая диаграмма иллюстрирует эту архитектуру.

 Данные поступают двумя разными способами: AWS Fargate используется (бессерверные вычислительные механизмы для контейнеров) для получения потоков позиционных данных и данных о событиях, а Amazon API Gateway – для получения дополнительных метаданных, таких как состав команд и имена игроков. Эти входящие данные запускают Lambda-функцию. Эта функция Lambda заботится о множестве краткосрочных одноразовых задач, таких как автоматическое отключение простаивающих ресурсов; предварительная обработка данных; простые задания извлечения, преобразования и загрузка (ETL); тесты качества данных, которые выполняются каждый раз при использовании новых данных соответствия. Мы также используем Lambda для вызова конечной точки Amazon SageMaker для получения прогнозов xGoals с учетом набора входных функций.

 

Мы используем две базы данных для хранения статистики матчей: Amazon DynamoDB, база данных «ключ-значение», и Amazon DocumentDB (с совместимостью с MongoDB), база данных документов. Последний позволяет легко запрашивать и индексировать данные о местоположении и событиях в формате JSON с вложенными структурами. Это особенно удобно, если рабочие нагрузки требуют гибкой схемы для быстрой итеративной разработки. Для централизованного хранения официальных данных о матчах мы используем Amazon Simple Storage Service (Amazon S3). Amazon S3 хранит исторические данные за все дни матчей, которые используются для итеративного улучшения модели xGoals. Amazon S3 также хранит метаданные о производительности модели, мониторинге модели и показателях безопасности.

Для мониторинга производительности приложения мы используем веб-приложение AWS Amplify. Это дает операционной группе и заинтересованным лицам обзор состояния системы и статуса вычислений Match Facts и ее базовой облачной инфраструктуры в форме удобной панели управления. Такие операционные идеи важны для сбора и включения в постматчевый ретроспективный анализ, чтобы обеспечить постоянное улучшение существующей системы. Эта панель управления также позволяет нам собирать показатели для измерения и оценки достижения желаемых бизнес-результатов. Непрерывный мониторинг соответствующих KPI, таких как общая загрузка и производительность системы, сквозная задержка и другие нефункциональные требования, обеспечивают целостное представление о текущей системе как с деловой, так и с технической точек зрения.

Архитектура xGoals построена полностью без серверов для улучшения масштабируемости и простоты использования. Полностью управляемые сервисы устраняют недифференцированную тяжелую работу по управлению серверами и другими базовыми компонентами инфраструктуры. Архитектура позволяет динамически поддерживать спрос в начале матча и высвобождать ресурсы в конце игры без необходимости ручных действий, что снижает затраты на приложение и операционные издержки.

Саммари

С тех пор, как в январе 2020 года AWS был назван официальным поставщиком технологий, Бундеслига и AWS вместе отправились в путь, чтобы воплотить в жизнь передовую аналитику для футбольных фанатов и вещателей в более чем 200 странах.  Информация о матчах Бундеслиги на базе AWS помогает зрителям лучше понять стратегию принятия решений на поле.  xGoals позволяет зрителям футбольных матчей количественно оценивать вероятность забитого гола на основе нескольких условий на игровом поле.  Другие варианты использования включают агрегирование шансов на результат в виде показателей производительности отдельных игроков и вратарей, а также объективные оценки того, является ли счет в матче справедливым отражением того, что происходило на игровом поле.

AWS Professional Services работает рука об руку с DFL и ее дочерней компанией Sportec Solutions, продвигая цифровую трансформацию, ускоряя бизнес-результаты и обеспечивая непрерывные инновации.  В течение следующих сезонов DFL представит новые Match Facts Бундеслиги на базе AWS, чтобы поддерживать интерес, развлекать болельщиков и предоставлять им возможность смотреть футбол мирового уровня.

 «Мы в Бундеслиге можем использовать эту передовую технологию AWS, включая статистику, аналитику и машинное обучение, для интерпретации данных и предоставления более глубоких аналитических данных и лучшего понимания решений, принимаемых за доли секунды на поле.  Использование Bundesliga Match Facts позволяет зрителям лучше понять ключевые решения в каждом матче ».– Андреас Хейден, исполнительный вице-президент по цифровым инновациям DFL Group.

 ***

Редактор: Polina_malina

***

Любите немецкий футбол! Цените немецкий футбол!

Смотрите немецкий футбол, подписывайтесь на наш блог и твиттер. Присоединяйтесь к нашему каналу на YouTube и дружеской группе ВК

***