Esperienza di raccomandazione basata su sessioni
La raccomandazione basata su sessione può essere esaminata da tre prospettive: SBR, apprendimento del contesto globale e GSLA (si veda la Tabella dei materiali). Nessun partecipante umano né animali sono stati coinvolti in questo studio. Tutti i dataset sperimentali utilizzati in questo lavoro sono disponibili pubblicamente e sono stati inviati come File supplementare: GSLA4Rec. zip.
Raccomandazione basata su sessione
Il sistema di raccomandazione basato sulle sessioni (SBR) era un sistema di intelligenza artificiale che interagiva con gli utenti attraverso dialoghi naturali in più turni per comprendere dinamicamente le preferenze degli utenti e fornire raccomandazioni personalizzate. L'SBR si è evoluto da metodi tradizionali ad approcci basati sul deep learning e ibridi, per poi progredire verso soluzioni basate su modelli linguistici di grandi dimensioni (LLM).
Raccomandazione tradizionale basata su sessioni
L'SBR tradizionale era tipicamente rappresentato da metodi basati su catene di Markov e filtraggio collaborativo. Il primo generava raccomandazioni decomponendo matrici di transizione probabilistiche specifiche per l'utente. Ad esempio, Guy Shani24 ha proposto un metodo di raccomandazione basato su processi decisionali di Markov che produceva raccomandazioni mediante la decomposizione di matrici corrispondenti; Wanrong Gu25 ha migliorato le prestazioni delle raccomandazioni integrando le catene di Markov con gli intervalli temporali di acquisto. Il secondo generava raccomandazioni estraendo relazioni sequenziali nascoste tra elementi interattivi adiacenti attraverso la fattorizzazione della matrice. Ad esempio, Sarwar B1 ha calcolato la similarità tra elementi in base ai comportamenti storici degli utenti (come valutazioni e clic) per raccomandare elementi coerenti con le preferenze passate degli utenti. Se l'utente A aveva gradito l'elemento a, e l'elemento c era molto simile ad a, il sistema raccomandava c all'utente A; Rendle S5 ha proposto FPMC, un modello di raccomandazione sequenziale che combina la fattorizzazione della matrice con le catene di Markov, per catturare le relazioni sequenziali nascoste tra elementi interattivi adiacenti. Tuttavia, tali approcci SBR tradizionali si concentravano sulle relazioni sequenziali tra elementi adiacenti, rendendo difficile modellare relazioni di dipendenza complesse.
Raccomandazione basata su sessioni mediante apprendimento profondo
La raccomandazione basata su sessioni mediante apprendimento profondo ha attraversato diverse fasi evolutive che hanno coinvolto reti neurali convoluzionali (CNN)26,27,28,29, reti neurali ricorrenti (RNN) e reti neurali grafiche (GNN). La SBR basata su CNN sfruttava operazioni come la convoluzione e il pooling per apprendere rappresentazioni di ciascun contesto di sessione, successivamente utilizzate per generare raccomandazioni. Caser30 convertiva gli L elementi più recenti con cui un utente aveva interagito in vettori d-dimensionali tramite un livello di incorporamento, formando una matrice di incorporamento trattata come un"immagine" mappata nel tempo e nello spazio latente. Successivamente, utilizzava tre filtri convoluzionali per modelli sequenziali — a livello puntuale, a livello di unione senza salto e a livello di unione con un salto — per apprendere modelli sequenziali e migliorare le prestazioni della SBR. Tuan et al.31 modellarono in modo uniforme i flussi di clic delle sessioni e le caratteristiche dei contenuti mediante kernel convoluzionali 3D, formando rappresentazioni congiunte spazio-temporali e basate sui contenuti.
Le RNN erano una classe di architetture di reti neurali progettate specificamente per elaborare dati sequenziali. L'idea fondamentale consisteva nel catturare le dipendenze temporali attraverso strutture ricorrenti come le reti a memoria a lungo e breve termine (LSTM)13 e le unità ricorrenti con porte (GRU)32, ed erano ampiamente utilizzate in campi come l'elaborazione del linguaggio naturale (NLP)33, il riconoscimento vocale34, la traduzione del testo35, i viaggi36,37, la criminalità38 e la previsione di tendenze future39 (ad esempio, traffico40, mercati azionari41,42 e meteorologia43). GRU4Rec, proposto da Hidasi et al., rappresentò una pietra miliare nella ricerca sui SBR e fu il primo a introdurre le RNN nei SBR, catturando i modelli comportamentali sequenziali degli utenti tramite GRU per ottenere raccomandazioni personalizzate.
I GNN44 hanno dimostrato un'elevata capacità espressiva nella modellizzazione di relazioni complesse all'interno di dati strutturati a grafo, e alcuni ricercatori hanno introdotto i GNN per modellare transizioni complesse all'interno o tra sessioni. A seconda delle diverse architetture dei modelli GNN, i metodi basati su GNN per la SBR sono generalmente suddivisi in reti neurali a grafo con porte (GGNN)45, reti di convoluzione su grafi (GCN)46 e reti di attenzione su grafi (GAT)47. SR-GNN è stato il primo a utilizzare i GNN per la SBR, rappresentando le sequenze di sessione come grafi diretti e impiegando GGNN per catturare relazioni complesse di transizione tra elementi all'interno delle sessioni, combinandoli con meccanismi di attenzione per ottenere l'embedding finale della sessione, migliorando così le prestazioni del sistema di raccomandazione. Chen L48 ha proposto un framework multivista basato su GNN che integra attributi strutturati e parole chiave non strutturate per modellare associazioni prodotto multidimensionali, aumentando l'accuratezza della SBR. Driss E49 ha progettato un innovativo sistema di raccomandazione di sessione che adotta reti neurali a capsula su grafi per catturare caratteristiche complesse degli elementi e migliorare l'accuratezza delle previsioni nella SBR.
Le tecniche di deep learning sopra menzionate avevano ampliato l'ambito di ricerca dell'SBR e migliorato in modo efficace le prestazioni, ma presentavano comunque alcune limitazioni, principalmente riscontrabili in: 1) Per elementi appena emergenti o sessioni molto sparse, era difficile per i modelli effettuare previsioni accurate a causa della mancanza di un contesto globale; 2) Non erano in grado di sfruttare i modelli globali presenti in tutte le sessioni storiche.
Raccomandazione ibrida basata su sessione
La raccomandazione ibrida basata sulle sessioni integra i punti di forza di diverse tecniche, come il filtraggio collaborativo, il Deep Learning e i meccanismi di attenzione, per migliorare le prestazioni della SBR. GC-SAN50 incorpora un meccanismo di auto-attenzione basato su SR-GNN per catturare in modo più efficace le informazioni di interazione degli elementi più importanti all'interno di una sessione. FGNN51 aggrega ulteriormente le informazioni provenienti dagli elementi vicini attraverso un meccanismo di attenzione multi-testa, imparando così le diverse relazioni dell'elemento target. SR-HetGNN52 appartiene alla raccomandazione basata sulle sessioni con grafi eterogenei; introducendo elementi di tipo diverso (utente, elemento, sessione) e archi multi-relazionali (clic, acquisto, co-occorrenza, associazione di attributi), costruisce una rete globale di conoscenza, superando il limite delle sequenze di elementi singoli ed emergendo come un metodo fondamentale per modellare il comportamento degli utenti anonimi e le associazioni di interesse tra sessioni negli ultimi anni. KGSR-SAP53 costruisce un grafo di conoscenza collegando elementi tramite archi di diverse relazioni, descrivendo così le varie interazioni tra utente ed elemento, risolvendo il problema della perdita di informazioni che si verifica quando il grafo globale contiene solo archi di un singolo tipo (interazione utente-elemento). Wang ZH54 ha proposto DiffSBR, un modello di raccomandazione basato sulle sessioni che utilizza un approccio di diffusione. Esso genera preferenze affidabili per l'elemento successivo simulando la rimozione del rumore, migliorando così la modellazione delle sequenze dinamiche di clic degli utenti. Qiao ST55 ha sviluppato un framework SBR che combina l'apprendimento delle intenzioni multi-vista e l'allineamento con modelli linguistici di grandi dimensioni (LLM). Esso estrae le intenzioni implicite degli utenti da diverse prospettive e sfrutta modelli linguistici per allineare le caratteristiche semantiche, migliorando ulteriormente le prestazioni della raccomandazione.
Contesto globale
Per superare il limite delle "sessioni di visualizzazione considerate in isolamento", i ricercatori hanno compreso che le informazioni globali potevano essere utilizzate per potenziare la capacità rappresentativa della sessione corrente, al fine di risolvere problemi come la scarsità di dati, il problema di avviamento a freddo e il divario semantico nei tradizionali sistemi di raccomandazione basati su sessione (SBR). Nel frattempo, nella costruzione del contesto globale, era necessario integrare le informazioni globali all'interno di una singola sessione minimizzando al contempo le interferenze di rumore. CSRM56 ha ottimizzato la rappresentazione a livello di sessione integrando informazioni collaborative tra la sessione corrente e le sessioni adiacenti, utilizzando un codificatore a memoria esterna (OME) per estrarre l'intento collaborativo dalle informazioni collaborative. CA-TCN57 ha proposto un modello di rete convoluzionale temporale con consapevolezza intersessione, costruendo grafi globali e grafi contestuali di sessione per simulare l'impatto delle transizioni intersessione sugli elementi e sulle sessioni; inoltre, la rete convoluzionale temporale (TCN) amplia il campo recettivo attraverso convoluzioni dilatate, con un numero di strati in grado di coprire sequenze di lunghezza esponenziale (campo recettivo = ), risolvendo così il problema della scomparsa del gradiente nei modelli RNN. Chen58 ha proposto un metodo SBR basato su reti neurali ipergrafo (SR-HGNNs), che integra propagazione di ordine misto (basso e alto ordine) e meccanismi di attenzione per risolvere il problema di eccessiva omogeneizzazione (over-smoothing) delle tradizionali GNN in sessioni brevi e per distinguere l'importanza di diversi ordini di propagazione, permettendo una cattura più accurata delle dipendenze e l'evitamento di interferenze di rumore. GCE-GNN ha utilizzato coppie di elementi co-occorrenti di ordine multiplo per costruire un grafo pesato non orientato, contando le frequenze di co-occorrenza degli elementi per rifletterne l'importanza all'interno della sessione; AGNN-GC59 ha utilizzato le relazioni di transizione tra elementi intersessione per costruire un grafo collaborativo globale, calcolando le probabilità di transizione degli elementi nel grafo globale per riflettere i cambiamenti di interesse all'interno della sessione; DA-GCN60 ha utilizzato il percorso più breve per aggiornare la matrice di adiacenza e costruire un grafo pesato dinamico, calcolando la frequenza di co-occorrenza nel grafo globale e la distanza del percorso tra gli elementi. Ispirati dai suddetti studi, in questo articolo si propone di costruire un grafo globale mediante un approccio basato sui vicini, ovvero utilizzando il coefficiente di similarità di Jaccard per calcolare le sessioni simili, sfruttando così le informazioni globali e al contempo filtrando il rumore (eliminando gli elementi irrilevanti), raggiungendo l'obiettivo di costruire in modo accurato il contesto globale e gettando solide basi per l'algoritmo SBR successivo.
Attenzione lineare con slot controllati
I tradizionali trasformatori61 presentano un'elevata complessità spaziotemporale a causa della necessità di operazioni di attenzione completamente connesse lungo l'intera sequenza, come segue:
(1)
Dove Q, K, V ∈ RN×d erano trasformazioni lineari degli elementi in ingresso, M = {Mij = 1 se i ≥ j, altrimenti −∞ } era la maschera causale utilizzata per prevenire la fuoriuscita di informazioni future, ⊙ indicava il prodotto elemento per elemento e f indicava la funzione di attivazione softmax.
Per ottenere un'attenzione lineare62, l'idea più diretta era rimuovere la funzione di attivazione softmax. Tuttavia, se la funzione di attivazione softmax venisse rimossa direttamente, l'attenzione lineare porterebbe sicuramente a alcuni problemi potenziali: la perdita del potente potere espressivo delle reti neurali e l'incapacità di risolvere problemi complessi del mondo reale.
Attenzione lineare a slot con controllo a memoria limitata
Supponendo che fosse necessario mantenere la funzione di attivazione softmax, K e V sono state compresse separatamente in K̃, Ṽ ∈ Rm×d. Dal punto di vista della rete di memoria, K̃ e Ṽ possedevano slot di memoria la cui lunghezza aumentava con la sequenza, ovvero il numero di slot m = N. Se m era fissato, la linearizzazione era ovviamente possibile. Ispirandosi a Bounded-memory Control63, ogni token negli elementi in ingresso di lunghezza N doveva essere scritto in modo competitivo in m slot.
,
,
(2)
Dove f era la funzione di attivazione softmax e φi era il vettore per controllare l'ingresso efficace al fine di controllare il valore chiave ki come segue.
,
(3)
Qui, (φi)j rappresentava l'intensità di scrittura del token i-esimo nello slot j-esimo ed è stato ottenuto utilizzando una funzione softmax cumulativa.
Per ottenere un calcolo lineare efficiente, la formula (2) è stata riscritta come formula (4), che calcola οi da qi, ki e vi (Eq. 4) mediante {οi|i=1T, qi, ki, vi)|i=1T} e adotta un calcolo sequenziale in due passaggi:
,
(4)
Pertanto, le operazioni SLA potrebbero essere derivate:
,
(5)
Dove oi′ ∈ ℝm, οi ∈ ℝd. Pertanto, l'SLA potrebbe acquisire un addestramento per blocchi efficiente dal punto di vista hardware e in tempo lineare64.
Attenzione lineare con slot controllati
L'attenzione lineare a slot con controllo a memoria limitata potrebbe ridurre la complessità computazionale e spaziale. Tuttavia, l'accumulo di informazioni potrebbe introdurre anche informazioni rumorose nell'interazione della sessione, quindi un decadimento dipendente dai dati era molto importante per conservare selettivamente e dimenticare le informazioni, e questo meccanismo selettivo era stato riesaminato nei recenti modelli selettivi dello spazio di stato65. GSLA con dipendenza dai dati poteva essere espresso come:
,
(6)
Qui le porte di decadimento sono state parametrizzate mediante una forma di prodotto esterno Gi = αi ⊗ βi, con αi, βi ∈ [0,1]d. Nei passaggi seguenti, GSLA può essere scritto anche nella seguente forma equivalente impostando tipicamente βt = 1 e utilizzando la moltiplicazione matriciale come in64:
(7)
Dove αi e ki indicavano rispettivamente il cancello di dimenticanza e il cancello di ingresso, i due cancelli potevano essere accoppiati come ki = 1 − αi, ispirandosi alla letteratura sui RNN con cancelli. Era evidente che GSLA potesse essere formulato con un calcolo sequenziale a due passaggi, come mostrato nell'Equazione (8). La struttura del secondo ordine supportava un addestramento parallelo a blocchi per migliorare l'efficienza dell'addestramento, e l'inserimento dell'operazione softmax al centro della struttura del secondo ordine potenziava la capacità di modellazione della memoria a slot finiti.
,
(8)
Trasformazione dei dati della sessione
Definizione del problema
Sia data la sequenza di sessione S = {v1s, v2s, ⋯, vns}, dove vis indica l'i-esimo elemento cliccato. Analizzando il comportamento dell'utente nei clic all'interno di questa sequenza, il sistema ha previsto l'elemento successivo che potrebbe interessare all'utente, vn+1s.
Costruzione del grafico
Costruzione del grafico di sessione
Per una sessione S = {v1s, v2s, ⋯, vns}, è stato costruito un grafo diretto Gs = (Vs, εs), in cui Vs rappresentava l'insieme di elementi della sessione data S, e εs = {eijlocal|vi, vj, vi, vj ∈ Vs} era l'insieme di archi della sessione data S. ε(vi-1s, vis) rappresentava gli elementi cliccati consecutivamente in questa sessione. L'arco eijlocal poteva essere suddiviso in quattro tipi: ein, eout, ein-out, eself. Poiché lo stesso elemento potrebbe apparire ripetutamente nella sequenza, il valore ponderato per ciascun arco è stato calcolato.
La sessione corrente s = [v1, v2, v4, v2, v3] è stata convertita in un SG, come mostrato in Figura 1A.

