Spoločnosť Binance používa modely strojového učenia na monitorovanie podozrivých aktivít na platforme.
Problémy spôsobené zastaralými funkciami môžu negatívne ovplyvniť výkonnosť takýchto modelov a spôsobiť, že budú vytvárať nepresné predpovede alebo klasifikácie.
Náš streamingový kanál – alebo proces nepretržitého zásobovania modelu údajmi v reálnom čase – pozostáva z dvoch častí: spracovanie údajov a poskytovanie údajov.
Spracovanie údajov je ďalej rozdelené do troch kategórií: stream computing (technológia dátového prúdu), ingesting a sinking.
Prečítajte si, ako používame strojové učenie na ochranu ekosystému Binance.

Náš tím pre riziko umelej inteligencie, zložený z inžinierov strojového učenia a dátových vedcov, nepretržite pracuje na boji proti podvodom a ochrane používateľov Binance. Na dosiahnutie tohto cieľa používajú riešenia založené na umelej inteligencii, ktoré dokážu identifikovať a reagovať na potenciálne hrozby, ako sú napríklad podvody typu peer-to-peer (P2P), krádež platobných údajov a útoky na prevzatie účtu (ATO).
V tomto článku vysvetlíme, ako náš tím pre riziko AI používa streaming na zabezpečenie odoziev v reálnom čase okrem toho, čo sa deje v zákulisí.
Ak nepoznáte strojové učenie, odporúčame vám prečítať si nasledujúcu časť, aby ste získali základný prehľad ohľadom niektorých výrazov, ktoré budeme v tomto článku používať.
Inžinieri strojového učenia zvyčajne používajú dva typy kanálov: batch (dávkové) a streamovacie. Obe majú svoje pre a proti, podľa toho, čo si daná situácia vyžaduje.
Dávkové kanály, ako už názov napovedá, spracovávajú údaje v dávkach (batches). Inžinieri ich zvyčajne používajú na spracovanie veľkých objemov údajov.
Na druhej strane, streamovacie kanály spracúvajú údaje v reálnom čase počas ich zberu. To z nich robí ideálne riešenie pre situácie, ktoré si vyžadujú takmer okamžitú reakciu; napríklad odhalenie hackera skôr, ako stihne vybrať finančné prostriedky z ukradnutého účtu.
Všimnite si, že obe kanály sú rovnako dôležité. Streamovacie kanály sú vynikajúce na poskytovanie odpovedí v reálnom čase, zatiaľ čo dávkové kanály sú lepšie pri spracovávaní veľkých objemov údajov.
V prípade predchádzania podvodom musíme uprednostňovať údaje v reálnom čase, aby sme sa vyhli situácii nazývanej „zastaranosť modelu“, ktorá odkazuje na zastaranie alebo nepresnosť modelov strojového učenia.
Podobne ako sa ľudia môžu stať menej efektívnymi pri plnení úloh, ak nie sú neustále informovaní o najnovších informáciách alebo technikách, aj modely strojového učenia sa môžu stať menej presnými, ak nie sú pravidelne aktualizované podľa danej situácie.
Jedna z vecí, ktorá by sa nemala stať, je to, že model určený na predchádzanie podvodom stane zastaraným. Dôsledky siahajú od modelu nesprávneho označenia legitímnej transakcie ako podvodnej alebo zlyhania identifikácie napadnutého účtu. Preto používame streaming, aby sme zabezpečili, že modely prevencie podvodov budú pracovať s údajmi v reálnom čase.
Uveďme si príklad z nášho modelu ATO, ktorý trénujeme na identifikáciu účtov, ktoré zločinci uniesli so zlým úmyslom. Jednou z vlastností tohto modelu je počet transakcií, ktoré konkrétny zákazník uskutočnil za poslednú minútu.
Hackeri majú tendenciu postupovať podľa sekvenčného vzoru a v krátkom čase vykonať veľký počet operácií, napríklad výberov. Náš systém musí túto funkciu vypočítať čo najskôr v prípade potenciálnych hrozieb. To znamená minimalizovať oneskorenie medzi tým, keď používateľ vykoná akciu, a tým, keď naše modely spracujú údaje o činnosti tohto používateľa. Len pár sekúnd môže znamenať rozdiel medzi zastavením hackera a tým, že používateľ príde o všetky svoje peniaze.
Viac informácií o tom, ako oneskorené funkcie ovplyvňujú výkon modelu, nájdete v tomto článku od LinkedIn Engineering: Near real-time features for near real-time personalization (preklad: Funkcie pre personalizáciu takmer v reálnom čase).
Všimnite si, že dopad a význam zastaranosti prvku môže závisieť od modelu alebo prvku, ktorý sa používa. Niektoré funkcie sú napríklad relatívne stabilné. Vo vyššie uvedenom prípade ATO by sme tiež potrebovali získať údaje o výberoch používateľa za posledných 30 dní, aby sme vypočítali pomer založený na jeho posledných transakciách.
V tomto prípade je dávkové počítanie v dlhších časových úsekoch, ako sú denné alebo hodinové intervaly, prijateľné napriek vyššej neaktuálnosti vyplývajúcej z čakania na príchod údajov do dátových skladov a na pravidelné spúšťanie dávkových úloh.
V konečnom dôsledku by sa výber medzi dávkovými a prúdovými kanálmi mal uskutočniť na základe konkrétnych požiadaviek prípadu použitia a príslušných funkcií. Starostlivé zváženie týchto faktorov nám umožňuje vytvoriť účinné systémy prevencie podvodov, ktoré chránia našich používateľov.

