Каждый, кто работает с крупными массивами данных, знает, насколько трудоемко и сложно вручную находить и удалять дублирующиеся записи. Нечеткие совпадения, повторяющиеся данные или ошибки при вводе информации могут привести к снижению точности моделей и усложнению анализа. В этой статье мы рассмотрим практический кейс, который поможет эффективно решить эти проблемы.
Спикер: Давид Акопян, CEO консалтинговой компании OrionAI, Business Analyst Team Lead в Авито, ex-Yandex.
YNDX Family
Материал подготовлен на основе онлайн-встречи YNDX Family, неофициального сообщества текущих и бывших сотрудников группы Яндекса. Присоединяйся к комьюнити, если ты тоже выпускник-яндексоид :)
Полная запись встречи доступна всем участникам сообщества в закрытой базе знаний.
Материал подготовлен на основе онлайн-встречи YNDX Family, неофициального сообщества текущих и бывших сотрудников группы Яндекса. Присоединяйся к комьюнити, если ты тоже выпускник-яндексоид :)
Полная запись встречи доступна всем участникам сообщества в закрытой базе знаний.
Описание кейса
Заказчик: Быстрорастущая компания из Дубая, занимающаяся стройматериалами и сотрудничающая с большим количеством поставщиков.
Боль клиента: У компании стремительно растет база данных (БД), и коды SKU заполняются разными поставщиками, что может привести к появлению множества дубликатов в будущем. Клиент хочет внедрить автоматизированную систему распознавания дубликатов в базе данных.
Боль клиента: У компании стремительно растет база данных (БД), и коды SKU заполняются разными поставщиками, что может привести к появлению множества дубликатов в будущем. Клиент хочет внедрить автоматизированную систему распознавания дубликатов в базе данных.
Формализованная техническая задача: В результате анализа кейса были выделены следующие задачи:
- Провести первичный анализ БД для оценки количества:
- Дубликатов записей.
- Вариаций одного товара с целью объединения их в одну карточку с сохранением спецификаций.
- Выполнить интеграцию с 1С, при которой при заведении новой карточки будут появляться подсказки о возможном наличии дубликатов.
Критерии точности работы модели:
1. Ошибки первого рода (ложные тревоги) не должны превышать 10%, то есть модель не должна ошибочно помечать запись как дубликат в более чем 10% случаев.
2. Ошибки второго рода (недостаточная бдительность) не должны превышать 5%, то есть модель должна пропускать не более 5% случаев, когда дубликат остается нераспознанным.
1. Ошибки первого рода (ложные тревоги) не должны превышать 10%, то есть модель не должна ошибочно помечать запись как дубликат в более чем 10% случаев.
2. Ошибки второго рода (недостаточная бдительность) не должны превышать 5%, то есть модель должна пропускать не более 5% случаев, когда дубликат остается нераспознанным.
Какие существующие алгоритмы могут помочь в решении задачи клиента?
BM25
BM25 (Best Match 25)– это вероятностный алгоритм ранжирования, применяемый для оценки релевантности документов поисковому запросу . Он широко используется в поисковых системах и системах управления информацией. BM25 оценивает вероятность релевантности документа запросу , основываясь на частоте терминов запроса в документе и статистических характеристиках коллекции документов.
BM25 (Best Match 25)– это вероятностный алгоритм ранжирования, применяемый для оценки релевантности документов поисковому запросу . Он широко используется в поисковых системах и системах управления информацией. BM25 оценивает вероятность релевантности документа запросу , основываясь на частоте терминов запроса в документе и статистических характеристиках коллекции документов.
Расстояние Левенштейна
Расстояние Левенштейна, или редакционное расстояние, — это метрика, измеряющая различие между двумя строками. Чем больше расстояние, тем более различны строки. Для двух одинаковых строк расстояние равно нулю. Этот метод используется для исправления ошибок в текстах, поиска дубликатов и других операций с текстовыми данными.
Расстояние Левенштейна, или редакционное расстояние, — это метрика, измеряющая различие между двумя строками. Чем больше расстояние, тем более различны строки. Для двух одинаковых строк расстояние равно нулю. Этот метод используется для исправления ошибок в текстах, поиска дубликатов и других операций с текстовыми данными.
Косинусная близость
Косинусное сходство – это метод, применяемый для оценки сходства между двумя текстовыми документами. Оно вычисляется через угол между векторами, представляющими документы, и широко используется в рекомендательных системах и приложениях машинного обучения.
Косинусное сходство – это метод, применяемый для оценки сходства между двумя текстовыми документами. Оно вычисляется через угол между векторами, представляющими документы, и широко используется в рекомендательных системах и приложениях машинного обучения.
Евклидово расстояние
Евклидово расстояние - это это метрика, определяющая кратчайшую прямую между двумя точками в евклидовом пространстве. Это фундаментальная геометрическая метрика, которая применяется для измерения расстояний в многомерных пространствах.
Евклидово расстояние - это это метрика, определяющая кратчайшую прямую между двумя точками в евклидовом пространстве. Это фундаментальная геометрическая метрика, которая применяется для измерения расстояний в многомерных пространствах.
Почему алгоритм BM25 лучше всего подошел для задачи клиента?
Для решения задачи клиента был выбран алгоритм BM25 по следующим причинам:
1. Алгоритм отдает приоритет более редким словам, что позволяет улучшить точность поиска.
1. Алгоритм отдает приоритет более редким словам, что позволяет улучшить точность поиска.
Пример: Для запроса "Гайка Rixton 25мм" наиболее релевантной будет запись "Гайка Rixton 2.5см" , а не "Гайка Asims 25мм", так как бренд Rixton встречается реже.
2. Алгоритм можно улучшить, добавив поля, такие как "бренд", "размер" и другие характеристики. Это позволяет модели извлекать из артикула нужные данные (например, название бренда и размер) и искать по ним более эффективно.
Почему модель GPT не подошла для задачи?
В тестовом режиме была применена модель GPT для решения задачи клиента, но были выявлены следующие сложности:
- Высокий риск увеличения стоимости использования модели GPT .
- Увеличение количества товаров и записей усложняет процесс обработки и сравнения.
- Изменения в базе данных могут привести к необходимости адаптации модели.
- Точность обработки и сравнения может оказаться ниже, чем у других алгоритмов.
Сравнение результатов при использовании BM25 и GPT
Для оценки того, какой из алгоритмов — BM25 или GPT — лучше подходит для решения задач клиента и соответствует критериям точности, был проведён эксперимент. В ходе эксперимента оба алгоритма анализировали подготовленный фрагмент из текущей базы данных клиента и искали дубликаты.
В результате алгоритм BM25 показал более точные результаты по сравнению с GPT:
В результате алгоритм BM25 показал более точные результаты по сравнению с GPT:
С какими сложностями столкнулись?
- Проведение ручной валидации результатов внедрения модели.
- Найти недорогих программистов для интеграции с 1С.
6 простых правил для успеха консалтиногового проекта
- Всегда пиши максимально детальное техническое задание и утверждай его с клиентом в начале проекта.
- Всегда пиши детальное саммари после каждой встречи с клиентом.
- Всегда оформляй контракт с клиентом.
- Всегда проси предоплату и согласовывай этапы оплаты проекта.
- Всегда договаривайся о критериях приемки (когда это возможно).
- Всегда закладывайте риски в стоимость проекта.
Как определить стоимость консалтингового проекта?
Есть три способа определить стоимость проекта:
ROI (Возврат на инвестиции).
Этот метод оценивает рентабельность проекта, сравнивая затраты и предполагаемую прибыль. ROI помогает определить, стоит ли инвестировать в проект, основываясь на его потенциальной окупаемости.
Конкуренты.
Оценка стоимости основывается на ценах, которые предлагают конкуренты за аналогичные продукты или услуги. Цель — оставаться конкурентоспособным, не завышая и не занижая цену.
Себестоимость.
Этот метод рассчитывает стоимость проекта на основе всех понесенных затрат, включая материалы и оплату труда. Установление цены основывается на необходимости покрыть эти расходы и обеспечить прибыль.
ROI (Возврат на инвестиции).
Этот метод оценивает рентабельность проекта, сравнивая затраты и предполагаемую прибыль. ROI помогает определить, стоит ли инвестировать в проект, основываясь на его потенциальной окупаемости.
Конкуренты.
Оценка стоимости основывается на ценах, которые предлагают конкуренты за аналогичные продукты или услуги. Цель — оставаться конкурентоспособным, не завышая и не занижая цену.
Себестоимость.
Этот метод рассчитывает стоимость проекта на основе всех понесенных затрат, включая материалы и оплату труда. Установление цены основывается на необходимости покрыть эти расходы и обеспечить прибыль.
Хочешь получить больше знаний о дизайне ML-систем? Мечтаешь попасть в комьюнити IT-активистов, реализовать крутой проект или найти единомышлеников? Вступай в сообщество YNDX Family! Ждём тебя 😉