Вы находитесь на странице: 1из 4

Анализ LSH на основе S-stable распределений

Цель - подобрать параметры алгоритма NN поиска с использованием LSH так, чтобы


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

• - из определения LSH
• - количество хэш-таблиц
• - количество простых хэш-функций, входящих в одну составную хэш-функцию

Без ограничения общности r рассматриваем равным 1.

Важным параметром для анализа LSH является величина . Время поиска


оценивается [1] как .

Рассматриваем LSH для на основе нормального распределения norm(0, 1).

В [3] вычислены вероятности коллизий для рассматриваемой хэш-функции:

,
где - кумулятивная функция нормального распределения с параметрами 0 и 1.

Подстановкой c = 1 получаем формулу для P1

c-Approximate Nearest Neighbour

Для решения данной задачи выбирается "Стратегия-1": выбираются 2L элементов из хэш-


таблицы по запросу.
Доказано [2], что для гарантии выполнения того, что требуется от c-NN алгоритма с
использованием данной функции, требуется выполнение следующих условий:


• ,

где n - размер колллекции данных.


С помощью среды R вычислена зависимость от c при фиксированном w = 1:
Зависимость от w при фиксированном c = 3:
На графиках фидно, что при выборе с=3 и w=1 получаем хорошую экспоненту .

Exact Randomized R-Near Neighbour

Здесь работает "Стратегия-2": выбираются все точки, захэшированные как точка-запрос.


Пусть вероятность того, что алгоритм найдёт R-near neighbour . Гарантия корректности
работы алгоритма с данной вероятностью обеспечивается [3] на основе следующей формулы:

Остаётся выбрать параметр k, минимизируя время поиска.


Пусть - время на вычисления всех хэш-функций для запроса. Оценка: . -
время на вычисление всех расстояний от извлечённых из хэш-таблицы точек до точки-запроса.
, где - число точек, которые захэшировались так же, как
точка-запрос, и которые пришлось извлечь. В [3] Вероятность одной коллизии расценивается
как функция от R. Матожидание:
.
Общее время работы есть сумма . При этом убывает с k, а возрастает .
Требуется оценить оптимальное среднее значение для k.
Для того, чтобы оценить , будем суммировать по некоторому ограниченному
репрезентативному множеству векторов данных. Здесь возникают вопросы. Корректно ли
считать, что существует такое множество? Как распределены данные? Что делать при
добавлении и удалении данных? Но мы их пока проигнорируем. Можно попробовать взять

часть данных коллекции , сосчитать для неё, а потом принять .

Литература

1. P. Indyk and R. Motwani. Approximate nearest neighbor: towards removing the curse of
dimensionality. Proceedings of the Symposium on Theory of Computing, 1998.
2. Aristides Gionis, Piotr Indyk, Rajeev Motwani. Similarity Search in High Dimensions via
Hashing
3. Alexandr Andoni, Mayur Datar, Nicole Immorlica, Piotr Indyk, and Vahab Mirrokni. Locality-
Sensitive Hashing Scheme Based on p-Stable Distributions, appearing in the book Nearest
Neighbor Methods in Learning and Vision: Theory and Practice, by T. Darrell and P. Indyk and
G. Shakhnarovich (eds.), MIT Press, 2006.