Image

Как мы построили систему матчинга товаров с помощью трансформеров и LLM

Привет! Мы — команда ML-разработчиков «Магнит Фудтех», входящей в состав бизнес-группы Магнит OMNI. 

Меня зовут Виктория Костерина, я тимлид команды. В этой статье мы вместе с моим коллегой, ML-инженером Богданом Тонанайским, рассказываем, как создавали систему автоматического сопоставления товаров между ассортиментом конкурентов и товарами «Магнита».

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

Сопоставить несопоставимое

В магазинах товары могут различаться форматами упаковки, объемом, весом и множеством других факторов. В офлайн-формате продукты стоят на полках, и их можно потрогать. В онлайне товары представлены карточками с текстовыми описаниями и картинками. Однако в базах данных разных ритейлеров даже одни и те же товары могут называться по-разному — как в примере ниже:

Coca-Cola Zero 330ml и Кока-Кола зеро 0.33 ж/б — товар один, названия разные.
Coca-Cola Zero 330ml и Кока-Кола зеро 0.33 ж/б — товар один, названия разные.

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

У нас в «Магните» стояла именно эта задача — автоматически сопоставлять товары из наших каталогов и каталогов конкурентов. Сотни тысяч SKU, разные форматы, опечатки, особенности описаний, — такое практически невозможно свести к ручной разметке. Более того, даже у одних и тех же ритейлеров названия могут меняться со временем.

Наивный путь

На первом этапе нам были доступны только текстовые заголовки товарных карточек. Идея была простая: что, если взять строковое расстояние Левенштейна, и просто искать ближайшие названия? В теории красиво, на практике — провал. Даже очень похожие строки могли означать совершенно разные товары. HitRate@10 оказался около 10%, а простые преобразования вроде приведения к нижнему регистру, стемминга и лемматизации хоть и улучшают метрику почти вдвое, но не дают пригодных результатов. Ниже представлено распределение коэффициента схожести текстов (fuzz ratio), где 100 соответствует полному совпадению.

b1b6558ed4b20fb315e6957c820cdcdc

Отсюда вывод: нормализация текстов важна, но не сделает из строковых методов пригодную систему.

Эмбеддинги приходят на помощь

После строковых методов мы обратились к эмбеддингам: векторизовали названия товаров языковыми моделями и брали топ по косинусной близости. Сырые LaBSE и ruBERT на наших данных сразу подтянули качество, HitRate@10 увеличился более чем в 2 раза. Построив распределение косинусной близости топового матча для успешных (матч в топ-10 результатов) и неуспешных (матч дальше) мы увидели следующую картину:

c82359892905900ef40d9b3349d3c7d6

Уже на этих распределениях видно, что при определенном пороге отсечения по метрике (например, 0,995) можно увеличить качество сопоставленных пар при достаточно неплохом покрытии. А если «раздвинуть» эти два распределения, то это существенно повысит процент совпадений и устойчивость результатов. 

7fbba040855c9c8e54ad2d1e7adbd8ee

Картинка иллюстрирует общую идею. У нас появилась надежда, что fine-tuning даст серьёзный прирост.

Не только fine-tuning

Внимательно посмотрев на данные, мы обнаружили ряд специфических моментов: в доступных нам данных нередко встречались CamelCase, разделители, слитное/раздельное написание товарных единиц. Вдобавок распределение длин наименований товаров по конкурентам показало следующее:

cf50cc34b1f5dea18845303a7fd9c722

Что это такое? Взглянув на самые длинные названия, мы увидели, что они содержат повторяющиеся подстроки, удаление которых улучшило картину:

b978d27f968204e044c704246e98bbe4

Можно обучать

Мы выбрали компактную модель rubert-tiny2: баланс скорости и качества оказался оптимальным. Чтобы натренировать её на наших данных, применили contrastive learning с hard negatives. То есть мы специально скармливали парные примеры очень похожих, но разных товаров. В итоге модель научилась разносить и не путать такие пары, как, например, «Pepsi 0,5 л» и «Pepsi Max 0,5 л».

986b538f3390a1482f634b5472eefd79

Эта дообученная модель дала ещё +25% к HitRate. Особенно сильно улучшилась точность на пограничных случаях.

LLM — фильтр последней надежды

Финальный пайплайн получился таким:

  1. Берём названия товаров конкурентов и «Магнита».

  2. Считаем эмбеддинги, ищем ближайших соседей, формируем топ из 5-10 кандидатов.

  3. Фильтруем по косинусному сходству.

  4. Самые спорные пары отправляем в LLM (DeepSeek, Qwen, YandexGPT).

LLM возвращает JSON: матч/частичный/нематч + уверенность + короткое объяснение. Так мы автоматизировали валидацию и разгрузили аналитиков.

Что мы поняли:

  1. Нормализация данных обязательна. Без неё даже простейшие методы работают плохо.

  2. Компактные трансформеры могут быть очень мощными, если их правильно дообучить.

  3. LLM отлично дополняют пайплайн, выступая последним фильтром.

Куда двигаться дальше

Сейчас мы хотим попробовать использовать LLM не только как фильтр, но и как генератор матчей и авторазметки. А ещё планируем внедрить semi-supervised обучение с обратной связью от аналитиков и интегрировать результаты в систему ценообразования.

История продолжается 🙂

Источник: habr.com

✅ Найденные теги: Как, новости

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых