Hlavní Takeaways
Jako největší kryptoburza na světě je zásadní, abychom měli systém detekce rizik, který je rychlý, ale nedělá kompromisy v přesnosti.
Výzvou, se kterou jsme se setkali, bylo zajistit, aby naše modely vždy používaly aktuální informace, zejména při zjišťování podezřelé aktivity účtu v reálném čase.
Abychom dosáhli větší konzistence funkcí a vyšší rychlosti produkce, nyní vytváříme rozumné předpoklady o našich datech a kombinujeme naše dávkové a streamovací kanály.
Zjistěte, jak náš kanál pro vývoj funkcí vytváří silné a konzistentní funkce pro detekci podvodných výběrů na platformě Binance.
V rámci našeho kanálu strojového učení (ML) – o kterém se můžete dozvědět více v předchozím článku – jsme nedávno vybudovali kanál automatizovaného inženýrství funkcí, který spojuje nezpracovaná data do znovu použitelných online funkcí, které lze sdílet napříč všemi modely souvisejícími s riziky.
V procesu budování a testování tohoto kanálu narazili naši datoví vědci na zajímavý problém konzistence funkcí: Jak vytvoříme přesné sady online funkcí, které se dynamicky mění v čase?
Zvažte tento scénář ze skutečného světa: Kryptoburza – v tomto případě Binance – se snaží odhalit podvodné výběry dříve, než peníze opustí platformu. Jedním z možných řešení je přidat do vašeho modelu funkci, která detekuje čas, který uplynul od poslední konkrétní operace uživatele (např. přihlášení nebo svázání mobilu). Vypadalo by to nějak takto:
user_id|last_bind_google_time_diff_in_days|...
1|3,52|...
Výzva implementace
Počet klíčů potřebných k výpočtu a aktualizaci funkcí v online obchodě funkcí je nepraktický. Použití streamingového kanálu, jako je Flink, by bylo nemožné, protože dokáže vypočítat pouze uživatele se záznamy přicházejícími do Kafky v současné době.
Jako kompromis bychom mohli použít dávkové potrubí a přijmout určité zpoždění. Řekněme, že model může načíst funkce z online obchodu s funkcemi a provést odvození v reálném čase přibližně za jednu hodinu. Pokud zároveň trvá jednu hodinu, než úložiště funkcí dokončí výpočet a příjem dat, dávkový kanál by teoreticky problém vyřešil.
Bohužel je tu jeden do očí bijící problém: použití takového dávkového potrubí je časově velmi náročné. Díky tomu není dokončení do jedné hodiny proveditelné, když jste největší kryptoburza na světě, která má přibližně sto milionů uživatelů a limit TPS pro zápisy.
Zjistili jsme, že osvědčeným postupem je vytvářet o uživatelích předpoklady, a tím zmenšit množství dat, která do našeho obchodu funkcí přicházejí.
Usnadnění problému pomocí praktických předpokladů
Online funkce jsou přijímány v reálném čase a neustále se mění, protože představují nejaktuálnější verzi prostředí. S aktivními uživateli Binance si nemůžeme dovolit používat modely se zastaralými funkcemi.
Je nezbytné, aby náš systém co nejdříve označil jakékoli podezřelé výběry. Jakékoli další zpoždění, byť jen o několik minut, znamená pro zlomyslného herce více času na to, aby se dostal ze svých zločinů.
Z důvodu efektivity tedy předpokládáme, že nedávná přihlášení představují relativně vyšší riziko:
Zjistili jsme, že (250 dní + 0,125[3/24 zpoždění] den) vytváří relativně menší chyby než (1 den + 0,125[3/24 zpoždění] den).
Většina operací nepřekročí určitou hranici; řekněme 365 dní. Abychom ušetřili čas a výpočetní zdroje, vynecháváme uživatele, kteří se nepřihlásili déle než rok.
Naše řešení
Používáme architekturu lambda, což znamená proces, kdy kombinujeme dávkové a streamingové potrubí, abychom dosáhli silnější konzistence funkcí.
Jak vypadá řešení koncepčně?
Batch Pipeline: Provádí inženýrství funkcí pro masivní uživatelskou základnu.
Streaming Pipeline: Opravuje zpoždění dávkového kanálu pro poslední přihlášení.
Co když je záznam přijat do online obchodu s funkcemi mezi dobou zpoždění při dávkovém příjmu?
Naše funkce si stále zachovávají silnou konzistenci, i když jsou záznamy zpracovány během jednohodinového dávkového zpoždění příjmu. Je to proto, že online obchod funkcí, který používáme na Binance, vrací nejnovější hodnotu na základě event_time, který zadáte při načítání hodnoty.
Připojte se k našemu týmu!
Zajímá vás využití strojového učení k ochraně největšího světového krypto ekosystému a jeho uživatelů? Podívejte se na Binance Engineering / AI na naší stránce kariéry, kde najdete volná pracovní místa.
Další informace naleznete v následujících užitečných článcích:
(Blog) Používání MLOps k vybudování kompletního procesu strojového učení v reálném čase
(Blog) Bližší pohled na náš obchod s funkcemi strojového učení
