Как устроена рекомендательная система постов в Instagram

В Instagram есть возможность узнать о новых фотографиях, видео и историях на странице Explore. Рекомендации на этой странице составляются индивидуально для каждого пользователя в реальном времени. Система рекомендаций состоит из трех этапов. Итоговая модель собирает 65 миллиардов признаков и делает 90 миллионов предсказаний каждую секунду.

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

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

  • IGQL: кастомный язык для экспериментов с рекомендательными алгоритмами;

IGQL оптимизирован на C++ и позволяет обращаться к зоопарку ML-моделей для рекомендаци. Разработчики могут писать алгоритмы рекомендации на схожем с Python языке. При этом сами модели будут исполняться на C++. Такой подход позволяет тестировать алгоритмы на данных разных юзкейсов с минимальными затратами.

  • Ig2vec: эмбеддинги акаунта пользователя, чтобы определять тематически близкие акаунты;

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

  • Генерация кандидатов для рекомендации: система отбирает 500 кандидатов на ранжирование из списка взаимодействий пользователя с чужим контентом

Отобранные 500 кандидатов отправляются в модель для ранжирования рекомендаций.

Ранжирование кандидатов

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

  1. Дистиллированная модель (distillation model) из следующих двух шагов использует минимальный набор признаков: из 500 кандидатов отбираются 150;
  2. Затем из 150 отбираются 50 кандидатов на основе полного набора сжатых признаков;
  3. На итоговом шаге нейросеть на основе сжатых и разреженных признаков отбирает топ-25 рекомендаций для первой страницы Explore
Визуализация работы модели на последнем третьем шаге

Нейросеть предсказывает действия пользователей для каждого кандидата. Для этого используется multi-task multi-label (MTML) нейросеть.

Подписаться
Уведомить о
guest

0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии

gogpt