Но во-первых, почему так важна точная классификация банковских транзакций
Финтех-индустрия довольно широка и призвана решить многие проблемы с помощью традиционной финансовой системы. Одной из основных проблем, с которыми сталкиваются финансовые учреждения, является возможность предоставить кредит подходящим заявителям.
В 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 баллов по сбалансированной точности для сложных задач, и при этом соответствует производительности для существующих категорий точности.
Это многообещающе не только для будущих исследований, но и для продуктов со слабым контролем, особенно в сфере категоризации транзакций и финансов.
Реальные варианты использования и приложения:
Возможность точно и эффективно классифицировать данные о банковских транзакциях открывает множество дверей и имеет широкий спектр приложений в сфере финансовых услуг. Вот лишь некоторые из нововведений, которые возможны…
- Оценка кредитного риска. Классификация транзакций позволяет в режиме реального времени получить представление о поведении пользователей в отношении расходов, помогая в оценке кредитного риска. Регулярные платежи могут служить индикатором способности пользователя погасить долг с малой задержкой, что обеспечивает более быстрое представление о финансовом состоянии.
- Анализ бизнес-аккаунта. Проводя различие между личными и бизнес-расходами в бизнес-аккаунтах, мы можем выявить смешанные виды деятельности и ответственное поведение в отношении расходов, что является важными показателями финансового благополучия и зрелости бизнеса.
- Финансовая аналитика для пользователей. Категоризация транзакций может помочь пользователям понять и улучшить свое финансовое положение. Он также служит основой для систем возврата наличных денег и вознаграждений и может помочь пользователям управлять своими услугами по подписке.
- Вовлечение и обучение. Информационная информация, полученная в результате классифицированных транзакций, может быть представлена пользователям, что может способствовать их вовлечению и поощрять пользователей к здоровому финансовому поведению. Он также может предоставить обучение, чтобы помочь пользователям получить более высокие кредитные баллы и сопоставить их с лучшими кредитными предложениями.
- Бизнес-бенчмаркинг. Категоризация транзакций может дать компаниям ценную информацию о структуре их расходов по сравнению с аналогами в отрасли, помогая лучше управлять финансами.
- Мониторинг происшествий. Возможность классифицировать повторяющиеся транзакции может активировать службы мониторинга происшествий, помогая пользователям прогнозировать предстоящие повторяющиеся расходы и готовиться к ним, а также снижая вероятность поведения по умолчанию.
- Встраивание на уровне пользователей. Сжатые представления финансовой информации пользователей, такие как Client2Vec, могут улучшить сегментацию пользователей на основе транзакций, обнаружение мошенничества и таргетинг продуктов, предлагая более глубокое и более глубокое понимание поведения пользователей.
В заключение
Мы предлагаем масштабируемый, слабо контролируемый подход к классификации банковских транзакций, который устраняет необходимость в аннотации данных. Наше решение экономически выгодно и превосходит существующие методы, такие как Plaid, с точки зрения точности. Он также поддерживает новые и сложные задачи, которые могут быть реализованы в короткие сроки.
Это свидетельствует о силе комбинирования вложений, вероятностных меток, построенных на основе привязки и эвристики, и мультимодальных глубоких нейронных сетей для точной категоризации транзакций. Мы считаем, что наша работа открывает многообещающие возможности для реального использования, такого как оценка кредитного риска и финансовый мониторинг, и предоставляет практический пример слабых методов контроля для приложений продукта.
Благодарности
Статья о категоризации транзакций со слабым надзором была написана Лиамом Тораном совместно с Алексом Келлером, Аланом Саммароне и Кори ван дер Уолтом, автором этой записи в блоге. Спасибо, Кэтрин Гизе, за редактирование!
Подробнее читайте в полной бумаге.