Trouver des vecteurs similaires en temps sub-quadratique

9

Soit d:{0,1}k×{0,1}kR une fonction que nous appelons la fonction de similarité . Des exemples de fonctions de similitude sont la distance cosinus, la norme , la distance de Hamming, la similitude Jaccard, etc.l2

Considérons vecteurs binaires de longueur : .k v( { 0 , 1 } k ) nnkv({0,1}k)n

Notre objectif est de regrouper des vecteurs similaires. Plus formellement, nous voulons calculer un graphe de similitude où les nœuds sont les vecteurs et les arêtes représentent des vecteurs qui sont similaires ( ).d(v,u)ϵ

k k O ( n 2 )n et sont de très grands nombres, et la comparaison de deux vecteurs de longueur coûte cher, nous ne pouvons pas faire toutes les opérations force brute . Nous voulons calculer le graphique de similitude avec beaucoup moins d'opérations.kkO(n2)

Est-ce possible? Si ce n'est pas le cas, pouvons-nous calculer une approximation du graphique qui contient tous les bords du graphique de similitude plus éventuellement au plus autres bords?O(1)

RAM
la source
Doit-il être ϵ plutôt que ϵ ?
usul
@usul Merci pour votre commentaire :) Ici, nous avons voulu regrouper les éléments qui sont très similaires. J'ai édité la question, j'espère qu'elle est claire maintenant.
Ram
Cela me semble que vous pourriez utiliser le hachage de conservation de la similarité ( arxiv.org/pdf/1311.7662v1.pdf ) pour réduire la dimension du problème.
RB
4
Cette question n'est pas du tout bien définie, veuillez fournir plus de détails. Par exemple, si est donné par un oracle, alors vous ne pouvez évidemment pas faire mieux que . (n2)
domotorp
5
Travaillez-vous pour Twitter? blog.twitter.com/2014/all-pairs-similarity-via-dimsum Sérieusement, même détecter s'il y a un bord dans ce graphique (c'est-à-dire qu'il ne s'agit pas d'un ensemble indépendant de sommets) va être très difficile à faire plus rapidement que pour une fonction de similitude arbitraire. O(n2)
Ryan Williams

Réponses:

5

Il y a peut-être un moyen d' inciter le théorème de Johnson-Lindenstrauss à résoudre ce problème. Essentiellement, JL indique que vous pouvez projeter des données de haute dimension dans des espaces de dimension inférieure de manière à ce que les distances par paire soient presque préservées. Plus concrètement, Achlioptas a un article intitulé Projections aléatoires adaptées aux bases de données: Johnson-Lindenstrauss avec des pièces binaires qui effectue cette projection de manière aléatoire, ce qui fonctionne plutôt bien en pratique.

Maintenant, certainement, votre fonction de similitude n'est pas exactement la même chose que quelque chose qui s'insérerait dans le théorème JL. Cependant, cela ressemble à une fonction de distance et peut-être qu'une partie de la théorie ci-dessus peut aider.

wyer33
la source