lunes, 24 de mayo de 2010

Calculo de relevancia y usuarios

El calculo de relevancia que realizan buscadores como Google o Bing a la hora de ordenar los resultados correspondientes a una consulta de un usuario es una aproximacion a la relevancia real que cada documento tiene para el usuario que realiza la consulta.

De esta forma los buscadores realmente calculan la probabilidad de que un documento sea relevante o no para una consulta dada, cuanto mas probable sea su relevancia, mas arriba estara en el ranking de documentos que se devuelve al usuario.

Obviamente esta relevancia basada en probabilidad esta muy lejos de lo que seria la relevancia ideal que solo existe en la cabeza del usuario que realiza la consulta y que, para mas complicacion, puede ser distinta para dos usuarios diferentes, con lo cual lo que un usuario considera relevante para una consulta dada, otro puede considerar que no lo es incluso para la misma consulta.

Hoy en dia, el problema de detectar cuando la misma consulta debe devolver distintos resultados en funcion de cada usuario se intenta solventar adivinando cual es el contexto en el que se encuentra el usuario, por ejemplo su situacion geografica.

El ejemplo tipico es la busqueda local. Para la consulta "restaurantes en Santiago" un buscador deberia devolver distintos resultados si el usuario esta en Galicia (Santiago de Compostela) o si esta en Chile (Santiago de Chile).

La idea central es que cuanto mas sepamos sobre el contexto en el que se encuentra el usuario cuando hace la consulta, mas nos aproximaremos a la idea de relevancia que tiene el usuario en su cabeza en ese momento. Si seguimos esta idea la mejor manera de calcular una relevancia adaptada a cada usuario sera que se matengan cuentas de usuario, donde en funcion de las busquedas anteriores podemos saber lo que un usario concreto considera relevante y lo que no. Esto es precisamente lo que hace Google cuando realizamos busquedas personalizadas.

Por otro lado, todos los buscadores, ya sean especializados o no, intentan aproximarse a la idea que tienen sus usuarios de lo que es relevante y de lo que no lo es a traves del analisis de los registros de consultas que se producen durante la interaccion de los usuarios con el buscador, lo que se denominan "query logs".

La informacion estadistica que se extrae de estos registros sirve para "entrenar" las funciones de ranking que usan los buscadores, de manera que se ofrecen los resultados mas relevantes y a la vez mas populares (es decir donde mas gente ha hecho click) en las posiciones mas altas del ranking.

Un ejemplo sencillo de esto seria el siguiente: Imaginemos que nuestro buscador devuelve una lista de 10 documentos para una consulta dada, sin embargo, nos damos cuenta de que un porcentaje alto de usuarios suele hacer click en el tercer resultado, ignorando el primero y el segundo. Asi pues, lo que haremos sera asignar un factor (que puede estar basado en el numero de personas que hacen click en ese resultado) de manera que el resultado mas popular (es decir el que mas gente pincha) pasa de aparecer tercero a aparecer en la primera posicion del ranking para esa consulta.

Un buen articulo para profundizar en este tema es el siguiente (en ingles):

Improving Web Search Ranking by Incorporating User Behavior Information [paper], Eugene Agichtein, Eric Brill, and Susan T. Dumais, ACM SIGIR Conference on Research and Development on Information Retrieval (SIGIR), 2006

De un tiempo a esta parte, la informacion generada por los usuarios de los buscadores se ha convertido en uno de los aspectos mas importantes en la definicion del calculo de relevancia en los buscadores. Actualmente, el buscador que devuelve los mejores resultados no es aquel que tiene los mejores algoritmos, sino aquel que tiene la mejor muestra posible para hacerse una idea de que es considerado relevante por los usuarios y que no.

En mi opinion, la gran ventaja que hace que Google, a dia de hoy, devuelva resultados mas relevantes no es que tenga mejores algoritmos, sino que, dado que es el buscador mas utilizado, tiene mucha mas informacion sobre lo que los usuarios consideran relevante, y por lo tanto es capaz de aproximarse mas a esa funcion ideal de relevancia que los usuarios tienen en la cabeza.

