Движимый неутомимым стремлением измерить разные аспекты Overwatch, в прошлом сезоне я разработал систему рейтинга Эло, позволяющую отслеживать изменение силы команд Overwatch League. Но хотя мое творение давало возможность строить красивые графики, у него был существенный изъян: недостаточная точность. Впрочем, давайте не будем предаваться воспоминаниям, а лучше посмотрим в будущее, в котором вас ждет переработанная и улучшенная система рейтинга Эло для Overwatch League — OLE 2.0. В ней исправлены все прошлые неточности. Эта система — гремучая смесь разработанных FiveThirtyEight систем Эло для НБА и НФЛ, адаптированных под специфику Overwatch League.

Модели Эло строятся на так называемой «нулевой сумме»: когда две команды играют друг против друга, победитель получает столько же очков, сколько теряет проигравший. Количество очков рейтинга, которое перейдет от одной команды к другой, во всех системах Эло определяется коэффициентом К и ожидаемым шансом на победу. Последний зависит от разницы рейтинга двух команд.

Изменение рейтинга Эло = К(1 – ожидаемая вероятность победы)

Разработанные FiveThirtyEight системы Эло дополняют эти простые вычисления парой шагов, повышая их точность. Первый из них — перенос показателей (ПП) между сезонами. Часть очков рейтинга, заработанных в сезоне, переходит в следующий. В традиционных видах спорта это помогает скорректировать представления системы о силе команд после межсезонья, когда происходят обмены, подписания новых контрактов и прочие перестановки.

При разработке OLE 2.0 я перебрал множество комбинаций К и ПП, пока не нашел пару, при которой добился максимальных показателей Бриера, точности прогнозирования полей боя и результатов матча. Для К я выбрал значение 47, а ПП сделал равным 60%. Перенос рейтинга в размере 60% происходит при выходе обновления игры, а не в начале нового сезона, поскольку в Overwatch League нужно учитывать не только изменения в составе команды, но и изменения в самой игре. В качестве примера приведем Vancouver Titans которые закончили первый этап с 1183,6 очков Эло. Второй этап они начнут с (1183,6 * 0,6) + (1001 * 0,4) = 1110,6 очков рейтинга.

Система FiveThirtyEight также учитывает появление новых команд в лиге, присваивая им рейтинг Эло ниже среднего показателя. Overwatch League недавно пополнилась восемью новыми командами, и я счел необходимым учесть это при разработке системы. В OLE 2.0 новые команды начинают с рейтинга Эло 990 (средний показатель — 1000), который отражает относительную неопределенность их силы. Это приводит к снижению среднего значения по системе — на этот случай я адаптировал для своих целей придуманный FiveThirtyEight метод поддержания этого среднего значения с течением времени. Для этого с выходом каждого обновления игры рейтинг Эло всех команд сбрасывается до показателей немного выше среднего, а именно 1001 очко (вы наверняка уже заметили это число в формуле расчета ПП).

Последний элемент системы FiveThirtyEight, который я адаптировал и откорректировал для OLE 2.0, — это фактор победы (ФП). Цель ФП — награждать сильные команды за тотальное уничтожение соперников. Согласитесь, полное сдерживание противника на одном поле боя со счетом 1:0 обычно куда нагляднее демонстрирует разницу в силе команд, чем целый матч, закончившийся со счетом 5:4.

В OLE 2.0 используется двухуровневый коэффициент ФП, учитывающий разницу побед в тимфайтах за отрезок времени и разницу смертей за отрезок времени. Выигравшая на поле боя команда не всегда имеет более высокие показатели побед в тимфайтах (ничьи встречаются довольно часто). Поэтому, когда этот показатель невозможно использовать, на помощь приходит разница смертей.

ФП необходимо настроить так, чтобы уменьшить автокорреляцию. Автокорреляция происходит, когда команды, которые по прогнозам должны были выиграть, одерживают победу с большой разницей в счете. Очевидно, что прогноз победы делается на основе определенных факторов, но без корректировки ФП с течением времени начинает ошибочно завышать рейтинги победивших команд. Системы FiveThirtyEight компенсируют автокорреляцию при расчете ФП, предоставляя при одинаковой же разнице в счете больший множитель побед аутсайдеру, нежели фавориту. В моей системе разница в счете (РС) для полей боя колеблется примерно от 0,3 до 5. Эти факторы учитываются в следующей формуле (адаптированной из системы FiveFirtyEight, где она применяется для расчета ФП в НФЛ):

log(1 + РС) * 1/(разница Эло * 0,001 + 1)

В OLE 2.0 разница в счете в 2,5 очка обусловит ФП1,4 для команды-аутсайдера со 100 Эло, либо ФП около 1,15 для фаворита со 100 Эло. Теперь, когда вам стали известны все возможности OLE 2.0, можно взглянуть на успехи команд в этом году.

Первый этап предлагал массу возможностей: к лиге присоединились восемь новых команд, получивших по 990 Эло, и идеально подходящих для отъема очков у прежних команд с высоким рейтингом. Однако лишь одна из новых команд завершила этап значительно выше своей стартовой позиции: Vancouver Titans. Все мы помним, как эти бравые ребята с боем прорвались к победе в финале первого этапа. Это победоносное шествие вполне могло прерваться, встреться они с NYXL в играх плей-офф, однако Seoul Dynasty не допустили этого. Обратите внимание на внушительную потерю Эло NYXL и стремительный взлет «Сеула»:

