SimRank es una medida de similitud general , basada en un modelo de teoría de grafos simple e intuitivo . SimRank es aplicable en cualquier dominio con relaciones entre objetos , y mide la similitud del contexto estructural en el que aparecen los objetos, basándose en sus relaciones con otros objetos. En efecto, SimRank es una medida que indica que dos objetos se consideran similares si son referenciados por objetos similares. Aunque SimRank es ampliamente utilizado, puede generar puntuaciones de similitud poco razonables, influenciadas por diversos factores, lo cual puede solucionarse de varias maneras, como introduciendo un factor de ponderación de la evidencia, [ 1 ] insertando términos adicionales que SimRank no considera [ 2 ] o utilizando alternativas basadas en PageRank. [ 3 ]
Introducción
Muchas aplicaciones requieren medir la similitud entre objetos. Un ejemplo claro es la consulta "encontrar documentos similares" en corpus de texto tradicionales o en la World Wide Web . De forma más general, una medida de similitud puede utilizarse para agrupar objetos , como en el filtrado colaborativo de un sistema de recomendación , donde los usuarios y elementos "similares" se agrupan según las preferencias de los usuarios.
Diversos aspectos de los objetos pueden utilizarse para determinar la similitud, dependiendo generalmente del dominio y de la definición de similitud apropiada para dicho dominio. En un corpus de documentos , se puede utilizar texto coincidente, y para el filtrado colaborativo, se pueden identificar usuarios similares mediante preferencias comunes. SimRank es un enfoque general que aprovecha las relaciones entre objetos presentes en muchos dominios de interés. En la web , por ejemplo, dos páginas están relacionadas si existen hipervínculos entre ellas. Un enfoque similar puede aplicarse a artículos científicos y sus citas, o a cualquier otro corpus de documentos con información de referencias cruzadas . En el caso de los sistemas de recomendación, la preferencia de un usuario por un elemento constituye una relación entre el usuario y el elemento. Estos dominios se modelan naturalmente como grafos , donde los nodos representan objetos y las aristas representan relaciones.
La intuición detrás del algoritmo SimRank es que, en muchos dominios, los objetos similares son referenciados por objetos similares. Más precisamente, los objetos y se consideran similares si son referenciados por los objetos y , respectivamente, y y son similares entre sí. El caso base es que los objetos son máximamente similares entre sí. [ 4 ]
Es importante destacar que SimRank es un algoritmo general que determina únicamente la similitud del contexto estructural. SimRank se aplica a cualquier dominio donde existan suficientes relaciones relevantes entre objetos para fundamentar, al menos en cierta medida, la noción de similitud en dichas relaciones. Obviamente, la similitud de otros aspectos específicos del dominio también es importante; estos pueden —y deben— combinarse con la similitud relacional del contexto estructural para obtener una medida de similitud global. Por ejemplo, para páginas web, SimRank puede combinarse con la similitud textual tradicional; la misma idea se aplica a artículos científicos u otros corpus documentales. En los sistemas de recomendación, puede haber similitudes conocidas entre elementos (por ejemplo, ambos ordenadores, ambas prendas de vestir, etc.), así como similitudes entre usuarios (por ejemplo, mismo género, mismo nivel de gasto). Nuevamente, estas similitudes pueden combinarse con las puntuaciones de similitud calculadas en función de los patrones de preferencia para obtener una medida de similitud global.
Ecuación básica de SimRank
Para un nodo en un grafo dirigido, denotamos por y el conjunto de vecinos entrantes y salientes de , respectivamente. Los vecinos entrantes individuales se denotan como , para , y los vecinos salientes individuales se denotan como , para .
Denotemos la similitud entre objetos y por . Siguiendo la motivación anterior, se escribe una ecuación recursiva para . Si entonces se define como . De lo contrario,
donde es una constante entre y . Un pequeño detalle técnico aquí es que o pueden no tener vecinos entrantes. Dado que no hay forma de inferir ninguna similitud entre y en este caso, la similitud se establece en , por lo que la suma en la ecuación anterior se define como cuando o .
Representación matricial de SimRank
Dado un valor constante arbitrario entre y , sea la matriz de similitud cuya entrada denota la puntuación de similitud , y sea la matriz de adyacencia normalizada por columnas cuya entrada es si existe una arista de a , y 0 en caso contrario. Entonces, en notación matricial, SimRank se puede formular como
donde es una matriz identidad .
Computación SimRank
Se puede llegar a una solución para las ecuaciones de SimRank de un grafo mediante iteración a un punto fijo . Sea el número de nodos en . Para cada iteración , podemos guardar entradas , donde da la puntuación entre y en la iteración . Calculamos sucesivamente basándonos en . Comenzamos con donde cada es una cota inferior de la puntuación real de SimRank :
Para calcular a partir de , utilizamos la ecuación básica de SimRank para obtener:
para y para . Es decir, en cada iteración , actualizamos la similitud de utilizando las puntuaciones de similitud de los vecinos de de la iteración anterior según la ecuación básica de SimRank. Los valores no disminuyen a medida que aumenta. Se demostró en [ 4 ] que los valores convergen a límites que satisfacen la ecuación básica de SimRank, las puntuaciones de SimRank , es decir, para todo , .
La propuesta original de SimRank sugería elegir el factor de decaimiento y un número fijo de iteraciones. Sin embargo, una investigación reciente [ 5 ] demostró que los valores dados para y generalmente implican una precisión relativamente baja en las puntuaciones de SimRank calculadas iterativamente. Para garantizar resultados de cálculo más precisos, este último artículo sugiere usar un factor de decaimiento menor (en particular, ) o realizar más iteraciones.
CoSimRank
CoSimRank es una variante de SimRank con la ventaja de tener también una formulación local, es decir, CoSimRank se puede calcular para un único par de nodos. [ 6 ] Sea la matriz de similitud cuya entrada denota la puntuación de similitud , y sea la matriz de adyacencia normalizada por columnas. Entonces, en notación matricial, CoSimRank se puede formular como:
donde es una matriz identidad. Para calcular la puntuación de similitud de un solo par de nodos, sea , donde es un vector de la base estándar , es decir, la entrada -ésima es 1 y todas las demás entradas son 0. Entonces, CoSimRank se puede calcular en dos pasos:
El primer paso puede verse como una versión simplificada de PageRank personalizado . El segundo paso suma la similitud vectorial de cada iteración. Tanto la representación matricial como la local calculan la misma puntuación de similitud. CoSimRank también puede utilizarse para calcular la similitud de conjuntos de nodos, modificando .
Investigación adicional sobre SimRank
- Fogaras y Racz [ 7 ] sugirieron acelerar el cálculo de SimRank mediante un cálculo probabilístico utilizando el método de Monte Carlo .
- Antonellis et al. [ 8 ] extendieron las ecuaciones de SimRank para tener en cuenta (i) el factor de evidencia para los nodos incidentes y (ii) los pesos de los enlaces.
- Yu et al. [ 9 ] mejoraron aún más el cálculo de SimRank mediante un método de memorización de grano fino para compartir pequeñas partes comunes entre diferentes sumas parciales.
- Chen y Giles analizaron las limitaciones y los casos de uso adecuados de SimRank. [ 3 ]
Memorización de sumas parciales
Lizorkin et al. [ 5 ] propusieron tres técnicas de optimización para acelerar el cálculo de SimRank:
- La selección de nodos esenciales puede eliminar el cálculo de una fracción de pares de nodos con puntuaciones nulas a priori.
- La memorización de sumas parciales puede reducir eficazmente los cálculos repetidos de la similitud entre diferentes pares de nodos al almacenar en caché parte de las sumas de similitud para su posterior reutilización.
- Al establecer un umbral de similitud, se puede reducir aún más el número de pares de nodos que se deben calcular.
En particular, la segunda observación de la memorización de sumas parciales juega un papel primordial al acelerar enormemente el cálculo de SimRank de a , donde es el número de iteraciones, es el grado promedio de un grafo y es el número de nodos en un grafo. La idea central de la memorización de sumas parciales consta de dos pasos:
Primero, las sumas parciales sobre se memorizan como
y luego se calcula iterativamente a partir de como
En consecuencia, los resultados de , , se pueden reutilizar más adelante cuando calculamos las similitudes para un vértice dado como primer argumento.
Véase también
Citas
- ^ I. Antonellis, H. Garcia-Molina y C.-C. Chang. Simrank++: Reescritura de consultas mediante análisis de enlaces del grafo de clics. En VLDB '08 : Actas de la 34.ª Conferencia Internacional sobre Bases de Datos Muy Grandes, páginas 408-421. [1]
- ^ W. Yu, X. Lin, W. Zhang, L. Chang y J. Pei. Más es más simple: Evaluación eficaz y eficiente de similitudes entre pares de nodos basada en hipervínculos. En VLDB '13 : Actas de la 39.ª Conferencia Internacional sobre Bases de Datos Muy Grandes, páginas 13-24. [2]
- ^ a b H. Chen y CL Giles. "ASCOS++: Una medida de similitud asimétrica para redes ponderadas para abordar el problema de SimRank." ACM Transactions on Knowledge Discovery from Data (TKDD) 10.2 2015. [3]
- ^ a b G. Jeh y J. Widom. SimRank: Una medida de similitud de contexto estructural. En KDD'02 : Actas de la octava conferencia internacional ACM SIGKDD sobre descubrimiento de conocimiento y minería de datos, páginas 538-543. ACM Press , 2002. "Copia archivada" (PDF) . Archivado del original (PDF) el 12 de mayo de 2008. Recuperado el 2 de octubre de 2008 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace ) - ^ a b D. Lizorkin, P. Velikhov, M. Grinev y D. Turdakov. Estimación de precisión y técnicas de optimización para el cálculo de SimRank. En VLDB '08 : Actas de la 34.ª Conferencia Internacional sobre Bases de Datos Muy Grandes, páginas 422-433. "Copia archivada" (PDF) . Archivado del original (PDF) el 7 de abril de 2009. Recuperado el 25 de octubre de 2008 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace ) - ^ S. Rothe y H. Schütze. CoSimRank: Una medida de similitud basada en la teoría de grafos, flexible y eficiente. En ACL '14 : Actas de la 52.ª Reunión Anual de la Asociación de Lingüística Computacional (Volumen 1: Artículos extensos), páginas 1392-1402. [4]
- ^ D. Fogaras y B. Racz. Escalado de la búsqueda de similitud basada en enlaces. En WWW '05 : Actas de la 14.ª conferencia internacional sobre la World Wide Web, páginas 641-650, Nueva York, NY, EE. UU., 2005. ACM . [5]
- ^ Antonellis, Ioannis, Hector Garcia Molina y Chi Chao Chang. «Simrank++: reescritura de consultas mediante análisis de enlaces del grafo de clics». Actas de la Fundación VLDB 1.1 (2008): 408-421. arXiv : 0712.0499
- ^ W. Yu, X. Lin, W. Zhang. Hacia un cálculo eficiente de SimRank en redes grandes. En ICDE '13 : Actas de la 29.ª Conferencia Internacional IEEE sobre Ingeniería de Datos, páginas 601-612. "Copia archivada" (PDF) . Archivado del original (PDF) el 12 de mayo de 2014. Recuperado el 9 de mayo de 2014 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace )
Fuentes
- Cai, Y.; Cong, G.; Jia, X.; Liu, H.; He, J.; Lu, J.; Du, X. (1 de diciembre de 2009). «Algoritmo eficiente para calcular la similitud basada en enlaces en redes del mundo real» . Novena Conferencia Internacional IEEE sobre Minería de Datos de 2009. págs. 734–739 . doi : 10.1109/ICDM.2009.136 . ISBN 978-1-4244-5242-2. S2CID 9799597 .
- Algoritmos de análisis de clústeres
- Medidas de similitud