- BrainTools - https://www.braintools.ru -

Практический кейс: как применять ML и GPT для поиска дубликатов в базе данных

Привет! Я Давид Акопян, занимаюсь интеграциями ML, GPT и консалтингом. Сейчас работаю тимлидом продуктовой аналитики [1] в Авито [2]

Ранее был опыт [3] в:

  • EY операционном консалтинге в сфере ретейла. Консультировал такие компании как Магнит, Детский Мир, Аскона, МВидео, НЛМК;

  • E-groccery-стартапе;

  • был тимлидом аналитики обычной и экспресс-доставки Яндекс.Маркета;  

  • а еще пробовал себя в различных проектах во фрилансе.

Каждый, кто работает с большими данными, знает, насколько трудоемко и сложно вручную находить и удалять дублирующиеся записи. Нечеткие совпадения, повторяющиеся данные или ошибки [4] при вводе информации могут снижать точность моделей и усложнять анализ.

В этой статье хочу поделиться опытом успешного консалтингового проекта по интеграции ML и GPT для интернет-магазина на Shopify с целью уменьшения количества дубликатов в базе данных клиента.

Практический кейс: как применять ML и GPT для поиска дубликатов в базе данных - 1

Материал подготовлен на основе моего выступления в качестве контрибьютера для YNDX Family – это неофициальное сообщество нынешних и бывших сотрудников Яндекса. У ребят есть закрытая база знаний, где профессионалы делятся своим опытом. Полная запись моего выступления также доступна в этой базе. Присоединяйся к коммьюнити, если ты тоже выпускник-яндексоид! :)

Что внутри статьи:

Описание кейса [5]

Какие существующие алгоритмы могут помочь в решении задачи? [6]

Почему алгоритм BM25 лучше всего подошел для задачи клиента? [7]

Почему не стали использовать модель GPT? [8]

Сравнение результатов BM25 и GPT [9]

Шесть правил успеха консалтингового проекта [10]

Как определить стоимость проекта [11]

Вывод [12]

Итак, поехали!

Описание кейса

Заказчик: Быстро растущая компания из Дубая, занимается стройматериалами и сотрудничает с большим количеством поставщиков.

Боль [13] клиента: У компании стремительно растет база данных (БД), и коды SKU заполняются разными поставщиками, что может привести к появлению множества дубликатов в будущем. Клиент хочет внедрить автоматизированную систему распознавания дубликатов в базе данных.

Формализованная техническая задача: В результате анализа кейса были выделены следующие задачи:

  1. провести первичный анализ БД для оценки количества: дубликатов записей и вариаций одного товара с целью объединения их в одну карточку с сохранением спецификаций;

  2. выполнить интеграцию с 1С, при которой при заведении новой карточки будут появляться подсказки о возможном наличии дубликатов.

Критерии точности работы модели:

  1. доля ошибок первого рода (ложная тревога) не должны превышать 10%, то есть модель не должна ошибочно помечать запись как дубликат в более чем 10% случаев;

  2. доля ошибок второго рода (недостаточная бдительность) не должны превышать 5%, то есть модель должна пропускать не более 5% случаев, когда дубликат остается нераспознанным.

Какие существующие алгоритмы могут помочь в решении задачи клиента?

BM25

BM25 (Best Match 25) – это вероятностный алгоритм ранжирования, применяемый для оценки релевантности документов поисковому запросу. Он широко используется в поисковых системах и системах управления информацией. BM25 оценивает вероятность релевантности документа запросу, основываясь на частоте терминов запроса в документе и статистических характеристиках коллекции документов.

Расстояние Левенштейна

Расстояние Левенштейна или редакционное расстояние — это метрика, измеряющая различие между двумя строками. Чем больше расстояние – тем более различны строки. Для двух одинаковых строк расстояние равно нулю. Этот метод используется для исправления ошибок в текстах, поиска дубликатов и других операций с текстовыми данными.

Косинусная близость

Косинусное сходство – это метод, применяемый для оценки сходства между двумя текстовыми документами. Оно вычисляется через угол между векторами, представляющими документы, и широко используется в рекомендательных системах и приложениях машинного обучения [14].

