Transformers4Rec: Portare la potenza dell'NLP nei moderni sistemi di raccomandazione
Introduzione
Con la continua crescita del commercio digitale e del consumo di contenuti online, la domanda di motori di raccomandazione efficaci e personalizzati è più alta che mai. Acquirenti e utenti di streaming si aspettano raccomandazioni su misura, che stiano cercando prodotti, film o musica. Tuttavia, i sistemi di raccomandazione tradizionali, che si basano sul filtraggio collaborativo o basato sui contenuti, utilizzano dati storici statici e spesso faticano ad adattarsi ai cambiamenti nelle preferenze degli utenti. Per affrontare queste limitazioni, i sistemi di raccomandazione che sfruttano modelli di IA dinamici in grado di catturare l’evoluzione del comportamento degli utenti sono diventati essenziali e popolari.
In un recente Unstructured Data Meetup ospitato da Zilliz, Kunal Sonalkar, Data Scientist presso Nordstrom, ha condiviso approfondimenti sull’uso di Transformers4Rec per abilitare raccomandazioni sequenziali e basate sulle sessioni, al fine di servire meglio le esigenze in evoluzione degli utenti. Questo post del blog evidenzia i principali spunti emersi dalla presentazione di Kunal, con la nostra prospettiva sul futuro dei sistemi di raccomandazione. Puoi anche guardare l’intervento completo di Kunal su YouTube per maggiori dettagli.
Che cos’è Transformers4Rec?
Transformers4Rec è una libreria potente e flessibile progettata per creare sistemi di raccomandazione sequenziali e basati sulle sessioni con PyTorch. Integrandosi con Transformers, uno dei framework più popolari nell’elaborazione del linguaggio naturale (NLP), Transformers4Rec crea un ponte tra NLP e sistemi di raccomandazione.
La figura seguente mostra l’uso della libreria transformers4Rec in un sistema di raccomandazione. I dati di input per la libreria sono una sequenza di interazioni dell’utente, come gli articoli che un utente sfoglia o aggiunge al carrello durante una sessione. Transformers4Rec elabora queste interazioni per fare previsioni intelligenti su ciò che l’utente potrebbe desiderare successivamente. Ad esempio, immagina che un cliente stia navigando in una libreria online. Prima guarda diversi romanzi di fantascienza, ne aggiunge uno al carrello e in seguito visualizza alcune pagine di autori correlati. Transformers4Rec analizza questa sequenza di azioni e prevede che il cliente potrebbe essere interessato a un altro titolo di fantascienza popolare o a un romanzo fantasy correlato.
Figura- Come funziona Transformers4Rec in un sistema di raccomandazione .png
Figura: Come funziona Transformers4Rec in un sistema di raccomandazione
Kunal sottolinea che, per costruire un sistema di raccomandazione efficace, è essenziale comprendere l’intento del cliente, come il tipo di prodotto a cui è interessato e se è sensibile al prezzo, per personalizzare di conseguenza le raccomandazioni.
Ad esempio, due clienti che cercano "scarpe" possono ricevere raccomandazioni diverse in base alle loro interazioni e preferenze precedenti, come il budget o la preferenza per un marchio.
shoes.png
Architettura di Transformers4Rec
Come accennato in precedenza, l’architettura di Transformers4Rec è progettata per adattare i modelli transformer alle raccomandazioni sequenziali e basate sulle sessioni, elaborando i dati di interazione degli utenti in modo strutturato. La sua architettura include quattro componenti principali che lavorano insieme per effettuare previsioni: Aggregazione delle feature, Mascheramento della sequenza, Elaborazione della sequenza e Testa di previsione.
Figura- Architettura di Transformers4Rec .png
Figura: Architettura di Transformers4Rec
Aggregazione delle feature
Il componente Aggregazione delle feature raccoglie dati sulle interazioni degli utenti—sia variabili continue sia categoriali—per costruire un profilo completo per la raccomandazione. Ad esempio, in un sistema di raccomandazione e-commerce, le feature categoriali potrebbero includere attributi come brand e tipo di prodotto, mentre le feature continue potrebbero catturare prezzo, tassi di sconto o interazioni recenti (ad es., il numero di clic su un prodotto nelle ultime 24 ore).
Figura- Aggregazione delle feature in Transformers4Rec.png
Figura: Aggregazione delle feature in Transformers4Rec
Prima di fornire queste sequenze a un blocco transformer, i dati di interazione devono essere pre-elaborati in un formato standardizzato chiamato embedding vettoriali (rappresentazioni numeriche dei dati di interazione in uno spazio ad alta dimensionalità). Gli input possono essere organizzati per ID utente o ID sessione, con la sequenza di interazioni aggregata in un'unica rappresentazione vettoriale, nota come "embedding di interazione." Questo embedding contiene informazioni contestuali sulle interazioni degli utenti, come il tipo di azioni dell'utente, gli elementi coinvolti e l'ordine delle interazioni, e può essere archiviato in un database vettoriale per un recupero efficiente e la ricerca semantica. Un database vettoriale robusto come Milvus o il suo servizio gestito Zilliz Cloud, che si integra bene con PyTorch, può semplificare questo processo. Inoltre, Transformers4Rec include un modulo NVTabular per convertire facilmente i dati grezzi nel formato richiesto, rendendo la preparazione dei dati più gestibile.
Mascheramento delle sequenze
Il componente Mascheramento delle sequenze in Transformers4Rec applica maschere alle interazioni degli utenti per prevenire la fuga di dati e mantenere l'ordine della sequenza, garantendo che il modello rispetti la cronologia degli eventi. Ad esempio, quando si prevede il prossimo elemento di un utente, questo modulo nasconde eventuali azioni future, consentendo al modello di apprendere in modo causale, passo dopo passo.
Diversi tipi di mascheramento delle sequenze in Transformers4Rec controllano ciò che il modello "vede" durante l'addestramento o l'inferenza, il che lo aiuta a catturare pattern significativi nel comportamento degli utenti e migliora la sua capacità di prevedere la prossima interazione. Transformers4Rec offre molteplici opzioni nel mascheramento delle sequenze:
Causal Language Modeling (CLM): Questa tecnica maschera gli elementi futuri in una sequenza, addestrando il modello a prevedere ciascun elemento basandosi solo sugli elementi precedenti. CLM è ideale per raccomandazioni sequenziali in cui l'ordine delle interazioni è cruciale.
Masked Language Modeling (MLM): In MLM, alcune posizioni nella sequenza vengono mascherate casualmente e il modello impara a prevedere gli elementi nascosti usando il contesto circostante. Questa tecnica aiuta il modello a comprendere le relazioni tra elementi senza dipendere da un ordine rigido.
Random Token Detection (RTD): RTD sostituisce un elemento casuale nella sequenza con uno non correlato, e il modello impara a individuare questo elemento errato. Questo metodo insegna al modello a distinguere i pattern autentici dal rumore casuale o dalle anomalie.
Permutation Language Modeling (PLM): Qui, gli elementi nella sequenza vengono mescolati e il modello viene addestrato a prevedere gli elementi nel nuovo ordine permutato. PLM incoraggia la flessibilità aiutando il modello a riconoscere pattern in qualsiasi ordine.
Figura- Differenza tra Casual LM e Masked LM durante il Mascheramento delle sequenze.png
Figura: Differenza tra Casual LM e Masked LM durante il Mascheramento delle sequenze
Di solito, il 20-30% degli embedding posizionali viene mascherato prima dell'addestramento. Anche la probabilità di mascheramento svolge un ruolo nella robustezza del sistema di raccomandazione.
Queste tecniche di mascheramento consentono al modello di apprendere dalle interazioni degli utenti in vari modi, migliorando la sua capacità di formulare raccomandazioni accurate e consapevoli del contesto.
Elaborazione della sequenza
Il componente Elaborazione della sequenza fornisce le feature di input ai modelli transformer per prevedere elementi o posizioni mascherati nella sequenza di interazione di un utente. Transformers4Rec supporta varie architetture per l’elaborazione delle sequenze, tra cui XLNet, GPT-2 e LSTM, consentendo agli utenti di scegliere il modello più adatto per il loro sistema di raccomandazione.
Gli embedding dei vettori di interazione vengono passati nel blocco transformer, come illustrato nello snippet di codice seguente. Gli utenti possono configurare l’architettura del transformer specificando parametri come il numero di layer e la lunghezza della sequenza. Un blocco sequenziale in PyTorch può essere creato passando gli input aggregati, applicando il mascheramento e abilitando la configurazione del modello desiderata, consentendo una configurazione flessibile per attività di raccomandazione personalizzate.
Elaborazione della sequenza in Pytorch .png
Fig) _Elaborazione della sequenza in Pytorch_
Testa di predizione
La Testa di predizione è il modulo finale nel framework Transformers4Rec, in cui gli output del modello transformer vengono utilizzati per generare raccomandazioni azionabili.
Figure- Gli output del modello transformer vengono utilizzati per generare raccomandazioni azionabili. .png
Figura: Gli output del modello transformer vengono utilizzati per generare raccomandazioni azionabili.
Questo modulo supporta vari casi d’uso adattati alle esigenze aziendali, tra cui:
Predizione dell’elemento successivo: Questa opzione prevede l’elemento successivo con cui è probabile che un utente interagisca in base alle sue azioni precedenti, aiutando a fornire raccomandazioni tempestive e pertinenti.
Classificazione binaria: Qui, il modello calcola la probabilità che un utente clicchi su un elemento specifico. Questo è utile per la previsione del click-through rate (CTR), poiché aiuta a determinare quali elementi hanno maggiori probabilità di coinvolgere gli utenti, contribuendo all’ottimizzazione del layout e dei contenuti.
Regressione: Le attività di regressione consentono la previsione di valori continui, come il tempo che un utente potrebbe trascorrere su un elemento, il numero di interazioni previste o persino un importo di acquisto stimato.
Il diagramma seguente illustra la pipeline di produzione end-to-end, inclusi tutti e quattro i componenti—Aggregazione delle feature, Mascheramento della sequenza, Elaborazione della sequenza e Testa di predizione—che lavorano insieme per fornire raccomandazioni accurate e consapevoli del contesto.
Figure- Pipeline end-to-end di un sistema di raccomandazione costruito utilizzando Transformers4Rec.png
Figura: Pipeline end-to-end di un sistema di raccomandazione costruito utilizzando Transformers4Rec
Valutazione e sfide nell’uso di Transformers4Rec
Costruire un sistema di raccomandazione con Transformers4Rec richiede sia una valutazione efficace sia una pianificazione strategica per superare le sfide di scalabilità e manutenzione.
Valutazione del sistema
L’efficacia di un sistema di raccomandazione dipende in larga misura da quanto accuratamente soddisfa le esigenze degli utenti. Per Transformers4Rec, le metriche di valutazione comuni includono precisione e recall, che misurano quanto le prime ‘N’ raccomandazioni del sistema siano allineate alle preferenze degli utenti. Inoltre, metriche di ranking come Mean Average Precision (MAP) e Normalized Discounted Cumulative Gain (NDCG) vengono utilizzate anche per valutare la rilevanza e l’ordine degli elementi raccomandati.
Sfide
La scalabilità di un sistema di raccomandazione basato su Transformers4Rec comporta costi computazionali significativi, in particolare quando viene distribuito su larga scala con risorse GPU. Anche la creazione e la manutenzione di un sistema di questo tipo richiedono un’infrastruttura estesa, che copre tutto, dalla raccolta e archiviazione dei dati alla distribuzione del modello e all’inferenza in tempo reale.
Scegliere l’infrastruttura giusta è fondamentale per creare un sistema in grado di recuperare rapidamente raccomandazioni pertinenti. Ad esempio, utilizzare un database vettoriale come Milvus consente rapide ricerche di similarità e un’archiviazione efficiente degli embedding vettoriali, che si integrano bene nella pipeline di raccomandazione.
Un’altra sfida chiave è la gestione di cataloghi di prodotti nuovi o che cambiano frequentemente. Transformers4Rec deve fornire raccomandazioni accurate per questi nuovi elementi, anche con dati storici limitati. Ciò richiede adattabilità sia nel modello sia nell’infrastruttura dei dati per aggiornare le raccomandazioni in base al contesto più recente.
Riepilogo
In questo blog, abbiamo discusso di come Transformers4Rec utilizzi tecniche ispirate alla NLP per creare sistemi di raccomandazione dinamici e personalizzati. Con componenti come Feature Aggregation, Sequence Masking, Sequence Processing e Prediction Head, il framework cattura pattern utente complessi per fornire raccomandazioni pertinenti in tempo reale. Metriche chiave, tra cui precision, recall, MAP e NDCG, aiutano a valutare l’efficacia del sistema, garantendo che le raccomandazioni soddisfino le esigenze degli utenti.
Abbiamo anche discusso le sfide della scalabilità di Transformers4Rec, in particolare in relazione ai costi dell’infrastruttura e alle esigenze di archiviazione, dove strumenti come il database vettoriale Milvus supportano un’archiviazione e un recupero efficienti dei vettori. La regolazione fine dei parametri, come le dimensioni dei vettori e la lunghezza della sequenza, è una tecnica chiave che ottimizza le prestazioni del modello, rendendo Transformers4Rec una soluzione flessibile e potente per i moderni sistemi di raccomandazione.
Ulteriori letture
Comprendere l’architettura e i concetti fondamentali dei modelli Transformer
Ricerca vettoriale efficiente in RecSys con Milvus e NVIDIA Merlin
Trasformare le raccomandazioni pubblicitarie: il percorso di SmartNews con Milvus
Sblocca motori di raccomandazione avanzati con la nuova Range Search di Milvus
Crea un motore di raccomandazione di film con Milvus e Python
Continua a leggere

VDBBench Adds Cost-Aware Benchmarking for Vector Databases
Compare Zilliz Cloud, Pinecone, and turbopuffer with VDBBench cost-aware vector database benchmarks across latency, freshness, multitenancy, and cold starts.

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.

The Real Bottlenecks in Autonomous Driving — And How AI Infrastructure Can Solve Them
Autonomous driving faces a data bottleneck. Learn how AI-native vector databases like Zilliz solve scale, cost, and insight challenges across AV pipelines.


