Punti principali
Binance utilizza modelli di machine learning per monitorare attività sospette sulla piattaforma.
Un problema noto come funzionalità obsolete 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 servizio dei dati.
L'elaborazione dei dati è ulteriormente suddivisa in tre categorie: streaming computing, acquisizione e sinking.
Scopri come utilizziamo l'apprendimento automatico per salvaguardare l'ecosistema Binance.
Il nostro team di Risk AI, 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, utilizzano soluzioni basate sull’intelligenza artificiale in grado di identificare e rispondere a potenziali minacce, come truffe peer-to-peer (P2P), furto di dettagli di pagamento e attacchi di acquisizione di account (ATO), solo per citarne alcuni.
In questo articolo spiegheremo come il nostro team di intelligenza artificiale del rischio utilizza una pipeline di streaming per garantire risposte in tempo reale oltre a ciò che accade dietro le quinte.
Se non hai familiarità con l'apprendimento automatico, ti consigliamo di leggere la sezione seguente per ottenere una panoramica di base di alcuni dei termini che utilizzeremo in questo articolo.
Batch e streaming
Gli ingegneri del machine learning utilizzano in genere due tipi di pipeline: batch e streaming. Entrambi hanno i loro pro e contro, a seconda di ciò che la situazione richiede.
Le pipeline batch, come suggerisce il nome, elaborano i dati in batch. Gli ingegneri in genere li utilizzano per elaborare grandi volumi di dati.
D’altro canto, le pipeline di streaming elaborano i dati in tempo reale man mano che vengono raccolti. Ciò li rende ideali per situazioni che richiedono una risposta quasi istantanea; ad esempio, rilevare un hacker prima che possa prelevare fondi da un account rubato.
Tieni presente che entrambe le condutture sono ugualmente importanti. Le pipeline di streaming sono eccellenti per fornire risposte in tempo reale, mentre le pipeline batch sono più efficaci nella 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 "staleness del modello", che si riferisce a modelli di machine learning che diventano obsoleti o imprecisi.
Il significato della stoltezza
Proprio come le persone possono diventare meno efficaci in un compito se non rimangono aggiornate con le informazioni o le tecniche più recenti, anche i modelli di apprendimento automatico possono diventare meno accurati se non vengono aggiornati regolarmente in base alla situazione.
Una cosa che non vuoi è un modello progettato per evitare che le frodi diventino obsolete. Le conseguenze vanno dal modello che etichetta erroneamente una transazione legittima come fraudolenta o non riesce a identificare un conto compromesso. Pertanto, utilizziamo una pipeline di streaming per garantire che i modelli di prevenzione delle frodi funzionino con dati in tempo reale.
Calcolo per un modello di Account Takeover (ATO).
Prendiamo un esempio dal nostro modello ATO, che addestriamo per identificare gli account che i criminali hanno violato con intenti dannosi. Una delle caratteristiche misurate da questo modello è il numero di transazioni effettuate da un cliente specifico nell'ultimo minuto.
Gli hacker tendono a seguire uno schema sequenziale, impegnandosi in un numero elevato di operazioni, come i prelievi, in un breve periodo. Il nostro sistema deve calcolare questa funzionalità il prima possibile in caso di potenziali minacce. Ciò significa ridurre al minimo i ritardi tra il momento in cui l'utente esegue un'azione e il momento in cui i dati sull'attività di questo utente vengono elaborati dai nostri modelli. Solo pochi secondi possono fare la differenza tra impedire a un hacker e a un utente di perdere tutti i propri soldi.
Per ulteriori informazioni su come le funzionalità ritardate influiscono sulle prestazioni del modello, puoi fare riferimento a questo articolo di LinkedIn Engineering: Funzionalità quasi in tempo reale per la personalizzazione quasi in tempo reale.
Il ruolo del batch computing
Tieni presente che l'importanza della obsolescenza delle funzionalità può dipendere dal modello o dalla funzionalità utilizzata. Alcune funzionalità, ad esempio, sono relativamente stabili. Nel caso ATO menzionato sopra, dovremmo anche recuperare i dati sui prelievi dell’utente negli ultimi 30 giorni per calcolare un rapporto basato sulle transazioni più recenti.
In questo caso, l'elaborazione batch su periodi di tempo più lunghi, ad esempio intervalli giornalieri o orari, è accettabile nonostante il maggiore grado di obsolescenza derivante dall'attesa dell'arrivo dei dati nei data warehouse e dall'esecuzione periodica dei processi batch.
Bilanciamento di freschezza e latenza
In definitiva, la scelta tra pipeline batch e streaming dovrebbe essere fatta in base ai requisiti specifici del caso d’uso e alle funzionalità in questione. Considerare attentamente questi fattori ci consente di costruire sistemi efficaci di prevenzione delle frodi che proteggono i nostri utenti.

L'utilizzo di una pipeline di streaming ci consente di dare priorità all'aggiornamento rispetto alla latenza per le funzionalità sensibili al fattore tempo. Il diagramma precedente illustra questa esigenza, poiché il conteggio delle operazioni per il recupero delle funzionalità dovrebbe essere tre anziché due.
Questo è il motivo per cui una pipeline di machine learning in tempo reale è fondamentale per le operazioni quotidiane del nostro team di rischio.
Abbattere la pipeline di streaming
L'apprendimento automatico in tempo reale per il team AI del rischio di Binance è costituito principalmente da due parti:
Elaborazione dati (parte superiore del diagramma)
Servizio dati (parte inferiore del diagramma)

