Хеширование с учетом местоположения - Locality-sensitive hashing

В информатике хеширование с учетом местоположения ( LSH ) - это алгоритмический метод, который с высокой вероятностью хэширует аналогичные входные элементы в одни и те же «корзины». (Количество сегментов намного меньше, чем набор возможных входных элементов.) Поскольку похожие элементы попадают в одни и те же сегменты, этот метод можно использовать для кластеризации данных и поиска ближайшего соседа . Он отличается от обычных методов хеширования тем, что конфликты хеширования максимизируются, а не минимизируются. В качестве альтернативы, этот метод можно рассматривать как способ уменьшить размерность данных большой размерности; элементы ввода с высокой размерностью могут быть уменьшены до версий с меньшей размерностью, сохраняя при этом относительные расстояния между элементами.

Алгоритмы приблизительного поиска ближайшего соседа на основе хеширования обычно используют одну из двух основных категорий методов хеширования: либо методы, не зависящие от данных, такие как хеширование с учетом местоположения (LSH); или методы, зависящие от данных, такие как хеширование с сохранением местоположения (LPH).

Определения

Семьи LSH определяется для метрического пространства , порога , коэффициента аппроксимации , а также вероятностей и . Это семейство представляет собой набор функций, которые отображают элементы метрического пространства в корзины . Семейство LSH должно удовлетворять следующим условиям для любых двух точек и любой хэш-функции, выбранной равномерно случайным образом из :

  • если , то (т. е. p и q сталкиваются) с вероятностью не менее ,
  • если , то с максимальной вероятностью .

Семья - это интересно, когда . Такая семья называется -чувствительной .

В качестве альтернативы он определен по отношению к вселенным элементам U , которые имеют сходство функции . Схема LSH - это семейство хэш-функций H, связанных с распределением вероятностей D по функциям, таким образом, что функция, выбранная согласно D, удовлетворяет свойству, что для любого .

Хеширование с сохранением местоположения

Сохраняющий локальность хеш - это хеш-функция f, которая отображает точки в метрическом пространстве в скалярное значение, такое что

для любых трех точек .

Другими словами, это хеш-функции, в которых относительное расстояние между входными значениями сохраняется в относительном расстоянии между выходными хеш-значениями; входные значения, которые находятся ближе друг к другу, будут производить выходные хеш-значения, которые ближе друг к другу.

Это контрастирует с криптографическими хэш-функциями и контрольными суммами , которые предназначены для получения случайной разности выходных данных между соседними входами .

Хэши, сохраняющие локальность, связаны с кривыми заполнения пространства .

Усиление

Учитывая -чувствительное семейство , мы можем построить новые семейства с помощью И-конструкции или ИЛИ-конструкции .

Чтобы создать AND-конструкцию, мы определяем новое семейство хэш-функций g , где каждая функция g построена из k случайных функций из . Затем мы говорим, что для хэш-функции , тогда и только тогда, когда все для . Поскольку члены семьи выбираются независимо для любой , является -чувствительной семьей.

Чтобы создать OR-конструкцию, мы определяем новое семейство хэш-функций g , где каждая функция g построена из k случайных функций из . Тогда мы будем говорить , что для хэш - функции , если и только если для одного или нескольких значений I . Поскольку члены любой семьи выбираются независимо , является -чувствительной семьей.

Приложения

LSH был применен к нескольким проблемным областям, включая:

  • Компьютерная безопасность

Методы

Битовая выборка для расстояния Хэмминга

Один из самых простых способов создать семейство LSH - это побитовая выборка. Этот подход работает для расстояния Хэмминга по d-мерным векторам . Здесь семейство хэш-функций - это просто семейство всех проекций точек на одну из координат, т. Е. , Где - th координата . Случайная функция из просто выбирает случайный бит из входной точки. Это семейство имеет следующие параметры: , .

Минимальные независимые перестановки

Пусть U состоит из подмножеств некоторого основного множества ПЕРЕЧИСЛИМЫХ элементов S и функции подобия интереса представляет Jaccard индекс J . Если π - перестановка индексов S , пусть . Каждый возможный выбор П определяет один хэш - функции ч входных наборов отображения к элементам S .

Определим семейство функций H как набор всех таких функций, и пусть D будет равномерным распределением . Учитывая два набора событие , которое точно соответствует событию , что минимизант П над лежит внутри . Как ч была выбрана случайно равномерно, и определить схему LSH для индекса Жаккара.

Поскольку симметричная группа на n элементах имеет размер n !, выбор действительно случайной перестановки из полной симметричной группы невозможен даже для среднего размера n . Из-за этого факта, была проведена значительная работа по поиску семейства перестановок, которое "не зависит от минимума" - семейства перестановок, для которого каждый элемент области имеет равную вероятность быть минимальным при случайно выбранном π . Было установлено, что минимально независимое семейство перестановок имеет по крайней мере размер , и что эта граница жесткая.

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

