Ricerca semantica

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

Ricerca semantica 0

Contesto

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.

Keywords vs Semantica

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.

Ricerca Semantica

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.

Preprocessing

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.

Embeddings

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

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.

Ordinamento

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à.

Benefici

Utilizzare un sistema di ricerca semantico permette ai clienti di un e-commerce di provare un’esperienza utente ottimale, migliorando la customer satisfaction e la customer retention della propria attività. Inoltre, un motore che fornisca un insieme di risultati rilevanti ottimale facilita l’acquisto, incidendo positivamente anche sul tasso di conversione del sito.
È possibile ottimizzare ulteriormente la user experience per i propri clienti introducendo nel proprio motore di ricerca semantico altre caratteristiche smart. In Machine Learning Reply abbiamo individuato una lista delle caratteristiche che riteniamo più utili, in base all’impatto riscontrato sul tasso di conversione dei nostri clienti:
  • Personalizzazione: basandosi sui principi dei sistemi di raccomandazione, i risultati di ricerca vengono personalizzati in base alla cronologia delle ricerche dell’utente, al suo livello di interesse verso un articolo e altri fattori;
  • Autocompletamento: utilizzando l’autocompletamento della ricerca è possibile aiutare gli utenti, suggerendo il completamento della query di ricerca basandosi su un’analisi delle ricerche più popolari;
  • Popolarità e stagionalità dei prodotti: i risultati di ricerca vengono calcolati tenendo conto anche della popolarità degli articoli e della loro stagionalità, in questo modo un utente otterrà risultati calibrati secondo il momento in cui fa la ricerca;
  • Possibilità di filtrare i risultati: questa caratteristica è molto importante per permettere agli utenti di avere più controllo sull’esperienza di ricerca, filtrando i risultati a seconda di diverse attributi (range di prezzo, marchio, taglia, colore); ciò è fondamentale soprattutto per e-commerce con cataloghi molto ampi.
Oltre ad ottimizzare l’esperienza utente, è possibile sfruttare il motore di ricerca semantico del proprio e-commerce per migliorare i propri processi di business. Il nostro approccio prevede in particolare due metodologie per farlo:
  • Promozione di prodotti: è possibile dare più esposizione ad alcuni prodotti, posizionandoli tra i primi risultati di ricerca (cioè aumentando il loro punteggio), in base alle logiche di business e alle funzionalità di raccomandazione che si intendono implementare; è comunque importante che questo non condizioni la rilevanza dei risultati di ricerca
  • Analisi delle tendenze di ricerca: permette di comprendere, tracciare e monitorare le preferenze degli utenti e di prevedere le loro tendenze di acquisto col fine di guidare decisioni di business.