Articulo de referencia

Algoritmo HITS

La Búsqueda de Temas Inducida por Hipervínculos ( HITS ; también conocida como hubs y autoridades ) es un algoritmo de análisis de enlaces que clasifica las páginas web, desarro...

La Búsqueda de Temas Inducida por Hipervínculos ( HITS ; también conocida como hubs y autoridades ) es un algoritmo de análisis de enlaces que clasifica las páginas web, desarrollado por Jon Kleinberg . La idea detrás de Hubs y Autoridades surgió de una observación particular sobre la creación de páginas web cuando Internet se estaba formando originalmente; es decir, ciertas páginas web, conocidas como hubs, servían como grandes directorios que no eran realmente autoritativos en la información que contenían, sino que se utilizaban como compilaciones de un amplio catálogo de información que dirigía a los usuarios directamente a otras páginas autorizadas. En otras palabras, un buen hub representa una página que apunta a muchas otras páginas, mientras que una buena autoridad representa una página que está enlazada por muchos hubs diferentes. [ 1 ]

Por lo tanto, el sistema asigna dos puntuaciones a cada página: su autoridad, que estima el valor del contenido de la página, y su valor de hub, que estima el valor de sus enlaces a otras páginas.

Historia

En revistas

Se han utilizado muchos métodos para clasificar la importancia de las revistas científicas. Uno de ellos es el factor de impacto de Garfield . Revistas como Science y Nature reciben numerosas citas, lo que les confiere factores de impacto muy altos. Por lo tanto, al comparar dos revistas menos conocidas que han recibido aproximadamente el mismo número de citas, pero una de ellas ha recibido muchas citas de Science y Nature , esta última debe tener una clasificación más alta. En otras palabras, es mejor recibir citas de una revista importante que de una poco importante. [ 2 ]

En la web

Este fenómeno también ocurre en Internet . Contar el número de enlaces a una página nos permite estimar su relevancia en la web, pero una página con muy pocos enlaces entrantes también puede ser prominente si dos de ellos provienen de las páginas de inicio de sitios como Yahoo !, Google o MSN . Dado que estos sitios son muy importantes y, además, son motores de búsqueda , una página puede aparecer en una posición mucho más alta de lo que realmente le corresponde.

Algoritmo

Ampliar el conjunto raíz a un conjunto base.

Pasos

En el algoritmo HITS, el primer paso consiste en recuperar las páginas más relevantes para la consulta de búsqueda. Este conjunto se denomina conjunto raíz y se obtiene seleccionando las páginas principales devueltas por un algoritmo de búsqueda basado en texto . Se genera un conjunto base ampliando el conjunto raíz con todas las páginas web que enlazan desde él y algunas de las que enlazan con él. Las páginas web del conjunto base y todos los hipervínculos entre ellas forman un subgrafo enfocado. El cálculo HITS se realiza únicamente sobre este subgrafo enfocado . Según Kleinberg, el motivo para construir un conjunto base es asegurar que se incluyan la mayoría (o muchas) de las autoridades más importantes.

Los valores de autoridad y de hub se definen en términos mutuos mediante una recursión recíproca . Un valor de autoridad se calcula como la suma de los valores de hub escalados que apuntan a esa página. Un valor de hub es la suma de los valores de autoridad escalados de las páginas a las que apunta. Algunas implementaciones también consideran la relevancia de las páginas enlazadas.

El algoritmo realiza una serie de iteraciones, cada una de las cuales consta de dos pasos básicos:

  • Actualización de autoridad : Actualiza la puntuación de autoridad de cada nodo para que sea igual a la suma de las puntuaciones de los nodos centrales que lo enlazan. Es decir, un nodo obtiene una puntuación de autoridad alta al ser enlazado desde páginas reconocidas como centros de información.
  • Actualización del hub : Actualiza la puntuación de hub de cada nodo para que sea igual a la suma de las puntuaciones de autoridad de cada nodo al que apunta. Es decir, un nodo obtiene una puntuación de hub alta al enlazar con nodos que se consideran autoridades en el tema.

