Ritratto fotorealistico, obiettivo 35mm, di un data scientist che osserva pensieroso una complessa visualizzazione dati su un display olografico che mostra serie temporali interconnesse, profondità di campo, tonalità duotone blu e ciano.

UniTTab: Il Transformer Jolly che Domina i Dati Tabellari nel Tempo!

Ciao a tutti! Avete mai provato a mettere ordine in quei dati che sembrano usciti da un frullatore? Parlo di dati tabellari, quelli che troviamo ovunque, dalle transazioni bancarie ai dati clinici. Spesso questi dati non sono statici, ma cambiano nel tempo, formando delle vere e proprie “storie”: le serie temporali. Ecco, gestire queste storie, soprattutto quando mescolano numeri e categorie (dati eterogenei), è una bella sfida, anche per le tecniche più avanzate di Intelligenza Artificiale come il Deep Learning. Sembra incredibile, ma in questo campo, spesso i vecchi metodi come gli alberi decisionali potenziati (tipo XGBoost) tengono ancora banco. Ma perché? Beh, un po’ per la mancanza di dataset enormi e pubblici (privacy, segreti commerciali…), ma soprattutto perché questi dati sono un bel guazzabuglio. E se vi dicessi che abbiamo trovato un modo per domare questa complessità con un unico, potente strumento? Vi presento UniTTab!

La Sfida dei Dati Tabellari: Un Mix Complesso

Immaginate una tabella delle vostre spese bancarie. C’è l’importo (un numero), la data (tempo!), il tipo di negozio (una categoria), magari la località se avete pagato con POS. Mescolare numeri puri con etichette categoriche non è banale per una rete neurale. Come le rappresentiamo insieme? Che tipo di “compito” diamo alla rete per imparare da questi dati così diversi? E non finisce qui. A volte, le righe stesse cambiano struttura! Una transazione al Bancomat (ATM) non ha gli stessi campi di una fatta col POS. Come gestiamo una serie temporale dove le “scene” (le righe) non hanno sempre gli stessi “attori” (i campi)? Fino ad oggi, mancava un approccio veramente unificato. Molti metodi si concentrano su un aspetto, o semplificano troppo, finendo per non battere le tecniche più tradizionali.

Entra in Scena UniTTab: Il Transformer che Unifica

Ecco che entra in gioco la nostra idea: UniTTab, che sta per Unified Transformer for Time-Dependent Heterogeneous Tabular Data. L’ispirazione viene dai Transformer, quelle architetture potentissime che hanno rivoluzionato il modo in cui le macchine capiscono il linguaggio e vedono le immagini. Abbiamo pensato: perché non usarle anche per i dati tabellari? L’idea di base è usare una struttura gerarchica, un po’ come fa TabBERT (un altro approccio interessante, ma con delle differenze chiave rispetto al nostro). Immaginate due livelli:

  • Il primo Transformer (“Field Transformer”) guarda dentro ogni singola riga (es. una transazione), capendo le relazioni tra i suoi campi.
  • Il secondo Transformer (“Sequence Transformer”) prende le “sintesi” delle righe prodotte dal primo e guarda come si legano tra loro nel tempo, catturando la dinamica della serie temporale.

Questa struttura a due livelli ci permette di gestire anche serie temporali belle lunghe, con centinaia di righe!

Close-up macro shot, 85mm lens, di un foglio di calcolo complesso su uno schermo, che mostra tipi di dati misti (numeri, testo, categorie), alto dettaglio, illuminazione controllata da ufficio.

Gestire i Numeri: Oltre le Semplici Categorie

Una delle nostre prime innovazioni riguarda come trattiamo i valori numerici (tipo l’importo di una transazione). Invece di fare come molti, che li “inscatolano” in categorie predefinite (discretizzazione), noi li trasformiamo usando un set di funzioni sinusoidali a diverse frequenze. Vi ricorda qualcosa? È un trucco simile a quello usato in NeRFs per creare immagini 3D super realistiche! Perché farlo? Perché le reti neurali a volte faticano con valori che cambiano rapidamente (alta frequenza). Usare queste “onde” sinusoidali aiuta a “smussare” queste variazioni e a rappresentare i numeri in modo più ricco e continuo, come vettori di feature invece che semplici scalari. Questo piccolo accorgimento si è rivelato molto efficace.

Destreggiarsi tra Tipi di Righe Diverse Come un Giocoliere

E il problema delle righe con strutture diverse (tipo POS vs ATM)? Qui abbiamo introdotto un’altra novità: un’interfaccia di embedding dipendente dal tipo di riga. In pratica, quando la sintesi di una riga (output del primo Transformer) deve passare al secondo Transformer, non passa direttamente. Prima viene “proiettata” linearmente in uno spazio a dimensione fissa. La cosa furba è che questa proiezione dipende dal tipo di riga! Abbiamo una matrice di proiezione diversa per ogni tipo (POS, ATM, ecc.). È come avere un traduttore specializzato per ogni “dialetto” di riga, che lo converte in un linguaggio universale comprensibile dal secondo Transformer. Questo ci permette di gestire serie temporali composte da righe strutturalmente diverse in modo elegante ed efficiente, cosa che, a nostra conoscenza, non era stata affrontata prima.