Použitie streamovacieho kanála nám umožňuje uprednostniť čerstvosť pred oneskorením pre časovo citlivé funkcie. Vyššie uvedený diagram ilustruje túto potrebu, pretože počet operácií na získanie prvkov by mal byť tri namiesto dvoch.
To je dôvod, prečo je reťazec strojového učenia v reálnom čase kľúčový pre každodenné operácie nášho tímu pre riadenie rizika.
Strojové učenie v reálnom čase pre tím riadenia rizika AI na Binance pozostáva predovšetkým z dvoch častí:
Spracovanie údajov (horná časť diagramu)
Poskytovanie údajov (spodná časť diagramu)

Čo sa týka spracovania údajov, náš streamingový kanál (Flink Job) môžeme rozdeliť do troch kategórií na základe ich zodpovednosti:
Streamovacie spracovanie údajov: funkčné inžinierstvo
Stream ingestion: prijímanie funkcií
Stream sinking: obohatenie dát
Komponent streamingového spracovania dát je zodpovedný za inžinierstvo funkcií v takmer reálnom čase, teda za proces extrakcie funkcií a vlastností z hrubých údajov.
Predbežne vypočíta funkcie, ktoré naše modely strojového učenia použijú na online predikciu. Existujú dva typy výpočtových metód pre streamingové kanály: na základe času a na základe udalostí.
Na základe času. Výpočet počtu transakcií každých 10 minút. To predstavuje určitú zastaranosť, ale zároven znižuje latenciu.
Na základe udalostí. Výpočet funkcií na základe prichádzajúcej udalosti. To znižuje zastaranosť, ale mierne zvyšuje latenciu.
Našou preferenciou nie je čo najviac využívať výpočty v reálnom čase a tu je dôvod:
Existuje kompromis medzi latenciou a zastaranosťou. Výpočtové funkcie pri príchode online požiadaviek obmedzujú výpočtovú logiku na ľahké (tzv. lightweight) prístupy. Zatiaľ čo táto metóda znižuje zastaranosť, výpočet funkcie zvyšuje latenciu predikcie.
Nezávislé škálovanie je náročné, pretože predikčné a výpočtové služby sú na sebe navzájom závislé.
Výpočet na požiadanie založený na prevádzke požiadaviek vytvára nepredvídateľný tlak na škálovanie.
Výpočet v reálnom čase nie je možné prispôsobiť nášmu monitorovaniu modelu (skreslenie poskytovania školení) a riešeniam monitorovania funkcií, pretože funkcie nie sú uložené v centrálnej databáze, t.j. sklade funkcií.
Komponent príjmu streamu (stream ingestion) je zodpovedný za príjem funkcií takmer v reálnom čase do nášho skladu s funkciami z platformy strojového učenia Kafka. Sklady s funkciami sú centralizované databázy, ktoré obsahujú bežne používané funkcie. Hrajú zásadnú úlohu v kanáloch strojového učenia (machine learning pipelines). Viac sa o nich dozviete v nasledujúcich článkoch: Bližší pohľad na náš sklad s funkciami strojového učenia a Používanie MLO na vybudovanie komplexného procesu strojového učenia v reálnom čase.
Komponent stream sink je zodpovedný hlavne za sinking (potápanie) udalostí v reálnom čase do konkrétneho cieľa – ako sú napríklad vysoko distribuované súborové systémy (HDFS) ako S3 alebo iné externé databázy, ako napríklad ElasticSearch – v závislosti od požiadaviek projektu.
Pre náš tím pre riadenie rizika AI vo všeobecnosti existujú dva vzory obohatenia údajov, ktoré možno použiť na údaje v reálnom čase v ekosystéme Kafka v závislosti od prípadu použitia:
Statické údaje. Napríklad získanie zoznamu populárnych tvorcov sediacich v S3 pre obchodné projekty súvisiace s P2P v úlohách Flink. Referenčné údaje sú statické a vyžadujú si aktualizáciu menej ako raz za mesiac.
Dynamické údaje. Výmenné kurzy v reálnom čase (BTC k USD) sa napríklad získavajú z externých databáz, ako je Redis. Vyhľadávanie podľa záznamu zaisťuje nízku latenciu a vysokú presnosť, ak sa referenčné údaje zmenia.
Komponent kanála poskytujúci údaje je zodpovedný za online predikciu a dávkové výpočty.
Online predikcia. K tomu dochádza, keď požiadavky prichádzajú cez centrum rozhodovania (interný mechanizmus pravidiel nášho tímu pre riziká). Príslušná služba potom zavolá sklad funkcií, aby získala funkcie a odoslala ich modelu strojového učenia na vyhodnotenie. Náš tím pre riadenie rizika AI má viac ako 20 modelov strojového učenia navrhnutých tak, aby zvládali rôzne požiadavky skladu.
Dávkové spracovanie údajov (batch computing). Aj keď môže spôsobiť oneskorenie až o niekoľko dní, hrá tu dôležitú úlohu, pretože dopĺňa funkcie vypočítané v reálnom čase.
Je dôležité poznamenať, že trh s kryptomenami funguje nepretržite, na rozdiel od tradičných finančných trhov, ktoré majú otváracie a zatváracie hodiny. Každú sekundu dochádza k nepretržitému prílevu nových údajov (výbery, vklady, transakcie atď.), čo si vyžaduje, aby sme boli na pozore pred zlými aktérmi, ktorí sa pokúšajú ukradnúť finančné prostriedky alebo osobné údaje používateľov.
Náš tím pre riadenie rizika AI neúnavne pracuje na vývoji a údržbe sofistikovaného systému AI, ktorý dokáže efektívne označiť podozrivú aktivitu. Vďaka ich úsiliu môžeme rýchlo pracovať na ochrane kompromitovaných účtov Binance pred potenciálnymi stratami alebo čo najviac zmierniť škody.
Sledujte aj naďalej ďalšie informácie o našom úsilí v oblasti strojového učenia alebo si pozrite niektoré z našich predchádzajúcich článkov nižšie. Máte záujem o kariéru strojového učenia v Binance? Pozrite si Binance Engineering na našej kariérnej stránke, kde nájdete otvorené pracovné ponuky.