Figura 1: Trasformare gli elementi interattivi in strutture a grafo. (A) Illustrazione della costruzione del grafo di sessione (SG) mediante la trasformazione di una sessione in un grafo. (B) Illustrazione della costruzione del grafo globale dei vicini (NGG) combinando molte sessioni in un unico grafo. La figura è stata realizzata autonomamente tramite Visio con elementi completamente personalizzati. Non sono state utilizzate risorse grafiche esterne protette da copyright, pertanto non è stato necessario alcun permesso aggiuntivo da parte di terzi. Il copyright della figura appartiene agli autori e sarà conforme alle norme editoriali della rivista in caso di accettazione. Cliccare qui per visualizzare una versione ingrandita di questa figura.
Costruzione del grafo globale dei vicini
Sulla base della sessione corrente S, è stato costruito il corrispondente NGG Gg = (Vg, εg) per arricchire l'apprendimento della rappresentazione della sessione corrente in modo intersessione. Vg era l'insieme degli elementi contenente tutti gli elementi in Gg, e εg = {eijglobal|vi, vj, vi, vj ∈ Vg} era l'insieme degli archi di Gg. ε(vi-1g, vig) rappresentava gli elementi interagenti direttamente vi-1g e vig nel NGG Gg. Questo processo comprendeva due fasi: acquisizione della sessione vicina e costruzione del NGG.
Acquisizione della sessione con il vicino
In tutto il set di dati, sono state cercate le sessioni con il numero massimo di elementi co-occorrenti rispetto alla sessione corrente. Sono state selezionate le prime N sessioni con i conteggi di co-occorrenza più elevati per costruire un insieme candidato di sessioni vicine S. Successivamente, il coefficiente di similarità di Jaccard è stato utilizzato per calcolare la similarità tra la sessione corrente cu e una sessione Sr ∈ S dell'insieme candidato S, come mostrato nell'Equazione (9).
(9)
Qui, co(Scu, Sr) indica il numero di elementi che compaiono contemporaneamente sia in Scu che in Sr, mentre l(Scu) e l(Sr) rappresentano rispettivamente le lunghezze di Scu e Sr, e Scu e Sr indicano la sessione corrente e una sessione vicina. Le sessioni con una somiglianza inferiore a una certa soglia (impostabile come iperparametro) sono state eliminate, mentre le sessioni rimanenti costituiscono l'insieme delle sessioni vicine Ns per la sessione corrente.
Costruzione del grafo globale dei vicini
Sulla base dell'insieme di sessioni adiacenti Ns, è stato costruito il NGG, come illustrato in Figura 1B. Durante la costruzione della matrice di adiacenza, se due elementi (vi, vj) presentavano un'interazione, l'elemento corrispondente Aij veniva impostato a 1; in caso contrario, veniva impostato a 0. Inoltre, le interazioni tra gli elementi sono state trattate come non direzionate e sono state dotate di autoanelli, seguite da normalizzazione, come mostrato in Tabella 1.
| 1 | 2 | 3 | 4 | 5 | 6 |
| 1 | 1/2 | 1/2 | 0 | 0 | 0 | 0 |
| 2 | 0 | 1/4 | 1/4 | 1/2 | 0 | 0 |
| 3 | 0 | 0 | 1 | 0 | 0 | 0 |
| 4 | 0 | 1/4 | 1/2 | 1/4 | 0 | 0 |
| 5 | 0 | 0 | 0 | 0 | 1/3 | 2/3 |
| 6 | 0 | 1/3 | 0 | 1/3 | 0 | 1/3 |
Tabella 1: Matrice di adiacenza normalizzata del grafo globale dei vicini. La tabella presenta la matrice di adiacenza normalizzata che descrive le connessioni pesate tra i nodi nel grafo globale dei vicini costruito.
Progettazione di un algoritmo di raccomandazione basato su sessioni
Questa sezione illustra il modello innovativo proposto GSLA4Rec, che migliora le prestazioni di SBR introducendo il meccanismo GSLA sulla rappresentazione congiunta delle caratteristiche di SG e NGG.

