L'impiego di tecniche di Natural Language Processing a supporto della funzionalità di ricerca consente di ottenere un vantaggio competitivo per le piattaforme di e-commerce
La ricerca è una componente fondamentale di una piattaforma di e-commerce e rappresenta uno dei maggiori strumenti di conversione di un e-store.
Le performance del motore di ricerca sono una delle caratteristiche che influisce sull’esperienza utente e sulla soddisfazione della clientela: una funzionalità di ricerca efficace facilita i clienti nel processo di acquisto e favorisce un loro ritorno sulla piattaforma per acquisti futuri.
Un motore di ricerca tradizionale identifica l'insieme di articoli rilevanti sulla base delle parole chiave indicate dall'utente che vengono ricercate nei testi che descrivono gli articoli. Questo tipo di ricerca presenta diverse criticità: troppe parole chiave nella query rischiano di confondere la ricerca, la query di ricerca può contenere piccoli errori ortografici che la rendono inefficace, gli articoli descritti attraverso sinonimi delle parole chiave non vengono individuati ed elencati tra i risultati di ricerca.
Al contrario, un motore di ricerca semantico riesce a comprendere i testi scritti in linguaggio naturale dagli utenti e a confrontarli con le descrizioni e i metadati contenuti nei cataloghi prodotto. Il confronto avviene sulla base del significato dei testi e non sulla loro sintassi, superando le limitazioni della ricerca tradizionale e abilitando, a seconda del caso d'uso, anche una interazione di tipo conversazionale.
Sulla base delle differenti esperienze progettuali maturate negli ultimi anni abbiamo affinato la nostra metodologia che fa leva sulle tecniche di Natural Language Processing più avanzate.
Elaborazione dei testi che descrivono gli articoli e la query dell'utente. Vengono utilizzati come input i testi delle descrizioni degli articoli del catalogo dell'e-commerce e della stringa inserita dall'utente (entrambi scritti in linguaggio naturale). Per prima cosa, viene applicato del preprocessing per preparare i testi alle analisi successive. In particolare il preprocessing consiste in: rimozione della punteggiatura; rimozione di stopwords (cioè parole che non hanno un particolare significato se isolate dal testo, ad esempio congiunzioni e articoli); conversione del testo in minuscolo.
Rappresentazione vettoriale che cattura il significato semantico dei testi. Per calcolare quanto un articolo sia rilevante rispetto ad una stringa di ricerca inserita dall'utente è necessario calcolare delle rappresentazioni vettoriali che catturino il significato semantico delle descrizioni testuali degli articoli e della stringa di ricerca. Ciò è necessario al fine di calcolare una misura di similarità tra la stringa di ricerca inserita dall'utente e le descrizioni degli articoli. Possiamo calcolare le rappresentazioni vettoriali in modo automatico attraverso tecniche di Natural Language Processing. In particolare, uno dei modi per farlo è ottenere text embeddings utilizzando reti neurali pre-allenate su un ampio corpus di testi, per esempio utilizzando i modelli: MUSE (Multilanguage Universal Sentence Encoder); BERT (Bidirectional Encoder Representations from Transformers). Una misura della rilevanza degli articoli viene ottenuta calcolando la cosine similarity tra gli embedding relativi ad ogni articolo e l'embedding della query stessa: gli articoli che ottengono similarità maggiore sono quelli più rilevanti rispetto alla stringa di ricerca.
Integrazione di un punteggio determinato dalle parole chiave presenti nei testi. Oltre al punteggio di similarità calcolato attraverso gli embeddings, viene calcolato anche un punteggio utilizzando le keywords presenti nella stringa di ricerca dell'utente. Ciò è utile poiché non tutti i termini sono comprensibili da modelli per l'estrazione di embeddings, soprattutto se non si tratta di nomi comuni come marchi o nomi propri degli articoli. Questo punteggio ha le seguenti caratteristiche: Se una delle keyword inserite dall'utente viene trovata nella descrizione dell'articolo, il punteggio viene incrementato; Se una delle keyword inserite dall'utente non viene trovata nella descrizione dell'articolo, al punteggio viene applicata una penalità; Sia l'incremento che la penalità sono pesati per l'inverso della frequenza (tra le descrizione degli articoli) della parola chiave: in questo modo parole più rare impatteranno di più sul punteggio, rispetto a parole comuni; Il range di valori viene normalizzato tra 0 e 1.
Calcolo di un punteggio finale per determinare la rilevanza dei risultati. Per ottenere l'ordinamento finale degli articoli si calcola un punteggio finale ottenuto come media tra il punteggio di similarità tra embedding ed il punteggio calcolato utilizzando le keywords. La lista degli articoli viene ordinata secondo questo punteggio (in maniera decrescente): la lista di risultati di ricerca è composta dagli articoli con punteggio maggiore, limitando il numero dei risultati secondo necessità.