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

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

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

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

Возникает важное понятие: понятие подобных транзакций. Есть много способов измерить сходство двух транзакций, одним из которых является индекс Жаккара, широко используемый в информатике. Этот индекс определяется как отношение общих слов к общему количеству различных слов в обеих транзакциях. Например, индекс Жаккарда для «Пример описания банковской транзакции» и «Описание банковской транзакции немного длиннее» будет 4/8, 50% сходства.

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

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

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

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

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