65
Big Data’13 Лекция IX: поиск похожих документов Дмитрий Барашев [email protected] Computer Science Center 18 апреля 2013 1/42

2013 04 18_big_data_lecture_09

Embed Size (px)

Citation preview

Page 1: 2013 04 18_big_data_lecture_09

Big Data’13Лекция IX: поиск похожих документов

Дмитрий Барашев[email protected]

Computer Science Center

18 апреля 2013

1/42

Page 2: 2013 04 18_big_data_lecture_09

Этот материал распространяется под лицензией

Creative Commons ”Attribution - Share Alike” 3.0http://creativecommons.org/licenses/by-sa/3.0/us/deed.ru

2/42

Page 3: 2013 04 18_big_data_lecture_09

Сегодня в программе

Схожесть объектов

Покрытие текста перекрывающимися n-граммами

Понижение размерности множества

Пространственно чувствительное хеширование

3/42

Page 4: 2013 04 18_big_data_lecture_09

Сегодня в программе

Схожесть объектов

Покрытие текста перекрывающимися n-граммами

Понижение размерности множества

Пространственно чувствительное хеширование

4/42

Page 5: 2013 04 18_big_data_lecture_09

О задаче

I Часто нужно найти «почти похожие» объекты

I Что такое «похожие»?I Что такое «почти»?I Как быть, если много признаков?I Как быть, если много объектов?

5/42

Page 6: 2013 04 18_big_data_lecture_09

О задаче

I Часто нужно найти «почти похожие» объектыI Что такое «похожие»?I Что такое «почти»?I Как быть, если много признаков?I Как быть, если много объектов?

5/42

Page 7: 2013 04 18_big_data_lecture_09

Схожесть множеств: коэффициент Жаккара

I Для абстрактных множеств есть простая мерасхожести: коэффициент Жаккара

J(A,B) = |A ∩ B||A ∪ B|

I Очевидно, J(A,B) = 0 если множества непересекаются и J(A,B) = 1 если они равны

6/42

Page 8: 2013 04 18_big_data_lecture_09

Возможные применения к текстовымдокументам

I Выявление плагиата. Плагиатор может:I переставлять словаI заменять некоторые слова на синонимы(например белый шоколад на российскаяговядина)

I копировать, наконец, не бессовестно всё, а лишьчастями!

I но это его не спасетI Страницы-зеркала.

I почти идентичны, но немного отличаютсяI поисковики предпочли бы показывать толькоодну (например с наибольшим статическимрангом)

I то же самое применимо к распространениюновостей по новостным сайтам

I Поиск дубликатов в кодеI DRY

7/42

Page 9: 2013 04 18_big_data_lecture_09

Возможные применения к текстовымдокументам

I Выявление плагиата. Плагиатор может:I переставлять словаI заменять некоторые слова на синонимы(например белый шоколад на российскаяговядина)

I копировать, наконец, не бессовестно всё, а лишьчастями!

I но это его не спасет

I Страницы-зеркала.I почти идентичны, но немного отличаютсяI поисковики предпочли бы показывать толькоодну (например с наибольшим статическимрангом)

I то же самое применимо к распространениюновостей по новостным сайтам

I Поиск дубликатов в кодеI DRY

7/42

Page 10: 2013 04 18_big_data_lecture_09

Возможные применения к текстовымдокументам

I Выявление плагиата. Плагиатор может:I переставлять словаI заменять некоторые слова на синонимы(например белый шоколад на российскаяговядина)

I копировать, наконец, не бессовестно всё, а лишьчастями!

I но это его не спасетI Страницы-зеркала.

I почти идентичны, но немного отличаютсяI поисковики предпочли бы показывать толькоодну (например с наибольшим статическимрангом)

I то же самое применимо к распространениюновостей по новостным сайтам

I Поиск дубликатов в кодеI DRY

7/42

Page 11: 2013 04 18_big_data_lecture_09

Возможные применения к текстовымдокументам