Elaborazione dati
Per quanto riguarda il trattamento dei dati, possiamo dividere la nostra pipeline di streaming (Flink Job) in tre categorie in base alle loro responsabilità:
Stream computing: ingegneria delle funzionalità
Inserimento di flussi: inserimento di funzionalità
Affondamento del flusso: arricchimento dei dati
Elaborazione del flusso
Il componente di stream computing della pipeline è responsabile dell'ingegneria delle funzionalità quasi in tempo reale, il processo di estrazione delle funzionalità dai dati grezzi.
Precalcola le funzionalità che i nostri modelli di machine learning utilizzeranno per la previsione online. Esistono due tipi di metodi di calcolo per la pipeline di streaming computing: basati sul tempo e basati sugli eventi.
Basato sul tempo. Calcolo del numero di transazioni ogni 10 minuti. Ciò introduce un po' di obsolescenza ma riduce la latenza.
Basato sugli eventi. Calcolo delle caratteristiche in base all'evento in arrivo. Ciò riduce la stagnazione ma aumenta leggermente la latenza.
La nostra preferenza è quella di non utilizzare il calcolo in tempo reale il più possibile, ed ecco perché:
Esiste un compromesso tra latenza e stantio. Le funzionalità informatiche man mano che arrivano le richieste online limitano la logica informatica ad approcci leggeri. Sebbene questo metodo riduca la obsolescenza, il calcolo delle funzionalità aumenta la latenza della previsione.
Scalare in modo indipendente è impegnativo poiché la previsione e i servizi di calcolo dipendono l’uno dall’altro.
L'elaborazione on-demand basata sul traffico delle richieste crea una pressione di scalabilità imprevedibile.
Il calcolo in tempo reale non è adattabile al nostro monitoraggio del modello (disallineamento del servizio di addestramento) e alle soluzioni di monitoraggio delle funzionalità poiché le funzionalità non sono archiviate in un database centrale, ovvero un archivio di funzionalità.
Inserimento del flusso
Il componente di inserimento dello stream è responsabile dell'inserimento quasi in tempo reale delle funzionalità nel nostro archivio di funzionalità dalla piattaforma di machine learning Kafka. Gli archivi di funzionalità sono database centralizzati che ospitano funzionalità di uso comune. Svolgono un ruolo essenziale nelle pipeline di machine learning. Puoi saperne di più su di loro nei seguenti articoli: Uno sguardo più da vicino al nostro archivio di funzionalità di machine learning e Utilizzo di MLOps per creare una pipeline di machine learning end-to-end in tempo reale.
Lavello del flusso
Il componente stream sink è principalmente responsabile dell'inserimento di eventi in tempo reale in una destinazione specifica, come file system altamente distribuiti (HDFS) come S3 o altri database esterni come ElasticSearch, a seconda dei requisiti del progetto.
Per il nostro team di intelligenza artificiale del rischio, esistono generalmente due modelli di arricchimento dei dati che possono essere applicati ai dati in tempo reale in Kafka a seconda del caso d'uso:
Dati statici. Ad esempio, recuperando un elenco di produttori famosi seduti in S3 per progetti aziendali relativi al P2P nei lavori Flink. I dati di riferimento sono statici e richiedono un aggiornamento solo meno di una volta al mese.
Dati dinamici. I tassi di cambio in tempo reale (da BTC a USD), ad esempio, sono ottenuti da database esterni come Redis. La ricerca per record garantisce bassa latenza e alta precisione se i dati di riferimento cambiano.
Servizio dati
Il componente di servizio dati della pipeline è responsabile della previsione online e dell'elaborazione batch.
Pronostico in linea. Ciò si verifica quando le richieste arrivano attraverso Decision Hub (il motore di regole interne del nostro team di rischio). Il servizio pertinente chiamerà quindi l'archivio delle funzionalità per recuperare le funzionalità e inviarle al modello di apprendimento automatico per il punteggio. Il nostro team Risk AI dispone di oltre 20 modelli di machine learning progettati per gestire diversi requisiti aziendali.
Calcolo batch. Sebbene possa introdurre un ritardo fino a pochi giorni, gioca un ruolo importante in quanto integra le funzionalità calcolate in tempo reale.
Pensieri conclusivi
È importante notare che il mercato delle criptovalute opera 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 afflusso continuo di nuovi dati (prelievi, depositi, operazioni, ecc.) che ci obbligano a stare alla ricerca di malintenzionati che tentano di rubare i fondi degli utenti o le informazioni personali.
Il nostro team di intelligenza artificiale per il rischio ha lavorato instancabilmente per sviluppare e mantenere un sofisticato sistema di intelligenza artificiale in grado di segnalare efficacemente attività sospette. Grazie ai loro sforzi, possiamo lavorare rapidamente per proteggere gli account Binance compromessi da potenziali perdite o mitigare il più possibile i danni.
Resta sintonizzato per ulteriori approfondimenti sui nostri sforzi di apprendimento automatico o dai un'occhiata ad alcuni dei nostri articoli precedenti di seguito. Sei interessato a una carriera nel machine learning su Binance? Dai un'occhiata a Binance Engineering sulla nostra pagina delle carriere per le offerte di lavoro aperte.
Ulteriori letture
Uno sguardo più da vicino al nostro negozio di funzionalità di machine learning
Utilizzo di MLOps per creare una pipeline di machine learning end-to-end in tempo reale
Un caso di studio sull'ingegneria delle funzionalità in materia di coerenza e rilevamento delle frodi



