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

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

С чего начать

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

Запоминание на основе содержания

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

Архитектура системы

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

Поскольку мы имеем дело с огромным объемом данных, нам следует хранить и обрабатывать наши данные с помощью распределенных фреймворков, таких как HDFS и Spark. Результаты холодного запуска редко меняются, поэтому мы можем запланировать выполнение задания ежедневно или еженедельно. Для планирования офлайн-заданий мы можем использовать Airflow framework. Если вы хотите ознакомиться с Airflow, я также напишу краткое руководство по использованию Airflow здесь.

Как только мы закончим генерировать данные в формате category_key: [item_1, item_2, …, item_n], нам следует где-то сохранить их, чтобы наша онлайн-система…