Um manual sobre machine learning para detecção de fraudes

Este guia apresenta o Stripe Radar e mostra como usar a rede Stripe para detectar fraudes.

Radar
Radar

Combata fraudes com a força da rede da Stripe.

Saiba mais 
  1. Introdução
  2. Introdução a fraudes de cartão de crédito online
  3. Stripe Radar e a rede Stripe
  4. Os fundamentos do machine learning
    1. Como funciona o machine learning?
    2. Engenharia de recursos
  5. Avaliação dos modelos de machine learning
    1. Termos-chave
    2. Curvas ROC e de precisão-revocação
    3. Distribuições de pontuação
    4. Cálculo de revocação e precisão
  6. Operações de machine learning: implantação de modelos de maneira segura e frequente
  7. Como a Stripe pode ajudar
    1. Melhorando o desempenho com regras e revisões manuais
  8. Próximas etapas

A aceleração recente e expressiva do e-commerce levou a um aumento correspondente nas fraudes em pagamentos online. Em todo o mundo, as fraudes têm um custo para as empresas de mais de US$ 20 bilhões anualmente. Além disso, para cada dólar perdido por fraudes, o custo total para as empresas é muito maior devido ao aumento dos custos operacionais, taxas de rede e rotatividade de clientes.

Para piorar a situação, fraudadores sofisticados estão sempre encontrando novas formas de tirar proveito de vulnerabilidades, o que dificulta o combate às fraudes. É por isso que criamos o Stripe Radar, uma solução de prevenção a fraudes baseada em machine learning e totalmente integrada à plataforma Stripe. O machine learning do Radar usa dados de centenas de bilhões de dólares em pagamentos processados na rede Stripe todos os anos para detectar fraudes com precisão e se adaptar rapidamente às tendências mais recentes, permitindo que sua empresa cresça sem sofrer um aumento nas fraudes.

Este guia apresenta o Stripe Radar, mostra como utilizamos a rede Stripe para detectar fraudes, fornece uma visão geral das técnicas de machine learning que usamos, explica como pensamos sobre a eficácia e o desempenho dos sistemas de detecção de fraude e descreve como outras ferramentas do pacote Radar podem ajudar as empresas a otimizarem seu desempenho no combate a fraudes.

Introdução a fraudes de cartão de crédito online

Um pagamento é considerado fraudulento quando o titular do cartão não autoriza a cobrança. Por exemplo, se um fraudador faz uma compra com um número de cartão roubado que ainda não foi denunciado, o pagamento pode ser processado corretamente. Quando o titular do cartão descobre o uso fraudulento do cartão, ele questiona o pagamento no banco por meio de uma contestação (também conhecida como "estorno").

As empresas podem contestar um estorno enviando comprovantes de que o pagamento foi válido. No entanto, para transações sem o cartão presente, se as redes considerarem que o pagamento foi fraudulento, o titular do cartão vencerá e a empresa será responsável pela perda de bens e outras tarifas.

Tradicionalmente, as empresas usam regras de força bruta para prever e bloquear suspeitas de cobranças fraudulentas. Mas as regras fixas (por exemplo, bloquear todos os cartões de crédito utilizados fora do país) podem resultar no bloqueio de muitas transações legítimas. O machine learning, por outro lado, pode detectar padrões mais sutis para ajudar as empresas a maximizarem a receita. Na linguagem de machine learning, um falso negativo ocorre quando o sistema não percebe algo que ele foi projetado para detectar; neste caso, uma transação fraudulenta. Um falso positivo ocorre quando o sistema sinaliza algo que não deveria; por exemplo, quando bloqueia um cliente legítimo. Antes de nos aprofundarmos no machine learning, é importante compreender suas vantagens e desvantagens.

Com falsos negativos, as empresas são muitas vezes responsáveis pelo valor da transação original mais taxas de estorno (o custo associado à reversão do pagamento com cartão pelo banco), taxas de rede mais elevadas como resultado da contestação e custos operacionais mais elevados decorrentes da revisão de cobranças ou da resolução de disputas. Além disso, se você se envolver em muitas contestações, poderá acabar em um programa de monitoramento de estornos de rede. Com isso, talvez precise arcar com custos mais elevados ou, em alguns casos, não poderá mais aceitar pagamentos com cartão.

Falsos positivos, ou pagamentos recusados falsos, ocorrem quando um cliente legítimo tenta fazer uma compra, mas não consegue. Pagamentos recusados falsos podem prejudicar a reputação e o lucro bruto das empresas. Em uma pesquisa recente, 33% dos consumidores disseram que não comprariam novamente de uma empresa após um pagamento recusado falso.

