Pull to refresh

DS, ML и люди, которые этим занимаются. Взгляд Сбербанка

Reading time 12 min
Views 50K
Через банк проходят сотни миллионов транзакций ежедневно, поэтому на серверах накапливаются большие данные: сведения о самих клиентах, паттерны их покупок, требования в целом. По сути, банки превращаются в IT-компании так, как это произошло с телеком-операторами. Они предоставляют все больше цифровых сервисов и услуг, а собираемые ими данные и извлекаемая из них информация активно используются в создании новых сервисов.

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

Современные банки не только превосходно понимают, чем живут их клиенты, но и могут моделировать, что может произойти с ними: будь то социальная группа в конкретном городе, отдельная индустрия или страна в целом. Это помогает банкам управлять своими рисками и рисками своих клиентов.
С развитием data science (DS) в финансовых и IT-компаниях стало популярным централизовать R&D отделы и data science в том числе. Централизованная DS-практика внутри компании позволяет более продуктивно создавать новые информационные продукты, при этом не теряя и не отставая в технологиях по всему перечню связанных с анализом данных задач.

Осталось самое важное — собрать DS-команду. Под data scientist понимается большое количество ролей — от бизнес-эксперта, который хорошо разбирается в переводе задач бизнеса на язык задач анализа, до разработчика алгоритмов в продакшен системах, включая также визуализаторов, аналитиков, математиков и промежуточные роли. Важно соблюдать баланс между решением реальных бизнес-задач и экспериментами с последними передовыми технологиями. При этом невозможно создавать передовые сервисы, если загнать аналитиков в сверх жесткие рамки и не давать им развиваться.

Банкам приходится конкурировать с другими IT-компаниями за таланты. Специалисты в свою очередь пока не рассматривают банки как высокотехнологичные компании, в которых они могли бы проявить себя, использовать передовые технологии и решать интересные задачи. Чаще всего банки ассоциируются у таких людей с мощными бюрократическими машинами и офисными костюмами, но никак не с agile R&D командами и разработкой, где можно активно публиковать исследования и обмениваться опытом с ведущими специалистами на международных конференциях.

А банку есть что рассказать и показать...
Кейсы применения Machine Learning от Сбербанка
Кейс 1. Генерация на основе анализа карточных транзакций клиентов
Банк вплотную подошел к проблеме детектирования и последующего прогноза паттернов поведения владельцев карт. Анализируя активность кардхолдеров, мы эти паттерны научились определять.

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

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

На рисунке мы видим три кейса: покупка авто, ремонт в квартире/покупка мебели и затраты на лечение. Особенно ценно, если от клиента возможна обратная связь по предлагаемым ему продуктам. Поэтому необходимо делать модели, способные учитывать эту обратную связь. Во многом это тот же принцип, что лежит в основе моделей reinforcement learning, которые мы сейчас начинаем разрабатывать.
Суть. Сначала определяли некий триггер: событие уже произошло (транзакция была совершена). Клиент потратил деньги на обучение, лечение: может получить налоговый вычет. Купил квартиру, взял в ипотеку: предложения о ремонте.

Второй класс задач – предиктивные. Использовался метод рекуррентных нейронных сетей. У клиента большие накопления, то есть он, вероятно, планирует совершить крупную покупку: купить квартиру или машину.
Reinforcement learning или обучение с подкреплением, которое сейчас развивают, в том числе, OpenAI и DeepMind – это предвестник ИИ, каким его хотят видеть. В систему заранее не закладывают какой-либо модели мира, и о нем система фактически ничего не знает. Она начинает взаимодействовать с миром, получать обратную связь, так называемые reward'ы, после чего корректирует свое поведение на их основании. В случае с банковскими продуктами reward – это, например, то, насколько интересным или неинтересным для клиентов оказывается то или иное предложение банка.


Используя методы с определенными свойствами, обеспечивающими применение reinforcement learning, мы можем адаптировать эти алгоритмы в режиме реального времени. Из новых подходов можно ещё отметить, что буквально недавно в Nature выходила статья того же DeepMind, где они рассказывают о том, как в нейросеть внедрили элементы машины Тьюринга. В результате нейросеть получила возможность обладать памятью, которой нейросетям на данном этапе не хватает.
Кейс 2. Оптимизация воронки продаж
В этом кейсе мы анализируем транзакционную активность: ищем кластеры клиентов с определенными паттернами поведения. Но в этом случае не связываем их с предсказанием каких-либо событий. Например, можно найти клиентов, которые часто совершают перелеты, поездки за границу и часто конвертируют валюты. Исходя из этого, мы формируем предложения таким клиентам.
На слайдах показано, какие паттерны мы можем находить и какие продукты в этом случае можем предлагать. В целом понятная история – здесь предполагаются определенные методы, связанные с кластеризацией. Проекция данных, например.

