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

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

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

Пегас: летающие на крыльях… лошадей

Команда разработчиков Postmates Risk Team приступила к созданию сервиса, который позволил бы нам отслеживать и принимать решения по транзакциям в режиме реального времени. Базовое приложение (также известное как «монолит») и другие службы будут публиковать события в потоке событий по мере того, как на платформе происходят разные вещи. Микрослужба обнаружения рисков с кодовым названием Pegasus будет обрабатывать события, относящиеся к оценке рисков. Данные, связанные с этими событиями, пройдут через серию преобразований и в конечном итоге будут переданы в то, что мы называем «бизнес-правилами», которые принимают преобразованные данные в качестве входных и принимают решения в качестве выходных.

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

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

Учет риска с факторами риска

На языке Pegasus все преобразования данных о событиях производят то, что мы называем «факторами риска». Эти факторы риска являются прямым вкладом в уровень бизнес-правил.

Некоторые факторы риска можно анализировать непосредственно из данных о событии, практически не требуя обработки. «Стоимость заказа», например, может быть передана непосредственно в бизнес-правило (см. Пример на рис. 2 ниже).

Другие факторы риска вычисляются Pegasus во время выполнения с использованием данных, доступных по событию. Например, факторы риска, такие как «общее количество рабочих мест» и «общие расходы», вычисляются с использованием данных идентификатора клиента из события.

Прогнозы как услуга

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

Например, для такого фактора риска, как Pr(fraud | delivery_location), Pegasus будет запрашивать службу прогнозирования с доставкой_location из события задания. Служба прогнозирования будет возвращать значение в баллах условного распределения вероятностей в качестве фактора риска, который затем может быть передан в бизнес-правило.

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

Pegasus запросит службу прогнозирования с вектором признаков (x1, x2, …, xn) и получит оценку модели в виде другого фактора риска.

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

Решения, решения, решения

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

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

Самый серьезный уровень риска среди вердиктов бизнес-правил будет считаться окончательным уровнем риска работы.

Решения как услуга: помимо мошенничества с потребительскими кредитными картами

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

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

Заключение

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

Если вас интересуют проблемы, которые мы решаем, или системы, которые мы создаем, не стесняйтесь писать по электронной почте [email protected] или проверять открытые вакансии на Риск-команда здесь:)