46.5kЗаказать демоВойтиНачать бесплатно

Как VIPSHOP ускорила свою рекомендательную систему для e-commerce в 10 раз с помощью Milvus

Jan 24, 20244 min read

Рекомендательные системы стали незаменимыми для успеха электронной коммерции, выступая стратегическим катализатором для улучшения пользовательского опыта, стимулирования вовлеченности клиентов и увеличения выручки бизнеса. 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-K10 мс

Улучшение пользовательского опыта благодаря рекомендациям в 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 рекомендует проводить тщательные эксперименты по нагрузочному тестированию, адаптированные к конкретному бизнес-сценарию. Установка разумного порогового значения жизненно важна для эффективной оптимизации этих параметров.

  • В сценариях со статическими данными эффективный подход заключается в первоначальном импорте всех данных в коллекцию и откладывании процесса построения индекса на более поздний этап.

Обновлено Jul 09, 2026