Figura 2: Schema del framework GSLA4Rec. Questo schema integrava l'apprendimento della struttura del grafo di sessione e del grafo globale dei vicini, filtrava il rumore delle interazioni mediante un meccanismo di gating, bilanciava memorizzazione ed efficienza con un meccanismo di memory slots e catturava la rilevanza degli elementi attraverso un meccanismo di attenzione lineare per prevedere la preferenza dell'utente per il prossimo clic. La figura è stata realizzata autonomamente tramite Visio con elementi completamente personalizzati. Non sono state utilizzate risorse grafiche esterne protette da copyright; pertanto, non è stato necessario alcun permesso aggiuntivo da parte di terzi. Il copyright della figura appartiene agli autori e sarà conforme alle norme editoriali della rivista in caso di accettazione. GSLA4Rec indica le reti neurali a grafo con attenzione lineare a slot con gating per il SBR. Cliccare qui per visualizzare una versione ingrandita di questa figura.
Figura 2 mostra il framework di GSLA4Rec, composto da quattro componenti principali: 1) Rappresentazione degli elementi a livello di sessione. Utilizzava un modello GNN su SG per apprendere gli embedding degli elementi a livello di sessione all'interno della sessione corrente; 2) Rappresentazione degli elementi a livello globale dei vicini. Apprendeva gli embedding degli elementi a livello globale su tutte le sessioni impiegando una GRU per incorporare ricorsivamente gli embedding dei vicini di ciascun elemento in base a NGG; 3) GSLA. Modellava le preferenze dell'utente nella sessione corrente aggregando le rappresentazioni degli elementi apprese sia a livello di sessione che a livello globale; 4) Strato di previsione. Produceva le probabilità previste per gli elementi candidati. Le quattro componenti sono descritte in dettaglio di seguito.
Rappresentazione della sessione
In SBR, la comprensione dei comportamenti di interazione degli utenti era fondamentale. A tal fine, sono stati costruiti un SG e un NGG per l'apprendimento della rappresentazione delle sessioni, con l'obiettivo di comprendere in modo completo i comportamenti di interazione degli utenti e catturare così l'intento degli utenti in modo più autentico.
Rappresentazione degli elementi a livello di sessione
Sulla base del SG in Figura 1A, è stato impiegato un metodo di Attenzione su Grafo Bidirezionale Pesato (WBGAT) per estrarre le caratteristiche del SG. Questo metodo ha introdotto pesi sugli archi e direzionalità degli elementi (vicini in entrata e vicini in uscita) basandosi sul meccanismo standard GAT, ottenendo l'effetto di rafforzare gli archi importanti e catturare dipendenze bidirezionali, superando così i limiti del GAT tradizionale riguardo alle relazioni asimmetriche tra elementi e all'intensità delle interazioni. Il processo di calcolo è stato il seguente:
Innanzitutto, calcolo dei pesi di normalizzazione del grado in entrata degli elementi.
(10)
dove eij indicava il peso del vicino di primo ordine delle caratteristiche dell'elemento j rispetto all'elemento i,
era la relazione tra l'elemento i e l'elemento j, β* ∈ ℝd erano i vettori dei pesi, hi e hj erano rispettivamente le rappresentazioni dell'elemento i e dell'elemento j, Wi(in) ∈ ℝd*d e Wj(in) ∈ ℝd*d erano parametri addestrabili, || rappresentava l'operazione di concatenazione. Per distinguere le diverse relazioni di grado entrante, sono stati addestrati due vettori di peso, denominati rin e rin-self. È stata adottata la funzione di attivazione LeakyReLU.
(11)
Per rendere i coefficienti confrontabili tra elementi diversi, i pesi di attenzione sono stati normalizzati mediante la funzione softmax. Dove Ni(in) era l'insieme dei vicini entranti di primo ordine dell'elemento i,
era il peso del vicino entrante del collegamento diretto (i←j) nel grafo SG, questo metodo ha permesso al modello di apprendere le correlazioni tra le caratteristiche degli elementi mantenendo al contempo le informazioni relative alla forza intrinseca delle connessioni nella struttura del grafo, prendendo il logaritmo dei pesi degli archi e aggiungendoli al punteggio di attenzione originale eij.
Secondo, calcolo dei pesi di normalizzazione del grado in uscita degli elementi.
(12)
dove ẽij indicava il peso del primo ordine delle caratteristiche dell'elemento j rispetto all'elemento i,
era la relazione tra l'elemento i e j, sono stati addestrati due vettori di peso, denominati rout e rout-self.
(13)
Dove Ni(out) era l'insieme dei vicini di primo ordine in uscita dell'elemento i,
era il peso del vicino in uscita del collegamento diretto (i→j) nel SG.
Terzo, aggregazione delle informazioni. L'embedding aggiornato dell'elemento può essere ottenuto dopo aver pesato e sommato gli embedding di primo ordine relativi al grado entrante e al grado uscente dell'elemento i.
(14)
Dove
e α̃ij indicano rispettivamente i pesi del grado entrante e del grado uscente dell'elemento i,
indica la rappresentazione aggiornata dell'elemento i.
Rappresentazione globale dell'elemento a livello di vicinato
Ricerche recenti hanno concordemente stabilito che la costruzione di un grafo globale potrebbe migliorare la rappresentazione dei dati e, di conseguenza, potenziare le prestazioni di SBR, il che era fuori discussione. Tuttavia, il potenziamento globale dei dati potrebbe introdurre anche informazioni irrilevanti, come rumore. Nel modello proposto, al fine di ottenere un'arricchimento globale dei dati riducendo al minimo il rumore per quanto possibile, è stato costruito un grafo globale basato su vicini prossimi.
Sulla base del NGG in Figura 1B e della matrice di adiacenza normalizzata in Tabella 1, la sessione attuale e le sessioni adiacenti sono state trasformate in un NGG, e un metodo GGNNs45 è stato applicato per estrarre le caratteristiche del NGG. Il processo di apprendimento dei vettori degli elementi nel NGG è mostrato nell'Equazione (15).




