Привет, Хабр.

Каждый раз, когда вы платите картой, банк записывает это событие. Со временем накапливается история: купил кофе — запись, оплатил газ — запись, снял наличные — запись. Банковский ИИ умеет анализировать последовательность событий и делать выводы о человеке: молодой или пожилой, семьянин или одиночка, предпочитает копить или тратить.

Но у этого подхода есть недостаток: ИИ-модель рассматривает каждого клиента изолированно, как будто он один на всём белом свете. Однако если посмотреть на всех клиентов и все магазины сразу, то образуется огромная сеть связей: клиент ↔ магазин ↔ другие клиенты, которые ходят в тот же магазин. В науке такую структуру называют двудольным графом.

В нашей совместной работе с коллегами из AIRI, ИСП РАН и Математического института имени Стеклова мы показали, что двудольный граф содержит помимо истории платежей множество другой полезной информации. И мы научились добавлять её в существующие модели без их переписывания с нуля.

Граф взаимодействия для последовательности событий
Граф взаимодействия для последовательности событий

Слабое место стандартного подхода

Современные методы самообучения (Self-Supervised Learning) отлично работают с последовательностями событий. Модель анализирует историю клиента, учится предсказывать, например, пропущенные операции, или сравнивать разные отрезки биографии. И в процессе работы создаёт эмбеддинги — компактные числовые представления прогнозов, которые потом используются для классификации: надёжный заёмщик или нет, мужчина это или женщина, мошенник или нет.

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

Мы провели простой эксперимент. Взяли два способа описания клиентов:

  • последовательный — историю транзакций;

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

...и сравнили, насколько похожи списки «ближайших соседей» для одного и того же человека в этих двух пространствах. Результат нас не удивил, но оказался показательным: совпадение составило менее 40%, даже когда мы брали тысячу ближайших соседей. То есть граф рассказывает о человеке то, о чём не расскажет история его транзакций. И игнорировать такую полезную информацию — значит сознательно ухудшать качество работы модели.

Как добавить граф в модель

Мы предложили три способа добавления информации о сети связей в существующие ИИ-модели. Все три — модельагностичны. То есть их можно «прикрутить» к любой уже работающей системе, не переписывая её с нуля.

Способ 1. GrEmb: «заменить словарь»

Когда модель видит запись «оплата в магазине X», то она переводит «магазин X» в числовой вектор. Обычно для этого она берёт случайное число, выбор которого можно настраивать при обучении. Мы предложили брать не случайные числа, а предобученные представления из графовой нейросети. То есть числа, которые уже кодируют то, какие клиенты ходят в этот магазин и что их объединяет.

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

Способ 2. Reg: «добавить нового двойника»

Модель учится узнавать одного и того же клиента в разных срезах его истории. Мы добавили ещё один «вид» клиента — его позицию в графе транзакций. И в результате модель как бы понимает: «вот его история платежей, вот его место в сети — это один и тот же человек».

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

Способ 3. Loss: «мягкая подсказка»

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

Это реализуется через ранжирующую функцию потерь BPR — математический способ сказать модели: «не меняй местами похожих и непохожих людей». Преимущество подхода в том, что он работает даже тогда, когда явные графовые эмбеддинги бесполезны.

Что работает лучше?

Ответ на этот вопрос зависит от плотности графа. Мы тестировали методы на четырёх датасетах — от небольшого банка с чуть более 10 тысячами клиентов до внутреннего датасета Сбера. Выяснилось, что оптимальный способ зависит от одного параметра — плотности графа, то есть от того, насколько разнообразны места, где платят клиенты.

Результаты лучших экспериментов
Результаты лучших экспериментов

Плотность графа

Что работает лучше

Умеренная (0,05–0,20)

GrEmb — предобученные GNN-представления дают максимальный выигрыш.

Очень плотная (почти все платят в одних категориях)

Loss — GNN страдает от over-smoothing, спасает мягкая подсказка.

Очень разреженная (каждый платит в уникальных местах)

Loss — явные эмбеддинги тонут в шуме.

Почему так?

  • Если граф умеренно плотный, то он богат информацией и нейросеть умеет её извлечь.

  • Если граф слишком плотный, то представления всех узлов «сливаются» — это классический эффект over-smoothing в графовых сетях.

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

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

Какое улучшение это даёт?

На банковских данных с умеренной плотностью лучший вариант дал +1,3% AUC и +2,27% точности по сравнению с исходной моделью, которая не использовала граф. AUC (Area Under Curve) — стандартная метрика качества в задачах классификации. Чем она выше, тем реже модель ошибается. В масштабах крупного банка повышение точности обнаружения мошенников даже на один процент означает миллионы рублей сохранённых средств.

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

Что дальше

Мы уже интегрируем эти подходы в продуктовые модели Сбера. Но на этом работа не заканчивается. Сейчас мы видим несколько перспективных направлений:

  • Динамические графы — связи между клиентами и магазинами меняются во времени. Можно ли учитывать не только структуру, но и её эволюцию?

  • Адаптивное взвешивание — автоматически выбирать стратегию интеграции в зависимости от плотности графа, без ручной настройки.

  • Глубокая интеграция — не просто подставлять готовые эмбеддинги, а научить sequence-модель саму обращать внимание на графовую структуру через механизмы внимания.

  • Теоретическое обоснование — почему пороговые значения плотности выглядят именно так? Можно ли вывести аналитические границы?


Вместо заключения

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

Мы не просто улучшили метрики на тестовых датасетах. Мы получили инструмент, который уже помогает нам лучше понимать наших клиентов в ежедневной работе. А открытый код на GitHub поможет вам повторить наши эксперименты и применить подход к своим данным.

Исходный код всех экспериментов доступен по ссылке.

Статья принята на The Web Conference 2026 (WWW’26) .

Андрей Савченко

Директор по науке Sber AI Lab — Центра практического ИИ.