Advisors’ Axiom. Инвестиционная платформа с нейросетью для оценки тональности новостей

О проекте
Инвестиционная платформа Advisors’ Axiom — это площадка для совместной работы инвесторов сегмента Premium и Private Banking, инвестиционных консультантов и финансовых экспертов, разработанная ПАО РОСБАНК.


Возможности платформы:

ВО ЧТО ИНВЕСТИРОВАТЬ, КОГДА И ЗАЧЕМ


✔️Подборки ценных бумаг


✔️Продуктовый каталог
 

✔️Модель сбалансированного инвестиционного портфеля

ТОЛЬКО ВАЖНЫЕ НОВОСТИ



Показывает только те новости, которые могут повлиять на цену активов клиента, и отмечает тональность этого события

РИСК-МЕНЕДЖМЕНТ


Оценка риска портфеля и инвестиционное профилирование 


Задача

Необходимо было разработать MVP удобного онлайн-инструмента для управления капиталом  для клиентов Росбанка сегмента Premium и Private Banking с возможностью следить за всеми изменениями их портфеля, а также мобильное приложение к нему.

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

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

Реализация

Особенности работы с исходными данными

Разнородные исходные данные из различных банковских учетных систем загружаются в БД PostgreSQL.


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


Способы загрузки информации:

  • Удаление БД и полная загрузка

  • Частичные insert

  • Частичный update

  • Частичный delete


Система производит подготовку данных в нужном формате и объеме, необходимых      для целей визуального представления информации в интерфейсе.


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


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

Все расчеты выполняются в разрезе одного клиента. 


На примере типовой задачи по расчетам, например, активов из исходных данных:

  • Производится обход списка клиентов в БД и постановка для каждого клиента соответствующей задачи «расчет последней информации по активам» через брокер сообщений, т. е. генерируется множество независимых задач расчета по каждому клиенту. 

  • Контейнеры-консьюмеры производят обработку сообщений из очередей.

  • Увеличение производительности достигается увеличением количества consumer-обработчиков.


База данных в этой схеме является потенциально узким местом, которое на текущий момент не масштабируется.


Однако считаем, что имеем запас производительности БД еще почти на 2 порядка до тех пор, пока эта проблема с объемом данных и производительностью БД действительно возникнет.


До тех пор увеличение производительности рекомендуется решать штатными тривиальными методами:

  • Увеличение ресурсов сервера БД.

  • Улучшение структуры таблиц исходных данных.

  • Разделение БД на чтение и запись.


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

Язык, фреймворки, эксплуатация

По требованиям заказчика в качестве языка разработки был выбран python и django — в качестве фреймворка.


Django-админ выполняет роль чернового интерфейса к БД системы для административного персонала.


Система предоставляет restful-API для web-клиентов.


С точки зрения назначения и интерфейса есть два потребителя:

  • менеджер банка,

  • клиент банка.


Поэтому система делится: 

  • на личный кабинет менеджера,

  • личный кабинет клиента.

Функционал API для личного кабинета клиента на 95% основан на API личного кабинета менеджера и представляет собой урезанную версию API.


Они работают на одной кодовой базе, но выполняются в разных контейнерах в средах банка с различными уровнями доступа:


  • личный кабинет менеджера доступен только из сети банка с устройств банка;

  • личный кабинет клиента доступен из сети Интернет.


Технически релиз основной части системы представляет собой контейнер с единым исходным кодом, который может быть запущен либо как личный кабинет менеджера, либо как личный кабинет клиента. 


Основную часть системы можно представить как монолит, выполняющий несколько задач:


  • Админ-панель как технический интерфейс для просмотра и отладки исходных данных. 

  • API для личного кабинета менеджера.

  • API для личного кабинета клиента.

  • Обработчики-консьюмеры задач из очередей.


Админ-панель и API для личного кабинета менеджера объединяются в одном контейнере.


Другие функции выполняются каждая в своем отдельном контейнере.


