RU2777958C2 - Ai transaction administration system - Google Patents

Ai transaction administration system Download PDF

Info

Publication number
RU2777958C2
RU2777958C2 RU2020101484A RU2020101484A RU2777958C2 RU 2777958 C2 RU2777958 C2 RU 2777958C2 RU 2020101484 A RU2020101484 A RU 2020101484A RU 2020101484 A RU2020101484 A RU 2020101484A RU 2777958 C2 RU2777958 C2 RU 2777958C2
Authority
RU
Russia
Prior art keywords
logs
transaction
clusters
subset
computer
Prior art date
Application number
RU2020101484A
Other languages
Russian (ru)
Other versions
RU2020101484A (en
RU2020101484A3 (en
Inventor
Ронни ФЕЛИНГ
Саманта ШОРТ
Аксель ДЕ ГУРСАК
Рафаэль ДЮБУА
Йорг ЭРЛЕБАХ
Карин ФОН ФУНК
Original Assignee
Дзе Бостон Консалтинг Груп, Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/251,051 external-priority patent/US20200233857A1/en
Application filed by Дзе Бостон Консалтинг Груп, Инк. filed Critical Дзе Бостон Консалтинг Груп, Инк.
Publication of RU2020101484A publication Critical patent/RU2020101484A/en
Publication of RU2020101484A3 publication Critical patent/RU2020101484A3/ru
Application granted granted Critical
Publication of RU2777958C2 publication Critical patent/RU2777958C2/en

Links

Images

Abstract

FIELD: computer technology.
SUBSTANCE: following stages are performed: reception of transaction data; formation of a cleared dataset based on it; clustering; identification of a specific subset from a set of clusters, and reception of a user definition of a type for each cluster of this specific subset; training a prediction model, using logs; determination of transaction types for logs in the cleared dataset, which are not associated yet with a transaction type; formation of a report on transactions.
EFFECT: implementation of automatic formation of reports on completed transactions.
20 cl, 10 dwg

Description

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

[0001] Бюджетирование является решающим аспектом для организаций, чтобы обеспечить прозрачность своих затрат и обеспечить возможность по улучшению своего баланса доходов и расходов. Бюджетирование с нуля (ZBB) является способом бюджетирования, при котором бюджеты фактически строятся с нуля, обеспечивая принудительную переоценку владельцами затрат своих расходов. Бюджеты формируются путем исследования деятельности с использованием рычагов цен и потребления для оценки требований бизнеса к тратам на предстоящий период, независимо от того, является ли каждый бюджет больше или меньше предыдущего. ZBB позволяет достигать стратегических целей высшего уровня посредством процесса бюджетирования путем привязки бюджета и соответствующих трат к конкретным функциям, местоположениям и хозяйственным единицам, и группировать затраты и, следовательно, стратегические приоритеты образом, который обеспечивает измерение по отношению к предыдущим результатам и текущим ожиданиям.[0001] Budgeting is a critical aspect for organizations to be transparent about their costs and enable them to improve their balance of income and expenses. Zero-Zero Budgeting (ZBB) is a budgeting technique in which budgets are actually built from scratch, forcing cost owners to reassess their costs. Budgets are formed by examining activities using price and consumption levers to assess the business' spending requirements for the coming period, whether each budget is greater or less than the previous one. ZBB allows top-level strategic goals to be achieved through the budgeting process by linking the budget and associated spending to specific functions, locations, and business units, and grouping costs, and therefore strategic priorities, in a way that provides measurement against past results and current expectations.

[0002] Несмотря на то, что бюджетирование с нуля может помочь снизить затраты, избегая типичных просчетов бюджетирования, таких как полное увеличение или уменьшение бюджета предыдущего периода, это как правило трудоемкий процесс, который занимает много больше времени, чем традиционное, основанное на затратах бюджетирование. В некоторых случаях, чтобы понять истинную природу факторов цены и потребления, и чтобы понять, какие части трат имеют очевидную ценность, а какие части являются расточительством, организации используют транзакционные данные. В некоторых случаях это может потребовать сортировки, классификации и установления категории тысяч или миллионов транзакций. Неточная классификация по учету, неорганизованное ведение записей, неэффективное хранение и прочие связанные проблемы с лежащими в основе финансовыми данными затрудняют экспертизу таких факторов и точное повторное установление категории расходов. Традиционные подходы требуют значительных человеческих усилий для повторной классификации данных, часто требующие работы сотен людей для просмотра и повторной классификации данных транзакционного уровня по соответствующим категориям затрат. Однако, установление категории с участием человека может стать жертвой более серьезных проблем, поскольку знания о классификации затрат у разных людей могут привести к очень непрозрачному и невоспроизводимому установлению категории. В некоторых более поздних подходах к оценке и классификации данных транзакционного уровня, методики машинного обучения используются в дополнение к этим ручным усилиям. Даже эти подходы требуют глубоких знаний в отношении конкретного набора данных для точного установления их категории. Несмотря на то, что эти подходы могут быть успешными в сокращении ручного установления категории данных о тратах, модели и системы для классификации данных о тратах часто являются очень специфичными для клиентов из их бизнеса. Модели, используемые для установления категории данных, как правило, не могут быть перенесены на других клиентов, в частности на тех, которые находятся в других отраслях промышленности. В результате точность этих моделей, как правило, является недостаточной.[0002] While scratch budgeting can help reduce costs by avoiding typical budgeting miscalculations such as full increases or decreases in the previous period's budget, it is typically a laborious process that takes much longer than traditional cost-based budgeting. . In some cases, organizations use transactional data to understand the true nature of price and consumption factors, and to understand which parts of spending are of obvious value and which parts are waste. In some cases, this may require sorting, classifying, and categorizing thousands or millions of transactions. Inaccurate accounting classifications, disorganized record keeping, inefficient storage and other related problems with underlying financial data make it difficult to examine such factors and accurately re-categorize expenditure. Traditional approaches require significant human effort to reclassify data, often requiring hundreds of people to review and reclassify transactional level data into appropriate cost categories. However, human-assisted categorization can fall prey to more serious problems, as knowledge of cost classification by different people can lead to very opaque and non-reproducible categorization. In some more recent approaches to evaluating and classifying transactional data, machine learning techniques are used to supplement these manual efforts. Even these approaches require in-depth knowledge of a particular dataset to accurately categorize it. While these approaches can be successful in reducing the manual categorization of spending data, the models and systems for classifying spending data are often very specific to their business clients. The models used to establish the category of data generally cannot be transferred to other clients, in particular those in other industries. As a result, the accuracy of these models is generally insufficient.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0003] Различные варианты осуществления в соответствии с настоящим изобретением будут описаны со ссылкой на чертежи, на которых:[0003] Various embodiments in accordance with the present invention will be described with reference to the drawings, in which:

[0004] Фиг. 1A и 1B изображают интерфейс приложения для представления данных о тратах с установленной категорией и обеспечения пользователю возможности исследования данных о тратах.[0004] FIG. 1A and 1B show an application interface for presenting categorized spending data and allowing a user to explore the spending data.

[0005] Фиг. 2A и 2B изображают примеры журналов и счетов-фактур, которые могут быть включены в необработанные данные о тратах.[0005] FIG. 2A and 2B depict examples of journals and invoices that may be included in raw spending data.

[0006] Фиг. 3 изображает матрицу встречаемости термов, которая может включать в себя векторы журнала, описывающие характеристики индивидуальных журналов.[0006] FIG. 3 depicts a term occurrence matrix that may include journal vectors describing the characteristics of individual journals.

[0007] Фиг. 4 изображает дендрограмму, которая показывает один путь, посредством которого в отношении журналов может быть осуществлена иерархическая кластеризация.[0007] FIG. 4 depicts a dendrogram that shows one way in which logs can be hierarchically clustered.

[0008] Фиг. 5 иллюстрирует аспекты кластеризации и установления категории журналов расходов.[0008] FIG. 5 illustrates aspects of clustering and categorizing expense logs.

[0009] Фиг. 6 иллюстрирует аспекты модели, которая использует одну или более методик машинного обучения, чтобы прогнозировать категории для журналов расходов.[0009] FIG. 6 illustrates aspects of a model that uses one or more machine learning techniques to predict categories for expense journals.

[0010] Фиг. 7 является графиком, представляющим один пример того, как может быть установлена категория данных о тратах во время фаз базового отображения, разметки высокой стоимости и отображения ИИ согласно способам, описанным в данном документе.[0010] FIG. 7 is a graph representing one example of how spending data can be categorized during the base display, high cost markup, and AI display phases according to the methods described herein.

[0011] Фиг. 8 представляет способ для установления категории данных о тратах, который может быть использован в некоторых вариантах осуществления.[0011] FIG. 8 represents a method for establishing a category of spending data that may be used in some embodiments.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION

[0012] Системы и способы в соответствии с различными вариантами осуществления настоящего изобретения могут преодолевать один или более из вышеупомянутых или прочих недостатков, которые встречаются в традиционных подходах к установлению категории и анализу данных.[0012] Systems and methods in accordance with various embodiments of the present invention can overcome one or more of the aforementioned or other disadvantages that are encountered in traditional approaches to categorization and data analysis.

[0013] В частности, различные варианты осуществления, описанные в данном документе, предлагают способы для установления категории данных о тратах, которые могут включать в себя информацию главной книги (GL), кредиторской задолженности (AP), заказа на поставку (PO), включая, но не ограничиваясь, транзакции, счета-фактуры, расходные квитанции, основанные на поставщике наборы данных и прочие документированные расходы, которые в данном документе совокупно упоминаются как журналы трат (или просто журналы). После сбора данных о тратах из всех соответствующих систем и/или источников данных, данные обрабатываются и консолидируются, чтобы сформировать очищенный набор данных (CDS). CDS включает в себя данные о тратах, которые были отфильтрованы, чтобы удалить менее важную информацию, и/или обработаны для стандартизации информации, используемой для установления категории журнала. В некоторых случаях CDS включает в себя организованную структуру, которая разбивает информацию о тратах по типам полей (например, суммарные затраты, продавец, дата транзакции и т.д.). В некоторых случаях стандартизация данных о тратах вызывает применение операций обработки на естественном языке к текстовой информации, ассоциированной с журналами. Затем в отношении журналов из CDS осуществляется кластеризация на группы на основе сходства слов, затрат, дат или других шаблонов и признаков, которая формирует новый набор данных меньшего размера: минимальный набор данных (MDS). MDS составляет группы журналов, представляющих собой один и тот же тип транзакции (например, «Плата за такси» или «Поставщик A»). На основе операции кластеризации каждый журнал в рамках одного и того же кластера может быть отображен в одной и той же категории затрат.[0013] In particular, the various embodiments described herein provide methods for categorizing spending data, which may include general ledger (GL), accounts payable (AP), purchase order (PO) information, including but not limited to transactions, invoices, expense receipts, vendor-based datasets, and other documented expenses, which are collectively referred to as spending journals (or simply journals) in this document. After spending data is collected from all relevant systems and/or data sources, the data is processed and consolidated to form a Cleaned Data Set (CDS). The CDS includes spending data that has been filtered to remove less important information and/or processed to standardize the information used to establish the journal's category. In some cases, the CDS includes an organized structure that breaks down spending information into field types (eg, total spend, vendor, date of transaction, etc.). In some cases, the standardization of spending data causes natural language processing operations to be applied to textual information associated with journals. The journals from the CDS are then clustered into groups based on word similarity, costs, dates, or other patterns and features, which form a new smaller data set: the Minimum Data Set (MDS). The MDS makes up groups of journals that represent the same type of transaction (for example, "Taxi Charge" or "Vendor A"). Based on the clustering operation, each log within the same cluster can be mapped to the same cost category.

[0014] В некоторых случаях иерархическая структура категорий определяется по меньшей мере частично в кластерной структуре и в некоторых случаях структура категорий основана на конкретных потребностях клиента. Затем журналы размечаются или устанавливается их категория по фазам, где один или более характерные журналы из каждого кластера используются, чтобы определять информацию о категории для каждого из журналов, ассоциированных с кластером. На фазе один установление категории некоторых из журналов или кластеров может быть осуществлено посредством интеллектуального алгоритма предварительно определенных правил - например, может быть автоматически установлена категория журналов или кластеров, отвечающих особым критериям и включающих в себя информацию о контексте клиента (например, включающих структуру счетов). На второй фазе выбираются кластеры высокой стоимости, и их категория устанавливается вручную. На третьей фазе модель машинного обучения обучается с использованием данных о тратах с установленной категорией, и она используется, чтобы автоматически устанавливать категорию оставшихся данные о тратах с не установленной категорией. В некоторых случаях способ Человек-в-Цикле (HITL) может быть использован для повышения точности установления категории. Таким образом алгоритм определяет качество выполнения прогнозирования моделью. Если он определяет качество для фрагмента трат как находящееся ниже особой пороговой величины, то алгоритм либо регулирует параметры модели, либо идентифицирует дополнительные журналы, категория которых должна быть установлена вручную. Затем фазы два и три повторяются до тех пор, пока не будет установлена категория 95-100% трат.[0014] In some cases, the hierarchical structure of the categories is determined at least in part in a cluster structure, and in some cases the structure of the categories is based on the specific needs of the client. The logs are then tagged or categorized by phase, where one or more characteristic logs from each cluster are used to determine category information for each of the logs associated with the cluster. In phase one, categorization of some of the journals or clusters may be done through an intelligent algorithm of predefined rules—for example, journals or clusters that meet specific criteria and include customer context information (e.g., including account structure) may be automatically categorized. In the second phase, high value clusters are selected and their category is set manually. In the third phase, a machine learning model is trained using the categorized spending data, and it is used to automatically categorize the remaining uncategorized spending data. In some cases, the Man-in-the-Like (HITL) method can be used to improve the accuracy of the category establishment. Thus, the algorithm determines the quality of the forecasting performance by the model. If it determines the quality for the spending chunk to be below a specific threshold, then the algorithm either adjusts the model parameters or identifies additional journals that must be categorized manually. Phases two and three are then repeated until the 95-100% spending category is established.

[0015] В отличие от традиционных способов, способы, описанные в данном документе подходят даже когда отсутствуют предварительные глубокие знания в отношении практической деятельности клиента. Например, пространственные базы данных предварительного установления категории (например, путем согласования поставщиков) не нужны при использовании раскрытых способов. Посредством операций в виде формирования MDS данных о тратах, кластеризации журналов, соответствующих сходным транзакциям, и запроса у пользователя установления категории кластеров высокой стоимости, может быть быстро получен приемлемый обучающий набор данных, который подходит для обучения моделей, которые, в свою очередь, могут быть использованы для автоматического установления категории оставшихся журналов с высокой степенью точности. Путем кластеризации журналов значительно сокращается количество определений категории, что в свою очередь делает процесс быстрее и менее ресурсоемким. Раскрытые способы дополнительно обеспечивают методики машинного обучения, которые позволяют процессу стать менее трудоемким и более точным со временем. Эти и прочие преимущества станут очевидными в нижеследующем описании.[0015] Unlike traditional methods, the methods described herein are suitable even when there is no prior in-depth knowledge of the client's practice. For example, spatial pre-categorization databases (eg, by negotiating vendors) are not needed when using the disclosed methods. Through operations in the form of generating MDS spending data, clustering logs corresponding to similar transactions, and asking the user to categorize high cost clusters, an acceptable training set can be quickly obtained that is suitable for training models, which in turn can be used to automatically categorize the remaining journals with a high degree of accuracy. By clustering the logs, the number of category definitions is greatly reduced, which in turn makes the process faster and less resource intensive. The disclosed methods further provide machine learning techniques that allow the process to become less labor intensive and more accurate over time. These and other advantages will become apparent in the following description.

[0016] Фиг. 1A изображает приложение для представления пользователю данных о тратах с установленной категорией, которые часто упоминаются как куб трат. В изображенном интерфейсе 100 изображены суммы 102 расходов для различных категорий 104a уровня 1, как, впрочем, и визуальные данные 106 (графы, таблицы, диаграммы и аналогичное), чтобы выразить деление распределенных на категории данных о тратах пользователю. Интерфейс может предусматривать многообразие выбираемых пользователем признаков, чтобы позволять пользователю исследовать данные о тратах - позволяя пользователю быстро понимать состояние трат организации за выбранный период (например, 1 месяц, 6 месяцев, 1 год или другая выбранная величина, для которой были предоставлены данные о тратах). Куб трат позволяет пользователю увидеть, каким образом траты распределены по и между организационными единицами компании, обеспечивая прозрачность на наиболее детальном уровне по всем пакетам затрат.[0016] FIG. 1A depicts an application for presenting categorized spending data to a user, often referred to as a spending cube. In the depicted interface 100, spending amounts 102 for various level 1 categories 104a are displayed, as well as visual data 106 (graphs, tables, charts, and the like) to express the categorization of spending data to the user. The interface may provide a variety of user-selectable features to allow the user to explore spending data - allowing the user to quickly understand the organization's spending status over a selected period (e.g., 1 month, 6 months, 1 year, or other selected value for which spending data has been provided) . The spending cube allows the user to see how spending is distributed across and across company organizational units, providing transparency at the most granular level across all cost packages.

[0017] Фиг. 1B изображает снимок 101 с экрана, представленный приложением, показывающий вид с более высоким разрешением данных о тратах с установленной категорией и, таким образом, обеспечивающий более глубокий анализ, чем тот, что показан снимком с экрана на Фиг. 1A. Дополнительные подробности представлены с использованием иерархической структуры категорий, в которой установлена категория различных журналов расходов. В изображенном интерфейсе каждая категория 104a уровня 1 состоит из одной или более категорий 104b уровня 2, и каждая категория уровня 2 в свою очередь состоит из одной или более категорий 104c уровня 3. Несмотря на то, что изображена трехъярусная иерархическая структура, может присутствовать больше или меньшей ярусов. В некоторых случаях поиск или демонстрация данных о тратах могут осуществляться на основе одной или более категорий журнала или счета-фактуры, которые не попадают в иерархическую структуру категорий. Это может быть выполнено в контексте категорий 104a-c трат. Например, расходы 108 на имущество для международной организации могут быть разбиты по странам, в которых работает организация. В некоторых случаях пользователь может фильтровать данные о тратах на основе журналов расходов, которые удовлетворяют критериям даты, критериям местоположения, критериям отдела или любым другим выбранным критериям, которые могут быть полезными для классификации данных о расходах. В других случаях пользователь может осуществлять поиск по данным о тратах на основе альтернативной иерархической структуры категорий. Например, пользователь может иметь возможность выбора альтернативной иерархической структуры категорий, чтобы увидеть, каким образом затраты распределяются по различным организационным единицам компании, таким как хозяйственные единицы, суб-хозяйственные единицы или регионы, страны и аналогичное.[0017] FIG. 1B shows an application screen shot 101 showing a higher resolution view of the spending data with a category set and thus providing a deeper analysis than that shown in the screen shot of FIG. 1A. Additional details are presented using a hierarchical category structure that sets the category of the various expense journals. In the depicted interface, each level 1 category 104a consists of one or more level 2 categories 104b, and each level 2 category in turn consists of one or more level 3 categories 104c. Although a three-tiered hierarchical structure is depicted, more or smaller tiers. In some cases, spending data may be searched or displayed based on one or more journal or invoice categories that do not fit into the category hierarchy. This can be done in the context of spending categories 104a-c. For example, property costs 108 for an international organization may be broken down by the countries in which the organization operates. In some cases, the user can filter spending data based on expense journals that meet date criteria, location criteria, department criteria, or any other selected criteria that may be useful for classifying the expense data. In other cases, the user may search through spending data based on an alternative hierarchical category structure. For example, the user may be able to select an alternative hierarchical category structure to see how costs are allocated to different organizational units of the company, such as business units, sub-business units or regions, countries, and the like.

[0018] В некоторых случаях приложение может быть использовано для вычисления метрик затрат на основе данных о тратах с установленной категорией. В некоторых случаях приложение может предлагать пользователю рекомендации или предупреждения на основе данных о тратах. Например, приложение может извещать пользователя о том, что конкретная категория расходов была очень непостоянной в течение прошедших периодов бюджетирования и что пользователь или организации должны осуществлять планирование соответствующим образом или расследовать источник непостоянства. Следует иметь в виду, что много инструментов программного обеспечения для представления и дальнейшего анализа данных о тратах, известных в настоящее время или разработанных позже, может быть использовано с наборами данных с установленной категорией, созданными посредством способов, описанных в данном документе. Для краткости такие известные инструменты для анализа и представления данных о тратах не обсуждаются очень подробно в данном документе.[0018] In some cases, an application can be used to calculate cost metrics based on categorized spending data. In some cases, the application may offer recommendations or warnings to the user based on spending data. For example, the application may notify the user that a particular expense category has been highly volatile during past budgeting periods and that the user or organizations should plan accordingly or investigate the source of the volatility. It should be appreciated that many software tools for presenting and further analyzing spending data, now known or later developed, can be used with categorized datasets created by the methods described herein. For the sake of brevity, such known tools for analyzing and presenting spending data are not discussed in great detail in this document.

[0019] Используемый в данном документе клиент может быть любой организацией, торгово-промышленным предприятием, человеком, группой или субъектом, который ведет журналы хозяйственных расходов (также упоминаемых как траты клиента). В целом способы, описанные в данном документе, будут исполняться стороной отличной от клиента. Однако это не обязательно так. Как правило требования к данным клиента определяются до установления категории данных о тратах. Определение требований к данным может включать в себя, например, определение того, сколько уровней иерархической структуры данных будет использовано, или с какими дополнительными категориями будут ассоциированы журналы. Например, некоторые клиенты могут пожелать, чтобы расходы были классифицированы по географическому местоположению, дате, ассоциированному персоналу и аналогичному. В некоторых случаях клиенты уже используют иерархическую структуру категорий по отношению к которой они хотели бы установить категорию журналов расходов.[0019] As used herein, a client can be any organization, business, person, group, or entity that maintains logs of business expenses (also referred to as client spending). In general, the methods described in this document will be performed by a party other than the client. However, this is not necessarily the case. Typically, customer data requirements are determined before the spending data category is established. Determining data requirements may include, for example, determining how many levels of the hierarchical data structure will be used, or which additional categories logs will be associated with. For example, some clients may wish to classify expenses by geographic location, date, associated personnel, and the like. In some cases, customers already use a hierarchical category structure against which they would like to set the expense journal category.

[0020] В некоторых случаях более базовое установление категорий данных о тратах (например, меньше ярусов у структуры категорий) может быть предложено клиенту по сниженной цене. Фаза подготовки в виде определения требований клиента также может быть использована, чтобы определять или оценивать уровень детализации, на котором может быть установлена категория данных о тратах. Например, если большинство записей о расходах клиента неполные или отсутствуют достаточные подробности, то клиент может быть проинформирован о том, как это может отразиться на достоверности результатов и с какой детализацией (например, сколько ярусов) может быть установлена категория журналов расходов. В некоторых случаях данная фаза включает в себя автоматическую или вручную экспертизу данных клиента, включающих в себя отчеты о прибылях и убытках, главные книги, Акты Сверки Начислений AP и PO. Как правило это выполняется, чтобы продемонстрировать клиенту потенциал ценности полного установления категории трат. Как показывает опыт значительный потенциал экономии теряется из-за отсутствия прозрачности трат в частности на уровне детализации.[0020] In some cases, a more basic definition of spending data categories (eg, fewer tiers in the category structure) may be offered to the customer at a reduced cost. The preparation phase, in the form of defining customer requirements, can also be used to determine or evaluate the level of detail at which the spending data category can be established. For example, if most of a client's expense records are incomplete or lack sufficient detail, then the client can be informed about how this might affect the validity of the results and how detailed (such as how many tiers) the category of expense logs can be set. In some cases, this phase includes automatic or manual review of client data, including income statements, general ledgers, AP and PO Accrual Reconciliations. Typically, this is done to demonstrate to the client the potential value of a complete spending categorization. Experience has shown that significant savings potential is lost due to a lack of spending transparency, in particular at the level of detail.

[0021] После того, как определены требования к данным, консолидируются необработанные данные о тратах. Необработанные данные о тратах могут включать в себя, например, бумажные и электронные копии счетов-фактур и квитанций и прочей документации о хозяйственных расходах. В некоторых случаях требуется, чтобы необработанные данные о тратах были отсканированы и переведены в цифровую форму из бумажных записей. В некоторых случаях необработанные данные о тратах могут включать в себя счета-фактуры, которые были отсканированы (например, изображения JPEG, PDF, PNG), но не имеют текста с возможностью поиска. В некоторых случаях журналы расходов могут быть на разных языках. В таких случаях текст из данных изображения может быть распознан с использованием усовершенствованных методик оптического распознавания символов (OCR). В зависимости от качества записей клиента сбор данных может включать в себя различные операции миграции, транскрипции, декодирования и кодирования.[0021] Once the data requirements are determined, the raw spending data is consolidated. Raw spending data may include, for example, paper and electronic copies of invoices and receipts and other business expense documentation. In some cases, raw spending data is required to be scanned and digitized from paper records. In some cases, raw spending data may include invoices that have been scanned (eg, JPEG, PDF, PNG images) but do not have searchable text. In some cases, expense logs may be in different languages. In such cases, text from image data can be recognized using advanced optical character recognition (OCR) techniques. Depending on the quality of the client's records, data collection may include various migration, transcription, decoding, and encoding operations.

[0022] При консолидировании необработанных данных о тратах журналы сохраняются в общей базе данных, которая упоминается в данном документе как база данных затрат. База данных затрат может быть, например, базой данных на Языке Структурированных Запросов (SQL) или любой другой реляционной или не реляционной базой данных. База данных может быть консолидирована на одном устройстве памяти, распределена по нескольким запоминающим устройствам или может быть сохранена в, например, облаке. В некоторых случаях база данных затрат используется только для хранения журналов для одного периода бюджетирования, а в некоторых случаях база данных затрат может включать в себя журналы за прошедшие платежные периоды, которые могут быть сохранены с целью сравнения.[0022] When consolidating raw spending data, the logs are stored in a common database, which is referred to herein as the cost database. The cost database may be, for example, a Structured Query Language (SQL) database or any other relational or non-relational database. The database may be consolidated on a single storage device, distributed across multiple storage devices, or may be stored in the cloud, for example. In some cases, the cost database is only used to store journals for one budgeting period, and in some cases, the cost database may include journals from past pay periods that can be stored for comparison purposes.

[0023] Фиг. 2A и 2B иллюстрируют примеры журналов, которые могут быть включены в оборот необработанных данных о тратах клиента. Фиг. 2A изображает пример счета-фактуры, который аккуратно отформатирован для обеспечения удобочитаемости перечисленных полей. В традиционных автоматических или ручных операциях четкое форматирование счета-фактуры может увеличить вероятность того, что существенные поля данных идентифицируются корректно. В противоположность Фиг. 2B изображает счет-фактуру, который не включает в себя форматирование, которое способствует распознаванию данных о тратах. Отсутствие форматирования может быть результатом машинного перевода или предыдущего преобразования типа файлов. В некоторых случаях журналы могут даже быть исходно созданы без четкого форматирования. Журналы расходов, такие как изображенные на Фиг. 2B, затрудняют людям идентификацию соответствующей информации. Эти счета-фактуры также могут привести к ошибкам, когда для анализа данных журнала используются компьютеры. Иногда компьютеры могут объединять текстовые поля, которые должны быть разделены, что может привести к неверному или некогерентному анализу данных о тратах. Например, ненадлежащее форматирование может привести к тому, что поле даты объединяется с полем затрат. Путем применения методик обработки на естественном языке (NLP) к данным журнала можно избежать многих затруднений форматирования. В некоторых случаях операции NLP могут быть применены только к журналам с форматированием, которое мешает автоматическому анализу, а в некоторых случаях операции NLP применяются к всем журналам, чтобы нормализовать форматирование данных о тратах.[0023] FIG. 2A and 2B illustrate examples of logs that may be included in the circulation of raw customer spending data. Fig. 2A shows an example invoice that is neatly formatted to make the listed fields legible. In traditional automated or manual transactions, clear invoice formatting can increase the likelihood that significant data fields are correctly identified. In contrast to FIG. 2B depicts an invoice that does not include formatting that aids in the recognition of spending data. Missing formatting may be the result of machine translation or previous file type conversion. In some cases, logs may even be initially created without clear formatting. Expense logs such as those shown in FIG. 2B make it difficult for people to identify relevant information. These invoices can also lead to errors when computers are used to analyze log data. Sometimes computers can combine text fields that should be separated, which can lead to incorrect or incoherent parsing of spending data. For example, improper formatting can cause a date field to be merged with a cost field. By applying Natural Language Processing (NLP) techniques to log data, many formatting issues can be avoided. In some cases, NLP operations can only be applied to journals with formatting that interferes with automatic analysis, and in some cases, NLP operations are applied to all journals to normalize spending data formatting.

[0024] Для увеличения скорости, с которой журналы классифицируются и устанавливается их категория, данные затрат сначала очищаются и предварительно обрабатываются, чтобы сформировать консолидированный очищенный набор данных (CDS). CDS содержит данные о тратах с четкими и понятными описаниями, где искаженные, дублирующие или неинформативные данные удалены. Использование CDS в качестве базы для классификации журналов значительно повышает эффективность и скорость установления категории, поскольку неважная информация и затеняющее форматирование могут быть удалены, что может препятствовать способности человека или компьютера быстро и точно обрабатывать данные журнала.[0024] To increase the speed with which logs are classified and categorized, cost data is first cleaned and pre-processed to form a consolidated clean data set (CDS). The CDS contains spending data with clear and understandable descriptions where garbled, duplicate or uninformative data has been removed. Using the CDS as the basis for classifying logs greatly improves the efficiency and speed of categorization, because irrelevant information and shading formatting can be removed, which can interfere with a person's or computer's ability to quickly and accurately process log data.

[0025] Формирование CDS может вызывать операции фильтрации для удаления дублирующих транзакционных данных. Дублирующие данные транзакции часто возникают, когда данные счета-фактуры сохраняются в больше чем одном местоположении или сохраняются несколько раз в записях клиента. Пренебрежение идентификацией этих дублирующих транзакций может вводить ошибку и требовать значительно больше усилий для коррекции позже. Что еще хуже, неспособность идентифицировать дубликаты может привести к плохому бюджетированию, если бюджет создан на предпосылке ложных данных. В некоторых случаях идентичные или совпадающие записи могут быть определены и удалены автоматически на основе сравнения текстовых данных для каждого журнала. В некоторых случаях дублирующие или совпадающие журналы идентифицируются, и у пользователя может быть запрошена проверка того, что журналы являются дубликатами.[0025] The formation of a CDS may invoke filtering operations to remove duplicate transactional data. Duplicate transaction data often occurs when invoice data is stored in more than one location or stored multiple times in customer records. Failure to identify these duplicate transactions can introduce error and require significantly more effort to correct later. Even worse, failure to identify duplicates can lead to poor budgeting if the budget is based on false data. In some cases, identical or matching entries can be identified and removed automatically based on a comparison of the text data for each log. In some cases, duplicate or matching logs are identified and the user may be asked to verify that the logs are duplicates.

[0026] При формировании очищенного набора данных различные не относящиеся к делу транзакции, такие как обесценение, амортизация и налоги, также могут быть удалены. В некоторых случаях удаляются внутренние финансовые перемещения (например, начисления и сторнирования), как, впрочем, и ‘не имеющие ценности’ транзакции и журналы, которые включают в себя искаженные данные. Чтобы верифицировать то, что CDS является правильным и не включает в себя не относящиеся к делу или дублирующие транзакции, суммарные затраты, представленные данными журнала в CDS, сравниваются с базисными значениями клиента, как записано в, например, отчете о Прибылях и Убытках для соответствующего периода или оборотно-сальдовой ведомости. Если идентифицируется солидное расхождение или несоответствие, то разница может быть согласована путем коррекции идентифицированных ошибок в журнале или путем добавления дополнительных журналов в базу данных затрат, чтобы учитывать транзакции, отсутствующие в необработанных данных. Когда данные о тратах в CDS могут быть прослежены до значений, указанных в отчете о Прибылях и Убытках (или ином эквивалентном финансовом документе), то впоследствии данным о тратах с установленной категорией можно доверять, как точно представляющим суммарные траты.[0026] When generating a cleaned dataset, various irrelevant transactions such as depreciation, amortization, and taxes may also be removed. In some cases, internal financial transfers (such as accruals and reversals) are deleted, as are 'valueless' transactions and journals that include corrupted data. To verify that the CDS is correct and does not include irrelevant or duplicate transactions, the total costs represented by the log data in the CDS are compared to the customer's baseline values as recorded in, for example, the Profit and Loss Statement for the relevant period or balance sheet. If a significant discrepancy or inconsistency is identified, then the difference can be reconciled by correcting identified log errors or by adding additional logs to the cost database to account for transactions missing from the raw data. When spending data in the CDS can be traced back to the values shown in the income statement (or other equivalent financial document), then categorized spending data can subsequently be trusted to accurately represent total spending.

[0027] При формировании CDS различные этапы обработки на естественном языке (NLP) применяются к данным расходов, чтобы обеспечить последующий анализ каждой транзакции. Эти операции могут помочь в определении релевантных ключевых слов и в определении зависимости между транзакциями для кластеризации. Некоторые из этих операций NLP включают в себя (1) преобразование в строчный текст, (2) удаление дублирующих слов, (3) удаление пунктуации, (4) удаление не буквенно-цифровых символов, (5) удаление чисел (в некоторых случаях только из определенных полей), (6) удаление (в некоторых случаях) слов, которые меньше порогового количества символов (например, 2 символов), (7) удаление кодов, идентифицированных как сочетания букв и чисел, (8) перевод текста на один язык (например, английский язык), (9) определение ведущих слов и сортировка словосочетаний путем преобразования слов в их базовую словарную форму (например, «расходы» становятся «расход»), (10) удаление названий месяцев и сокращений, (11) удаление стоп-слов, таких как «для», артикли, (12) удаление названий городов, (13) удаление собственных имен и названий, (14) замена фамилии поставщика, если отсутствует поле поставщика, (15) удаление имени поставщика, когда присутствует в полном описании, (16) выбор ключевых слов по предварительно определенным спискам или узкоспециализированный анализ, аналогичный их вхождению в одну/несколько категорий, (17) использование информативной оценки, аналогичной мере частота терма - обратная частота документа (TF-IDF) и (18) использование моделей Машинного Обучения для Распознавания Именованных Сущностей. Следует понимать, что могут присутствовать дополнительные или меньшее число операций NLP, которые применяются к каждому журналу. Дополнительно некоторые операции NLP могут быть применены к определенным полям или фрагментам транзакции. Например, в некоторых случаях операции NLP применяются только к полям описания счета-фактуры, а не к полям, перечисляющим, например, имя поставщика или контактную информацию поставщика.[0027] When generating a CDS, various natural language processing (NLP) steps are applied to spending data to allow subsequent analysis of each transaction. These operations can help identify relevant keywords and determine the dependency between transactions for clustering. Some of these NLP operations include (1) converting to lowercase text, (2) removing duplicate words, (3) removing punctuation, (4) removing non-alphanumeric characters, (5) removing numbers (in some cases only from certain fields), (6) removing (in some cases) words that are less than a threshold number of characters (e.g. 2 characters), (7) removing codes identified as combinations of letters and numbers, (8) translating text into one language (e.g. , English), (9) identification of leading words and sorting of phrases by converting words to their basic dictionary form (for example, "expenses" becomes "expenses"), (10) removal of month names and abbreviations, (11) removal of stop words , such as "for", articles, (12) removal of city names, (13) removal of proper names and titles, (14) replacement of the supplier's last name if the supplier field is missing, (15) removal of the supplier's name when present in the full description, (16) selection of keywords according to preliminary lists or highly specialized analysis, similar to their entry into one/several categories, (17) using an informative assessment, similar to the term frequency - inverse document frequency (TF-IDF) measure, and (18) using Machine Learning models for Named Entity Recognition. It should be understood that there may be additional or fewer NLP operations that apply to each log. Additionally, some NLP operations can be applied to certain fields or fragments of a transaction. For example, in some cases, NLP operations apply only to invoice description fields and not to fields that list, for example, the supplier's name or supplier's contact information.

[0028] После формирования и проверки достоверности CDS, один или более алгоритмы кластеризации используются, чтобы выполнять кластеризацию журналов на группы на основе сходства, чтобы построить минимальный набор данных (MDS). Когда они достаточно похожи, то можно предположить, что журналы попадают в одну и ту же категорию и могут быть размечены в массе. Это позволяет избежать необходимости индивидуальной оценки и установления категории множества сходных журналов, которые в конечном итоге получат точно такое же обозначение категории. Например, если кластер имеет 500 журналов, тогда может быть установлена категория всех 500 журналов расходов вместе, а не индивидуально. Это значительно сокращает усилия, требуемые для установления категории журналов в базе данных затрат.[0028] After generating and validating the CDS, one or more clustering algorithms are used to cluster the logs into groups based on similarity to construct a minimum data set (MDS). When they are similar enough, it can be assumed that the journals fall into the same category and can be tagged en masse. This avoids the need to individually evaluate and categorize many similar journals that will end up with exactly the same category designation. For example, if the cluster has 500 journals, then all 500 expense journals can be categorized collectively rather than individually. This greatly reduces the effort required to establish the category of journals in the cost database.

[0029] При кластеризации рассматриваются очищенные данные журнала из CDS. В некоторых вариантах осуществления векторы журнала для каждого журнала определяются на основе ассоциированного текста, включенного в CDS. Эти векторы журнала используются для характеристики журналов по словам, найденным в журналах. Как упомянуто CDS включает в себя текст для каждого журнала расходов, который был обработан с помощью одной или более операций обработки на естественном языке. Операции NLP, исполненные над текстовыми данными, могут включать в себя, например, удаление стоп-слов, таких как артикли или «в», которые не переносят существенного смысла, удаление собственных имен и преобразование слов в их базовую форму. Операции NLP помогают стандартизировать текст по журналам так, что они могут быть легко сравнены в целях кластеризации.[0029] Clustering considers cleared log data from the CDS. In some embodiments, the log vectors for each log are determined based on the associated text included in the CDS. These log vectors are used to characterize logs by the words found in the logs. As mentioned, the CDS includes text for each expense log that has been processed by one or more natural language processing operations. NLP operations performed on text data may include, for example, removing stop words such as articles or "in" that do not carry significant meaning, removing proper names, and converting words to their base form. NLP operations help standardize text across journals so that they can be easily compared for clustering purposes.

[0030] В некоторых случаях база данных затрат может включать в себя дополнительную информацию, которой нет в MDS. К такой дополнительной информации можно обратиться, если не может быть установлена категория журнала посредством информации только в MDS, или чтобы сохранить подробные записи клиента. Дополнительная информация может включать в себя, например, весь текст, ассоциированный со счетом-фактурой, или размещение и форматирование текста в счете-фактуре. В некоторых случаях могут быть даже охарактеризованы такие аспекты, как размер шрифта текста и относительный интервал. В некоторых случаях дополнительные данные могут включать в себя метаданные из электронного файла, такого как PDF, ассоциированного со счетом-фактурой. Информация метаданных может включать в себя данные, такие как отметка времени, когда был создан счет-фактура, счет пользователя, ассоциированный с созданием счета-фактуры, данные местоположения, ассоциированные со счетом-фактурой, или системные данные машины, которая создала электронный файл. В некоторых случаях может быть записано изображение счета-фактуры. Эта дополнительная информация может быть полезной при, например, связывании журнала расходов с другими журналами расходов в базе данных затрат. В некоторых случаях доступ к дополнительной информации, хранящейся в базе данных затрат, может быть осуществлен пользователем через приложение, такое как изображенное на Фиг. 1A и 1B. Например, пользователь может запросить постатейный перечень транзакций в категории и предоставить выбор, запрашивающий демонстрацию дополнительной информации для одного или более журналов. Несмотря на то, что представлены в качестве примеров «дополнительной информации», в некоторых случаях данные, которые относятся к этим полям, могут быть сохранены в MDS, как например, когда поле было идентифицировано в качестве релевантного для кластеризации или разметки данных журнала.[0030] In some cases, the cost database may include additional information that is not in the MDS. Such additional information can be accessed if the log category cannot be established by means of the MDS-only information, or in order to maintain detailed customer records. Additional information may include, for example, all text associated with the invoice, or the placement and formatting of text on the invoice. In some cases, aspects such as text font size and relative spacing can even be characterized. In some cases, the additional data may include metadata from an electronic file, such as a PDF, associated with the invoice. The metadata information may include data such as a timestamp when the invoice was created, a user account associated with invoice creation, location data associated with the invoice, or system data of the machine that created the electronic file. In some cases, an invoice image may be recorded. This additional information can be useful when, for example, linking an expense journal to other expense journals in a cost database. In some cases, additional information stored in the cost database may be accessed by the user through an application such as the one depicted in FIG. 1A and 1B. For example, the user may request an itemized list of transactions in a category and provide a selection requesting the display of additional information for one or more journals. Although presented as examples of "additional information", in some cases data that pertains to these fields may be stored in the MDS, such as when a field has been identified as relevant for clustering or tagging log data.

[0031] В некоторых вариантах осуществления словарь термов может быть сформирован на основе слов и общих фраз, найденных в MDS. В некоторых случаях, как изображено на Фиг. 3, может быть создана матрица 300 встречаемости термов, которая имеет векторы 302 журнала и векторы 304 терма. Векторы журнала могут записывать различные признаки журнала наряду с множеством измерений журнала. Например, индексы векторов журнала могут представлять значения, указывающие количество вхождений терма в журнал или значение, указывающее некоторую другую характеристику (например, затраты, время транзакции, местоположение транзакции и т.д.). Векторы 304 терма указывают для конкретного терма количество вхождений терма в каждый журнал расходов. В некоторых случаях вектор терма может соответствовать другой характеристике, такой как сумма в долларах, и в этом случае индексы вектора будут указывать сумму в долларах для каждого журнала.[0031] In some embodiments, a dictionary of terms may be generated based on words and common phrases found in the MDS. In some cases, as shown in FIG. 3, a term occurrence matrix 300 can be created that has log vectors 302 and term vectors 304. Log vectors can record various log features along with multiple log dimensions. For example, log vector indexes may represent values indicating the number of occurrences of a term in the log, or a value indicating some other characteristic (eg, cost, transaction time, transaction location, etc.). Term vectors 304 indicate, for a particular term, the number of occurrences of a term in each expense log. In some cases, the term vector may correspond to another characteristic, such as a dollar amount, in which case the vector indices will indicate the dollar amount for each journal.

[0032] В некоторых случаях матрица встречаемости термов может быть упрощена, например, путем удаления векторов терма из матрицы встречаемости термов, которые встречаются в максимальном пороговом количестве журналов расходов (например, термы, которые встречаются в более чем 50%, 75% или в некоторых случаях в 80% журналов расходов). Если терм появляется в большинстве журналов, то терм вероятно несет меньше смысла для целей установления категории. В некоторых случаях термы из словаря могут быть определены как нерелевантные для разметки и соответствующие векторы терма могут быть удалены из матрицы встречаемости термов. В некоторых случаях имена собственные и коды замещаются подходящей классификацией во время операций NLP. В качестве примеров, «Нью-Йорк» и «Берлин» каждый могут быть замещены с помощью «город». Сходным образом «06-24-2017» может быть замещено с помощью «дата». В некоторых вариантах осуществления вектор терма может относиться к измерению отличному от количества вхождений слова. Например, значения в векторе могут представлять собой размерную информацию текста, демонстрируемого в счете-фактуре, текстовые данные информации шаблона, время, когда счет-фактура был создан, и аналогичное. В некоторых случаях вектор терма может быть удален из матрицы встречаемости термов, когда соответствующий терм не обнаруживается в минимальном пороговом количестве журналов расходов.[0032] In some cases, the occurrence matrix of terms can be simplified, for example, by removing term vectors from the occurrence matrix of terms that occur in the maximum threshold number of expense logs (for example, terms that occur in more than 50%, 75%, or in some cases in 80% of expenditure logs). If a term appears in most journals, then the term probably makes less sense for the purposes of establishing a category. In some cases, vocabulary terms may be determined to be irrelevant for markup and the corresponding term vectors may be removed from the term occurrence matrix. In some cases, proper names and codes are replaced by a suitable classification during NLP operations. As examples, "New York" and "Berlin" can each be replaced with "city". Similarly, "06-24-2017" can be replaced with "date". In some embodiments, the implementation of the term vector may refer to a dimension other than the number of occurrences of the word. For example, the values in the vector may represent the dimension information of the text displayed on the invoice, the text data of the template information, the time the invoice was created, and the like. In some cases, a term vector may be removed from the term occurrence matrix when the corresponding term is not found in the minimum threshold number of expense logs.

[0033] Кластеризация может учитывать сходства и шаблоны слов между журналами расходов. Например, повторяющиеся покупки вероятно используют уникальный набор слов и данных, которые могут идентифицировать купленный товар или услугу, продавца, регулярный интервал покупки и аналогичное. Эти шаблоны и сходства отражаются в векторах журнала для журналов расходов и используются, чтобы группировать журналы на основе меры сходства.[0033] Clustering can take into account similarities and word patterns between spending logs. For example, recurring purchases likely use a unique set of words and data that can identify the item or service purchased, the merchant, the regular purchase interval, and the like. These patterns and similarities are reflected in the journal vectors for expense journals and are used to group journals based on a measure of similarity.

[0034] В дополнение прочие признаки журнала могут быть извлечены с использованием моделей машинного обучения, использующих методики вложения слов, такие как Word2Vec или GLOVE. Затем кластеризация может использовать эти векторы признака, используя различные метрики расстояния, аналогичные косинусному сходству, евклидовому расстоянию или специально спроектированному расстоянию Word Mover («From Word Embeddings To Document Distances», M. J. Kusner, Y. Sun, N. I. Kolkin, K. Q. Weinberger, Материалы 32-й Международной Конференции по Машинному Обучению, 2015 г.).[0034] In addition, other log features can be extracted using machine learning models using word embedding techniques such as Word2Vec or GLOVE. Clustering can then exploit these feature vectors using various distance metrics similar to cosine similarity, Euclidean distance, or a specially designed Word Mover distance (“From Word Embeddings To Document Distances,” M. J. Kusner, Y. Sun, N. I. Kolkin, K. Q. Weinberger, Ret. 32 th International Conference on Machine Learning, 2015).

[0035] В некоторых вариантах осуществления если описания счета-фактуры обладают достаточной длиной, то Скрытое Распределение Дирихле (LDA) также может быть использовано в качестве неконтролируемого алгоритма для обнаружения тем в описаниях счетов-фактур. Для каждого журнала выходные данные могут представлять собой относительный весовой коэффициент каждой темы, ассоциированной с текстовым описанием журнала. Эти выходные данные затем вкладываются в вектор журнала и задаются в качестве входных признаков в алгоритм кластеризации.[0035] In some embodiments, if the invoice descriptions are long enough, then Latent Dirichlet Allocation (LDA) can also be used as an unsupervised algorithm to detect topics in invoice descriptions. For each journal, the output may be a relative weighting for each topic associated with the text description of the journal. This output is then fed into a log vector and given as input features to the clustering algorithm.

[0036] Фиг. 4 представляет иллюстративное представление иерархической кластерной структуры 400, которая может быть использована в соответствии с различными вариантами осуществления. Данный иллюстративный пример изображает один способ, в соответствии с которым может быть выполнена кластеризация над восемью журналами (Журнал A - Журнал I). Кластеры могут существовать на нескольких уровнях, начиная с каждого кластера, представляющего один журнал, до одного кластера 402 на корневом уровне, который включает в себя все журналы. Требуемая пороговая величина 404 сходства (в данном примере возвращающая 3 кластера) может быть выбранным параметром для операции кластеризации. В некоторых случаях кластер может быть разбит на два или более суб-кластера с использованием соответствующих векторов журнала у журналов в кластере, если определяется, что кластер включает в себя журналы, представленные непохожими категориями. Несмотря на то, что Фиг. 4 показывает кластеры, организованные иерархическим образом, также могут быть использованы не иерархические кластеры. Дополнительно больше или меньше кластеров может быть создано в зависимости от типов и многообразия анализируемых журналов трат.[0036] FIG. 4 is an exemplary representation of a hierarchical cluster structure 400 that may be used in accordance with various embodiments. This illustrative example depicts one way in which eight journals (Journal A - Journal I) can be clustered. Clusters can exist at multiple levels, from each cluster representing one log to one cluster 402 at the root level, which includes all logs. The desired similarity threshold 404 (returning 3 clusters in this example) may be the selected parameter for the clustering operation. In some cases, a cluster may be split into two or more sub-clusters using the corresponding log vectors of the logs in the cluster, if it is determined that the cluster includes logs represented by dissimilar categories. Although FIG. 4 shows clusters organized in a hierarchical manner, non-hierarchical clusters can also be used. Additionally, more or fewer clusters may be created depending on the types and variety of spending journals analyzed.

[0037] Итоговые категории трат структурируются в иерархическом дереве. В некоторых вариантах осуществления дендограмма (дерево кластеров), такая, как показанная на Фиг. 4, может отражать по меньшей мере частично структуру категорий трат. В некоторых случаях одна или более категории могут быть предложены на основе термов или других переменных, ассоциированных с кластером. В некоторых случаях предложенная структура категорий может быть предоставлена через интерфейс приложения с опциями для пользователя, чтобы редактировать имена категорий или структуру категорий. Например, пользователю может быть предоставлена опция назначения количества ярусов для структуры категорий, или опции объединения или разделения категорий.[0037] The resulting spending categories are structured in a hierarchical tree. In some embodiments, a dendrogram (cluster tree) such as shown in FIG. 4 may reflect, at least in part, the structure of spending categories. In some cases, one or more categories may be suggested based on terms or other variables associated with the cluster. In some cases, a suggested category structure may be provided through the application interface with options for the user to edit the category names or the category structure. For example, the user may be given the option to assign the number of tiers to the category structure, or the option to merge or split categories.

[0038] Процесс иерархической кластеризации может включать в себя, например, рекурсивное разбиение множества журналов расходов на кластеры. В некоторых вариантах осуществления в отношении векторов журнала может быть выполнена кластеризация с использованием основанных на соединяемости методик кластеризации и, в некоторых случаях кластеризация в отношении векторов журнала выполняется с использованием основанной на плотности кластеризации. В некоторых вариантах осуществления кластеризация в отношении векторов журнала может быть выполнена с использованием традиционной методики иерархической кластеризации k-средних, как та, что описана в документе автора Nistér и др. «Scalable Recognition with a Vocabulary Tree», Материалы Конференции Института Инженеров по Электротехнике и Радиоэлектроники по Компьютерному Зрению и Распознаванию образов (CVPR), 2006 г., способа Варда, представленного в документе автора Ward, J. H. «Hierarchical Grouping to Optimize an Objective Function», Журнал Американской Статистической Ассоциации, 1963 г., или алгоритма DBSCAN, представленного в документе автора Ester M. и др. «A density-based algorithm for discovering clusters in large spatial databases with noise», Материалы Второй Международной Конференции по Обнаружению Знаний и Нахождению Скрытых Структур (KDD-96), 1996 г. Следует иметь в виду, что в некоторых вариантах осуществления глубокие знания отрасли могут быть использованы, чтобы регулировать меру сходства, например путем добавления весовых коэффициентов в процесс кластеризации так, что определенное измерение вектора журнала несет больший вес, чем другие. В некоторых случаях весовые коэффициенты и взвешенные значения могут быть выбраны вручную, а в некоторых вариантах осуществления весовые коэффициенты могут быть определены со времени, используя различные методики машинного обучения. Следует иметь в виду, что различные методики кластеризации известные в области техники могут быть использованы для выполнения кластеризации в отношении векторов журнала.[0038] The hierarchical clustering process may include, for example, recursively splitting a plurality of expense logs into clusters. In some embodiments, log vectors may be clustered using connectivity-based clustering techniques and, in some cases, log vectors are clustered using density-based clustering. In some embodiments, clustering on log vectors may be performed using a traditional k-means hierarchical clustering technique, such as that described in "Scalable Recognition with a Vocabulary Tree" by Nistér et al., Proceedings of the Conference of the Institute of Electrical Engineers and Radioelectronics in Computer Vision and Pattern Recognition (CVPR), 2006, the Ward method presented in Ward, J. H. "Hierarchical Grouping to Optimize an Objective Function", Journal of the American Statistical Association, 1963, or the DBSCAN algorithm presented in paper by Ester M. et al. "A density-based algorithm for discovering clusters in large spatial databases with noise", Proceedings of the Second International Conference on Knowledge Discovery and Finding Hidden Structures (KDD-96), 1996. It should be borne in mind that that in some embodiments, in-depth knowledge of the industry can be used to regulate Measure similarity, for example by adding weights to the clustering process so that a certain dimension of the log vector carries more weight than others. In some cases, the weights and weights may be manually selected, and in some embodiments, the weights may be determined over time using various machine learning techniques. It should be appreciated that various clustering techniques known in the art may be used to perform clustering on log vectors.

[0039] Когда выполняется кластеризация журналов на аналогичные группы журналов с одним и тем же категориальным обозначением, значительно сокращаются усилия для установления категории данных о тратах. Например, если база данных затрат имеет 8000000 журналов, то эти транзакции могут быть сгруппированы в менее чем примерно 500000 кластеров. В данном примере количество решений, которые требуются для установления категории всех журналов, будет сокращено до примерно 1/16. В некоторых случаях операции кластеризации используются, чтобы группировать журналы в кластеры, насчитывающие меньше примерно 1/10 от количества журналов, а в некоторых случаях, чтобы группировать журналы в кластеры, насчитывающие меньше примерно 1/50 от количества журналов. В некоторых случаях используемое количество кластеров может зависеть от, например, разрешения установления категории расходов, которое требуется клиенту (например, сколько требуется ярусов установления категории). Количество кластеров будет зависеть от разнообразия деятельности по тратам клиента (например, разнообразия поставщиков или типов расходов) и уровня детализации, который требуется для установления категории.[0039] When journals are clustered into similar groups of journals with the same categorical designation, the effort to categorize spending data is greatly reduced. For example, if the cost database has 8,000,000 logs, then these transactions may be grouped into less than about 500,000 clusters. In this example, the number of decisions required to categorize all journals would be reduced to about 1/16. In some cases, clustering operations are used to group logs into clusters that are less than about 1/10 of the number of logs, and in some cases, to group logs into clusters that are less than about 1/50 of the number of logs. In some cases, the number of clusters used may depend on, for example, the expense categorization resolution that the client requires (eg, how many tiers of categorization are required). The number of clusters will depend on the variety of customer spending activities (eg variety of providers or types of spending) and the level of detail required to establish a category.

[0040] Фиг. 5 изображает аспекты кластеризации и установления категории журналов расходов, когда используется трехъярусная иерархия категорий, как изображенная на Фиг. 1B. Несмотря на то, что объясняются в контексте трехъярусной иерархии категорий, следует иметь в виду, что описанный процесс также применим к другим структурам категорий. Блок 500 представляет собой консолидированный очищенный набор данных (CDS) для журналов расходов в базе данных затрат. В зависимости от клиента и периода, которые представляют журналы, это может представлять собой миллионы журналов расходов. Кластеризация (502) журналов из CDS приводит к минимальному набору 512 данных (MDS), который состоит из кластерных групп 506, 508 и 510. После кластеризации группы журналов анализируются с их соответствующей структурой счета клиента из отчета о прибылях и убытках, главной книги, Акта Сверки Начислений AP и PO. В зависимости от результата того анализа кластеры затем разбиваются на кластерные группы 506, 508 и 510 чтобы облегчить усилия по установлению категории. Журналы в блоке 504 представляют собой журналы, в отношении которых не может быть выполнена кластеризация в целом из-за отсутствующих данных.[0040] FIG. 5 depicts aspects of clustering and categorization of expense journals when a three-tier category hierarchy is used, as shown in FIG. 1b. Although explained in the context of a three-tier category hierarchy, it should be kept in mind that the described process also applies to other category structures. Block 500 is a consolidated clean data set (CDS) for expense journals in the cost database. Depending on the customer and the period that the journals represent, this could represent millions of expense journals. Clustering (502) journals from CDS results in a minimum data set (MDS) 512, which consists of cluster groups 506, 508, and 510. After clustering, the journal groups are analyzed with their respective customer account structure from income statement, general ledger, Act Reconciliation of Accruals AP and PO. Depending on the outcome of that analysis, the clusters are then split into cluster groups 506, 508, and 510 to facilitate categorization efforts. The logs at block 504 are logs that cannot be clustered as a whole due to missing data.

[0041] Кластерная группа 510 включает в себя кластеры с журналами, которые все будут отображены в одной категории уровня 3 (т.е. будет полностью установлена их категория) в структуре категорий. Каждый кластер в данной группе содержит журналы, которые совместно используют ассоциированную структуру счетов из отчета о прибылях и убытках, главной книги и Акта Сверки Начислений AP и PO. Другими словами, ассоциированные данные о тратах в MDS являются достаточными, чтобы обеспечить по меньшей мере установление категории уровня 3 для каждого кластера с высокой достоверностью. В целом журналы в группе 510 представляют собой наиболее полные журналы в данных о тратах клиента.[0041] Cluster group 510 includes clusters with logs that will all be displayed in the same level 3 category (ie, their category will be fully set) in the category structure. Each cluster in this group contains journals that share an associated account structure from the income statement, general ledger, and AP and PO Accrual Reconciliation Statement. In other words, the associated spending data in the MDS is sufficient to provide at least a level 3 categorization for each cluster with high confidence. In general, the logs in group 510 are the most complete logs in the customer's spending data.

[0042] Кластерная группа 508 представляет собой кластеры, категория которых может быть совокупно установлена как категория уровня 1 или уровня 2. В данной группе по меньшей мере в некоторых журналах или их ассоциированной структуре счета отсутствуют достаточные подробности, чтобы подходить под определенную категорию второго или третьего уровня иерархической структуры категорий. В некоторых случаях эти категории могут быть помещены в категорию «не отображенные» на втором или третьем уровне иерархической структуры категорий.[0042] Cluster group 508 are clusters that can be categorized collectively as a level 1 or level 2 category. In this group, at least some of the journals or their associated account structure lacks sufficient detail to fit into a particular second or third category. the level of the hierarchical structure of categories. In some cases, these categories may be placed in the "not displayed" category at the second or third level of the category hierarchy.

[0043] Кластерная группа 506 представляет собой кластеры, содержащие журналы, которые подходят под разные категории на первом, втором или третьем уровне иерархической структуры категорий. Эти кластеры содержат журналы, которые ассоциированы с более чем одной структурой счета. Это как правило происходит, когда данные, релевантные для кластеризации, могут не содержать достаточных подробностей, чтобы иметь возможность различать категории на детализации уровня 3. Например, обращаясь к иерархической структуре категорий на Фиг. 1B кластер в данной группе может иметь некоторые журналы, категория которых должна быть установлена как «Патент и Товарные Знаки», и некоторые журналы, категория которых должна быть установлена как «Разработка Продукта». Такие кластеры могут не представлять собой фактические группы журналов одного и того же типа трат и возможно они должны быть разбиты на суб-кластеры с использованием дополнительного контекста журнала (такого как структура счета) так, что соответствующие журналы расходов этих суб-кластеров все попадают в одну категорию уровня 3 соответственно.[0043] Cluster group 506 are clusters containing logs that fit into different categories at the first, second, or third level of the category hierarchy. These clusters contain journals that are associated with more than one account structure. This typically occurs when data relevant to clustering may not contain sufficient detail to be able to distinguish between categories at level 3 granularity. For example, referring to the category hierarchical structure in FIG. The 1B cluster in this group may have some journals whose category should be set to "Patent and Trademarks" and some journals whose category should be set to "Product Development". Such clusters may not represent actual groups of journals of the same spending type, and they may need to be sub-clustered using additional journal context (such as account structure) so that the corresponding expense journals of those sub-clusters all fall into one level 3 category respectively.

[0044] Наконец итоговая группа 504 включает в себя журналы, в отношении которых не может быть выполнена кластеризации из-за недостаточных или отсутствующих данных, которые требуются для обработки алгоритму кластеризации. Как подробно обсуждалось в другом месте данного документа, категория некоторых из этих журналов может быть установлена посредством базовых правил отображения. В определенных случаях дополнительный контекст журнала позволяет объединить некоторые из этих журналов вместе с журналами из другого кластера. Это выполняется с использованием алгоритма машинного обучения, используя признаки контекста клиента. В некоторых случаях эти журналы могут быть отображены пользователем, если, например, журнал представляет собой достаточный фрагмент трат клиента. В целом, однако, установление категории большей части журналов в группе 504 осуществляется с использованием обученной модели. Следует отметить, что изображенные размеры групп 504, 506, 508 и 510 представлены лишь в качестве примерных процентов трат клиента. Отдельные кластерные группы могут занимать больший или меньший процент трат клиента на основе факторов, таких как качество данных о тратах, используемая методика кластеризации и количество сформированных кластеров.[0044] Finally, the resulting group 504 includes logs that cannot be clustered due to insufficient or missing data that the clustering algorithm needs to process. As discussed in detail elsewhere in this document, the category of some of these logs can be set through basic mapping rules. In certain cases, an additional log context allows you to merge some of these logs along with logs from another cluster. This is done using a machine learning algorithm using the features of the client context. In some cases, these logs can be displayed by the user if, for example, the log is a sufficient piece of the customer's spending. In general, however, categorization of most of the journals in group 504 is done using the trained model. It should be noted that the sizes of groups 504, 506, 508, and 510 shown are only representative percentages of customer spending. Individual cluster groups may take up a larger or smaller percentage of a customer's spending based on factors such as the quality of spending data, the clustering methodology used, and the number of clusters formed.

[0045] После кластеризации может быть автоматически установлена категория некоторых кластеров посредством базового процесса 518 отображения. Базовое отображение может быть основано на правилах, которые соответствуют доверенным категориям клиента. В некоторых случаях эти правила отображения могут быть сформированы путем установления категории трат клиента в течение предыдущего периода бюджетирования с использованием раскрытых способов. В некоторых случаях эти базовые правила могут относиться к сектору промышленности или могут быть обобщенными правилами, которые используются множеством клиентов. В некоторых случаях эти базовые правила могут быть основаны на особой структуре счета, которая обладает непосредственным качеством установления категории уровня 3. В некоторых случаях базовые правила отображения могут быть предоставлены клиентом или определены на основе аспекта практики клиента.[0045] After clustering, the category of some clusters can be automatically set through the base mapping process 518 . The base mapping may be based on rules that match the trusted categories of the client. In some cases, these mapping rules may be generated by establishing a category of customer spending during a previous budgeting period using the disclosed methods. In some cases, these base rules may be specific to an industry sector or may be generalized rules that are used by many clients. In some cases, these base rules may be based on a specific account structure that has the immediate quality of establishing a level 3 category. In some cases, base mapping rules may be provided by the client or determined based on an aspect of the client's practice.

[0046] В качестве иллюстративного примера одним правилом отображения будет помещение кластеров в категорию 110 «стоимость авиаперелета» (категория уровня 3 иерархической структуры категорий, изображенной на Фиг. 1B), которые включают в себя журналы с известным ключевым словом, связанным с данной категорией, таким как «рейс» или «авиа», 1 или 2 полями города, 1 или 2 полями времени, кодом рейса и известным поставщиком авиабилета. Эти ограничения будут представлять город прибытия (и возможно город вылета), время прибытия (и возможно время вылета) и код рейса (например, две буквы, за которыми следуют 1-4 цифры), которые могут быть перечислены в счете-фактуре для билета на самолет. В некоторых случаях правило также может рассматривать затраты, ассоциированные с журналом, чтобы увидеть, находятся ли они в ценовом диапазоне, который можно ожидать для расходов на перелет. Данный шаблон может быть определен из соответствующей кластерной матрицы, которая включает в себя векторы журнала у журналов в матрице. Например, может быть определено, что каждый вектор журнала имеет значение выше или равное 1 для измерения, соответствующего количеству городов, значение выше или равное 1 для измерения, соответствующего количеству полей времени, перечисленных в счете-фактуре, значение 1 для измерения, соответствующего количеству кодов рейса, и по меньшей мере значение 1 для измерения, соответствующих известным кодовым словам и поставщикам, которые связаны с категорией стоимость авиаперелета. Следует иметь в виду, что в некоторых случаях базовые правила отображения могут быть значительно более комплексными - часто, правила для базового отображения могут быть очень особенными, чтобы сокращать вероятность того, что будет неправильно установлена категория журналов посредством базового правила. В некоторых случаях, однако, эти базовые правила отображения также могут быть относительно простыми. Например, правила в некоторых случаях могут зависеть только от одного ключевого слова или поставщика, ассоциированных с кластером.[0046] As an illustrative example, one mapping rule would be to place clusters in the airfare category 110 (level 3 category of the category hierarchy depicted in Figure 1B) that include logs with a known keyword associated with that category, such as "flight" or "airline", 1 or 2 city fields, 1 or 2 time fields, flight code, and known airline ticket provider. These restrictions will represent the city of arrival (and possibly the city of departure), the time of arrival (and possibly the time of departure) and the flight code (e.g. two letters followed by 1-4 digits) that can be listed on the invoice for a ticket for airplane. In some cases, the rule may also look at the costs associated with the magazine to see if they are in the price range you can expect for travel expenses. This pattern can be determined from the corresponding cluster matrix, which includes the log vectors of the logs in the matrix. For example, each log vector can be defined to have a value greater than or equal to 1 for the dimension corresponding to the number of cities, a value greater than or equal to 1 for the dimension corresponding to the number of time fields listed on the invoice, a value of 1 for the dimension corresponding to the number of codes flight, and at least a value of 1 for the dimension corresponding to known codewords and providers that are associated with the airfare category. Keep in mind that in some cases the base mapping rules can be much more complex - often, the rules for the base mapping can be very specific to reduce the chance of the log category being incorrectly set by the base rule. In some cases, however, these basic mapping rules can also be relatively simple. For example, rules in some cases may depend on only one keyword or provider associated with the cluster.

[0047] После базовых основанных на правиле операций отображения поднабор оставшихся кластеров, представляющих собой кластерные группы высокой стоимости, автоматически определяется посредством алгоритма. Выбор может быть основан на суммарных затратах, которые переносятся на кластер, количестве транзакций в кластере и/или соответствующей ассоциации кластера с недостаточно представленными или чрезмерно представленными категориями, чтобы улучшить модель машинного обучения. Поднабор кластерных групп высокой стоимости может в некоторых случаях представлять между 30% и 60% суммарных трат и может представлять кластер из каждой из кластерных групп 504, 506, 508 и 510. Затем установление категории этих кластеров осуществляется вручную. Например, характерный журнал для кластера может быть представлен пользователю, который определяет выбор того, как будет установлена категория всех журналов в кластере. В некоторых случаях характерный журнал может быть определен автоматически, например, путем определения журнала, который представляет собой среднее или центроид кластерной группы. В некоторых случаях у пользователя будет запрошено установление категории нескольких журналов из кластера. Например, если кластер представляет собой достаточный процент суммарных трат, или если присутствует по меньшей мере одно четкое измерение для разделения кластера на два или более суб-кластера, тогда у пользователя может быть запрошена верификация того, что журналы, представляющие собой суб-кластеры, принадлежат к одной и той же категории.[0047] After basic rule-based mapping operations, a subset of the remaining clusters representing high value cluster groups is automatically determined by the algorithm. The selection can be based on the total costs that are passed on to the cluster, the number of transactions in the cluster, and/or the cluster's respective association with underrepresented or overrepresented categories to improve the machine learning model. A subset of high value cluster groups may in some cases represent between 30% and 60% of the total spend and may represent a cluster from each of cluster groups 504, 506, 508, and 510. The categorization of these clusters is then done manually. For example, a specific log for a cluster may be presented to a user who determines the choice of how the category of all logs in the cluster will be set. In some cases, a characteristic log may be determined automatically, for example, by specifying a log that represents the average or centroid of a cluster group. In some cases, the user will be prompted to set the category of multiple logs from the cluster. For example, if the cluster represents a sufficient percentage of total spend, or if there is at least one distinct dimension to divide the cluster into two or more sub-clusters, then the user may be asked to verify that the journals representing the sub-clusters belong to to the same category.

[0048] В некоторых случаях процесс разметки высокой стоимости продолжается до тех пор, пока не будет установлена категория определенного процента суммарных трат и/или пока не будет установлена категория порогового количества журналов в каждой категории иерархической структуры категорий. В некоторых случаях кластеры могут быть выбраны из рассредоточенных фрагментов кластерного дерева, чтобы сокращать количество выборов, предоставление которых запрашивается у пользователя для порогового количества журналов, категория которых должна быть установлена в каждой категории. Данный способ придерживается принципа Человек-в-Цикле (HITL), где прогнозы, сделанные моделью, которые считаются недостаточными, отправляются человеку для установления категории вручную.[0048] In some cases, the high cost pegging process continues until a certain percentage of total spending is categorized and/or a threshold number of journals category is set in each category of the category hierarchy. In some cases, clusters may be selected from scattered fragments of the cluster tree to reduce the number of choices that the user is asked to provide for a threshold number of journals to be categorized in each category. This method adheres to the Human-in-the-Loop (HITL) principle, where predictions made by the model that are considered insufficient are sent to a human to set the category manually.

[0049] Кластеры и журналы, размеченные вручную, или отображенные через базовые правила отображения, затем используются в качестве обучающего набора 522 для обучения модели машинного обучения. Данная модель используется для установления категории оставшихся журналов и кластеров 514, также упоминаемых как набор 520 прогнозирования. Набор прогнозирования кластеров представляет собой поднабор кластерных групп 504, 506 и 508.[0049] Clusters and logs, labeled manually, or mapped via basic mapping rules, are then used as training set 522 to train a machine learning model. This model is used to categorize the remaining logs and clusters 514, also referred to as the prediction set 520. The cluster prediction set is a subset of cluster groups 504, 506, and 508.

[0050] Фиг. 6 изображает то, каким образом модель 600 может быть использована для выбора подходящих категорий для набора прогнозирования кластеров. Модель принимает обучающие данные 522, установление категории которых было осуществлено посредством базовых операций 518 отображения и разметки 516 высокой стоимости. Обучающие данные используются чтобы определять параметры модели, используемые для определения категории журнала или кластера на основе ассоциированных данных в MDS. Как только модель обучена и применяется к набору 520 прогнозирования, она обеспечивает прогнозы 602 категории. Наборы 520 и 522 обеспечивают модели вектор журнала для каждого журнала. В некоторых вариантах осуществления только поднабор данных журнала обеспечивается модели, а в некоторых случаях дополнительные данные о тратах в базе данных затрат могут быть представлены модели. В некоторых случаях журналы также могут быть изъяты из обучающего набора во время калибровки модели, чтобы сбалансировать вероятность категорий, по которым она будет учиться (например, чтобы избежать того, что конкретная категория чрезмерно представлена).[0050] FIG. 6 depicts how model 600 can be used to select suitable categories for a cluster prediction set. The model receives training data 522 that has been categorized through basic display operations 518 and high value labeling 516. The training data is used to define the model parameters used to determine the journal or cluster category based on the associated data in MDS. Once the model has been trained and applied to the prediction set 520, it provides category predictions 602 . Sets 520 and 522 provide log vector models for each log. In some embodiments, only a subset of the log data is provided to the model, and in some cases additional spending data in the cost database may be provided to the model. In some cases, journals may also be removed from the training set during model calibration to balance the likelihood of categories on which it will learn (for example, to avoid that a particular category is overrepresented).

[0051] В некоторых случаях модель может развиваться и становиться более точной со временем посредством итерационного процесса, изображенного на Фиг. 6. Данный итерационный процесс обусловлен автоматизированным анализом качества и ошибок, чтобы улучшать модель. В дополнение дальнейшая разметка вручную может быть выполнена для журналов с прогнозом категории низкого качества. На операции 604 проектируется модель. Проектирование модели может включать в себя, например, выбор того, какие признаки в векторах журнала использовать в качестве входных переменных, и какой тип или структура модели будут использоваться. В некоторых случаях модель может включать в себя один или более алгоритмы машинного обучения, такие как модели логистической регрессии, алгоритмы линейного дискриминантного анализа, деревья классификации и регрессии, наивные байесовские алгоритмы, как в документе «Tackling the Poor Assumptions of Naïve Bayes Text Classifiers», J. D. M. Rennie, L. Shih, J. Teevan, D. R. Karger, Материалы 20-й Международной Конференции по Машинному Обучению, 2003 г., алгоритмы K-ближайших соседей, алгоритмы квантования обучающего вектора, машины опорных векторов, алгоритмы Бэггинга, Бустинга, Случайного Леса, XGBoost, LightGBM, искусственные нейронные сети и аналогичное. Несмотря на то, что некоторые примеры в данном документе приведены в контексте модели глубокого обучения или модели нейронной сети, следует понимать, что также могут быть использованы прочие модели или сочетания моделей привычных специалистам в соответствующей области техники.[0051] In some cases, the model may evolve and become more accurate over time through the iterative process depicted in FIG. 6. This iterative process is driven by automated quality and error analysis to improve the model. In addition, further manual labeling can be performed for journals with a low quality category forecast. At operation 604, a model is designed. Designing the model may include, for example, choosing which features in the log vectors to use as input variables, and what type or structure of the model will be used. In some cases, the model may include one or more machine learning algorithms such as logistic regression models, linear discriminant analysis algorithms, classification and regression trees, naive bayes algorithms, as in the document "Tackling the Poor Assumptions of Naïve Bayes Text Classifiers", J. D. M. Rennie, L. Shih, J. Teevan, D. R. Karger, Proceedings of the 20th International Conference on Machine Learning, 2003, K-nearest neighbor algorithms, training vector quantization algorithms, support vector machines, Bagging, Boosting, Random Forest algorithms , XGBoost, LightGBM, artificial neural networks and the like. While some of the examples herein are given in the context of a deep learning model or a neural network model, it should be understood that other models or combinations of models familiar to those skilled in the art may also be used.

[0052] Пример модели нейронной сети, которая может быть использована в некоторых вариантах осуществления для прогнозирования категорий для индивидуальных журналов или кластеров журналов может принимать форму любого количества нейронных сетей, включая сети Персептроны (P), сети Прямого Распространения (FF), Сети Радиально-Базисных Функций (RBF), сети Глубинного Прямого Распространения (DFF), Рекуррентные Нейронные Сети (RNN), Сети с Долгосрочной/Краткосрочной Памятью (LSTM), сети с Управляемым Рекуррентным Нейроном (GRU), Сети с Автокодировщиком (AE) Сети, Сети с Вариационным Автокодировщиком (VAE), Сети с Шумоподавляющим Автокодировщиком (DAE), Сети с Разряженным Автокодировщиком (SAE), Сети с Марковской Цепью (MC), Сети Хопфилда (HN), Сети с Машиной Больцмана (BM), Сети с Ограниченной Машиной Больцмана (BRM), Глубокие Сети Доверия (DBN), Глубокие Сверточные Сети (DCN), Развертывающиеся Сети (DN), Глубокие Сверточные Обратные Графические Сети (DCIGN), Генеративные Состязательные Сети (GAN), Сети Машины Жидкого Состояния (LSM), Сети Машины Экстремального Обучения (ELM), Сети с Эхо-Состоянием (ESN), Сети с Глубокими Разностями (DRN), Сети Кохонена (KN), Сети Машины Опорных Векторов (SVM), сети с Нейронной Машиной Тьюринга (NTM) и аналогичное. В некоторых случаях модель основана на более чем одной модели или алгоритме машинного обучения.[0052] An example neural network model that can be used in some embodiments to predict categories for individual journals or clusters of journals may take the form of any number of neural networks, including Perceptron (P) networks, Forward Propagation (FF) networks, Radial- Basis Functions (RBF), Deep Forward Propagation Networks (DFF), Recurrent Neural Networks (RNN), Long Term/Short Term Memory Networks (LSTM), Steered Recurrent Neuron (GRU) Networks, Autoencoder (AE) Networks Variational Auto-Encoder (VAE), Noise Reducing Auto-Encoder (DAE) Networks, Sparse Auto-Encoder (SAE) Networks, Markov Chain Networks (MC), Hopfield Networks (HN), Boltzmann Machine Networks (BM), Restricted Boltzmann Machine Networks ( BRM), Deep Belief Networks (DBN), Deep Convolutional Networks (DCN), Deployable Networks (DN), Deep Convolutional Inverse Graphic Networks (DCIGN), Generative Adversarial Networks ( GAN), Fluid State Machine Networks (LSM), Extreme Learning Machine Networks (ELM), Echo State Networks (ESN), Deep Difference Networks (DRN), Kohonen Networks (KN), Support Vector Machine (SVM) Networks, networks with Neural Turing Machine (NTM) and the like. In some cases, a model is based on more than one machine learning model or algorithm.

[0053] На операции 606 модель обучается с использованием обучающего набора данных. Обучение может включать в себя любое количество методик машинного обучения, известных специалистам в соответствующей области техники. Например, модели могут быть сформированы и обучены на Python с использованием инструментальных средств scikit-learn или могут быть обучены с использованием библиотек, таких как TensorFlow, Keras, MLib, gensim и аналогичного. Во время обучения параметры модели изучаются алгоритмами Машинного Обучения из обучающего набора с установленной категорией, и различные гиперпараметры модели могут быть определены и/или оптимизированы путем использования разных методик, аналогичных поиску по сетке, перекрестной проверке и байесовской оптимизации для увеличения выбранных метрик модели.[0053] At operation 606, the model is trained using the training dataset. The training may include any number of machine learning techniques known to those skilled in the art. For example, models can be built and trained in Python using the scikit-learn workbench, or can be trained using libraries such as TensorFlow, Keras, MLib, gensim, and the like. During training, model parameters are learned by Machine Learning algorithms from a categorized training set, and various model hyperparameters can be determined and/or optimized by using different techniques like grid search, cross-validation, and Bayesian optimization to increase the selected model metrics.

[0054] На операции 608 автоматически выполняется анализ качества и ошибок модели. В некоторых случаях анализ качества и ошибок может происходить после того, как устанавливается категория набора 520 прогнозирования, чтобы верифицировать то, что журналы отображены корректно. В некоторых случаях анализ качества и ошибок может выполняться периодически или непрерывно при установлении категории набора 520 прогнозирования. Если определяется, что модель неправильно прогнозирует категории, то модель может быть обновлена путем пересмотра проекта модели 604. Также может присутствовать автоматизированная регулировка гиперпараметров, которые относятся к заданным категориям 606 (например, если обнаруживаются ложноположительные прогнозы). Или также может присутствовать дополнительная разметка вручную для этих особых категорий 614.[0054] At operation 608, analysis of the quality and errors of the model is automatically performed. In some cases, quality and error analysis may occur after the prediction set 520 category is set to verify that the logs are displayed correctly. In some cases, quality and error analysis may be performed periodically or continuously while establishing the category of the prediction set 520 . If it is determined that the model does not correctly predict the categories, then the model may be updated by revising the design of the model 604. There may also be automated adjustment of hyperparameters that are related to the given categories 606 (eg, if false positive predictions are found). Or there may also be additional manual markup for these special categories 614.

[0055] Существует некоторое количество ручных и автоматических путей проверки того, что модель 600 может быть верифицирована на качество прогнозирования. Например, спрогнозированные категории могут быть проверены с помощью ожидаемого распределения трат для каждой категории на основе структуры счета клиента. Существует несколько других расчетов распределения, которые могут быть использованы в сочетании, такие как распределение частоты ключевого слова, распределение затрат статьи и т.д. Дополнительно тестовые поднаборы обучающего набора могут быть использованы, чтобы получать хорошие показатели выбранной метрики (например, точность, взвешенная точность, погрешность или отзыв). В дополнение обучающие тестовые поднаборы могут быть использованы, чтобы сравнивать автоматизированные прогнозы с фактической разметкой, и чтобы характеризовать ошибки в каждой категории, исходя из вектора журнала. В некоторых случаях журнал может обеспечивать метрику достоверности с каждым прогнозом категории. В некоторых случаях матрица неточностей может характеризовать ошибки путем сравнения прогнозов с фактическими категориями (как например ложноположительные результаты или ложноотрицательные результаты).[0055] There are a number of manual and automatic ways to verify that the model 600 can be verified for prediction quality. For example, the predicted categories can be tested against the expected spending distribution for each category based on the customer's account structure. There are several other distribution calculations that can be used in combination, such as keyword frequency distribution, article cost distribution, and so on. Additionally, test subsets of the training set can be used to obtain good scores on a selected metric (eg, accuracy, weighted accuracy, error, or recall). In addition, training test subsets can be used to compare the automated predictions with the actual markup, and to characterize the errors in each category based on the log vector. In some cases, the journal may provide a confidence metric with each category prediction. In some cases, a confusion matrix can characterize errors by comparing predictions with actual categories (such as false positives or false negatives).

[0056] В некоторых случаях у пользователя может быть запрошена верификация категории, которая определена для журнала, когда ассоциированная метрика достоверности находится ниже пороговой величины. В некоторых случаях значения суммарных трат в категориях могут быть проверены в качестве контроля корректности. В некоторых вариантах осуществления, если значение трат для конкретной категории превышает некоторый предварительно определенный диапазон (например, определенный как процент суммарных трат), тогда пользователь может быть извещен и у него может быть запрошена выборочная проверка журналов и кластеров, которые были назначены той категории.[0056] In some cases, a user may be asked to verify a category that is defined for a journal when an associated confidence metric is below a threshold. In some cases, total spending values in categories can be checked as a validation check. In some embodiments, if the spending value for a particular category exceeds some predetermined range (eg, defined as a percentage of total spending), then the user may be notified and asked to selectively check the logs and clusters that have been assigned to that category.

[0057] Если метрика достоверности прогнозирования считается недостаточной на операции 608, например, ниже определенной пороговой величины, то алгоритм машинного обучения может либо регулировать гиперпараметры модели, либо идентифицировать дополнительные журналы, категория которых должна быть установлена вручную. В случаях ложноположительных прогнозов, когда определяется, что модель ошибочно спрогнозировала журналы в одной категории (например, если определяется, что траты применительно к одной категории значительно превышают ожидаемое значение), проект модели и параметры настройки могут быть отрегулированы 612, чтобы скорректировать ошибку. В некоторых случаях модель может приблизиться к ожидаемому распределению путем регулирования весовых коэффициентов машинного обучения. В некоторых случаях тонкая настройка других параметров модели может привести к сокращению ложноположительных результатов.[0057] If the prediction confidence metric is deemed insufficient at step 608, for example, below a certain threshold, then the machine learning algorithm may either adjust the hyperparameters of the model or identify additional logs that need to be categorized manually. In cases of false positives, where it is determined that the model mis-predicted journals in one category (for example, if it is determined that spending for one category is significantly higher than expected), the model design and settings can be adjusted 612 to correct for the error. In some cases, the model can approximate the expected distribution by adjusting the machine learning weights. In some cases, fine-tuning other model parameters can lead to a reduction in false positives.

[0058] Ложноотрицательные прогнозы относятся к ситуациям, когда модели не удается поместить журнал в подходящую категорию. В некоторых случаях матрицы неточностей могут быть использованы, чтобы идентифицировать журналы, которые неправильно спрогнозированы или вероятно неправильно спрогнозированы моделью машинного обучения. Эти идентифицированные журналы затем могут быть представлены пользователю для корректной разметки категории журнала. Размеченные вручную журналы затем могут быть добавлены в обучающий набор 522 с установленной категорией и использоваться для дальнейшего обучения модели, или в некоторых случаях модифицировать проект модели.[0058] False negative predictions refer to situations where the model fails to place the log in the appropriate category. In some cases, confusion matrices can be used to identify logs that are mis-predicted or likely mis-predicted by a machine learning model. These identified logs can then be presented to the user to correctly mark up the log category. The manually tagged logs can then be added to the categorized training set 522 and used to further train the model, or in some cases modify the design of the model.

[0059] Прогнозы установления категории, которые прошли определенную пороговую величину метрики достоверности, считаются с установленной категорией на операции 602. Для всех других кластеров журналов цикл проектирования модели, настройки и анализа качества и ошибок итерационно повторяется до тех пор, пока, например, категория не будет установлена для 95-100% трат.[0059] Category establishment predictions that have passed a certain confidence metric threshold are considered to be categorized at operation 602. For all other log clusters, the cycle of model design, tuning, and quality and error analysis is iteratively repeated until, for example, the category is will be set for 95-100% spending.

[0060] Фиг. 7 изображает график 700, иллюстрирующий то, каким образом может быть установлена категория данных о тратах во время фаз отображения, описанных в данном документе. Следует отметить, что данный график является иллюстративным и что определенные варианты осуществления могут включать в себя дополнительные фазы или могут иметь меньше фаз. В определенных вариантах осуществления изображенное может перекрываться как например, когда базовое отображение и разметка высокой стоимости происходят в одно и то же время.[0060] FIG. 7 depicts a graph 700 illustrating how the spending data category can be set during the mapping phases described herein. It should be noted that this graph is illustrative and that certain embodiments may include additional phases or may have fewer phases. In certain embodiments, the depicted may overlap, such as when the base display and high value markup occur at the same time.

[0061] На фазе 702 необработанные данные о тратах принимаются от клиента и консолидируются в базе данных затрат. Как обсуждалось, это может включать в себя операции, такие как преобразование в цифровую форму и/или распознавание текста в документах, объединение полей данных, преобразование в стандартизованную целевую схему и сверку отрицательных и не относящихся к делу трат. Затем данные консолидируются, очищаются (например, удаляются поврежденные и дублирующие журналы), и различные операции обработки на естественном языке применяются, чтобы распознать текст, что приводит к консолидированному очищенному набору данных (CDS). На фазе 704 минимальный набор данных (MDS) формируется с использованием различных методик кластеризации над многомерными журналами CDS. На операции 706 применяются базовые правила отображения, чтобы автоматически отобразить журналы в категориях затрат уровня 3. В некоторых случаях данная фаза может учитывать установление категории примерно 10%-20% суммарных трат. В случаях, когда известны глубокие знания практики клиента или, когда раскрытые процессы установления категории были выполнены для предшествующего периода бюджетирования, во время данной фазы может быть размечен более высокий процент суммарных трат.[0061] At block 702, raw spending data is received from the client and consolidated into a cost database. As discussed, this may include operations such as digitizing and/or OCR on documents, combining data fields, converting to a standardized target schema, and reconciling negative and irrelevant spending. The data is then consolidated, cleaned (for example, corrupted and duplicate logs are removed), and various natural language processing operations are applied to recognize the text, resulting in a consolidated clean data set (CDS). In phase 704, a minimum data set (MDS) is generated using various clustering techniques over multidimensional CDS logs. At operation 706, basic display rules are applied to automatically display logs in the Tier 3 cost categories. In some cases, this phase may consider setting a category of approximately 10%-20% of the total spend. In cases where a thorough knowledge of the client's practice is known, or where the disclosed categorization processes have been performed for a prior budgeting period, a higher percentage of total spending may be allocated during this phase.

[0062] После фазы базового отображения кластеры высокой стоимости размечаются вручную на операции 708. Как описано это может включать в себя запрос у пользователя, такого как бухгалтер, разметки вручную одного или более журналов из каждого кластера высокой стоимости. В конце фазы разметки высокой стоимости может быть учтена большая часть суммарных трат, несмотря на то, что это может быть не так при всех обстоятельствах. В заключение на последней фазе 710 осуществляется установлении категории журналов, соответствующих оставшимся тратам, с использованием модели машинного обучения. Модель может быть обучена с помощью журналов, категория которых установлена на предыдущих фазах, журналов, категория которых установлена во время предыдущих периодов бюджетирования, или в некоторых случаях с использованием предварительно обученных моделей на основе установления категории для других клиентов в той же самой отрасли промышленности. В некоторых случаях в конце фазы 710 может быть охарактеризовано более 95% данных о тратах для категории уровня три иерархической структуры категорий. Для достижения высокого уровня журналов с установленной категорией при высоком качестве и достоверности используется процесс, называемый Человек-в-цикле. Данный процесс построен на концепции «активного обучения», особый случай полу-контролируемого машинного обучения. В некоторых случаях автоматизированный алгоритм может определять, что эффективность модели в отношении определенных категорий находится ниже определенной пороговой величины. В таких случаях в зависимости от анализа, модель может либо автоматически настраивать гиперпараметры модели, либо выбирать особые журналы или кластеры, которые должны быть размечены вручную экспертом-человеком. После такого действия изменения подаются обратно системе и модель запускается вновь, как, впрочем, и анализ эффективности, до тех пор, пока для 95%-100% трат не будет установлена категория на уровне три.[0062] After the base mapping phase, high value clusters are manually labeled at operation 708. As described, this may include asking a user, such as an accountant, to manually label one or more logs from each high value cluster. At the end of the high cost staking phase, most of the total spend may be accounted for, although this may not be the case in all circumstances. Finally, in the last phase 710, the category of journals corresponding to the remaining spending is determined using a machine learning model. The model can be trained with journals categorized in previous phases, journals categorized during previous budgeting periods, or in some cases using pre-trained models based on categorization for other clients in the same industry. In some cases, at the end of phase 710, more than 95% of the spending data for category level three of the category hierarchy may be characterized. A process called Man-in-the-Cycle is used to achieve a high level of category journals with high quality and credibility. This process is built on the concept of "active learning", a special case of semi-supervised machine learning. In some cases, an automated algorithm may determine that the performance of a model against certain categories is below a certain threshold. In such cases, depending on the analysis, the model can either automatically tune the hyperparameters of the model, or select specific logs or clusters that must be manually labeled by a human expert. After this action, the changes are fed back into the system and the model is run again, as is the efficiency analysis, by the way, until 95%-100% of spending is categorized at level three.

[0063] Фиг. 8 иллюстрирует способ 800, который может быть использован, чтобы классифицировать и устанавливать категорию данных о тратах. Следует понимать, что для данного и прочих процессов, которые обсуждались в данном документе, могут присутствовать дополнительные, меньше или альтернативные этапы, выполняемые в рамках объема различных вариантов осуществления, если не указано иное. На операции 802 необработанные данные о тратах принимаются от клиента. Это может включать в себя прием квитанций, счетов-фактур и прочей документации о понесенных затрат. Когда данные принимаются, они также консолидируются в единый набор данных или базу данных, такую как база данных SQL. Данная операция может включать в себя, например, преобразование в цифровой вид и распознавание текста, ассоциированного с журналами расходов, объединение полей данных, преобразование в стандартизованную целевую схему и сверку отрицательных и не относящиеся к делу трат. На операции 804 создается консолидированный очищенный набор данных (CDS). Как описано в другом месте, создание CDS вызывает различные операции обработки на естественном языке, используемые чтобы удалять данные, которые считаются ненужными или неполезными для кластеризации и установления категории. Данные, которые не удалены, очищаются, чтобы улучшить анализ, используемый для кластеризации и установления категории. Например, каждое слово, ассоциированное с журналом, может быть замещено его базовой словарной формой. На операции 806 выполняется кластеризация журналов CDS, чтобы сформировать MDS. MDS содержит группы журналов, которые происходят от транзакций одного и того же характера, которые должны попасть в одну и ту же категорию трат. Способ кластеризации регулируется для каждого случая приложения, рассматривая доступные данные и требуемый уровень детализации кластеров. Формирование MDS сокращает вычислительные потребности, необходимые для кластеризации журналов и прогнозирования категорий для данных о тратах.[0063] FIG. 8 illustrates a method 800 that can be used to classify and categorize spending data. It should be understood that for this and other processes discussed herein, there may be additional, fewer, or alternative steps performed within the scope of various embodiments, unless otherwise indicated. At operation 802, raw spending data is received from the client. This may include receiving receipts, invoices and other documentation of costs incurred. When the data is received, it is also consolidated into a single dataset or database such as a SQL database. This operation may include, for example, digitizing and recognizing text associated with expense logs, concatenating data fields, converting to a standardized target schema, and reconciling negative and irrelevant spending. At operation 804, a consolidated cleaned data set (CDS) is created. As described elsewhere, creating a CDS invokes various natural language processing operations used to remove data deemed unnecessary or not useful for clustering and categorization. Data that is not removed is cleaned up to improve the analysis used for clustering and categorization. For example, each word associated with a magazine can be replaced by its base dictionary form. At operation 806, CDS logs are clustered to form an MDS. The MDS contains groups of journals that originate from transactions of the same nature that must fall into the same spending category. The clustering method is adjusted for each application case, considering the available data and the desired level of clustering granularity. Forming an MDS reduces the computational effort required to cluster logs and predict categories for spending data.

[0064] Вслед за операцией кластеризации может быть выполнено установление категории (или разметка) журналов расходов в кластерах. Например, может быть установлена категория характерного журнала для кластера MDS, в результате чего каждому из других журналов в том же самом кластере должно быть обеспечено точно такое же обозначение категории. Установление категории журналов на уровне кластера в отличии от установления категории каждого журнала индивидуально эффективно сокращает требуемое количество решений по категории и ускоряет время установления категории данных о тратах клиента. Первая операция 808 отображения соответствует установлению категории журналов и кластеров на основе того, удовлетворяют ли они набору предварительно определенных правил. В целом эти правила умеют тенденцию быть слишком особыми так, что установление категории журналов лишь редко, если вообще когда-либо, является неправильным.[0064] Following the clustering operation, categorization (or labeling) of spending logs in clusters can be performed. For example, a characteristic journal category for an MDS cluster may be set, whereby each of the other journals in the same cluster must be provided with exactly the same category designation. Establishing the category of journals at the cluster level, as opposed to setting the category of each journal individually, effectively reduces the required number of category decisions and speeds up the time to categorize customer spending data. The first mapping operation 808 corresponds to categorizing logs and clusters based on whether they satisfy a set of predefined rules. On the whole, these rules tend to be too specific, so that the categorization of journals is only rarely, if ever, wrong.

[0065] Операция 810 разметки высокой стоимости затем выполняется над кластерными группами, представляющими собой пропорционально высокий процент суммарных трат, или большое количество журналов в кластере, или ассоциацию с чрезмерно представленными категориями. Классификация на операции 810 выполняется вручную обученным персоналом. Поскольку человеческий выбор является золотым стандартом точности установления категории, то счета сосредоточены на классификации кластеров высокой стоимости, поскольку эти решения представляют собой более существенный фрагмент суммарных трат. В некоторых случаях разметка высокой стоимости может включать в себя запрос у пользователя правильного установления категории характерного счета-фактуры из каждого из наборов кластеров высокой стоимости. По приему выбора категории пользователя для характерного журнала, каждому из прочих журналов в кластере может быть задано точно такое же обозначение категории. В некоторых случаях, как когда определяется, что кластер может быть легко дополнительно разделен по одному или более измерениям, у пользователя может быть запрошено установление категории для более чем одного из характерных журналов из каждого кластера. Если пользователь устанавливает категорию характерных журналов из одного и того же кластера в соответствии с дискретными категориями, тогда кластер может быть разбит на суб-кластеры, установление категории которых осуществляется с использованием дискретных выборов категории, представленных пользователем.[0065] A high cost markup operation 810 is then performed on cluster groups representing a proportionately high percentage of total spending, or a large number of journals in a cluster, or an association with overrepresented categories. Classification at operation 810 is performed manually by trained personnel. Because human choice is the gold standard for categorization accuracy, the accounts focus on classifying high-value clusters because these decisions represent a larger fraction of total spending. In some cases, high value labeling may include prompting the user to correctly identify the characteristic invoice category from each of the high value cluster sets. By adopting a user category selection for a characteristic journal, each of the other journals in the cluster can be given exactly the same category designation. In some cases, such as when it is determined that a cluster can easily be further subdivided along one or more dimensions, the user may be asked to categorize more than one of the characteristic logs from each cluster. If the user categorizes feature journals from the same cluster according to discrete categories, then the cluster can be split into sub-clusters whose categorization is done using discrete category choices provided by the user.

[0066] Вслед за операциями базового отображения и разметки высокой стоимости модель формируется и обучается 812 с использованием журналов, классифицированных на предшествующих операциях разметки. Обученная модель затем используется для установления категории оставшихся журналов на операции 814. В некоторых вариантах осуществления модель может быть использована для установления категории оставшихся кластеров, а в некоторых случаях модель может быть использована для установления категории оставшихся журналов индивидуально. В некоторых случаях модель может быть использована для установления категории оставшихся журналов автоматически на основе ассоциированных векторов журнала.[0066] Following the base mapping and high cost labeling operations, the model is built and trained 812 using the logs classified in the previous labeling operations. The trained model is then used to categorize the remaining logs at operation 814. In some embodiments, the model may be used to categorize the remaining clusters, and in some cases the model may be used to categorize the remaining logs individually. In some cases, the model can be used to categorize the remaining logs automatically based on the associated log vectors.

[0067] На операции 816 проверяется достоверность категорий, спрогнозированных с использованием модели. Проверка достоверности может быть автоматизированным процессом, который может привести к неожиданным тенденциям в установлении категории трат или нарушениям базовых правил отображения. В некоторых случаях, если значение категории трат превышает ожидаемое значение из-за прогнозов категории посредством модели, то у пользователя может быть запрошена верификация прогнозов категории, представленных моделью. Например, если категория превысила ожидаемый бюджет на величину, соответствующую кластеру, назначенному категории моделью, тогда у пользователя может быть запрошено определение того, была ли правильно установлена категория конкретного кластера. Дополнительным вводом пользователя может быть, например, итерационный процесс HITL, и может иметь сходство с тем, что запрашивалось у пользователя на операции 810. Если установления категории корректируются пользователем, то данная информация может быть использована для дальнейшего обучения модели на операции 812. В некоторых случаях для каждого журнала, для которого категория была установлена с использованием обученной модели, может быть повторно осуществлено установление категории, если модель была обновлена или повторно обучена, как уже упоминалось в другом месте. На операции 818 определяется, установлена ли категория всех журналов. В некоторых случаях все или солидный фрагмент журналов должен отвечать предварительно определенной пороговой величине достоверности для того, чтобы процесс был завершен. Если для некоторых журналов еще не была установлена категория, то процесс возвращается к операции 814. Если установлена категория для всех журналов, или если только оставшиеся журналы обладают недостаточной информацией, чтобы им было обеспечено какое-либо обозначение категории, тогда процесс завершается 820. В случаях, когда присутствуют оставшиеся журналы с недостаточной информацией, эти журналы могут быть представлены пользователю для определения подходящего обозначения категории.[0067] At operation 816, the validity of the categories predicted using the model is checked. Validation can be an automated process that can lead to unexpected trends in spending categories or violations of basic display rules. In some cases, if the spending category value exceeds the expected value due to the category predictions by the model, then the user may be asked to verify the category predictions provided by the model. For example, if a category has exceeded the expected budget by an amount corresponding to the cluster assigned to the category by the model, then the user may be prompted to determine if the particular cluster's category has been correctly set. Additional user input may be, for example, an iterative HITL process, and may be similar to what was requested from the user at step 810. If the category settings are adjusted by the user, then this information can be used to further train the model at step 812. In some cases for each journal that has been categorized using the trained model, the category can be re-categorised if the model has been updated or re-trained, as mentioned elsewhere. At operation 818, it is determined if the category of all logs is set. In some cases, all or a substantial portion of the logs must meet a predetermined confidence threshold in order for the process to complete. If some journals have not yet been categorized, then the process returns to operation 814. If the category is set for all journals, or if only the remaining journals have insufficient information to be provided with any category designation, then the process ends 820. In cases when there are remaining logs with insufficient information, these logs can be presented to the user to determine the appropriate category designation.

[0068] После того как все журналы были отнесены к категории, данные о тратах с установленной категорией предоставляются клиенту. В некоторых случаях данные установления категории добавляются в базу данных затрат, которые затем могут быть предоставлены клиенту. Если клиент использует приложение, такое как изображенное на Фиг. 1B, для изучения данных с установленной категорией, то клиент может в некоторых случаях иметь возможность доступа к особой информации о журнале, такой как текст, включенный в счет-фактуру, или изображение счета-фактуры. В некоторых случаях приложение клиента, такое как изображенное на Фиг. 1A и 1B, может предоставлять пользователю опции для коррекции данных с неправильной установленной категорией или внесения правок в иерархическую структуру категорий. В некоторых случаях может быть обеспечена анонимность, подчистка данной информации, и она может использоваться для формирования весовых коэффициентов модели для других клиентов в будущем (например, других клиентов в том же самом секторе производства). В некоторых случаях базовые правила отображения могут быть обновлены с тем, чтобы установление категории для статей осуществлялось с даже большей точностью в будущих периодах бюджетирования или для других клиентов. В отношении любой информации, которая сохраняется или иным образом используется для улучшения установления категории отображением для других клиентов, обеспечивается анонимность и подчистка таким образом, что отсутствует возможность отслеживания важной информации обратно до клиента. С использованием искусственных нейронных сетей это может быть выполнено путем удаления определенных слоев модели.[0068] Once all journals have been categorized, spending data with the category set is provided to the client. In some cases, categorization data is added to the cost database, which can then be provided to the customer. If the client is using an application such as the one shown in FIG. 1B to examine categorized data, the customer may in some cases be able to access specific log information such as the text included in the invoice or the image of the invoice. In some cases, a client application, such as the one depicted in FIG. 1A and 1B may provide the user with options for correcting data with an incorrectly set category or for making edits to the hierarchical category structure. In some cases, this information can be anonymised, cleaned up, and used to generate model weights for other clients in the future (eg, other clients in the same manufacturing sector). In some cases, the basic display rules can be updated so that the categorization of articles is done with even greater accuracy in future budgeting periods or for other clients. Any information that is stored or otherwise used to improve display categorization for other clients is anonymized and scrubbed so that important information cannot be traced back to the client. With the use of artificial neural networks, this can be done by removing certain layers of the model.

[0069] Несмотря на то, что вышеупомянутые примеры были представлены в контексте установления категории данных о тратах, следует иметь в виду, что раскрытые способы могут быть применены для организации различных наборов данных в иерархической структуре категорий. Раскрытые способы могут обеспечивать преимущества над другими способами установления категории в ситуациях, когда требуется сортировка значительных объемов данных, когда есть несколько предварительно созданных правил сортировки данных и, например, когда цель установления категории состоит в определении шаблонов в данных. В контексте ZBB описанные способы главным образом используются для косвенных трат, маркетинга и продаж. Они также могут быть использованы для других типов затрат, подобных сырью и цепочке поставки. В дополнение не только текущие расходы (OPEX), но также и капитальные расходы (CAPEX) могут рассматриваться в качестве данных о тратах.[0069] While the above examples have been presented in the context of establishing a category of spending data, it should be appreciated that the disclosed methods can be applied to organize different sets of data in a hierarchical structure of categories. The disclosed methods may provide advantages over other categorization methods in situations where large amounts of data need to be sorted, where there are several pre-built data sorting rules, and, for example, where the purpose of categorization is to identify patterns in the data. In the context of ZBB, the described methods are mainly used for indirect spending, marketing and sales. They can also be used for other types of costs like raw materials and supply chain. In addition, not only current expenditures (OPEX) but also capital expenditures (CAPEX) can be considered as spending data.

[0070] Операции способа 800 реализуются с использованием программного обеспечения и соответственно одной из предпочтительных реализаций изобретения является набор инструкций (программный код) в модуле кода, размещенном в памяти с произвольным доступом компьютера. До тех пор, пока не запрошен компьютером, набор инструкций может быть сохранен в другой компьютерной памяти, например, на накопителе на жестком диске, или в съемной памяти, такой как оптический диск (для возможного использования в CD ROM) или гибкий диск (для возможного использования в накопителе на гибком диске), или загружен через Интернет или некоторую другую компьютерную сеть. В дополнение, несмотря на то, что различные описанные способы традиционно реализуются в компьютере общего назначения, который выборочно активируется или реконфигурируется посредством программного обеспечения, специалисту в соответствующей области техники будет понятно, что способы могут быть выполнены в аппаратном обеспечении, во встроенном программном обеспечении или в более специализированном устройстве, сконструированном для выполнения указанных этапов способа.[0070] The steps of method 800 are implemented using software, and accordingly, one preferred implementation of the invention is a set of instructions (program code) in a code module located in random access memory of a computer. Until requested by the computer, the instruction set may be stored in other computer memory, such as a hard disk drive, or removable memory, such as an optical disk (for possible use in a CD ROM) or floppy disk (for possible use in use in a floppy disk drive), or downloaded over the Internet or some other computer network. In addition, while the various methods described have traditionally been implemented in a general purpose computer that is selectively activated or reconfigured by software, one of ordinary skill in the art will appreciate that the methods may be implemented in hardware, firmware, or a more specialized device designed to carry out the specified steps of the method.

[0071] Несмотря на то, что выше были описаны различные варианты осуществления, следует понимать, что они были представлены в качестве примера, а не ограничения. Специалистам в соответствующей области техники будет очевидно, что различные изменения по форме и в деталях могут быть здесь выполнены, не отступая от сущности и объема. В действительности после прочтения вышеупомянутого описания специалисту в соответствующей области техники будет очевидно, каким образом реализовать альтернативные варианты осуществления.[0071] While various embodiments have been described above, it should be understood that they have been presented by way of example and not limitation. It will be apparent to those skilled in the art that various changes in form and detail can be made here without departing from the spirit and scope. In fact, after reading the above description, it will be obvious to a person skilled in the art how to implement alternative embodiments.

[0072] В дополнение следует понимать, что любые фигуры, которые подчеркивают функциональные возможности или преимущества, представлены только для примера. Раскрытая методология и система каждое является достаточно гибким и конфигурируемым так, что они могут быть использованы путем отличным от показанного.[0072] In addition, it should be understood that any figures that emphasize functionality or benefits are by way of example only. The disclosed methodology and system are each flexible and configurable enough that they can be used in ways other than those shown.

Claims (49)

1. Компьютерно-реализуемый способ обработки записей транзакций, содержащий этапы, на которых:1. A computer-implemented method for processing transaction records, comprising the steps of: принимают данные транзакций;receive transaction data; формируют на основе данных транзакций очищенный набор данных (CDS), содержащий журналы для множества транзакций, при этом каждый журнал ассоциирован с текстом, по меньшей мере фрагмент которого был обработан с использованием обработки на естественном языке (NPL);generating, based on the transaction data, a cleaned data set (CDS) containing logs for a plurality of transactions, each log being associated with text, at least a fragment of which has been processed using natural language processing (NPL); осуществляют кластеризацию, по меньшей мере, подмножества журналов из CDS на основе, по меньшей мере отчасти, ассоциированного текста и пороговой величины сходства, при этом результатом кластеризации является набор кластеров;clustering at least a subset of journals from the CDS based at least in part on the associated text and a similarity threshold, wherein the result of the clustering is a set of clusters; идентифицируют конкретный поднабор из набора кластеров и принимают пользовательское определение типа транзакции для характерного журнала для каждого кластера этого конкретного поднабора, при этом принятые типы транзакций ассоциируются с каждым журналом соответствующего кластера;identifying a specific subset of the set of clusters and receiving a custom transaction type definition for a specific log for each cluster of that specific subset, the received transaction types being associated with each log of the respective cluster; обучают модель прогнозирования с использованием журналов из упомянутого конкретного поднабора кластеров и ассоциированных типов транзакций;training a prediction model using logs from said specific subset of clusters and associated transaction types; определяют с использованием прогнозирующей модели типы транзакций для журналов в CDS, которые еще не ассоциированы с типом транзакции; иdetermining, using a predictive model, transaction types for logs in the CDS that are not yet associated with a transaction type; and формируют отчет о транзакциях, причем отчет о транзакциях содержит множество вычисленных параметров, определенных на основе, по меньшей мере отчасти, журналов и их ассоциированных типов транзакций.generating a transaction report, the transaction report comprising a plurality of calculated parameters determined based at least in part on the logs and their associated transaction types. 2. Компьютерно-реализуемый способ по п.1, дополнительно содержащий этапы, на которых: идентифицируют дополнительный поднабор из набора кластеров и определяют с использованием набора базовых правил отображения типы транзакций, которые должны быть ассоциированы с журналами из дополнительного поднабора кластеров, при этом при упомянутом обучении модели прогнозирования данную модель обучают с использованием журналов из дополнительного поднабора и ассоциированных типов транзакций.2. The computer-implemented method of claim 1, further comprising: identifying an additional subset of the set of clusters and determining, using a set of basic mapping rules, the transaction types to be associated with logs from the additional subset of clusters, wherein said training a prediction model, the model is trained using logs from an additional subset and associated transaction types. 3. Компьютерно-реализуемый способ по п.1, в котором упомянутая идентификация конкретного поднабора кластеров содержит этап, на котором выбирают кластеры для этого поднабора на основе, по меньшей мере отчасти, значения транзакции, ассоциированного с каждым кластером.3. The computer-implemented method of claim 1, wherein said identifying a particular subset of clusters comprises selecting clusters for that subset based at least in part on a transaction value associated with each cluster. 4. Компьютерно-реализуемый способ по п.1, в котором упомянутая идентификация конкретного поднабора из набора кластеров содержит этап, на котором выбирают кластеры на основе, по меньшей мере отчасти, метрики расстояния между соответствующими кластерами в данном поднаборе.4. The computer-implemented method of claim 1, wherein said identifying a particular subset of a set of clusters comprises selecting clusters based at least in part on a distance metric between corresponding clusters in that subset. 5. Компьютерно-реализуемый способ по п.1, в котором упомянутое формирование CDS содержит этап, на котором удаляют не относящиеся к делу или дублирующие журналы.5. The computer-implemented method of claim 1, wherein said CDS generation comprises removing irrelevant or duplicate logs. 6. Компьютерно-реализуемый способ обработки записей транзакций, содержащий этапы, на которых:6. A computer-implemented method for processing transaction records, comprising the steps of: принимают данные транзакций, содержащие множество журналов, причем с журналами ассоциирован текст;receive transaction data containing a plurality of logs, and text is associated with the logs; формируют на основе данных транзакций очищенный набор данных (CDS), содержащий журналы для множества транзакций;generating, based on the transaction data, a cleaned data set (CDS) containing logs for a plurality of transactions; осуществляют кластеризацию, по меньшей мере, подмножества журналов из CDS на основе ассоциированного текста и пороговой величины сходства, при этом результатом кластеризации является набор кластеров;clustering at least a subset of journals from the CDS based on the associated text and a similarity threshold, wherein the result of the clustering is a set of clusters; принимают пользовательское определение типа транзакции для каждого конкретного поднабора из набора кластеров, при этом принятые типы транзакций ассоциируются с каждым журналом соответствующего кластера;accepting a custom transaction type definition for each specific subset of the set of clusters, wherein the accepted transaction types are associated with each log of the corresponding cluster; обучают модель прогнозирования с использованием журналов из этого конкретного поднабора кластеров и ассоциированных типов транзакций; иtraining a prediction model using logs from that particular subset of clusters and associated transaction types; and прогнозируют типы транзакций для дополнительных журналов с использованием модели прогнозирования.predict transaction types for additional logs using the prediction model. 7. Компьютерно-реализуемый способ по п.6, дополнительно содержащий этапы, на которых идентифицируют дополнительный поднабор из набора кластеров и определяют с использованием набора базовых правил отображения типы транзакций, которые должны быть ассоциированы с журналами из дополнительного поднабора кластеров, при этом при упомянутом обучении модели прогнозирования данную модель обучают с использованием журналов из дополнительного поднабора и ассоциированных типов транзакций.7. The computer-implemented method of claim 6, further comprising identifying an additional subset of the set of clusters and determining, using a set of basic mapping rules, the types of transactions to be associated with the logs from the additional subset of clusters, wherein said learning Predictive Models This model is trained using additional subset logs and associated transaction types. 8. Компьютерно-реализуемый способ по п.6, в котором упомянутое формирование CDS журналов из данных транзакций содержит этап, на котором обрабатывают, по меньшей мере, фрагмент текста, ассоциированного с журналами, с использованием обработки на естественном языке (NLP).8. The computer-implemented method of claim 6, wherein said generation of log CDS from transaction data comprises processing at least a piece of text associated with the logs using natural language processing (NLP). 9. Компьютерно-реализуемый способ по п.8, в котором упомянутое формирование CDS дополнительно содержит этап, на котором удаляют не относящиеся к делу или дублирующие журналы из множества журналов.9. The computer-implemented method of claim 8, wherein said CDS generation further comprises removing irrelevant or duplicate logs from the plurality of logs. 10. Компьютерно-реализуемый способ по п.6, дополнительно содержащий этап, на котором предоставляют для демонстрации характерный журнал для кластера из упомянутого конкретного поднабора перед приемом соответствующего пользовательского определения типа транзакции для этого кластера.10. The computer-implemented method of claim 6, further comprising providing for demonstration a characteristic log for a cluster of said particular subset before receiving a corresponding user defined transaction type for that cluster. 11. Компьютерно-реализуемый способ по п.6, дополнительно содержащий этапы, на которых:11. The computer-implemented method of claim 6, further comprising the steps of: предоставляют для демонстрации два характерных журнала для кластера из упомянутого конкретного поднабора;provide for demonstration two characteristic logs for a cluster from said specific subset; принимают разные пользовательские определения типов транзакций для этих двух характерных журналов; иaccept different user definitions of transaction types for these two specific logs; and разбивают данный кластер на основе, по меньшей мере отчасти, этих разных пользовательских определений типов транзакций для двух характерных журналов.split this cluster based, at least in part, on these different user definitions of transaction types for two characteristic logs. 12. Компьютерно-реализуемый способ по п.6, дополнительно содержащий этап, на котором проверяют достоверность типов прогнозирования, обеспечиваемых обученной моделью прогнозирования, с использованием способа Человек-в-Цикле.12. The computer-implemented method of claim 6, further comprising verifying the validity of the prediction types provided by the trained prediction model using the Man-in-the-Cycle method. 13. Компьютерно-реализуемый способ по п.6, в котором упомянутая идентификация конкретного поднабора кластеров содержит этап, на котором выбирают кластеры для этого поднабора на основе, по меньшей мере отчасти, значения транзакции, ассоциированного с каждым кластером.13. The computer-implemented method of claim 6, wherein said identifying a particular subset of clusters comprises selecting clusters for that subset based at least in part on a transaction value associated with each cluster. 14. Компьютерно-реализуемый способ по п.6, дополнительно содержащий этапы, на которых:14. The computer-implemented method of claim 6, further comprising the steps of: выполняют автоматизированный анализ качества и ошибок касаемо типов транзакций, спрогнозированных моделью прогнозирования; иperforming automated quality and error analysis on transaction types predicted by the prediction model; and модифицируют по меньшей мере один параметр модели на основе анализа качества и ошибок.modifying at least one model parameter based on quality and error analysis. 15. Компьютерно-реализуемый способ по п.6, дополнительно содержащий этапы, на которых:15. The computer-implemented method of claim 6, further comprising the steps of: выполняют автоматизированный анализ качества и ошибок касаемо типов транзакций, спрогнозированных моделью прогнозирования;performing automated quality and error analysis on transaction types predicted by the prediction model; идентифицируют один или более журналов для ручной разметки на основе анализа качества и ошибок; иidentifying one or more logs for manual tagging based on quality and error analysis; and принимают пользовательское определение типа транзакции для каждого из этих одного или более журналов.accept a custom transaction type definition for each of these one or more logs. 16. Компьютерно-реализуемый способ по п.6, дополнительно содержащий этап, на котором обучают модель прогнозирования с использованием одного или более журналов и ассоциированных типов транзакций.16. The computer-implemented method of claim 6, further comprising training a prediction model using one or more logs and associated transaction types. 17. Компьютерно-реализуемый способ по п.6, в котором упомянутое прогнозирование типов транзакций для дополнительных журналов приводит к тому, что ассоциировано более 95% из множества журналов.17. The computer-implemented method of claim 6, wherein said prediction of transaction types for additional logs results in more than 95% of the plurality of logs being associated. 18. Компьютерно-реализуемый способ по п.6, дополнительно содержащий этап, на котором используют обученную модель для прогнозирования типов транзакций для журналов из другого набора данных транзакций.18. The computer-implemented method of claim 6, further comprising using the trained model to predict transaction types for logs from another set of transaction data. 19. Долговременный машиночитаемый носитель информации, хранящий инструкции для обработки записей транзакций, причем инструкции при их исполнении процессором предписывают процессору:19. A durable computer-readable storage medium that stores instructions for processing transaction records, wherein the instructions, when executed by the processor, instruct the processor to: принимать данные транзакций, содержащие множество журналов, причем с журналами ассоциирован текст;receive transaction data containing a plurality of logs, with text associated with the logs; формировать на основе данных транзакций очищенный набор данных (CDS), содержащий журналы для множества транзакций;generate, based on the transaction data, a cleaned data set (CDS) containing logs for a plurality of transactions; осуществлять кластеризацию, по меньшей мере, подмножества журналов из CDS на основе ассоциированного текста и пороговой величины сходства, при этом результатом кластеризации является набор кластеров;clustering at least a subset of journals from the CDS based on the associated text and a similarity threshold, wherein the result of the clustering is a set of clusters; принимать пользовательское определение типа транзакции для каждого конкретного поднабора из набора кластеров, при этом принятые типы транзакций ассоциируются с каждым журналом соответствующего кластера;receive a custom transaction type definition for each particular subset of the set of clusters, wherein the accepted transaction types are associated with each log of the corresponding cluster; обучать модель прогнозирования с использованием журналов из этого конкретного поднабора кластеров и ассоциированных типов транзакций; иtrain a prediction model using logs from that particular subset of clusters and associated transaction types; and прогнозировать типы транзакций для дополнительных журналов с использованием модели прогнозирования.predict transaction types for additional logs using a predictive model. 20. Долговременный машиночитаемый носитель информации по п.19, дополнительно содержащий инструкции, которые при их исполнении процессором предписывают процессору:20. The non-volatile computer-readable storage medium of claim 19, further comprising instructions that, when executed by the processor, cause the processor to: идентифицировать дополнительный поднабор из набора кластеров и определять с использованием набора базовых правил отображения типы транзакций, которые должны быть ассоциированы с журналами из дополнительного поднабора кластеров; иidentify an additional subset of the set of clusters and determine, using the set of basic mapping rules, the types of transactions that should be associated with logs from the additional subset of clusters; and обучать модель прогнозирования с использованием журналов из дополнительного поднабора и ассоциированных типов транзакций.train a prediction model using additional subset logs and associated transaction types.
RU2020101484A 2019-01-17 2020-01-16 Ai transaction administration system RU2777958C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/251,051 2019-01-17
US16/251,051 US20200233857A1 (en) 2019-01-17 2019-01-17 Ai-driven transaction management system

Publications (3)

Publication Number Publication Date
RU2020101484A RU2020101484A (en) 2021-07-16
RU2020101484A3 RU2020101484A3 (en) 2022-02-11
RU2777958C2 true RU2777958C2 (en) 2022-08-12

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249717B2 (en) * 2004-12-10 2007-07-31 Mitek Systems, Inc. System and method for check fraud detection using signature validation
RU2388053C1 (en) * 2008-11-06 2010-04-27 Александр Геннадьевич Рожков Transaction verification method, automatic transaction verification system and transaction verification unit (versions)
US8620919B2 (en) * 2009-09-08 2013-12-31 Apple Inc. Media item clustering based on similarity data
RU2625050C1 (en) * 2016-04-25 2017-07-11 Акционерное общество "Лаборатория Касперского" System and method of transactions trusted declaration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249717B2 (en) * 2004-12-10 2007-07-31 Mitek Systems, Inc. System and method for check fraud detection using signature validation
RU2388053C1 (en) * 2008-11-06 2010-04-27 Александр Геннадьевич Рожков Transaction verification method, automatic transaction verification system and transaction verification unit (versions)
US8620919B2 (en) * 2009-09-08 2013-12-31 Apple Inc. Media item clustering based on similarity data
RU2625050C1 (en) * 2016-04-25 2017-07-11 Акционерное общество "Лаборатория Касперского" System and method of transactions trusted declaration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US 2009/0234683 A1. *

Similar Documents

Publication Publication Date Title
EP3683747A1 (en) Ai-driven transaction management system
Cerda et al. Similarity encoding for learning with dirty categorical variables
CA3007723C (en) Systems and/or methods for automatically classifying and enriching data records imported from big data and/or other sources to help ensure data integrity and consistency
Das et al. Hands-On Automated Machine Learning: A beginner's guide to building automated machine learning systems using AutoML and Python
Vishnu et al. A review on the significance of machine learning for data analysis in big data
US11526261B1 (en) System and method for aggregating and enriching data
Hadju et al. Sentiment analysis of indonesian e-commerce product reviews using support vector machine based term frequency inverse document frequency
CN111612519A (en) Method, device and storage medium for identifying potential customers of financial product
Ogunleye The Concept of Data Mining
Jeyaraman et al. Practical Machine Learning with R: Define, build, and evaluate machine learning models for real-world applications
US20230267105A1 (en) System and method for enriching and normalizing data
RU2777958C2 (en) Ai transaction administration system
Berthold et al. Data preparation
US20220114490A1 (en) Methods and systems for processing unstructured and unlabelled data
US20210304234A1 (en) LCP Pricing Tool
Roelands et al. Classifying businesses by economic activity using web-based text mining
Abdullah et al. Data Classification: Its Techniques and Big data
CN109614489A (en) It is a kind of to report severity recognition methods based on transfer learning and the Bug of feature extraction
Kashyap Machine Learning in Google Cloud Big Query using SQL
US20230385951A1 (en) Systems and methods for training models
Botha Data mining construction project information to aid project management
US11893008B1 (en) System and method for automated data harmonization
Kannan Visualizing the interactions and relationships from sales data and data-driven automatic product bundling to increase cross-selling
CN116932487B (en) Quantized data analysis method and system based on data paragraph division
Mohan An Eclectic Approach for Predicting Customer Segmentation to Facilitate Market Basket Analysis