Файл: Российской федерации федеральное государственное автономное образовательное учреждение высшего образования.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 350
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
234
Кратко рассмотрим основные стадии (2,3,5,6).
Стадия prepare_df_splits. На ней формируется основное представление данных в виде двух таблиц – соответственно train и test. Таблица train со- держит в себе все события, произошедшие до определенной даты включи- тельно, таблица test – все события, которые произошли после определен- ной даты. Важно, что test содержит в себе события только тех пользовате- лей, которые входят во множество train.
Стадия prepare_csr_splits. На ней, на основе результатов стадии prepare_df_splits формируются два основных представления данных в виде разреженных матриц CSR(csr_train и csr_test). Это разреженные матрицы, содержащие все взаимодействия пользователей со всеми товарами (c по- вышающими коэффициентами для событий добавления в корзину). Так, одно событие добавления в корзину рассматривается как одно или более событий просмотра товара пользователем – конкретный коэффициент за- дается в конфигурационном файле системы.
Стадия prepare_item_profiles. На этой стадии создается таблица
ItemProfileStorage, содержащая профили всех товаров, построенная на из- влеченных из файла 2 типа фильтрах показа и их значениях. Строки табли- цы – товары, столбцы – характеристики товаров.
Стадия prepare_user_profiles.
На этой стадии таблица
UserProfileStorage, содержащая профили всех пользователей, построенная на представлении данных IP. Каждый профиль пользователя является ал- гебраической суммой профилей всех товаров, с которыми он взаимодей- ствовал (точно так же, как в CSR – c повышающими коэффициентами для событий добавления в корзину).
Процесс создания всех представлений полностью автоматизирован.
На втором этапе производится создание и обучение моделей. Кратко рассмотрим модели, которые используются в системе. Процесс генерации и обучения моделей также является полностью автоматизированным.
Модель TopN – cамая очевидная и простая модель – любому пользо- вателю предлагается N самых популярных товаров. Данная модель исполь- зуется в качестве baseline.
Модель ALS использует представление данных CSR, и основана на алго- ритме Alternating Least Squares факторизации матриц. В качестве реализации данной модели была взята библиотека implicit v 0.4.4 для языка Python.
Модель AE(AutoEncoder) принадлежит к классу моделей коллабора- тивной фильтрации. Идея данного подхода заключается в том, чтобы с по- мощью нейронной попытаться восстановить строку матрицы взаимодей- ствия пользователь-товар. Данная модель представляет собой достаточно простой однослойный автоэнкодер с размерностью 256, реализованный с помощью библиотеки TensorFlow v 2.7.0.
Модель IP является представителем content-based подхода.
235
Построенные в представлении данных IP профили товаров использу- ются как обучающий dataset для модели sklearn.NearestNeighbours, имею- щий в основе алгоритм KD-Tree. Данная модель позволяет, как рекомендо- вать товары, похожие на данный, так и рекомендовать товары на основе истории пользователя.
Для модели UIP профили пользователей используются как обучаю- щий dataset для модели sklearn.NearestNeighbours, имеющий в основе алго- ритм KD-Tree. Данная модель позволяет находить пользователей, похожих на данного пользователя, и рекомендовать ему товары, являющиеся попу- лярными у похожих пользователей.
Модель DRN примечательна тем, что она является гибридной, совме- щая в себе подходы collaborative filtering и content-based. Модель реализо- вана с помощью библиотеки TensorFlow v 2.7.0.
Данная модель имеет крайне специфическую структуру и несколько особых слоев, и, как следствие, имеет высокую вычислительную слож- ность, а также невысокую эффективность. Вследствие этого будет произ- водиться исследование возможности доработки данной модели.
Последний этап - это автоматический ансамбль, который выбирает лучшую collaborative-filtering модель и лучшую content-based модель (в данном случае единственную – IP). Рекомендации от обеих моделей фор- мируются в шахматном порядке, повторы исключаются, а товары, которые предсказали обе модели, перемещаются в начало. Вследствие того, что в ансамбле присутствуют модели, сходные по характеристикам, а в резуль- тате обучения метрики немного меняются в зависимости от данных, этот подход позволяет потенциально всегда выбирать наилучшие модели для заданных магазинов.
Приведем сравнительные характеристики моделей и ансамбля по набору избранных метрик (табл.1).
Таблица 1. Сравнительные характеристики моделей и ансамбля
Модель
DCG@30
HappyUsersRatio@5
IOU@30
NAP@30
Top30 0.02464 0.11504 0.02029 0.00535
ALS
0.02949 0.10442 0.01994 0.0861
AE
0.07552 0.25841 0.04696 0.02894
IP
0.03612 0.12249 0.02375 0.01038
UIP
0.5002 0.26707 0.0207 0.02035
DRN
0.00861 0.03363 0.0027 0.00401
Ансамбль
0.8889 0.29915 0.06125 0.02931
236
Как можно видеть, модели AE и UIP имеет одни из лучших метрик, а итоговый ансамбль опережает даже их, что говорит о целесообразности данного подхода.
Как итог, на данный момент создана универсальная рекомендательная система с адаптивным ансамблем моделей, способная к полностью автома- тическому переформированию представлений данных, пересозданию и пе- реобучению моделей, способная работать для любого интернет-магазина при условии предоставления им стандартизированной выгрузки данных.
237
ПРОЦЕДУРНАЯ ГЕНЕРАЦИЯ В ИГРАХ. ПОЛЕЗНЫЕ
ПРИМЕРЫ ИГРОВЫХ ПРОЕКТОВ, О КОТОРЫХ
НЕОБХОДИМО ЗНАТЬ
Стороженко В. Л.
ФГАОУ ВО «Южный федеральный университет»
E-mail: storozhe@sfedu.ru
Процедурная генерация (сокр. процген) – термин, который на посто- янной основе лег в контекст многих игровых проектов. В играх с процге- ном контент (персонажи, окружение, квесты и т.п.) не заготовлен заранее, он создается автоматически с помощью алгоритмов. Генерация контента происходит не с нуля: разработчики сначала создают элементы виртуаль- ного «конструктора», с которым потом компьютер «играет» по описанным правилам. Это приводит к менее предсказуемым элементам игры, а также повышает ее реиграбельность.
Игр с процедурной генерацией существует много: Minecraft, No Man‘s
Sky, Deep Rock Galactic, RimWorld, The Binding of Isaac, Spelunky и множе- ство др.
В данной статье не будут описываться алгоритмы, по которым проис- ходит генерация, также не будут затронуты целые научные выкладки, а будут кратко описаны игровые проекты, которые демонстрируют концеп- ты процедурной генерации и на которые стоит обратить свое внимание.
В этой статье будет рассказано о продуктах, которые нашли превос- ходное применение процегена и которые производит невероятный эффект.
Первое направление генерации, которое является самым популярным и в тоже время не менее интересным, это процедурная генерация уровней.
Как типичные, но интересные примеры процедурной генерации уров- ней (или карт в данном случае) следует обозначить такие стратегии в ре- альном времени, как Civilization (издатели: 2K, Firaxis Games, MicroProse,
Aspyr Media) или Age of Empires (издатели: Microsoft, MacSoft Games,
Xbox Game Studios), где процген позволяет создавать новые карты в каж- дой сессии, что означает для игрока тщательное исследование и экспери- менты. Многие стратегии реального времени с аналогичными системами взаимодействия работают только с картами, созданными вручную. Слож- ность в проектах с процедурной генерацией заключается в адаптации ее под различные стили игры.
Одним из ярких примеров процгена уровней выступает игра Spelunky
(издатель Mossmouth). Данная игра стоит на ровне с такими проектами, как
Rogue (издатели: Epyx, Artificial Intelligence Design, Mastertronic) и Diablo
(издатели: Blizzard Entertainment, Electronic Arts, Ubisoft), а великолепие ее в том, что она превосходно демонстрирует основную механику системы
238 без различного рода запоминаний, где каждый уровень генерируется бук- вально за несколько секунд до начала сессии. Игроки проходят тысячи уровней, но не все побеждают в них, т.к. для победы нужно выжить в шестнадцати уровнях (без учета секретных) и одолеть главного командира в схватке. При всем мастерстве процгена, уровни организованы с опреде- ленным планом (т.е. случайное расположение окружения подчиняется конкретным принципам), что заставляет игрока вникать в правила и анали- зировать систему, а не просто изучать геометрию.
В качестве второго направления стоит обратить внимание на проце- дурно генерируемых персонажей.
Простым примером, на который следует обратить внимание, является
Galaxy Pass Station (издатель: Galactic Workshop). В этой игре концепция заключается в том, что игрок должен проверять пришельцев на станции в зоне duty free, т.е. предполагается, что игрок будет часто видеть лица странных пришельцев и землян. Процедурная генерация существ является неотъемлемой частью для разнообразия контента.
Ярким примером является Crusader Kings 2 (издатель Paradox
Interactive). Эта игра обладает процедурно-генерируемым контентом, кото- рый предают ей глубину, разнообразит среду и дизайн игрового мира.
С помощью системы сложных родственных связей, которая является ди- намичной благодаря генерируемым персонажам игры-стратегии, развора- чиваемой в эпоху средневековья, персонажи становятся личностями под управлением компьютерного интеллекта. Данный вектор игрового процес- са сводится к чертам персонажей, которые по факту являются обычными числами (например, «-5» к жадности или «+2» к интриганству), характери- зующими поведение. Благодаря обусловленным поведениям героев, взаи- моотношениям между ними, их «характеры» создают увлекательно- сложную систему, у которой имеется огромное количество поклонников.
Еще одним колоритным представителем процгена персонажей являет- ся генерация врагов в Middle-earth: Shadow of Mordor (издатели: Warner
Bros. Interactive Entertainment, ak tronic Software & Services GmbH, Feral
Interactive).
Shadow of Mordor, как и Crusader Kings 2, выходит за рамки представ- лений процедурно-генерируемого контента. Игра закладывает концепции личных отношений между игроками и орками. Благодаря алгоритму
Nemesis System , каждый орк в игре становится уникальным. При создании орков учитывается все: имя, внешность, манера говорить, отношение с окружающими. Более того, при взаимодействии с игроком, если орк по- беждает, то его ожидает повышение в армии, что влечет усиление персо- нажа и больше трудностей для игрока во время следующей встречи, так как все события сохраняются в памяти на случай нового взаимодействия, а, если орк проигрывает, то при возвращении он будет уже обладать новы-
239 ми навыками, и во внешности у него появятся изменения о предыдущей битве (например, шрамы или атрибуты, закрывающие потерянные части тела).
Третьим направлением генерации можно выделить процедурно- генерируемые миры. В данном контексте под процгеном миров подразуме- вается создание миров не как уровней, а как отдельных экосистем. Это направление является определенного рода расширением процедурной ге- нерации персонажей. Подобного рода системой может похвастаться Dwarf
Fortress (издатели: Bay 12 Games, Kitfox Games).
В этом игровом мире поразительный механизм процегена заключается в создании подробной родословной гномов, которая может насчитывать тысячи лет. Dwarf Fortress не имеет сложных концепций, а в основе лежат простые элементы, которые способствуют процедурной генерации самого опыта игрока. Это в свою очередь позволяет сделать каждую сессию по своему уникальной, многомерной и непредсказуемой.
Еще один великолепный пример генерации миров можно увидеть в
RymdResa (издатель: Morgondag). В этом игровом мире, как и в Elite (Из- датели: Acornsoft, Superior Software Ltd., Firebird, Telecomsoft) и No Man‘s
Sky (Hello Games), в основе концепций процедурной генерации лежит со- здание целой Вселенной. В этой генерируемой вселенной создается столь- ко планет и разнообразного космического мусора, что невозможно посе- тить их все. Цель такого подхода одна: игрок должен ощутить опасность, одиночество, покой, необъятность просторов.
Заключительным, четвертым направлением, которое можно выделить является процедурная генерация на основе музыки.
Данный жанр игр является специфическим, но не менее интересным в рассматриваемом ключе. В подобного рода играх контент генерируется на основе звуков и музыки, т.е. звуковые формы мало того, что визуализиру- ются, так еще и напрямую влияют на геймплей.
В данном направлении рекомендуются к упоминанию такие проекты как Audiosurf (издатели: Valve, Ascaron Entertainment), Beat Hazard (изда- тель: Cold Beam Games), Soundodger+ (издатель: Adult Swim) и Crypt of the
NecroDancer (издатели: Brace Yourself Games, Klei Entertainment).
Процген на основе звука дает безграничный простор для развития геймплея, но пока что такие идеи не затрагивают ААА-игры (за исключе- нием Guitar Hero (издатели: RedOctane, Activision, Aspyr Media, Activision
Blizzard)) по причине геймплейной нестабильности и необычности, а остаются на уровне инди-проектов.
Процедурно-генерируемый контент выполняет различные функции от создания многочисленных уровней, незнакомых ландшафтов до бесконеч- ных комбинаций геймплея, адаптации анимационных систем, музыкально- го сопровождения и не только.