В Instagram есть возможность узнать о новых фотографиях, видео и историях на странице Explore. Рекомендации на этой странице составляются индивидуально для каждого пользователя в реальном времени. Система рекомендаций состоит из трех этапов. Итоговая модель собирает 65 миллиардов признаков и делает 90 миллионов предсказаний каждую секунду.
Рекомендация релевантного контента из миллиардов опций в реальном времени представляет собой сложную ML-задачу. Разработчики решают эту задачу с помощью кастомных языков для отправки запросов, легковесных моделей и инструментов для быстрого экспериментирования. Эти элементы системы поддерживают тот масштаб, который необходим для рекомендации контента в Explore.
Система для выдачи рекомендаций базируется на трех дополнительных инструментах:
- IGQL: кастомный язык для экспериментов с рекомендательными алгоритмами;
IGQL оптимизирован на C++ и позволяет обращаться к зоопарку ML-моделей для рекомендаци. Разработчики могут писать алгоритмы рекомендации на схожем с Python языке. При этом сами модели будут исполняться на C++. Такой подход позволяет тестировать алгоритмы на данных разных юзкейсов с минимальными затратами.
- Ig2vec: эмбеддинги акаунта пользователя, чтобы определять тематически близкие акаунты;
Ig2vec основан на word2vec модели. Чтобы кластеризовать полученные эмбеддинги пользователей, исследователи используют KNN. В продукте используется библиотека от Facebook для поиска ближайших соседей FAISS.
- Генерация кандидатов для рекомендации: система отбирает 500 кандидатов на ранжирование из списка взаимодействий пользователя с чужим контентом
Отобранные 500 кандидатов отправляются в модель для ранжирования рекомендаций.
Ранжирование кандидатов
После того как были отобраны 500 кандидатов, исследователи используют трехступенчатый алгоритм ранжирования. Алгоритм делится на следующие шаги:
- Дистиллированная модель (distillation model) из следующих двух шагов использует минимальный набор признаков: из 500 кандидатов отбираются 150;
- Затем из 150 отбираются 50 кандидатов на основе полного набора сжатых признаков;
- На итоговом шаге нейросеть на основе сжатых и разреженных признаков отбирает топ-25 рекомендаций для первой страницы Explore
Нейросеть предсказывает действия пользователей для каждого кандидата. Для этого используется multi-task multi-label (MTML) нейросеть.