mais lidos
Life at Nu
Conheça a sede do Nubank em Pinheiros, São Paulo/Brasil jan 11
Design
A nova aparência do Nubank: conheça nossa nova logo maio 17
Culture & Values
Como os valores e a cultura da Nu moldam os produtos que criamos ago 7
Carreiras
Reunimos grandes mentes de diversas origens que permitem a discussão e o debate e melhoram a resolução de problemas.
Saiba mais sobre nossas carreiras



Contribuições: Cinthia Tanaka, Edesio Alcobaça, Felipe Almeida, Caroline Custodio, Pedro Schoen, Otávio Vasques
A prevenção de fraudes continua sendo um dos desafios mais urgentes para as instituições financeiras, já que os fraudadores estão sempre evoluindo suas táticas. No Nubank, utilizamos a tecnologia e a ciência de dados para nos mantermos um passo à frente.
Neste post, você conhecerá um pouco mais sobre a modelagem sequencial — uma técnica avançada de aprendizado de máquina que transformou a forma como detectamos e prevenimos fraudes.
Nossa equipe de especialistas, Carol, Pedro e Otávio, da equipe de Fraud Data Science (DS) do Nubank, compartilham suas experiências na construção e escalabilidade de modelos sequenciais. Descubra como esses modelos nos ajudaram a entender melhor os padrões de fraude e melhorar a proteção aos clientes, com base nas respostas fornecidas pelos nossos especialistas às perguntas elaboradas pelo time editorial do Nubank.
P: O que são modelos sequenciais? Como eles se diferem dos modelos tradicionais de aprendizado de máquina?
Pedro: A principal diferença entre os modelos sequenciais e os modelos tradicionais de aprendizado de máquina está relacionada à forma como incorporamos as features. Em vez de fazer feature engineering manualmente (por exemplo, agregando um determinado valor dentro de uma janela de tempo específica, como 24 horas), alimentamos o modelo com eventos (por exemplo, uma compra com cartão de crédito seguida de um empréstimo). O tempo entre os eventos e a ordem em que eles ocorrem são sinais críticos para identificar fraudes e roubos, tornando os modelos sequenciais particularmente eficazes para esses casos.
Conheça nossas oportunidades
P: Por que vocês começaram a investir em modelos sequenciais?
Carol: Os modelos sequenciais oferecem várias vantagens, especialmente quando se trata de escalabilidade e adaptabilidade. Para os modelos sequenciais, temos um desafio diferente para construir as features em tempo real. Não temos um grande volume de features para criar, é relativamente fácil fazer o feature engineering. O problema é receber um array ordenado de eventos para que você possa calcular as features de cada evento. No entanto, uma vez que você tem a estrutura pronta, é fácil expandi-la, pois você tem chaves padrão que recebe e isso não muda quando adiciona mais eventos ou dados ao modelo – não há necessidade de alterar o feature engineering, tornando-a escalável e mais fácil de adaptar a diferentes geografias.
Pedro: Complementando o que a Carol mencionou, o verdadeiro benefício dos modelos sequenciais é que eles nos permitem descobrir relações entre eventos que poderíamos perder com modelos tradicionais. Por exemplo, saber o que aconteceu primeiro e o que aconteceu por último, ou quanto tempo passou entre esses eventos, nos ajuda a identificar padrões de fraude que, de outra forma, poderiam passar despercebidos.
P: Como vocês implementaram os modelos sequenciais?
Pedro: Utilizamos redes neurais para implementá-los, em uma estrutura que processa eventos com camadas que também recebem entradas adicionais relacionadas às features tradicionais (tabulares). Em relação às features, podemos criar qualquer número de features por evento, de modo que cada evento tenha n features predefinidas. Cada evento tem o mesmo conjunto de features e, se precisarmos de algo novo, devemos incluí-lo em um mapa. Também podemos trabalhar em uma estrutura que incorpore informações tradicionais junto com as features sequenciais. Para projetar o conjunto de dados de treinamento, capturamos eventos em uma janela de tempo específica, limitando o número de eventos para otimizar o desempenho.
Carol: Em produção, tivemos que buscar dados em um formato com o qual não estávamos acostumados. Em geral, para modelos tradicionais, acessamos diferentes endpoints de serviços e a serving layer de dados, mas nenhuma das fontes de dados nos forneceria todas as informações que precisávamos para nosso modelo sequencial, então não conseguimos buscar os dados de um único lugar nesse caso. Nossa solução foi construir uma aplicação de streaming usando Apache Flink para obter todos os eventos de um determinado cliente, considerando uma janela de tempo.
Otávio: Sem a aplicação de streaming, teríamos que buscar esses eventos individualmente, fazendo chamadas para vários serviços diferentes. Nossa aplicação escuta um tópico Kafka que contém todo o Change Data Capture (CDC) relacionado aos eventos que nos interessam. A parte difícil foi que tivemos que entrar em contato com as equipes que possuíam os dados para integrá-los à plataforma, de modo que pudéssemos consumir os eventos neste tópico. A aplicação de streaming é responsável por realizar os joins necessários para que possamos construir a consulta SQL usando Apache Pinot.
P: Quais foram os desafios durante a implementação?
Pedro: Um dos primeiros desafios que enfrentamos foi lidar com vazamentos de memória após o deployment do modelo. Felizmente, conseguimos depurar e resolver o problema, mas isso levou algum tempo.
Também foi difícil validar se as previsões online estavam corretas: se uma feature específica no evento estava errada ou se a ordem estava incorreta, o array não corresponderia ao input do batch, então tivemos que validar cada feature dentro de cada evento. Em termos de interpretabilidade, usamos SHapley Additive exPlanations (Shap), mas tivemos que adaptá-los para funcionar com os dados sequenciais. Para cada evento, temos um valor Shap, mas podemos somá-los para lê-los como o valor Shap para features usuais.
Carol, Otávio: O principal desafio do projeto foi construir a aplicação de streaming que precisávamos para consumir eficientemente os dados em tempo real, já que foi uma das primeiras desenvolvidas no Nubank. Processar grandes volumes de dados de eventos, garantir compatibilidade entre os formatos de validação online e batch, e lidar com tempos de resposta irregulares também foram obstáculos significativos que enfrentamos ao implementá-la.
Ao pensar em novas aplicações, uma coisa que tende a preocupar os stakeholders é o custo envolvido, mas não vimos muita diferença nesse aspecto em comparação com os modelos tradicionais.
P: Como os modelos sequenciais impactaram a prevenção de fraudes?
Pedro: Embora pareça que a estrutura do modelo sequencial seja mais complexa, ela é mais simples no lado dos dados: bilhões de linhas podem ser processadas em poucas horas. Para o primeiro proof-of-concept que fizemos, os resultados foram piores do que nosso baseline, mas como a estrutura era leve e fácil de usar, começamos a utilizá-la para outros casos de uso, nos quais obtivemos um desempenho melhor do que o baseline.
P: Você diria que o próximo passo é tornar os modelos sequenciais globais?
Pedro: Vimos que o comportamento dos fraudadores é semelhante entre os países e não há limitação quando se pensa em arquitetura do modelo.
Carol: No lado do consumo de dados, há uma necessidade de adaptação aos requisitos legais (privacidade de dados / compartilhamento de dados) e às fontes de dados de cada país. Pode ser que precisemos integrar novas fontes de dados ou adaptar certos eventos localmente. Por exemplo, o Pix (método de transferência instantânea) só existe no Brasil.
Otávio: Pode haver domínios nos quais essa padronização de dados acontece quase de forma automática, e esses são os domínios nos quais já começamos a trabalhar em uma versão global do modelo sequencial. Para outros domínios, podemos precisar abstrair certos eventos para garantir que tenhamos uma estrutura que seja independente do país.
P: Finalmente, quais lições vocês aprenderam e quais dicas compartilhariam com outras equipes?
Carol, Otávio, Pedro: Algumas lições-chave se destacam. Primeiramente, os modelos sequenciais são muito mais fáceis de reaproveitar para diferentes casos de uso em comparação com os modelos tradicionais. Embora o modelo se beneficie das capacidades da GPU, é importante lembrar que, quanto mais dados você tiver, maiores serão as exigências de recursos.
Outra lição importante foi a aplicação de streaming — construir uma do zero foi um movimento arriscado, mas valeu a pena. A principal lição é que, ao tentar algo novo, é importante planejar com antecedência e mitigar os riscos. Não começamos buscando todos os eventos usando a aplicação de streaming. Em vez disso, avaliamos se era viável para cada fonte de dados e trabalhamos de perto com outras equipes para garantir uma integração tranquila.
Finalmente, para agilizar o treinamento de modelos sequenciais, construímos um fluxo de trabalho personalizado usando uma ferramenta interna (Common Python Workflows) com o apoio da nossa equipe de infraestrutura. Nosso conselho para outras equipes interessadas em explorar modelos sequenciais é começar com um caso de uso claro e estar pronto para um desenvolvimento iterativo.
Conclusão
A implementação de modelos sequenciais no Nubank aprimorou significativamente nossa capacidade de prevenir fraudes e proteger nossos clientes. Ao usar redes neurais avançadas para processar dados baseados em eventos, construímos modelos escaláveis e adaptáveis que podem responder rapidamente aos padrões de fraude em constante evolução. As lições aprendidas ao longo dessa jornada destacam o poder da inovação e da adaptabilidade na luta contra fraudes.
No Nubank, estamos comprometidos em expandir os limites da Ciência de Dados e do Aprendizado de Máquina para proteger nossos clientes. Fique atento para mais insights da série Purple MinDS, onde continuamos explorando os últimos avanços em prevenção de fraudes e além.
Conheça nossas oportunidades