Методы с открытым исходным кодом

Нильсимса Хаш

Nilsimsa - это алгоритм хеширования, зависящий от местности, используемый в усилиях по борьбе со спамом . Цель Nilsimsa - создать хэш-дайджест сообщения электронной почты, чтобы дайджесты двух похожих сообщений были похожи друг на друга. В статье предполагается, что Нильсимса удовлетворяет трем требованиям:

  1. Дайджест, идентифицирующий каждое сообщение, не должен существенно отличаться от изменений, которые могут производиться автоматически.
  2. Кодирование должно быть устойчивым к преднамеренным атакам.
  3. Кодировка должна поддерживать чрезвычайно низкий риск ложных срабатываний.

TLSH

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

Тестирование, проведенное в статье на ряде типов файлов, показало, что хэш Nilsimsa имеет значительно более высокий уровень ложных срабатываний по сравнению с другими схемами дайджеста сходства, такими как TLSH, Ssdeep и Sdhash.

Реализация TLSH доступна как программное обеспечение с открытым исходным кодом .

Случайная проекция

Набросок 1-тэта и соз (тэта)
Для малых углов (не слишком близких к ортогональным) это довольно хорошее приближение к .

Метод случайной проекции LSH из-за Моисея Чарикара, называемый SimHash (также иногда называемый arccos), предназначен для аппроксимации косинусного расстояния между векторами. Основная идея этого метода состоит в том, чтобы выбрать случайную гиперплоскость (определяемую нормальным единичным вектором r ) в самом начале и использовать гиперплоскость для хеширования входных векторов.

Для входного вектора v и гиперплоскости, определяемой r , мы положим . То есть в зависимости от того, с какой стороны лежит гиперплоскость v .

Каждый возможный выбор r определяет одну функцию. Пусть H - множество всех таких функций, и пусть D - снова равномерное распределение. Не трудно доказать , что для двух векторов , где угол между ц и об . тесно связан с .

В этом случае хеширование дает только один бит. Биты двух векторов совпадают с вероятностью, пропорциональной косинусу угла между ними.

Стабильные дистрибутивы

Хеш-функция отображает d- мерный вектор на множество целых чисел. Каждый хэш - функции в семье индексируется путем выбора случайным образом и где это д мерный вектор с элементами , выбранными независимо из распределения стабильного и является действительным числом выбраны равномерно из диапазона [0, г]. Для фиксированного значения хэш-функция имеет вид .

Для лучшего соответствия данным были предложены другие методы построения хэш-функций. В частности, на практике хеш-функции k-средних лучше, чем хеш-функции на основе проекций, но без каких-либо теоретических гарантий.

Семантическое хеширование

Семантическое хеширование - это метод, который пытается сопоставить входные элементы с адресами, чтобы более близкие входные данные имели более высокое семантическое сходство . Хэш-коды находятся путем обучения искусственной нейронной сети или графической модели .

LSH алгоритм поиска ближайшего соседа

Одним из основных приложений LSH является обеспечение метода эффективных алгоритмов поиска ближайшего соседа . Рассмотрим семейство LSH . Алгоритм имеет два основных параметра: ширину параметра K и количество хэш - таблицы L .

На первом шаге мы определяем новое семейство хэш-функций g , где каждая функция g получается конкатенацией k функций из , т . Е .. Другими словами, случайная хеш-функция g получается конкатенацией k случайно выбранных хэш-функций из . Затем алгоритм создает L хэш-таблиц, каждая из которых соответствует разной случайно выбранной хеш-функции g .

На этапе предварительной обработки мы хэшируем все n точек из набора данных S в каждую из L хэш-таблиц. Учитывая, что в результирующих хэш-таблицах есть только n ненулевых записей, можно уменьшить объем памяти, используемой для каждой хеш-таблицы, до использования стандартных хеш-функций .

Для заданной точки запроса q алгоритм перебирает L хэш-функций g . Для каждого рассматриваемого g он извлекает точки данных, которые хешируются в тот же сегмент, что и q . Процесс останавливается, как только будет найдена точка на расстоянии от q .

При заданных параметрах k и L алгоритм имеет следующие гарантии работоспособности:

  • время предварительной обработки:, где t - время вычисления функции на входной точке p ;
  • пробел:, плюс место для хранения точек данных;
  • время запроса: ;
  • алгоритму удается найти точку на расстоянии от q (если существует точка на расстоянии R ) с вероятностью не менее ;

Для фиксированного отношения аппроксимации и вероятностей и можно установить и , где . Тогда получаются следующие гарантии производительности:

  • время предварительной обработки: ;
  • пробел:, плюс место для хранения точек данных;
  • время запроса: ;

Смотрите также

использованная литература

дальнейшее чтение

  • Самет, Х. (2006) Основы многомерных и метрических структур данных . Морган Кауфманн. ISBN  0-12-369446-9

внешние ссылки