I Выявление плагиата. Плагиатор может:I переставлять словаI заменять некоторые слова на синонимы(например белый шоколад на российскаяговядина)

I копировать, наконец, не бессовестно всё, а лишьчастями!

I но это его не спасетI Страницы-зеркала.

I почти идентичны, но немного отличаютсяI поисковики предпочли бы показывать толькоодну (например с наибольшим статическимрангом)

I то же самое применимо к распространениюновостей по новостным сайтам

I Поиск дубликатов в кодеI DRY

7/42

Page 12: 2013 04 18_big_data_lecture_09

Вычисление коэффициента Жаккара

I Наивный способ: рассмотреть декартовопроизведение множеств

I если множеств много, и большинство непересекаются, то КПД невелик

I Оставшаяся часть лекции посвященаповышению КПД

8/42

Page 13: 2013 04 18_big_data_lecture_09

Вычисление в три итерации Map-Reduce

I На первой итерации построим спискивхождений для каждого элемента:

map(S) → (tj,S) ∀tj ∈ S

9/42

Page 14: 2013 04 18_big_data_lecture_09

Вычисление в три итерации Map-Reduce

I На второй итерации мап построит декартовопроизведение документов для каждого списка,а свертка для каждой пары документов снепустым пересечением посчитает размерпересечения

map(list(t)) → (Si,Sj) ∀Si,Sj ∈ list(t)

reduce(Sk, (Sj, cj)) → (Sk,Sj,∑cj,

∑ck)

I В результате получим для каждого множествасписок пересекающихся множеств и размерпересечения:

10/42

Page 15: 2013 04 18_big_data_lecture_09

Вычисление в три итерации Map-Reduce

I На опциональной третьей итерации надо длякаждой пары поделить размер пересечения наразмер объединения

11/42

Page 16: 2013 04 18_big_data_lecture_09

Коэффициент Жаккара для мультимножеств

I Вычисляется так же, с учетом семантикиопераций

I |A| =∑1A(x)

I 1A∩B(x) =min(1A(x),1B(x))I 1A∪B(x) =max(1A(x),1B(x))

I другой вариант: 1A]B(x) = 1A(x) + 1B(x)I где 1A(x) – кардинальность x в A

J({a,b, c, c}, {a,a, c, c, c, c}) = |{a, c, c}||{a,a,b, c, c, c, c}| =

3

7

12/42

Page 17: 2013 04 18_big_data_lecture_09

Сегодня в программе

Схожесть объектов

Покрытие текста перекрывающимися n-граммами

Понижение размерности множества

Пространственно чувствительное хеширование

13/42

Page 18: 2013 04 18_big_data_lecture_09

Элементы текстового документа

I Символы? а, б, в, …

I скорее всего тогда все документы будут оченьпохожи

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

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

14/42

Page 19: 2013 04 18_big_data_lecture_09

Элементы текстового документа

I Символы? а, б, в, …I скорее всего тогда все документы будут оченьпохожи

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

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

14/42

Page 20: 2013 04 18_big_data_lecture_09

Элементы текстового документа

I Символы? а, б, в, …I скорее всего тогда все документы будут оченьпохожи

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

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

14/42

Page 21: 2013 04 18_big_data_lecture_09

Элементы текстового документа

I Символьные n-граммы?съ, ъе, еш, шь, ещ, щё, …

I в общем-то неплохо, осталось выбрать n

I если n мало то разные документы все равнобудут похожи, учитывая неравную вероятностьпоявления n-грамм

I если n велико то наоборот, вероятностьвстретить одинаковые n-граммы в разныхдокументах резко падает

I хотя конечно остается ненулевой: слово – этотоже n-грамма и одинаковые слова в разныхдокументах точно есть

15/42

Page 22: 2013 04 18_big_data_lecture_09

Элементы текстового документаI Символьные n-граммы?съ, ъе, еш, шь, ещ, щё, …

I в общем-то неплохо, осталось выбрать nI если n мало то разные документы все равнобудут похожи, учитывая неравную вероятностьпоявления n-грамм