É difícil equilibrar essa balança: quanto menos falsos negativos você tem, mais falsos positivos precisa tolerar (e vice-versa). Ao prevenir mais fraudes, você aumenta o número de clientes idôneos bloqueados. Por outro lado, a redução do número de falsos positivos geralmente eleva a probabilidade de mais fraudes reais passarem despercebidas. As empresas precisam decidir como equilibrar os dois com base nas suas margens, perfil de crescimento e outros fatores.

Se as margens de uma empresa forem pequenas (por exemplo, se ela vende comida online), talvez sejam necessárias centenas de transações idôneas para compensar o custo de uma transação fraudulenta, fazendo com que cada falso negativo saia muito caro. Empresas com esse perfil podem ser mais criteriosas para aceitar transações na tentativa de impedir possíveis fraudes. Por outro lado, se as margens de uma empresa forem altas (por exemplo, uma empresa SaaS), o raciocínio é exatamente o contrário. Pode ser mais caro arcar com a perda de um cliente legítimo bloqueado do que com o aumento de fraudes.

Stripe Radar e a rede Stripe

O Radar é a solução de prevenção a fraudes da Stripe que protege as empresas contra fraudes com cartão de crédito online. Ele funciona com base em machine learning adaptativo, resultado de anos de trabalho em ciência de dados e infraestrutura das equipes dedicadas de machine learning da Stripe. Os algoritmos do Radar avaliam cada transação quanto ao risco de fraude e agem de forma adequada. Pagamentos com pontuação alta são bloqueados e o Radar for Fraud Teams fornece ferramentas para que os usuários possam especificar quando outras ações devem ser tomadas.

A Stripe processa bilhões em pagamentos de milhões de empresas e interage com milhares de bancos parceiros em todo o mundo a cada ano. Com essa grande escala, geralmente podemos ver sinais e padrões muito mais cedo do que redes menores. Dados agregados relevantes para fraudes de todas as transações da Stripe (coletados automaticamente por meio do fluxo de pagamentos) são usados para melhorar nossa capacidade de detectar fraudes. Sinais como o país em que o cartão foi emitido ou o endereço IP a partir do qual o pagamento foi feito fornecem informações valiosas para prever se o pagamento é fraudulento.

Interações anteriores com um cartão na rede Stripe também proporcionam uma boa quantidade de dados para fundamentar nossas avaliações de risco. Noventa por cento dos cartões usados na rede Stripe foram usados mais de uma vez, assim temos dados mais abrangentes para avaliar se esses cartões estão sendo usados de forma legítima ou fraudulenta.

Outra grande vantagem do nosso machine learning é que o Radar é integrado à Stripe e funciona imediatamente. Outras soluções de prevenção a fraudes geralmente exigem um grande investimento inicial e contínuo. Em primeiro lugar, as empresas devem fazer a integração com o produto de combate a fraudes. Isso envolve trabalho de engenharia para enviar dados sobre eventos e pagamentos relevantes. Em segundo lugar, as empresas devem concluir uma integração para passar rótulos de pagamento (uma categorização indicando se a transação foi fraudulenta) do processador de pagamentos para o fornecedor de fraudes ou rotular manualmente os pagamentos, o que pode exigir muito tempo e ser propenso a erros. O Radar, por outro lado, recebe informações que são "verdades fundamentais" diretamente do fluxo de pagamento da Stripe e obtém dados atuais e precisos diretamente de emissores e bandeiras de cartão, sem necessidade de engenharia ou codificação.

Vamos nos aprofundar mais no machine learning e como usá-lo na Stripe.

Os fundamentos do machine learning

O machine learning é um conjunto de técnicas para coletar e usar grandes quantidades de dados na produção de modelos capazes de prever resultados, como a probabilidade de uma cobrança resultar em uma contestação por fraude.

Uma das principais aplicações do machine learning é a previsão: queremos prever o valor de alguma variável de saída com base em alguns valores de entrada. No nosso caso, o valor de saída será verdadeiro se o pagamento for fraudulento e falso caso contrário (esses valores binários são chamados booleanos). Um exemplo de valor de entrada pode ser o país em que o cartão foi emitido ou o número de países distintos onde o cartão foi usado na rede Stripe no dia anterior. Nós determinamos como fazer uma previsão com base em exemplos anteriores de dados de entrada e saída.

Os dados usados para treinar (ou gerar) os modelos consistem em registros (muitas vezes obtidos de dados históricos) com o valor de saída e os vários valores de entrada, como temos no exemplo a seguir (altamente simplificado):

Valor em US$
País do cartão
Países em que o cartão foi usado (24h)
Fraude?
US$ 10,00 EUA 1 Não
US$ 10,00 CA 2 Não
US$ 10,00 CA 1 Não
US$ 10,00 EUA 1 Sim
US$ 30,00 EUA 1 Sim
US$ 99,00 CA 1 Sim

