Principais conclusões
A Binance usa modelos de aprendizado de máquina para monitorar atividades suspeitas na plataforma.
Um problema conhecido como recursos obsoletos pode impactar negativamente o desempenho de tais modelos, fazendo com que eles façam previsões ou classificações imprecisas.
Nosso pipeline de streaming – ou o processo de alimentar continuamente o modelo com dados em tempo real – consiste em duas partes: processamento de dados e fornecimento de dados.
O processamento de dados é dividido em três categorias: computação de fluxo, ingestão e afundamento.
Saiba como usamos o aprendizado de máquina para proteger o ecossistema Binance.
Nossa equipe de IA de risco, formada por engenheiros de aprendizado de máquina e cientistas de dados, trabalha 24 horas por dia para combater fraudes e proteger os usuários da Binance. Para conseguir isso, eles usam soluções baseadas em IA que podem identificar e responder a ameaças potenciais, como golpes peer-to-peer (P2P), roubo de detalhes de pagamento e ataques de controle de contas (ATO), para citar alguns.
Neste artigo, explicaremos como nossa equipe de IA de risco usa um pipeline de streaming para garantir respostas em tempo real, além do que acontece nos bastidores.
Se você não estiver familiarizado com aprendizado de máquina, recomendamos a leitura da seção a seguir para obter uma visão geral básica de alguns dos termos que usaremos ao longo deste artigo.
Lote e streaming
Os engenheiros de aprendizado de máquina normalmente usam dois tipos de pipeline: lote e streaming. Ambos têm seus prós e contras, dependendo do que a situação exige.
Pipelines em lote, como o nome indica, processam dados em lotes. Os engenheiros normalmente os utilizam para processar grandes volumes de dados.
Por outro lado, os pipelines de streaming processam dados em tempo real à medida que são coletados. Isto os torna ideais para situações que exigem uma resposta quase instantânea; por exemplo, detectar um hacker antes que ele possa sacar fundos de uma conta roubada.
Observe que ambos os pipelines são igualmente importantes. Os pipelines de streaming são excelentes para fornecer respostas em tempo real, enquanto os pipelines em lote são melhores para lidar com grandes volumes de dados.
No caso da prevenção de fraudes, precisamos priorizar dados em tempo real para evitar uma situação chamada “desatualização do modelo”, que se refere a modelos de aprendizado de máquina que se tornam desatualizados ou imprecisos.
O significado da estagnação
Assim como as pessoas podem se tornar menos eficazes em uma tarefa se não permanecerem atualizadas com as informações ou técnicas mais recentes, os modelos de aprendizado de máquina também podem se tornar menos precisos se não forem atualizados regularmente de acordo com a situação.
Uma coisa que você não quer é um modelo projetado para evitar que a fraude fique obsoleta. As consequências vão desde o modelo rotular incorretamente uma transação legítima como fraudulenta ou não identificar uma conta comprometida. Portanto, usamos um pipeline de streaming para garantir que os modelos de prevenção de fraudes funcionem com dados em tempo real.
Computação para um modelo de controle de conta (ATO)
Vejamos um exemplo do nosso modelo ATO, que treinamos para identificar contas que criminosos sequestraram com intenções maliciosas. Uma das características que este modelo mede é o número de transações que um cliente específico realizou no último minuto.
Os hackers tendem a seguir um padrão sequencial, realizando um grande número de operações, como saques, durante um curto período. Nosso sistema deve calcular esse recurso o mais rápido possível em caso de ameaças potenciais. Isso significa minimizar atrasos entre o momento em que o usuário realiza uma ação e o momento em que os dados de atividade desse usuário são processados por nossos modelos. Apenas alguns segundos podem ser a diferença entre impedir um hacker e um usuário perder todo o seu dinheiro.
Para obter mais informações sobre como os recursos atrasados afetam o desempenho do modelo, consulte este artigo da LinkedIn Engineering: Recursos quase em tempo real para personalização quase em tempo real.
O papel da computação em lote
Observe que a importância da desatualização do recurso pode depender do modelo ou recurso que está sendo usado. Alguns recursos, por exemplo, são relativamente estáveis. No caso ATO mencionado acima, também precisaríamos recuperar dados sobre as retiradas do usuário nos últimos 30 dias para calcular uma proporção com base nas suas transações mais recentes.
Nesse caso, a computação em lote durante períodos de tempo mais longos, como intervalos diários ou de hora em hora, é aceitável, apesar da maior desatualização resultante da espera pela chegada dos dados nos data warehouses e pela execução periódica dos trabalhos em lote.
Equilibrando atualização e latência
Em última análise, a escolha entre pipelines em lote e streaming deve ser feita com base nos requisitos específicos do caso de uso e nos recursos em questão. A consideração cuidadosa desses fatores nos permite construir sistemas eficazes de prevenção de fraudes que protejam nossos usuários.

Usar um pipeline de streaming nos permite priorizar a atualização em vez da latência para recursos urgentes. O diagrama acima ilustra essa necessidade, pois a contagem de operações para recuperação de recursos deve ser três em vez de duas.
É por isso que um pipeline de aprendizado de máquina em tempo real é crucial para as operações diárias da nossa equipe de risco.
Dividindo o pipeline de streaming
O aprendizado de máquina em tempo real para a equipe de IA de risco da Binance consiste principalmente em duas partes:
Processamento de dados (parte superior do diagrama)
Serviço de dados (parte inferior do diagrama)

