Как устроены рекомендательные алгоритмы Инстаграм
В Instagram есть возможность узнать о новых фотографиях, видео и историях на странице Explore. Рекомендации на этой странице составляются индивидуально для каждого пользователя в реальном времени. Система рекомендаций состоит из трех этапов. Итоговая модель собирает 65 миллиардов признаков и делает 90 миллионов предсказаний каждую секунду.
Рекомендация релевантного контента из миллиардов опций в реальном времени представляет собой сложную ML-задачу. Разработчики решают эту задачу с помощью кастомных языков для отправки запросов, легковесных моделей и инструментов для быстрого экспериментирования. Эти элементы системы поддерживают тот масштаб, который необходим для рекомендации контента в Explore.
Система для выдачи рекомендаций базируется на трех дополнительных инструментах:
IGQL: кастомный язык для экспериментов с рекомендательными алгоритмами;
IGQL оптимизирован на C++ и позволяет обращаться к зоопарку ML-моделей для рекомендаци. Разработчики могут писать алгоритмы рекомендации на схожем с Python языке. При этом сами модели будут исполняться на C++. Такой подход позволяет тестировать алгоритмы на данных разных юзкейсов с минимальными затратами.
Ig2vec: эмбеддинги акаунта пользователя, чтобы определять тематически близкие акаунты;
Ig2vec основан на word2vec модели. Чтобы кластеризовать полученные эмбеддинги пользователей, исследователи используют KNN. В продукте используется библиотека от Facebook для поиска ближайших соседей FAISS.
Генерация кандидатов для рекомендации: система отбирает 500 кандидатов на ранжирование из списка взаимодействий пользователя с чужим контентом
Отобранные 500 кандидатов отправляются в модель для ранжирования рекомендаций.