Создание системы поиска покупок по изображениям с помощью VOVA и Milvus
Перейти к:
- Построение поиска по изображениям в магазинах с помощью VOVA и Milvus
- Как работает поиск по изображениям?- Системный процесс функциональности поиска по изображениям в VOVA.
- Обнаружение целей с помощью модели YOLO- архитектура сети YOLO.
- Извлечение вектора признаков изображения с помощью ResNet- структура ResNet.
- Векторный поиск по сходству на базе Milvus- архитектура Mishards в Milvus.
- VOVA's shop by image tool- Скриншоты инструмента VOVA's search by image shopping tool.
- Ссылка
В 2020 г. онлайн-покупки резко возросли, на 44 %, во многом благодаря пандемии коронавируса. Поскольку люди стремились к социальной дистанции и избегали контактов с незнакомцами, бесконтактная доставка стала невероятно желанным вариантом для многих потребителей. Эта популярность также привела к тому, что люди стали покупать в Интернете все больше разнообразных товаров, включая нишевые товары, которые сложно описать с помощью традиционного поиска по ключевым словам.
Чтобы помочь пользователям преодолеть ограничения, накладываемые запросами по ключевым словам, компании могут создавать поисковые системы по изображениям, которые позволяют пользователям использовать для поиска не слова, а изображения. Это не только позволяет пользователям находить предметы, которые трудно описать, но и помогает им покупать вещи, с которыми они сталкиваются в реальной жизни. Такая функциональность помогает создать уникальный пользовательский опыт и обеспечивает общее удобство, которое ценят покупатели.
VOVA - это развивающаяся платформа электронной коммерции, которая ориентирована на доступность и положительный опыт покупок для своих пользователей. Она предлагает миллионы товаров, поддерживает 20 языков и 35 основных валют. Чтобы повысить удобство покупок для своих пользователей, компания использовала Milvus для встраивания функции поиска по изображениям в свою платформу электронной коммерции. В статье рассматривается, как VOVA успешно создала систему поиска по изображениям с помощью Milvus.
Как работает поиск по изображениям?
Система VOVA "Магазин по картинке" ищет в инвентаре компании изображения товаров, которые похожи на загруженные пользователями. На следующей схеме показаны два этапа работы системы: этап импорта данных (синий) и этап запроса (оранжевый):
- Использование модели YOLO для обнаружения целей на загруженных фотографиях;
- Использование ResNet для извлечения векторов признаков из обнаруженных целей;
- использование Milvus для поиска векторного сходства.
Vova-1.png
Обнаружение целей с помощью модели YOLO
Мобильные приложения VOVA для Android и iOS в настоящее время поддерживают поиск изображений. Компания использует современную систему обнаружения объектов в реальном времени под названием YOLO (You only look once) для обнаружения объектов на загруженных пользователем изображениях. В настоящее время модель YOLO находится в пятой итерации.
YOLO - это одноступенчатая модель, использующая только одну конволюционную нейронную сеть (CNN) для предсказания категорий и положения различных целей. Она небольшая, компактная и хорошо подходит для мобильного использования.
YOLO использует сверточные слои для извлечения признаков и полносвязные слои для получения прогнозируемых значений. По мотивам модели GooLeNet, CNN YOLO включает 24 сверточных слоя и два полностью связанных слоя.
Как показано на следующей иллюстрации, входное изображение размером 448 × 448 преобразуется несколькими конволюционными слоями и слоями объединения в тензор размером 7 × 7 × 1024 (изображен на предпоследнем кубике), а затем преобразуется двумя полносвязными слоями в тензор размером 7 × 7 × 30 на выходе.
Предсказанный выход YOLO P - это двумерный тензор, форма которого [партия,7 × 7 × 30]. Используя нарезку, P[:,0:7×7×20] - вероятность категории, P[:,7×7×20:7×7×(20+2)] - уверенность, а P[:,7×7×(20+2)]:] - предсказанный результат ограничительного поля.
![vova-2.png] (https://assets.zilliz.com/vova_2_1ccf38f721.png "Архитектура сети YOLO").
Выделение вектора признаков изображения с помощью ResNet
VOVA использует модель остаточной нейронной сети (ResNet) для извлечения векторов признаков из обширной библиотеки изображений продуктов и фотографий, загруженных пользователями. Возможности ResNet ограничены, поскольку с увеличением глубины обучаемой сети точность сети снижается. На изображении ниже показано, как в ResNet работает модель VGG19 (вариант модели VGG), модифицированная для включения остаточной единицы через механизм короткого замыкания. Модель VGG была предложена в 2014 году и включает всего 14 слоев, в то время как ResNet появилась годом позже и может иметь до 152 слоев.
Структура ResNet легко модифицируется и масштабируется. Изменяя количество каналов в блоке и количество сложенных блоков, можно легко регулировать ширину и глубину сети, получая сети с различными выразительными возможностями. Это позволяет эффективно устранить эффект вырождения сети, когда точность снижается по мере увеличения глубины обучения. При достаточном количестве обучающих данных можно получить модель с улучшенными выразительными характеристиками, постепенно углубляя сеть. В процессе обучения модели для каждой картинки извлекаются признаки и преобразуются в 256-мерные векторы с плавающей запятой.
vova-3.png
Векторный поиск сходства на базе Milvus
База данных изображений товаров VOVA насчитывает 30 миллионов изображений и быстро растет. Для быстрого извлечения наиболее похожих изображений товаров из этого огромного набора данных используется система Milvus для векторного поиска сходства. Благодаря ряду оптимизаций Milvus предлагает быстрый и оптимизированный подход к управлению векторными данными и созданию приложений машинного обучения. Milvus предлагает интеграцию с популярными библиотеками индексов (например, Faiss, Annoy), поддерживает множество типов индексов и метрик расстояний, имеет SDK на нескольких языках и предоставляет богатые API для управления векторными данными.
Milvus может выполнять поиск по сходству в триллионных векторных наборах данных за миллисекунды, при этом время запроса составляет менее 1,5 секунды при nq=1, а среднее время пакетного запроса - менее 0,08 секунды. Для создания своей системы поиска изображений компания VOVA использовала дизайн Mishards, промежуточного программного обеспечения для шардинга от Milvus (см. схему ниже), чтобы реализовать высокодоступный серверный кластер. Благодаря горизонтальной масштабируемости кластера Milvus удалось удовлетворить требования проекта по высокой производительности запросов к огромным массивам данных.
vova-4.png
Инструмент VOVA "Магазин по картинкам
На скриншотах ниже показан инструмент VOVA для поиска покупок по картинкам в приложении компании для Android.
vova-5.png
По мере того как все больше пользователей будут искать товары и загружать фотографии, VOVA продолжит оптимизировать модели, на которых основана система. Кроме того, компания будет внедрять новые функциональные возможности Milvus, которые еще больше улучшат опыт онлайн-покупок для ее пользователей.
Ссылка
YOLO:
https://arxiv.org/pdf/1506.02640.pdf
https://arxiv.org/pdf/1612.08242.pdf
ResNet:
https://arxiv.org/abs/1512.03385
Milvus:
https://milvus.io/docs
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word