mercoledì 1 maggio 2013

Elaborazione linguaggio naturale alla base di Facebook Graph Search



In un post sul blog di Facebook Engineering, gli ingegneri hanno parlato dei modi in cui l'elaborazione del linguaggio naturale aiuta a interpretare ciò che gli utenti inseriscono nel suggerire le migliori possibili query. Dal momento che Facebook ha presentato la sua funzione Graph Search a gennaio, il social network ha dato accesso a una piccola percentuale del miliardo di utenti.

La funzionalità aggrega persone, luoghi e cose in base all'input dell'utente e fornisce rapidamente i contenuti interessanti e talvolta sorprendenti. Ciò avviene grazie al lavoro di elaborazione del linguaggio naturale che avviene dietro le quinte. E per adesso funziona solo in lingua inglese. Gli ingegneri stanno cercando di capire come rendere il prodotto disponibile in altre lingue. 

In un lungo articolo pubblicato sulla pagina di Facebook Engineering, il ricercatore del motore Graph Search Maxime Boucher e Xiao Li, engineering manager del team del linguaggio naturale di Graph Search, hanno fornito informazioni dettagliate sui modi nei quali Graph Search effettua l'elaborazione del linguaggio naturale per capire che cosa vogliono gli utenti. Il Graph Search Engine è costruito su database altamente strutturato sotto forma di un grafico, che rappresenta centinaia di nodi e migliaia di edge. 

Persone, pagine, luoghi, foto e post sono tutti i nodi del grafo, ciascuno con informazioni strutturate. Graph Search rompe le stringhe di ricerca in molteplici componenti che servono da comandi con cui il sistema interroga il database. Ad esempio, per ricevere informazioni si hanno a disposizione indirizzi dei luoghi e date di pubblicazione delle foto. Inoltre, i nodi sono collegati tra loro in diversi modi. 

Qualcuno può studiare in una scuola, vivere in una città, avere una relazione, effettuare il check-in in un luogo, e commentare su una foto. Una foto, a sua volta, può essere etichettata con un utente in un luogo. E' la ricchezza dei dati che definiscono la natura del Graph Search, il sistema è progettato verso la precisa comprensione dell'intento dell'utente e serve oggetti strutturati. Tenuto conto di questa grande varietà di nodi, la costruzione di un motore di ricerca è stata una grande sfida. 

Il team di Graph Search ha realizzato diverse interfacce di query nella fase iniziale di questo progetto. L'opinione condivisa del team è che un sistema basato soltanto su parole chiave non sarebbe stata la scelta migliore a causa del fatto che le parole chiave, di solito consistenti in nomi o nomi propri, possono essere  nebulose. Per esempio, "amici di Facebook" può significare "amici su Facebook", "amici che lavorano a Facebook Inc.", o "amici a cui piace la pagina di Facebook". 

Le parole chiave, in generale, sono buone per la corrispondenza degli oggetti nel grafico, ma non per le corrispondenti connessioni tra gli oggetti. Una query costruita su parole chiave verrebbe meno nel caso in cui un utente avesse bisogno di esprimere il proprio intento sia in termini di nodi ed edge nel grafico. Diversi i componenti dell'architettura dell'interfaccia in linguaggio naturale. Riconoscimento entità e risoluzione, cioè, trovare possibili soggetti e le loro categorie in una query di input e risolverli per voci di database. 

Analisi lessicale, cioè, l'analisi delle informazioni morfologiche, sintattica e semantica delle parole / frasi nella query di input. L'analisi semantica, cioè, trovare i migliori N di interpretazioni di una query di input data una grammatica. Graph search analizza le parole immesse dagli utenti per cercare nel database possibili entità alle quali gli utenti si riferiscono, in più di 20 categorie di entità, come ad esempio le città, i datori di lavoro e le scuole.  

Utilizzando le statistiche per le categorie di entità, lo strumento individua le sequenze di parole che potrebbero essere più applicabile per alcuni enti di altri.  Se "san" precede "francisco", l'utente probabilmente si riferisce a una città, non a una persona.  Il sistema riconosce slang soprannomi dei luoghi, errori di ortografia, i tanti modi per esprimere particolari tipi di dati e di altre peculiarità che gli utenti digitano nella casella di ricerca. 

Graph Search è visibile su uno dei social network più diffusi nel mondo e quindi ha bisogno di essere soddisfacente per i suoi utenti.  Boucher e Li scrivono che "La sfida per il team è stata quella di fare in modo che qualsiasi input dell'utente ragionevole produca suggerimenti plausibili utilizzando Graph Search. Per raggiungere tale obiettivo, il team ha sfruttato una serie di risorse linguistiche per lo svolgimento di analisi lessicale su una query di input come prima corrispondenza contro le regole dei terminali nella grammatica". 

Il sistema è costruito per essere robusto a molti ingressi, come ad esempio le query degli utenti grammaticalmente scorrette, e può anche riconoscere ricerche di parole chiave tradizionali. I suggerimenti della ricerca sono sempre costruiti in linguaggio naturale, che esprime la precisa intenzione interpretata dal sistema.  Questo significa conoscere in anticipo se il sistema ha capito l'intento dell'utente prima di selezionare qualsiasi suggerimento ed eseguire una ricerca.


Nessun commento:

Posta un commento

Related Posts Plugin for WordPress, Blogger...