1

Приводя руководство E2LSH (это не важно, что это об этой конкретной библиотеке, эта цитата должна быть верна для задачи NN вообще):Как разрешить ближайшего соседа через ближайшего соседа R?

E 2LSH также может быть использован для решения ближайшей проблемы соседа, где , с учетом запроса q, для структуры данных требуется отчет в точке в P, ближайшей к q. Это можно сделать, создав несколько соседних структур данных R-near , для R = R1, R2,. , , Rt, где Rt должно быть больше максимального расстояния от любой точки запроса до ближайшего соседа . Ближайший сосед может быть затем извлекали запрашивая структуры данных в возрастающем порядке radiae, остановки всякий раз, когда первая точка находится

Может кто-то перефразировать это, пожалуйста? Я не пытаюсь найти ближайшего соседа по подходу R-near neighbour.

ответ

1

Я приведу пример, который должен прояснить ситуацию. Предположим, что наш набор данных состоит только из одной точки, p и появляется точка запроса, q. Предположим, что расстояние p и q составляет 3,9.

Теперь, используя E2LSH $, я могу создать структуру данных, которая решает R-ближайший сосед проблему, то он будет отвечать да (и принесите мне точку), что лежит внутри радиуса R. Если нет такого точка существует, ответ будет отрицательным.

Допустим, я выбираю построить 5 структур данных такого рода, начиная с R = 1 до 5. В нашем сознании, это то, что мы делали до сих пор:

enter image description here

Так что теперь помните, что d (p, q) = 3,9, поэтому мы ожидаем спросить структуру данных, которая построена с R = 4 и найти для нас точку запроса q.

Теперь давайте притворимся, что мы не знаем d (p, q), поэтому мы начинаем поиск с самого маленького радиуса, который мы выбрали, это 1. Итак, мы спрашиваем: есть ли что-либо в радиусе (равном 1) из наш набор данных? Нет!

От R = 2? Нет! От R = 3? Нет! От R = 4? Да, и это q! Итак, теперь мы закончили. 4 - R t Вы упомянули в своем вопросе.


* Это сильное предположение и E2LSH страдает для того, чтобы положить пользователю ввести этот параметр R, так как обычно мы не знаем, какое значение R есть, слишком большой, и мы будем тратить пространство и время, слишком мало, и мы не найдем наш запрос!

$ Я слышал, что есть что-то более современное, чем E2LSH сейчас, на главной странице Ilya Razenshteyn.

+0

Святые ...!Это так наивно и неэффективно: D Я должен сказать это: я уже думал, что это был подход, описанный в вопросе, но мне показалось так много проблем, что я хотел быть уверенным в этом! Прежде всего: как мы решаем шаг увеличения радиуса? Если он слишком велик, возможно, не найдя соседа, мы найдем их, но если он слишком мал, нам придется делать ТАК МНОГО Итераций! В нескольких словах: настройка как ад (что обычно не очень хорошо). В любом случае ** большое спасибо ** за связь FALCONN и ваш ответ! – justHelloWorld

+0

И ваш ответ был таким ясным! Большое спасибо (надеясь не беспокоить вас со всеми этими вопросами о LSH;)) – justHelloWorld

+1

@justHelloWorld tuning! Я не знаю другой техники, но это открытый вопрос, и на этом делается много исследований! Нет, мой друг, совсем нет! На самом деле, я наслаждался вашими вопросами, потому что они заставили меня освежить то, что я знаю, и узнать что-то новое! Поэтому я благодарю вас! Ура! – gsamaras

Смежные вопросы