Искусственный интеллект · Рекомендательные системы · Оптимизация алгоритмов · VK AI · Big Data · Технологии27 сентября в 19:02 · 3 мин

Кеширование кандидатов: новый метод экономии ресурсов рекомендательных систем

Команда искусственного интеллекта ВКонтакте внедрила инновационный подход к оптимизации рекомендательных алгоритмов, известный как «кеширование кандидатов». Технология позволяет сократить потребление вычислительных мощностей без ущерба для качества контента, что особенно актуально в условиях растущей нагрузки на серверы. Методика, уже успешно применяемая в сервисах VK Видео и VK Клипы, заключается в сохранении сильных рекомендаций на короткое время для их повторного использования при следующих запросах пользователя.

# Кеш кандидатов: оптимизация рекомендательных систем без потери качества

В современном мире цифрового потребления информации рекомендательные системы выполняют критически важную функцию: они фильтруют тысячи контента, предлагая пользователю наиболее релевантные материалы. Однако такой процесс требует колоссальных вычислительных ресурсов. Каждая заявка на генерацию ленты требует сложного анализа больших данных, что приводит к значительному расходу процессорного времени и энергии. Команда AI ВКонтакте разработала решение, которое позволяет снизить эту нагрузку, не жертвуя точностью подбора контента.

Логика переиспользования данных

Основная гипотеза, лежащая в основе новой методики, строится на поведении пользователей. Анализ показал, что интересы человека остаются относительно стабильными между двумя последовательными запросами. Если алгоритм уже подобрал идеальный список видео или статей для первого просмотра, вероятность того, что из этого же списка подойдут материалы для второго просмотра, крайне высока.

Традиционные рекомендательные системы обрабатывают каждый запрос заново, проходя сложную процедуру ранжирования для огромного числа кандидатов. Это линейно увеличивает затраты вычислений: каждый лишний кандидат, который в итоге не попадает в выдачу, но прошел обработку, увеличивает нагрузку на сервер. Новый подход предлагает сохранять лучшие результаты отбора (top-k кандидатов) после успешного запроса и использовать их в качестве основы для следующего.

Для реализации этой идеи система разделила источники кандидатов на несколько типов. Кандидаты, основанные на снапшоте данных (неперсонализированные) или обязательные продуктовые пулы, имеют свои особенности. Наиболее ресурсоемкими являются персонализированные селекторы, которые ищут контент на основе истории действий пользователя. Именно эти «тяжелые» вычисления становятся основной мишенью для оптимизации.

Схема работы выглядит следующим образом: после формирования ленты система сохраняет в базе данных Redis небольшие списки лучших кандидатов со скорами. При следующем запросе эти данные загрузаются, и вместо полного повторного поиска система работает только с обновленной частью данных. Это позволяет сократить количество объектов, доходящих до финальной модели ранжирования, что напрямую снижает затраты CPU.

Баланс между скоростью и свежестью

Ключевой вызов при внедрении кеширования — сохранить актуальность рекомендаций. Риск заключается в том, что система может стать «инертной» и перестать реагировать на новые действия пользователя, например, подписку на нового автора или просмотр видео в новой тематике. Чтобы избежать этого, инженеры внедрили механизмы реактивности.

Параллельно с использованием кеша запускаются облегченные версии селекторов, которые сканируют только новые сигналы, появившиеся после записи кеша. Это позволяет быстро интегрировать свежий контент в рекомендации, не нарушая принципов экономии ресурсов. Параметры кеширования, такие как размер списка кандидатов (k) и время жизни кеша (TTL), требуют тонкой настройки. Слишком большой TTL может сделать выдачу устаревшей, а слишком маленький — не даст ощутимой экономии ресурсов. Настройка этих параметров производится через сложные A/B-эксперименты, чтобы найти оптимальное равновесие между производительностью и качеством выдачи.

Технические детали реализации

Реализация механизма предполагает два режима работы потока рекомендаций. В первом, обычном режиме, система работает как раньше, когда кеш недоступен или истек. Во втором, кешированном режиме, используется специальная конфигурация селекторов, включающая загруженные данные. Ключ к системе формируется на основе идентификатора пользователя и контекста (платформа, тип сервиса).

В результате внедрения этой технологии в VK Видео и VK Клипы было достигнуто заметное снижение потребления не только процессорных ресурсов, но и памяти (RAM), а также сетевого трафика. Сэкономленные мощности позволили масштабировать инфраструктуру базы данных Redis. Важно отметить, что это не просто включение выключателя, а глубокая перестройка логики работы рекомендательного движка, требующая индивидуального подхода к каждой платформе с учетом ее специфики и требований к качеству выдачи.

Первоисточники

Habr AI ↗
← Вернуться в эфир