La disciplina surgida a partir de esta idea, se denomina Web Mining, y es sin duda una de las areas mas interesantes hoy en dia en Busqueda Web, no solo por sus implicaciones en el campo de la relevancia, sino tambien por su importancia en temas como marketing en internet y posicionamiento. Una buena forma de introducirse en este mundo es el libro escrito por Fabrizio Silvestri:

Fabrizio Silvestri: Mining Query Logs: Turning Search Usage Data into Knowledge. Foundations and Trends in Information Retrieval 4(1-2): 1-174 (2010)
http://www.nowpublishers.com/product.aspx?doi=1500000013&product=INR

Tambien es muy interesante el tutorial que dieron el mismo autor y Ricardo Baeza-Yates en Madrid en 2009, el cual fue grabado integramente y puedes seguir desde aqui:

http://videolectures.net/qlm09_madrid/

jueves, 20 de mayo de 2010

Los problemas de la Busqueda Semantica

Desde hace un tiempo se oye hablar mucho de la busqueda semantica, incluso muchas empresas se ganan la vida vendiendo buscadores semanticos. Sin embargo, no es oro todo lo que reluce y la busqueda semantica no solo no es util en muchos casos, sino que ademas, en ocasiones puede llegar a ser perjudicial.

El problema con la busqueda semantica, ya sea desde la perspectiva del PLN o desde el punto de vista de la Web Semantica de Tim Berners-Lee reside en que la integracion de conocimiento semantico en los buscadores tradicionales es muy complicada. Desde mi punto de vista, la tarea mas importante que realiza un buscador no es recuperar documentos (o paginas web), sino ordenarlos.

El ranking es la pieza clave de un buscador, ya que un buscador ha de ser capaz de situar aquellos documentos que satisfacen la necesidad de informacion del usuario, es decir los mas relevantes, en las primeras posiciones de la lista de resultados.

Un error muy tipico es pensar que los buscadores se basan solamente en un sistema booleano, es decir en calcular si un documento o pagina web es relevante o no lo es para el usuario que realiza la consulta, y esto no es asi, ya que la tarea es calcular en que medida es relevante para el usuario, de manera que podamos situar los documentos mas relevantes en la parte alta del ranking de resultados.

Aunque las tecnologias semanticas son utiles para recuperar documentos, sin embargo, suelen ser bastante perjudiciales a la hora de ordenar esos documentos en funcion de su relevancia.

Te pondre un ejemplo muy sencillo, es una simplificacion, pero sirve para ilustrar lo que intento explicar aqui. Imagina que el usuario introduce la siguiente consulta en un buscador:

Consulta : restaurante barcelona

La necesidad de informacion del usuario parece bastante clara, quiere recuperar documentos que hablen de restaurantes que estan en la ciudad de barcelona.

Si vemos esta consulta desde la perspectiva de una algoritmo tipico de IR como los que usan los buscadores veremos que cada documento se ordenara en funcion del peso (el peso es un valor numerico que define la importancia de una palabra en un documento, por ejemplo, el numero de veces que aparece) de las palabras de la consulta que aparecen en el. De esta forma se suma el peso de "restaurante" mas el peso de "barcelona" y eso nos ayuda a generar nuestra lista ordenada de documentos relevantes.

Asi pues podemos decir que la palabar "barcelona" aporta un 50% de la informacion necesaria para resolver la necesidad de informacion del usuario y la palabra "restaurante" aporta el otro 50%.

Ahora imaginemos que metemos algo de semantica, una ontologia, o algun tipo de diccionario por detras que nos permite expandir de alguna forma la consulta inicial del usuario, por ejemplo:

Consulta original: restaurante barcelona

Consulta expandida: restaurante bistro buffet barcelona