Задача решалась с помощью рекуррентных нейронных сетей. Такой выбор обоснован несколькими факторами. Параметры нейросети настраиваются с помощью модификаций метода стохастического градиентного спуска. Градиенты вычисляются по минибатчу - небольшому подмножеству объектов. Чтобы избежать ситуации переобучения, когда алгоритм хорошо работает на обучающих данных и плохо на тестовых, используется техника dropout. Транзакции были сгруппированы по пользователям и для каждого пользователя отсортированы по времени. Транзакций, для которых время неизвестно, обнаружено очень мало (несколько десятков), поэтому они были исключены из рассмотрения. В итоге данные были представлены в виде набора последовательностей категорий, по одной последовательности на каждого пользователя. Слишком короткие последовательности (длина меньше 110) были удалены из набора данных. Обучение рекуррентной сети производилось на языке программирования Python3.4 с применением библиотек numpy, theano, lasagne. Для вычисления контроля качества использовались средства модуля sklearn.

Для выделения шаблонов трат клиентов был использован метод LDA. Цель LargeVis визуализации – отобразить пользователей с близкими профилями, так чтобы результирующие точки, соответствующие таким пользователям находились близко друг к другу, и наоборот, пользователей со значительно отличающимися профилями разместить дальше друг от друга. Исходя из этого соображения для изучения полученного отображения была реализована программа, позволяющая для любой точки плоскости выделить K ближайших точек, соответствующих клиентам. После чего по выбранным клиентом вычислялось среднее значение LDA-профиля, то есть для каждой темы было посчитано среднее проявление данной темы среди выбранных клиентов. Полученные усредненные профили показаны на следующем рисунке. Кроме усредненного профиля на гистограмме отображены стандартные отклонения проявления тем от среднего значения.
Как видно, удалось найти области, в которых собраны как клиенты, у которых проявлена только одна тема, так и клиенты, у которых сильно выражены две и более тем, которые проявляются в определенных пропорциях между собой. Кроме того, в некоторых случаях алгоритм разделяет кластеры с клиентами, имеющими сильно схожие профили на два или более отделенных друг от друга кластеров. Это связано с тем, что построение LargeVis основано на приблизительном поиске ближайших соседей, которое позволяет существенно ускорить время работы. Полученная визуализация позволяет исследовать структуру LDA профилей.
Кейс 3. Оптимизация наличного денежного обращения
Интересные результаты были получены в рамках проекта по оптимизации затрат Банка на управление наличным денежным обращением. Задача управления запасами наличности в кассово-инкассационных центрах (КИЦ) Банка имеет высокую важность для Банка. Сбербанк обладает широкой сетью КИЦ по всей стране – это кластер, куда привозят всю денежную наличность ночью, пересчитывают её и утром развозят по банкоматам, отделениям и корпоративным клиентам. Основная роль кассово-инкассационных центров – обеспечение достаточного запаса наличных денежных средств для удовлетворения потребностей всех клиентов в зоне действия каждого Центра в каждый день. С одной стороны, Банк обязан удовлетворять потребности всех своих клиентов. С другой стороны, он не должен создавать излишние запасы, так как невостребованные остатки фондируются. Важно, чтобы деньги не лежали без дела в банкоматах, а вместо этого, например, мы могли бы разместить их на краткосрочном депозите. При этом мы стремимся избежать репутационных потерь, когда деньги заканчиваются раньше, чем планировалось, банкомат перестает работать, а клиент остается недовольным.
Таким образом, задача распадается на две части. В первую очередь требуется спрогнозировать ожидаемые входящие и исходящие потоки наличности для каждого КИЦ в пределах заданного горизонта времени. При этом прогнозирование производится в разрезе валют, номиналов, источников поступления или направления расходования средств. Это приводит к одновременному построению прогнозов по десяткам тысяч временных рядов. Ввиду того, что очень важно получать точные прогнозы на каждый конкретный день, прогнозные модели должны учитывать графики работы КИЦ, а также особые дни, характерные для каждого Центра. По результатам построения прогнозов определяются Центры, требующие подкрепления, и Центры, в которых ожидается избыток наличности. Поэтому второй частью алгоритма является задача на графах – построение оптимального плана перераспределения (инкассации) наличности между КИЦ Сбербанка с учётом графа КИЦ и возможных маршрутов между ними. При этом при оптимизации учитываются стоимости и временные затраты для каждого маршрута.

