BLOG

Přečtěte si poslední novinky ze světa datových technologií a BI.
Nezapomeňte se přihlásit k jejich odběru na e-mail.

Billigence Hackathon – Catch the Fraudster

V Billigence se snažíme pracovat s těmi nejmodernějšími technologiemi napříč datovým světem. A jak to vypadá, když se tyto technologie spojí a vytvoří end-to-end datovou architekturu? Náš moderní toolset jsme podrobili zatěžkávací zkoušce v rámci interního Billigence hackathonu. Dokážeme během jednoho večera na základě datasetu transakcí z kreditních karet chytit podvodníka, který okrádá nevinné lidi, dokonce i některé naše kolegy? 

O co vlastně šlo 

V první řadě něco nového se naučit. V Billigence máme týmy, které se zaměřují na konkrétní oblast a s ní související technologie, je však důležité mít určitý přesah a být schopný vnímat data takzvaně end-to-end. Hackathon se stal ideální příležitostí vyzkoušet si prakticky většinu nástrojů, které v Billigence napříč regiony využíváme. 

Samozřejmě to byla příležitost znovu se sejít, možnost spolupracovat s kolegy napříč týmy a oslavit dosažené úspěchy. 

V neposlední řadě se jednalo také o vytvoření samotného end-to-end řešení, které můžeme využít pro demo, tréninky, testování a vytváření prototypů. 

Chytit podvodníka 

Jako základ jsme si vzali volně dostupná anonymizovaná transakční data z kreditních karet. Ta jsme lehce poupravili, vygenerovali si master data všech klientů této fiktivní banky a také platebních terminálů, kde klienti platí. Hluboko do dat jsme schovali příběh podvodníka, který zneužívá kreditní karty našich fiktivních klientů a provádí podvodné transakce a je možné ho během jednoho večera rozklíčovat jen s pomocí těch správných znalostí a kvalitních nástrojů. Způsob, jakým byl podvodník skryt spočíval ve vytvoření řady falešných nových transakcí vedoucích právě k dané osobě, které však bez obohacení dat a vytvoření machine learning modelu víceméně nešel odhalit. 

Jaké byly dvě hlavní ingredience úspěchu? 

1. Moderní nástroje

V Billigence pracujeme s nejmodernějšími technologiemi. Toolset pro náš hackathon jsme si zvolili následovně: 

2. Kvalitní tým

U tohoto bodu jsme neměli ani ty nejmenší pochyby. Jednotlivé týmy jsou ve svých oblastech silné, proto jsme si byli jisti, že společnými silami podvodníka odhalí.  

Fáze 0 – Příprava 

V podvečer dne D jsme se vkanceláři sešli v hojném počtu. Konzultanti, Sales, Marketing, HR i Operations, všichni odhodlaní podvodníka polapit. Jednotlivé týmy, složené tak, aby každý mohl zkusit něco nového mimo jeho aktuální znalost, byly zodpovědné za konkrétní oblast zpracování dat ve vybraném technologickém nástroji. Úkoly jsme rozdělili do několika fází, s rostoucí mírou obtížnosti. Celkový průběh se potom odehrával v rámci série sprintů, na jejichž konci jsme se vždy sešli v takzvaném headquarters a odprezentovali si postup. 

Fáze 1 

Úderem páté hodiny odpolední se týmy rozběhly do svých zasedaček. Prvním cílem bylo prokopnout end-to-end datový tok a rozchodit základní funkcionality jednotlivých nástrojů. Srdcem naší architektury se stal Snowflake, který působil jako datový sklad, machine learning workbench a zdroj pro finální reporting.

  • Tým Alfa se pustil do přípravy kontrol datové kvality. Ve Snowflake připravil sérii kontrol transakčních i klientských dat a automatizoval notifikace při datových problémech. 
  • Tým Beta, se opřel do near-real-time reportingu s cílem rychlého zobrazování nově příchozích transakcí, a to jak v Power BI, tak v Tableau. 
  • Na nahrávání nově generovaných transakčních dat a jejich integraci s historickými daty již dostupnými ve Snowflake se zaměřil tým Gama. 
  • Tým Delta si vzal na starosti takzvaný feature engineering, tedy přípravu dat pro trénování machine learning modelu, pomocí historických dat dostupných v našem Snowflake. 
  • Úkolu obohacení našich klientských dat, a to automatizovaným geocodingem, tedy získáním souřadnic na základě adres. Vše pomocí nástroje Alteryx se zhostil tým Epsilon. 

 

V první fázi se našich pět týmů pustilo do položení základů pro fázi 2, ve které jsme chtěli dosáhnout hlavního cíle, tedy chytit podvodníka. Hned první část byla ambiciózní. Potřebovali jsme propojit několik systémů, správně se připojit k neprobádanému API zdroji, vytvořit ten správný dataset na trénování machine learning modelu a využít několik zbrusu nových funkcionalit ve zvolených nástrojích, a to všechno ve velmi krátkém čase, ideálně během maximálně dvou hodinových sprintů. 

