Хэширование с учетом местоположения
В информатике , хеширование с учетом локальности ( LSH ) — это метод нечеткого хеширования который с высокой вероятностью хэширует аналогичные входные элементы в одни и те же «корзины». [1] (Количество сегментов намного меньше, чем совокупность возможных входных элементов.) [1] Поскольку похожие элементы попадают в одни и те же сегменты, этот метод можно использовать для кластеризации данных и поиска ближайшего соседа . Он отличается от традиционных методов хеширования тем, что хеш-коллизии максимизируются, а не минимизируются. Альтернативно, этот метод можно рассматривать как способ уменьшить размерность многомерных данных; входные элементы большой размерности можно уменьшить до версий с низкой размерностью, сохраняя при этом относительные расстояния между элементами.
на основе хеширования Алгоритмы приблизительного поиска ближайших соседей обычно используют одну из двух основных категорий методов хеширования: либо независимые от данных методы, такие как хеширование с учетом местоположения (LSH); или методы, зависящие от данных, такие как хеширование с сохранением локальности (LPH). [2] [3]
Хеширование с сохранением локальности изначально было разработано как способ облегчить конвейерную обработку данных в реализациях алгоритмов массового параллелизма , которые используют рандомизированную маршрутизацию и универсальное хеширование для уменьшения конфликтов памяти и перегрузки сети . [4] [5]
Определения
[ редактировать ]Конечная семья функций определяется как семейство LSH [1] [6] [7] для
- метрическое пространство ,
- порог ,
- коэффициент аппроксимации ,
- и вероятности
если оно удовлетворяет следующему условию. Для любых двух точек и хеш-функция выбираются равномерно случайным образом из :
- Если , затем (т.е. a и b сталкиваются) с вероятностью не менее ,
- Если , затем с вероятностью не более .
Такая семья называется -чувствительный.
LSH по мере сходства
[ редактировать ]Альтернативно [8] можно определить семейство LSH в совокупности элементов U, наделенных функцией сходства . В этом случае схема LSH представляет собой семейство хэш-функций H, связанных с распределением вероятностей D по H, таким образом, что функция выбранный согласно D удовлетворяет для каждого .
Усиление
[ редактировать ]Учитывая -чувствительная семья , мы можем построить новые семьи с помощью И-конструкции или ИЛИ-конструкции . [1]
Для создания И-конструкции определяем новое семейство хеш-функций g , где каждая функция g состоит из k случайных функций от . Затем мы говорим, что для хеш-функции , тогда и только тогда, когда все для . Поскольку члены независимо выбираются для любого , это -чувствительная семья.
Для создания OR-конструкции определяем новое семейство хеш-функций g , где каждая функция g состоит из k случайных функций от . Затем мы говорим, что для хеш-функции , тогда и только тогда, когда для одного или нескольких значений i . Поскольку члены независимо выбираются для любого , это -чувствительная семья.
Приложения
[ редактировать ]LSH применялся к нескольким проблемным областям, в том числе:
- Обнаружение почти дубликатов [9]
- Иерархическая кластеризация [10] [11]
- Полногеномное исследование ассоциаций [12]
- Идентификация сходства изображений
- экспрессии генов Идентификация сходства [ нужна ссылка ]
- аудиоподобия Идентификация
- Поиск ближайшего соседа
- Аудио отпечаток пальца [13]
- Цифровая видеоснятие отпечатков пальцев
- Организация общей памяти в параллельных вычислениях [4] [5]
- Физическая организация данных в системах управления базами данных [14]
- Обучение полносвязных нейронных сетей [15] [16]
- Компьютерная безопасность [17]
- Машинное обучение [18]
Методы
[ редактировать ]Выборка битов для расстояния Хэмминга
[ редактировать ]Один из самых простых способов создания семейства LSH — побитовая выборка. [7] Этот подход работает для расстояния Хэмминга над d -мерными векторами. . Здесь семья хеш-функций — это просто совокупность всех проекций точек на одну из координаты, т.е. , где это координата . Случайная функция от просто выбирает случайный бит из входной точки. Это семейство имеет следующие параметры: , . То есть любые два вектора с расстоянием Хэмминга не более столкнуться под случайным с вероятностью по крайней мере . Любой с расстоянием Хэмминга не менее столкнуться с вероятностью не более .
Минимально независимые перестановки
[ редактировать ]Предположим, что состоит из подмножеств некоторого основного множества перечислимых элементов S , а интересующей функцией сходства является индекс Жаккара J. U Если π — перестановка индексов S , для позволять . Каждый возможный выбор π определяет одну хэш-функцию h, отображающую входные наборы в элементы S .
Определим семейство функций H как набор всех таких функций и пусть D будет равномерным распределением . Учитывая два набора событие, которое точно соответствует событию, когда минимизатор π по лежит внутри . Поскольку h был выбран равномерно случайным образом, и определить схему LSH для индекса Жаккара.
Поскольку симметричная группа из n элементов имеет размер n !, выбор действительно случайной перестановки из полной симметричной группы невозможен даже для умеренного размера n . Из-за этого факта была проведена значительная работа по поиску семейства перестановок, которое было бы «минимально независимым» - семейства перестановок, для которого каждый элемент области имеет равную вероятность быть минимальным при случайно выбранном π . Установлено, что минимально независимое семейство подстановок имеет размер не менее , [19] и что эта граница жесткая. [20]
Поскольку минимально независимые семейства слишком велики для практических приложений, вводятся два варианта понятия минимальной независимости: ограниченные минимально независимые семейства перестановок и аппроксимированные минимально независимые семейства. Ограниченная минимальная независимость — это свойство минимальной независимости, ограниченное определенными наборами мощности не более k . [21] Приблизительная минимальная независимость отличается от свойства не более чем на фиксированное ε . [22]
Методы с открытым исходным кодом
[ редактировать ]Нильсимса Хэш
[ редактировать ]Nilsimsa — это локально-чувствительный алгоритм хеширования, используемый в борьбе со спамом . [23] Цель Nilsimsa — создать хеш-дайджест сообщения электронной почты, чтобы дайджесты двух похожих сообщений были похожи друг на друга. В документе предполагается, что Нильсимса удовлетворяет трем требованиям:
- Дайджест, идентифицирующий каждое сообщение, не должен существенно отличаться для изменений, которые могут быть произведены автоматически.
- Кодировка должна быть устойчивой к преднамеренным атакам.
- Кодировка должна поддерживать чрезвычайно низкий риск ложных срабатываний.
Тестирование, проведенное в статье на ряде типов файлов, выявило, что хэш Nilsimsa имеет значительно более высокий уровень ложных срабатываний по сравнению с другими схемами дайджеста сходства, такими как TLSH, Ssdeep и Sdhash. [24]
ТЛШ
[ редактировать ]TLSH — это локально-чувствительный алгоритм хеширования, разработанный для ряда приложений безопасности и цифровой криминалистики. [17] Целью TLSH является создание хэш-дайджестов для сообщений таким образом, чтобы небольшие расстояния между дайджестами указывали на то, что соответствующие им сообщения, вероятно, будут похожими.
Реализация TLSH доступна как программное обеспечение с открытым исходным кодом . [25]
Случайная проекция
[ редактировать ]Метод случайной проекции LSH Моисея Чарикара. [8] называется SimHash (также иногда называемый arccos [26] ) использует приближение косинусного расстояния между векторами. Этот метод использовался для аппроксимации NP-полной задачи максимального разреза . [8]
Основная идея этого метода состоит в том, чтобы выбрать случайную гиперплоскость (определяемую нормальным единичным вектором r вначале ) и использовать ее для хэширования входных векторов.
Учитывая входной вектор v и гиперплоскость, определенную r , мы позволяем . То есть, в зависимости от того, с какой стороны лежит гиперплоскость v . Таким образом, каждый возможный выбор случайной гиперплоскости r можно интерпретировать как хеш-функцию. .
Для двух векторов u,v с углом между ними, можно показать, что
Поскольку соотношение между и составляет не менее 0,87856, когда , [8] [27] вероятность того, что два вектора окажутся по одну сторону от случайной гиперплоскости, примерно пропорциональна косинусному расстоянию между ними.
Стабильные дистрибутивы
[ редактировать ]Хэш-функция [28] отображает d -мерный вектор на множество целых чисел. Каждая хеш-функция в семье индексируется путем случайного выбора и где является d -мерным вектор с записи, выбранные независимо от стабильного дистрибутива и является действительное число, выбранное равномерно из диапазона [0,r]. Для фиксированной хеш-функция является данный .
Для лучшего соответствия данным были предложены другие методы построения хэш-функций. [29] В частности, хеш-функции k-средних на практике лучше, чем хеш-функции, основанные на проекциях, но без какой-либо теоретической гарантии.
Семантическое хеширование
[ редактировать ]Семантическое хеширование — это метод, который пытается сопоставить входные элементы с адресами так, чтобы более близкие входные данные имели более высокое семантическое сходство . [30] Хэш-коды находятся посредством обучения искусственной нейронной сети или графической модели . [ нужна ссылка ]
Алгоритм поиска ближайшего соседа
[ редактировать ]Одним из основных применений LSH является создание метода эффективных алгоритмов приближенного поиска ближайших соседей . Рассмотрим семейство LSH . Алгоритм имеет два основных параметра: параметр ширины и количество хеш-таблиц L. k
На первом этапе мы определяем новое семейство хеш-функций g , где каждая функция g получается путем объединения k функций от , то есть, . Другими словами, случайная хэш-функция g получается путем объединения k случайно выбранных хеш-функций из . Затем алгоритм создает L хеш-таблиц, каждая из которых соответствует отдельной случайно выбранной хеш-функции g .
На этапе предварительной обработки мы хешируем все n d -мерные точки из набора данных S в каждую из L хеш-таблиц. Учитывая, что результирующие хэш-таблицы содержат только n ненулевых записей, можно уменьшить объем памяти, используемой для каждой хеш-таблицы, до используя стандартные хэш-функции .
Учитывая точку запроса q , алгоритм перебирает L хеш-функций g . Для каждого рассматриваемого g он извлекает точки данных, которые хэшируются в ту же корзину, что и q . Процесс останавливается, как только будет найдена точка на расстоянии cR от q .
Учитывая параметры k и L , алгоритм имеет следующие гарантии производительности:
- время предварительной обработки: , где t — время вычисления функции на входной точке p ;
- космос: плюс место для хранения точек данных;
- время запроса: ;
- алгоритму удается найти точку на расстоянии cR от q (если существует точка на расстоянии R ) с вероятностью не менее ;
Для фиксированного коэффициента аппроксимации и вероятности и , можно установить и , где . Тогда мы получаем следующие гарантии производительности:
- время предварительной обработки: ;
- космос: плюс место для хранения точек данных;
- время запроса: ;
Улучшения
[ редактировать ]Когда t велико, можно сократить время хэширования с . Это было показано [31] и [32] что дало
- время запроса: ;
- космос: ;
Иногда бывает так, что фактор может быть очень большим. Это происходит, например, с данными о сходстве Жаккара , где даже самый похожий сосед часто имеет довольно низкое сходство Жаккара с запросом. В [33] было показано, как сократить время запроса до (не включая затраты на хеширование) и, аналогично, использование пространства.
См. также
[ редактировать ]- Фильтр Блума – структура данных для приблизительного членства в наборе
- Проклятие размерности . Трудности, возникающие при анализе данных со многими аспектами («измерениями»).
- Хеширование объектов — векторизация объектов с использованием хэш-функции.
- Преобразования, связанные с Фурье
- Geohash - геокодирование, являющееся общественным достоянием, изобретенное в 2008 году.
- Многолинейное обучение подпространству – подход к уменьшению размерности
- Анализ главных компонентов . Метод анализа данных.
- Случайная индексация [34]
- Скользящий хеш – тип хеш-функции.
- Разложение по сингулярным значениям – Матричное разложение
- Разреженная распределенная память - Математическая модель памяти.
- Вейвлет-сжатие — математический метод, используемый для сжатия и анализа данных.
Ссылки
[ редактировать ]- ^ Jump up to: а б с д Раджараман, А.; Ульман, Дж. (2010). «Анализ больших наборов данных, глава 3» .
- ^ Чжао, Кан; Лу, Хунтао; Мэй, Цзиньчэн (2014). Хеширование с сохранением локальности . Конференция AAAI по искусственному интеллекту. Том. 28. стр. 2874–2880.
- ^ Цай, И-Сюань; Ян, Мин-Сюань (октябрь 2014 г.). «Хеширование с сохранением локальности». Международная конференция IEEE по обработке изображений (ICIP) , 2014 г. стр. 2988–2992. дои : 10.1109/ICIP.2014.7025604 . ISBN 978-1-4799-5751-4 . ISSN 1522-4880 . S2CID 8024458 .
- ^ Jump up to: а б Чин, Эндрю (1991). Проблемы сложности в параллельных вычислениях общего назначения (DPhil). Оксфордский университет. стр. 87–95.
- ^ Jump up to: а б Чин, Эндрю (1994). «Хеш-функции, сохраняющие локальность, для параллельных вычислений общего назначения» (PDF) . Алгоритмика . 12 (2–3): 170–181. дои : 10.1007/BF01185209 . S2CID 18108051 .
- ^ Гионис, А.; Индик, П. ; Мотвани, Р. (1999). «Поиск по сходству в больших измерениях посредством хеширования» . Материалы 25-й конференции по очень большим базам данных (VLDB) .
- ^ Jump up to: а б Индик, Петр .; Мотвани, Раджив . (1998). «Приблизительные ближайшие соседи: на пути к снятию проклятия размерности». . Материалы 30-го симпозиума по теории вычислений .
- ^ Jump up to: а б с д Чарикар, Моисей С. (2002). «Методы оценки сходства на основе алгоритмов округления». Материалы 34-го ежегодного симпозиума ACM по теории вычислений . стр. 380–388. CiteSeerX 10.1.1.147.4064 . дои : 10.1145/509907.509965 . ISBN 1-58113-495-9 .
- ^ Дас, Абхинандан С.; и др. (2007), «Персонализация новостей Google: масштабируемая совместная онлайн-фильтрация», Труды 16-й международной конференции по Всемирной паутине , стр. 271–280, doi : 10.1145/1242572.1242610 , ISBN 9781595936547 , S2CID 207163129 .
- ^ Кога, Хисаши; Тецуо Исибаши; Тошинори Ватанабэ (2007), «Алгоритм быстрой агломеративной иерархической кластеризации с использованием локально-чувствительного хеширования», Knowledge and Information Systems , 12 (1): 25–53, doi : 10.1007/s10115-006-0027-5 , S2CID 4613827 .
- ^ Кочез, Майкл; Моу, Хао (2015), «Twister Tries», Труды Международной конференции ACM SIGMOD 2015 по управлению данными (PDF) , стр. 505–517, doi : 10.1145/2723372.2751521 , ISBN 9781450327589 , S2CID 14414777 .
- ^ Брынза, Дмитрий; и др. (2010), «БЫСТРОЕ обнаружение межгенных взаимодействий в исследованиях полногеномных ассоциаций», Bioinformatics , 26 (22): 2856–2862, doi : 10.1093/bioinformatics/btq529 , PMC 3493125 , PMID 20871107
- ^ дежавю — Снятие отпечатков пальцев и распознавание аудио в Python , 19 декабря 2018 г.
- ^ Алуч, Гюнеш; Озсу, М. Тамер; Дауджи, Хузайма (2018), «Создание самокластеризующихся баз данных RDF с использованием Tunable-LSH», The VLDB Journal , 28 (2): 173–195, doi : 10.1007/s00778-018-0530-9 , S2CID 53695535
- ^ Чен, Бэйди; Медини, Тарун; Фарвелл, Джеймс; Гобриэль, Самех; Тай, Чарли; Шривастава, Аншумали (29 февраля 2020 г.). «СЛАЙД: В защиту интеллектуальных алгоритмов перед аппаратным ускорением крупномасштабных систем глубокого обучения». arXiv : 1903.03129 [ cs.DC ].
- ^ Чен, Бэйди; Лю, Цзычан; Пэн, Бинхуэй; Сюй, Чжаочжуо; Ли, Джонатан Линцзе; Дао, Три; Сун, Чжао; Шривастава, Аншумали; Ре, Кристофер (2021), «MONGOOSE: обучаемая структура LSH для эффективного обучения нейронных сетей» , Международная конференция по представлению обучения
- ^ Jump up to: а б Оливер, Джонатан; Ченг, Чун; Чен, Янгуй (2013). TLSH — хэш, чувствительный к местоположению . 4-й семинар по киберпреступности и надежным вычислениям . стр. 7–13. дои : 10.1109/CTC.2013.9 . ISBN 978-1-4799-3076-0 .
- ^ Фанаи-Т, Хади (2024), Естественное обучение , arXiv : 2404.05903
- ^ Бродер, Аризона ; Чарикар, М. ; Фриз, AM ; Митценмахер, М. (1998). «Независимые по минимуму перестановки» . Труды тридцатого ежегодного симпозиума ACM по теории вычислений . стр. 327–336. CiteSeerX 10.1.1.409.9220 . дои : 10.1145/276698.276781 . Проверено 14 ноября 2007 г.
- ^ Такей, Ю.; Ито, Т.; Шинозаки, Т. «Оптимальная конструкция точно минимально независимых перестановок». Технический отчет COMP98-62, IEICE, 1998 г.
- ^ Матушек Ю.; Стоякович, М. (2002). «Об ограниченной минимальной независимости перестановок» . Препринт . Проверено 14 ноября 2007 г.
- ^ Сакс, М .; Шринивасан, А.; Чжоу, С.; Цукерман, Д. (2000). «Наборы с низким расхождением дают приблизительные по минимуму независимые семейства перестановок» . Письма об обработке информации . 73 (1–2): 29–32. CiteSeerX 10.1.1.20.8264 . дои : 10.1016/S0020-0190(99)00163-5 . Проверено 14 ноября 2007 г.
- ^ Дамиани; и др. (2004). «Методика обнаружения спама на основе открытого дайджеста» (PDF) . Проверено 1 сентября 2013 г.
- ^ Оливер; и др. (2013). «TLSH — хеш, чувствительный к локальности» . 4-й семинар по киберпреступности и надежным вычислениям . Проверено 4 июня 2015 г.
- ^ «ТЛШ» . Гитхаб . Проверено 10 апреля 2014 г.
- ^ Александр Андони; Индик, П. (2008). «Почти оптимальные алгоритмы хеширования для приближенного ближайшего соседа в больших размерностях». Коммуникации АКМ . 51 (1): 117–122. CiteSeerX 10.1.1.226.6905 . дои : 10.1145/1327452.1327494 . S2CID 6468963 .
- ^ Гоеманс, Мишель X.; Уильямсон, Дэвид П. (1995). «Улучшенные алгоритмы аппроксимации задач максимального разреза и выполнимости с использованием полуопределенного программирования» . Журнал АКМ . 42 (6). Ассоциация вычислительной техники (ACM): 1115–1145. дои : 10.1145/227683.227684 . ISSN 0004-5411 . S2CID 15794408 .
- ^ Датар, М.; Имморлика, Н. ; Индик, П. ; Миррокни, В.С. (2004). «Схема хеширования с учетом локальности на основе p-стабильных распределений» . Материалы симпозиума по вычислительной геометрии .
- ^ Паулев, Л.; Джегу, Х.; Амсалег, Л. (2010). «Хеширование с учетом местоположения: сравнение типов хэш-функций и механизмов запросов» . Буквы для распознавания образов . 31 (11): 1348–1358. Бибкод : 2010PaReL..31.1348P . дои : 10.1016/j.patrec.2010.04.004 . S2CID 2666044 .
- ^ Салахутдинов Руслан; Хинтон, Джеффри (2008). «Семантическое хеширование» . Международный журнал приближенного рассуждения . 50 (7): 969–978. дои : 10.1016/j.ijar.2008.11.006 .
- ^ Дальгаард, Сорен, Матиас Бек Тейс Кнудсен и Миккель Торуп. «Фиксированное сходство эскизов». 58-й ежегодный симпозиум IEEE по основам информатики (FOCS), 2017 г. ИИЭР, 2017.
- ^ Кристиани, Тобиас. «Быстрые системы хеширования с учетом местоположения для приблизительного поиска ближайших соседей». Международная конференция по поиску и приложениям по сходству. Спрингер, Чам, 2019 г.
- ^ Але, Томас Дибдал. «К проблеме в хешировании с учетом локальности». Международная конференция по поиску и приложениям по сходству. Спрингер, Чам, 2020.
- ^ Горман, Джеймс и Джеймс Р. Карран. «Масштабирование сходства распределения до крупных корпусов». Материалы 21-й Международной конференции по компьютерной лингвистике и 44-го ежегодного собрания Ассоциации компьютерной лингвистики. Ассоциация компьютерной лингвистики, 2006.
Дальнейшее чтение
[ редактировать ]- Самет, Х. (2006) Основы многомерных и метрических структур данных . Морган Кауфманн. ISBN 0-12-369446-9
- Индик, Петр ; Мотвани, Раджив ; Рагхаван, Прабхакар; Вемпала, Сантош (1997). «Хеширование с сохранением локальности в многомерных пространствах». Материалы двадцать девятого ежегодного симпозиума ACM по теории вычислений . СТОК '97 . стр. 618–625. CiteSeerX 10.1.1.50.4927 . дои : 10.1145/258533.258656 . ISBN 978-0-89791-888-6 . S2CID 15693787 .
- Чин, Эндрю (1994). «Хеш-функции, сохраняющие локальность, для параллельных вычислений общего назначения» (PDF) . Алгоритмика . 12 (2–3): 170–181. дои : 10.1007/BF01185209 . S2CID 18108051 .
Внешние ссылки
[ редактировать ]- Домашняя страница LSH Алекса Андони
- LSHKIT: библиотека хеширования C++ с учетом локальных особенностей
- Библиотека Python с учетом локальности хэширования, которая дополнительно поддерживает сохранение через Redis.
- Набор инструментов для поиска крупномасштабных изображений Калифорнийского технологического института : набор инструментов Matlab, реализующий несколько хеш-функций LSH, в дополнение к Kd-деревьям, иерархическим K-средним и алгоритмам поиска инвертированных файлов.
- Slash: библиотека C++ LSH, реализующая сферический LSH, авторы: Терасава К., Танака Ю.
- LSHBOX: набор инструментов C++ с открытым исходным кодом для локально-зависимого хеширования для крупномасштабного поиска изображений, также поддерживает Python и MATLAB.
- SRS: C++ реализация в памяти экономичного алгоритма обработки запросов приближенного ближайшего соседа, основанного на p-стабильной случайной проекции
- TLSH с открытым исходным кодом на Github
- JavaScript-порт TLSH (Trend Micro Locality Sensitive Hashing), входящий в состав модуля node.js.
- Java-порт TLSH (Trend Micro Locality Sensitive Hashing), входящий в состав пакета maven.