Embora existam apenas três entradas neste exemplo, na prática, os modelos de machine learning geralmente têm centenas ou milhares de entradas. A saída do algoritmo de machine learning pode ser um modelo como a seguinte árvore de decisão:

Guide decision tree

quando observamos uma nova transação, olhamos os valores de entrada e percorremos a árvore "estilo de 20 perguntas" até chegarmos a uma de suas "folhas". Cada folha consiste em todas as amostras no conjunto de dados (tabela acima) que atendem aos pares de pergunta e resposta ao longo do caminho que seguimos na árvore. E a probabilidade de pensarmos que a nova transação é fraudulenta é o número de amostras na folha que são fraudulentas dividido pelo número total de amostras na folha. Dito de outra forma, a árvore responde à pergunta: "Das transações no nosso conjunto de dados com propriedades semelhantes às da transação que estamos examinando agora, que fração foi realmente fraudulenta?" O machine learning trata da construção da árvore: que perguntas fazemos, e em que ordem, para aumentar ao máximo as chances de distinguirmos com precisão entre as duas classes? É fácil de visualizar e compreender as árvores de decisão, mas existem muitos algoritmos de aprendizagem diferentes, cada um com sua maneira única de representar os relacionamentos que estamos tentando modelar.

Os modelos atuais de machine learning são predominantes: eles estão por trás de muitos dos produtos com os quais interagimos frequentemente. Além disso, geralmente são muito mais sofisticados do que o protótipo acima:

  • O Google fornece sugestões ortográficas com precisão em seu recurso "Você quis dizer?" usando machine learning para modelar milhões de parâmetros relacionados à linguagem em menos de três segundos.
  • A Amazon usa machine learning para prever compras com seu sistema de recomendação com base nas necessidades, preferências e mudanças de comportamento dos usuários em toda a plataforma, mesmo para novos usuários sem dados históricos.

E, o que é mais relevante para esta discussão, o machine learning é a base do Stripe Radar, que busca prever quais dos seus pagamentos são fraudulentos.

Como funciona o machine learning?

Os cursos acadêmicos de machine learning geralmente se concentram no processo de modelagem, ou seja, os métodos para converter dados (por exemplo, a tabela acima) em modelos (por exemplo, a árvore de decisão), que são os algoritmos que informam como os valores de entrada (o país em que o cartão foi emitido, o número de países onde o cartão foi utilizado etc.) estão associados aos valores de saída (a transação foi fraudulenta ou não?). O processo que usa a tabela de dados de entrada acima e produz a "melhor" árvore é um exemplo de um método específico de machine learning. A modelagem envolve uma série de etapas, que dependem da natureza dos seus dados e dos modelos que você escolheu usar. Não vamos entrar em muitos detalhes, mas segue uma visão geral.

Primeiro, precisamos obter dados de treinamento. Antes de começarmos a detectar fraudes automaticamente, precisamos de um conjunto de dados com exemplos de fraudes. Para cada exemplo, precisamos ter registros de (conseguir calcular retrospectivamente) uma série de propriedades de entrada que poderiam ser úteis para fazer previsões futuras sobre o valor de saída. Essas propriedades de entrada são chamadas de recursos. A coleta de entradas para uma determinada amostra é um vetor de recursos. Em nosso exemplo acima, o vetor de recursos tinha comprimento três (o país em que o cartão foi emitido, o número de países onde o cartão foi usado no dia anterior e o valor do pagamento em US$).

No entanto, vetores de recursos com centenas ou milhares de recursos não são incomuns. Na verdade, o Radar usa centenas de recursos, e a maioria deles consiste em agregados computados na rede Stripe. À medida que nossa rede se expande, cada recurso se torna mais informativo, pois nossos dados de treinamento passam a representar melhor todo o conjunto de dados do recurso, inclusive todos os dados que não são da Stripe. O valor de saída (em nosso exemplo, o booleano que indica se a transação foi fraudulenta ou não) costuma ser chamado de alvo ou rótulo. Portanto, os dados de treinamento consistem em um grande número de vetores de recursos e seus valores de saída correspondentes.

Depois disso, precisamos treinar um modelo. Tendo em conta os dados de treinamento, precisamos definir um método para produzir nosso modelo preditivo. Os classificadores de machine learning não costumam gerar apenas um rótulo de classe; geralmente eles atribuem probabilidades de que uma determinada amostra pertença a cada classe possível. Por exemplo, o resultado de um classificador de fraude pode ser uma avaliação de que o pagamento tem 65% de probabilidade de ser fraudulento e 35% de ser legítimo.

Há muitas técnicas de machine learning que podem ser usadas para treinar modelos. Para a maioria das aplicações industriais de machine learning, abordagens tradicionais como regressão linear, árvores de decisão ou florestas aleatórias funcionam muito bem.