Это визуализация поражения, постигшего Excelsior в плей-офф против Seoul Dynasty. Перед началом матча и любители киберспорта, и эксперты ожидали быстрого поражения Seoul Dynasty. И все они заблуждались. Но насколько сильно?

Создание OLE 2.0 открыло новую возможность для аналитики: прогнозы. Имея в своем распоряжении два рейтинга Эло, базу данных с результатами матчей и систему для обновления этих рейтингов, я могу использовать прошлое для прогнозирования будущего. Для этого я решил прибегнуть к моделированию по методу Монте-Карло.*

* История происхождения метода Монте-Карло весьма любопытна. Она связана с одним из первых в мире компьютеров ENIAC и Манхэттенским проектом. Если у вас будет несколько свободных минут, обязательно ознакомьтесь с ней.

Моделирование по методу Монте-Карло — это способ определения вероятных результатов на основе случайных входных данных. Представьте себе пару игральных кубиков. Допустим, вы хотите узнать, с какой вероятностью вам удастся выбросить семерку. Вы можете либо произвести массу математических вычислений, чтобы найти решение с помощью аналитики, либо бросить эти две кости 10 000 раз и посмотреть, сколько раз сумма чисел на гранях составит семь. Моделирование по методу Монте-Карло — это второй из описанных вариантов.

Мой вариант метода Монте-Карло использует базу OLE 2.0 для броска виртуальных кубиков, учитывая разницу Эло, возможные поля боя, а также фактор победы:

  1. Сначала берутся два стартовых рейтинга Эло, взятые из системы OLE 2.0.
  2. Происходит сражение на предполагаемом поле боя. Победитель определяется случайным образом, исходя из разницы Эло. Осуществляется случайная выборка факторов победы и, если поле боя позволяет, моделируются возможные ничьи.
  3. Эло обеих команд в системе OLE 2.0 обновляется, отражая исход сражения.
  4. Шаги 2 и 3 повторяются до тех пор, пока не определится победитель матча (четыре поля боя, либо пять, если произошла ничья).
  5. Выводится результат матча.
  6. Шаги 1–5 повторяются 10 000 раз.

После 10 000 моделирований я получаю не только общее количество побед каждой команды в матчах, но и общее количество уникальных результатов от 4:0 до 3:2. Я проверил прогнозы, полученные с помощью этого метода, на матчах прошлой недели, и они оказались весьма точными. Ожидаемый победитель выиграл 13 матчей из 16, а фаворит в 50,5% моделей («Бостон» — против «Ханчжоу») проиграл с достойным счетом 2:3. Мне даже удалось спрогнозировать первую в сезоне победу Los Angeles Valiant над Atlanta Reign! С другой стороны, система оценила вероятность победы «Чэнду» над «Шанхаем» в 60%, а победы «Торонто» над «Филадельфией» — в 56%.

Впрочем, одни только результаты за прошлую неделю еще не говорят о точности модели. Далее я проверил метод на всех матчах прошлогоднего 4-го этапа. Самым серьезным испытанием для OLE 2.0 стало обилие непредсказуемых событий, в числе которых выход Бригитты, падение NYXL, резкий скачок Dallas Fuel с нижних строк рейтинга в плей-офф этапа. Но даже при всей этой нестабильности модель правильно предсказала победителя в 40 матчах из 60.

Вернемся к вопросу, который породил все эти рассуждения: насколько неожиданным было поражение New York в плей-офф первого этапа против «Сеула»? В этом матче рейтинг Эло «Сеула» составлял 1015,2, а NYXL — 1183,6 (самый высокий рейтинг в лиге на тот момент). Внеся их в модель (и подкорректировав последовательность полей боя под формат плей-офф), я получил следующие результаты:

NYXL не только стали победителями в 81,86% смоделированных матчей, но и одержали чистую победу над Seoul Dynasty в 40,73% из них. Лишь 6,82% матчей закончились со счетом 3:1, который де-факто принес Dynasty победу в играх плей-офф этапа.

Поражение NYXL в плей-офф этапа оказалось весьма неожиданным, но это нормально. Если бы алгоритм мог точно прогнозировать результат любого матча, какой смысл был бы вообще играть?

Теперь, когда у меня появилась новая игрушка, давайте взглянем на третью неделю этапа и сравним ваши прогнозы с компьютерными. Предлагаю вашему вниманию три матча следующей недели, которые, по той или иной причине, кажутся мне наиболее интересными. Совпадают ли прогнозы алгоритма с вашими?

Матч 1: Vancouver Titans (1132,9) против Dallas Fuel (1054,5).

Причина: «Даллас» столкнется с первым серьезным испытанием на втором этапе.

Результаты моделирования:

Матч 2: Los Angeles Valiant (939,7) против Washington Justice (903,7).

Причина: обеим командам нужна вторая победа в этом сезоне.

Результаты моделирования:

Матч 3: Hangzhou Spark (998,3) против Guangzhou Charge (882,3).

Причина: последний шанс «Гуанчжоу» избежать рекордной серии поражений.

Результаты моделирования:

Бен Тротман (CaptainPlanet) — аналитик международных трансляций Overwatch League. Подписывайтесь на него в Twitter!