Hero2vec: вложения - это все, что вам нужно

Боуэн Янг имеет докторскую степень по физике Калифорнийского университета в Риверсайде. В Insight он работал над созданием модели, которая может предсказать команду-победителя в видеоигре, используя осмысленные заученные представления персонажей. Используемые им методы широко применимы к любому бизнесу со структурированными данными.

Хотите узнать о прикладном искусственном интеллекте у ведущих специалистов Кремниевой долины или Нью-Йорка? Узнайте больше о программе Искусственный интеллект.

Стриминг видеоигр / киберспорта - огромный и постоянно растущий рынок. В прошлом году на чемпионате мира по League of Legends (LoL) один полуфинал собрал 106 миллионов зрителей, что даже больше, чем Суперкубок 2018 года. Другой успешный пример - Twitch, где тысячи игроков транслируют свой игровой процесс миллионам зрителей. Компания Visor, предоставляющая игрокам персонализированную игровую аналитику, хочет иметь модель, позволяющую оценивать процент побед команды в режиме реального времени.

Оракул, предвидящий игру

У модели может быть много вариантов использования. Например, он может предоставить игрокам полезную обратную связь, чтобы они могли улучшить свои навыки; со стороны аудитории это может быть отличным инструментом для взаимодействия, особенно привлекательным для тех потенциальных зрителей, которые еще не знакомы с игрой; И последнее, но не менее важное: если модель может превзойти человеческие прогнозы, ее потенциал беспрецедентен для ставок на киберспорт.

Введение в Overwatch

Игра, которую я смоделировал, называется Overwatch. Overwatch - это командный многопользовательский онлайн-шутер. В каждой команде по шесть игроков, и каждый игрок выбирает героя (игрового персонажа, такого как Марио в Super Mario) из группы героев (26 героев) и сражается с другой командой. Каждая игра проводится на определенной игровой карте, которая определяется перед началом игры. Простая аналогия - это футбольный матч, в котором две команды играют на определенном стадионе.

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

Однако это пресловутое чудовище под силу «героям». В этом блоге основное внимание будет уделено тому, как моделировать этих игровых персонажей с помощью встраивания и как они улучшают предсказания.

Для получения дополнительных сведений и реализации обратитесь к моей ссылке Github.

Герои объединяются в команду («Мстители»).

Команды - это основная концепция современных многопользовательских онлайн-видеоигр, от ролевых игр, таких как World of Warcraft, до боевых арен, таких как Dota 2, LoL и Overwatch. А герои - это строительные блоки команд.

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

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

Слова образуют предложение

Интуицию можно почерпнуть из аналогии между героями и словами. Слова содержат значения и имеют большее значение, если образуют предложение или статью. Точно так же у героев также есть «значения» или характеристики, например, некоторые герои сильны в атаке, а некоторые - в защите, и их роли становятся более сложными, если они образуют команду.

Исторически слова моделировались с помощью однократного кодирования, которое сильно страдает от проклятия размерности, поскольку словарный запас настолько велик, что пространство признаков может легко иметь более сотни тысяч измерений. Одноразовое кодирование просто предполагает, что слова независимы друг от друга, т. Е. Их представления взаимно ортогональны, что не отражает семантические значения слов. С другой стороны, слова также могут быть выражены как распределенные представления (Bengio et al.). Таким образом, семантическое значение слов может быть захвачено плотными векторами гораздо меньшей размерности (встраиваниями).

Современный подход к распределенному представлению слов - это знаменитая модель word2vec (Миколов и др.). У нас уже есть хороший блог, объясняющий идеи этой модели, и фантастическое руководство о том, как использовать его для решения проблем НЛП.

Помимо word2vec

Мотивация, лежащая в основе распределенных представлений, может быть обобщена не только вложения слов. В нашем недавнем блоге и интересной статье (Wu et al.) говорится об универсальной идее встраивать все.

Чтобы использовать возможности вложений, следует принять во внимание несколько соображений.

  • Сходства. Сходства означают «перекрытие» входных данных. Например, и «король», и «королева» обозначают правителя. Чем больше перекрываются входные данные, тем более плотными (меньшими размерами) могут быть их вложения. Другими словами, должно быть отображение разных входов на одни и те же выходы. Если входные данные по сути ортогональны, выполнять вложения бессмысленно.
  • Учебное задание. Вложения (предварительно) изучаются из обучающей задачи. Задача обучения должна соответствовать нашей задаче, чтобы встроенная информация была передаваемой. Например, word2vec обучается в Новостях Google и используется для машинного перевода. Они связаны, потому что имеют одни и те же основные семантические значения слов.
  • Тонны данных. Чтобы полностью обнаружить сходства или взаимосвязи входных данных, необходимы тонны данных для исследования многомерного пространства. «Черная магия», стоящая за уменьшением размерности с помощью распределенных представлений, в значительной степени объясняется огромным объемом данных, доступных для обучения без учителя. Например, модель word2vec обучается на миллиардах слов. В некоторой степени вложения - это всего лишь вес дополнительного линейного слоя между входами однократного кодирования и последующими задачами. Чтобы обучить весь конвейер, включая слой встраивания, все еще необходимы тонны данных для заполнения многомерного входного пространства.

