Data Science of Dota 2:
Роль киберспорта в обучении
анализу данных
Петр Ромов
ФКН ВШЭ, Yandex Data Factory
Соавтор курса по машинному
обучению на Coursera
Александр Семенов, конференция INSNA, Sunbelt 2016
Киберспорт
• В мире:
Dota 2
• Родоначальник жанра MOBA
• Играют 2 команды по 5 человек каждая
Выбор героев
Игра начинается с того что каждый игрок выбирает героя
(персонажа), которым он будет играть из доступных 113
Характеристики героев
… известны даже Гуглу!
Steam API и доступные данные
• Информация про все матчи
– кто играл, с кем играл
– кто победил
– уровни игроков к концу игры, статистика по действиям
игроков
• Информация о матче в режиме реального времени
• Выгрузка информации из API почти не ограничена
• Можно парсить реплеи матчей, извлекая
траектории и все действия игроков во времени
Задачи анализа данных
• Прогноз победителя
– по составу игроков (до начала матча)
– после выбора героев (в начале матча)
– по ходу игры
• Рейтинг игроков, учитывающий специфику игры
• Рекомендация действий/стратегий для игроков
• Рекомендации по составлению команды
• Умное управление камерой для комментаторов
матчей
• …
heroes), “ O✏aner” or “ Hardlaner” (hero who
which is bottom lane for Dire and top lane for
lanes and in the jungle) and two “ Supports”
buying items for the team, like wards, centries,
Fig. 1: Heroes
s: All
Pick
order
Pick,
from
ell de-
s that
ehero
aft on
e per-
picks
secu-
gimes
es for
and playing it. For example in AP player tries
st which sometimes isn’t good for the balance in
s are overrepresented in All Pick while this stats
e Random Draft, where each player gets his hero
Dota 2 called MMR, which allows the algorithm
level into the same match for more balanced
get this skill points visible to others via partic-
d All Pick, Ranked Random Draft and Ranked
the members of the winning team some MMR
mount of points from the lost team. Currently
MMR ≥ 8,000, while everything below 4,000 is
Пул из 113 героев
Комбинации героев
Каждый из 10 игроков
выбирает себе героя
Возможных комбинаций выбора героев
Всего сыграно матчей c Июля 2013
(в том числе незаконченных, учебных и т.д.)
Чем отличаются матчи:
1. Игроками и их стратегиями
2. Выбранными героями
Задача:
• Научиться оценивать вероятность победы
команды по известным выбранным
героям
• Оценить, в какой степени влияет выбор
героев, а в какой — умения игроков?
Комбинации героев
• Популярные среди игроков веб-сервисы
– Dotabuff.com
– Datdota.com
• Попытки подойти к проблеме с научной точки зрения
Авторы Методы Выборка
Conley & Perry, 2013 Logistic regression, kNN 60 тыс.
Agarwala & Pearce, 2014 Logistic regression, PCA 40 тыс.
Kalyanaraman, 2014 Logistic regression,
Genetic Algorithm
30 тыс.
Song et al., 2015 Logistic regression 3 тыс.
Kinkade & Lim, 2015 Logistic regression,
Random Forest
62 тыс.
Наш набор данных
• Период в 20 дней, не было изменений правил игры
• Все рейтинговые матчи за период
• Матчи игроков всех навыков
• 5 млн. матчей
• Датасет будет опубликован после окончания
соревнования
Наши результаты
• Сравнили на фиксированном датасете
– Наивные методы (Logistic regression, Naïve bayes)
– XGBoost: Учет связей между героями и их
характеристик
– Моделирование вероятности при помощи
факторизационных машин
Наши результаты
• Факторизационные машины дают наилучшую оценку
вероятности победы команды
• Набор выбранных героев объясняет не менее
• 6% информации (по Шенону) для опытных игроков
• 10% информации для остальных
Финальное задание к курсу по
машинному обучению на Coursera
• «Реальные» данные из индустрии
– большие трудности с получением и публикацией
• Данные Dota 2:
– доступны
– никого не беспокоит их распространение
Финальное задание для Coursera
• Задача: Предсказать победившую команду
по первым 5 минутам игры
• Данные:
≈120 тыс. распаршенных матчей
– траектории движения игроков
– временные ряды изменения свойств игроков
Ссылка на описание задания: http://goo.gl/gwj4ZQ
Соревнование Kaggle InClass
Соревнование Kaggle InClass
Соревнование Kaggle InClass
Соревнование условно-закрытое, «секретная» ссылка для участия:
Соревнование Kaggle InClass
• Множество идей
– применение различных методов обучения и уменьшения
размерности
– работа с сырыми данными и разработка собственных
признаков
– блендинг предсказаний разных моделей
• Отзывы
– «Мне очень нравится эта задача, и я получаю удовольствие
от ее решения»
– «…придумываешь признак, обсуждаешь его с людьми,
которые ничего не понимают в анализе данных, но не
смотря на это вы можете поспорить, это всегда классно»
– «Идеи по улучшению модели по-прежнему есть … буду
продолжать участвовать.»
Семинары на ВМК МГУ
• Студенты 3 курса
• Домашнее задание, первый опыт Kaggle
• 9 из 18 студентов прониклись и сейчас
самостоятельно решают «BNP Paribas» на
большом Kaggle
• 4 лучших решения презентованы на семинаре,
слайды выложены на Github
https://github.com/esokolov/ml-course-msu/tree/master/ML15-spring/contests/contest01-dota
Хакатон Dota Science Challenge
• Задача: построить и запустить систему, предсказывающую
результат матчей крупного соревнования Shanghai Major в
режиме реального времени
• Участвовало 37 команд
• 7 команд побили бейзлайн
• Статья на Хабре (от участников)
«Опыт участия в хакатоне Dota Science …»
Хакатон: предсказания участников
Предсказание вероятности победы в
реальном времени
Описание задачи: https://github.com/romovpa/dotascience-hackathon
• Поощряется уверенное предсказание (с
большим значением вероятности)
• В случае уверенного, но в итоге неверного
предсказания, решение получает очень
большой штраф
Команда
Резюме
• Dota 2 и Киберспорт
• Машинное обучение для предсказания
победы
• Образовательный эксперимент
– Финальное задание для Coursera
– Соревнование на Kaggle InClass
– Семинары на ВМК МГУ
– Хакатон Dota Science Challenge