No entanto, técnicas sofisticadas, como redes neurais e deep learning, inspiradas na arquitetura dos neurônios no cérebro, são responsáveis por muitos avanços na área, incluindo previsões da AlphaFold para 98% de todas as proteínas humanas. As vantagens reais das redes neurais só surgem quando elas são treinadas com conjuntos de dados imensos. Portanto, na prática, muitas empresas não conseguem aproveitá-las. Devido ao tamanho da nossa rede, a Stripe é capaz de adotar essa abordagem inovadora para entregar resultados reais aos usuários. Nossos novos modelos melhoraram em mais de 20% o desempenho de machine learning do Radar a cada ano, ajudando-nos a detectar mais fraudes e mantendo o índice de falsos positivos baixo.

Engenharia de recursos

Um da principais processos do machine learning industrial é a engenharia de recursos. A engenharia de recursos consiste em duas partes:
(1) formulação de recursos que tenham valor preditivo com base no amplo conhecimento do domínio do problema e (2) engenharia para disponibilizar os valores desses recursos tanto para treinamento de modelo quanto para avaliação de modelo em "produção".

Durante a formulação, um cientista de dados da Stripe pode ter a impressão de que um recursos útil seria calcular se o pagamento com cartão foi feito de um endereço IP comum para esse cartão. Por exemplo, um pagamento com cartão feito de um endereço IP visto anteriormente (como a casa ou local de trabalho do titular do cartão) tem menos probabilidade de ser fraudulento do que se o endereço IP fosse de um estado diferente. Esse exemplo parece óbvio, mas palpites como esse vêm da verificação de milhares de casos de fraude. Por exemplo, você pode se surpreender ao saber que calcular a diferença entre a hora no dispositivo do usuário e o Tempo Universal Coordenado (UTC) atual ou a contagem de países nos quais o cartão foi autorizado com sucesso ajudam a detectar fraudes.

Assim que estabelecemos o recurso de interesse, precisamos calcular seus valores históricos para treinar um novo modelo incluindo esse recursos. Trata-se do processo de adicionar uma nova coluna à "tabela" de dados que usamos para produzir nosso modelo. Para fazer isso em nosso candidato a recurso, para cada pagamento no histórico da Stripe, precisamos calcular os dois endereços IP mais frequentes a partir dos quais os pagamentos anteriores foram feitos com o cartão. Poderíamos fazer isso de forma distribuída com um trabalho Hadoop, mas mesmo assim o trabalho poderá exigir muito tempo (ou memória). Então, poderíamos tentar otimizar o cálculo usando uma estrutura de dados probabilística que economizasse espaço. Mesmo para recursos óbvios, a produção de dados para treinamento de modelos requer infraestrutura dedicada e fluxos de trabalho estabelecidos.

Nem todos os recursos são calculados manualmente por engenheiros; pode-se deixar que alguns sejam calculados pelo modelo com testes subsequentes antes da implantação. Valores categóricos, como o país de origem de um cartão ou o comerciante que processou uma transação (em oposição a recursos numéricos), funcionam bem nesta abordagem. Esses recursos geralmente têm uma ampla gama de valores, e pode ser desafiador definir uma boa representação para eles.

Na Stripe, treinamos nossos modelos para aprenderem um embedding para cada comerciante com base nos padrões de transação. Um embedding pode ser considerado como as coordenadas de um comerciante individual em comparação a outros. Comerciantes semelhantes geralmente têm embeddings parecidos (medidos pela distância do cosseno), permitindo que o modelo transfira aprendizados de um comerciante para outro. A tabela abaixo mostra como esses embeddings poderiam ser, já que o Uber e o Lyft são provavelmente mais semelhantes entre si do que o Slack. Na Stripe, usamos embeddings para diversos recursos categóricos, como banco emissor, país do comerciante e do usuário, dia da semana e muito mais.

Illustrative embedding coordinates

Uber
2.34 1.1 -3.5
Lyft
2.1 1.2 -2
Slack
7 -2 1

O uso de embeddings é cada vez mais comum em aplicações industriais de machine learning em grande escala. Word embeddings como esses, por exemplo, ajudam a capturar as complexas relações semânticas entre palavras e estão envolvidos em marcos de processamento de linguagem natural como Word2Vec, BERT e GPT-3. A Stripe produz embeddings para capturar relações de semelhança entre diferentes entidades na rede Stripe da mesma forma que os métodos acima capturam semelhanças entre palavras. Os embeddings são uma maneira poderosa de aprender conceitos amplos sem treinamento explícito. Por exemplo, os padrões de fraude costumam ser distribuídos geograficamente de forma desigual. Com os embeddings, caso nosso sistema identifique um novo padrão de fraudes no Brasil, ele poderá identificar automaticamente o mesmo padrão caso apareça nos EUA, sem treinamento adicional. Dessa forma, os avanços em algoritmos ajudam a ficar à frente das mudanças nos padrões de fraude, protegendo nossos clientes.