I если n велико то наоборот, вероятностьвстретить одинаковые n-граммы в разныхдокументах резко падает

I хотя конечно остается ненулевой: слово – этотоже n-грамма и одинаковые слова в разныхдокументах точно есть

15/42

Page 23: 2013 04 18_big_data_lecture_09

Элементы текстового документа

I Символьные n-граммы?съ, ъе, еш, шь, ещ, щё, …

I в общем-то неплохо, осталось выбрать nI если n мало то разные документы все равнобудут похожи, учитывая неравную вероятностьпоявления n-грамм

I если n велико то наоборот, вероятностьвстретить одинаковые n-граммы в разныхдокументах резко падает

I хотя конечно остается ненулевой: слово – этотоже n-грамма и одинаковые слова в разныхдокументах точно есть

15/42

Page 24: 2013 04 18_big_data_lecture_09

Элементы текстового документа

I Символьные n-граммы?съ, ъе, еш, шь, ещ, щё, …

I в общем-то неплохо, осталось выбрать nI если n мало то разные документы все равнобудут похожи, учитывая неравную вероятностьпоявления n-грамм

I если n велико то наоборот, вероятностьвстретить одинаковые n-граммы в разныхдокументах резко падает

I хотя конечно остается ненулевой: слово – этотоже n-грамма и одинаковые слова в разныхдокументах точно есть

15/42

Page 25: 2013 04 18_big_data_lecture_09

ShinglingI Процесс превращения текста вперекрывающиеся n-граммы называетсяshingling

I Shingle - дранка, деревянная дощечка, сперекрытиями укладываемая на кровлю.

I Shingling – замечательная метафора без точногокороткого перевода

16/42

Page 26: 2013 04 18_big_data_lecture_09

Кольчужное покрытие текста

I Наш ответ супостатам

17/42

Page 27: 2013 04 18_big_data_lecture_09

Кстати о словах

I Слово – прекрасная лексическая единица

I Почему бы не делать n-граммы из слов?I съешь ещё, ещё этих, этих мягких, мягкихфранцузских

I Пространство становится очень большим, нозато смысла появляется больше

I Можно даже брать нормализованныесловоформы (stemming)

I и даже, возможно, синонимы

18/42

Page 28: 2013 04 18_big_data_lecture_09

Кстати о словах

I Слово – прекрасная лексическая единицаI Почему бы не делать n-граммы из слов?I съешь ещё, ещё этих, этих мягких, мягкихфранцузских

I Пространство становится очень большим, нозато смысла появляется больше

I Можно даже брать нормализованныесловоформы (stemming)

I и даже, возможно, синонимы

18/42

Page 29: 2013 04 18_big_data_lecture_09

Кстати о словах

I Слово – прекрасная лексическая единицаI Почему бы не делать n-граммы из слов?I съешь ещё, ещё этих, этих мягких, мягкихфранцузских

I Пространство становится очень большим, нозато смысла появляется больше

I Можно даже брать нормализованныесловоформы (stemming)

I и даже, возможно, синонимы

18/42

Page 30: 2013 04 18_big_data_lecture_09

И кстати о смысле

I Покрытие не зря кольчужное

I Триграммы «желтая подводная лодка» и «встепях Украины» вполне обычные

I а вот дополнение их связующими подводнаялодка в, лодка в степях сделают документдовольно уникальным и повысят точностьопределения схожести

19/42

Page 31: 2013 04 18_big_data_lecture_09

И кстати о смысле

I Покрытие не зря кольчужноеI Триграммы «желтая подводная лодка» и «встепях Украины» вполне обычные

I а вот дополнение их связующими подводнаялодка в, лодка в степях сделают документдовольно уникальным и повысят точностьопределения схожести

19/42

Page 32: 2013 04 18_big_data_lecture_09

Снижение объемов данных

I Размер кольчужного покрытия равен O(N) где N- количество элементов

I Делаем символьные 9-граммы – получаем 9×NI Можно ли уменьшить количество данных?

