Я візуальна людина. Ось що для мене працює як інтуїція.
Скажіть, що кожна з речей, яку ви хочете шукати, - це фізичні предмети, такі як яблуко, кубик, стілець.
Моя інтуїція щодо LSH полягає в тому, що вона схожа на те, щоб сприйняти тіні цих об'єктів. Як якщо б ви взяли тінь 3D-куба, ви отримаєте 2D-подібний квадрат на аркуші паперу, або 3D-сфера отримає вам тінь, схожий на коло на аркуші паперу.
Врешті-решт, у проблемі пошуку є набагато більше трьох аспектів (де кожне слово в тексті може бути одним виміром), але тіньова аналогія для мене все ще дуже корисна.
Тепер ми можемо ефективно порівнювати рядки бітів у програмному забезпеченні. Бітовий рядок фіксованої довжини начебто більш-менш схожий на рядок в одному вимірі.
Отже, за допомогою LSH я проектую тіні об'єктів у кінцевому підсумку як точки (0 або 1) на одній лінійці / бітовій рядку з фіксованою довжиною.
Вся хитрість полягає в тому, щоб взяти тіні таким чином, щоб вони все-таки мали сенс у нижньому вимірі, наприклад, вони нагадували оригінальний об'єкт досить добре, що їх можна розпізнати.
2D-малюнок куба в перспективі говорить мені, що це куб. Але я не можу легко відрізнити 2D-квадрат від тіні 3D-куба без перспективи: вони обидва схожі на квадрат.
Те, як я представляю свій предмет на світло, визначає, отримаю я гарну впізнавану тінь чи ні. Тож я думаю про "хороший" LSH як той, який перетворить мої об'єкти перед світлом таким чином, щоб їх тінь найкраще розпізнавалася як така, що представляє мій об'єкт.
Отже, підводячи підсумки: я думаю, що речі індексуються LSH як фізичні об'єкти, такі як куб, стіл або стілець, і я проектую їх тіні в 2D і, врешті-решт, по лінії (трохи рядок). І "хороша" функція "LSH" - це те, як я представляю свої предмети перед світлом, щоб отримати приблизно відмітну форму в 2D-рівнині, а згодом і моїй шматочок.
Нарешті, коли я хочу шукати, чи є у мене об'єкт, подібний до деяких об'єктів, які я індексував, я знімаю тіні цього об'єкта "запиту", використовуючи той самий спосіб, щоб подати свій об'єкт перед світлом (зрештою, закінчившись трохи рядок теж). І тепер я можу порівняти, наскільки схожий цей бітовий рядок з усіма іншими моїми індексованими бітовими рядками, який є проксі-сервером для пошуку всіх моїх об'єктів, якщо я знайшов хороший і впізнаваний спосіб представити свої об'єкти моєму світлу.