Se você tem interesse em trabalhar em produtos de machine learning na Stripe, fale conosco!

Avaliação dos modelos de machine learning

Depois que desenvolvemos um classificador de machine learning para fraudes que usa centenas de recursos e atribui uma probabilidade (ou pontuação) de que o pagamento seja fraudulento para cada transação recebida, precisamos determinar a eficácia do modelo na detecção de fraudes.

Termos-chave

Para que você entenda melhor como avaliamos nossos sistemas de machine learning, vamos definir alguns termos importantes.

Guide false positives

Vamos começar supondo que criamos uma política para bloquear um pagamento se o modelo de machine learning atribuir à transação uma probabilidade de pelo menos 0,7 de ser fraudulenta. (Escrevemos isso como P(fraude)>0,7). Aqui estão algumas quantidades úteis para o raciocínio sobre o desempenho do nosso modelo e política:

  • Precisão: a precisão da nossa política é a fração das transações que bloqueamos que são realmente fraudulentas. Quanto maior for a precisão, menos falsos positivos haverá. Digamos que em 10 transações, há P(fraude)>0,7 para seis delas e, dessas seis, quatro são realmente fraudulentas. Então, a precisão é de 4/6=0,66.

  • Revocação: também conhecida como sensibilidade ou taxa de verdadeiro positivo, a revocação é a fração de todas as fraudes detectadas por nossa política; isto é, a fração de fraude para a qual P(fraude)>0,7. Quanto maior for a revocação, menos falsos positivos haverá. Digamos que de cada 10 transações, cinco sejam realmente fraudulentas. Se quatro dessas transações receberem P(fraude)>0,7 pelo nosso modelo, então a revocação será 4/5=0,8.

  • Taxa de falsos positivos: a taxa de falsos positivos é a fração de todos os pagamentos legítimos que são bloqueados incorretamente pela nossa política. Digamos que de cada 10 transações, cinco sejam legítimas. Se duas dessas transações receberem P(fraude)>0,7 pelo nosso modelo, então a taxa de falsos positivos é 2/5=0,4.

Embora existam outras quantidades que são usadas ao avaliar um classificador, vamos nos concentrar nessas três.

Curvas ROC e de precisão-revocação

A próxima questão natural é que valores são adequados para precisão, revocação e taxa de falsos positivos. Em um mundo ideal, a precisão seria de 1,0 (ou seja, 100% das transações que você classifica como fraude são de fato fraudes), o que tornaria sua taxa de falsos positivos 0 (você não classificou incorretamente nenhuma transação legítima como fraudulenta) e a revocação também seria 1,0 (100% das fraudes são identificadas como tal).

Na realidade, não é possível ter precisão e revocação ideais: à medida que você aumenta o limite de probabilidade de bloqueio, a precisão aumentará (já que o critério de bloqueio é mais rigoroso) e a revocação diminuirá (já que menos transações correspondem ao critério de alta probabilidade). Para um determinado modelo, uma curva de precisão e revocação captura essa relação à medida que o limite da política varia:

Guide precision curve

conforme nosso modelo melhora em geral (devido ao treinamento de uma quantidade cada vez maior de dados de toda a rede Stripe, à adição de recursos que são bons preditores de fraude e ao ajuste de outros parâmetros do modelo) a curva de precisão e revocação muda, como ilustrado no exemplo acima. O modelo controla esse equilíbrio para as empresas na Stripe, e nós monitoramos de perto o impacto na curva de precisão e revocação quando nossos cientistas de dados e engenheiros de machine learning modificam os modelos.

Ao considerar um gráfico de revocação e precisão, é importante distinguir entre as duas noções de "desempenho". Por si só, um modelo é melhor no geral quanto mais próximo estiver do canto superior direito do gráfico (ou seja, onde a precisão e a revocação são ambas 1,0). No entanto, a operacionalização de um modelo geralmente requer a seleção de um ponto operacional na curva de precisão e revocação (no nosso caso, o limite da política para bloquear uma transação), que controla o impacto concreto que o uso do modelo tem sobre uma empresa.

Simplificando, existem dois problemas:

  • o problema da ciência de dados em produzir um bom modelo de machine learning adicionando os recursos certos. O modelo controla o formato da curva de precisão e revocação.

  • O problema da empresa em escolher uma política para decidir o número de fraudes em potencial a ser bloqueado. A política controla onde estamos operando na curva.