20/42

Page 33: 2013 04 18_big_data_lecture_09

Снижение объемов данных

I Будем хешировать 9-граммы в int32I В чем разница между хешированными9-граммами и 4-граммами?

I 4-граммы распределены неравномерно и будутзаполнять пространство int32 неравномерно

I 9-граммы тоже не равновероятны, но хеш их,предположительно, равномерно разбросает по 4байтам

21/42

Page 34: 2013 04 18_big_data_lecture_09

Снижение объемов данных

I Будем хешировать 9-граммы в int32I В чем разница между хешированными9-граммами и 4-граммами?

I 4-граммы распределены неравномерно и будутзаполнять пространство int32 неравномерно

I 9-граммы тоже не равновероятны, но хеш их,предположительно, равномерно разбросает по 4байтам

21/42

Page 35: 2013 04 18_big_data_lecture_09

Построение предвзятого покрытия

I Часто искомые дубликаты окружены горамимусора

I реклама, навигация, копирайты, вот это все

I Если нам что-то известно про структуруосмысленного текста то можно это знаниеиспользовать

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

I а уж в каментах как кому в голову взбредет

22/42

Page 36: 2013 04 18_big_data_lecture_09

Построение предвзятого покрытия

I Часто искомые дубликаты окружены горамимусора

I реклама, навигация, копирайты, вот это всеI Если нам что-то известно про структуруосмысленного текста то можно это знаниеиспользовать

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

I а уж в каментах как кому в голову взбредет

22/42

Page 37: 2013 04 18_big_data_lecture_09

Построение предвзятого покрытия

I Часто искомые дубликаты окружены горамимусора

I реклама, навигация, копирайты, вот это всеI Если нам что-то известно про структуруосмысленного текста то можно это знаниеиспользовать

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

I а уж в каментах как кому в голову взбредет

22/42

Page 38: 2013 04 18_big_data_lecture_09

Построение предвзятого покрытия

I Часто искомые дубликаты окружены горамимусора

I реклама, навигация, копирайты, вот это всеI Если нам что-то известно про структуруосмысленного текста то можно это знаниеиспользовать

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

I а уж в каментах как кому в голову взбредет

22/42

Page 39: 2013 04 18_big_data_lecture_09

Сегодня в программе

Схожесть объектов

Покрытие текста перекрывающимися n-граммами

Понижение размерности множества

Пространственно чувствительное хеширование

23/42

Page 40: 2013 04 18_big_data_lecture_09

Проблема

I Как ни крути, у документов может быть оченьмного признаков

I Рассматривать их все – очень дорогоI Хочется как-нибудь уменьшить их количествоI Но так чтоб сохранить возможность правильнопосчитать коэффициент Жаккара

24/42

Page 41: 2013 04 18_big_data_lecture_09

Min-Hash

I Рассмотрим характеристическую матрицунаших множеств.

S1 S2 S3 S4

a 1 0 0 1

b 0 0 1 0

c 0 1 0 1

d 1 0 1 1

e 0 0 1 0

25/42

Page 42: 2013 04 18_big_data_lecture_09

Min-HashI Рассмотрим хеш-функцию minhashp(S) котораядля перестановки строк p и множества S вернетid первой сверху строки, где в столбце Sненулевое значение.

S1 S2 S3 S4

a 1 0 0 1

b 0 0 1 0

c 0 1 0 1

d 1 0 1 1

e 0 0 1 0

minhashbedac d c b dminhashcebda d c e cminhashadbec a c d a

26/42

Page 43: 2013 04 18_big_data_lecture_09

Min-Hash и коэффициент ЖаккараI Для случайной перестановки p

P(minhashp(Si) =minhashp(Sj)) = J(Si,Sj)

I Для двух множеств J(A,b) = xx+y где x – число

строк с единицами в обоих множествах и y –число строк с единицей в одном из множеств

I В то же время, если мы идя сверху по строкамнаткнемся на строку x то значитminhashp(A) =minhashp(B). Если наткнемся на yзначит точно minhashp(A) 6=minhashp(B)

