Encontrar vectores similares en tiempo subcuadratico

9

Sea una función a la que nos referimos como la función de similitud . Ejemplos de función de similitud son la distancia del coseno, la norma , la distancia de Hamming, la similitud de Jaccard, etc.d:{0,1}k×{0,1}kRl2

Considere vectores binarios de longitud : .nkv({0,1}k)n

Nuestro objetivo es agrupar vectores que son similares. Más formalmente, queremos calcular un gráfico de similitud donde los nodos son los vectores y los bordes representan vectores que son similares ( ).d(v,u)ϵ

n y son números muy grandes, y comparar dos vectores longitud es costoso, no podemos hacer todas las operaciones de fuerza bruta . Queremos calcular el gráfico de similitud con significativamente menos operaciones.kkO(n2)

es posible? Si no, ¿podemos calcular una aproximación al gráfico que contiene todos los bordes en el gráfico de similitud más posiblemente a lo sumo otros bordes?O(1)

RAM
fuente
¿Debería ser lugar de ? ϵϵ
usul
@usul Gracias por tu comentario :) Aquí, nos interesó agrupar elementos que son muy similares. He editado la pregunta, espero que esté clara ahora.
Ram
Me parece que podría usar Hashing de conservación de similitud ( arxiv.org/pdf/1311.7662v1.pdf ) para reducir la dimensión del problema.
RB
44
Esta pregunta no está bien definida, proporcione más detalles. Por ejemplo, si un oráculo da , entonces obviamente no puede hacerlo mejor que . d(n2)
domotorp
55
¿Trabajas para twitter? blog.twitter.com/2014/all-pairs-similarity-via-dimsum En serio, incluso detectar si hay un borde en este gráfico (es decir, que no es un conjunto independiente de vértices) será muy difícil de hacer más rápido que para una función de similitud arbitraria. O(n2)
Ryan Williams

Respuestas:

5

Puede haber una manera de calzar el teorema de Johnson-Lindenstrauss en este problema. Esencialmente, JL afirma que puede proyectar datos de alta dimensión en espacios de menor dimensión de tal manera que las distancias por pares estén casi preservadas. Más prácticamente, Achlioptas tiene un documento llamado Proyecciones aleatorias compatibles con la base de datos: Johnson-Lindenstrauss con monedas binarias que realiza esta proyección de manera aleatoria, que funciona bastante bien en la práctica.

Ahora, ciertamente, su función de similitud no es exactamente igual a algo que encajaría en el teorema de JL. Sin embargo, parece una función de distancia y quizás algo de la teoría anterior pueda ayudar.

wyer33
fuente