Как VIPSHOP ускорила свою рекомендательную систему для e-commerce в 10 раз с помощью Milvus
Рекомендательные системы стали незаменимыми для успеха электронной коммерции, выступая стратегическим катализатором для улучшения пользовательского опыта, стимулирования вовлеченности клиентов и увеличения выручки бизнеса. VIPSHOP, новаторский онлайн-ритейлер в Китае, оказался на критическом этапе. С быстро растущей клиентской базой, превысившей 52 миллиона, и ежегодным приростом в 270 миллионов заказов его устаревшая рекомендательная система на базе Elasticsearch оказалась медленной и недостаточной. Потребность в более быстром персонализированном решении в VIPSHOP становилась всё более срочной. В этом посте мы рассмотрим проблемы, с которыми столкнулся VIPSHOP, и то, как внедрение Milvus улучшило его рекомендательную систему.
Поиск эффективной системы векторного поиска
Основа гибкой рекомендательной системы заключается в ее способности к векторному поиску, что крайне важно для оперативной выдачи семантически схожих результатов. Изначально VIPSHOP полагался на Elasticsearch для векторного поиска, но вскоре столкнулся с проблемами по мере расширения ассортимента товаров. Устаревшая система столкнулась с двумя основными препятствиями — увеличенным временем отклика и резко возросшими затратами на обслуживание.
Замедление было обусловлено высокой задержкой Elasticsearch при извлечении результатов Top-K, в среднем 300 мс. Итоговое время отклика составляло несколько секунд, что негативно влияло на пользовательский опыт в сочетании с последующими этапами обработки. Кроме того, общие индексы превратились в сложный лабиринт, увеличивая затраты на построение и обслуживание. Несмотря на попытки оживить Elasticsearch с помощью плагина хеширования, результаты не оправдали ожиданий. Поиск нового стека векторного поиска стал для команды ключевым шагом к отзывчивой рекомендательной системе.
VIPSHOP выбрал Milvus для модернизации своей рекомендательной системы
Milvus — это векторная база данных с открытым исходным кодом, которая обещает скорость и целый набор функций, способных обрабатывать миллиарды векторных эмбеддингов. Она также предлагала привлекательные возможности распределенного развертывания, многоязычные SDK и разделение чтения/записи — сочетание, которое превзошло Elasticsearch и другие технологии векторного поиска. После тщательного рассмотрения и оценки VIPSHOP выбрал Milvus для перестройки своей рекомендательной системы.
Как Milvus работает в рекомендательной системе VIPSHOP
Диаграмма дает представление об архитектуре рекомендательной системы VIPSHOP на базе Milvus.
Модель глубокого обучения преобразует характеристики товаров в векторные эмбеддинги. Затем эти эмбеддинги загружаются в Milvus для хранения и извлечения с использованием MySQL и инструмента ETL.
Одновременно запросы и покупательские предпочтения потребителей проходят аналогичное преобразование в векторные эмбеддинги, инициируя поиск по сходству в Milvus. Здесь Milvus выполняет поиск Approximate Nearest Neighbors (ANN), оценивая пространственные расстояния между векторами потребителей и товаров и выдавая Top-K наиболее релевантных результатов. Наконец, этот результат представляется потребителям.
Milvus продемонстрировал выдающуюся эффективность как в процессах обновления данных, так и в процессах recall.
Обновление данных и recall имеют ключевое значение для быстрого векторного поиска и персонализированных рекомендаций в рамках этой сложной оркестрации. Процедура обновления данных обеспечивает бесшовную синхронизацию, включая такие задачи, как запись векторных данных, определение объемов данных, построение индекса, предварительная загрузка индекса и управление псевдонимами. С другой стороны, процесс recall, являющийся неотъемлемой частью рекомендаций товаров, включает извлечение векторов, связанных с запросами потребителей и покупательским поведением, вычисление расстояний между ними и объединение результатов.
Milvus продемонстрировал выдающуюся эффективность и гибкость как в процессах обновления данных, так и в процессах поиска, достигнув средней задержки всего 10 мс. В таблице ниже представлены показатели производительности трех основных сервисов Milvus, связанных с обновлением данных и поиском.
| Сервис | Роль | Входные параметры | Выходные параметры | Задержка ответа |
|---|---|---|---|---|
| Получение векторов пользователей | Получение пользовательского вектора | информация о пользователе + запрос | пользовательский вектор | 10 мс |
| Milvus Search | Расчет векторного сходства и возврат результатов Top-K | пользовательский вектор | вектор товара | 10 мс |
| Логика планирования | Параллельный поиск и объединение результатов | Векторы товаров, найденные по нескольким каналам, и показатель сходства | товары Top-K | 10 мс |
Улучшение пользовательского опыта благодаря рекомендациям в 10 раз быстрее и значительному снижению затрат
Интеграция Milvus в рекомендательную систему VIPSHOP изменила подход, открыв новую эпоху пользовательского опыта.
Общие ответы в 10 раз быстрее: Milvus сократил общее время векторных запросов до менее чем 30 мс. Эта исключительная скорость означает десятикратное ускорение по сравнению с предыдущим решением на Elasticsearch, гарантируя, что пользователи получают молниеносные рекомендации.
Улучшенная способность справляться с ростом бизнес-данных: Распределенное развертывание Milvus и возможности горизонтального масштабирования позволили рекомендательной системе VIPSHOP без усилий управлять растущими объемами данных и пользовательскими запросами. Возможность независимо масштабировать вычисления и хранилище идеально соответствует меняющимся потребностям VIPSHOP, обеспечивая беспрецедентную гибкость.
Снижение затрат на обслуживание: Milvus благодаря своим оптимизированным механизмам запросов помог VIPSHOP снизить затраты на обслуживание рекомендательной системы. Это снижение повышает операционную эффективность и способствует общей экономической эффективности платформы.
Проблемы с Milvus и извлеченные уроки
В процессе работы с Milvus команда VIPSHOP также столкнулась с некоторыми проблемами, которые были решены при помощи команды технической поддержки Zilliz. В этом разделе они поделились извлеченными уроками и полученными знаниями по оптимизации производительности системы. * Применение стратегии развертывания с разделением чтения и записи может повысить общую производительность системы, когда операции чтения имеют приоритет.
В Milvus Java client отсутствует встроенный механизм повторного подключения, поскольку он находится в памяти внутри сервиса поиска. Команда VIPSHOP создала специализированный пул соединений, чтобы обеспечить стабильное подключение, реализовав heartbeat-тест между Java client и сервером.
Периодические медленные запросы в Milvus объясняются недостаточным прогревом новых коллекций. Чтобы справиться с этой проблемой, команда VIPSHOP внедрила стратегию имитации запросов к вновь созданной коллекции.
Достижение правильного баланса между производительностью поиска и точностью имеет решающее значение. Команда VIPSHOP рекомендует проводить тщательные эксперименты по нагрузочному тестированию, адаптированные к конкретному бизнес-сценарию. Установка разумного порогового значения жизненно важна для эффективной оптимизации этих параметров.
В сценариях со статическими данными эффективный подход заключается в первоначальном импорте всех данных в коллекцию и откладывании процесса построения индекса на более поздний этап.
Читать далее

The Real Bottlenecks in Autonomous Driving — And How AI Infrastructure Can Solve Them
Autonomous driving faces a data bottleneck. Learn how AI-native vector databases like Zilliz solve scale, cost, and insight challenges across AV pipelines.

Announcing the General Availability of Zilliz Cloud BYOC on Google Cloud Platform
Zilliz Cloud BYOC on GCP offers enterprise vector search with full data sovereignty and seamless integration.

Zilliz Cloud Introduces Advanced BYOC-I Solution for Ultimate Enterprise Data Sovereignty
Explore Zilliz Cloud BYOC-I, the solution that balances AI innovation with data control, enabling secure deployments in finance, healthcare, and education sectors.