La puntuación del Hub y la puntuación de Autoridad para un nodo se calculan con el siguiente algoritmo:

  • Comience con cada nodo teniendo una puntuación de hub y una puntuación de autoridad de 1.
  • Ejecutar la regla de actualización de autoridad
  • Ejecutar la regla de actualización del hub
  • Normalice los valores dividiendo cada puntuación de Hub por la raíz cuadrada de la suma de los cuadrados de todas las puntuaciones de Hub, y dividiendo cada puntuación de Authority por la raíz cuadrada de la suma de los cuadrados de todas las puntuaciones de Authority.
  • Repita desde el segundo paso según sea necesario.

Comparación con PageRank

HITS, al igual que PageRank de Page y Brin , es un algoritmo iterativo basado en la vinculación de los documentos en la web . Sin embargo, tiene algunas diferencias importantes:

  • Se procesa sobre un pequeño subconjunto de documentos "relevantes" (un "subgrafo enfocado" o conjunto base), en lugar del conjunto de todos los documentos, como ocurría con PageRank.
  • Depende de la consulta: la misma página puede recibir una puntuación de hub/autoridad diferente según el conjunto base, que aparece para una consulta diferente;
  • Como consecuencia, debe ejecutarse en el momento de la consulta, no en el momento de la indexación, con la consiguiente disminución del rendimiento que conlleva el procesamiento en tiempo de consulta.
  • Calcula dos puntuaciones por documento (centro y autoridad) en lugar de una sola puntuación;
  • No es un algoritmo comúnmente utilizado por los motores de búsqueda (aunque se dice que Teoma , que fue adquirido por Ask Jeeves/Ask.com , utilizaba un algoritmo similar ).

En detalle

Para comenzar la clasificación, dejamos queath(pag)=1{\displaystyle \mathrm {autenticación} (p)=1}yhb(pag)=1{\displaystyle \mathrm {hub} (p)=1}para cada páginapag{\displaystyle p}Consideramos dos tipos de actualizaciones: la Regla de Actualización de Autoridad y la Regla de Actualización de Hub. Para calcular las puntuaciones de hub/autoridad de cada nodo, se aplican iteraciones repetidas de ambas reglas. Una aplicación de k pasos del algoritmo Hub-Autoridad implica aplicar k veces primero la Regla de Actualización de Autoridad y luego la Regla de Actualización de Hub.

Regla de actualización de la autoridad

Para cadapag{\displaystyle p}actualizamosath(pag){\displaystyle \mathrm {autenticación} (p)}aath(pag)=qPAGtohb(q){\displaystyle \mathrm {auth} (p)=\displaystyle \sum \nolimits _ {q\in P_{\mathrm {to} }}\mathrm {hub} (q)}dóndePAGto{\displaystyle P_{\mathrm {to} }}son todas las páginas que enlazan a la páginapag{\displaystyle p}Es decir, la puntuación de autoridad de una página es la suma de todas las puntuaciones de hub de las páginas que enlazan a ella.

Regla de actualización del hub

Para cadapag{\displaystyle p}actualizamoshb(pag){\displaystyle \mathrm {hub} (p)}ahb(pag)=qPAGFrometroath(q){\displaystyle \mathrm {hub} (p)=\displaystyle \sum \nolimits _ {q\in P_{\mathrm {de} }}\mathrm {auth} (q)}dóndePAGFrometro{\displaystyle P_{\mathrm {desde} }}son todas las páginas que páginapag{\displaystyle p}enlaces a. Es decir, la puntuación central de una página es la suma de todas las puntuaciones de autoridad de las páginas a las que enlaza.

Normalización

Las puntuaciones finales de autoridad de los nodos se determinan tras un número infinito de repeticiones del algoritmo. Dado que la aplicación directa e iterativa de la Regla de Actualización de Hub y la Regla de Actualización de Autoridad produce valores divergentes, es necesario normalizar la matriz después de cada iteración. De este modo, los valores obtenidos mediante este proceso convergerán finalmente.

