Post on 18-Jul-2015
Big Data’15Лекция VIII: поиск похожих документов
Дмитрий Барашевbigdata@barashev.net
Computer Science Center
7 апреля 2015
1/48
Этот материал распространяется под лицензией
Creative Commons ”Attribution - Share Alike” 3.0http://creativecommons.org/licenses/by-sa/3.0/us/deed.ru
сверстано в онлайн LATEX редакторе
Pa
peeriapapeeria.com
2/48
Сегодня в программе
Схожесть объектов
Покрытие текста перекрывающимися n-граммами
Понижение размерности множества
Пространственно чувствительное хеширование
3/48
Сегодня в программе
Схожесть объектов
Покрытие текста перекрывающимися n-граммами
Понижение размерности множества
Пространственно чувствительное хеширование
4/48
О задаче
▶ Часто нужно найти «почти похожие» объекты
▶ Что такое «похожие»?▶ Что такое «почти»?▶ Как быть, если много признаков?▶ Как быть, если много объектов?
5/48
О задаче
▶ Часто нужно найти «почти похожие» объекты▶ Что такое «похожие»?▶ Что такое «почти»?▶ Как быть, если много признаков?▶ Как быть, если много объектов?
5/48
Схожесть множеств: коэффициентЖаккара
▶ Для абстрактных множеств есть простая мерасхожести: коэффициент Жаккара
J(A,B) = |A ∩ B||A ∪ B|
▶ Очевидно, J(A,B) = 0 если множества непересекаются и J(A,B) = 1 если они равны
6/48
Возможные применения к текстовымдокументам
▶ Выявление плагиата. Плагиатор может:▶ переставлять слова▶ заменять некоторые слова на синонимы(например белый шоколад на российскаяговядина)
▶ копировать, наконец, не бессовестно всё, а лишьчастями!
▶ но это его не спасет▶ Страницы-зеркала.
▶ почти идентичны, но немного отличаются▶ поисковики предпочли бы показывать толькоодну (например с наибольшим статическимрангом)
▶ то же самое применимо к распространениюновостей по новостным сайтам
▶ Поиск дубликатов в коде▶ DRY
7/48
Возможные применения к текстовымдокументам
▶ Выявление плагиата. Плагиатор может:▶ переставлять слова▶ заменять некоторые слова на синонимы(например белый шоколад на российскаяговядина)
▶ копировать, наконец, не бессовестно всё, а лишьчастями!
▶ но это его не спасет
▶ Страницы-зеркала.▶ почти идентичны, но немного отличаются▶ поисковики предпочли бы показывать толькоодну (например с наибольшим статическимрангом)
▶ то же самое применимо к распространениюновостей по новостным сайтам
▶ Поиск дубликатов в коде▶ DRY
7/48
Возможные применения к текстовымдокументам
▶ Выявление плагиата. Плагиатор может:▶ переставлять слова▶ заменять некоторые слова на синонимы(например белый шоколад на российскаяговядина)
▶ копировать, наконец, не бессовестно всё, а лишьчастями!
▶ но это его не спасет▶ Страницы-зеркала.
▶ почти идентичны, но немного отличаются▶ поисковики предпочли бы показывать толькоодну (например с наибольшим статическимрангом)
▶ то же самое применимо к распространениюновостей по новостным сайтам
▶ Поиск дубликатов в коде▶ DRY
7/48
Возможные применения к текстовымдокументам
▶ Выявление плагиата. Плагиатор может:▶ переставлять слова▶ заменять некоторые слова на синонимы(например белый шоколад на российскаяговядина)
▶ копировать, наконец, не бессовестно всё, а лишьчастями!
▶ но это его не спасет▶ Страницы-зеркала.
▶ почти идентичны, но немного отличаются▶ поисковики предпочли бы показывать толькоодну (например с наибольшим статическимрангом)
▶ то же самое применимо к распространениюновостей по новостным сайтам
▶ Поиск дубликатов в коде▶ DRY
7/48
Вычисление коэффициента Жаккара
▶ Наивный способ: рассмотреть декартовопроизведение множеств
▶ если множеств много, и большинство непересекаются, то КПД невелик
▶ Оставшаяся часть лекции посвященаповышению КПД
8/48
Вычисление в три итерации Map-Reduce
▶ На первой итерации построим спискивхождений для каждого элемента:
map(S) → (tj,S) ∀tj ∈ S
9/48
Вычисление в три итерации Map-Reduce
▶ На второй итерации мап построит декартовопроизведение документов для каждого списка,а свертка для каждой пары документов снепустым пересечением посчитает размерпересечения
map(list(t)) → (Si,Sj) ∀Si,Sj ∈ list(t)
reduce(Sk,Ubag = {Sj}) → (Sk, {Sj : 1Ubag(Sj)})
▶ В результате получим для каждого множествасписок пересекающихся множеств и размерпересечения
10/48
Вычисление в три итерации Map-Reduce
▶ На третьей итерации надо посчитать размеркаждого исходного множества и посчитатькоэффициент Жаккара:
J(S1,S2) =|S1 ∩ S2|
|S1|+ |S2| − |S1 ∩ S2|
11/48
Коэффициент Жаккара длямультимножеств
▶ Вычисляется так же, с учетом семантикиопераций
▶ |A| =∑1A(x)
▶ 1A∩B(x) =min(1A(x),1B(x))▶ 1A∪B(x) =max(1A(x),1B(x))
▶ другой вариант: 1A⊎B(x) = 1A(x) + 1B(x)▶ где 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/48
Сегодня в программе
Схожесть объектов
Покрытие текста перекрывающимися n-граммами
Понижение размерности множества
Пространственно чувствительное хеширование
13/48
Элементы текстового документа
▶ Для вычисления коэффициента Жаккара нужноопределить «элемент»
▶ Символы? а, б, в, …
▶ скорее всего тогда все документы будут оченьпохожи
▶ съешь ещё этих мягких французских булок давыпей же чаю
▶ южно-эфиопский грач увёл мышь за хобот насъезд ящериц
14/48
Элементы текстового документа
▶ Для вычисления коэффициента Жаккара нужноопределить «элемент»
▶ Символы? а, б, в, …▶ скорее всего тогда все документы будут оченьпохожи
▶ съешь ещё этих мягких французских булок давыпей же чаю
▶ южно-эфиопский грач увёл мышь за хобот насъезд ящериц
14/48
Элементы текстового документа
▶ Для вычисления коэффициента Жаккара нужноопределить «элемент»
▶ Символы? а, б, в, …▶ скорее всего тогда все документы будут оченьпохожи
▶ съешь ещё этих мягких французских булок давыпей же чаю
▶ южно-эфиопский грач увёл мышь за хобот насъезд ящериц
14/48
Элементы текстового документа
▶ Символьные n-граммы?съ, ъе, еш, шь, ещ, щё, …
▶ в общем-то неплохо, осталось выбрать n
▶ если n мало то разные документы все равнобудут похожи, учитывая неравную вероятностьпоявления n-грамм
▶ если n велико то наоборот, вероятностьвстретить одинаковые n-граммы в разныхдокументах резко падает
▶ хотя конечно остается ненулевой: слово – этотоже n-грамма и одинаковые слова в разныхдокументах точно есть
15/48
Элементы текстового документа▶ Символьные n-граммы?съ, ъе, еш, шь, ещ, щё, …
▶ в общем-то неплохо, осталось выбрать n▶ если n мало то разные документы все равнобудут похожи, учитывая неравную вероятностьпоявления n-грамм
▶ если n велико то наоборот, вероятностьвстретить одинаковые n-граммы в разныхдокументах резко падает
▶ хотя конечно остается ненулевой: слово – этотоже n-грамма и одинаковые слова в разныхдокументах точно есть
15/48
Элементы текстового документа
▶ Символьные n-граммы?съ, ъе, еш, шь, ещ, щё, …
▶ в общем-то неплохо, осталось выбрать n▶ если n мало то разные документы все равнобудут похожи, учитывая неравную вероятностьпоявления n-грамм
▶ если n велико то наоборот, вероятностьвстретить одинаковые n-граммы в разныхдокументах резко падает
▶ хотя конечно остается ненулевой: слово – этотоже n-грамма и одинаковые слова в разныхдокументах точно есть
15/48
Элементы текстового документа
▶ Символьные n-граммы?съ, ъе, еш, шь, ещ, щё, …
▶ в общем-то неплохо, осталось выбрать n▶ если n мало то разные документы все равнобудут похожи, учитывая неравную вероятностьпоявления n-грамм
▶ если n велико то наоборот, вероятностьвстретить одинаковые n-граммы в разныхдокументах резко падает
▶ хотя конечно остается ненулевой: слово – этотоже n-грамма и одинаковые слова в разныхдокументах точно есть
15/48
Shingling▶ Процесс превращения текста вперекрывающиеся n-граммы называетсяshingling
▶ Shingle - дранка, деревянная дощечка, сперекрытиями укладываемая на кровлю.
▶ Shingling – замечательная метафора без точногокороткого перевода
16/48
Кстати о словах
▶ Слово – прекрасная лексическая единица
▶ Почему бы не делать n-граммы из слов?▶ съешь ещё, ещё этих, этих мягких, мягкихфранцузских
▶ Пространство становится очень большим, нозато смысла появляется больше
▶ Можно даже брать нормализованныесловоформы (stemming)
▶ и даже, возможно, синонимы
18/48
Кстати о словах
▶ Слово – прекрасная лексическая единица▶ Почему бы не делать n-граммы из слов?▶ съешь ещё, ещё этих, этих мягких, мягкихфранцузских
▶ Пространство становится очень большим, нозато смысла появляется больше
▶ Можно даже брать нормализованныесловоформы (stemming)
▶ и даже, возможно, синонимы
18/48
Кстати о словах
▶ Слово – прекрасная лексическая единица▶ Почему бы не делать n-граммы из слов?▶ съешь ещё, ещё этих, этих мягких, мягкихфранцузских
▶ Пространство становится очень большим, нозато смысла появляется больше
▶ Можно даже брать нормализованныесловоформы (stemming)
▶ и даже, возможно, синонимы
18/48
И кстати о смысле
▶ Покрытие не зря кольчужное
▶ Триграммы «желтая подводная лодка» и «встепях Украины» вполне обычные
▶ а вот дополнение их связующими подводнаялодка в, лодка в степях сделают документдовольно уникальным и повысят точностьопределения схожести
19/48
И кстати о смысле
▶ Покрытие не зря кольчужное▶ Триграммы «желтая подводная лодка» и «встепях Украины» вполне обычные
▶ а вот дополнение их связующими подводнаялодка в, лодка в степях сделают документдовольно уникальным и повысят точностьопределения схожести
19/48
Снижение объемов данных
▶ Размер кольчужного покрытия равен O(N) где N- количество элементов
▶ Делаем символьные 9-граммы – получаем 9×N▶ Можно ли уменьшить количество данных?
20/48
Снижение объемов данных
▶ Будем хешировать 9-граммы в int32▶ В чем разница между хешированными9-граммами и 4-граммами?
▶ 4-граммы распределены неравномерно и будутзаполнять пространство int32 неравномерно
▶ 9-граммы тоже не равновероятны, но хеш их,предположительно, равномерно разбросает по 4байтам
21/48
Снижение объемов данных
▶ Будем хешировать 9-граммы в int32▶ В чем разница между хешированными9-граммами и 4-граммами?
▶ 4-граммы распределены неравномерно и будутзаполнять пространство int32 неравномерно
▶ 9-граммы тоже не равновероятны, но хеш их,предположительно, равномерно разбросает по 4байтам
21/48
Построение предвзятого покрытия
▶ Часто искомые дубликаты окружены горамимусора
▶ реклама, навигация, копирайты, вот это все
▶ Если нам что-то известно про структуруосмысленного текста то можно это знаниеиспользовать
▶ Например мы можем брать только N-граммы,начинающиеся или заканчивающиеся словом сбольшой буквы. Обоснование: в тексте,проходящем через журналиста, редактора икорректора предложения, скорее всего, будутоформлены по правилам.
▶ а уж в каментах как кому в голову взбредет
22/48
Построение предвзятого покрытия
▶ Часто искомые дубликаты окружены горамимусора
▶ реклама, навигация, копирайты, вот это все▶ Если нам что-то известно про структуруосмысленного текста то можно это знаниеиспользовать
▶ Например мы можем брать только N-граммы,начинающиеся или заканчивающиеся словом сбольшой буквы. Обоснование: в тексте,проходящем через журналиста, редактора икорректора предложения, скорее всего, будутоформлены по правилам.
▶ а уж в каментах как кому в голову взбредет
22/48
Построение предвзятого покрытия
▶ Часто искомые дубликаты окружены горамимусора
▶ реклама, навигация, копирайты, вот это все▶ Если нам что-то известно про структуруосмысленного текста то можно это знаниеиспользовать
▶ Например мы можем брать только N-граммы,начинающиеся или заканчивающиеся словом сбольшой буквы. Обоснование: в тексте,проходящем через журналиста, редактора икорректора предложения, скорее всего, будутоформлены по правилам.
▶ а уж в каментах как кому в голову взбредет
22/48
Построение предвзятого покрытия
▶ Часто искомые дубликаты окружены горамимусора
▶ реклама, навигация, копирайты, вот это все▶ Если нам что-то известно про структуруосмысленного текста то можно это знаниеиспользовать
▶ Например мы можем брать только N-граммы,начинающиеся или заканчивающиеся словом сбольшой буквы. Обоснование: в тексте,проходящем через журналиста, редактора икорректора предложения, скорее всего, будутоформлены по правилам.
▶ а уж в каментах как кому в голову взбредет
22/48
Сегодня в программе
Схожесть объектов
Покрытие текста перекрывающимися n-граммами
Понижение размерности множества
Пространственно чувствительное хеширование
23/48
Проблема
▶ Как ни крути, у документов может быть оченьмного признаков
▶ Рассматривать их все – очень дорого▶ Хочется как-нибудь уменьшить их количество▶ Но так чтоб сохранить возможность посчитатькоэффициент Жаккара
24/48
Min-Hash
▶ Рассмотрим характеристические векторымножеств и составленную из ниххарактеристическую матрицу
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/48
Min-Hash
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
▶ Для двух множеств J(Si,Sj) = |X||X|+|Y| где X – строки
с единицами в обоих множествах и Y – строки сединицей в одном из множеств
26/48
Min-Hash▶ Рассмотрим хеш-функцию 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
27/48
Хорошие и плохие перестановки
▶ Назовём для множеств Si и Sj перестановку pхорошей если minhashp(Si) =minhashp(Sj)
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
minhashabcde a c b a
▶ abcde – хорошая перестановка для пары S1 и S4
28/48
Количество хороших перестановок
▶ Пусть x = |X|,y = |Y|▶ Пусть z - количество строк с нулями в обоихвекторах. Перетащим их все вниз и вдальнейшем будем игнорировать
▶ Всего x+ y ненулевых строк и (x+ y)!перестановок
▶ Рассмотрим перестановку px где первой идетлюбая строка из X. px - хорошая
|px| = x× (x+ y− 1)!
29/48
Вероятность p – хорошая
▶ Отношение количества хороших к общемуколичеству
x× (x+ y− 1)!
(x+ y)! =x
x+ y
30/48
Min-Hash и коэффициент Жаккара
▶ Для случайной перестановки p
P(minhashp(Si) =minhashp(Sj)) = J(Si,Sj)
31/48
Посчитаем вероятность
▶ Вычислим достаточно большое количествоminhash функций с разными перестановками изапишем результат в новую матрицу сигнатур
▶ Матрицу сигнатур и будем использовать длявычисления коэффициента Жаккара:отношение количества одинаковых значений кдлине сигнатуры
32/48
Снова пример▶ Уже посчитанные сигнатуры
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
▶ Истинный J(S1,S4) = 2/3 = вычисленный посигнатурам
▶ Истинный J(S3,S4) = 1/5. По сигнатурам: 033/48
Перестановки дороговаты…
▶ От перестановки применительно к Si нужнатолько одна строка, первая где значениестолбца равно 1
▶ Можно заменить перестановку случайнойхеш-функцией hi : r→ 1 . . .k где r - номер строки,k - общее количество строк
▶ Для каждой ячейки матрицы сигнатур (i, c)значением будет argminr {hi(r) : (r, c) = 1}
▶ Упорядочим хеш-функцией единичные ячейки ивыберем первую из них
34/48
Снова пример
▶ Замена перестановки хеш-функциями
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
h1 : b→1,e→2,d→3,a→4,c→5 d c b dh2 : c→1,e→2,b→3,d→4,a→5 d c e ch3 : a→1,d→2,b→3,e→4,c→5 a c d a
35/48
Заменим argmin на minS1 S2 S3 S4 h1 h2 h3
0(a) 1 0 0 1 1 1 3
1(b) 0 0 1 0 2 4 0
2(c) 0 1 0 1 3 2 2
3(d) 1 0 1 1 4 0 4
4(e) 0 0 1 0 0 3 1
h1=(x+1)%5 1(b) 3(d) 0(a) 1(b)h2=(3x+1)%5 0(a) 2(b) 0(a) 0(a)h3=(2x+3)%5 3(d) 2(b) 0(a) 2(c)
▶ Истинный J(S1,S4) = 2/3 = вычисленный поminhashсигнатурам
▶ Истинный J(S3,S4) = 1/5. По minhash сигнатурам:1/3
36/48
Сегодня в программе
Схожесть объектов
Покрытие текста перекрывающимися n-граммами
Понижение размерности множества
Пространственно чувствительное хеширование
37/48
Точная попарная схожесть стоитдорого
▶ Пусть у нас 1млн. документов и для каждогопосчитана сигнатура из 250 элементов = 1к
▶ На хранение матрицы сигнатур требуется 1Gпамяти
▶ Но попарных сравнений будет 1012/2
▶ По микросекунде (10−6) на каждое – и за 106/2секунд справимся. Это больше 5 суток.
▶ На 1000 машинах это займет около 10 минут
38/48
Может нам не нужны всекоэффициенты
▶ Может мы не против иногда пропустить парупохожих документов
▶ Или хотим искать только очень похожие, анизкие значения коэффициента Жаккара намнеинтересны
39/48
Пространственно чувствительноехеширование
▶ Locality Sensitive Hashing▶ Метод хеширования, увеличивающийвероятность коллизии объектов, которые имеютшансы быть схожими
▶ выбрать несколько хеш-функций▶ каждую применить к исходным объектам▶ объекты, которые какая-либо из хеш-функцийопределила в одну корзину, объявитькандидатами в близнецы
▶ объекты, попавшие в разные корзины, объявитьнепохожими
▶ Бывают false positive, бывают false negative
40/48
Выбор хеш функций для матрицысигнатур
▶ Поделим матрицу на b полос по r строк▶ К каждому r-столбцу в полосе i применимхеш-функцию hi : (r) → kij где kij ∈ Kiи K = K1 . . .Kb – большой интервал корзин,разбитый на b непересекающихся интервалов
▶ Сама хеш-функция может быть одной и той же,лишь бы разные полосы попадали в разныекорзины
41/48
Критерий отбора кандидатов
r-столбцы, выделенные жирным, попадут в однукорзину и их векторы станут кандидатами
2 1 4 20 3 0 01 2 3 13 2 1 3
1 4 0 0
3 1 2 3
1 1 4 10 2 4 21 3 0 3
42/48
Критерий отбора кандидатов
▶ Если хоть одна хеш-функцияопределила два r-столбца в однукорзину то они кандидаты вблизнецы
ORLY o_0 ?
43/48
Критерий отбора кандидатов
▶ Если хоть одна хеш-функцияопределила два r-столбца в однукорзину то они кандидаты вблизнецы
ORLY o_0 ?
43/48
Анализ вероятности▶ Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s
▶ Вероятность того, что значения совпадут вовсех строках полосы равна sr
▶ для s = 0.8, r = 5 это 0.32768▶ Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr
▶ для s = 0.8, r = 5 это 0.67232▶ Вероятность того, что это произойдет в каждойполосе равна (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.00035▶ Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.99965
44/48
Анализ вероятности▶ Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s
▶ Вероятность того, что значения совпадут вовсех строках полосы равна sr
▶ для s = 0.8, r = 5 это 0.32768
▶ Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr
▶ для s = 0.8, r = 5 это 0.67232▶ Вероятность того, что это произойдет в каждойполосе равна (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.00035▶ Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.99965
44/48
Анализ вероятности▶ Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s
▶ Вероятность того, что значения совпадут вовсех строках полосы равна sr
▶ для s = 0.8, r = 5 это 0.32768▶ Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr
▶ для s = 0.8, r = 5 это 0.67232
▶ Вероятность того, что это произойдет в каждойполосе равна (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.00035▶ Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.99965
44/48
Анализ вероятности▶ Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s
▶ Вероятность того, что значения совпадут вовсех строках полосы равна sr
▶ для s = 0.8, r = 5 это 0.32768▶ Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr
▶ для s = 0.8, r = 5 это 0.67232▶ Вероятность того, что это произойдет в каждойполосе равна (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.00035
▶ Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.99965
44/48
Анализ вероятности▶ Вспомним, что вероятность того, что значениястолбцов A и B совпадут в одной строке равнаJ(A,B) = s
▶ Вероятность того, что значения совпадут вовсех строках полосы равна sr
▶ для s = 0.8, r = 5 это 0.32768▶ Вероятность того, что значения не совпадутхотя бы в одной строке полосы равна 1− sr
▶ для s = 0.8, r = 5 это 0.67232▶ Вероятность того, что это произойдет в каждойполосе равна (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.00035▶ Вероятность того, что хотя бы в одной полосевсе значения совпадут равна 1− (1− sr)b
▶ для s = 0.8, r = 5,b = 20 это 0.99965
44/48
Другие значения коэффициента
▶ При s = 0.2 и тех же r = 5,b = 20 вероятностьсовпадения хотя бы в одной полосе равна
▶ 0.00639▶ При s = 0.5 вероятность совпадения хотя бы водной полосе равна 0.47006
45/48
Другие значения коэффициента
▶ При s = 0.2 и тех же r = 5,b = 20 вероятностьсовпадения хотя бы в одной полосе равна
▶ 0.00639
▶ При s = 0.5 вероятность совпадения хотя бы водной полосе равна 0.47006
45/48
Другие значения коэффициента
▶ При s = 0.2 и тех же r = 5,b = 20 вероятностьсовпадения хотя бы в одной полосе равна
▶ 0.00639▶ При s = 0.5 вероятность совпадения хотя бы водной полосе равна 0.47006
45/48
Занавес
▶ Приблизительный поиск похожих текстовыхдокументов1. Определить природу (символы/слова и размер kкольчужного покрытия
2. Сгенерировать k-граммы и список вхожденийдля каждой k-граммы
3. Выбрать длину minhash сигнатур исгенерировать матрицу сигнатур
4. Разбить матрицу на горизонтальные полосы,выбрав r и b и применить LSH
5. Для кандидатов в близнецы посчитатькоэффициент Жаккара
▶ Практически каждый шаг можно выполнить припомощи Map-Reduce
47/48