I Вероятность наткнуться на строку x равна

x ∗ (x− 1 + y)!(x+ y)! =

xx+ y

27/42

Page 44: 2013 04 18_big_data_lecture_09

Вероятность вероятностью…

I …а одна перестановка нам не поможетI Их надо сотни и они нужны быстроI Вычислим достаточно большое количествоminhash функций с разными перестановками изапишем результат в новую матрицу сигнатур

I Матрицу сигнатур и будем использовать длявычисления коэффициента Жаккара:отношение количества одинаковых значений кдлине сигнатуры

28/42

Page 45: 2013 04 18_big_data_lecture_09

Снова примерI Уже посчитанные сигнатуры

S1 S2 S3 S4

a 1 0 0 1

b 0 0 1 0

c 0 1 0 1

d 1 0 1 1

e 0 0 1 0

minhashbedac d c b dminhashcebda d c e cminhashadbec a c d a

I Истинный J(S1,S4) = 2/3. Вычисленный посигнатурам, внезапно, тоже 2/3

I Истинный J(S3,S4) = 1/5. Вычисленный посигнатурам: 0

29/42

Page 46: 2013 04 18_big_data_lecture_09

Перестановки перестановками…

I …но на практике их генерировать дороговатоI От перестановки нужна только одна строка,первая где значение столбца равно 1

I Можно заменить перестановку случайнойхеш-функцией hi : r→ 1 . . .k где r - номер строки,k - общее количество строк

I Для каждой ячейки матрицы сигнатур (i, c)значением будет minr {hi(r) : (r, c) = 1}

30/42

Page 47: 2013 04 18_big_data_lecture_09

Сегодня в программе

Схожесть объектов

Покрытие текста перекрывающимися n-граммами

Понижение размерности множества

Пространственно чувствительное хеширование

31/42

Page 48: 2013 04 18_big_data_lecture_09

Точная попарная схожесть стоит дорого

I Пусть у нас 1млн. документов и для каждогопосчитана сигнатура из 250 элементов = 1к

I На хранение матрицы сигнатур требуется 1Gпамяти

I Но попарных сравнений будет 1012/2

I По микросекунде (10−6) на каждое – и за 106/2секунд справимся. Это больше 5 суток.

I На 1000 машинах это займет около 10 минут

32/42

Page 49: 2013 04 18_big_data_lecture_09

Может нам не нужны все коэффициенты

I Может мы не против иногда пропустить парупохожих документов

I Или хотим искать только очень похожие, анизкие значения коэффициента Жаккара намнеинтересны

33/42

Page 50: 2013 04 18_big_data_lecture_09

Пространственно чувствительноехеширование

I Locality Sensitive HashingI Метод хеширования, увеличивающийвероятность коллизии объектов, которые имеютшансы быть схожими

I выбрать несколько хеш-функцийI каждую применить к исходным объектамI объекты, попавшие в одну корзину объявитькандидатами в близнецы

I объекты, попавшие в разные корзины, объявитьнепохожими

I Бывают false positive, бывают false negative

34/42

Page 51: 2013 04 18_big_data_lecture_09

Выбор хеш функций для матрицы сигнатур

I Поделим матрицу на b полос по r строкI К каждому r-столбцу в полосе i применимхеш-функцию hi : (r, 1) → ki−1 . . .ki где k0 . . .kn –большой интервал корзин, разбитый на nнепересекающихся интервалов

I Сама хеш-функция может быть одной и той же,лишь бы разные полосы попадали в разныекорзины

35/42

Page 52: 2013 04 18_big_data_lecture_09

Критерий отбора кандидатов

I Если хоть одна хеш-функцияопределила два r-столбца в однукорзину то они кандидаты вблизнецы

ORLY o_0 ?

36/42

Page 53: 2013 04 18_big_data_lecture_09

Критерий отбора кандидатов

I Если хоть одна хеш-функцияопределила два r-столбца в однукорзину то они кандидаты вблизнецы