Pseudocódigo

G := conjunto de páginas para cada página p en G hacer p.auth = 1 // p.auth es la puntuación de autoridad de la página p p.hub = 1 // p.hub es la puntuación de hub de la página p para cada paso desde 1 hasta k hacer // ejecutar el algoritmo para k pasos norma = 0 para cada página p en G hacer // actualizar primero todos los valores de autoridad p.auth = 0 para cada página q en p.incomingNeighbors hacer // p.incomingNeighbors es el conjunto de páginas que enlazan a p p.auth += q.hub norma += cuadrado( p.auth ) // calcula la suma de los valores de autenticación al cuadrado para normalizar norma = raíz cuadrada(norma) para cada página p en G hacer // actualizar las puntuaciones de autenticación p.auth = p.auth / norm // normalizar los valores de autenticación norma = 0 para cada página p en G hacer // luego actualizar todos los valores del hub p.hub = 0 para cada página r en p.outgoingNeighbors hacer // p.outgoingNeighbors es el conjunto de páginas a las que p enlaza p.hub += r.auth norma += cuadrado( p.hub ) // calcula la suma de los valores de hub al cuadrado para normalizar norma = raíz cuadrada(norma) para cada página p en G hacer // luego actualizar todos los valores del hub p.hub = p.hub / norm // normalizar los valores del hub

En el pseudocódigo anterior, los valores del hub y de la autoridad convergen .

El código que se muestra a continuación no converge, ya que es necesario limitar el número de pasos que ejecuta el algoritmo. Sin embargo, una forma de solucionar esto sería normalizar los valores de hub y autoridad después de cada "paso", dividiendo cada valor de autoridad por la raíz cuadrada de la suma de los cuadrados de todos los valores de autoridad, y dividiendo cada valor de hub por la raíz cuadrada de la suma de los cuadrados de todos los valores de hub. Esto es lo que hace el pseudocódigo anterior.

Pseudocódigo no convergente

G := conjunto de páginas para cada página p en G hacer p .auth = 1 // p .auth es la puntuación de autoridad de la página p p .hub = 1 // p .hub es la puntuación de hub de la página pfunción HubsAndAuthorities( G ) para paso desde 1 hasta k hacer // ejecutar el algoritmo durante k pasos para cada página p en G hacer // actualizar primero todos los valores de autoridad p .auth = 0 para cada página q en p.incomingNeighbors hacer // p.incomingNeighbors es el conjunto de páginas que enlazan a p p .auth += q .hub para cada página p en G hacer // luego actualizar todos los valores de hub p .hub = 0 para cada página r en p.outgoingNeighbors hacer // p.outgoingNeighbors es el conjunto de páginas a las que enlaza p p .hub += r .auth

Véase también

Referencias

  1. Christopher D. Manning; Prabhakar Raghavan; Hinrich Schütze (2008). "Introducción a la recuperación de información" . Cambridge University Press . Consultado el 9 de noviembre de 2008 .
  2. Kleinberg, Jon (diciembre de 1999). "Centros, autoridades y comunidades" . Universidad de Cornell . Consultado el 9 de noviembre de 2008 .
  • Kleinberg, Jon (1999). "Fuentes autorizadas en un entorno hipervinculado" (PDF) . Journal of the ACM . 46 (5): 604– 632. CiteSeerX 10.1.1.54.8485 . doi : 10.1145/324133.324140 . S2CID 221584113 .  
  • Li, L.; Shang, Y.; Zhang, W. (2002). «Mejora de algoritmos basados ​​en HITS en documentos web» . Actas de la 11.ª Conferencia Internacional de la World Wide Web (WWW 2002) . Honolulu, HI. ISBN 978-1-880672-20-4Archivado del original el 3 de abril de 2005. Consultado el 3 de junio de 2005 .{{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  • Patente estadounidense 6,112,202
  • Crea un motor de búsqueda de datos a partir de una base de datos relacional. Motor de búsqueda en C# basado en HITS.