Aparentemente estamos completando la informacion que nos ha dado el usuario, utilizando sinonimos de la palabra "restaurante" de manera que ahora recuperaremos tambien documentos sobre buffets en barcelona que tambien podrian ser del interes del usuario. El problema reside es que si bien estamos mejorando la capacidad de recuperar nuevos documentos, nos estamos cargando el ranking.

Recordemos que el ranking se calcula en base a una suma (combinacion lineal) de los pesos en los documentos de cada una de las palabras que aparecen en la consulta, de manera que con la version expandida de la consulta la palabra "Barcelona" ha pasado de tener un 50% de impacto en el calculo de nuestro ranking (que es lo que tenia en la consulta inicial) a tener solo un 25%, ya que en la consulta expandida tenemos restaurante 25% + bistro 25% + buffet 25% + barcelona 25%

Esto quiere decir que un documento donde aparezcan las palabras "buffet" "restaurante" y "bistro" pero no la palabra "barcelona" estara mas arriba en nuestro ranking que un documento que contenga solo las palabras "restaurante" y "barcelona". Asi pues, hay una probabilidad muy alta de devolverle al usuario paginas web con informacion de restaurantes, buffets y bistros en Madrid.

Este ejemplo es una simplificacion, y existen tecnicas para suavizar el efecto de la expansion, pero aun asi no estan muy depuradas y sigue siendo un problema por resolver en lo que a busqueda semantica se refiere.

martes, 4 de mayo de 2010

Son bueno estos resultados?

Una de las cosas mas dificiles de saber cuando tenemos un buscador es si estamos devolviendo resultados relevantes en nuestro buscador, especialmente cuando no tenemos los query logs con la informacion de interaccion de los usuarios.

En los ultimos anos se han desarrollados varios metodos para intentar saber si estamos cubriendo la necesidad de informacion del usuario. Todos estos metodos se han recogido recientemente en un libro de manera que nos podemos evitar la lectura de un buen monton de papers:

Estimating the Query Difficulty for Information Retrieval
Synthesis Lectures on Information Concepts, Retrieval, and Services
2010, 89 pages, (doi:10.2200/S00235ED1V01Y201004ICR015)
David Carmel‌ IBM Research, Israel
Elad Yom-Tov‌ IBM Research, Israel
http://www.morganclaypool.com/doi/abs/10.2200/S00235ED1V01Y201004ICR015

Yo la verdad es que no le veo mucho futuro a estas tecnicas, pero sin duda se trata un trabajo interesante que analiza muchos aspectos interesantes del proceso de recuperacion, y de como funcionan las funciones de ranking y las listados de documentos que se devuelven.

lunes, 3 de mayo de 2010

Software libre de IR para SEOs. Parte 2

Segunda parte de la charla que di en 2007 en el congreso Ojobuscador sobre Recuperacion de Infromacion, SEO y software libre para buscadores. Esta charla fue publicada originalmente en .
http://www.ojobuscador.com


Videos tu.tv

Software libre de IR para SEOs. Parte 1

Primera parte de la charla que di en 2007 en el congreso Ojobuscador sobre Recuperacion de Infromacion, SEO y software libre para buscadores. Esta charla fue publicada originalmente en .
http://www.ojobuscador.com


Videos tu.tv

domingo, 2 de mayo de 2010

Using BM25F for Semantic Search

Que mejor forma de empezar este blog que haciendo referencia a mi ultimo trabajo sobre busqueda semantica que ha recibido el premio al mejor articulo en el workshop de Semantic Search de la conferencia WWW 2010.

José R. Pérez-Agüera, Javier Arroyo, Jane Greenberg, Joaquin Perez-Iglesias and Victor Fresno. Using BM25F for Semantic Search. Semantic Search Workshop at the 19th Int. World Wide Web Conference WWW2010 April 26, 2010 (Workshop Day), Raleigh, NC, USA

Y aqui podeis ver el video de la charla.




Using BM25F for Semantic Search


José R. Pérez Agüera