Одна из самых обсуждаемых частей Dota 2 - это проект. В матчах лиги, как и на The International, у каждой команды есть капитан, который отвечает за выбор всех 5 героев. Из-за сложности того, как играть героем или на какой линии, человеку становится невозможным запомнить лучший состав для игры против оппонента. Возможно ли это на компьютере?

Игра Dota 2 состоит из двух команд: Radiant и Dire. В каждой команде 5 игроков-людей, которые могут выбрать 1 из 116 разных героев. У каждого героя есть свои преимущества и недостатки, своего рода эффект камня, ножницы, бумаги. Драфт - это выбор героя перед игрой для каждого члена команды во время этой игры. В большинстве публичных игр каждый игрок выбирает своего собственного героя для этого матча, но в играх лиги, таких как The International, только капитан может выбирать героев для своих товарищей по команде.

В STRATZ мы собираем информацию о каждой игре Dota 2, в которую играли каждый день. Мы загружаем эти игры и проводим по ним различные виды аналитики, пытаясь разобраться в них. Предположим только следующее: если есть 116 героев и 10 игроков, то существует 81 572 506 886 508 различных комбинаций игрок-герой. Такие игроки как PPD всю свою карьеру в Dota 2 пытались стать лучшим драфтером. Из-за такого большого количества комбинаций он не мог просто запомнить, кого выбрать после того, как противоборствующая команда выберет X или Y, не говоря уже о бесчисленных изменениях, которые происходят с каждым новым патчем.

Так что же может делать компьютер? Нейронная сеть может иметь бесконечное количество слоев и бесконечное количество нейронов для подключения к каждому слою. Перед началом The International 8 мы разработали и обучили модель предсказывать исход игры, просто просматривая драфты каждой команды перед каждым матчем. Как мы это сделали? Мы начали с рассмотрения только рейтинговых игр, потому что игроки часто соревнуются более серьезно из-за ставок. Рейтинговая игра - это общедоступная игра, в которой все игроки рискуют своим рейтингом навыков. Победа увеличивает рейтинг игрока, а проигрыш снижает его. Это похоже на очень популярный термин Эло, который встречается в мировых шахматных рейтингах. Затем мы исключили игры, которые не были завершены полностью, например, игры, в которых игрок отказывался закончить игру или намеренно бросал ее. Таким образом, ежедневное количество матчей в Dota 2 из 1 миллиона игр сократилось до 250 000.

Мы собрали примерно 14 дней игр, чтобы дать нейросети достаточно данных для обучения модели. Мы начали с малого количества слоев, низкого количества нейронов и высокой скорости обучения. Мы обучили более 100 различных моделей с многочисленными вариациями этих факторов и выбрали одну с максимальной точностью. Из всех 3 500 000 совпадений в нашем наборе данных 80% использовались для обучения, а 20% - для проверки. Мы достигли поразительной точности 67,77%. Учитывая, что игрок ищет что-либо с точностью выше 50,01%, мы сочли это замечательным началом. Но как далеко мы можем пойти?

Как упоминалось ранее, у каждого героя есть эффект камня, ножниц, бумаги. Этот эффект не только смотрит на героя против героя, но также влияет на продолжительность игры. Например, герой A имеет более высокий процент побед в более короткой игре (30 минут), в то время как герой B имеет более высокий процент побед в более продолжительной игре (60 минут). Из-за этого мы не можем просто предсказать исход игры на основе 10 героев в один момент времени, мы должны делать это в течение самой высокой вероятности того, когда игра может закончиться. Итак, мы создали другую модель, которая учитывает героев и предполагаемую вероятность завершения игры, что дало точность 7,087%. Но как это хорошо, если так мало? Эта модель определяет точную минуту окончания игры, то есть, если игра заканчивается на 42 минуте, а мы прогнозируем, что она закончится на 43 минуте, это будет считаться неправильным. Это означает, что примерно в 7% случаев мы получим точную минуту окончания игры.

Когда у нас были обе эти модели, мы смогли построить довольно интересный график для каждого матча. Из-за того, что моделям требуется дополнительное время для тренировок, мы начали это во вторник (день 2) The International 8, и в течение недели мы могли создать график для каждой игры на основе составов.

Мы закончили с результатом 27–8, точность 77,4%! Как мы и ожидали, у определенных составов героев будет больше шансов на победу в начале игры. Если бы игра длилась дольше, то процент соперников был бы выше. Мы анонсировали все наши игры в Твиттере @STRATZDota.

Так куда мы идем отсюда? STRATZ потратил последние 6 месяцев на разработку серверной части, которая теперь может обрабатывать большое количество игр и обрабатывать их в режиме реального времени. Мы создали настольное приложение, которое позволяет игрокам Dota 2 использовать эти модели во время драфта, чтобы повысить их шансы на успех в игре. Следите за нами в нашем Discord или Twitter, чтобы узнавать новости о выпуске приложения для широкой публики.

- KenBeanNet