Основные выводы

  • Binance использует модели машинного обучения для отслеживания подозрительной активности на платформе.

  • Проблема, известная как устаревшие функции, может негативно повлиять на производительность таких моделей, заставляя их делать неточные прогнозы или классификации.

  • Наш потоковый конвейер — или процесс непрерывной подачи в модель данных в реальном времени — состоит из двух частей: обработка данных и обслуживание данных.

  • Обработка данных далее делится на три категории: потоковые вычисления, прием и прием.

Узнайте, как мы используем машинное обучение для защиты экосистемы Binance.

Наша команда по управлению рисками, состоящая из инженеров по машинному обучению и специалистов по обработке данных, круглосуточно работает над борьбой с мошенничеством и защитой пользователей Binance. Для достижения этой цели они используют решения на основе искусственного интеллекта, которые могут выявлять и реагировать на потенциальные угрозы, такие как одноранговое (P2P) мошенничество, кража платежных данных и атаки с захватом учетных записей (ATO) и многие другие.

В этой статье мы объясним, как наша команда по управлению рисками использует потоковый конвейер для обеспечения ответов в реальном времени в дополнение к тому, что происходит за кулисами.

Если вы не знакомы с машинным обучением, мы рекомендуем прочитать следующий раздел, чтобы получить базовый обзор некоторых терминов, которые мы будем использовать в этой статье.

Пакетная и потоковая передача

Инженеры по машинному обучению обычно используют два типа конвейеров: пакетный и потоковый. Оба имеют свои плюсы и минусы, в зависимости от того, чего требует ситуация.

Пакетные конвейеры, как следует из названия, обрабатывают данные пакетно. Инженеры обычно используют их для обработки больших объемов данных.

С другой стороны, потоковые конвейеры обрабатывают данные в режиме реального времени по мере их сбора. Это делает их идеальными для ситуаций, требующих почти мгновенного реагирования; например, обнаружение хакера до того, как он сможет вывести средства с украденного счета.

Обратите внимание, что оба конвейера одинаково важны. Потоковые конвейеры отлично подходят для предоставления ответов в режиме реального времени, а пакетные конвейеры лучше справляются с обработкой больших объемов данных.

В случае предотвращения мошенничества нам необходимо уделять приоритетное внимание данным в реальном времени, чтобы избежать ситуации, называемой «устареванием модели», которая означает, что модели машинного обучения устаревают или становятся неточными.

Значение устаревания

Точно так же, как люди могут стать менее эффективными в выполнении задачи, если они не будут в курсе новейшей информации или методов, модели машинного обучения также могут стать менее точными, если они не будут регулярно обновляться в зависимости от ситуации.

Единственное, что вам не нужно, — это модель, предназначенная для предотвращения устаревания мошенничества. Последствия варьируются от модели, неправильно маркирующей законную транзакцию как мошенническую, или неспособности идентифицировать скомпрометированную учетную запись. Следовательно, мы используем потоковый конвейер, чтобы гарантировать, что модели предотвращения мошенничества работают с данными в реальном времени.

Вычисления для модели захвата учетной записи (ATO)

Давайте возьмем пример из нашей модели ATO, которую мы обучаем выявлять учетные записи, которые преступники захватили со злым умыслом. Одной из особенностей измерения этой модели является количество транзакций, совершенных конкретным клиентом за последнюю минуту.

Хакеры, как правило, следуют последовательной схеме, выполняя большое количество операций, таких как вывод средств, в течение короткого периода времени. Наша система должна как можно быстрее просчитать эту особенность в случае потенциальных угроз. Это означает минимизацию задержек между тем, когда пользователь выполняет действие, и тем, когда данные об активности этого пользователя обрабатываются нашими моделями. Всего несколько секунд могут стать решающим фактором между остановкой хакера и потерей пользователем всех своих денег.

Для получения дополнительной информации о том, как отложенные функции влияют на производительность модели, вы можете обратиться к этой статье LinkedIn Engineering: Функции, работающие почти в реальном времени, для персонализации, работающей почти в реальном времени.

Роль пакетных вычислений

Обратите внимание, что важность устаревания функций может зависеть от используемой модели или функции. Некоторые функции, например, относительно стабильны. В упомянутом выше случае ATO нам также потребуется получить данные о снятии средств пользователем за последние 30 дней, чтобы рассчитать коэффициент на основе его последних транзакций.

В этом случае пакетные вычисления в течение более длительных периодов времени, таких как ежедневные или ежечасные интервалы, приемлемы, несмотря на более высокую степень устаревания, возникающую из-за ожидания поступления данных в хранилища данных и периодического выполнения пакетных заданий.

Баланс между свежестью и задержкой

В конечном итоге выбор между пакетным и потоковым конвейерами следует делать на основе конкретных требований варианта использования и рассматриваемых функций. Тщательный учет этих факторов позволяет нам создавать эффективные системы предотвращения мошенничества, которые защищают наших пользователей.

Использование потокового конвейера позволяет нам отдавать приоритет обновлению над задержкой для функций, чувствительных ко времени. Диаграмма выше иллюстрирует эту необходимость, поскольку количество операций для получения признаков должно быть три вместо двух.

Вот почему конвейер машинного обучения в реальном времени имеет решающее значение для повседневной работы нашей команды по управлению рисками.

