fbpx
  • Как устроена рекомендательная система постов в 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) нейросеть.