Я визуальный человек. Вот что работает для меня как интуиция.
Скажите, что каждая вещь, которую вы хотите найти приблизительно, это физические объекты, такие как яблоко, куб, стул.
Моя интуиция для LSH заключается в том, что он похож на отбрасывание теней этих объектов. Например, если вы возьмете тень 3D-куба, вы получите 2D-квадрат на листе бумаги, или 3D-сфера даст вам круговую тень на листе бумаги.
В конце концов, в задаче поиска есть более трех измерений (где каждое слово в тексте может быть одним измерением), но тень аналогия все еще очень полезна для меня.
Теперь мы можем эффективно сравнивать строки битов в программном обеспечении. Битовая строка фиксированной длины более или менее похожа на строку в одном измерении.
Таким образом, с помощью LSH я в конечном итоге проецирую тени объектов в виде точек (0 или 1) на одну строку / битовую строку фиксированной длины.
Весь трюк состоит в том, чтобы использовать тени таким образом, чтобы они все еще имели смысл в более низком измерении, например, они достаточно хорошо напоминают исходный объект, который можно распознать.
2D-чертеж куба в перспективе говорит мне, что это куб. Но я не могу легко отличить двухмерный квадрат от трехмерной кубической тени без перспективы: они оба выглядят для меня как квадрат.
То, как я представляю свой объект свету, будет определять, получу ли я хорошо узнаваемую тень или нет. Поэтому я думаю о «хорошем» LSH как о том, что превратит мои объекты перед светом так, чтобы их тень лучше всего узнавалась как представляющая мой объект.
Итак, подведем итог: я думаю о вещах, которые нужно индексировать с помощью LSH, как о физических объектах, таких как куб, стол или стул, и я проецирую их тени в 2D и, в конечном итоге, вдоль линии (битовая строка). А «хорошая» LSH «функция» - это то, как я представляю свои объекты перед источником света, чтобы получить приблизительно различимую форму в 2D равнине, а затем и в моей битовой струне.
Наконец, когда я хочу найти, похож ли мой объект на некоторые объекты, которые я проиндексировал, я беру тени этого объекта «запрос», используя тот же способ, чтобы представить мой объект перед источником света (в конце концов, немного Строка тоже). И теперь я могу сравнить, насколько похожа эта битовая строка со всеми моими другими индексированными битовыми строками, которая является прокси-сервером для поиска моих объектов целиком, если я нашла хороший и узнаваемый способ представить свои объекты моему свету.