Минхеш
В информатике и анализе данных интеллектуальном MinHash (или минимальная схема хеширования с независимыми перестановками, чувствительной к локальности ) — это метод быстрой оценки того, насколько похожи два набора. Схему придумал Андрей Бродер ( 1997 г. ), [1] и первоначально использовался в поисковой системе AltaVista для обнаружения дубликатов веб-страниц и исключения их из результатов поиска. [2] Он также применялся в крупномасштабных задачах кластеризации , таких как кластеризация документов по сходству их наборов слов. [1]
Сходство Жаккара и минимальные значения хеш-функции [ править ]
Коэффициент сходства Жаккара является широко используемым индикатором сходства между двумя наборами. Пусть U — множество, а A и B — подмножества U , тогда индекс Жаккара определяется как отношение числа элементов их пересечения и числа элементов их объединения :
Это значение равно 0, когда два набора не пересекаются , 1, когда они равны, и строго между 0 и 1 в противном случае. Два набора более похожи (т.е. имеют относительно больше общих элементов), когда их индекс Жаккара близок к 1. Цель MinHash — быстро оценить J ( A , B ) без явного вычисления пересечения и объединения.
Пусть h — хеш-функция , которая отображает элементы U в различные целые числа, пусть perm — случайная перестановка элементов множества U , и для любого подмножества S из U определите h min ( S ) как минимальный член S относительно h ∘ perm — то есть члена x из S с минимальным значением h ( perm ( x )) . (В тех случаях, когда предполагается, что используемая хеш-функция имеет псевдослучайные свойства, случайная перестановка не будет использоваться.)
Теперь, применяя h min к A и B и предполагая отсутствие коллизий хэшей, мы видим, что значения равны ( h min ( A ) = h min ( B ) ) тогда и только тогда, когда среди всех элементов , элемент с минимальным значением хеш-функции лежит на пересечении . Вероятность того, что это правда, равна в точности индексу Жаккара, поэтому:
- Pr[ час мин ( A ) знак равно час мин ( B ) ] знак равно J ( A , B ),
То есть вероятность того, что h min ( A ) = h min ( B ) истинна, равна подобию J ( A , B ) , предполагая получение пермского значения из равномерного распределения. Другими словами, если r — случайная величина , которая равна единице, когда min ( A ) = h min ( B ) , и нулю в противном случае, то r является несмещенной оценкой J h ( A , B ) . r имеет слишком большую дисперсию , чтобы быть полезным средством оценки сходства Жаккара само по себе, потому что всегда равен нулю или единице. Идея схемы MinHash состоит в том, чтобы уменьшить эту дисперсию путем усреднения нескольких переменных, построенных одинаковым образом.
Алгоритм [ править ]
Вариант со множеством хэш-функций [ править ]
Самая простая версия схемы минхэша использует k различных хеш-функций, где — фиксированный целочисленный параметр, и представляет каждый набор S k h значений ( min k S ) для этих k функций.
Чтобы оценить J ( A , B ) с использованием этой версии схемы, пусть y будет количеством хеш-функций, для которых h min ( A ) = h min ( B ) , и используйте y / k в качестве оценки. Эта оценка представляет собой среднее значение k различных случайных величин 0–1, каждая из которых равна единице, когда h min ( A ) = h min ( B ), и нулю в противном случае, и каждая из которых является несмещенной оценкой J ( A , B ). . Следовательно, их среднее значение также является несмещенной оценкой, и по стандартному отклонению для сумм случайных величин 0–1 его ожидаемая ошибка составляет O(1/ √ k ) . [3]
Следовательно, для любой константы ε > 0 существует константа k = O(1/ε 2 ) такой, что ожидаемая ошибка оценки не превосходит ε . потребуется 400 хэшей Например, для оценки J ( A , B ) с ожидаемой ошибкой, меньшей или равной 0,05, .
Вариант с одной хеш-функцией [ править ]
Вычисление нескольких хеш-функций может оказаться затратным в вычислительном отношении, но соответствующая версия схемы MinHash позволяет избежать этого штрафа, используя только одну хэш-функцию и использует ее для выбора нескольких значений из каждого набора, а не для выбора только одного минимального значения для каждой хеш-функции. Пусть h — хеш-функция, а k — фиксированное целое число. Если S — любой набор из k или более значений в области h ,определите h ( k ) ( S ) как подмножество k членов S , которые имеют наименьшие значения h . Это подмножество h ( k ) ( S ) используется в качестве сигнатуры множества S , а сходство любых двух наборов оценивается путем сравнения их сигнатур.
В частности, пусть A и B — любые два множества.Тогда X = h ( k ) ( h ( k ) ( A ) ∪ h ( k ) ( B )) = h ( k ) ( A ∪ B ) представляет собой набор из k элементов A ∪ B , и если h является любое подмножество из k случайная функция, то с равной вероятностью будет выбрано элементов; то есть X — случайная выборка A B ∪ . простая Подмножество Y = X ∩ h ( k ) ( A ) ∩ h ( k ) ( B ) является множеством членов X , которые принадлежат пересечению A ∩ B . Следовательно, | Y |/ k — несмещенная оценка J ( A , B ) . Разница между этой оценкой и оценкой, созданной с помощью нескольких хэш-функций, заключается в том, что X всегда имеет ровно k членов, тогда как множественные хеш-функции могут привести к меньшему количеству выборочных элементов из-за возможности того, что две разные хэш-функции могут иметь одинаковые минимумы. . Однако когда k мало по сравнению с размерами множеств, эта разница незначительна.
Согласно стандартным границам Чернова для выборки без замены, эта оценка имеет ожидаемую ошибку O(1/ √ k ) , что соответствует производительности схемы с несколькими хэш-функциями.
Временной анализ [ править ]
Оценщик | Y |/ k можно вычислить за время O( k ) по двум сигнатурам заданных наборов в любом варианте схемы. Следовательно, когда ε и k являются константами, время вычисления предполагаемого сходства по сигнатурам также является постоянным. Сигнатура каждого набора может быть вычислена за линейное время в зависимости от размера набора, поэтому, когда необходимо оценить множество парных сходств, этот метод может привести к существенной экономии времени выполнения по сравнению с полным сравнением членов каждого набора. . В частности, для размера набора n вариант с множеством хэшей занимает время O( n k ) . Вариант с одним хэшем, как правило, быстрее, и ему требуется время O( n ) для поддержания очереди минимальных значений хеш-функции, предполагая n >> k . [1]
Включение весов [ править ]
Были разработаны различные методы введения весов в вычисление MinHashes. Самый простой расширяет его до целочисленных весов. [4] Расширьте нашу хеш-функцию h, чтобы она могла принимать как член множества, так и целое число, а затем сгенерируйте несколько хэшей для каждого элемента в соответствии с его весом. Если элемент i встречается n раз, сгенерируйте хеши . Запустите исходный алгоритм на этом расширенном наборе хешей. В результате получается взвешенный индекс Жаккара как вероятность столкновения.
Были разработаны дополнительные расширения, которые обеспечивают эту вероятность коллизий для реальных весов с лучшим временем выполнения: одно для плотных данных, [5] и еще один для редких данных. [6]
Другое семейство расширений использует экспоненциально распределенные хэши. Равномерно случайный хеш от 0 до 1 может быть преобразован в экспоненциальное распределение путем инверсии CDF . Этот метод использует множество прекрасных свойств минимума набора экспоненциальных переменных .
В качестве вероятности столкновения это дает вероятность индекса Жаккара. [7]
Независимые по минимуму перестановки [ править ]
Чтобы реализовать схему MinHash, как описано выше, нужна хеш-функция h для определения случайной перестановки на n элементах, где n — общее количество различных элементов в объединении всех сравниваемых наборов. Но поскольку есть n ! различных перестановок, потребовалось бы Ω( n log n ) бит только для того, чтобы указать действительно случайную перестановку, а это невероятно большое число даже для умеренных значений n . Из-за этого факта, по аналогии с теорией универсального хеширования , была проведена значительная работа по поиску семейства перестановок, которое является «минимально независимым», что означает, что для любого подмножества области любой элемент с равной вероятностью будет минимум. Установлено, что минимально независимое семейство подстановок должно включать не менее
требуется Ω( n ) бит. различные перестановки, и, следовательно, для указания одной перестановки, все еще невероятно большой, [2]
Практические независимые хеш-функции по минимуму [ править ]
Из-за вышеуказанной непрактичности были введены два варианта понятия минимальной независимости: ограниченные минимально независимые семейства перестановок и аппроксимированные минимально независимые семейства.Ограниченная минимальная независимость — это свойство минимальной независимости, ограниченное определенными наборами мощности не более k . [8] Приблизительная минимальная независимость имеет не более фиксированной вероятности ε , отличающейся от полной независимости. [9]
В 1999 году Петр Индик проявил себя [10] что любое независимое по k-му семейству хеш-функций также является приблизительно независимым по min-му для достаточно большой.В частности, существуют константы такое, что если , затем
для всех наборов и .(Обратите внимание, здесь означает, что вероятность не более чем фактор слишком большой и максимум слишком маленький.)
Эта гарантия, среди прочего, достаточна для получения оценки Жаккара, требуемой алгоритмом MinHash.То есть, если и являются множествами, то
Поскольку независимые хэш-функции по k можно указать, используя только бит, этот подход гораздо более практичен, чем использование полностью независимых по минимуму перестановок.
Еще одно практичное семейство хэш-функций, которое дает приблизительную независимость по минимуму, — это хеширование табуляций .
Приложения [ править ]
Исходные приложения MinHash включали кластеризацию и устранение почти повторяющихся веб-документов, представленных в виде наборов слов, встречающихся в этих документах. [1] [2] [11] Подобные методы также использовались для кластеризации и устранения почти дубликатов для других типов данных, таких как изображения: в случае данных изображения изображение может быть представлено как набор меньших фрагментов изображений, вырезанных из него, или как наборы более сложные описания функций изображения. [12]
В области анализа данных интеллектуального Коэн и др. (2001) используют MinHash как инструмент для изучения правил ассоциации . Учитывая базу данных, в которой каждая запись имеет несколько атрибутов (рассматриваемых как матрица 0–1 со строкой на запись базы данных и столбцом на атрибут), они используют аппроксимации индекса Жаккара на основе MinHash для идентификации пар-кандидатов атрибутов, которые часто совпадают. происходят, а затем вычислить точное значение индекса только для тех пар, чтобы определить те, частота совместного появления которых ниже заданного строгого порога. [13]
Алгоритм MinHash был адаптирован для биоинформатики, где проблема сравнения последовательностей генома имеет теоретическую основу, аналогичную проблеме сравнения документов в сети. Инструменты на основе MinHash [14] [15] позволяют быстро сравнивать данные полногеномного секвенирования с эталонными геномами (около 3 минут для сравнения одного генома с 90 000 эталонными геномами в RefSeq ) и подходят для видообразования и, возможно, в ограниченной степени микробного подтипирования. Есть также приложения для метагеномики. [14] и использование алгоритмов, основанных на MinHash, для выравнивания и сборки генома. [16] Точные значения средней идентичности нуклеотидов (ANI) можно очень эффективно генерировать с помощью алгоритмов на основе MinHash. [17]
Другое использование [ править ]
Схему MinHash можно рассматривать как пример хеширования с учетом местоположения — набора методов использования хеш-функций для сопоставления больших наборов объектов с меньшими значениями хеш-функции таким образом, что, когда два объекта находятся на небольшом расстоянии друг от друга , их хеш-значения, скорее всего, будут одинаковыми. В этом случае подпись набора можно рассматривать как его хеш-значение. Существуют и другие методы хеширования, чувствительные к местонахождению, для расстояния Хэмминга между наборами и косинусного расстояния между векторами ; Хэширование с учетом локальности имеет важные применения в алгоритмах поиска ближайших соседей . [18] Для больших распределенных систем, в частности MapReduce , существуют модифицированные версии MinHash, помогающие вычислять сходства без зависимости от размерности точки. [19]
Оценка и критерии [ править ]
Крупномасштабная оценка была проведена Google в 2006 году. [20] сравнить производительность Minhash и SimHash [21] алгоритмы. В 2007 году Google сообщил об использовании Simhash для обнаружения дубликатов при сканировании веб-страниц. [22] и использование Minhash и LSH для персонализации Новостей Google . [23]
См. также [ править ]
- Фильтр Блума – структура данных для приблизительного членства в наборе
- Эскиз «Счет-мин» - Вероятностная структура данных в информатике
- ш-черепица
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б с д Бродер, Андрей З. (1998), «О сходстве и содержании документов», Труды. Сжатие и сложность ПОСЛЕДОВАТЕЛЬНОСТЕЙ 1997 (Кат. № 97TB100171) (PDF) , IEEE , стр. 21–29, CiteSeerX 10.1.1.24.779 , doi : 10.1109/SEQUEN.1997.666900 , ISBN 978-0-8186-8132-5 , S2CID 11748509 , заархивировано из оригинала (PDF) 31 января 2015 г. , получено 18 января 2014 г.
- ↑ Перейти обратно: Перейти обратно: а б с Бродер, Андрей З .; Чарикар, Моисей; Фриз, Алан М .; Митценмахер, Майкл (1998), «Независимые по минимуму перестановки», Proc. 30-й симпозиум ACM по теории вычислений (STOC '98) , Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники , стр. 327–336, CiteSeerX 10.1.1.409.9220 , doi : 10.1145/276698.276781 , ISBN 978-0897919623 , S2CID 465847 .
- ^ Васильвицкий, Сергей (2011), COMS 6998-12: Работа с огромными данными (конспекты лекций, Колумбийский университет) (PDF) , заархивировано из оригинала (PDF) 24 октября 2018 г.
- ^ Чум, Ондрей; Филбин, Джеймс; Зиссерман, Эндрю (2008), «Обнаружение почти повторяющихся изображений: взвешивание min-Hash и tf-idf». (PDF) , BMVC , 810 : 812–815
- ^ Шривастава, Аншумали (2016), «Точное взвешенное минимальное хеширование за постоянное время», arXiv : 1602.08393 [ cs.DS ]
- ^ Иоффе, Сергей (2010). «Улучшенная последовательная выборка, взвешенный минхеш и эскизы L1». Международная конференция IEEE по интеллектуальному анализу данных 2010 г. (PDF) . стр. 246–255. CiteSeerX 10.1.1.227.9749 . дои : 10.1109/ICDM.2010.80 . ISBN 978-1-4244-9131-5 . S2CID 9970906 .
- ^ Моултон, Райан; Цзян, Юньцзян (2018), «Максимально согласованная выборка и индекс Жаккара распределения вероятностей», Международная конференция IEEE по интеллектуальному анализу данных (ICDM), 2018 г. , стр. 347–356, arXiv : 1809.04052 , doi : 10.1109/ICDM.2018.00050 , ISBN 978-1-5386-9159-5 , S2CID 49746072
- ^ Матушек, Иржи ; Стоякович, Милош (2003), «Об ограниченной минимальной независимости перестановок», Случайные структуры и алгоритмы , 23 (4): 397–408, CiteSeerX 10.1.1.400.6757 , doi : 10.1002/rsa.10101 , S2CID 1483449 .
- ^ Сакс, М .; Шринивасан, А.; Чжоу, С.; Цукерман, Д. (2000), «Наборы с низким расхождением дают приблизительные по минимуму независимые семейства перестановок», Information Processing Letters , 73 (1–2): 29–32, CiteSeerX 10.1.1.20.8264 , doi : 10.1016/S0020- 0190(99)00163-5 .
- ^ Индик, Петр. «Небольшое приблизительно минимальное независимое семейство хеш-функций». Журнал алгоритмов 38.1 (2001): 84-90.
- ^ Манасс, Марк (2012). Об эффективном определении наиболее близких соседей: подковы, ручные гранаты, веб-поиск и другие ситуации, когда «близость» значит «достаточно близко» . Морган и Клейпул. п. 72. ИСБН 9781608450886 .
- ^ Чум, Ондржей; Филбин, Джеймс; Айсард, Майкл; Зиссерман, Эндрю (2007), «Масштабируемое почти идентичное обнаружение изображений и кадров», Труды 6-й Международной конференции ACM по поиску изображений и видео (CIVR'07) , стр. 549–556, doi : 10.1145/1282280.1282359 , ISBN 9781595937339 , S2CID 3330908 ; Чум, Ондржей; Филбин, Джеймс; Зиссерман, Эндрю (2008), «Обнаружение почти повторяющихся изображений: взвешивание min-hash и tf-idf», Proceedings of the British Machine Vision Conference (PDF) , vol. 3, с. 4 .
- ^ Коэн, Э .; Датар, М.; Фудзивара, С.; Гионис, А.; Индик, П. ; Мотвани, Р. ; Ульман, JD ; Ян, К. (2001), «Нахождение интересных ассоциаций без сокращения поддержки», IEEE Transactions on Knowledge and Data Engineering , 13 (1): 64–78, CiteSeerX 10.1.1.192.7385 , doi : 10.1109/69.908981 .
- ↑ Перейти обратно: Перейти обратно: а б Ондов, Брайан Д.; Треанген, Тодд Дж.; Мельстед, Палл; Мэллони, Адам Б.; Бергман, Николас Х.; Корень, Сергей; Филлиппи, Адам М. (20 июня 2016 г.). «Mash: быстрая оценка расстояния до генома и метагенома с использованием MinHash» . Геномная биология . 17 (1): 132. дои : 10.1186/s13059-016-0997-x . ISSN 1474-760X . ПМЦ 4915045 . ПМИД 27323842 .
- ^ «Добро пожаловать в sourmash! — документация sourmash 1.0» . sourmash.readthedocs.io . Проверено 13 ноября 2017 г.
- ^ Берлин, Константин; Корень, Сергей; Чин, Чэнь-Шань; Дрейк, Джеймс П.; Ландолин, Джейн М; Филлиппи, Адам М. (25 мая 2015 г.). «Сборка больших геномов с помощью секвенирования одиночных молекул и хеширования с учетом местоположения». Природная биотехнология . 33 (6): 623–630. дои : 10.1038/nbt.3238 . ISSN 1546-1696 . ПМИД 26006009 . S2CID 17246729 .
- ^ Джайн, Чираг; Родригес-Р, Луис М.; Филиппи, Адам М.; Константинидис, Константинос Т.; Алуру, Шринивас (декабрь 2018 г.). «Высокопроизводительный ANI-анализ 90 тысяч геномов прокариот выявляет четкие границы видов» . Природные коммуникации . 9 (1): 5114. Бибкод : 2018NatCo...9.5114J . дои : 10.1038/s41467-018-07641-9 . ПМК 6269478 . ПМИД 30504855 .
- ^ Андони, Александр; Индик, Петр (2008), «Почти оптимальные алгоритмы хеширования для приближенного ближайшего соседа в больших измерениях», Communications of the ACM , 51 (1): 117–122, CiteSeerX 10.1.1.226.6905 , doi : 10.1145/1327452.1327494 , S2CID 6468963 .
- ^ Заде, Реза; Гоэл, Ашиш (2012), «Вычисление подобия, независимое от размерности», arXiv : 1206.2082 [ cs.DS ] .
- ^ Хенцингер, Моника (2006), «Поиск почти повторяющихся веб-страниц: крупномасштабная оценка алгоритмов», Труды 29-й ежегодной международной конференции ACM SIGIR по исследованиям и разработкам в области поиска информации , стр. 284 , doi : 10.1145/1148170.1148222 , ISBN 978-1595933690 , S2CID 207160068 .
- ^ Чарикар, Мозес С. (2002), «Методы оценки сходства на основе алгоритмов округления», Труды 34-го ежегодного симпозиума ACM по теории вычислений , стр. 380, номер домена : 10.1145/509907.509965 , ISBN 978-1581134957 , S2CID 4229473 .
- ^ Гурмит Сингх, Манку; Джайн, Арвинд; Дас Сарма, Аниш (2007), «Обнаружение почти дубликатов при сканировании в Интернете», Материалы 16-й Международной конференции по Всемирной паутине (PDF) , стр. 141, номер домена : 10.1145/1242572.1242592 , ISBN 9781595936547 , S2CID 1414324 .
- ^ Дас, Абхинандан С.; Датар, Маюр; Гарг, Ашутош; Раджарам, Шьям; и др. (2007), «Персонализация новостей Google: масштабируемая совместная онлайн-фильтрация», Материалы 16-й Международной конференции по Всемирной паутине , стр. 271, номер домена : 10.1145/1242572.1242610 , ISBN 9781595936547 , S2CID 207163129 .