In che modo l'apprendimento automatico è incorporato nella progettazione dei motori di ricerca?

15

Attualmente sto costruendo un piccolo motore di ricerca interno basato su Apache Lucene. Il suo scopo è semplice: basandosi su alcune parole chiave, suggerirà alcuni articoli scritti internamente all'interno della nostra azienda. Sto usando un punteggio TF-IDF abbastanza standard come una metrica di base e ho costruito il mio meccanismo di punteggio in cima. Tutti sembrano funzionare in modo eccellente, ad eccezione di alcuni casi in cui la classifica sembra incasinata.

Quindi quello che sto pensando di fare è aggiungere un piccolo collegamento Rilevante / Non pertinente alla pagina dei risultati di ricerca in modo che gli utenti possano cliccare su uno di questi a seconda della loro percezione se quel risultato avrebbe dovuto essere incluso in primo luogo .

La mia idea

  1. Trattare questi rilevanti e non rilevanti come etichette e creare dati di addestramento.
  2. Utilizza questi dati per addestrare un classificatore (come SVM)
  3. Incorporare questo modello nel motore di ricerca, ad esempio, ogni nuovo risultato passerà attraverso il classificatore e gli verrà assegnata un'etichetta se pertinente o meno.

Questo approccio mi sembra intuitivo, ma non sono sicuro che funzionerà nella pratica. Ho due domande specifiche:

  1. Quali sono le funzioni che dovrei estrarre?
  2. Esiste un modo migliore per integrare il componente di apprendimento automatico nel motore di ricerca? Il mio obiettivo finale è "apprendere" la funzione di classifica in base sia alla logica di business sia al feedback degli utenti.
posta Legend 27.11.2013 - 18:09
fonte

1 risposta

15

(1) What all features should I extract?

Innanzitutto, renditi conto che non stai classificando i documenti. Stai classificando le coppie (documento, query), quindi dovresti estrarre le funzionalità che esprimono il loro livello di corrispondenza.

L'approccio standard in imparare a classificare è eseguire la query su varie impostazioni del motore di ricerca (ad esempio tf-idf, BM-25, ecc.) E quindi formare un modello sui punteggi di somiglianza, ma per un SE piccolo, specifico per dominio, potresti avere caratteristiche come

  • Per ogni termine, un valore booleano che indica se il termine si verifica sia nella query sia nel documento. O forse non un valore booleano, ma i pesi tf-idf di quei termini di ricerca effettivamente presenti nel documento.
  • Varie metriche di sovrapposizione come Jaccard o Tanimoto.

(2) Is there a better way to integrate the machine learning component into the search engine? My final goal is to "learn" the ranking function based on both business logic as well as user feedback.

Questa è una domanda molto ampia, e la risposta dipende da quanto sforzo vuoi mettere. Il primo miglioramento che ti viene in mente è che non dovresti usare i giudizi di rilevanza binaria dal classificatore, ma il suo valore reale funzione decisionale, in modo da poter effettivamente fare classifica invece di filtrare. Per un SVM, la funzione decisionale è la distanza segnata per l'iperpiano. Buoni pacchetti di machine learning hanno un'interfaccia per ottenere il valore di questo.

Oltre a ciò, esamina l'apprendimento a coppie e in ordine per classificarlo; quello che stai suggerendo è il cosiddetto approccio pointwise. IIRC, a coppie funziona molto meglio in pratica. Il motivo è che con il posizionamento a coppie, hai bisogno di un numero di clic molto inferiore: invece di fare in modo che gli utenti etichettino i documenti come rilevanti / non pertinenti, dai loro solo il pulsante "rilevante". Quindi si impara un classificatore binario su tripli (document1, document2, query) che indica se document1 è più pertinente alla query rispetto a document2 o viceversa. Quando un utente etichetta, ad esempio, il documento 4 nella classifica come pertinente, questo ti dà sei esempi da cui imparare:

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

in modo da ottenere i negativi gratuitamente.

(Questi sono solo dei suggerimenti, non ho provato nulla di simile.Poco ho lavorato in un gruppo di ricerca in cui le persone hanno studiato l'apprendimento del rank. Ho fatto una presentazione del paper di qualcun altro per un gruppo di lettura una volta forse le diapositive possono essere d'aiuto.)

    
risposta data 27.11.2013 - 18:29
fonte