Considérez équipé du produit scalaire standard et vecteurs: . Nous voulons construire une structure de données qui autorise les requêtes au format suivant: étant donné output . Est-il possible d'aller au-delà du temps de requête O (nm) trivial ? Par exemple, si n = 2 , alors il est immédiat d'obtenir O (\ log ^ 2 m) .R nRn ⟨⋅,⋅⟩⟨⋅,⋅⟩mm v 1 , v 2 ,..., v mv1,v2,…,vm x∈ R n x∈Rnmin i ⟨x, v i ⟩mini⟨x,vi⟩ O ( n m )O(nm) n=2n=2O( connecte 2 m)O(log2m)
La seule chose que je peux trouver est la suivante. C'est une conséquence immédiate du lemme de Johnson-Lindenstrauss que pour chaque ε > 0ε>0 et une distribution réD sur R nRn il y a un mappage linéaire f : R n → R O ( log m )f:Rn→RO(logm) (qui peut être évalué en O ( n log m )O(nlogm) temps) de telle sorte que P r x ∼ D [ ∀ i⟨ X , v i ⟩ - ε ( ‖ x ‖ + ‖ v i ‖ ) 2 ≤ ⟨ f ( x ) , f ( v i ) ⟩ ≤ ⟨ x , v i ⟩ + ε ( ‖ x ‖ + ‖ v i ‖ ) 2 ] ≥ 1 - εPrx∼D[∀i⟨x,vi⟩−ε(∥x∥+∥vi∥)2≤⟨f(x),f(vi)⟩≤⟨x,vi⟩+ε(∥x∥+∥vi∥)2]≥1−ε . Donc, dans le temps O ( ( n + m ) log m )O((n+m)logm) nous pouvons calculerquelque chose qui est en quelque sorte proche de min i ⟨ x , v i ⟩mini⟨x,vi⟩ pour la plupart des Xx (au moins si les normes ‖ X ‖∥x∥ et ‖ V i ‖∥vi∥ sont petites).
UPD La limite susmentionnée peut être quelque peu affinée au temps de requête O ( n + m )O(n+m) si nous utilisons un hachage sensible à la localité. Plus précisément, nous choisissons k : = O ( 1ε 2 )k:=O(1ε2) des vecteurs gaussiens indépendants r 1 , r 2 , … , r kr1,r2,…,rk . Ensuite, nous mappons R nRn à { 0 , 1 } k{0,1}k comme suit: v ↦ ( ⟨ r 1 , v ⟩ ≥ 0 , ⟨ r 2 , v ⟩ ≥ 0 , ... , ⟨ r k , v ⟩ ≥ 0 )v↦(⟨r1,v⟩≥0,⟨r2,v⟩≥0,…,⟨rk,v⟩≥0) . On peut alors estimer l'angle entre deux vecteurs au sein d'une erreur additive εε en calculant ℓ 1ℓ1 -distance dans l'image de cette cartographie. Ainsi, nous pouvons estimer les produits scalaires au sein d'une erreur additiveε ‖ x ‖ ‖ v i ‖ε∥x∥∥vi∥en temps O ( 1ε 2 )O(1ε2) .