Навіщо і як ми використовуємо машинне навчання в реальному часі для моніторингу шахрайських дій на Binance
Ключові моменти
Binance використовує моделі машинного навчання для моніторингу підозрілої активності на платформі.
Проблема, відома як "застарілі характеристики", може негативно впливати на продуктивність таких моделей, що призводить до неточних прогнозів або класифікацій.
Наш потоковий конвеєр – або процес безперервного наповнення моделі даними в реальному часі – складається з двох частин: обробка даних та обслуговування даних.
Обробка даних також поділяється на три категорії: потокове обчислення, приймання та занурення.
Дізнайтеся, як ми використовуємо машинне навчання для захисту екосистеми Binance.
Наша команда з управління ризиками на основі ШІ, що складається з інженерів машинного навчання та аналітиків даних, працює цілодобово, щоб боротися з шахрайством і захищати користувачів Binance. Щоб досягти цього, вони використовують рішення на основі штучного інтелекту, які можуть ідентифікувати та реагувати на потенційні загрози, такі як peer-to-peer (P2P) шахрайства, крадіжка платіжної інформації та атаки із захопленням акаунту (ATO).
У цій статті ми пояснимо, як наша команда з управління ризиками на основі ШІ використовує потоковий конвеєр для забезпечення реагування в режимі реального часу та розповімо, що відбувається за лаштунками.
Якщо ви не знайомі з машинним навчанням, рекомендуємо прочитати наступний розділ, щоб отримати загальне уявлення про деякі терміни, які ми будемо використовувати в цій статті.
Пакетна та потокова передача даних
Інженери машинного навчання зазвичай використовують два типи конвеєрів: пакетні та потокові. Обидва мають свої переваги та недоліки, залежно від того, чого вимагає ситуація.
Пакетні конвеєри, як випливає з назви, обробляють дані партіями. Інженери зазвичай використовують їх для обробки великих обсягів даних.
З іншого боку, потокові конвеєри обробляють дані в режимі реального часу в міру їх збору. Це робить їх ідеальним варіантом для ситуацій, які вимагають майже миттєвої реакції, наприклад, виявлення хакера до того, як він встигне зняти кошти з викраденого акаунту.
Зауважте, що обидва конвеєри однаково важливі. Потокові конвеєри чудово підходять для надання відповідей у режимі реального часу, тоді як пакетні конвеєри краще обробляють великі обсяги даних.
У випадку запобігання шахрайству нам слід надавати пріоритет даним у режимі реального часу, щоб уникнути ситуації, яка називається "застарілість характеристики", коли моделі машинного навчання стають застарілими або неточними.
Значення застарілості
Подібно до того, як люди можуть стати менш ефективними у виконанні завдань, якщо вони не залишатимуться в курсі найновішої інформації або технологій, моделі машинного навчання також можуть стати менш точними, якщо вони не будуть регулярно оновлюватися відповідно до ситуації.
Точно небажано, щоб модель, розроблена для запобігання шахрайству, застаріла. Наслідки варіюються від помилкового позначення моделлю правомірної транзакції як шахрайської до нездатності ідентифікувати скомпрометований акаунт. Тому ми використовуємо потоковий конвеєр, щоб забезпечити роботу моделей запобігання шахрайству з даними в режимі реального часу.
Обчислення для моделі із захопленням акаунту (ATO)
Візьмемо до прикладу нашу модель АТО, яку ми навчаємо виявляти акаунти, що були викрадені злочинцями зі зловмисними намірами. Однією з характеристик, яку вимірює ця модель, є кількість транзакцій, здійснених конкретним клієнтом за минулу хвилину.
Хакери, як правило, діють послідовно, здійснюючи велику кількість операцій, наприклад, зняття коштів, протягом короткого періоду часу. Наша система повинна якнайшвидше вирахувати цю характеристику у разі потенційних загроз. Це означає мінімізацію затримок між моментом, коли користувач виконує дію, і моментом, коли дані про його активність обробляються нашими моделями. Лише кілька секунд можуть вирішити, чи вдасться зупинити хакера, чи користувач втратить всі свої гроші.
Для отримання додаткової інформації про те, як застарілі характеристики впливають на продуктивність моделі, ви можете звернутися до цієї статті LinkedIn Engineering: Near real-time functions for near real-time personalization.
Роль пакетних обчислень
Зауважте, що значення показника "застарілості" може залежати від моделі або характеристики, що використовується. Наприклад, деякі характеристики є відносно стабільними. У випадку з АТО, згаданому вище, нам також потрібно було б отримати дані про зняття коштів користувачем за останні 30 днів, щоб розрахувати коефіцієнт на основі його останніх транзакцій.
У цьому випадку пакетні обчислення протягом більш тривалих періодів часу, таких як щоденні або щогодинні інтервали, є допустимими, попри більшу затримку, пов'язану з очікуванням надходження даних до сховищ даних і періодичним запуском пакетних завдань.
Баланс між актуальністю та затримкою
Зрештою, вибір між конвеєрними та потоковими конвеєрами слід робити, виходячи з конкретних вимог конкретного випадку використання та характеристик, що розглядаються. Ретельне врахування цих факторів дозволяє нам створювати ефективні системи запобігання шахрайству, які захищають наших користувачів.
Використання потокового конвеєра дозволяє нам надавати пріоритет актуальності над затримкою для характеристик, чутливих до часу. Діаграма вище ілюструє цю необхідність, адже кількість операцій для отримання характеристик має становити не дві, а три.
Ось чому конвеєр машинного навчання в режимі реального часу має вирішальне значення для повсякденної роботи нашої команди з управління ризиками.
Розбивка потокового конвеєра
Машинне навчання в реальному часі для команди Binance з управління ризиками на основі ШІ зазвичай складається з двох частин:
Обробка даних (верхня частина діаграми)
Обслуговування даних (нижня частина діаграми)
Обробка даних
Що стосується обробки даних, ми можемо розділити наш потоковий конвеєр (Flink Job) на три категорії залежно від їхніх обов'язків:
Потокові обчислення: розробка характеристик
Потокова передача: приймання характеристик
Потокове занурення: збагачення даних
Потокове обчислення
Компонент потокових обчислень конвеєра відповідає за розробку характеристик у режимі, близькому до реального часу, тобто за процес вилучення характеристик з необроблених даних.
Він попередньо обчислює характеристики, які наші моделі машинного навчання будуть використовувати для онлайн-прогнозування. Існує два типи методів обчислень для конвеєра потокових обчислень: на основі часу та на основі подій.
На основі часу. Підрахунок кількості транзакцій кожні 10 хвилин. Це призводить до деякої застарілості, але знижує затримку.
На основі подій. Обчислення характеристик на основі події, що надходить. Це знижує ймовірність застарілості, але дещо збільшує затримку.
Ми вважаємо за краще не використовувати обчислення в реальному часі настільки, наскільки це можливо, і ось чому:
Існує компроміс між затримкою та застарілістю. Обчислювальні характеристики в міру надходження онлайн-запитів обмежують обчислювальну логіку спрощеними підходами. Хоча цей метод знижує ймовірність застарілості, обчислення характеристик збільшує затримку прогнозування.
Незалежне масштабування є складним завданням, оскільки сервіси прогнозування та обчислень залежать один від одного.
Обчислення на вимогу на основі трафіку запитів створює непередбачуваний тиск масштабування.
Обчислення в реальному часі не пристосовані до наших рішень з моніторингу моделей (перекіс між навчанням та обслуговуванням) та моніторингу характеристик, оскільки характеристики не зберігаються в центральній базі даних, тобто в сховищі характеристик.
Потокова передача
Компонент потокової передачі відповідає за приймання характеристик в наше сховище характеристик з платформи машинного навчання Kafka в режимі, наближеному до реального часу. Сховища характеристик – це централізовані бази даних, в яких зберігаються часто використовувані характеристики. Вони відіграють важливу роль у конвеєрах машинного навчання. Ви можете дізнатися більше про них у наступних статтях: Детальніше про наше сховище характеристик машинного навчання та Використання MLOps для створення наскрізного конвеєра машинного навчання в реальному часі.
Потокове занурення
Компонент потокового занурення в основному відповідає за записування подій у реальному часі в певне місце призначення – наприклад, у високорозподілені файлові системи (HDFS), такі як S3, або інші зовнішні бази даних, такі як ElasticSearch, – залежно від вимог проєкту.
Для нашої команди з управління ризиками на основі ШІ, як правило, існує два шаблони збагачення даних, які можна застосувати до даних у реальному часі в Kafka залежно від варіанту використання:
Статичні дані. Наприклад, отримання списку популярних мейкерів, присутніх у S3 для бізнес-проєктів, пов'язаних з P2P, у Flink jobs. Довідкові дані є статичними і потребують оновлення не частіше одного разу на місяць.
Динамічні дані. Наприклад, курси обміну в реальному часі (BTC до USD) отримуються із зовнішніх баз даних, таких як Redis. Пошук по кожному запису забезпечує низьку затримку і високу точність у разі зміни довідкових даних.
Обслуговування даних
Компонент конвеєра, що обслуговує дані, відповідає за онлайн-прогнозування та пакетні обчислення.
Онлайн-прогнозування. Це відбувається, коли запити надходять через Decision Hub (внутрішній механізм правил нашої команди з управління ризиками). Потім відповідний сервіс звертається до сховища характеристик, щоб отримати характеристики й надіслати їх моделі машинного навчання для оцінювання. Наша команда з управління ризиками на основі ШІ має понад 20 моделей машинного навчання, призначених для обробки різних бізнес-вимог.
Пакетне обчислення. Хоча це може призвести до затримки до декількох днів, воно відіграє важливу роль, оскільки доповнює характеристики, що обчислюються в реальному часі.
Заключні думки
Важливо зазначити, що крипторинок працює 24/7, на відміну від традиційних фінансових ринків, які мають час відкриття та закриття. Щосекунди відбувається безперервний приплив нових даних (зняття коштів, депозити, угоди й т.д.), що вимагає від нас постійного пошуку зловмисників, які намагаються вкрасти кошти або особисту інформацію користувачів.
Наша команда з управління ризиками на основі ШІ невтомно працювала над розробкою та підтримкою складної системи штучного інтелекту, яка здатна ефективно виявляти підозрілу активність. Завдяки їхнім зусиллям ми можемо швидко працювати, щоб захистити скомпрометовані акаунти Binance від потенційних збитків або максимально зменшити шкоду.
Слідкуйте за подальшими новинами про наші зусилля в галузі машинного навчання або перегляньте деякі з наших попередніх статей нижче. Зацікавлені у кар'єрі в галузі машинного навчання в Binance? Перегляньте доступні ролі в Binance Engineering на нашій сторінці вакансій.
Повʼязані статті
Детальніше про наше сховище характеристик машинного навчання
Використання MLOps для створення наскрізного конвеєра машинного навчання в реальному часі
Практичний приклад розробки функцій для узгодженості продуктів та виявлення шахрайства
Стежте за нами в соцмережах Binance Ukraine:
Telegram канал | Telegram група | TikTok | Twitter | Facebook | Instagram | YouTube