Tento cíl se nám z velké části podařilo splnit. U některých free API jsme sice narazili na performance limity a samozřejmě nejnáročnější bylo hospodaření s časem, ale v rámci druhého stand-upu v našem HQ jsme oficiálně prohlásili fázi 1 za úspěšně dokončenou a mohli slavit poprvé! Náš Tableau report navíc odhalil, kdo jsou hlavní oběti našeho transakčního podvodníka a motivace jej odhalit výrazně vzrostla. 

Fáze 2 

Po občerstvovací pauze, kdy jsme se skleničkou v jedné ruce a pizzou v druhé probrali výzvy fáze 1, nastal čas rozdělit se zpět do týmů a pustit se do ještě ambicióznější druhé fáze. V té jsme potřebovali data protáhnout skrze „pipelinu“ na jejíž konci mělo být jasné, kdo je podvodník, který okrádá nevinné dataře o jejich úspory. 

  • Tým Alfa se přesunul do Data Governance nástroje Collibra, ve kterém provedl automatickou synchronizaci metadat ze Snowflaku, s cílem dokumentace našeho datového toku a monitoringu datové kvality. 
  • Tým Beta pokračoval na straně reportingové v důkladnější analýze obohacených dat, zobrazení dat na mapě a část týmu se pustila do opravdového real-time reportingu. 
  • Složitého úkolu se zhostil tým Gama, a to sloučení a transformace dat ve Snowflaku pomocí nové funkcionality, takzvaných Dynamic Tables, které dokážou transformovat data v reálném čase. 
  • Tým Delta přesedlal na machine learning nástroj H2O Driverless AI, ve kterém měl vytrénovat model, který dokáže odhalit podvodné transakce, vše s použitím dat, které si tým připravil ve fázi 1. 
  • Tým Epsilon pokračoval v obohacování dat, tentokrát však dat platebních terminálů s pomocí cloudového nástroje Matillion, který dokáže škálovatelně zpracovávat semi-strukturovaná data z API zdrojů. 

 

Původně jsme plánovali sprinty opět po cca jedné hodině, ale díky pomalejšímu postupu jsme se adoptovali na dvouhodinové sessions, abychom týmy zbytečně často nevytrhávali od rozdělané práce. Čas neúprosně plynul a naše týmy se postupně blížily ke svým cílům. Tým Alfa úspěšně implementoval monitorovací řešení. V mezičase tým Delta vytvořil první dva modely pomocí H2O, ale jejich přesnost nebyla dostačující. Pustili se tedy do třetí iterace. Tým Beta se také blížil k cílové čáře, jen bylo třeba počkat na ostatní týmy, aby bylo možné reporty přepojit na reálná transformovaná data. Tým Gama úspěšně vytvořil své řešení a Epsilon spustil svůj „job“ na obohacení dat v Matillion. Bezplatné API však bylo opět relativně pomalé a na finální obohacený dataset bylo potřeba si nějakou dobu počkat. 

Blížili jsme se k cílové čáře a naposledy se sešli v HQ, abychom si sdělili informace o aktuálním stavu jednotlivých úkolů. Finálním krokem bylo propojit všechny dílky skládačky dohromady. Krátce po půlnoci se všichni „přeživší“ setkali u jednoho stolu a před 1 hodinou ranní se nám to opravdu podařilo. Report byl přepojen a data promluvila! Náš model, obohacen o data z různých zdrojů, ukázal na našeho Head of Delivery, Martina. Byl čas na poslední oslavu a prohlásit hackathon za úspěšně dokončený. 

 Jak už to na projektech bývá, ne všechno šlo dle očekávaní a v průběhu hackathonu se objevily různé problémy. Nástroj pro sdílení a komunikaci Mural jsme si dostatečně nevyzkoušeli, zpětně jsme se museli registrovat a zpomalilo to náš postup. Některé cíle byly vzhledem k časové dotaci příliš ambiciózní, tudíž jsme museli udělat pár ústupků. Při opravdovém „živém“ reportingu v Power BI jsme se zapotili, ale nakonec se to týmu Beta povedlo s pomocí Pythonu úspěšně rozchodit. 

Co k hackathonu řekli jednotliví lídři týmů? 

Team Alfa, Ondra

Myslím si, že hackaton jsme jako DG opravdu zvládli! Společně s Aničkou, Michalem a Tomem jsme už zpočátku definovali nejdůležitější pilíře Data Quality a to ještě před tím, než jsme vůbec viděli nějaké data. Mně jako Collibra specialistovi samotná práce ve Snowflake úplně od ruky nešla, ale naštěstí Anička uměla SQL queries jako mateřský jazyk, a tak jsme již kolem desáté večerní měli nejen všechna data v Collibra, ale také jsme je měli správně uspořádaná do jednotlivých katalogů a nad nimi funkční Data Quality checks, které pomocí Snowflake odesílaly automatický email s chybami, které LIVE přicházely do databáze. Zloděje jsme nakonec odhalili sice až po půlnoci, ale za svůj tým mohu upřímně říct, že ke zpoždění nedošlo kvůli nízké kvalitě dat. 

