Методы машинного обучения спешат на помощь

10–30% данных в базах данных являются дубликатами [1].

Плохие данные обходятся каждому бизнесу в среднем в 15 миллионов долларов в год [2].

Но дублирование данных неизбежно, а текущие рыночные решения слишком дороги для внедрения, верно?

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

Что такое дубликат?

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

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

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

Исследование Массачусетского технологического института показало, что 97 % опрошенных предприятий признают наличие неприемлемых данных, а 50 % новых данных вызывают сомнения[3] . Дублирование является одним из таких факторов, и проблема многих решений заключается в обнаружении дубликатов, поскольку многие из них не являются точными совпадениями.

Ценность базы данных зависит от качества хранящихся в ней данных. Для баз данных в целом наличие повторяющихся или несогласованных записей может иметь очевидные и серьезные последствия. Компании, как правило, используют свою базу данных в качестве инструмента поиска, а дублирование может вызвать мигрень у всех участников. В качестве примера можно привести колл-центры: известно, что найти кого-то бывает сложно из-за дублирования. Идея автоматизации дедупликации данных имеет решающее значение для бизнеса.

Стратегия Delpha — выходя за рамки точности

Многие решения, пытающиеся выполнить дедупликацию, основаны на булевых методологиях, в которых идентифицируются и собираются только точные значения для слияния и/или удаления. Однако из-за сложности и частоты современных данных в сочетании с человеческими ошибками, которые могут возникать при работе с базами данных, точных совпадений недостаточно.

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

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

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

В этом примере значение в поле «E» может быть аббревиатурой или сокращенной версией имени (возможно, даже псевдонимом), которое было бы пропущено в точном фильтре. Однако нечеткая логика способна анализировать другие поля и определять вероятность дублирования контакта в зависимости от количества схожей информации.

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

Метод нечетких дубликатов — расстояние Левенштейна

Расстояние Левенштейна — это метрика, позволяющая измерить, насколько друг от друга расположены две последовательности слов. В частности, он измеряет минимальное количество правок, которые вам нужно сделать, чтобы заменить последовательность из одного слова на другую. Эти правки могут быть вставками, удалениями или заменами. Владимир Левенштейн, который впервые рассматривал этот показатель в 1965 году, назвал его. Формальное определение расстояния Левенштейна между двумя строками a и b можно увидеть следующим образом:

Где 1(ai!=bj) означает 0, когда a= b, и 1 в противном случае. Важно отметить, что строки в минимуме выше соответствуют удалению, вставке и замене в указанном порядке.

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

(|a|+ |b|) − lev a,b(i, j)

|a| + |b|

где |а| и |b| — длины последовательности a и последовательности b соответственно. Время вычисления расстояния редактирования нелинейно растет с длиной токена. Обработка всего текстового поля как одной лексемы может потребовать больших вычислительных ресурсов. Один из способов оптимизировать проблему и преобразовать сложность почти в O(n) — отказаться от обработки расстояний между двумя записями, как только обнаружится, что расстояние между парой атрибутов превышает заданный порог.

Например, если расстояние между полями имени для двух записей клиентов достаточно велико, мы можем пропустить обработку оставшихся атрибутов и установить большое расстояние между двумя записями.

Нечеткая логика

Нечеткая логика — это форма многозначной логики, которая имеет дело с приблизительными рассуждениями, а не с фиксированными и точными. Значения нечеткой логики находятся в диапазоне от 1 до 0, т. Е. Значение может варьироваться от полностью истинного до полностью ложного. Напротив, булева логика - это двузначная логика: истина или ложь обычно обозначаются 1 и 0 соответственно, что касается фиксированных и точных рассуждений. Нечеткая логика имеет тенденцию отражать то, как люди думают, и пытается смоделировать наше принятие решений, что приводит к новым интеллектуальным системам (экспертным системам). Итак, если мы сравним две строки с помощью нечеткой логики, мы попытаемся ответить на вопрос «Насколько похожи строки A и строки B?» при использовании булевой логики.

Для объекта поддерживаются различные типы атрибутов, в том числе целые, двойные, категориальные, текстовые, время, местоположение и так далее. Почти для любой пары сущностей рассчитывается расстояние между соответствующими атрибутами. Расстояния по атрибутам агрегируются по всем атрибутам объекта, чтобы найти расстояние между двумя объектами.

Можно ввести запись в Salesforce разными способами. Значения в повторяющихся записях могут не совпадать точно, но быть похожими. Используя решение Delpha, вы можете выполнить «проверку дубликатов», в которой используется эта логика нечеткого сопоставления.

Проверка дубликатов может анализировать любой объект в Salesforce (не только объект «Интерес», «Контакт и организация» или настраиваемые объекты) и представлять четкий отчет обо всех повторяющихся записях. Используя Fuzzy Matching, Duplicate Check также будет перечислять похожие повторяющиеся записи: они не обязательно должны быть одинаковыми.

Один из способов оптимизировать проблему и преобразовать сложность почти в O(n) — отказаться от обработки расстояния между двумя записями, как только расстояние между парой атрибутов превысит предопределенный порог.

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

Машинное обучение в помощь

TF-IDF (термин частотно-обратная частота документа)

TF-IDF — это статистическая мера, которая оценивает, насколько релевантно слово документу в наборе документов. Его можно рассчитать, умножив два показателя: количество раз, когда слово появляется в документе, и обратную частоту слова в документе в наборе документов.

Он имеет множество применений, особенно в автоматизированном анализе текста, и очень полезен для оценки слов в алгоритмах машинного обучения для обработки естественного языка (NLP). TF-IDF был изобретен для поиска документов и поиска информации.

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

Одной из метрик для расчета TF-IDF является частота слова. Существует несколько способов измерения этой частоты, самым простым из которых является необработанный подсчет случаев появления слова в документе. Кроме того, есть способы настроить частоту по длине документа или по необработанной частоте наиболее часто встречающегося слова в документе.

Обратная частота слова в документе в наборе документов. Это означает, насколько часто или редко встречается слово во всем наборе документов. Чем он ближе к 0, тем слово встречается чаще. Этот показатель можно рассчитать, взяв общее количество документов, разделив его на количество документов, содержащих слово, и вычислив логарифм. Так, если слово очень распространено и встречается во многих документах, это число будет приближаться к 0. В противном случае оно будет приближаться к 1.

Умножение этих двух чисел дает оценку TF-IDF для слова в документе. Чем выше оценка, тем более релевантным является это слово в данном конкретном документе. Говоря более формальными математическими терминами, оценка TF-IDF для слова t в документе d из набора документов D рассчитывается следующим образом:

Так зачем нам использовать TF-IDF?

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

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

Подводить итоги

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

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

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

Пришло время позволить машинному обучению помочь в наших стратегиях улучшения качества данных.

использованная литература

[1] Р. Бозман, Дубликаты и их влияние на ваш бизнес (2018), Hubspot

[2] С. Мур, Как создать бизнес-обоснование для повышения качества данных (2018), Gartner

[3] Т. Редман, Использование возможностей в области качества данных (2017), MIT Sloan Management Review.