Ответ вслух Senior ML в проде спрашивают часто обновлено

ML system design: антифрод платежей

Вопрос

Спроектируйте систему обнаружения мошеннических платежей для банка: решение по платежу нужно за 100 мс.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

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

Что должно прозвучать в ответе

  • Требования: латентность, цена пропуска и ложной блокировки, действия (блок, доп. проверка, разбор аналитиком)

  • Данные и метки: задержка меток (чарджбэки), selective labels, дисбаланс

  • Признаки: профиль клиента батчем, скоростные признаки в реальном времени, устройство и граф связей

  • Модель: бустинг, правила как первая линия, пороги по стоимости, калибровка

  • Валидация по времени, метрики recall при фиксированной доле блокировок, PR-AUC

  • Прод: онлайн-инференс, feature store, мониторинг дрейфа, holdout для меток, быстрое переобучение

Что могут спросить следом

  • Как учесть, что мошенники адаптируются?
  • Что делать, если сервис модели не ответил за 100 мс?

Разбор

Начинаю с требований: решение синхронно за 100 мс, действия градуированы: пропустить, запросить дополнительную проверку, заблокировать и отправить аналитику. Цена пропуска это сумма платежа, цена ложной блокировки это недовольство клиента и нагрузка на поддержку. Метки приходят с задержкой (чарджбэки через недели), мошенничества доли процента, а заблокированные платежи не получают метку, поэтому держу маленький случайный holdout без блокировок. Признаки: профиль клиента, посчитанный батчем (средний чек, типичные мерчанты, география), скоростные признаки в реальном времени из стрима (число платежей за 10 минут, новые устройства, смена IP), признаки устройства, граф связей между картами и устройствами. Первая линия это правила на явные паттерны, затем градиентный бустинг, он быстрый на инференсе. Валидирую по времени, смотрю recall при фиксированной доле блокировок и PR-AUC, порог выбираю по ожидаемым потерям. В проде онлайн-сервис с feature store, фолбэк на правила при таймауте, мониторинг дрейфа признаков и доли блокировок, частое переобучение, потому что мошенники адаптируются.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.