(15)
W ∈ ℝd×2d indicava i pesi di controllo, zg,i e rg,i rappresentavano rispettivamente il gate di aggiornamento e il gate di reset. [h1t-1, ⋯, hnt-1] rappresentava l'elenco di tutti i vettori degli elementi nella sessione s. σ(x) = 1/(1 + e-x) era la funzione sigmoidea logistica, ⊙ indicava la moltiplicazione elemento per elemento, e hi ∈ ℝd rappresentava il vettore dopo l'aggiornamento con gate. La matrice di adiacenza As ∈ ℝn×n indicava la connettività tra gli elementi nelle sessioni adiacenti, e As,i: ∈ ℝ1×n rappresentava un blocco di colonna di As corrispondente all'elemento vs,i nella matrice di adiacenza. Per la sessione corrente s = [v1, v2, v4, v2, v3], il NGG e la matrice di adiacenza normalizzata erano mostrati in Figura 1B e Tabella 1, rispettivamente.
Rappresentazione dell'elemento
La rappresentazione dell'elemento è stata ottenuta sommando il vettore dell'elemento a livello di sessione e il vettore dell'elemento a livello globale del vicino, come mostrato nell'Equazione (16):

(16)
Dove è stato utilizzato il dropout sulle rappresentazioni degli elementi adiacenti a livello globale per attenuare l'overfitting.
Attenzione lineare con slot controllati
La gated-slot linear attention (GSLA) presentata in questo articolo integra l'attenzione lineare con un controllo a memoria limitata e un meccanismo di gating dipendente dai dati. Da un lato, eredita il meccanismo a slot di memoria finita del modello attention-based controller (ABC), comprimendo le coppie chiave-valore, che inizialmente crescevano con la lunghezza della sequenza, in un numero fisso di slot, ciascuno aggiornato tramite scrittura competitiva, risolvendo così il problema della complessità computazionale dell'attenzione globale del transformer. Dall'altro lato, introduce un meccanismo di gating fine-granulare simile a quello della GLA, in cui i dati in ingresso regolano dinamicamente il rapporto di mantenimento delle informazioni storiche attraverso un cancello di dimenticanza αi, risolvendo il problema del rumore causato dall'assenza di un meccanismo di dimenticanza nell'ABC.