Team Beta, Petr

V našem týmu jsme se zaměřili na vizualizaci dat. Společně s Filipem a Lukášem jsme pracovali na tvorbě streamingového datasetu. Zapotili jsme se hlavně u Python skriptu, který nám měl zachycovat změny na landing pages v rámci Snowflake platformy a vytvořit takzvaný „push dataset". To se nám nakonec podařilo, a tak jsme mohli posílat real time data do streamingového datového zdroje v Microsoft Fabric. Jako třešničku na dortu jsme už jen vytvořili real-time dashboard v Power BI, kde jsme monitorovali potenciální fraudulentní transakce. Ale to byla jen část našeho úsilí. Martin, Veronika a Petra se paralelně věnovali geografické analýze dat v Tableau a snažili se identifikovat potenciální podvodníky v různých částech Prahy. 

Team Gama, Zuzka

Náš tým měl možnost ponořit se do světa streamů s Apache Kafka, což zrovna pro nás byla relativně nová technologie. Nejzajímavějším úkolem bylo odchytávání real-time transakce, které jsme přes Kafka směrovali do Snowflake data platformy. Kromě Kafka jsme používali také Python, v němž jsme transakce transformovali. Nejvíce času nám zabralo samotné seznamování se s Kafka. Jak už to ve vývoji bývá, dost času jsme věnovali i debugování Kafka instance, naštěstí týmové zapálení přežilo i tuto překážku.  Ve druhé fázi jsme se potom zaměřili na integraci nových transakcí s ostatními daty pomocí dynamic tables ve Snowflake. Díky nim jsme byli schopni připravovat data pro reporting víceméně live. 

Team Delta, Pavol

V tíme Delta sme vo fáze číslo jedna pracovali na feature engineeringu, čiže pripravovali sme finálny dataset pre trénovanie modelu. Lenka najprv prišla so zoznamom najčastejšie používaných „features" pri detekovaní podozrivých transakcií a zvyšok tímu sme sa snažili jednotlivé features zakomponovať do finálneho datasetu pomocou SQL priamo v Snowflake. Na konci tejto časti sme rozdelili dáta na tréningový a testovací dataset. V druhej fáze sme pomocou tabuľky vytvoreného v predchodzej fáze trénovali model v H2O. Dan pracoval priamo s H2O a všetci sme spoločne nastavovali model na vhodné parametre. Ak sa vyžadovali nejaké úpravy s datasetom tak sme v Snowflake reagovali buď ja alebo Tomáš priamo v Snowflake. Nakoniec sa nám podarilo natrénovať vhodný model a chytiť fraudstera. 

Team Epsilon, Martina

Tým Epsilon dostal za úkol vytvořit workflows, které spustí geokódování a obohatí existující data o GPS hodnoty, díky čemuž bude možné data vizualizovat pomocí map. Pět členů našeho týmu – Radko, Slávek, Lukáš, Lenka a já – se tak pustilo do práce, nejprve na platformě Alteryx a v druhé fázi i v Matillion. Pro získaní geografických souřadnic jsme v prvním kroku načítali klientská data ze Snowflake, která obsahovala adresy jednotlivých osob. Pak jsme se připojili na Bing Maps API, jehož voláním jsme k těmto adresám byli schopni přiradit přesné hodnoty zeměpisné šířky a délky. Získaná data bylo také potřeba upravit do správného formátu. Nejdřív jsme si tento proces cvičně vyzkoušeli na jedné z adres, workflow jsme však museli zautomatizovat, abychom geokódováním obohatili data přibližně 5000 klientů. To se nám nakonec povedlo a obohacená data jsme tak byli schopni nahrát zpátky do Snowflake, kde s nimi pak mohli začít pracovat ostatní týmy. Ve druhé časti jsme vytvořili další workflow podobného principu, avšak tentokrát v Matillion. Omezením pro nás byla rychlost, jakou jsme mohli s API v bezplatné verzi komunikovat. Obě fáze jsme však nakonec úspěšně dokončili a přispěli tak k chycení podvodníka.  

Co jsme si z celého večera odnesli? 

Kromě nových praktických zkušeností a znalostí přesahující rámec aktuální příslušnosti k týmu i schopnost umět si poradit v nečekaných situacích, proaktivně hledat řešení, vědomí, že se o sebe můžeme navzájem opřít a našim zákazníkům dodávat end-to-end řešení ve vysoké kvalitě.  

KATEGORIE