Contenu connexe
Plus de Computer Science Club (20)
20120321 csseminar ulanov_duplicate
- 1. Поиск дубликатов
(Duplicate detection)
Лекция для Computer Science клубa
Александр Уланов / 31 марта 2013
HP Labs Russia
alexander.ulanov@hp.com
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 2. Содержание
Поиск дубликатов
• Введение
• Примеры
• Постановка задачи
• Алгоритмы
2 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 3. Введение
Поиск дубликатов
Задача поиска и группировки или согласования различных экземпляров
(реализаций) одного и того же объекта
• Различные способы упоминания одного и того же человека в тексте или БД
• Страницы с разными описаниями одних и тех же организаций
• Разные фотографии одних и тех же объектов
• ?
3 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 4. Поиск дубликатов
Поиск дубликатов в поиске дубликатов
Задача имеет много различных названий Duplicate detection
Coreference resolution Record linkage
Matching Reference reconciliation Object consolidation
Deduplication Merge/purge Entity clustering
Hardening soft databases Doubles Entity resolution
Entity linking
4 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 5. Примеры. Организации
5 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 6. Примеры. Социальная сеть
До поиска дубликатов После поиска дубликатов
Картман Кайл
Эрик Картман Кайл Брофлофски
Стэн
Кенни Эрик
Стэн Марш Кенни МакКормик
С. Марш К. Брофлофски
Сеть пригодна для анализа
К. Маккормик
6 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 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 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 9. Причины появления дубликатов
Отчего появляются дубликаты?
Основные причины:
• Ошибки ввода
• Пропущенные данные
• Измененные атрибуты
• Формат данных
• Аббревиатуры и сокращения
• Неоднозначность названий и атрибутов объектов
9 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 10. Актуальность
Поиск дубликатов
Основные проблемы
• Большие данные (Big Data)
• Гетерогенность
− Неструктурированные, «грязные», неполные данные
− Не просто сравнение фамилий и имен, а сравнение профайла в Фейсбуке со списками
твитов в Твиттере и географических координат
• Согласование
− Не просто дубликаты, а отношения между экземплярами
• Различные приложения
− БД, социальные сети…
10 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 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. Постановка задачи
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. Метрики
Измерение точности поиска дубликатов
• Попарные (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. Решение
Тривиальное решение
Попарное сравнение экземпляров с использованием некоего порога
Как задача классификации
Классифицировать все пары записей в «совпадение» и «не совпадение»
• Несбалансированные данные – «не совпадений» намного больше
• Пары записей не независимы:
− (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 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 16. Подготовка данных
• Нормализация схемы данных
− Схема – «телефон» и «контактный телефон»
− Сложные атрибуты - адрес
Вложенные атрибуты
−
− Наборы атрибутов
− Сегментация данных
• Нормализация данных
− Строчные буквы, пробелы
− Исправление заранее известных ошибок
− Расшифровка аббревиатур
− Часто используются словари
16 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 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.html
17 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 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 на si
D(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. 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 2
19 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 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. Функции с множествами и векторами
Сравниваемые строки разбиваются на слова
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. Сравнение эффективности функций близости
Средние значения по 11 наборам данных
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
22 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 23. Сравнение записей
Задача: вычислить дистанцию между записями, представленными в
виде векторов значений функций близости
• Взвешенная сумма (или среднее) дистанций атрибутов
− Необходимо определять порог
• Правила
− Необходимо писать правила
• Машинное обучение
− Необходим набор данных для обучения
23 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 24. Сравнение эффективности дистанций
Использование машинного обучения и структуры записей
24 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 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. Согласование данных
Согласование
Дано: попарные расстояния между записями в N источниках. Найти: совпадения с
максимальной суммой весов
• NP-полная задача, используются субоптимальные алгоритмы на основе попарно несмежных
ребер в графе
26 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 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. Масштабируемость
Попарных сравнений может быть очень много
Пример
• Население СПб 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. Заключение
Поиск дубликатов
• Очень важен этап нормализации данных
• Выбор функции близости
Проблемы поиска дубликатов
• Большие данные (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. Ссылки
Библиотеки
• 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. Конец
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.