В ноябре Сбербанк провел серию мероприятий по машинному обучению и искусственному интеллекту Sberbank Data Science Journey. Финальное мероприятие, Data Science Day, прошло 12-го ноября на площадке DI Telegraph. Его посетило более 1000 человек.
Data Science Day завершал месячный конкурс, ставший самым крупным по количеству участников и зарегистрировавшихся в СНГ: более 700 человек отправили свои решения, более 3000 зарегистрированных участников работали с данными, а также сгенерировали более 30Гб данных.
Data Science Day открылся видео-приветствием Германа Грефа.
Затем пришедших data scientists со сцены поприветствовал Заместитель Председателя Правления Сбербанка Вадим Кулик.
Data Science Day открылся видео-приветствием Германа Грефа.
Затем пришедших data scientists со сцены поприветствовал Заместитель Председателя Правления Сбербанка Вадим Кулик.
Вадим Кулик рассказал об основных принципах data-driven организаций, требованиях к современным ИТ-платформам и о стратегических направлениях развития технологий Сбербанка.
Далее на сцену поднялся старший вице-президент Сбербанка Александр Ведяхин и рассказал об интересных кейсах Сбербанка в области машинного обучения и искусственного интеллекта.
Следующий блок открывали приглашённые специалисты мирового уровня в области анализа данных и искусственного интеллекта.
Профессор Университета Амстердама Маартин де Рийке на примере задач информационного поиска рассказал про бурно развивающуюся парадигму Reinforcement Learning, являющуюся предвестником искусственного интеллекта в его широком понимании. Уже сейчас в банке начинаются эксперименты с данным подходом при решении прикладных задач (рекомендательные системы, персональные предложения клиентам).
Профессор Университета Амстердама Маартин де Рийке на примере задач информационного поиска рассказал про бурно развивающуюся парадигму Reinforcement Learning, являющуюся предвестником искусственного интеллекта в его широком понимании. Уже сейчас в банке начинаются эксперименты с данным подходом при решении прикладных задач (рекомендательные системы, персональные предложения клиентам).
Senior Data-Scientist международной компании H2O Дмитрий Ларько рассказал про одну из самых важных проблем использования методов машинного обучения - интерпретируемость получаемых результатов (проблема "чёрного ящика"). Дмитрий рассмотрел подходы к интерпретации результатов, полученных в ходе применения таких моделей, которые могут значительно улучшить доверие бизнес-аналитиков к использованию современных методов машинного обучения.
Выступление профессора Константина Воронцова было посвящено изящному применению тематического моделирования для анализа транзакционных данных банка. Транзакционная история интерпретируется как набор предложений, а алгоритмы тематического моделирования позволяют выделить основные стереотипы поведения клиентов банка. Это даёт возможность более точно описывать группы клиентов для персональных предложений.
Выступление Дмитрия Ветрова было посвящено актуальной теме стохастических вычислительных графов, которые в последний год получили широкое распространение в алгоритмах deep learning . Добавление случайных узлов значительно расширяет возможности применения данного метода машинного обучения и позволяет находить сложные зависимости в данных (распознавание изображений, машинный перевод, системы Q&A). Этот подход имеет прямое применение при разработке более точных подходов к решению, в частности, задач банков, использующих методы машинного обучения.
Конкурс состоял из двух частей: прием-онлайн заявок был открыт с 7 октября до 6 ноября , а финал конкурса состоялся 12 ноября на Data Science Day, куда были приглашены авторы 5 отобранных проектов-финалистов. Обязательным условием конкурса являлось то, что все проекты должны были основываться на данных банка (данные были обезличены и специальным образом модифицированы), но при этом было разрешено обогащать данные из открытых источников.
На основе полученных данных было необходимо выявить одну бизнес-задачу банка и разработать для неё решение. Технологический стек решений и тематика задач оставались на усмотрение участников.
По результатам онлайн-этапа было собрано 35 заявок от различных команд и стартапов в области дата-сайнс, среди которых были отобраны пять лучших команд. На Data Science Day состоялся финал конкурса в виде питч-сессий по 7 минут каждая. Победителей выбрало жюри, состоящее из топ-менеджеров Сбербанка и представителей компаний-партнёров.
На основе полученных данных было необходимо выявить одну бизнес-задачу банка и разработать для неё решение. Технологический стек решений и тематика задач оставались на усмотрение участников.
По результатам онлайн-этапа было собрано 35 заявок от различных команд и стартапов в области дата-сайнс, среди которых были отобраны пять лучших команд. На Data Science Day состоялся финал конкурса в виде питч-сессий по 7 минут каждая. Победителей выбрало жюри, состоящее из топ-менеджеров Сбербанка и представителей компаний-партнёров.
Все финалисты получили возможность встретиться с топ-менеджерами банка и обсудить возможности сотрудничества.
Ниже мы опишем краткие тезисы проектов команд со ссылками на презентации.
Ниже мы опишем краткие тезисы проектов команд со ссылками на презентации.
Команда 1Factor
Команда 1Factor представила одно из наиболее интересных решений, использующее объединение разных типов данных: история транзакций клиентов (данные были обезличены и специальным образом модифицированы) и геолокационные данные. Наиболее ценным является алгоритм, который находит соответствия между этими данными при том, что оба датасета являлись обезличенными! После того, как удалось сделать такой матчинг данных, стало возможным отслеживать перемещения клиентов и, как следствие, выяснять популярность у этих клиентов тех или иных предприятий малого и среднего бизнеса. Анализ динамики трафика клиентов предприятий позволяет, в частности, оценивать кредитные риски такой организации, что, несомненно, представляет большую ценность для банка. Решением жюри команда участвовала в соревновании вне конкурса, но получила специальный приз "за лучшую синергию данных".
Команда Roox Solutions
Команда RooX Solutions представила проект по выработке рекомендаций клиентам банка на основе анализа транзакций для повышения благосостояния. В частности, речь идёт об увеличении накоплений, о льготном кредитовании кассовых разрывов или временном ограничении необязательных расходов. Особенностью проекта стало объединение экспертной экономической модели и алгоритмов машинного обучения для прогнозирования и генерации сигналов для клиентов в нужный момент.
Модель включала в себя индексы роста благосостояния и финансовой стабильности (см. рисунок), т.е. устойчивости клиента к возможным внезапным сокращениям доходов. На основании прогноза постоянных и переменных расходов и доходов за месяц, а также значений индексов и анализа их волатильности определялись клиенты, которым окажутся полезными те или иные рекомендации.
Модель включала в себя индексы роста благосостояния и финансовой стабильности (см. рисунок), т.е. устойчивости клиента к возможным внезапным сокращениям доходов. На основании прогноза постоянных и переменных расходов и доходов за месяц, а также значений индексов и анализа их волатильности определялись клиенты, которым окажутся полезными те или иные рекомендации.
Ещё одной особенностью проекта являлось то, что для решения задачи прогнозирования команда использовала регрессию с доверительными интервалами и делала прогноз не на месяц вперёд, а до конца текущего месяца. Таким образом удалось получить сужающиеся по ходу месяца интервалы и, начиная где-то с середины месяца, достаточную уверенность в прогнозе для того, чтобы делать обоснованные рекомендации.
Команда Alone.io
Команда Alone.io объективно являлась самой сильной среди всех команд с точки зрения компетенций решения задач в области data science-В ее составе - двое из списка Топ-20 Kaggle. Один из них (Дмитрий Алтухов) занял второе место в нашем Data Science Contest. Свой бизнес-проект для Startup Challenge они построили на основе решения задачи из контеста о прогнозировании трат клиентов в различных категориях (так называемых MCC-кодах).
Имея хороший алгоритм прогнозирования трат клиентов, например, в тех или иных категориях, можно предугадывать некоторые факты из жизни клиента (например, факт поездки за рубеж). Методом скользящего окна производится анализ покупок клиента и поиск закономерностей в его поведении. В случае пошагового анализа вероятность покупки увеличивается перед самим событием (см. рисунок). Данное решение можно использовать для увеличения взаимодействия с клиентом с помощью персональных предложений.
Имея хороший алгоритм прогнозирования трат клиентов, например, в тех или иных категориях, можно предугадывать некоторые факты из жизни клиента (например, факт поездки за рубеж). Методом скользящего окна производится анализ покупок клиента и поиск закономерностей в его поведении. В случае пошагового анализа вероятность покупки увеличивается перед самим событием (см. рисунок). Данное решение можно использовать для увеличения взаимодействия с клиентом с помощью персональных предложений.
Команда MCC2VEC
Командой MCC2VEC были предложены модели с применением word2vec алгоритмов, переводящих слова в вектора. Разработанные в 2013 году командой разработчиков Google под руководством Томаса Миколова, на сегодняшний день подобные алгоритмы используются для интерпретации и написания текста. При этом участники предложили интерпретировать последовательность транзакций клиентов как текст. То есть транзакции клиента разбиваются на предложения, которые, в свою очередь, разделяются между собой точками в случае, если между ними более 12 часов.
Выступающие в данном случае в роли «слов» MCC-коды, обрабатываются с помощью алгоритмов word2vec, в результате чего каждому коду соответствует стомерное представление, то есть просто стомерный вектор чисел. Два MCC-кода рассматриваются как близкие или далекие в зависимости от величины cos угла между ними. С учетом этого, для каждой MCC-траты клиента можно суммировать полученные вектора (с некоторыми нормализациями), напрямую соотнести клиента и получить client2vec.
На следующем этапе применяется техника t-SNE или t-distributed stochastic neighbor embedding. После чего клиенты «проецируются» на двумерную плоскость, что позволяет выделить определенные кластеры. В итоге было получено 15 категорий клиентов, объединенных некими признаками.
Аналогично данный алгоритм может быть использован в случае антифрода. В этом случае клиент и совершенная транзакция также соотносятся со стомерными векторами, после чего происходит оценка того, насколько эти вектора близки или далеки друг от друга, что помогает отметить нехарактерную для данного клиента операцию, а алгоритму при этом позволяет адаптироваться к изменениям в его поведении.
Команда SD Data
Победителем Startup Challenge стала команда из Санкт-Петербурга SD Data. За неделю до Data Science Day они стали победителями хакатона Neurohack 2.0 в треке Сбербанка и фактически с решением, придуманным за 36 часов на самом хакатоне, были приглашены в финал. Поздравляем со столь впечатляющим результатом!
Команда смогла "запаковать" в бизнес-решение достаточно простую идею о том, как можно искать подозрительные транзакции. Разработчики предложили отложить в системе координат по оси Х все сделанные клиентом переводы, а по оси Y – его покупки. При этом все переводы, находящиеся ниже биссектрисы угла Y0Х, отмечаются как подозрительные, так как находятся за пределами порога разумного числа переводов (количество покупок меньше, чем количество переводов).
Фактически это один из возможных способов разметить выборку клиентов относительно мошеннических операций. Затем уже, используя различные методы машинного обучения (xgboost, k-means кластеризация), разработчики смогли расширить изначальный список подозрительных транзакций и выявить различные наиболее типичные схемы вывода денег и разбить их на основные типы (субъекты малого предпринимательства, мошенники, благотворительность). Например, были выявлены такие предполагаемые схемы как "Прогон средств" и "Вывод денег за рубеж"
В качестве решения команда предложила ввести комиссию за получение входящих средств при превышении некоторого количества входящих переводов в месяц, установить минимальный временной промежуток для дальнейшего перевода средств, а также дополнительно изучать аккаунты с преобладающей нестандартной схемой вывода поступивших средств.
Data Science Contest Awards
В ноябре Сбербанк провел серию мероприятий по машинному обучению и искусственному интеллекту (SDSJ.ru), финальное мероприятие которого - Data Science Day - 12-го ноября на площадке DI Telegraph посетило более 1000 человек.
Андрей Черток (директор по исследованиям и разработкам, Сбербанк) рассказал о ключевых аспектах, необходимых для проведения успешного соревнования в области анализа данных. Соревнование случилось благодаря объединению усилий большого количества людей с нужным набором компетенций. Отдельно было рассказано об институте соревнований и их полезности для бизнеса как об одном из инструментов выстраивания связей между компаниями, научным и data-science сообществами. Такого рода соревнования вряд ли могут иметь прямое business value для компаний как прямой инструмент решения прикладных задач в контексте прямого внедрения решений победителей в продакшн (за редким исключением). С другой стороны, открытость банка с точки зрения возможности поработать с реальными данными о транзакциях открывает много новых перспектив по развитию методов исследования данных. Принцип открытости сейчас заложен в основу развития многих мировых ИТ-компаний, одной из которых стремится стать Сбербанк.
Александр Фонарёв (Chief Data Scientist, SBDA Rubbles) выступил с интересной лекцией о том, как проходила подготовка задач для соревнования. Организаторы потратили очень много времени на подготовку данных, корректную постановку задач и их тщательное прорешивание. Для того, чтобы соревнование было интересным для пользователей, нужно избежать большого количества проблем, таких как лики в данных, неустойчивость решений на обучающей и тестовой выборках, а также сделать постановки задач такими, чтобы они допускали выбор разных подходов к их решению, а также были достаточно интересными с точки зрения поиска наиболее эффективных признаков, которые подаются на вход в модели прогнозирования. Отдельной сложностью при подготовке соревнования был поиск оптимальной формулы расчёта итогового рейтинга и, в особенности, взвешивающих коэффициентов по задачам (для того, чтобы участники "в среднем" решали все задачи).
Третье место
Третье место в конкурсе занял Василий Рубцов. Василий представил решение по задаче B о прогнозировании суммарных трат всех клиентов на месяц вперёд в тех или иных категориях. Простые модели использовали линейные регрессии на основе средних (за последнюю неделю/месяц/год, средневзвешенные траты, среднее по дням недели) в качестве регрессоров. Более сложные модели строились либо как разность базовых, либо как их блендинг с некоторыми обобщениями.
Второе место
Дмитрий Алтухов, занявший в контесте второе место, рассказал о своих подходах к решению задачи C, в которой требовалось предсказать объём трат в следующем месяце в каждой из 184 категорий для 3000 пользователей.
Структура решения, как обычно, состояла в применении достаточно стандартных подходов:
Структура решения, как обычно, состояла в применении достаточно стандартных подходов:
- Извлечение базовых признаков. Для извлечения базовых признаков используем различные меры за последние пять месяцев (объём трат, количество трат и std трат) в различных измерениях (месяц, пользователь, mcc; месяц, пользователь; месяц, mcc).
- Построение линейных моделей для каждого пользователя. У каждого пользователя выделялся уникальный характер трат (регулярность, количество), затем для каждого из них строилась сильно регуляризованная ridge-регрессия на базовых признаках;
- Построение линейных моделей для каждого MCC-кода. Поскольку MCC-кодов было не так много, как пользователей, однако, структура трат по ним достаточно сложна для описания одной общей моделью. При этом можно заметить, что траты по некоторым кодам связаны друг с другом, поэтому помимо базовых признаков в модель добавлялись траты за предыдущий месяц по каждому из MCC-кодов;
- Объединение всех признаков в XGBoost. В итоговую модель были включены как базовые признаки, так и предсказания, полученные с помощью пользовательских/MCC-регрессий.
- Лёгкий постпроцессинг решений. Приведение решений к "адекватному" виду (например, если предсказание получилось меньше нуля, то в качестве ответа выдаём ноль).
Первое место
Дмитрий Афанасьев, занявший в соревновании первое место, рассказал о решении самой простой задачи о предсказании пола клиента по его транзакциям (пол был известен для 12000 человек, предлагалось вычислить вероятность оказаться мужчиной оставшимся 3000 клиентам). Основные наблюдения Дмитрия по поводу данных и контеста состояли в том, что из текстовых описаний MCC-кодов и типов транзакций тяжело что-то получить, при этом MCC-коды важнее типов транзакций. Специфика соревнования подсказывает, что обучение и корректная валидация моделей гораздо важнее, чем опора при поиске решения на результаты публичного рейтинга.
Задача выглядела достаточно классической, поэтому интуиция подсказывала, что наиболее оправданным является применение неглубоких деревьев с малым количеством признаков на агрегатах (на сырых транзакционных данных модели не работают). Базовые признаки были связаны со стандартными производными от трат (сумма, количество, min/max), параметры xgboost: eta = 0.02, depth = 3, subsample = 0.6. Ключевыми признаками также являлись "мужские" и "женские" траты в разрезах по различным MCC-категориям и типам транзакций и другие более специфические (например, объединение MCC-кодов в пары: если после покупки в магазине женской одежды идёт покупка в магазине мужской, то это снижает вероятность того, что данный клиент - женщина). Сверху также навешивался стекинг наивного байеса как признака, в котором траты в MCC-кодах использовались как простой bag of words. Более подробно про решение задачи A - в презентации (ссылка) и видео-выступлении (ссылка).
Задача выглядела достаточно классической, поэтому интуиция подсказывала, что наиболее оправданным является применение неглубоких деревьев с малым количеством признаков на агрегатах (на сырых транзакционных данных модели не работают). Базовые признаки были связаны со стандартными производными от трат (сумма, количество, min/max), параметры xgboost: eta = 0.02, depth = 3, subsample = 0.6. Ключевыми признаками также являлись "мужские" и "женские" траты в разрезах по различным MCC-категориям и типам транзакций и другие более специфические (например, объединение MCC-кодов в пары: если после покупки в магазине женской одежды идёт покупка в магазине мужской, то это снижает вероятность того, что данный клиент - женщина). Сверху также навешивался стекинг наивного байеса как признака, в котором траты в MCC-кодах использовались как простой bag of words. Более подробно про решение задачи A - в презентации (ссылка) и видео-выступлении (ссылка).
Финал мероприятия
В завершении Data Science Day у участников была возможность пообщаться в неформальной обстановке во время фуршета, приобрести новые, полезные контакты, и хорошо провести время.
Data Science Journey – это не просто разовое мероприятие в области анализа данных, машинного обучения и искусственного интеллекта, а начало новой и прочной традиции: такие «Путешествия» мы планируем проводить на регулярной основе. Ждите наших новых мероприятий!
Data Science Journey – это не просто разовое мероприятие в области анализа данных, машинного обучения и искусственного интеллекта, а начало новой и прочной традиции: такие «Путешествия» мы планируем проводить на регулярной основе. Ждите наших новых мероприятий!