Ожидается, что эта оптимизация поможет сократить издержки на управление наличным денежным обращением на величину до 10%.
Кейс 4. Моделирование вероятности дефолта для малого бизнеса в режиме реального времени
Мы обратили особенное внимание на представителей малого бизнеса, активно обменивающихся платежами. И при работе с ними попробовали отказаться от классического кредитного скоринга, от анализа финансовой отчетности и проведения качественной экспертизы рисков относительно репутации бенефициара, менеджеров и т.д. Вместо этого мы начали использовать агрегированную метрику, опираясь исключительно на транзакции, – по сути, делать скоринг, на основе данных в распоряжении банка. Основа анализа транзакций ЮЛ – текстовой поле "Назначение платежа", которое заполняет бухгалтер при осуществлении проводок. С помощью этого поля можно отличить, например, операции по выплате зарплаты, уплате налогов от оплаты товаров и услуг. Для разметки выборки использовался CountVectorizer из sklearn.feature_extraction.text. Дальнейший анализ осуществлялся с помощью randomforest и логистической регрессии с регуляризацией (как L1, так и L2). Качество моделей, полученных этими способами отличалось мало, поэтому предпочтение было отдано последнему - более интерпретируемому.
В результате выяснилось, что модель, базирующаяся на кредитном скоринге, ранжирующем клиентов по вероятности дефолта, практически ничем не отличается по количественной метрике точности от классических моделей. Gini у нее практически такой же на уровне 60-65%. Но если собственную информацию банка обогатить внешними данными, скажем, из соцсетей и использовать их для ранжирования, то можно дополнительно повысить точность.

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

Такую модель сейчас можно использовать только для формирования перечня предодобренных предложений. Со временем, если мы увидим, что качество потока сохранялось на текущем или более высоком уровне, а модель покажет более предсказательную точность, то ее можно будет использовать и в других случаях.
Кейс 5. Natural Language Processing алгоритмы для анализа и генерации исковых заявлений
В рамках применения инструментов работы с текстом или Natural Language Processing мы столкнулись с тем, что Сбербанк тратит много ресурсов на анализ исковых заявлений и подготовку ответной части. При этомазбор большей части этой информации можно автоматизировать. Не использовать труд людей, которые вбивают информацию о паспортных данных в резолютивной части искового заявления, а можно все это: дату рождения, паспортные данные, реквизиты и резолютивную часть экстрагировать. На втором этапе, для подготовки ответной части исков, в качестве оптимизации мы предложили использовать определенный шаблон.

Методы: Для задач автоматизации документооборота используются традиционные методы Natural Language Processing : морфологический и синтаксический анализ, методы извлечения сущностей (Named Entities), для автоматического разбора текста используется GLR парсер. Для задач генерации документов используются наборы правил, созданные экспертами.
Кейс 6. Определение B2B- и B2С-цепочек
Для B2B-пользователей можно делать не только оценку кредитного риска, но и подбирать типовые паттерны его партнера. Если мы видим в портфеле компании одного сегмента со схожим профилем экономической деятельности, то, основываясь на этих паттернах, мы подбираем партнеров и рекомендуем какие именно отношения могут быть им интересны.
Методы: для подбора и рекомендации партнеров или клиентов используются как статистический анализ проведенных транзакций, так и рекомендательные системы. На основе данных статистического анализа строятся профили, которые выявляет характеристики связанные как с сегментом экономики, так и с особенностью ведения бизнеса. После профилирования бизнес-активностей использование рекомендательной системы позволяет рекомендовать подходящих контрагентов.
Кейс 7. Алгоритмы для чатбота @SberbankML_Bot
Чат-бот пока только учится, но какие-то вещи, которые уже многие умеют делать, например, проброс через API, к открытым источникам типа «Википедии», он также выполняет. Если вы спросите его, кто такой Греф или Путин, он ответит.

