¿Cómo se incorpora el aprendizaje automático al diseño de motores de búsqueda?

14

Actualmente estoy construyendo un pequeño motor de búsqueda interno basado en Apache Lucene. Su propósito es simple: basado en algunas palabras clave, sugerirá algunos artículos escritos internamente dentro de nuestra empresa. Estoy usando un puntaje TF-IDF bastante estándar como una métrica básica y construí mi propio mecanismo de puntaje encima. Todos estos parecen estar funcionando de manera excelente, excepto en algunos casos de esquina donde la clasificación parece estar en mal estado.

Entonces, lo que planeo hacer es agregar un pequeño enlace Relevante / No Relevante a la página de resultados de búsqueda para que los usuarios puedan hacer clic en uno de ellos dependiendo de su percepción de si ese resultado debería haberse incluido en primer lugar. .

Mi idea

  1. Trate estos Relevantes / No Relevantes como etiquetas y cree datos de capacitación.
  2. Utilice estos datos para entrenar a un clasificador (como SVM)
  3. Incorpore este modelo en el motor de búsqueda, es decir, cada nuevo resultado pasará por el clasificador y se le asignará una etiqueta sobre si es relevante o no.

Este enfoque me parece intuitivo, pero no estoy seguro de si funcionará en la práctica. Tengo dos preguntas específicas:

  1. ¿Qué características debo extraer?
  2. ¿Existe una mejor manera de integrar el componente de aprendizaje automático en el motor de búsqueda? Mi objetivo final es "aprender" la función de clasificación basada tanto en la lógica empresarial como en los comentarios de los usuarios.
pregunta Legend 27.11.2013 - 18:09

1 respuesta

15
  

(1) ¿Qué características debo extraer?

Primero, date cuenta de que no estás clasificando documentos. Estás clasificando pares (documentos, consultas), por lo que deberías extraer características que expresen qué tan bien coinciden.

El enfoque estándar en aprender a clasificar es ejecutar la consulta en varias configuraciones de motores de búsqueda (por ejemplo, tf-idf, BM-25, etc.) y luego capacite a un modelo sobre los puntajes de similitud, pero para una pequeña SE específica del dominio, podría tener características como

  • Para cada término, un valor booleano que indica si el término aparece tanto en la consulta como en el documento. O tal vez no sea un valor booleano, pero las ponderaciones tf-idf de los términos de consulta que realmente aparecen en el documento.
  • Varios indicadores de superposición, como Jaccard o Tanimoto.
  

(2) ¿Existe una mejor manera de integrar el componente de aprendizaje automático en el motor de búsqueda? Mi objetivo final es "aprender" la función de clasificación basada tanto en la lógica empresarial como en los comentarios de los usuarios.

Esta es una pregunta muy amplia, y la respuesta depende de cuánto esfuerzo quieras poner. La primera mejora que se te ocurre es que no debes usar los juicios de relevancia binarios del clasificador, sino su valor real. Función de decisión, por lo que realmente puede hacer ranking en lugar de solo filtrar. Para un SVM, la función de decisión es la distancia firmada al hiperplano. Los buenos paquetes de aprendizaje automático tienen una interfaz para obtener el valor de eso.

Más allá de eso, busca en el aprendizaje por pares y por listas para clasificar; Lo que estás sugiriendo es el llamado enfoque puntual. IIRC, pareado funciona mucho mejor en la práctica. La razón es que con la clasificación por pares, necesita muchos menos clics: en lugar de que los usuarios etiqueten los documentos como relevantes / irrelevantes, solo les da el botón "relevante". Luego aprende un clasificador binario sobre triples (documento 1, documento 2, consulta) que indica si el documento 1 es más relevante para la consulta que el documento 2, o viceversa. Cuando un usuario etiqueta, digamos, el documento 4 en el ranking como relevante, le da seis ejemplos para aprender de:

  • document4 > document3
  • document4 > document2
  • document4 > document1
  • document1 < document4
  • document2 < document4
  • document3 < document4

para que obtengas los negativos gratis.

(Estas son todas sugerencias, no he probado nada de esto. Resulta que trabajé en un grupo de investigación donde las personas investigaron para aprender a clasificar. Hice una presentación del artículo de otra persona para un grupo de lectura una vez. , tal vez las diapositivas pueden ser de ayuda.)

    
respondido por el Fred Foo 27.11.2013 - 18:29

Lea otras preguntas en las etiquetas