Но во-первых, почему так важна точная классификация банковских транзакций

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

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

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

Реальное применение слабых методов контроля

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

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

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

Наше решение: масштабируемая и слабо контролируемая система классификации транзакций

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

Что отличает нашу систему, так это использование знаний предметной области и эвристики для добавления «слабых меток» к набору данных, которые, в свою очередь, используются для создания широких вероятностных меток. Это называется слабым надзором и заменяет необходимость в ярлыках истинности.

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

Углубленный взгляд на нашу многоуровневую модельную архитектуру

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

Общий обзор системы

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

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

Агрегация и обработка данных

Первый уровень, агрегация данных, группирует транзакции по учетным записям клиентов и очищает текст транзакции. Затем мы классифицируем этот текст транзакции, используя обработку естественного языка (NLP).

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

Слабое создание меток

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

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

from snorkel.labeling import labeling_function 

ABSTAIN = -1
MATCH = 1

@labeling_function()
def lf_heur_amount(x):
  #Sample labelling function using heuristic
  if (
      (x["amount_max"] >= 100)
      and (x["amount_median"] >= 10)
  ):
      return MATCH
  else:
      return ABSTAIN

match_regexes = ["fee", "bank", "cash", "atm"]

@labeling_function()
def lf_regex_text(x):
  # Sample text match labelling function
  if bool(re.search(match_regexes, x["clean_text"])):
    return MATCH
  else:
    return ABSTAIN

lfs = [lf_heur_amount, lf_regex_text]

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

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

Модель этикетки

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

from snorkel.labeling import PandasLFApplier, LFAnalysis, LabelModel
import pandas as pd

# Apply the LFs to the data
applier = PandasLFApplier(lfs=lfs)
L_train = applier.apply(df=df)

# Fit the label model and get the training labels
label_model = LabelModel(cardinality=2, verbose=True)  # assume binary classification
label_model.fit(L_train=L_train, n_epochs=500, log_freq=50, seed=123)
df["label"] = label_model.predict(L=L_train, tie_break_policy="abstain")

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

Дискриминационная модель

Чтобы повысить точность классификации транзакций, мы используем глубокую нейронную сеть (DNN) в качестве нашей дискриминационной модели. Эта архитектура DNN синергетически использует текст транзакций и данные о шаблонах расходов, что позволяет ей лучше ориентироваться в сложных границах решений и противостоять входному шуму. Оба типа входных данных обрабатываются как последовательности и встраиваются в Gated Recurrent Units, обеспечивая детальное понимание данных транзакций для превосходной классификации.

Заключительные шаги: публикация данных

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

Проверка эффективности: получение большей точности, чем в клетку

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

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

Реальные варианты использования и приложения:

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

  1. Оценка кредитного риска. Классификация транзакций позволяет в режиме реального времени получить представление о поведении пользователей в отношении расходов, помогая в оценке кредитного риска. Регулярные платежи могут служить индикатором способности пользователя погасить долг с малой задержкой, что обеспечивает более быстрое представление о финансовом состоянии.
  2. Анализ бизнес-аккаунта. Проводя различие между личными и бизнес-расходами в бизнес-аккаунтах, мы можем выявить смешанные виды деятельности и ответственное поведение в отношении расходов, что является важными показателями финансового благополучия и зрелости бизнеса.
  3. Финансовая аналитика для пользователей. Категоризация транзакций может помочь пользователям понять и улучшить свое финансовое положение. Он также служит основой для систем возврата наличных денег и вознаграждений и может помочь пользователям управлять своими услугами по подписке.
  4. Вовлечение и обучение. Информационная информация, полученная в результате классифицированных транзакций, может быть представлена ​​пользователям, что может способствовать их вовлечению и поощрять пользователей к здоровому финансовому поведению. Он также может предоставить обучение, чтобы помочь пользователям получить более высокие кредитные баллы и сопоставить их с лучшими кредитными предложениями.
  5. Бизнес-бенчмаркинг. Категоризация транзакций может дать компаниям ценную информацию о структуре их расходов по сравнению с аналогами в отрасли, помогая лучше управлять финансами.
  6. Мониторинг происшествий. Возможность классифицировать повторяющиеся транзакции может активировать службы мониторинга происшествий, помогая пользователям прогнозировать предстоящие повторяющиеся расходы и готовиться к ним, а также снижая вероятность поведения по умолчанию.
  7. Встраивание на уровне пользователей. Сжатые представления финансовой информации пользователей, такие как Client2Vec, могут улучшить сегментацию пользователей на основе транзакций, обнаружение мошенничества и таргетинг продуктов, предлагая более глубокое и более глубокое понимание поведения пользователей.

В заключение

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

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

Благодарности

Статья о категоризации транзакций со слабым надзором была написана Лиамом Тораном совместно с Алексом Келлером, Аланом Саммароне и Кори ван дер Уолтом, автором этой записи в блоге. Спасибо, Кэтрин Гизе, за редактирование!

Подробнее читайте в полной бумаге.