Методы: При разработке чатбота Сбербанк использует набор традиционных методов анализа текстов, таких как морфологический и синтаксический анализ. Также используются как традиционные так и оригинальные метрики близости/"похожести" тестов (для поиска наиболее подходящих для поступившего вопроса пар вопрос-ответ). Создана база «вопрос-ответ» в несколько тысяч пар которая будет расширяться. На данный момент используются правила разработанные опытными разработчиками (rule-based approach), в будущем при накоплении данных также будут использоваться современные статистические методы обучения, такие как deep learning.
Кейс 8. Наши алгоритмы могут не только самообучаться, но и писать стихи
Это более развлекательный проект. Мы взяли рекуррентную нейронную сеть (RNN), основанную на стихах Пушкина, Лермонтова и немного на Jira-чате самих разработчиков, и обучили систему писать стихи. Также был использован алгоритм LSTM (long-short-memory). Сначала сеть не очень хорошо справлялась даже с четырехстопным ямбом, но сейчас ему удается писать стихи даже про Сбербанк.
Data Scientist - профессия настоящего
Data scientist это прежде всего практик, который работает с математическим аппаратом, статистическим инструментарием, видит и понимает взаимосвязи в данных. Нередко в Data scientist приходят программисты, которые имеют научный и глубокий теоретический бэкграунд в сфере работы с Big Data. Нельзя однозначно сказать, что работать с большими данными должен талантливый математик или продвинутый программист - скорее, это человек с особым мышлением, готовый к восприятию данных, понимающий их связи и структуру, готовый экспериментировать, оптимизировать схемы работы, выявлять самые неожиданные закономерности. Главное, что отличает такого специалиста – умение работать с данными применительно к проблеме.

Трое data scientist из США (Harlan D. Harris, Sean Patrick Murphy, Marck Vaisman) провели опрос среди большого количества специалистов по данным, чтобы понять, каким же должен быть data scientist. По итогам опроса они выделили четыре группы специалистов по данным и соотнесли их со сферами деятельности.

➤ Data Business people (предприниматели) – группа специалистов, ориентированных на организационные вопросы и получение прибыли от проектов, связанных с данными. Как правило, это люди с инженерным или техническим образованием и степенью MBA.

➤ Data Creatives (приблизительно можно перевести как "свободные художники" данных) – специалисты, которые творчески подходят к анализу. Иногда это даже хакеры. Как правило, это люди из научной среды с академическим опытом, экономисты и статистики по образованию.

➤ Data Developer (девелоперы данных) - специалисты, сосредоточенные на технических проблемах управления данными: как получать, хранить данные и учиться на них. Эта группа изо дня в день пишет код, около половины имеют образование в сфере компьютерных наук, у них больше остальных групп прокачаны скиллы Big Data и машинного обучения.

➤ Data Researchers (исследователи данных) – учёные и исследователи данных, которые практикуют научную работу, публикуются в профильных изданиях, имеют научные степени. В этой группе наименьшее число людей, связанных с бизнесом.

Респонденты ранжировали требуемые навыки по группам:
Источник: Analyzing the Analyzers. An Introspective Survey of Data Scientists and Their Work. Harlan D. Harris, Sean Patrick Murphy, and Marck Vaisman
А вот как графически соотносятся группы навыков и четыре типа специалистов. Обратите внимание, насколько неравномерно распределены требования к навыкам каждой из групп.
Источник: Analyzing the Analyzers. An Introspective Survey of Data Scientists and Their Work. Harlan D. Harris, Sean Patrick Murphy, and Marck Vaisman
В опросе участвовали учёные, программисты и специалисты, связанные с обработкой данных, из нескольких стран мира, включая Россию. Очевидно, что сегодня бизнесом больше всего востребованы Data Developers, которые в нашей стране практически отождествляются с data scientists. Можно сформулировать сочетание требуемых навыков: понимание бизнеса, знание статистики и математики и примерно равное владение технологиями машинного обучения/ больших данных и непосредственно программирования.
Роль больших данных и машинного обучения нарастает. Эти технологии всё чаще находят себе применение для решения повседневных задач корпоративной и частной сферы. В свою очередь, это оказывает влияние и на банки, которые уже стали не просто финансово-кредитными учреждениями,а полноценными ИТ-компаниями с технологическими подразделениями. Такая трансформация позволяет довольно быстро развивать машинное обучение и работу с большими данными, экспериментировать и внедрять лучшие решения в жизнь.
Tags:
Hubs:
+32
Comments 19
Comments Comments 19