Encontrar vetores semelhantes em tempo subquadrático

9

Seja d:{0,1}k×{0,1}kR uma função à qual nos referimos como função de similaridade . Exemplos de funções de similaridade são distância cosseno, norma l2 , distância de Hamming, similaridade de Jaccard, etc.

Considere n vectores binários de comprimento k : v({0,1}k)n .

Nosso objetivo é agrupar vetores semelhantes. Mais formalmente, queremos calcular um gráfico de similaridade em que os nós são os vetores e as arestas representam vetores que são semelhantes ( d(v,u)ϵ ).

n ek são números muito grandes, e comparar doisvetores comprimentoké caro, não podemos realizar todas asoperações deforça brutaO(n2) . Queremos calcular o gráfico de similaridade com significativamente menos operações.

Isso é possível? Se não, podemos calcular uma aproximação ao gráfico que contém todas as arestas no gráfico de similaridade e possivelmente no máximo O(1) outras arestas?

RAM
fonte
Deveria ser ϵ vez de ϵ ?
usul
@usul Obrigado pelo seu comentário :) Aqui, estamos interessados ​​em agrupar itens que são altamente semelhantes. Eu editei a pergunta, espero que esteja clara agora.
Ram
Parece-me que você poderia usar o Similarity Preserving Hashing ( arxiv.org/pdf/1311.7662v1.pdf ) para reduzir a dimensão do problema.
RB
4
d(n2)
5
Você trabalha no twitter? blog.twitter.com/2014/all-pairs-similarity-via-dimsum Sério, até mesmo detectar se existe uma aresta neste gráfico (ou seja, que não é um conjunto independente de vértices) será muito difícil de ser feito mais rapidamente do que para uma função de similaridade arbitrária. O(n2)
Ryan Williams

Respostas:

5

Pode haver uma maneira de inserir o teorema de Johnson-Lindenstrauss nesse problema. Essencialmente, JL afirma que você pode projetar dados de alta dimensão em espaços dimensionais inferiores, de maneira que as distâncias em pares sejam quase preservadas. Mais praticamente, Achlioptas possui um documento chamado projeções aleatórias amigáveis ​​ao banco de dados: Johnson-Lindenstrauss com moedas binárias que faz essa projeção de maneira aleatória, o que funciona muito bem na prática.

Agora, certamente, sua função de similaridade não é exatamente a mesma que algo que se encaixaria no teorema da JL. No entanto, parece uma função de distância e talvez parte da teoria acima possa ajudar.

wyer33
fonte