Евклидово расстояние

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

Почему алгоритм BM25 лучше всего подошел для задачи клиента?

Алгоритм BM25 был выбран по следующим причинам:

  • алгоритм отдает приоритет более редким словам, что позволяет улучшить точность поиска. Пример: Для запроса «Гайка Rixton 25мм» наиболее релевантной будет запись «Гайка Rixton 2.5см», а не «Гайка Asims 25мм», так как бренд Rixton встречается реже;

  • алгоритм можно улучшить, добавив поля, такие как «бренд», «размер» и другие характеристики. Это позволяет модели извлекать из артикула нужные данные (например, название бренда и размер) и искать по ним более эффективно.

Почему модель GPT не подошла для задачи?

В тестовом режиме мы применили модель GPT для решения задачи клиента, но были выявлены следующие сложности:

  • высокий риск увеличения стоимости использования модели GPT;

  • увеличение количества товаров и записей усложняет процесс обработки и
    сравнения;

  • изменения в базе данных могут привести к необходимости адаптации модели;

  • точность обработки и сравнения может оказаться ниже, чем у других
    алгоритмов.

Сравнение результатов при использовании BM25 и GPT

Для оценки того, какой из алгоритмов — BM25 или GPT — лучше подходит для решения задач клиента и соответствует критериям точности, был проведён эксперимент. Оба алгоритма анализировали подготовленный фрагмент из текущей базы данных клиента и искали дубликаты. В результате алгоритм BM25 показал более точные результаты по сравнению с GPT.

С какими сложностями столкнулись?

  • проведение ручной валидации результатов внедрения модели;

  • найти недорогих программистов для интеграции с 1С.

Шесть простых правил для успеха консалтиногового проекта

  1. всегда пиши максимально детальное техническое задание и утверждай его с клиентом в начале проекта;

  2. всегда пиши детальное саммари после каждой встречи с клиентом;

  3. всегда оформляй контракт с клиентом;

  4. всегда проси предоплату и согласовывай этапы оплаты проекта;

  5. всегда договаривайся о критериях приемки (когда это возможно);

  6. всегда закладывайте риски в стоимость проекта.

Как определить стоимость консалтингового проекта?

Есть три способа определить стоимость проекта:

ROI (Возврат на инвестиции)

Этот метод оценивает рентабельность проекта, сравнивая затраты и предполагаемую прибыль. ROI помогает определить, стоит ли инвестировать в проект, основываясь на его потенциальной окупаемости.

Конкуренты

Оценка стоимости основывается на ценах, которые предлагают конкуренты за аналогичные продукты или услуги. Цель — оставаться конкурентоспособным, не завышая цену, но и не занижая её.

Себестоимость

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

Вывод

GPT имеет широкий функционал, но для многих практических задач классические ML решения оказываются эффективнее и проще в имплементации. 

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

Спасибо вам за уделенное статье время! Буду рад ответить на вопросы и обсудить ваш опыт в комментариях к статье.

Автор: d_akopian

Источник [15]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/11132

URLs in this post:

[1] тимлидом продуктовой аналитики: https://career.avito.com/vacancies/?q=%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA&action=filter

[2] Авито: https://avito.tech

[3] опыт: http://www.braintools.ru/article/6952

[4] ошибки: http://www.braintools.ru/article/4192

[5] Описание кейса: #section1

[6] Какие существующие алгоритмы могут помочь в решении задачи?: #section2

[7] Почему алгоритм BM25 лучше всего подошел для задачи клиента?: #section3

[8] Почему не стали использовать модель GPT?: #section4

[9] Сравнение результатов BM25 и GPT: #section5

[10] Шесть правил успеха консалтингового проекта: #section6

[11] Как определить стоимость проекта: #section7

[12] Вывод: #section8

[13] Боль: http://www.braintools.ru/article/9901

[14] обучения: http://www.braintools.ru/article/5125

[15] Источник: https://habr.com/ru/companies/avito/articles/872260/?utm_campaign=872260&utm_source=habrahabr&utm_medium=rss

www.BrainTools.ru

Рейтинг@Mail.ru
Rambler's Top100