Команда: Непрерывный мешок героев

Следуя рассмотренным выше соображениям, модель Hero2vec может быть спроектирована шаг за шагом.

  • Сходства. Как упоминалось ранее, герои в Overwatch попадают в определенные категории. Это сходство предполагает, что они могут быть описаны распределенными представлениями, а не однократными ортогональными кодировками.
  • Учебное задание. word2vec пытается уловить общее семантическое значение слов, моделируя совпадение центрального слова и контекстного слова. Точно так же герои с высокой степенью синергии могут встречаться в команде, а именно, совместная вероятность P (h0, h1,… h5) высока (h обозначает героев). Однако смоделировать эту совместную вероятность не так-то просто. В качестве альтернативы мы можем попытаться максимизировать условную вероятность P (h0 | h1, h2,… h5). Поскольку прогноз игры - это просто P (результат | h0, h1,… h5, другие факторы), эти две задачи очень важны.

  • Данные. Visor предоставил мне более 30 000+ командных составов для предварительной подготовки эмбеддингов. 30 000 могут показаться малым числом по сравнению с миллиардами слов, но мое входное измерение также намного меньше (26 героев), чем слов в словаре (например, 260 000+). Учитывая, что потребность в обучающих данных растет экспоненциально с увеличением размеров, 30 000 на самом деле достаточно для моего обучения.
  • Модель. Вероятность P (h0 | h1, h2,… h5) имеет точно такую ​​же форму P (центральное слово | контекстные слова), которая используется в модели Непрерывный мешок слов (CBOW) в word2vec. Более интуитивно, в отличие от слов, перестановка (h1, h2,… h5) не влияет на вероятность, поэтому сумма вложений для (h1, h2,… h5) действительно является хорошим обобщением входных данных. Изображение модели можно найти ниже. Небольшая хитрость здесь в том, что в дополнение к P (h0 | h1, h2,… h5) мы можем моделировать P (h1 | h0, h2,… h5) и т. Д., Так что набор данных эффективно расширяется в 6 раз.

Визуализация героев

Вложения героев (здесь 10 измерений) можно визуализировать, проецируя их на двухмерную плоскость (через PCA), как показано ниже.

Очевидно, что вложения успешно передают игровой дизайн героев. Герои склонны группироваться в соответствии со своими ролями / категориями. Что более интересно, вложения также отражают более тонкие характеристики героев, выходящие за рамки их категорий. Например, игроки воспринимают Турбосвина больше как ДПС, хотя он разработан как Танк; Несмотря на то, что Симметра считается Сторонником, она не лечит своих союзников, поэтому она ближе к ДПС, Танку и т. д. Для тех, кто знаком с Overwatch, стоит упомянуть, что граница между атакующим и защитным ДПС довольно расплывчата, что наводит на мысль об игроках. не относитесь к ним как к двум категориям, как полагают разработчики игр.

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

Map2vec

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

Каждая игра Overwatch проводится на определенной игровой карте, и состав команд фактически зависит от карты, то есть P (команда | карта). Переписано с помощью правила Байеса ’, P (команда | карта) ~ P (карта | команда) P (команда). P (map | team) можно смоделировать для встраивания карт, как показано ниже.

Немного отличается от модели Hero2vec, представленной выше, вложения для карт берутся из последнего линейного слоя. Интуиция основана на модели word2vec, в которой как входные, так и выходные вложения могут использоваться для представления слов.

Аналогичным образом можно визуализировать вложения карт.

Вложения также довольно хорошо понимают игровой дизайн, стоящий за картами. Для тех, кто знаком с Overwatch, интересно увидеть, что различия между раундом атаки (областью) и раундом защиты (областью) одной карты более значительны, чем различия между картами.

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

Предвидеть игру с вложениями героев

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

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

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

Резюме

Подводя итог, я обсудил, как представить многомерные категориальные особенности распределенными представлениями более низкой размерности, следуя логике, лежащей в основе нейронной языковой модели и word2vec.

Предварительно обучив героев в Overwatch, я могу построить надежную модель для прогнозирования рейтинга побед команды, что особенно важно на ранней стадии игры. Модель и написанный мной код можно найти в моем репозитории Git.

Помимо Hero2vec, та же стратегия может быть применена для встраивания всего, что нас интересует. Я с нетерпением жду возможности передачи / обмена знаниями, извлеченными из различных задач, посредством встраивания, и хочу больше изучить эту тему в будущем.

Хотите узнать о прикладном искусственном интеллекте у ведущих специалистов Кремниевой долины или Нью-Йорка? Узнайте больше о программе Искусственный интеллект.

Вы - компания, работающая в области искусственного интеллекта, и хотели бы принять участие в программе Insight AI Fellows Program? Не стесняйтесь связаться.