ИИ и LLMПерсонализацияТарифы Performance и Scale

Рекомендации в реальном времени

Персональные рекомендации за один раунд чтений. Признаки пользователя, похожие элементы по вектору и то, что в тренде, за вычетом уже просмотренного.

сигнала, один сервер
4
повторов уже просмотренного
0
счётчики трендов
Живые
Шаг 1 из 6
Считаем то, что в тренде

Список Top-K один раз создаётся командой TOPK.RESERVE. Каждый просмотр обновляет его, а элементы, выпавшие из топа, возвращаются в ответе.

Пример сеансаplaying
# Считаем то, что в тренде
hotkv> TOPK.ADD trending:shoes sku:88 sku:17 sku:88
1) (nil)
2) (nil)
3) (nil)

Анимированная демонстрация с настоящими командами HotKV и примерами ответов. Нажмите на любой шаг, чтобы перейти к нему. Команды и ответы остаются на английском, ровно так, как вы вводите и видите их в HotKV.

Проблема

Хорошая рекомендация сочетает то, кто такой пользователь, что похоже на понравившееся ему, что популярно прямо сейчас и что он уже видел. Эти сигналы обычно живут в четырёх системах, а их сшивание во время запроса добавляет задержку на каждой странице.

Как с этим справляется HotKV

HotKV хранит все четыре. Feature store содержит профиль пользователя, векторный индекс находит похожие элементы, структура Top-K отслеживает популярное по мере поступления событий, а фильтр Блума для каждого пользователя убирает уже просмотренные элементы. Рекомендатель читает всё это с одного сервера за несколько вызовов.

Шаг за шагом

Что происходит, команда за командой

  1. 01

    Считаем то, что в тренде

    Список Top-K один раз создаётся командой TOPK.RESERVE. Каждый просмотр обновляет его, а элементы, выпавшие из топа, возвращаются в ответе.

    TOPK.ADD trending:shoes sku:88 sku:17 sku:88
  2. 02

    Загружаем признаки пользователя

    Признаки профиля и поведения для модели ранжирования, вместе с их возрастом.

    FEATURE.GET user_features user:42
  3. 03

    Находим похожие элементы

    Вектор вкусов пользователя находит ближайшие товары.

    VSIM.SEARCH items 20 0.31 0.12 0.77 ...
  4. 04

    Убираем просмотренное

    Фильтр Блума для каждого пользователя отвечает на вопрос «видел ранее?» для всего списка кандидатов за один вызов.

    BF.MEXISTS seen:user:42 sku:88 sku:5 sku:17
  5. 05

    Подмешиваем популярное

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

    TOPK.LIST trending:shoes WITHCOUNT
  6. 06

    Запоминаем показ

    Показанные элементы добавляются в фильтр пользователя, чтобы завтра они не повторялись.

    BF.MADD seen:user:42 sku:5 sku:17
Где это уместно

Реальные сценарии

Розница и маркетплейсы

Строки «Вам может понравиться» сочетают похожие товары с тем, что продаётся сейчас, и никогда не показывают один и тот же элемент дважды за сеанс.

Медиа и стриминг

Главные экраны ранжируют передачи по векторам вкусов и живой популярности и пропускают то, что зритель уже досмотрел.

Новости и ленты контента

Статьи рекомендуются по близости тем, а популярные материалы поднимаются в реальном времени.

Встроено

Что вы получаете

Feature store

Типизированные признаки на пользователя или элемент для чтения с низкой задержкой во время инференса.

FEATURE.GETFEATURE.BATCH

Похожие элементы

Ближайшие соседи из векторного индекса HNSW.

VSIM.SEARCH

Сейчас в тренде

Top-K хранит самые частые элементы в потоке событий.

TOPK.ADDTOPK.LIST

Фильтры просмотренного

Фильтры Блума отвечают на вопрос «видел ранее?» в постоянном объёме памяти на пользователя.

BF.MADDBF.MEXISTS

Частые вопросы

Может ли фильтр Блума ошибаться?

Иногда он может сказать, что элемент был просмотрен, хотя это не так, с долей ошибок, которую вы выбираете через BF.RESERVE. Он никогда не скажет, что элемент не просматривался, если просматривался.

Где работает модель ранжирования?

В вашем собственном сервисе. HotKV отдаёт признаки и кандидатов с низкой задержкой, а итоговый порядок определяет ваша модель.

Какие тарифы это включают?

Feature store входит в тарифы Performance и Scale. Векторный поиск, Top-K и фильтры Блума работают на любом тарифе.

Связанные сценарии

Попробуйте на своей нагрузке

HotKV понимает протокол Redis, поэтому вы можете подключить к нему существующий клиент и выполнить те же команды.