Outra curva examinada ao avaliar um modelo de machine learning é a curva ROC. ROC é a abreviação em inglês de "característica operacional do receptor", uma herança da origem da curva em aplicações de processamento de sinal. A curva ROC é uma plotagem da taxa de falsos positivos (no eixo x) e da taxa de verdadeiros positivos (que é igual à revocação) no eixo y para vários valores do limite da política.

Guide roc curve

A ROC ideal fica no canto superior esquerdo do gráfico (onde a revocação é 1,0 e a taxa de falsos positivos é 0,0) e, à medida que o modelo melhora, se move mais nessa direção. Uma forma de capturar a qualidade geral do modelo é calculando a área sob a curva (ou AUC); no caso ideal, a AUC será 1,0. Ao desenvolver nossos modelos, procuramos ver como a curva de precisão e revocação, a curva ROC e a AUC mudam.

Distribuições de pontuação

Imagine que temos um modelo que atribui aleatoriamente uma probabilidade de fraude entre 0,0 e 1,0 a uma transação. Praticamente, este modelo não discrimina entre transações legítimas e fraudulentas e é de pouca utilidade para nós. Essa aleatoriedade é capturada pela distribuição de pontuação do modelo, a fração de transações que obtém cada pontuação possível. No caso completamente aleatório, a distribuição de pontuação seria quase uniforme:

Guide uni dist

um modelo terá uma distribuição de pontuação uniforme como a acima se, por exemplo, o ele não tiver recursos que sejam preditivos de fraude. À medida que um modelo é aprimorado (por meio da adição de recursos preditivos, do treinamento com mais dados e assim por diante), seu poder de discriminar entre as classes fraudulentas e legítimas aumentará e a distribuição da pontuação se tornará mais bimodal, com picos em torno das pontuações de 0,0 e 1,0.

Guide split dist

Por si só, uma distribuição bimodal não indica que um modelo é bom. Um modelo vazio que atribua aleatoriamente probabilidades de apenas 0,0 e 1,0 também teria uma distribuição de pontuação bimodal. No entanto, na presença de comprovantes de que as transações com pontuação baixa não são fraudulentas e de que as transações com pontuação elevada são fraudulentas, uma distribuição cada vez mais bimodal é um sinal de maior eficácia de um modelo.

Modelos diferentes geralmente têm distribuições de pontuação distintas. Quando lançamos novos modelos, comparamos as distribuições antigas com as atualizadas, a fim de minimizar quaisquer alterações perturbadoras causadas por uma mudança repentina em pontuações. Mais especificamente, levamos em consideração as atuais políticas de bloqueio dos comerciantes, conforme medidas pelo limite no qual eles bloqueiam transações, e tentamos manter estável a proporção de transações que ficam acima do limite.

Cálculo de revocação e precisão

Podemos calcular as métricas acima em dois contextos diferentes: durante o treinamento do modelo, usando os dados históricos que orientam seu processo de desenvolvimento, e após a implantação do modelo, usando dados de produção, isto é, dados do mundo quando o modelo já está sendo usado para agir, por exemplo, bloqueando transações se P(fraude)>0,7.

Para o primeiro, os cientistas de dados normalmente pegam os dados de treinamento que possuem (consulte a tabela acima) e atribuem aleatoriamente uma fração dos registros a um conjunto de treinamento e os outros registros a um conjunto de validação. Pode-se imaginar que os primeiros 80% das linhas vão para treinamento e os últimos 20% para validação, por exemplo.

O conjunto de treinamento são os dados inseridos em um método de machine learning para produzir um modelo conforme descrito acima. Assim que tivermos um modelo candidato, podemos usá-lo para atribuir pontuações a cada amostra no conjunto de validação. As pontuações do conjunto de validação, juntamente com seus valores de saída, são usadas para calcular as curvas ROC e de precisão e revocação, as distribuições de pontuação e assim por diante. A razão pela qual usamos um conjunto de validação separado do conjunto de treinamento é que o modelo já "viu a resposta" para seus exemplos de treinamento e aprendeu com essas respostas. Um conjunto de validação nos ajuda a gerar métricas que são uma medida precisa do poder preditivo do modelo em novos dados.

Operações de machine learning: implantação de modelos de maneira segura e frequente