Figura 3: Diagramma schematizzato del GSLA. Il vettore di input è stato mappato rispettivamente nel vettore di query, nel vettore delle parole chiave e nel vettore dei valori, quindi elaborato mediante attenzione lineare con controllo della memoria limitata e un meccanismo di gating dipendente dai dati per ottenere il vettore di query aggiornato, il vettore delle parole chiave aggiornato, il vettore dei valori aggiornato e il vettore di output. Questa figura è stata disegnata autonomamente utilizzando Visio con elementi completamente personalizzati. Non sono state utilizzate risorse grafiche esterne protette da copyright; pertanto, non è stato necessario alcun permesso aggiuntivo per copyright di terze parti. Il copyright della figura appartiene agli autori e sarà conforme alle norme editoriali della rivista in caso di accettazione. GSLA indica attenzione lineare con slot a gate. Cliccare qui per visualizzare una versione ingrandita di questa figura.
Come specificamente implementato in Figura 3, il vettore di ingresso è stato mappato separatamente nel vettore di interrogazione, nel vettore chiave e nel vettore di valore64:
(17)
Dove Wq, Wk, Wv ∈ ℝd×d rappresentavano le matrici di peso della trasformazione corrispondenti rispettivamente alla query, alla chiave e al valore, e ht indicava il vettore di embedding al passo temporale t nella sequenza di input della sessione. La funzione Swish era definita come Swish(x) = x · σ(x) ed era una funzione di attivazione auto-gestita, in cui σ era la funzione Sigmoid; essa superava la tradizionale funzione di attivazione ReLU in numerosi compiti di apprendimento profondo.
GSLA ha utilizzato un gate di dimenticanza αi e un gate di ingresso 1 − αi, dipendenti dai dati in ingresso, per aggiornare dinamicamente le informazioni nello slot di memoria iesimo. Il processo era il seguente64:
(18)
(19)
In questo caso, K̃t e Ṽt rappresentavano gli slot del vettore chiave e gli slot del vettore valore al passo temporale t, mentre K̃t-1 e Ṽt-1 rappresentavano gli slot del vettore chiave e gli slot del vettore valore al passo temporale t−1. Il gate di dimenticanza αi = σ(Wαht)1/τ, dove Wα ∈ ℝd era la matrice dei pesi di trasformazione, σ era la funzione sigmoidea e τ era il coefficiente di smorzamento (tipicamente impostato a 8), era utilizzato per controllare la morbidezza del gate di dimenticanza. Ciò permetteva a GSLA di regolare in modo continuo il tasso di dimenticanza delle informazioni storiche: maggiore era il valore di αi, maggiore era la dipendenza di GSLA dalle informazioni storiche; minore era il valore di αi, maggiore era l'attenzione di GSLA sull'input corrente.
Gli slot del vettore chiave K̃t e gli slot del vettore valore Ṽt degli slot al passo t-esimo sono stati scritti in forma matriciale, come mostrato65 nelle equazioni (20) e (21):
(20)
(21)
Successivamente, il GSLA con proprietà del secondo ordine (si veda l'Equazione (8)) è stato utilizzato per calcolare l'output oi |i=1T per ogni passo temporale i ∈ [1, …, T]. È stata applicata una trasformazione lineare all'output di ciascun passo temporale per ottenere il risultato h̃t. Infine, è stato calcolato il valore medio delle rappresentazioni di tutti gli elementi nella sequenza della sessione per generare l'embedding della sessione S̃e con aggiornamenti dinamici della memoria:
(22)
(23)
Qui, ot rappresentava l'output di Gated-Slot al passo temporale t, h̃t indicava il risultato dell'applicazione di una trasformazione lineare a ot. S̃e indicava il valore medio di h̃t in tutti i passi temporali.
Strato di previsione
Sulla base della rappresentazione della sessione ottenuta S̃e e dell'incorporamento iniziale dell'elemento i, è stata eseguita un'operazione di prodotto scalare per calcolare il punteggio di ciascun elemento candidato hi. Successivamente, la funzione softmax è stata utilizzata per ottenere le probabilità di raccomandazione dell'elemento candidato i:
(24)
In questo caso, ỹ rappresentava le probabilità di raccomandazione dell'elemento candidato, hi indicava il vettore dell'elemento candidato e la funzione di perdita cross-entropia è stata utilizzata per l'addestramento del modello.
(25)
In questo caso, y era la rappresentazione one-hot encoded della verità fondamentale.