Авторизация
Сброс пароля
Инвестиционная платформа Advisors’ Axiom от Росбанка
1. Вводная задача от заказчика, проблематика, цели
Advisors’ Axiom. Инвестиционная платформа с нейросетью для оценки тональности новостей
О ПРОЕКТЕ
Инвестиционная платформа Advisors’ Axiom — это площадка для совместной работы инвесторов сегмента Premium и Private Banking, инвестиционных консультантов и финансовых экспертов, разработанная ПАО РОСБАНК.
Возможности платформы:
ВО ЧТО ИНВЕСТИРОВАТЬ, КОГДА И ЗАЧЕМ
— Подборки ценных бумаг
— Продуктовый каталог
— Модель сбалансированного инвестиционного портфеля
ТОЛЬКО ВАЖНЫЕ НОВОСТИ
Показывает только те новости, которые могут повлиять на цену активов клиента, и отмечает тональность этого события
РИСК-МЕНЕДЖМЕНТ
Оценка риска портфеля и инвестиционное профилирование
ЗАДАЧА
Необходимо было разработать MVP удобного онлайн-инструмента для управления капиталом для клиентов Росбанка сегмента Premium и Private Banking с возможностью следить за всеми изменениями их портфеля, а также мобильное приложение к нему.
Платформа на стадии MVP должна включать профиль инвестора и инвестиционного консультанта, который закреплен за каждым клиентом и помогает ему в формировании и реализации его инвестиционной стратегии.
Сервис должен не только содержать всю необходимую информацию по портфелю, но и сигнализировать о негативных изменениях портфеля для клиентов, и отслеживать происходящие в экономике изменения с помощью машинного обучения, анализировать состояние активов и фиксировать их динамику.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Особенности работы с исходными данными
Разнородные исходные данные из различных банковских учетных систем загружаются в БД PostgreSQL.
Загрузка информации, ее способы и оперативность находились под контролем специалистов банка и вне влияния команды разработки.
Способы загрузки информации:
— Удаление БД и полная загрузка
— Частичные insert
— Частичный update
— Частичный delete
Система производит подготовку данных в нужном формате и объеме, необходимых для целей визуального представления информации в интерфейсе.
Вследствие того что система не имеет сведений о способах поступления информации, ее объеме и частоте, процедуры обработки исходных данных каждый раз выполняют все расчеты с нуля на требуемую глубину на весь объем данных.
Это позволяет гарантировать корректность информации сразу после расчета на основе объема исходных данных, который был на момент расчета.
Все расчеты выполняются в разрезе одного клиента.
На примере типовой задачи по расчетам, например, активов из исходных данных:
— Производится обход списка клиентов в БД и постановка для каждого клиента соответствующей задачи «расчет последней информации по активам» через брокер сообщений, т. е. генерируется множество независимых задач расчета по каждому клиенту.
— Контейнеры-консьюмеры производят обработку сообщений из очередей.
— Увеличение производительности достигается увеличением количества consumer-обработчиков.
База данных в этой схеме является потенциально узким местом, которое на текущий момент не масштабируется.
Однако считаем, что имеем запас производительности БД еще почти на 2 порядка до тех пор, пока эта проблема с объемом данных и производительностью БД действительно возникнет.
До тех пор увеличение производительности рекомендуется решать штатными тривиальными методами:
— Увеличение ресурсов сервера БД.
— Улучшение структуры таблиц исходных данных.
— Разделение БД на чтение и запись.
Однако такую схему нельзя признать удовлетворительной на долгий срок, и тот временной период, который имеется в запасе, требуется использовать для перепроектирования схемы поставки исходных данных в систему.
Язык, фреймворки, эксплуатация
По требованиям заказчика в качестве языка разработки был выбран python и django — в качестве фреймворка.
Django-админ выполняет роль чернового интерфейса к БД системы для административного персонала.
Система предоставляет restful-API для web-клиентов.
С точки зрения назначения и интерфейса есть два потребителя:
1) менеджер банка,
2) клиент банка.
Поэтому система делится:
1) на личный кабинет менеджера,
2) личный кабинет клиента.
Функционал API для личного кабинета клиента на 95% основан на API личного кабинета менеджера и представляет собой урезанную версию API.
Они работают на одной кодовой базе, но выполняются в разных контейнерах в средах банка с различными уровнями доступа:
— личный кабинет менеджера доступен только из сети банка с устройств банка;
— личный кабинет клиента доступен из сети Интернет.
Технически релиз основной части системы представляет собой контейнер с единым исходным кодом, который может быть запущен либо как личный кабинет менеджера, либо как личный кабинет клиента.
Основную часть системы можно представить как монолит, выполняющий несколько задач:
— Админ-панель как технический интерфейс для просмотра и отладки исходных данных.
— API для личного кабинета менеджера.
— API для личного кабинета клиента.
— Обработчики-консьюмеры задач из очередей.
Админ-панель и API для личного кабинета менеджера объединяются в одном контейнере.
Другие функции выполняются каждая в своем отдельном контейнере.
Сопутствующая функциональность реализуется в микросервисной архитектуре. В частности, отдельно реализованы вынесены такие сервисы, как:
— Генератор PDF-отчетов (php).
— Профилирование клиентов (опросник клиентов и расчет риск-рейтинга).
— Новостной модуль (парсинг и анализ новостей с помощью машинного обучения).
— Внешнее API для поставщиков услуг.
Взаимодействие между микросервисами и основным функционалом осуществляется через брокер сообщений и restful-API.
Нейросеть для оценки тональности новостей
Для машинного обучения модели мы использовали более 20 тысяч страниц новостей на английском языке и более 10 тысяч страниц новостей на русском языке. При этом был обучен собственный дескриптор слов, поскольку в новостях много специализированных терминов.
После был сформирован собственный набор данных из 10 тысяч новостей, которые сначала были размечены автоматически с использованием вычисляемого индикатора прогноза аномальной доходности. А потом аналитиком была произведена ручная разметка собранных статей с точки зрения общей тональности новости и влияния на рыночную стоимость компании (в средней и долгосрочной перспективе), что позволило достичь большей точности в работе системы.
Особое внимание к вопросам безопасности
В процессе интеграции платформы с внутренней банковской инфраструктурой специалисты Росбанка внедрили системы мониторинга базы данных Imperva, сбора событий и инцидентов SIEM, обеспечения безопасности обмена данных WSO2, тестирования кода Solar AppScreener и приняты другие меры по обеспечению конфиденциальности.
3. Результаты сотрудничества
Вeб-версия платформы включает в себя следующее:
— Представление услуг и продуктов банка в виде единого каталога продуктов (ценные бумаги, счета, депозиты, страхование, доверительное управление и т. п.).
— Объединение данных из нескольких учетных систем, агрегация, приведение к виду, понятному пользователю, обогащение и предоставление в едином интерфейсе.
— Расчет доходности активов в денежном и процентном выражениях по различным активам (каждый тип актива может иметь собственную методику расчета).
— Вывод истории операций по различным активам из разнородных источников данных.
— История стоимости активов за различные временные периоды.
— Вывод актуальной рыночной цены и средней цены покупки актива.
— Различные интерфейсные группировки активов для более удобного предоставления информации.
— Система анализа портфелей клиентов как для клиентов, так и для их менеджеров. Например:
- Изменение портфеля клиента.
- Изменения ценной бумаги клиента.
- Концентрация всех активов в одной валюте.
- Концентрация всех активов в одном продукте.
- Портфель не соответствует эталонному и др.
— Генерация pdf-отчетов по каждому клиенту в ежедневном режиме.
— Процесс ребалансировки портфеля клиента (подбор продуктов для клиента, которые могут ребалансировать его портфель в соответствии с риск профилем).
— Предоставление новостей по продуктам клиента с оценкой их тональности (хорошо или плохо).
— Профилирование клиента (опрос и присвоение риск-рейтинга).
— Формирование заявок на покупки продуктов различных типов.
4. Заключение
Мобильное приложение для инвестирования Premium и Private клиентов состоит из двух частей:
1) личный кабинет финансового эксперта,
2) личный кабинет клиента.
Основные блоки приложения:
— Динамика портфеля всех клиентов менеджера за год.
— Лидер роста, падения и выплат по инвестиционному портфелю на текущую дату.
— Новости по компаниям — положительные/отрицательные/нейтральные.
— При переходе на конкретную новость можно увидеть, каких клиентов она может заинтересовать.
— Актуальные продукты, которые доступны к приобретению.
— Каталог клиентов с фильтрацией по необходимым параметрам.
— Отчеты с подробным содержанием портфеля клиента.
— Покупка инвестиционных продуктов.
— Предложение по ребалансировке портфеля клиента.
Нейросеть для оценки тональности новостей
Приложение с заданным периодом времени автоматически считывает свежие новости из определенного перечня сайтов-источников, умеет получать текст новости по ссылке (URL) на страницу сайта-источника.
Каждая новость, попадающая на оценку и формирование анонса автоматически привязана по заданному перечню тегов к необходимой компании.
Изображение подбираются для новости автоматически на основе тегов категории компании.
Для перевода новости на русский язык используются внешние сервисы, обеспечивающие качественный машинный перевод текста.
Корректировка анонсов, изображений и публикаций выполняются через панель администрирования модератором контента.
Результаты голосования
Средний балл: 7.6