Разрушение потокового конвейера

Машинное обучение в реальном времени для команды Binance по искусственному интеллекту в основном состоит из двух частей:

  • Обработка данных (верхняя часть диаграммы)

  • Обслуживание данных (нижняя часть диаграммы)

Обработка данных

Что касается обработки данных, мы можем разделить наш потоковый конвейер (Flink Job) на три категории в зависимости от их обязанностей:

  • Потоковые вычисления: разработка функций

  • Прием потока: прием функций

  • Потоковый сток: обогащение данных

Потоковые вычисления

Компонент потоковых вычислений конвейера отвечает за разработку функций практически в реальном времени — процесс извлечения функций из необработанных данных.

Он предварительно вычисляет функции, которые наши модели машинного обучения будут использовать для онлайн-прогнозирования. Существует два типа методов вычислений для конвейера потоковых вычислений: на основе времени и на основе событий.

  1. На основе времени. Подсчет количества транзакций каждые 10 минут. Это вносит некоторое устаревание, но снижает задержку.

  2. Основанный на событиях. Вычисление функций на основе прибывающего события. Это снижает устаревание, но немного увеличивает задержку.

Мы предпочитаем не использовать вычисления в реальном времени в максимально возможной степени, и вот почему:

  1. Существует компромисс между задержкой и устареванием. Вычислительные функции по мере поступления онлайн-запросов ограничивают вычислительную логику упрощенными подходами. Хотя этот метод снижает устаревание, вычисление признаков увеличивает задержку прогнозирования.

  2. Независимое масштабирование является сложной задачей, поскольку службы прогнозирования и вычисления зависят друг от друга.

  3. Вычисления по требованию на основе трафика запросов создают непредсказуемое давление масштабирования.

  4. Вычисления в реальном времени не адаптируются к нашим решениям для мониторинга моделей (перекос обучения и обслуживания) и мониторинга функций, поскольку функции не хранятся в центральной базе данных, то есть в хранилище функций.

Прием потока

Компонент приема потока отвечает за прием функций практически в реальном времени в наше хранилище функций с платформы машинного обучения Kafka. Хранилища функций — это централизованные базы данных, в которых хранятся часто используемые функции. Они играют важную роль в конвейерах машинного обучения. Вы можете узнать больше о них в следующих статьях: «Более пристальный взгляд на наш магазин функций машинного обучения» и «Использование MLOps для создания сквозного конвейера машинного обучения в реальном времени».

Поток стока

Компонент приемника потока в основном отвечает за передачу событий в реальном времени в определенное место назначения, например, в высокораспределенные файловые системы (HDFS), такие как S3, или другие внешние базы данных, такие как ElasticSearch, в зависимости от требований проекта.

Наша команда по управлению рисками обычно использует два шаблона обогащения данных, которые можно применять к данным в реальном времени в Kafka в зависимости от варианта использования:

  1. Статические данные. Например, получение списка популярных производителей, сидящих в S3 для бизнес-проектов, связанных с P2P, в Flink Jobs. Справочные данные статичны и требуют обновления не чаще одного раза в месяц.

  2. Динамические данные. Например, обменные курсы BTC к доллару США в реальном времени получаются из внешних баз данных, таких как Redis. Поиск по каждой записи обеспечивает низкую задержку и высокую точность в случае изменения справочных данных.

Обслуживание данных

Компонент конвейера, обслуживающий данные, отвечает за онлайн-прогнозирование и пакетные вычисления.

  1. Онлайн предсказание. Это происходит, когда запросы поступают через Decision Hub (внутренний механизм правил нашей группы управления рисками). Затем соответствующая служба вызовет хранилище функций, чтобы получить функции и отправить их в модель машинного обучения для оценки. Наша команда Risk AI имеет более 20 моделей машинного обучения, предназначенных для удовлетворения различных бизнес-требований.

  2. Пакетные вычисления. Хотя это может привести к задержке до нескольких дней, оно играет здесь важную роль, поскольку дополняет функции, вычисляемые в реальном времени.

Заключительные мысли

Важно отметить, что рынок криптовалют работает круглосуточно и без выходных, в отличие от традиционных финансовых рынков, у которых есть время открытия и закрытия. Каждую секунду происходит непрерывный приток новых данных (выводы средств, депозиты, обмены и т. д.), что требует от нас быть начеку злоумышленников, пытающихся украсть средства пользователей или личную информацию.

Наша команда по управлению рисками неустанно работала над разработкой и поддержкой сложной системы искусственного интеллекта, которая может эффективно выявлять подозрительную активность. Благодаря их усилиям мы можем быстро защитить скомпрометированные аккаунты Binance от потенциальных потерь или максимально снизить ущерб.

Оставайтесь с нами, чтобы узнать больше о наших усилиях в области машинного обучения, или ознакомьтесь с некоторыми из наших предыдущих статей ниже. Заинтересованы в карьере машинного обучения в Binance? Посетите Binance Engineering на нашей странице вакансий, чтобы найти открытые объявления о вакансиях.

Дальнейшее чтение

  • Более пристальный взгляд на наш магазин функций машинного обучения

  • Использование MLOps для создания сквозного конвейера машинного обучения в реальном времени

  • Пример разработки функций в области согласованности и обнаружения мошенничества