ORLY o_0 ?

36/42

Page 54: 2013 04 18_big_data_lecture_09

Анализ вероятностиI Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s

I Вероятность того, что значения совпадут вовсех строках полосы равна sr

I для s = 0.8, r = 5 это 0.32768I Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr

I для s = 0.8, r = 5 это 0.67232I Вероятность того, что это произойдет в каждойполосе равна (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.00035I Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.99965

37/42

Page 55: 2013 04 18_big_data_lecture_09

Анализ вероятностиI Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s

I Вероятность того, что значения совпадут вовсех строках полосы равна sr

I для s = 0.8, r = 5 это 0.32768

I Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr

I для s = 0.8, r = 5 это 0.67232I Вероятность того, что это произойдет в каждойполосе равна (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.00035I Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.99965

37/42

Page 56: 2013 04 18_big_data_lecture_09

Анализ вероятностиI Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s

I Вероятность того, что значения совпадут вовсех строках полосы равна sr

I для s = 0.8, r = 5 это 0.32768I Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr

I для s = 0.8, r = 5 это 0.67232

I Вероятность того, что это произойдет в каждойполосе равна (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.00035I Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.99965

37/42

Page 57: 2013 04 18_big_data_lecture_09

Анализ вероятностиI Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s

I Вероятность того, что значения совпадут вовсех строках полосы равна sr

I для s = 0.8, r = 5 это 0.32768I Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr

I для s = 0.8, r = 5 это 0.67232I Вероятность того, что это произойдет в каждойполосе равна (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.00035

I Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.99965

37/42

Page 58: 2013 04 18_big_data_lecture_09

Анализ вероятностиI Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s

I Вероятность того, что значения совпадут вовсех строках полосы равна sr

I для s = 0.8, r = 5 это 0.32768I Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr

I для s = 0.8, r = 5 это 0.67232I Вероятность того, что это произойдет в каждойполосе равна (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.00035I Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b

I для s = 0.8, r = 5,b = 20 это 0.99965

37/42

Page 59: 2013 04 18_big_data_lecture_09

Другие значения коэффициента

I При s = 0.2 и тех же r = 5,b = 20 вероятностьсовпадения хотя бы в одной полосе равна

I 0.00639I При s = 0.5 вероятность совпадения хотя бы водной полосе равна 0.47006

38/42

Page 60: 2013 04 18_big_data_lecture_09

Другие значения коэффициента

I При s = 0.2 и тех же r = 5,b = 20 вероятностьсовпадения хотя бы в одной полосе равна

I 0.00639

I При s = 0.5 вероятность совпадения хотя бы водной полосе равна 0.47006

38/42

Page 61: 2013 04 18_big_data_lecture_09

Другие значения коэффициента

I При s = 0.2 и тех же r = 5,b = 20 вероятностьсовпадения хотя бы в одной полосе равна

I 0.00639I При s = 0.5 вероятность совпадения хотя бы водной полосе равна 0.47006

38/42

Page 62: 2013 04 18_big_data_lecture_09

S-curve

39/42

Page 63: 2013 04 18_big_data_lecture_09

Занавес

I Приблизительный поиск похожих текстовыхдокументов1. Определить природу (символы/слова и размер kкольчужного покрытия

2. Сгенерировать k-граммы и список вхожденийдля каждой k-граммы

3. Выбрать длину minhash сигнатур исгенерировать матрицу сигнатур

4. Разбить матрицу на горизонтальные полосы,выбрав r и b и применить LSH

5. Для кандидатов в близнецы посчитатькоэффициент Жаккара

I Практически каждый шаг можно выполнить припомощи Map-Reduce

40/42

Page 64: 2013 04 18_big_data_lecture_09

Эта презентация сверстана в

Pa

peeria1LTEX в вашем браузере

papeeria.com

41/42

Page 65: 2013 04 18_big_data_lecture_09

Литература I

Anand Rajaraman and Jeffrey David Ullman.Mining of massive datasets.Cambridge University Press, 2011.

42/42