Ответ
В моем последнем проекте по борьбе с мошенничеством задача была поставлена через бизнес-проблему: "Снизить финансовые потери от фрода на 15% в следующем квартале". Мы совместно с продукт-менеджером и бизнес-аналитиком перевели это в технические требования.
Конкретная постановка задачи:
- ML задача: Бинарная классификация (мошенническая/легитимная транзакция).
- Ключевая метрика: Precision @ 90% Recall. Мы фокусировались на минимизации ложных срабатываний (чтобы не блокировать легальных клиентов), обеспечивая при этом высокий уровень обнаружения.
- Ограничения: Время инференса модели < 50 мс для интеграции в реальный платежный пайплайн.
- Бейзлайн: Существующее правило-основание на сумме транзакции и стране получателя.
Перед стартом мы зафиксировали это в документе, определив edge-кейсы (например, как обрабатывать транзакции с новых устройств) и процесс валидации на исторических данных.
Ответ 18+ 🔞
А, ну это классика, ёпта! Сидишь такой, пьешь кофе, а тебе начальство такое: «Снизь нам потери от фрода на 15%, а то денег нет». И смотрит так, будто ты должен щелкнуть пальцами и всё готово. Ядрёна вошь!
Ну, ладно. Собрались мы с продукт-менеджером и аналитиком — хитрая жопа, кстати, мужик, всё просчитывает. И начали переводить этот бизнес-бред в нормальные человеческие, а главное — технические требования. Чтобы потом не вышло, что мы тут нейросеть размером с Годзиллу обучаем, а она в продакшене за 2 секунды думает. Клиент просто сбежит, пока она результат выдаст.
Вот во что это вылилось, конкретно:
- Задача по ML: Всё просто — бинарная классификация. Либо транзакция мошенническая, либо нормальная. Никаких полупидоров.
- Главная метрика: Тут интересно. Нам сказали — Precision при Recall в 90%. А на русском это значит: «Лови, сука, 90% всего мошенничества, но при этом не блокируй почём зря наших легальных клиентов, а то они нам устроят волнение ебать». Потому что если каждый второй платёж ложный — доверия ебать ноль у пользователей. Нужно найти баланс.
- Жёсткие ограничения: Модель должна решать задачу быстрее 50 миллисекунд. Не секунд, а миллисекунд! Потому что она будет встроена прямо в поток платежей. Пока человек жмёт «оплатить», она уже должна сказать — стоп или ок. Если медленная — вся система встанет колом, и мы накроемся медным тазом.
- Бейзлайн (от чего пляшем): А от плясали мы от старой, дубовой системы на правилах. Типа «если сумма больше Х и страна получателя — Нигерия, то стоп». Ну, вы поняли, уровень.
Самое главное — мы это всё не на салфетке нарисовали, а зафиксировали в документе. И сразу обсудили граничные случаи, эти ваши edge-кейсы. Ну, например: как обрабатывать транзакцию с нового телефона или браузера? По старой логике — сразу подозрительно. А если человек просто купил новый айфон? Его сразу в бан? Подозрение ебать чувствую, но надо умнее.
И процесс валидации на исторических данных тоже прописали. Чтобы потом не было: «О, ваша модель охуенная!» — а на реальных данных она нихуя не ловит, потому что мы её на кривых данных проверили. В общем, подготовились, бля, как космонавты к полёту.