Un Unico Compito di Addestramento per Dominarli Tutti

Forse la cosa più bella di UniTTab è come lo addestriamo. Niente combinazioni complicate di diverse funzioni di costo (una per i numeri, una per le categorie…). Usiamo un unico, classico compito: il Masked Token pretext task. Avete presente BERT nel linguaggio? Nascondiamo a caso alcuni valori nella tabella (sia numerici che categorici) e chiediamo alla rete di indovinarli. Semplice, no? Ma come si fa a “indovinare” un numero se tutto è basato su token discreti? Qui sta il trucco, ispirato da BEiT (usato per le immagini):

  • Quando nascondiamo un valore numerico, per l’input usiamo la nostra rappresentazione sinusoidale.
  • Ma per l’obiettivo (cosa la rete deve predire), quantizziamo il valore originale in un “bin” (una categoria discreta). Quindi, la rete deve predire il bin corretto!

In pratica, separiamo la rappresentazione di input (continua e ricca) dall’obiettivo di training (discreto e gestibile con una loss standard come la Cross Entropy). E per rendere le cose ancora più interessanti, abbiamo introdotto il Neighborhood Label Smoothing per i target numerici. Invece di dire alla rete “solo questo bin è giusto”, le diciamo “questo bin è il più giusto, ma anche quelli immediatamente vicini non sono completamente sbagliati”. Questo ha senso perché i bin numerici hanno un ordine, a differenza delle categorie pure. Abbiamo anche aggiunto delle strategie di masking più aggressive, come nascondere intere righe o tutti i campi temporali insieme, per rendere il compito più sfidante.

Scatto architettonico grandangolare, obiettivo 15mm, raffigurante un moderno centro di elaborazione dati a due livelli con server interconnessi, messa a fuoco nitida, linee pulite, che rappresenta l'elaborazione gerarchica.

UniTTab alla Prova dei Fatti: I Risultati Parlano Chiaro

Ok, belle idee, ma funzionano? Abbiamo messo UniTTab sotto torchio su ben cinque dataset diversi, con complessità e dimensioni variabili: dal monitoraggio dell’inquinamento (Pollution Dataset) alle transazioni finanziarie (Transaction Dataset, PKDD’99, Age2), fino a un nostro dataset privato enorme e super complesso (RBAT Dataset) con milioni di transazioni reali e ben tre tipi diversi di righe. Abbiamo confrontato UniTTab con i pezzi da novanta: altri metodi Deep Learning come TabBERT e LUNA, e i campioni del Machine Learning tradizionale come XGBoost, CatBoost e VAR (Vector AutoRegression). Per ogni dataset, abbiamo prima pre-addestrato i modelli DL usando il nostro task mascherato (self-supervised learning) e poi li abbiamo affinati (fine-tuning) su compiti specifici (prevedere un valore, classificare frodi, prevedere l’abbandono di un cliente, ecc.). I risultati? UniTTab ha costantemente e significativamente superato tutti gli altri metodi, spesso con un margine notevole! Questo vale sia che si usi un LSTM separato dopo il pre-training (come faceva TabBERT), sia, ancora meglio, facendo il fine-tuning diretto di UniTTab. La differenza è particolarmente marcata con serie temporali lunghe o con dati molto eterogenei come quelli del nostro dataset RBAT, dove la capacità di gestire tipi di righe variabili ha fatto davvero la differenza. Abbiamo anche dimostrato che il pre-training, anche con dataset non giganteschi, porta benefici enormi rispetto all’addestramento da zero.

Perché Tutto Questo è Importante? Verso Modelli Fondamentali per i Dati Tabellari

Cosa significa tutto questo? Significa che abbiamo un’architettura Transformer potente e flessibile, capace di rappresentare e imparare da dati tabellari temporali eterogenei in modo unificato. Il fatto di usare un unico task di pre-training e di gestire nativamente la diversità dei dati apre scenari entusiasmanti. Potremmo essere sulla strada per creare dei veri e propri modelli fondamentali pre-addestrati (come quelli che esistono per linguaggio e immagini) specifici per il dominio dei dati tabellari. Immaginate di avere un modello “base” potentissimo, addestrato su miliardi di righe di dati tabellari anonimizzati, pronto per essere specializzato rapidamente su compiti specifici con pochi dati etichettati. UniTTab è un passo concreto in questa direzione. Crediamo davvero che questo approccio possa cambiare le carte in tavola nel modo in cui affrontiamo uno dei tipi di dati più comuni e importanti del mondo reale. Se siete curiosi, il nostro codice e i modelli sono disponibili pubblicamente su GitHub!

Foto con motion blur, teleobiettivo zoom 200mm, che cattura flussi di dati visualizzati come scie luminose che si muovono rapidamente attraverso un hub di rete, velocità dell'otturatore elevata, tracciamento del movimento, simboleggiando alte prestazioni.

Fonte: Springer

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *