Argomenti principali del post:

  • Binance utilizza modelli di machine learning per monitorare attività sospette sulla piattaforma.

  • Un problema noto come funzionalità obsolete/imprecise può avere un impatto negativo sulle prestazioni di tali modelli, inducendoli a fare previsioni o classificazioni imprecise. 

  • La nostra pipeline di streaming, o il processo di alimentazione continua del modello con dati in tempo reale, è composta da due parti: elaborazione dei dati e consegna dei dati.

  • L'elaborazione dei dati è divisa in tre categorie: stream computing, acquisizione dei dati (ingesting) e drenaggio dei dati (sinking). 

Il nostro team di gestione dei rischi tramite intelligenza artificiale, composto da ingegneri di machine learning e data scientist, lavora 24 ore su 24 per combattere le frodi e proteggere gli utenti di Binance. Per raggiungere questo obiettivo, si avvale di soluzioni basate sull'intelligenza artificiale in grado di identificare e rispondere a potenziali minacce come truffe peer-to-peer (P2P), furto di dati di pagamento e attacchi di furto di account (ATO), solo per citarne alcune.

In questo articolo, spiegheremo come il nostro team di gestione dei rischi basati sull'intelligenza artificiale utilizza una pipeline di flusso per garantire risposte in tempo reale, nonché cosa accade dietro le quinte.

Se non hai familiarità con l'apprendimento automatico, ti consigliamo di leggere la sezione seguente per avere una panoramica di base di alcuni dei termini che utilizzeremo in questo articolo.

Batch e flusso

Gli ingegneri del machine learning utilizzano in genere due tipi di pipeline: batch e streaming. Entrambe presentano pro e contro, a seconda delle esigenze della situazione.

Le pipeline batch, come suggerisce il nome, elaborano i dati in batch. Gli ingegneri le utilizzano in genere per elaborare grandi volumi di dati.

D'altro canto, le pipeline di streaming elaborano i dati in tempo reale man mano che vengono raccolti. Questo le rende ideali per situazioni che richiedono una risposta pressoché istantanea, ad esempio per rilevare un hacker prima che possa prelevare fondi da un conto rubato.

Entrambe le pipeline sono ugualmente importanti. Le pipeline di streaming sono eccellenti per fornire risposte in tempo reale, mentre le pipeline batch sono più adatte alla gestione di grandi volumi di dati.

Nel caso della prevenzione delle frodi, dobbiamo dare priorità ai dati in tempo reale per evitare una situazione chiamata "obsolescenza del modello", che si riferisce a modelli di apprendimento automatico obsoleti o imprecisi.

Il significato di stantio (obsoleto)

Proprio come le persone possono diventare meno efficaci in un compito se non sono aggiornate sulle ultime informazioni o tecniche, anche i modelli di apprendimento automatico possono diventare meno accurati se non vengono aggiornati regolarmente in base alla situazione.

Una cosa che non vogliamo è che un modello progettato per prevenire le frodi diventi obsoleto. Le conseguenze vanno dall'etichettatura errata di una transazione legittima come fraudolenta al mancato riconoscimento di un account compromesso. Pertanto, utilizziamo una pipeline di streaming per garantire che i modelli di prevenzione delle frodi funzionino con dati in tempo reale.

Elaborazione per un modello di attacco di acquisizione di account (ATO)

Prendiamo ad esempio il nostro modello ATO, che abbiamo addestrato per identificare gli account rubati da criminali con intenti malevoli. Una delle caratteristiche misurate da questo modello è il numero di transazioni effettuate da un determinato cliente nell'ultimo minuto.

Gli hacker tendono a seguire uno schema sequenziale, eseguendo un gran numero di operazioni, come i prelievi, in un breve lasso di tempo. Il nostro sistema deve identificare questa caratteristica il più rapidamente possibile in caso di potenziali minacce. Ciò significa ridurre al minimo i ritardi tra il momento in cui un utente esegue un'azione e il momento in cui i dati sulla sua attività vengono elaborati dai nostri modelli. Pochi secondi possono fare la differenza tra fermare un hacker e perdere tutti i propri soldi.

Per ulteriori informazioni su come le funzionalità ritardate influiscono sulle prestazioni del modello, consultare questo articolo di LinkedIn Engineering: Funzionalità quasi in tempo reale per una personalizzazione quasi in tempo reale.

Il ruolo dell'elaborazione batch

Si noti che l'importanza della funzionalità "obsoleta" può dipendere dal modello o dalla funzionalità utilizzata. Ad esempio, alcune funzionalità sono relativamente stabili. Nel caso dell'ATO sopra menzionato, avremmo anche bisogno di recuperare i dati sui prelievi dell'utente degli ultimi 30 giorni per calcolare un rapporto basato sulle transazioni più recenti.

In questo caso, l'elaborazione batch per periodi più lunghi, ad esempio intervalli giornalieri o orari, è accettabile, nonostante la maggiore obsolescenza derivante dall'attesa dell'arrivo dei dati nei data warehouse e dall'esecuzione periodica di processi batch.

Bilanciamento tra aggiornamento e latenza

In definitiva, la scelta tra pipeline batch e stream dovrebbe essere effettuata in base ai requisiti specifici del caso d'uso e alle risorse disponibili. Considerare attentamente questi fattori ci consente di sviluppare sistemi efficaci di prevenzione delle frodi che proteggono i nostri utenti.

L'utilizzo di una pipeline di streaming ci consente di dare priorità alla freschezza rispetto alla latenza per le risorse urgenti. Il diagramma sopra illustra questa esigenza, poiché il numero di operazioni per recuperare le risorse deve essere tre anziché due.

Ecco perché una pipeline per l'apprendimento automatico in tempo reale è fondamentale per le operazioni quotidiane del nostro team addetto ai rischi.

Dettagli della pipeline di flusso

L'apprendimento automatico in tempo reale del Binance AI Risk Team è costituito principalmente da due parti:

  • Elaborazione dei dati (parte superiore del diagramma)

  • Consegna dei dati (parte inferiore del diagramma)

Elaborazione dei dati

Per quanto riguarda l'elaborazione dei dati, possiamo dividere la nostra pipeline di streaming (Flink Job) in tre categorie in base alle loro responsabilità:

  • Elaborazione di flussi: ingegneria delle funzionalità

  • Acquisizione dati: acquisizione di funzionalità

  • Drenaggio dei dati: arricchimento dei dati

Elaborazione di flussi

Il componente di elaborazione dei flussi della pipeline è responsabile dell'ingegneria delle funzionalità quasi in tempo reale, ovvero del processo di estrazione delle funzionalità dai dati grezzi.

Pre-elabora le caratteristiche che i nostri modelli di apprendimento automatico utilizzeranno per la previsione online. Esistono due tipi di metodi di elaborazione per la pipeline di flusso: basati sul tempo e basati sugli eventi.

  1. Basato sul tempo. Calcola il numero di transazioni ogni 10 minuti. Questo processo è un po' obsoleto, ma riduce la latenza.

  2. Basato su eventi. Calcola le risorse in base all'evento corrente. Questo processo riduce la latenza ma ne aumenta leggermente la durata.

La nostra preferenza è quella di non utilizzare il più possibile l'elaborazione in tempo reale, ed ecco perché:

  1. Esiste un compromesso tra latenza e obsolescenza. Quando arrivano richieste online, l'elaborazione delle risorse limita la logica di elaborazione ad approcci leggeri. Mentre questo metodo riduce l'obsolescenza, l'elaborazione delle risorse aumenta la latenza della previsione.

  2. Il ridimensionamento indipendente è una sfida perché i servizi di previsione e di elaborazione dipendono l'uno dall'altro.

  3. L'elaborazione su richiesta basata sulla quantità richiesta crea una pressione di ridimensionamento imprevedibile.

  4. L'elaborazione in tempo reale non è adattabile alle nostre soluzioni di monitoraggio dei modelli (distorsione tra training e serving, la discrepanza che può verificarsi tra le prestazioni di un modello durante il training e la sua efficacia una volta implementato) e di monitoraggio delle risorse, perché le risorse non sono archiviate in un database centrale, ovvero in un repository di risorse.

Acquisizione dati

Il componente di acquisizione dati è responsabile dell'acquisizione di feature in tempo quasi reale dal feature store della nostra piattaforma di machine learning Kafka. I feature store sono database centralizzati che ospitano feature di uso comune e svolgono un ruolo fondamentale nelle pipeline di machine learning. Puoi saperne di più nei seguenti articoli: Un'analisi approfondita della nostra funzionalità di machine learning e Utilizzo di MLOps per creare una pipeline di machine learning end-to-end in tempo reale.

Scarico di dati

Il componente data sink è principalmente responsabile della raccolta di eventi in tempo reale da una destinazione specifica, ad esempio sistemi di file altamente distribuiti (HDFS) come S3 o altri database esterni come ElasticSearch, a seconda dei requisiti del progetto.

Per il nostro team di gestione dei rischi dell'IA, in genere esistono due modelli di arricchimento dei dati che possono essere applicati ai dati in tempo reale in Kafka, a seconda del caso d'uso:

  1. Dati statici. Ad esempio, recuperare un elenco di produttori popolari da S3 per progetti aziendali correlati al P2P nei lavori Flink. I dati di riferimento sono statici e devono essere aggiornati meno di una volta al mese.

  2. Dati dinamici. I tassi di cambio in tempo reale (ad esempio, BTC/USD) vengono recuperati da database esterni come Redis. La ricerca basata sui record garantisce bassa latenza e alta precisione in caso di variazioni dei dati di riferimento.

Consegna dei dati

Il componente di distribuzione dei dati della pipeline è responsabile della previsione online e dell'elaborazione in batch.

  1. Previsione online. Questo avviene quando le richieste arrivano tramite Decision Hub (il nostro motore di regole interno per il risk team). Il servizio pertinente richiederà quindi al repository delle feature di recuperare le feature e inviarle al modello di machine learning per il tagging. Il nostro team di risk management AI dispone di oltre 20 modelli di machine learning progettati per soddisfare diverse esigenze aziendali.

  2. Elaborazione batch. Sebbene possa comportare un ritardo fino a qualche giorno, svolge un ruolo importante in quanto integra le risorse elaborate in tempo reale.

Considerazioni finali

È importante notare che il mercato delle criptovalute è attivo 24 ore su 24, 7 giorni su 7, a differenza dei mercati finanziari tradizionali che hanno orari di apertura e chiusura. Ogni secondo, c'è un flusso continuo di nuovi dati (prelievi, depositi, transazioni, ecc.) che ci obbliga a stare all'erta per individuare eventuali criminali che cercano di rubare fondi o informazioni personali degli utenti.

Il nostro team di gestione dei rischi tramite IA ha lavorato instancabilmente per sviluppare e mantenere un sofisticato sistema di IA in grado di segnalare efficacemente attività sospette. Grazie al loro impegno, possiamo intervenire rapidamente per proteggere gli account Binance compromessi da potenziali perdite o mitigare il più possibile i danni.

Restate sintonizzati per maggiori informazioni sulle nostre attività di machine learning o consultate alcuni dei nostri articoli precedenti qui sotto. Interessati a una carriera nel machine learning in Binance? Consultate Binance Engineering sulla nostra pagina dedicata alle carriere per le posizioni aperte.

Ulteriori letture

  • Uno sguardo approfondito alla nostra capacità di apprendimento automatico

  • Utilizzo di MLOps per creare una pipeline di apprendimento automatico end-to-end in tempo reale

  • Uno studio di caso di Feature Engineering sulla coerenza e il rilevamento delle frodi