Ben görsel bir insanım. İşte benim için bir sezgi olarak işe yarayan.
Aramak istediğiniz her şeyin yaklaşık olarak elma, küp, sandalye gibi fiziksel nesneler olduğunu varsayalım.
Bir LSH için sezgim, bu nesnelerin gölgelerini almanın benzer olmasıdır. Bir 3D küpün gölgesini alırsanız, bir kağıt parçası üzerinde 2D kare benzeri bir şey elde edersiniz veya 3D küre size bir kağıt parçası üzerinde daire benzeri bir gölge verir.
Sonunda, bir arama probleminde (metindeki her kelimenin bir boyut olabileceği) üçten fazla boyut vardır, ancak gölge benzetmesi benim için hala çok yararlıdır.
Artık yazılımdaki bit dizelerini verimli bir şekilde karşılaştırabiliriz. Sabit uzunluklu bit dizesi, tek bir boyuttaki bir çizgi gibi, az çok.
Bir LSH ile, nesnelerin gölgelerini sonunda tek bir sabit uzunluk çizgisi / bit dizesine nokta (0 veya 1) olarak yansıtırım.
Bütün hile, gölgeleri alt boyutta hala mantıklı olacak şekilde almaktır, örneğin orijinal nesneye tanınabilecek kadar iyi benzemektedirler.
Bir küpün perspektif olarak 2B çizimi bana bunun bir küp olduğunu söylüyor. Ama bir 2D kareyi, perspektifsiz bir 3D küp gölgesinden kolayca ayırt edemiyorum: ikisi de bana bir kare gibi görünüyor.
Nesnemi ışığa nasıl sunacağım, iyi tanınabilir bir gölge alıp almadığımı belirler. Bu yüzden "iyi" bir LSH'yi nesnelerimi bir ışık önünde çevirecek olan gölge olarak düşünüyorum, böylece gölgeleri en iyi nesneyi temsil ediyor olabilir.
Özetlemek gerekirse: Bir LSH ile küp, masa veya sandalye gibi fiziksel nesneler olarak endekslenecek şeyleri düşünüyorum ve gölgelerini 2D ve sonunda bir çizgi boyunca (biraz dize) yansıtıyorum. Ve "iyi" LSH "fonksiyonu" 2B düzlükte ve daha sonra bit dizimde yaklaşık ayırt edilebilir bir şekil elde etmek için nesnelerimi bir ışık önünde nasıl sunacağım.
Sonunda sahip olduğum bir nesnenin indekslediğim bazı nesnelere benzer olup olmadığını araştırmak istediğimde, bu "sorgu" nesnesinin gölgelerini, nesneyi ışığın önünde sunmak için aynı yolu kullanarak alıyorum (sonunda biraz bitiyor) dize). Ve şimdi, bu bit dizesinin, diğer tüm dizinlenmiş bit dizelerimle ne kadar benzer olduğunu karşılaştırabilirim; bu, nesnelerimi ışığa sunmanın iyi ve tanınabilir bir yolunu bulursam, tüm nesnelerimı aramak için bir proxy.