Dota Science: Роль киберспорта в обучении анализу данных

  • 1.
    Data Science ofDota 2: Роль киберспорта в обучении анализу данных Петр Ромов ФКН ВШЭ, Yandex Data Factory Соавтор курса по машинному обучению на Coursera
  • 2.
  • 3.
  • 4.
    Dota 2 • Родоначальникжанра MOBA • Играют 2 команды по 5 человек каждая
  • 5.
    Выбор героев Игра начинаетсяс того что каждый игрок выбирает героя (персонажа), которым он будет играть из доступных 113
  • 6.
  • 7.
    Steam API идоступные данные • Информация про все матчи – кто играл, с кем играл – кто победил – уровни игроков к концу игры, статистика по действиям игроков • Информация о матче в режиме реального времени • Выгрузка информации из API почти не ограничена • Можно парсить реплеи матчей, извлекая траектории и все действия игроков во времени
  • 8.
    Задачи анализа данных •Прогноз победителя – по составу игроков (до начала матча) – после выбора героев (в начале матча) – по ходу игры • Рейтинг игроков, учитывающий специфику игры • Рекомендация действий/стратегий для игроков • Рекомендации по составлению команды • Умное управление камерой для комментаторов матчей • …
  • 9.
    heroes), “ O✏aner”or “ Hardlaner” (hero who which is bottom lane for Dire and top lane for lanes and in the jungle) and two “ Supports” buying items for the team, like wards, centries, Fig. 1: Heroes s: All Pick order Pick, from ell de- s that ehero aft on e per- picks secu- gimes es for and playing it. For example in AP player tries st which sometimes isn’t good for the balance in s are overrepresented in All Pick while this stats e Random Draft, where each player gets his hero Dota 2 called MMR, which allows the algorithm level into the same match for more balanced get this skill points visible to others via partic- d All Pick, Ranked Random Draft and Ranked the members of the winning team some MMR mount of points from the lost team. Currently MMR ≥ 8,000, while everything below 4,000 is Пул из 113 героев Комбинации героев Каждый из 10 игроков выбирает себе героя Возможных комбинаций выбора героев Всего сыграно матчей c Июля 2013 (в том числе незаконченных, учебных и т.д.) Чем отличаются матчи: 1. Игроками и их стратегиями 2. Выбранными героями Задача: • Научиться оценивать вероятность победы команды по известным выбранным героям • Оценить, в какой степени влияет выбор героев, а в какой — умения игроков?
  • 10.
    Комбинации героев • Популярныесреди игроков веб-сервисы – Dotabuff.com – Datdota.com • Попытки подойти к проблеме с научной точки зрения Авторы Методы Выборка Conley & Perry, 2013 Logistic regression, kNN 60 тыс. Agarwala & Pearce, 2014 Logistic regression, PCA 40 тыс. Kalyanaraman, 2014 Logistic regression, Genetic Algorithm 30 тыс. Song et al., 2015 Logistic regression 3 тыс. Kinkade & Lim, 2015 Logistic regression, Random Forest 62 тыс.
  • 11.
    Наш набор данных •Период в 20 дней, не было изменений правил игры • Все рейтинговые матчи за период • Матчи игроков всех навыков • 5 млн. матчей • Датасет будет опубликован после окончания соревнования
  • 12.
    Наши результаты • Сравнилина фиксированном датасете – Наивные методы (Logistic regression, Naïve bayes) – XGBoost: Учет связей между героями и их характеристик – Моделирование вероятности при помощи факторизационных машин
  • 13.
    Наши результаты • Факторизационныемашины дают наилучшую оценку вероятности победы команды • Набор выбранных героев объясняет не менее • 6% информации (по Шенону) для опытных игроков • 10% информации для остальных
  • 14.
    Финальное задание ккурсу по машинному обучению на Coursera • «Реальные» данные из индустрии – большие трудности с получением и публикацией • Данные Dota 2: – доступны – никого не беспокоит их распространение
  • 15.
    Финальное задание дляCoursera • Задача: Предсказать победившую команду по первым 5 минутам игры • Данные: ≈120 тыс. распаршенных матчей – траектории движения игроков – временные ряды изменения свойств игроков Ссылка на описание задания: http://goo.gl/gwj4ZQ
  • 16.
  • 17.
  • 18.
    Соревнование Kaggle InClass Соревнованиеусловно-закрытое, «секретная» ссылка для участия:
  • 19.
    Соревнование Kaggle InClass •Множество идей – применение различных методов обучения и уменьшения размерности – работа с сырыми данными и разработка собственных признаков – блендинг предсказаний разных моделей • Отзывы – «Мне очень нравится эта задача, и я получаю удовольствие от ее решения» – «…придумываешь признак, обсуждаешь его с людьми, которые ничего не понимают в анализе данных, но не смотря на это вы можете поспорить, это всегда классно» – «Идеи по улучшению модели по-прежнему есть … буду продолжать участвовать.»
  • 20.
    Семинары на ВМКМГУ • Студенты 3 курса • Домашнее задание, первый опыт Kaggle • 9 из 18 студентов прониклись и сейчас самостоятельно решают «BNP Paribas» на большом Kaggle • 4 лучших решения презентованы на семинаре, слайды выложены на Github https://github.com/esokolov/ml-course-msu/tree/master/ML15-spring/contests/contest01-dota
  • 21.
    Хакатон Dota ScienceChallenge • Задача: построить и запустить систему, предсказывающую результат матчей крупного соревнования Shanghai Major в режиме реального времени • Участвовало 37 команд • 7 команд побили бейзлайн • Статья на Хабре (от участников) «Опыт участия в хакатоне Dota Science …»
  • 22.
  • 23.
    Предсказание вероятности победыв реальном времени Описание задачи: https://github.com/romovpa/dotascience-hackathon • Поощряется уверенное предсказание (с большим значением вероятности) • В случае уверенного, но в итоге неверного предсказания, решение получает очень большой штраф
  • 24.
  • 25.
    Резюме • Dota 2и Киберспорт • Машинное обучение для предсказания победы • Образовательный эксперимент – Финальное задание для Coursera – Соревнование на Kaggle InClass – Семинары на ВМК МГУ – Хакатон Dota Science Challenge