Depois que for demonstrado que o desempenho de um modelo supera o modelo de produção atual em um conjunto separado, a próxima etapa é implantá-lo na produção. Há dois desafios importantes nesse processo:

  • Cálculos em tempo real: precisamos conseguir calcular o valor de cada recurso para cada novo pagamento em tempo real porque queremos bloquear todas as transações que nosso classificador acredita serem fraudulentas. Esse cálculo é totalmente separado daquele usado para produzir dados de treinamento. Precisamos manter um estado atualizado nos dois endereços IP usados com mais frequência para cada cartão já visto na Stripe. A busca e atualização dessas contagens precisam ser rápidas, pois essas operações acontecem como parte do fluxo da API Stripe. As equipes de infraestrutura de machine learning da Stripe tornaram isso mais fácil criando sistemas para especificar recursos de forma declarativa e disponibilizando os valores atuais dos recursos automaticamente na produção com baixa latência.

  • Aplicação do usuário no mundo real: a implantação de um modelo de machine learning é diferente da implantação de código. Embora muitas vezes as alterações de código sejam validadas com casos de teste precisos, as alterações em modelos geralmente são testadas com um grande conjunto de dados agregados usando métricas como as que definimos acima. Mas um modelo que seja melhor na detecção de fraudes de forma agregada pode não ser melhor para todos os usuários da Stripe. Pode acontecer que a melhoria no desempenho seja distribuída de forma desigual, com muitos benefícios para alguns grandes comerciantes, mas pequenas desvantagens para muitos comerciantes pequenos. Um modelo pode ter mais revocação, mas causar um aumento na taxa de bloqueio, o que seria prejudicial para as empresas (e seus clientes). Antes de lançarmos um modelo, verificamos se ele funciona bem na prática. Para fazer isso, medimos a mudança que cada modelo causaria em uma variedade de métricas, como taxa de falsos positivos, taxa de bloqueio e taxa de autorização de forma agregada e por comerciantes para um subconjunto de usuários da Stripe. Se descobrirmos que um novo modelo pode causar uma mudança indesejável em uma dessas métricas de proteção, nós o ajustamos para diferentes subconjuntos de usuários antes de lançá-lo, no intuito de minimizar interrupções e garantir o desempenho ideal.

Descobrimos que a automatização da maior parte possível do processo de treinamento e avaliação traz benefícios cumulativos para modelar a velocidade de iteração. No último ano, investimos em ferramentas para treinar, ajustar e avaliar modelos de forma automática e regular usando nossos recursos e arquitetura de modelo mais recentes. Por exemplo, atualizamos continuamente os dashboards de desempenho depois que um modelo é treinado e antes de ser lançado. Dessa forma, é fácil para um engenheiro detectar se um candidato a modelo ficou obsoleto em um subconjunto de tráfego antes mesmo de liberá-lo e treiná-lo proativamente.

Depois que lançamos um modelo, monitoramos seu desempenho e começamos a trabalhar no próximo lançamento. Como as tendências de fraude mudam rapidamente, os modelos de machine learning logo começam a sofrer desvios: os dados nos quais eles foram treinados não são mais representativos de fraude hoje.

Usando essas ferramentas, triplicamos a velocidade de lançamento de modelos, o que leva diretamente a grandes ganhos de desempenho na produção. Na verdade, até mesmo treinar novamente um modelo do mês anterior com dados mais recentes (usando as mesmas definições de recursos e arquitetura) e lançá-lo nos permite aumentar nossa revocação em até meio ponto percentual a cada mês. A capacidade de lançar modelos com frequência e segurança nos permite capitalizar e aumentar os ganhos do trabalho de modelagem e engenharia de recursos e faz com que nos adaptemos às mudanças nos padrões de fraude para usuários do Radar.

Depois de colocarmos um modelo em produção, monitoramos continuamente o desempenho do nosso par de modelo e política. Para pagamentos com pontuações abaixo do limite para bloqueio, podemos observar o resultado final: a transação foi contestada pelo titular do cartão como fraude? No entanto, os pagamentos com pontuações acima do limite são bloqueados e, portanto, não temos como saber quais seriam os resultados. Calcular a curva ROC ou de precisão e revocação da produção total é, portanto, mais complicado do que calcular as curvas de validação, pois esse processo envolve análise contrafactual, ou seja, precisamos obter estimativas estatisticamente sólidas sobre o que teria acontecido mesmo com os pagamentos que bloqueamos. Ao longo dos anos, a Stripe desenvolveu métodos para fazer isso. Saiba mais nesta palestra.

Acabamos de descrever algumas das medidas de eficácia do modelo que os cientistas de dados e engenheiros de machine learning observam ao desenvolver modelos de machine learning. A seguir, vamos falar sobre como as empresas devem pensar sobre a prevenção a fraudes.

Como a Stripe pode ajudar

Se você se concentrar em apenas um número para compreender seu desempenho no combate a fraudes, poderá fazer escolhas que não são ideais para a sua empresa. Descobrimos que muitas vezes as empresas enfatizam demais os falsos negativos porque estão preocupadas com fraudes que passam despercebidas. Mas, assim, acabam subestimando os falsos positivos. Não é raro que essa mentalidade resulte em medidas de força bruta ineficazes e dispendiosas, como o bloqueio de todos os cartões internacionais. Em geral, você deve pensar em como as diversas medidas de desempenho se relacionam e em que concessões fazer, dadas as suas circunstâncias específicas. Aqui está um exemplo de como essas métricas interagem para ajudar a determinar a eficácia do seu sistema de prevenção a fraudes:

MODELO APROXIMADO PARA PRECISÃO DE EQUILÍBRIO

Se sua venda média for de US$ 26, com margem de 8%, seu lucro por venda será de US$ 26,00 × 8,00% = US$ 2,08. Em média, se o produto custa US$ 26,00 – US$ 2,08 = US$ 23,92 para produzir e você tem que pagar uma tarifa de estorno de US$ 15, a perda total em uma venda fraudulenta é de US$ 23,92 + US$ 15,00 = US$ 38,92. Portanto, uma venda fraudulenta custa a você o lucro de US$ 38,92/US$ 2,08 = US$ 18,71 vendas legítimas, e sua precisão de equilíbrio é 1/(1 + 18,71) = 5,07%.

Os limites de machine learning do Radar compensam a otimização das margens dos comerciantes e mantêm as taxas de bloqueio estáveis em toda a nossa base de usuários. Você pode acessar um dashboard para ver o desempenho de machine learning do Radar para sua empresa, bem como o desempenho de suas regras personalizadas se estiver usando o Radar for Fraud Teams. Com essas ferramentas, é fácil comparar suas taxas de disputa por fraude, taxas de falsos positivos e taxas de bloqueio com outras empresas semelhantes com base em grupos agregados e personalizados de empresas que estão em setores ou tamanhos semelhantes aos seus.

Guide DashboardImage

Melhorando o desempenho com regras e revisões manuais

Com o Radar for Fraud Teams, você pode definir sua proteção ajustando diretamente o limite de risco para bloquear ou permitir mais pagamentos. Juntamente com os algoritmos mais automáticos de machine learning, o Radar for Fraud Teams também permite que empresas individuais elaborem regras personalizadas (por exemplo, "bloquear todas as transações acima de US$ 1.000 quando o país do IP não corresponder ao país do cartão"), solicitar intervenções e revisar manualmente os pagamentos sinalizados no Dashboard.

Essas regras podem ser vistas como "modelos" simples (afinal, podem ser representadas como árvores de decisão) e devem ser avaliadas levando em conta o equilíbrio entre precisão e revocação da mesma forma que os modelos. Quando você cria uma regra com o Radar, apresentaremos estatísticas históricas sobre o número de transações correspondentes que foram contestadas, reembolsadas ou aceitas para ajudar nesses cálculos antes mesmo de a regra ser implementada. Depois da produção, você pode ver o impacto nos falsos positivos e nas taxas de contestação por regra.

As regras, intervenções e revisões manuais são de extrema importância e permitem que os usuários alterem a forma da curva de precisão e revocação a seu favor por meio da inclusão de lógica proprietária e específica do negócio (regras) ou de esforço adicional (revisão manual).

Se você perceber que os algoritmos de machine learning estão ignorando um determinado tipo de fraude específico para o seu negócio (e que a fraude é fácil de identificar), você pode criar uma regra para bloqueá-lo. Esse tipo de intervenção específica costuma aumentar a revocação com pouco custo para a precisão, movendo o ponto operacional ao longo de uma curva de precisão e revocação menos íngreme e mais favorável.

Ao enviar algumas classes de transações para revisão manual em vez de bloqueá-las completamente, você pode melhorar a precisão sem prejudicar a revocação. Da mesma forma, ao enviar algumas transações para revisão manual em vez de permiti-las imediatamente, você pode melhorar a revocação sem prejudicar a precisão.
É claro que, nesses casos, você está pagando por esses ganhos com trabalho humano adicional (e se expondo à precisão das avaliações de sua equipe), mas ter revisão manual, regras e intervenções para autenticar clientes de alto risco como ferramentas adicionais lhe dá outra vantagem para otimizar os resultados da fraude.

Próximas etapas

Esperamos que este guia ajude você a entender como o machine learning é aplicado na prevenção a fraudes na Stripe e como avaliar a eficácia de seus sistemas antifraude. Você pode saber mais sobre os recursos do Radar ou explorar nossa documentação.

Se você tiver alguma dúvida ou quiser saber mais sobre o Stripe Radar, entre em contato.

Vamos começar?

Crie uma conta e comece a aceitar pagamentos sem precisar de contratos nem dados bancários, ou fale conosco para criar um pacote personalizado para sua empresa.
Radar

Radar

Combata fraudes com a força da rede da Stripe.

Documentação do Radar

Use o Stripe Radar para proteger sua empresa contra fraudes.