Сопутствующая функциональность реализуется в микросервисной архитектуре. В частности, отдельно реализованы вынесены такие сервисы, как:


  • Генератор PDF-отчетов (php).

  • Профилирование клиентов (опросник клиентов и расчет риск-рейтинга).

  • Новостной модуль (парсинг и анализ новостей с помощью машинного обучения).

  • Внешнее API для поставщиков услуг.


Взаимодействие между микросервисами и основным функционалом осуществляется через брокер сообщений и restful-API.

Нейросеть для оценки тональности новостей    

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

После был сформирован собственный набор данных из 10 тысяч новостей, которые сначала были размечены автоматически с использованием вычисляемого индикатора прогноза аномальной доходности. А потом аналитиком была произведена ручная разметка собранных статей с точки зрения общей тональности новости и влияния на рыночную стоимость компании (в средней и долгосрочной перспективе), что позволило достичь большей точности в работе системы.

Особое внимание к вопросам безопасности

В процессе интеграции платформы с внутренней банковской инфраструктурой специалисты Росбанка внедрили системы мониторинга базы данных Imperva, сбора событий и инцидентов SIEM, обеспечения безопасности обмена данных WSO2, тестирования кода  Solar AppScreener и приняты другие меры по обеспечению конфиденциальности.

Результат

Вeб-версия платформы включает в себя следующее:


  • Представление услуг и продуктов банка в виде единого каталога продуктов (ценные бумаги, счета, депозиты, страхование, доверительное управление и т. п.).

  • Объединение данных из нескольких учетных систем, агрегация, приведение к виду, понятному пользователю, обогащение и предоставление в едином интерфейсе.

  • Расчет доходности активов в денежном и процентном выражениях по различным активам (каждый тип актива может иметь собственную методику расчета).

  • Вывод истории операций по различным активам из разнородных источников данных.

  • История стоимости активов за различные временные периоды.

  • Вывод актуальной рыночной цены и средней цены покупки актива.

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

  • Система анализа портфелей клиентов как для клиентов, так и для их менеджеров. Например: 

    • Изменение портфеля клиента.

    • Изменения ценной бумаги клиента.

    • Концентрация всех активов в одной валюте.

    • Концентрация всех активов в одном продукте.

    • Портфель не соответствует эталонному.

    • И др.

  • Генерация pdf-отчетов по каждому клиенту в ежедневном режиме. 

  • Процесс ребалансировки портфеля клиента (подбор продуктов для клиента, которые могут ребалансировать его портфель в соответствии с риск профилем).

  • Предоставление новостей по продуктам клиента с оценкой их тональности (хорошо или плохо).

  • Профилирование клиента (опрос и присвоение риск-рейтинга).

  • Формирование заявок на покупки продуктов различных типов.

Мобильное приложение для инвестирования Premium и Private клиентов состоит из двух частей:

  1. личный кабинет финансового эксперта,

  2. личный кабинет клиента.

Основные блоки приложения:

  • Динамика портфеля всех клиентов менеджера за год.

  • Лидер роста, падения и выплат по инвестиционному портфелю на текущую дату.

  • Новости по компаниям — положительные/отрицательные/нейтральные.

  • При переходе на конкретную новость можно увидеть, каких клиентов она может заинтересовать.

  • Актуальные продукты, которые доступны к приобретению.

  • Каталог клиентов с фильтрацией по необходимым параметрам.

  • Отчеты с подробным содержанием портфеля клиента.

  • Покупка инвестиционных продуктов.

  • Предложение по ребалансировке портфеля клиента.

Нейросеть для оценки тональности новостей     

Приложение с заданным периодом времени автоматически считывает свежие новости из определенного перечня сайтов-источников, умеет получать текст новости по ссылке (URL) на страницу сайта-источника. 

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

Изображение подбираются для новости автоматически на основе тегов категории компании.

Для перевода новости на русский язык используются внешние сервисы, обеспечивающие качественный машинный перевод текста.

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

Технологический стек: 

PHP

Django

Postgres
Python

Advisors’ Axiom. Инвестиционная платформа с нейросетью для оценки тональности новостей

Сделано в Россия

Design

Tech

Usability

Creativity

Content

Тип проекта: Веб-сайт
Страна: Россия
Категория: Финансы
Стиль: Big photo
Цвет: Красный