Рекомендательная система для хостинга интернет-магазинов: Добавление новых моделей.

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

Для улучшения качества предсказаний, было решено расширить набор моделей путем добавления двух моделей на основе искусственных нейронных сетей. Обе модели реализованы 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 тестирование на серверах интернет-магазинов.