Svindeloppdagelse er et viktig problem som har applikasjoner innen finansielle tjenester, sosiale medier, e-handel, spill og andre bransjer. Dette innlegget presenterer en implementering av en svindeldeteksjonsløsning som bruker Relational Graph Convolutional Network (RGCN)-modellen for å forutsi sannsynligheten for at en transaksjon er uredelig gjennom både transduktiv og induktiv inferensmodus. Du kan distribuere implementeringen vår til en Amazon SageMaker endepunkt som en sanntids svindeldeteksjonsløsning, uten å kreve ekstern graflagring eller orkestrering, og reduserer dermed distribusjonskostnadene for modellen betydelig.
Bedrifter som leter etter en fullt administrert AWS AI-tjeneste for svindeloppdagelse kan også bruke Amazon-svindeldetektor, som du kan bruke til å identifisere mistenkelige nettbetalinger, oppdage svindel med nye kontoer, forhindre misbruk av prøve- og lojalitetsprogram eller forbedre gjenkjenning av kontoovertakelse.
Løsningsoversikt
Følgende diagram beskriver et eksempel på finanstransaksjonsnettverk som inkluderer forskjellige typer informasjon. Hver transaksjon inneholder informasjon som enhetsidentifikatorer, Wi-Fi-IDer, IP-adresser, fysiske steder, telefonnumre og mer. Vi representerer transaksjonsdatasettene gjennom en heterogen graf som inneholder ulike typer noder og kanter. Deretter blir svindeldeteksjonsproblemet håndtert som en nodeklassifiseringsoppgave på denne heterogene grafen.
Grafnevrale nettverk (GNN) har vist stort lovende når det gjelder å takle problemer med oppdagelse av svindel, utkonkurrere populære veiledede læringsmetoder som gradientforsterkede beslutningstrær eller fullt tilkoblede feed-forward-nettverk på benchmarking-datasett. I et typisk svindeloppsett, under opplæringsfasen, trenes en GNN-modell på et sett med merkede transaksjoner. Hver treningstransaksjon er utstyrt med en binær etikett som angir om den er uredelig. Denne trente modellen kan deretter brukes til å oppdage uredelige transaksjoner blant et sett med umerkede transaksjoner i slutningsfasen. Det finnes to forskjellige inferensmoduser: transduktiv inferens vs. induktiv inferens (som vi diskuterer mer senere i dette innlegget).
GNN-baserte modeller, som RGCN, kan dra nytte av topologisk informasjon, og kombinere både grafstruktur og funksjoner til noder og kanter for å lære en meningsfull representasjon som skiller ondsinnede transaksjoner fra legitime transaksjoner. RGCN kan effektivt lære å representere ulike typer noder og kanter (relasjoner) via heterogen grafinnbygging. I det foregående diagrammet blir hver transaksjon modellert som en målnode, og flere enheter knyttet til hver transaksjon blir modellert som ikke-målnodetyper, som ProductCD
og P_emaildomain
. Målnoder har numeriske og kategoriske funksjoner tildelt, mens andre nodetyper er funksjonsløse. RGCN-modellen lærer en innebygging for hver ikke-målnodetype. For innbygging av en målnode, brukes en konvolusjonsoperasjon for å beregne dens innebygging ved å bruke funksjonene og naboinnbygginger. I resten av innlegget bruker vi begrepene GNN og RGCN om hverandre.
Det er verdt å merke seg at alternative strategier, som å behandle ikke-målenhetene som funksjoner og én-hot-koding av dem, ofte vil være umulige på grunn av de store kardinalitetene til disse enhetene. Omvendt, ved å kode dem som grafenheter gjør GNN-modellen i stand til å dra nytte av den implisitte topologien i enhetsrelasjonene. For eksempel er det mer sannsynlig at transaksjoner som deler et telefonnummer med kjente uredelige transaksjoner også er uredelige.
Grafrepresentasjonen brukt av GNN-er skaper noe kompleksitet i implementeringen. Dette gjelder spesielt for applikasjoner som svindeldeteksjon, der grafrepresentasjonen kan bli utvidet under inferens med nylig lagt til noder som tilsvarer enheter som ikke er kjent under modelltrening. Dette slutningsscenariet blir vanligvis referert til som induktiv modus. I motsetning, transduktiv modus er et scenario som forutsetter at grafrepresentasjonen konstruert under modelltrening ikke vil endres under inferens. GNN-modeller blir ofte evaluert i transduktiv modus ved å konstruere grafrepresentasjoner fra et kombinert sett med trenings- og testeksempler, mens testetiketter maskeres under tilbake-propagering. Dette sikrer at grafrepresentasjonen er statisk, og der krever ikke GNN-modellen implementering av operasjoner for å utvide grafen med nye noder under inferens. Dessverre kan statisk grafrepresentasjon ikke antas når du oppdager uredelige transaksjoner i virkelige omgivelser. Derfor er det nødvendig med støtte for induktiv slutning ved distribusjon av GNN-modeller for svindeldeteksjon i produksjonsmiljøer.
I tillegg er det avgjørende å oppdage uredelige transaksjoner i sanntid, spesielt i forretningssaker der det kun er én sjanse for å stoppe ulovlige aktiviteter. For eksempel kan uredelige brukere oppføre seg ondsinnet bare én gang med en konto og aldri bruke den samme kontoen igjen. Sanntidsslutning om GNN-modeller introduserer ytterligere kompleksitet til implementeringen. Det er ofte nødvendig å implementere subgrafekstraksjonsoperasjoner for å støtte sanntidsslutning. Undergrafekstraksjonsoperasjonen er nødvendig for å redusere inferensforsinkelse når grafrepresentasjonen er stor og å utføre inferens på hele grafen blir uoverkommelig dyrt. En algoritme for induktiv inferens i sanntid med en RGCN-modell kjører som følger:
- Gitt en gruppe transaksjoner og en opplært RGCN-modell, utvide grafrepresentasjonen med enheter fra gruppen.
- Tilordne innbyggingsvektorer for nye ikke-målnoder med den gjennomsnittlige innebyggingsvektoren for deres respektive nodetype.
- Trekk ut en subgraf indusert av k-hopp ut av nabolaget til målnodene fra partiet.
- Utfør slutning på subgrafen og returner prediksjonsscore for batchens målnoder.
- Rydd opp i grafrepresentasjonen ved å fjerne nylagte noder (dette trinnet sikrer at minnekravet for modellslutning forblir konstant).
Nøkkelbidraget til dette innlegget er å presentere en RGCN-modell som implementerer den induktive inferensalgoritmen i sanntid. Du kan distribuere vår RGCN-implementering til et SageMaker-endepunkt som en sanntidsløsning for svindeldeteksjon. Løsningen vår krever ikke ekstern graflagring eller orkestrering, og reduserer distribusjonskostnadene for RGCN-modellen for svindeloppdagingsoppgaver betydelig. Modellen implementerer også transduktiv inferensmodus, slik at vi kan utføre eksperimenter for å sammenligne modellytelse i induktive og transduktive moduser. Modellkoden og notatbøker med eksperimenter kan nås fra AWS-eksempler GitHub-repo.
Dette innlegget bygger på innlegget Bygg en GNN-basert sanntidsløsning for svindeldeteksjon ved å bruke Amazon SageMaker, Amazon Neptune og Deep Graph Library. Det forrige innlegget bygde en RGCN-basert sanntidsløsning for svindeldeteksjon ved å bruke SageMaker, Amazon Neptun, og Deep Graph Library (DGL). Den tidligere løsningen brukte en Neptune-database som ekstern graflagring, nødvendig AWS Lambda for orkestrering for sanntidsslutning, og inkluderte kun eksperimenter i transduktiv modus.
RGCN-modellen introdusert i dette innlegget implementerer alle operasjoner av den induktive inferensalgoritmen i sanntid ved å bruke bare DGL som en avhengighet, og krever ikke ekstern graflagring eller orkestrering for distribusjon.
Vi evaluerer først ytelsen til RGCN-modellen i transduktive og induktive moduser på et benchmark-datasett. Som forventet er modellytelsen i induktiv modus litt lavere enn i transduktiv modus. Vi studerer også effekten av hyperparameter k på modellens ytelse. Hyperparameteren k kontrollerer antall hopp utført for å trekke ut en subgraf i trinn 3 av sanntidsslutningsalgoritmen. Høyere verdier på k vil produsere større subgrafer og kan føre til bedre slutningsytelse på bekostning av høyere latenstid. Som sådan gjennomfører vi også tidseksperimenter for å evaluere gjennomførbarheten av RGCN-modellen for en sanntidsapplikasjon.
datasett
Vi bruker IEEE-CIS svindeldatasett, det samme datasettet som ble brukt i forrige poste. Datasettet inneholder over 590,000 XNUMX transaksjonsposter som har en binær svindeletikett (den isFraud
kolonne). Dataene er delt inn i to tabeller: transaksjon og identitet. Imidlertid har ikke alle transaksjonsposter tilsvarende identitetsinformasjon. Vi slår sammen de to bordene på TransactionID
kolonne, som gir oss totalt 144,233 XNUMX transaksjonsposter. Vi sorterer tabellen etter transaksjonstidsstempel (den TransactionDT
kolonne) og lag en 80/20 prosentvis delt på tid, og produserer henholdsvis 115,386 28,847 og XNUMX XNUMX transaksjoner for trening og testing.
For flere detaljer om datasettet og hvordan du formaterer det for å passe inndatakravet til DGL, se Oppdage svindel i heterogene nettverk ved å bruke Amazon SageMaker og Deep Graph Library.
Grafkonstruksjon
Vi bruker TransactionID
kolonne for å generere målnoder. Vi bruker følgende kolonner for å generere 11 typer ikke-målnoder:
card1
gjennomcard6
ProductCD
addr1
ogaddr2
P_emaildomain
ogR_emaildomain
Vi bruker 38 kolonner som kategoriske trekk ved målnoder:
M1
gjennomM9
DeviceType
ogDeviceInfo
id_12
gjennomid_38
Vi bruker 382 kolonner som numeriske funksjoner for målnoder:
TransactionAmt
dist1
ogdist2
id_01
gjennomid_11
C1
gjennomC14
D1
gjennomD15
V1
gjennomV339
Grafen vår konstruert fra treningstransaksjonene inneholder 217,935 2,653,878 noder og XNUMX XNUMX XNUMX kanter.
Hyperparametere
Andre parametere er satt til å samsvare med parameterne rapportert i forrige poste. Følgende utdrag illustrerer opplæring av RGCN-modellen i transduktive og induktive moduser:
Induktiv vs. transduktiv modus
Vi utfører fem forsøk for induktiv og fem forsøk for transduktiv modus. For hver prøveversjon trener vi en RGCN-modell og lagrer den på disk, og får 10 modeller. Vi evaluerer hver modell på testeksempler mens vi øker antall hopp (parameter k) brukes til å trekke ut en subgraf for slutning, innstilling k til 1, 2 og 3. Vi forutsier alle testeksempler samtidig, og beregner ROC AUC-poengsummen for hvert forsøk. Følgende plot viser gjennomsnittet og 95 % konfidensintervaller for AUC-skåre.
Vi kan se at ytelsen i transduktiv modus er litt høyere enn i induktiv modus. Til k=2, gjennomsnittlig AUC-score for induktiv og transduktiv modus er henholdsvis 0.876 og 0.883. Dette er forventet fordi RGCN-modellen er i stand til å lære innbygging av alle enhetsnoder i transduktiv modus, inkludert de i testsettet. I kontrast tillater induktiv modus bare modellen å lære innebygginger av enhetsnoder som er tilstede i treningseksemplene, og derfor må noen noder være gjennomsnittsfylte under inferens. Samtidig er ytelsesfallet mellom transduktiv og induktiv modus ikke signifikant, og selv i induktiv modus oppnår RGCN-modellen god ytelse med en AUC på 0.876. Vi observerer også at modellytelsen ikke forbedres for verdier av k>2. Dette innebærer den innstillingen k=2 vil trekke ut en tilstrekkelig stor subgraf under inferens, noe som resulterer i optimal ytelse. Denne observasjonen bekreftes også av vårt neste eksperiment.
Det er også verdt å merke seg at for transduktiv modus er modellens AUC på 0.883 høyere enn den tilsvarende AUC på 0.870 rapportert i forrige poste. Vi bruker flere kolonner som numeriske og kategoriske trekk ved målnoder, noe som kan forklare den høyere AUC-skåren. Vi legger også merke til at eksperimentene i forrige innlegg bare utførte en enkelt prøvelse.
Konklusjon om et lite parti
For dette eksperimentet evaluerer vi RGCN-modellen i en liten batch-inferensinnstilling. Vi bruker fem modeller som ble trent i induktiv modus i forrige forsøk. Vi sammenligner ytelsen til disse modellene når vi forutsier i to innstillinger: full og liten batch-slutning. For full batch-slutning forutsier vi hele testsettet, slik det ble gjort i forrige forsøk. For små batch-slutninger forutsier vi i små batcher ved å dele testsettet inn i 28 batcher av samme størrelse med omtrent 1,000 transaksjoner i hver batch. Vi beregner AUC-score for begge innstillingene ved å bruke forskjellige verdier av k. Følgende plot viser gjennomsnittlig og 95 % konfidensintervaller for full og liten batch-inferensinnstillinger.
Vi observerer den ytelsen for liten batch-slutning når k=1 er lavere enn for full batch. Ytelse for små batch-slutninger samsvarer imidlertid med full batch når k>1. Dette kan tilskrives mye mindre subgrafer som trekkes ut for små partier. Vi bekrefter dette ved å sammenligne subgrafstørrelser med størrelsen på hele grafen konstruert fra treningstransaksjonene. Vi sammenligner grafstørrelser når det gjelder antall noder. Til k=1, den gjennomsnittlige subgrafstørrelsen for liten batch-slutning er mindre enn 2 % av treningsgrafen. Og for full batch-slutning når k=1, undergrafstørrelsen er 22 %. Når k=2, subgrafstørrelser for liten og full batch-slutning er henholdsvis 54 % og 64 %. Til slutt når subgrafstørrelser for begge inferensinnstillingene 100 % for k=3. Med andre ord, når k>1, blir subgrafen for en liten batch tilstrekkelig stor, slik at liten batch-slutning kan oppnå samme ytelse som full batch-slutning.
Vi registrerer også prediksjonsforsinkelse for hver batch. Vi utfører våre eksperimenter på en ml.r5.12xlarge instans, men du kan bruke en mindre instans med 64 G minne for å kjøre de samme eksperimentene. Følgende plott viser gjennomsnittet og 95 % konfidensintervaller for små batchprediksjonsforsinkelser for forskjellige verdier av k.
Latensen inkluderer alle fem trinnene i den induktive inferensalgoritmen i sanntid. Vi ser at når k=2, å forutsi 1,030 transaksjoner tar i gjennomsnitt 5.4 sekunder, noe som resulterer i en gjennomstrømning på 190 transaksjoner per sekund. Dette bekrefter at implementeringen av RGCN-modellen er egnet for svindeloppdagelse i sanntid. Vi bemerker også at forrige poste ga ikke harde latensverdier for implementeringen.
konklusjonen
RGCN-modellen utgitt med dette innlegget implementerer algoritmen for induktiv inferens i sanntid, og krever ikke ekstern graflagring eller orkestrering. Parameteren k i trinn 3 av algoritmen spesifiserer antall hopp utført for å trekke ut subgrafen for slutning, og resulterer i en avveining mellom modellnøyaktighet og prediksjonsforsinkelse. Vi brukte IEEE-CIS svindeldatasett i våre eksperimenter, og empirisk validert at den optimale verdien av parameteren k for dette datasettet er 2, og oppnår en AUC-score på 0.876 og prediksjonsforsinkelse på mindre enn 6 sekunder per 1,000 transaksjoner.
Dette innlegget ga en trinnvis prosess for opplæring og evaluering av en RGCN-modell for svindeloppdagelse i sanntid. Den inkluderte modellklassen implementerer metoder for hele modellens livssyklus, inkludert serialisering og deserialiseringsmetoder. Dette gjør at modellen kan brukes til sanntids svindeloppdagelse. Du kan trene modellen som en PyTorch SageMaker-estimator og deretter distribuere den til et SageMaker-endepunkt ved å bruke følgende bærbare som en mal. Endepunktet er i stand til å forutsi svindel på små partier av råtransaksjoner i sanntid. Du kan også bruke Amazon SageMaker Inference Recommender for å velge den beste forekomsttypen og konfigurasjonen for inferensendepunktet basert på arbeidsbelastningene dine.
For mer informasjon om dette emnet og implementeringen oppfordrer vi deg til å utforske og teste skriptene våre på egen hånd. Du kan få tilgang til notatbøkene og relatert modellklassekode fra AWS-eksempler GitHub-repo.
Om forfatterne
Dmitriy Bespalov er Senior Applied Scientist ved Amazon Machine Learning Solutions Lab, hvor han hjelper AWS-kunder på tvers av ulike bransjer med å akselerere deres AI og skyadopsjon.
Ryan Brand er en anvendt vitenskapsmann ved Amazon Machine Learning Solutions Lab. Han har spesifikk erfaring med å bruke maskinlæring på problemer innen helsevesen og biovitenskap. På fritiden liker han å lese historie og science fiction.
Yanjun Qi er Senior Applied Science Manager ved Amazon Machine Learning Solution Lab. Hun innoverer og bruker maskinlæring for å hjelpe AWS-kunder med å få fart på AI og skyadopsjon.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/build-a-gnn-based-real-time-fraud-detection-solution-using-the-deep-graph-library-without-using-external-graph-storage/
- 000
- 1
- 10
- 100
- 11
- 2%
- 28
- 7
- 95%
- a
- I stand
- Om oss
- misbruk
- akselerere
- adgang
- aksesseres
- Logg inn
- nøyaktighet
- oppnår
- oppnå
- tvers
- Aktiviteter
- la til
- tillegg
- Ytterligere
- adresser
- Adopsjon
- Fordel
- AI
- algoritme
- Alle
- tillater
- alternativ
- Amazon
- Amazon maskinlæring
- Amazon Neptun
- Amazon SageMaker
- blant
- og
- Søknad
- søknader
- anvendt
- påføring
- ca
- Array
- tildelt
- assosiert
- antatt
- augmented
- gjennomsnittlig
- AWS
- basert
- fordi
- blir
- være
- benchmark
- referansemåling
- BEST
- Bedre
- mellom
- merke
- bygge
- bygger
- bygget
- virksomhet
- bære
- saker
- sjanse
- endring
- klasse
- klassifisering
- Cloud
- skyadopsjon
- kode
- Kolonne
- kolonner
- kombinert
- kombinere
- sammenligne
- sammenligne
- kompleksitet
- Beregn
- Gjennomføre
- selvtillit
- Konfigurasjon
- Bekrefte
- BEKREFTET
- tilkoblet
- konstant
- konstruere
- konstruksjon
- inneholder
- kontrast
- bidrag
- kontroller
- Tilsvarende
- Kostnad
- skape
- skaper
- avgjørende
- Kunder
- dato
- Database
- datasett
- avgjørelse
- dyp
- Misligholde
- definert
- Avhengighet
- utplassere
- utplasserings
- distribusjon
- detaljer
- Gjenkjenning
- enhet
- dgl
- gJORDE
- forskjellig
- diskutere
- ikke
- Drop
- under
- hver enkelt
- e-handel
- effekt
- effektivt
- muliggjør
- muliggjør
- oppmuntre
- Endpoint
- sikrer
- Hele
- enheter
- enhet
- miljøer
- spesielt
- evaluere
- evaluert
- evaluere
- Selv
- Hver
- eksempel
- eksempler
- forventet
- dyrt
- erfaring
- eksperiment
- Forklar
- utforske
- utvide
- utvendig
- trekke ut
- Egenskaper
- Fiction
- Endelig
- finansiell
- finansielle tjenester
- Først
- etter
- følger
- format
- svindel
- svindeloppdagelse
- uredelig
- Gratis
- fra
- fullt
- fullt
- gaming
- generere
- få
- GitHub
- god
- graf
- flott
- Hard
- helsetjenester
- hjelpe
- hjelper
- høyere
- historie
- Hvordan
- Hvordan
- Men
- HTML
- HTTPS
- identifisere
- Identitet
- ulovlig
- iverksette
- gjennomføring
- implementere
- redskaper
- importere
- viktig
- forbedre
- in
- I andre
- inkludert
- inkluderer
- Inkludert
- økende
- bransjer
- informasjon
- inngang
- f.eks
- introdusert
- Introduserer
- IP
- IP-adresser
- IT
- bli medlem
- nøkkel
- kjent
- lab
- Etiketten
- etiketter
- stor
- større
- Ventetid
- føre
- LÆRE
- læring
- Bibliotek
- Life
- Life Sciences
- Livssyklus
- Sannsynlig
- laste
- steder
- ser
- Lojalitet
- lojalitetsprogram
- maskin
- maskinlæring
- leder
- Match
- meningsfylt
- Media
- Minne
- metoder
- ML
- Mote
- modell
- modeller
- moduser
- mer
- nødvendig
- Neptune
- nettverk
- nettverk
- nevrale nettverk
- Ny
- neste
- node
- noder
- Antall
- tall
- observere
- å skaffe seg
- ONE
- på nett
- online betalinger
- drift
- Drift
- optimal
- orkestre
- Annen
- bedre ytelse enn i
- egen
- pandaer
- parameter
- parametere
- bestått
- betalinger
- prosent
- Utfør
- ytelse
- utfører
- fase
- telefon
- fysisk
- plato
- Platon Data Intelligence
- PlatonData
- Populær
- Post
- forutsi
- forutsi
- prediksjon
- presentere
- gaver
- forebygge
- forrige
- Før
- Problem
- problemer
- prosess
- produsere
- Produksjon
- program
- løfte
- gi
- forutsatt
- pytorch
- Qi
- Raw
- å nå
- Lesning
- ekte
- virkelige verden
- sanntids
- rekord
- poster
- redusere
- reduserer
- redusere
- referert
- i slekt
- relasjoner
- Relasjoner
- utgitt
- fjerne
- rapportert
- representere
- representasjon
- krever
- påkrevd
- behov
- de
- REST
- resulterende
- Resultater
- retur
- Kjør
- Ryan
- sagemaker
- SageMaker Inference
- samme
- Spar
- scenario
- Vitenskap
- Science Fiction
- VITENSKAPER
- Forsker
- skript
- Sekund
- sekunder
- senior
- tjeneste
- Tjenester
- sett
- innstilling
- innstillinger
- oppsett
- flere
- Del
- vist
- Viser
- signifikant
- betydelig
- enkelt
- Størrelse
- størrelser
- liten
- mindre
- So
- selskap
- sosiale medier
- løsning
- Solutions
- noen
- spesifikk
- fart
- splittet
- spagaten
- Trinn
- Steps
- stoppe
- lagring
- strategier
- struktur
- Studer
- subgraf
- underbilder
- slik
- Dress
- egnet
- støtte
- mistenkelig
- bord
- Ta
- overtakelse
- tar
- Target
- Oppgave
- oppgaver
- mal
- vilkår
- test
- Testing
- De
- Grafen
- deres
- derved
- derfor
- Gjennom
- gjennomstrømning
- tid
- tidsstempel
- timing
- til
- også
- Tema
- Totalt
- Tog
- trent
- Kurs
- Transaksjonen
- Transaksjoner
- behandling
- Trær
- prøve
- forsøk
- sant
- typer
- typisk
- us
- bruke
- Brukere
- vanligvis
- validert
- verdi
- Verdier
- av
- hvilken
- mens
- Wi-fi
- vil
- uten
- ord
- verdt
- ville
- Du
- Din
- zephyrnet