Поиск по фото — классическая задача, которую Яндекс с Гуглом решили очень давно, но вот недавно пришлось столкнуться с этим функционалом применительно к поиску конкретного товара и первым в очереди был Ozon. Каково было удивление, когда такой функцию там не оказалось, хотя казалось бы — поиска по фото… Дальше Wildberries: там функция есть, но после пары примеров использования стало ясно, что задача не решается, а поиск по фото с переменным успехом выдается разнообразные предметы кое-как подходящие по цвету и форме.
Скорее всего, существующий алгоритм поиска по фото на WB — классический. Изображение превращается в вектор чисел (эмбеддингов), который потом прогоняется по всей массе товаров маркетплейса с поиском ближайшего похожего вектора и по нему выдается товар. Поэтому в выдаче могут быть как нужные товары, так и полная ерунда, которая просто похожа по длине и кривизне линий на изображении.
Минусы такой реализации:
для юзера
-
Один и тот же товар на двух картинках будет показывать разную выдачу, обрежьте 30% фотографии для примера. Я уже не говорю о фотографии на столе, в руках, на человеке и т.д.
-
если ты знаешь какие-то конкретные детали этого предмета, очень логично использовать это для фильтрации выдачи (например, материал, или его назначение), а это невозможно
для бизнеса
-
Не понятно, что конкретно искал клиент. Качество алгоритма можно оценить только косвенно. Например, по конверсии в покупку из выдачи, или посчитать топ категорий среди выдачи… в общем, не однозначно.
Плюсы:
для юзера
-
Он как-то работает 🙂 можно найти «круглый бежевый пуфик с волнистым рельефом», НО сфотографированный под идеальным светом, нужным углом, стоящий на похожего цвета ламинате
для бизнеса
-
алгоритм понятный, есть множества его реализаций в открытом доступе
-
цена. Поиск по векторам весьма дешево стоит с точки зрения вычислительных мощностей
Какова альтернатива? — Сперва определить конкретный элемент на картинке, который человек хочет купить, и уже этот предмет со своими характеристиками искать на маркетплейсе. Делается это любой мультимодальной (или в простом приближении img2text) моделью, можно взять открытую LLAMA 3.2 или российский GigaChat по API. В качестве доказательства такого подхода мы в Statzilla буквально за 3 часа собрали телеграмм бота. На вход кидаешь картинку, плюс можно добавить какой-то текст, а на выходе ссылки на 4 маркетплейса.
Плюсы:
для юзера
-
более релевантная выдача
-
Переход в категорию товара сразу с фильтрами, причем если иметь доступ к фильтрам на моменте обработки изображения, то можно автоматом их заполнить и вести пользователя сразу на отфильтрованную выдачу
для бизнеса
-
более релевантная выдача повышает вероятность продажи. В выдаче будут релевантные связанные товары (а не просто что-то по форме напоминающее искомый предмет), но возможно с другими характеристиками: покупатель искал круглый пуфик, таких нет, но есть квадратные.
-
качественная продуктовая аналитика по поиску — легко понять в каких категориях эта функция востребована, где ее можно улучшать. И улучшать легко, просто меняя промпт в модели. Мы, для простоты, берем описание из 4-5 слов, если больше, будет точнее, но там уже ограничение классического поиска.
-
Возможность прогнать все товары со всеми карточками через алгоритм и автоматически проиндексировать все товары и заполнить характеристики, что в целом улучшает стандартный поиск маркетплейса. И вообще, это может быть платной опцией для селлеров — проиндексировать все картинки товаров.
Минусы:
для бизнеса
-
Цена. Чтобы так организовать поиск по картинке, нужно не просто построить вектор по картинке, но и скормить это LLM модели, что при закупке токенов у облачного провайдера обойдется примерно в 1 рубль (для картинки нужно порядка 500-1000 токенов), на собственном железе дешевле, но не принципиально. НО, можно использовать дешевый аналог, например популярный img2text — BLIP, там стоимость можно сократить в несколько раз, что уже близко к стоимости векторизации и поиска схожего вектора, который суммарно обходится примерно в 10 копеек.
-
Работает примерно на секунду дольше стандартного поиска
-
100% совпадений получить почти невозможно, потому что мы сжимаем целую картинку до нескольких слов запроса с фильтрами. НО и при классическом поиске по фото это сложно, ввиду различного окружения/фона.
Выводы
Выбор конечно не очевидный, но альтернативный вариант поиска занимает в реализации день работы, день тестов и недельку деплоя. Почему это не является дефолтной фичей всех магазинов и маркетплейсов — не понятно. Доля поиска по картинке вряд ли большая, а, значит, затраты на ее реализацию в виде предложенного алгоритма по затратам не превысит несколько десятков млн руб в год.
ссылка на оригинал статьи https://habr.com/ru/articles/857750/
Добавить комментарий