Современные банки накапливают и агрегируют данные о пользователях и своем взаимодействии с ними. Это помогает им лучше понимать потребности отдельного клиента и его склонность к открытию того или иного банковского продукта. А с помощью современных технологий коммуникации банк может провзаимодействовать с каждым клиентом точечно, направив ему персональное предложение. Как машинное обучение помогает решать такие задачи, поговорим в данной статье.
Растущее количество и сложность кредитных продуктов приводят к необходимости решать сложную задачу оптимального выбора между большим количеством предложений (и для банка, и для клиента!). Появляется необходимость в более тонких настройках, которые бы, с одной стороны, помогли максимально заработать банку при контролируемом уровне клиентской задолженности, с другой — дали клиенту положительный опыт выбора.
Чтобы добиться этого и сконструировать максимально подходящее для клиента предложение, нужен переход от так называемой предиктивной аналитики к предписательной. Другими словами, вместо прогноза одной ключевой величины, конверсии или вероятности дефолта, нужно настроить эффективную работу целого каскада прогнозов.
Для DS на практике это, как правило, задачи оптимизации. Верхнеуровнево для постановки задачи оптимизации необходимо задать следующие сущности:
В зависимости от потребности бизнеса и механики продукта, для решения задачи NBA/NBO мы можем выбрать разные оптимизационные фреймворки.
Далее, на примере решения конкретных индустриальных задач, мы разберем разные подходы и обсудим тонкости их настройки для кредитных продуктов.
Механика офферинга: банк зарабатывает на проценте от выдач кредитов и на стоимости обслуживания карт. Этими параметрами он может управлять.
KPI по продукту может быть различным, но часто включает в себя компоненты, на которые влияют регулируемые банком параметры, например:
Отсюда следует, что управлять стоимостью продукта можно, основываясь как на размере убытка, так и на склонности клиента к покупке. Для этого используем два фреймворка: VBP и RBP.
Далее подробно разберем первый фреймворк. Покажем, как с помощью обученной модели рассчитать влияние стоимости продукта на готовность клиента его приобрести.
Часто KPI — это совокупность доходности и количества продаж. В таком случае нужно максимизировать продажи и, в то же время, учесть ограничение на снижение доходности.
Логично предположить: чем больше клиентов получат скидку на обслуживание карты, тем больше покупок они сделают. Однако не стоит забывать, что у разных клиентов разная склонность к дефолту. Поэтому если банк выдает стандартное предложение для всех, то условия для менее склонных к дефолту потенциально ухудшаются. Это связано с тем, что в предложение дополнительно закладывается премия за риск (подробнее про структуру стоимости см. в статье ML и DS оттенки кредитного риск-менеджмента).
В противном случае нужно отсекать дополнительно клиентов по PD (прогноз вероятности дефолта) скору. Альтернативным способом может быть отсечка по прибыльности, учитывающая и конверсию, и ожидаемые потери по клиенту. Тогда мы получаем win-win ситуацию, когда банк может сформулировать предложение для большего числа клиентов за счет привлечения более рискованных и «эластичных» клиентов — тех, кому можно заложить дополнительную премию за риск, зная, что это не повлияет драматическим образом на привлекательность предложения для клиента.
Однако сначала важно научиться прогнозировать, насколько вообще тот или иной клиент склонен взять карту при разных стоимостях обслуживания.
Для этого построим две гипотезы. Сначала рассмотрим ситуации, когда размер ГО влияет на покупку банковской карты, затем — когда стоимость обслуживания не принципиальна и не является важным критерием при выборе кредитной карты.
Чтобы подтвердить первую гипотезу, можно провести A/B тест. Для этого нужно:
Для простоты предположим, что мы можем предложить клиентам одну из двух стоимостей обслуживания карты. Вот как это будет выглядеть:
Если с уменьшением стоимости отклик растет и
Теперь проверим вторую гипотезу. Ее суть в том, что есть определенное множество клиентов, для которых стоимость обслуживания кредитной карты не принципиальна. Такие ситуации возможны, когда срочно нужны деньги на крупную покупку. Наша задача — найти таких клиентов.
Для этого построим модель бинарной классификации, где в качестве прогнозируемой переменной выступит отклик на продукт. При этом вероятность отклика для каждого клиента будет прогнозироваться при определенной стоимости ГО для карты.
где
Тогда в качестве целевой переменной будем использовать 0, если клиент не откликнулся на продукт, и 1 — если откликнулся.
Обучив модель, имеем:
Обученную модель можно рассматривать как функцию k+1 переменных, где:
Эта функция возвращает некоторый скор S, который можно трактовать как вероятность того, что конкретный клиент откликнется на продукт с конкретной стоимостью обслуживания (предполагается, что модель откалибрована):
Фиксируя клиента (его признаковое описание) и варьируя значения Service Price
получаем две вероятности отклика данного клиента на различные продуктовые условия
Эту информацию можно заложить в модель на этапе обучения для улучшения ее прогнозных характеристик: в библиотеках градиентного бустинга lightgbm и xgboost для этого предусмотрен специальный параметр monotone constraints.
Однако у разных клиентов скорость роста будет разной. Поэтому наша задача — отыскать клиентов, у которых при уменьшении стоимости обслуживания рост скора будет значительным, и предложить им более дешевую карту.
Нужно учесть, что у бизнеса могут быть определенные ограничения. Например, ограничение на выдачу дешевых карт или ограничение на ожидаемую доходность. Рассмотрим каждое из них более подробно. А также разберем несколько подходов настройки для кредитно-платежных продуктов.
Допустим, у банка есть ограничение K на количество выдач карт с самой низкой стоимостью обслуживания N1
Для простоты предположим, что нужно для всех доступных клиентов M подобрать одну из двух стоимостей обслуживания N1 или N2 (N1 < N2). Для каждого j-го клиента имеем два скора S1j S2j (S1j > S2j)
Есть несколько подходов для решения данной задачи.
Разобьем клиентов на бакеты bucket2 по скору S2j и зафиксируем получившиеся границы бакетов. Затем посмотрим, в границы какого бакета попадает скор S1j
Исходя из этого, определим bucket2 для каждого клиента. Т.к. S1 > S2, то bucket1 ≥ bucket2
у клиентов, экспертно принимаем решение, кому из них предложить более дешевую карту. Например, при росте бакета на 2 и более назначаем клиентам стоимость обслуживания N1 спускаясь с верхних бакетов в нижние, пока не превысим K.
Более простой подход заключается в том, чтобы отсортировать клиентов по дельте скора
а затем для топ P % клиентов выбрать более дешевую стоимость
где P подбирается в соответствии с ограничениями бизнеса (P = 100% * K/M)
Другими словами, подобрать более дешевую карту тем клиентам, у которых при снижении стоимости обслуживания сильнее всего растет скор.
Суть данного подход состоит в том, чтобы напрямую максимизировать отклик при ограничениях на количество выдач карт со стоимостью N1, решая задачу оптимизации вида:
Задача этого подхода — максимизировать ожидаемую доходность. Предположим, что для каждого j-го клиента и i-го продуктового условия нам известна доходность карты Dij,
значения которой получаем с помощью прогнозных моделей или оцениваем каким-то другим способом. При выборе карты с более низкой стоимостью обслуживания
скор клиента растет, но одновременно с этим падает доходность карты.
Для каждого клиента можно оценить относительный рост скора и относительное падение доходности при выборе более дешевой карты:
тогда банку выгоднее предложить ему карту со стоимостью N1,
так как рост скора у такого клиента перебивает падение доходности. Так, ожидаемая доходность карты со стоимостью N1 будет выше, чем ожидаемая доходность у карты со стоимостью N2 (S1jD1j > S2jD2j)
Тогда при ограничении на количество выдач карт со стоимостью обслуживания
можно оптимизировать суммарную доходность, решая задачу оптимизации вида
Допустим, в качестве ограничений от бизнеса стоит требование гарантии определенного уровня доходности при подборе стоимости обслуживания карт. Тогда для определения стоимости обслуживания конкретного клиента можно попытаться максимизировать отклик при ограничении снизу на доходность.
Где D0 — нижний порог допустимой доходности. В качестве
может выступать оцененная суммарная величина доходности от продажи всех карт в случае, если бы всем клиентам назначалась обычная стоимость годового обслуживания.
Мы разобрали подход VBP применительно к задаче подбора стоимости обслуживания банковской карты. Рассказали, как с его помощью оптимизировать и персонализировать предложение по разным параметрам кредитного продукта и/или каналу коммуникации, что позволяет существенно увеличить охват клиентской базы и прибыль с заявки. А также показали, как эту задачу можно решить с помощью методов машинного обучения и математической оптимизации с учетом различных бизнес ограничений.