Как уже говорилось, задача работы - создание рекомендательной системы для одного сайта и автоматизация создания таких систем на основе стандартизированных выгрузок данных, причем вследствие отсутствия информаций о продажах была использована информация о просмотрах и добавлении товаров в корзину.
Для улучшения качества предсказаний, было решено расширить набор моделей путем добавления двух моделей на основе искусственных нейронных сетей. Обе модели реализованы c использованием пакета TensorFlow.
Модель AE
Модель AE(AutoEncoder) принадлежит к классу collaborative filtering.
Для работы модели необходима матрица взаимодействия пользователь-товар. Идея данного подхода заключается в том, чтобы С помощью нейронной сети предпринимается попытка восстановить строку матрицы взаимодействия пользователь-товар.
Как известно, автоенкодер представляет собой нейронную сеть, выполня-ющую 2 преобразования - encode(x) : Rn−>Rd и decode(x) : Rd −>Rn. Цель этих преобразований - получить представление данных исходной размерности n в размерности d такую, чтобы минимизировать отклонение x_received =decode(encode(x)).
Данная модель представляет собой достаточно простой автоенкодер. Енкодер представлен одним Dense Layer с размерностью входа(n) равной количеству товаров, и размерностью выхода(Bottleneck) экспериментально подобранной как 256(d). Декодер, соответственно, представлен одним DenseLayer с размерностью входа(d) 256 и размерностью выхода (n) равной количеству товаров. Схема модели AE представлена ниже.
Стоит отметить, что функция активации - ELU(Exponential Linear Unit) так как здесь нежелательна потеря отрицательной обратной связи а loss - функция - MSE(Mean Squared Error) по причине, что она не даст занулить все рекомендации.
Модель DRN
Вторая добавленная модель - модель DRN(Deep Recommender Network).
Данная модель примечательна тем, что она является гибридной, совмещая в себе подходы collaborative filtering и content-based. Также, она примечательна и своей конструкцией - это сиамская нейронная сеть, имеющая структуру, приведенную ниже.
Необычен и процесс обучения - на вход данной модели подаются тройки вида (профиль пользователя, профиль понравившейся ему вещи, профиль не понравившейся ему вещи). Задача этой сети - обучиться отличать вещи которые могут понравиться пользователю.
К сожалению, несмотря на затраченные на реализацию и обучение модели усилия, результаты работы данной модели... скромны.
Алгоритм формирования финальной рекомендации.
Для улучшения результатов, был создан автоматический ансамбль, который выбирает лучшую collaborative-filtering модель и лучшую content-based - модель(в данном случае единственную - IP). Рекомендации от обоих моделей формируются в шахматном порядке, повторы исключаются, а товары, которые предсказали обе модели идут в начало. Вследствие того, что в ансамбле присутствуют модели, сходные по характеристикам, а в результате обучения метрики немного меняются в зависимости от данных, этот подход позволяет потенциально всегда выбирать наилучшие модели для заданных магазинов.
Модель | 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 |
В таблице выше представлены метрики всех моделей, которые в данный момент присутствуют в проекте. Следует отметить, что модель AE имеет одни из лучших метрик, а итоговый ансамбль опережает даже её, что говорит о целесообразности данного подхода.
Итог
Как итог, на данный момент создана универсальная рекомендательная система с адаптивным ансамблем моделей, способная к полностью автоматическому переформированию представлений данных, пересозданию и переобучению моделей. Производится А/B тестирование на серверах интернет-магазинов.