Processamento de dados
Em relação ao processamento de dados, podemos dividir nosso pipeline de streaming (Flink Job) em três categorias com base em suas responsabilidades:
Computação de fluxo: engenharia de recursos
Ingestão de stream: ingestão de recursos
Afundamento de fluxo: enriquecimento de dados
Computação de fluxo
O componente de computação de fluxo do pipeline é responsável pela engenharia de recursos quase em tempo real, o processo de extração de recursos de dados brutos.
Ele pré-calcula recursos que nossos modelos de aprendizado de máquina usarão para previsão on-line. Existem dois tipos de métodos de computação para o pipeline de computação de streaming: baseado em tempo e baseado em eventos.
Baseado no tempo. Calculando o número de transações a cada 10 minutos. Isso introduz alguma obsolescência, mas reduz a latência.
Baseado em eventos. Calculando recursos com base no evento de chegada. Isso reduz a obsolescência, mas aumenta ligeiramente a latência.
Nossa preferência é não usar computação em tempo real tanto quanto possível, e aqui está o porquê:
Existe uma compensação entre latência e obsolescência. Os recursos de computação à medida que as solicitações on-line chegam limitam a lógica de computação a abordagens leves. Embora esse método reduza a desatualização, o cálculo do recurso aumenta a latência de previsão.
O dimensionamento independente é um desafio, uma vez que os serviços de previsão e de computação dependem um do outro.
A computação sob demanda baseada no tráfego de solicitações cria uma pressão de escalabilidade imprevisível.
A computação em tempo real não é adaptável ao nosso monitoramento de modelo (distorção de serviço de treinamento) e soluções de monitoramento de recursos, uma vez que os recursos não são armazenados em um banco de dados central, ou seja, um armazenamento de recursos.
Ingestão de fluxo
O componente de ingestão de fluxo é responsável pela ingestão quase em tempo real de recursos em nosso feature store a partir da plataforma de aprendizado de máquina Kafka. Os armazenamentos de recursos são bancos de dados centralizados que abrigam recursos comumente usados. Eles desempenham um papel essencial nos pipelines de aprendizado de máquina. Você pode aprender mais sobre eles nos seguintes artigos: Uma análise mais detalhada de nosso armazenamento de recursos de aprendizado de máquina e como usar MLOps para construir um pipeline de aprendizado de máquina ponta a ponta em tempo real.
Coletor de fluxo
O componente stream sink é o principal responsável por afundar eventos em tempo real em um destino específico — como sistemas de arquivos altamente distribuídos (HDFS) como S3 ou outros bancos de dados externos como ElasticSearch — dependendo dos requisitos do projeto.
Para nossa equipe de IA de risco, geralmente existem dois padrões de enriquecimento de dados que podem ser aplicados a dados em tempo real no Kafka, dependendo do caso de uso:
Dados estáticos. Por exemplo, recuperar uma lista de fabricantes populares no S3 para projetos de negócios relacionados a P2P em empregos Flink. Os dados de referência são estáticos e requerem atualização apenas menos de uma vez por mês.
Dados dinâmicos. As taxas de câmbio em tempo real (BTC para USD), por exemplo, são obtidas de bancos de dados externos como o Redis. A pesquisa por registro garante baixa latência e alta precisão se os dados de referência forem alterados.
Serviço de dados
O componente de serviço de dados do pipeline é responsável pela previsão on-line e pela computação em lote.
Previsão on-line. Isso ocorre quando as solicitações chegam por meio do Decision Hub (mecanismo de regras internas da nossa equipe de risco). O serviço relevante então ligará para o feature store para recuperar recursos e enviá-los ao modelo de aprendizado de máquina para pontuação. Nossa equipe de Risk AI possui mais de 20 modelos de aprendizado de máquina projetados para lidar com diferentes requisitos de negócios.
Computação em lote. Embora possa introduzir um atraso de até alguns dias, desempenha aqui um papel importante, pois complementa as características computadas em tempo real.
Considerações finais
É importante observar que o mercado criptográfico funciona 24 horas por dia, 7 dias por semana, ao contrário dos mercados financeiros tradicionais que têm horários de abertura e fechamento. A cada segundo, há um fluxo contínuo de novos dados (saques, depósitos, negociações, etc.) que exigem que estejamos atentos a malfeitores que tentam roubar fundos ou informações pessoais dos usuários.
Nossa equipe de IA de risco tem trabalhado incansavelmente para desenvolver e manter um sistema sofisticado de IA que possa sinalizar com eficácia atividades suspeitas. Graças aos seus esforços, podemos trabalhar rapidamente para proteger as contas comprometidas da Binance contra possíveis perdas ou mitigar os danos tanto quanto possível.
Fique ligado para mais informações sobre nossos esforços de aprendizado de máquina ou confira alguns de nossos artigos anteriores abaixo. Interessado em uma carreira de aprendizado de máquina na Binance? Confira Binance Engineering em nossa página de carreiras para vagas de emprego abertas.
Leitura adicional
Uma análise mais detalhada de nossa loja de recursos de aprendizado de máquina
Usando MLOps para construir um pipeline de aprendizado de máquina ponta a ponta em tempo real
Um estudo de caso de engenharia de recursos em consistência e detecção de fraude



