Поиск дубликатов(Duplicate detection)Лекция для Computer Science клубaАлександр Уланов / 31 марта 2013HP Labs Russiaalexan...
СодержаниеПоиск дубликатов•  Введение•  Примеры•  Постановка задачи•  Алгоритмы2   © Copyright 2012 Hewlett-Packard Develo...
ВведениеПоиск дубликатовЗадача поиска и группировки или согласования различных экземпляров(реализаций) одного и того же об...
Поиск дубликатовПоиск дубликатов в поиске дубликатовЗадача имеет много различных названий                                 ...
Примеры. Организации5   © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is sub...
Примеры. Социальная сеть       До поиска дубликатов                                                                       ...
Примеры. Топология сети Интернет       До поиска дубликатов                                                               ...
Примеры. Люди                       Микоян                       Вагнер                                                   ...
Причины появления дубликатовОтчего появляются дубликаты?Основные причины:•    Ошибки ввода•    Пропущенные данные•    Изме...
АктуальностьПоиск дубликатовОсновные проблемы•  Большие данные (Big Data)•  Гетерогенность   −  Неструктурированные, «гряз...
Постановка задачиПоиск дубликатовНаиболее типичные задачи•  Поиск дубликатов (duplicate detection)   −  Группировка различ...
Постановка задачи                                                                                                         ...
Метрики Измерение точности поиска дубликатов •  Попарные (N(N-1)/2)    −  Точность, полнота, F1-мера (precision, recall, F...
РешениеТривиальное решениеПопарное сравнение экземпляров с использованием некоего порогаКак задача классификацииКлассифици...
Алгоритм решенияОбычно включает в себя следующие шаги•  Подготовка данных   −  Нормализация данных   −  Нормализация схемы...
Подготовка данных•  Нормализация схемы данных   −  Схема – «телефон» и «контактный телефон»   −  Сложные атрибуты - адрес ...
Сравнение атрибутов записей•  Для каждой пары записей вычисляются                                                         ...
Функция Levenshtein           Вычисляется близость i символов из s и j символов из t (от начала строк)                    ...
Levenshtein. ПримерLevenshteinСтоимости (берется минимальная из перечисленных)•    Совпадение: если символ совпадает, взят...
Функция Jaro-Winkler                    1 ⎛ sʹ′ t ʹ′ sʹ′ − τ ⎞      Jaro( s, t ) = ⎜ + +               ⎟              ...
Функции с множествами и векторами Сравниваемые строки разбиваются на словаJaccard, Dice                                   ...
Сравнение эффективности функций близостиСредние значения по 11 наборам данныхM. Bilenko, R. Mooney, W. Cohen, P. Ravikumar...
Сравнение записейЗадача: вычислить дистанцию между записями, представленными ввиде векторов значений функций близости•  Вз...
Сравнение эффективности дистанций         Использование машинного обучения и структуры записей24   © Copyright 2012 Hewlet...
Применение ограниченийВиды ограничений•  Транзитивность (для поиска дубликатов)   −  Если M1 и M2, а также M2 и M3 совпада...
Согласование данныхСогласованиеДано: попарные расстояния между записями в N источниках. Найти: совпадения смаксимальной су...
Группировка дубликатовДубликатыДано: попарные расстояния между записями. Найти: группы записей,представляющих один и тот ж...
МасштабируемостьПопарных сравнений может быть очень многоПример•  Население СПб 5*106 человек, сравнений будет ~12*1012. Е...
ЗаключениеПоиск дубликатов•  Очень важен этап нормализации данных•  Выбор функции близостиПроблемы поиска дубликатов•  Бол...
СсылкиБиблиотеки•  SecondString, http://secondstring.sourceforge.net/•  Simmetrics: http://sourceforge.net/projects/simmet...
Конец© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change with...
Upcoming SlideShare
Loading in...5
×

20120321 csseminar ulanov_duplicate

425

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
425
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20120321 csseminar ulanov_duplicate

  1. 1. Поиск дубликатов(Duplicate detection)Лекция для Computer Science клубaАлександр Уланов / 31 марта 2013HP Labs Russiaalexander.ulanov@hp.com© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  2. 2. СодержаниеПоиск дубликатов•  Введение•  Примеры•  Постановка задачи•  Алгоритмы2 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  3. 3. ВведениеПоиск дубликатовЗадача поиска и группировки или согласования различных экземпляров(реализаций) одного и того же объекта•  Различные способы упоминания одного и того же человека в тексте или БД•  Страницы с разными описаниями одних и тех же организаций•  Разные фотографии одних и тех же объектов•  ?3 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  4. 4. Поиск дубликатовПоиск дубликатов в поиске дубликатовЗадача имеет много различных названий Duplicate detection Coreference resolution Record linkage Matching Reference reconciliation Object consolidation Deduplication Merge/purge Entity clustering Hardening soft databases Doubles Entity resolution Entity linking4 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  5. 5. Примеры. Организации5 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  6. 6. Примеры. Социальная сеть До поиска дубликатов После поиска дубликатов Картман Кайл Эрик Картман Кайл Брофлофски Стэн Кенни Эрик Стэн Марш Кенни МакКормик С. Марш К. Брофлофски Сеть пригодна для анализа К. Маккормик6 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  7. 7. Примеры. Топология сети Интернет До поиска дубликатов После поиска дубликатов Router Router Router Router Router Router Router Router Router Router Router Уменьшена сложность графа7 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  8. 8. Примеры. Люди Микоян Вагнер *все фото из Википедии8 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  9. 9. Причины появления дубликатовОтчего появляются дубликаты?Основные причины:•  Ошибки ввода•  Пропущенные данные•  Измененные атрибуты•  Формат данных•  Аббревиатуры и сокращения•  Неоднозначность названий и атрибутов объектов9 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  10. 10. АктуальностьПоиск дубликатовОсновные проблемы•  Большие данные (Big Data)•  Гетерогенность −  Неструктурированные, «грязные», неполные данные −  Не просто сравнение фамилий и имен, а сравнение профайла в Фейсбуке со списками твитов в Твиттере и географических координат•  Согласование −  Не просто дубликаты, а отношения между экземплярами•  Различные приложения −  БД, социальные сети…10 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  11. 11. Постановка задачиПоиск дубликатовНаиболее типичные задачи•  Поиск дубликатов (duplicate detection) −  Группировка различных экземпляров одного и того же объекта•  Согласование записей (record linkage, entity linking) −  Связать записи, которые дублируются в разных источниках•  Ссылки (reference resolution) −  Сопоставить данные с внешними источникамиУсловия•  Каждый экземпляр может быть ассоциирован только с одним объектом•  В задаче согласования записей в одном из источников нет дубликатов•  Если два экземпляра идентичны, то они относятся к одному объекту11 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  12. 12. Постановка задачи Mpred MtrueОбозначения•  R – набор записей (экземпляров)•  H – набор отношений•  M – набор совпадений•  N – набор несовпадений•  E – набор объектов (в реальности)•  L – набор связей (в реальности)Проверка правильности решения•  Реальные (Mtrue, Ntrue, Etrue, Ltrue) сравниваются с (Mpred, Npred, Epred, Lpred), найденными алгоритмом12 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  13. 13. Метрики Измерение точности поиска дубликатов •  Попарные (N(N-1)/2) −  Точность, полнота, F1-мера (precision, recall, F1-measure) tp tp PR P= R= F1 = tp + fp tp + fn P+R −  Количество правильно найденных совпадающих пар •  Групповые (кластерные) Тот же кластер Другой кластер −  Чистота (purity) Тот же объект True positive (tp) False negative (fn) 1 purity(Ω, C ) = ∑ max ωk ∩ c j Другой объект False positive (fp) True negative (tn) N k j объекты Предполагается, что каждый кластер представляеткластеры 13 тот объект, реализаций которого в нем больше всего © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  14. 14. РешениеТривиальное решениеПопарное сравнение экземпляров с использованием некоего порогаКак задача классификацииКлассифицировать все пары записей в «совпадение» и «не совпадение»•  Несбалансированные данные – «не совпадений» намного больше•  Пары записей не независимы: −  (A,B)==match, (B,C)==match (A,C)==matchКак задача кластеризацииКластеризовать все записи так, чтобы кластеры соответствовали объектам•  В популярных алгоритмах кластеризации предполагается, что количество кластеров O(R)•  В задаче поиска дубликатов количество кластеров зачастую близко к R, так как много синглетонов (кластеров с одним элементом)14 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  15. 15. Алгоритм решенияОбычно включает в себя следующие шаги•  Подготовка данных −  Нормализация данных −  Нормализация схемы данных•  Попарное сравнение данных −  Сравнение атрибутов данных при помощи подходящих функций близости −  Близость данных – функция от близости их атрибутов•  Применение ограничений −  Транзитивность −  Связывание данных −  Группировка15 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  16. 16. Подготовка данных•  Нормализация схемы данных −  Схема – «телефон» и «контактный телефон» −  Сложные атрибуты - адрес Вложенные атрибуты −  −  Наборы атрибутов −  Сегментация данных•  Нормализация данных −  Строчные буквы, пробелы −  Исправление заранее известных ошибок −  Расшифровка аббревиатур −  Часто используются словари16 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  17. 17. Сравнение атрибутов записей•  Для каждой пары записей вычисляются •  Функции близости (distance functions) близости их атрибутов −  Булевская −  sim(A.phone,A.phone),sim(A.name,B.name),… −  Редактирования •  Levenshtein, Jaro-Winkler, Monge-Elkan −  Фонетическая •  Soundex −  На основе множеств •  Dice, Jaccard −  На основе векторов •  TF-IDF, softTF-IDF −  ПереводSecondString, http://secondstring.sourceforge.net/ •  АббревиатурыSimmetrics: http://sourceforge.net/projects/simmetrics/LingPipe, http://alias‐i.com/lingpipe/index.html17 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  18. 18. Функция Levenshtein Вычисляется близость i символов из s и j символов из t (от начала строк) " D s, t, i −1, j −1 si = t j $ ( ) если $ D ( s, t, i −1, j −1) +1 $ если производится замена t j на siD(s, t, i, j) = min # $ D ( s, t, i, j −1) +1 если производится вставка tj $ если производится удаление si $ D ( s, t, i −1, j ) +1 % 18 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  19. 19. Levenshtein. ПримерLevenshteinСтоимости (берется минимальная из перечисленных)•  Совпадение: если символ совпадает, взять стоимость из левой верхней диагонали•  Замена: если символ не совпадает, взять стоимость из левой верхней диагонали и добавить 1•  Вставка: взять стоимость слева и добавить 1 Модификации Levenstein•  Удаление: взять стоимость сверху и добавить 1 •  Needleman-Wunsch: разные стоимости •  Smith-Waterman: учет начала и конца t h i s •  Affine gap: последовательная вставка/ 0 1 2 3 4 удаление дешевле •  Monge-Elkan: Smith-Waterman+affine h 1 1 1 2 3 Дистанция a 2 2 2 2 3 s 3 3 3 3 219 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  20. 20. Функция Jaro-Winkler 1 ⎛ sʹ′ t ʹ′ sʹ′ − τ ⎞ Jaro( s, t ) = ⎜ + + ⎟ 3 ⎜ s ⎝ t sʹ′ ⎟ ⎠ max ( s , t ) d= −1 s ʹ′, t ʹ′ – последовательности общих символов 2 Два символа считаются общими, если b j = ai i − d ≤ j ≤ i + d τ – половина кол-ва перестановок в последовательности общих символов Алексей 1 ⎛ 7 7 7 − 1 ⎞ Алескей d = 2 τ =1 Jaro = ⎜ + + ⎟ ≈ 0.95 3 ⎝ 7 7 7 ⎠ JaroWinkler (s, t ) = Jaro(s, t ) − i ⋅ 0.1⋅ (1 − Jaro(s, t )) i – общий префикс (но не больше 4)20 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  21. 21. Функции с множествами и векторами Сравниваемые строки разбиваются на словаJaccard, Dice A∩ B Jaccard ( A, B ) = Отношение пересечения и объединения слов A∪ B 2 A∩B Dice(A, B) =TF-IDF A+BВычисление косинуса векторов с весами слов V ʹ′(w, S ) SimTFIDF ( S , T ) = ∑V (w, S )⋅V (w, T ) w∈S ∩T V ( w, S ) = ∑wʹ′V ʹ′(w, S ) 2 V ʹ′(w, S ) = log(TFw, S + 1)⋅ log(IDFw )Soft TF-IDF SimSoftTFIDF ( S , T ) = w∈CLOSE ∑(θV (w), S )⋅V (w, T )⋅ N (w, T ) , S ,T N ( w, T ) = max w∈T simCLOSE simCLOSE (w, v ) > θ21 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  22. 22. Сравнение эффективности функций близостиСредние значения по 11 наборам данныхM. Bilenko, R. Mooney, W. Cohen, P. Ravikumar and S. Fienberg. Adaptive Name Matching in InformationIntegration. IEEE Intelligent Systems, Vol. 18 Is 5, 200322 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  23. 23. Сравнение записейЗадача: вычислить дистанцию между записями, представленными ввиде векторов значений функций близости•  Взвешенная сумма (или среднее) дистанций атрибутов −  Необходимо определять порог•  Правила −  Необходимо писать правила•  Машинное обучение −  Необходим набор данных для обучения23 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  24. 24. Сравнение эффективности дистанций Использование машинного обучения и структуры записей24 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  25. 25. Применение ограниченийВиды ограничений•  Транзитивность (для поиска дубликатов) −  Если M1 и M2, а также M2 и M3 совпадают, то M1 и M3 тоже совпадают −  Следствие: если M1 и M2, а также M2 и M3 не совпадают, то M1 и M3 не могут совпадать•  Эксклюзивность (для согласования данных) −  Если M1 и M2 совпадают, то M2 и M3 не могут совпадать −  Следствие: M3 может совпадать с какой-либо другой записью M4•  Функциональная зависимость (для очистки данных) −  Если M1 и M2 совпадают, то M3 и M4 тоже совпадают −  Следствие: как в транзитивности•  В зависимости от данных25 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  26. 26. Согласование данныхСогласованиеДано: попарные расстояния между записями в N источниках. Найти: совпадения смаксимальной суммой весов•  NP-полная задача, используются субоптимальные алгоритмы на основе попарно несмежных ребер в графе26 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  27. 27. Группировка дубликатовДубликатыДано: попарные расстояния между записями. Найти: группы записей,представляющих один и тот же объект•  Попарное сравнение может дать неполноценный результат (не выполняется транзитивность)•  Иногда транзитивность может быть вредной•  Кластеризация −  Иерархическая [Bilenko et al, ICDM 05] −  К-ближайщих соседей [Chaudhuri et al, ICDE 05]•  Проблема транзитивности остается•  Сложность определения шага остановки кластеризации27 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  28. 28. МасштабируемостьПопарных сравнений может быть очень многоПример•  Население СПб 5*106 человек, сравнений будет ~12*1012. Если одно сравнение занимает 1 мс, то весь процесс займет несколько сотен летВозможное решение•  Предварительная разбивка на наборы данных, между которыми сравнение не будет произведено [McCallum et al., SIGKDD 2000]•  Простая дистанция28 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  29. 29. ЗаключениеПоиск дубликатов•  Очень важен этап нормализации данных•  Выбор функции близостиПроблемы поиска дубликатов•  Большие данные (Big Data)•  Гетерогенность данных•  МасштабируемостьАктуальные задачи•  Согласование аккаунтов в социальных сетях (Twitter, Facebook, Foursquare)•  Согласование данных из различных справочников (Wikipedia, Google Places, Lonely Planet)29 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  30. 30. СсылкиБиблиотеки•  SecondString, http://secondstring.sourceforge.net/•  Simmetrics: http://sourceforge.net/projects/simmetrics/•  LingPipe, http://alias‐i.com/lingpipe/index.htmlЛитература•  M. Bilenko, R. Mooney, W. Cohen, P. Ravikumar and S. Fienberg. Adaptive Name Matching in Information Integration. IEEE Intelligent Systems, Vol. 18 Is 5, 2003 (практические рекомендации)•  L. Getoor, A. Machanavajjhala. VLDB 2012 Tutorial on Entity Resolution•  Elmagarmid et al., Duplicate Record Detection: A Survey. IEEE Transactions on Knowledge and Data Engineering, Vol. 19, No. 1. (January 2007) (все, что надо знать о поиске дубликатов на 16 страницах текста)•  P. Christen. Data Matching Springer 2012 (большая книга)30 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  31. 31. Конец© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×