Efficient integer programming search for matching entities using machine learning

By using deep neural networks and hybrid integer programming optimization algorithms, the problem of cross-table entity matching is solved, and efficient and accurate entity recognition and matching is achieved, which is suitable for data storage scenarios in multiple data formats.

CN120277239APending Publication Date: 2025-07-08SAP SE
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411838591.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-08
Filing Date
2024-12-13
Publication Date
2025-07-08

AI Technical Summary

Technical Problem

The prior art is difficult to effectively match entities across multiple tables, especially in data storage, which makes it difficult to identify the same entity due to inconsistent data formats, affecting data coordination and duplicate data elimination.

Method used

Using machine learning technology, through training deep neural network models, identify and match entities in the table, use hybrid integer programming optimization algorithm and linear objective function, and combine machine learning models and hybrid integer programming library to achieve efficient matching.

Benefits of technology

Improves the accuracy and efficiency of entity matching, reduces manual intervention, and is suitable for entity matching tasks in multiple data formats, especially in areas such as finance and logistics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120277239A_ABST
    Figure CN120277239A_ABST
Patent Text Reader

Abstract

In an example embodiment, a scheme is provided for matching an entity in a look-up table with one or more entities in a target table using machine learning techniques in the presence of a constraint (hereinafter referred to as a "value constraint") on a sum of values of a matching target. Specifically, a non-linear objective function is converted to a linear objective function, and a machine learning model is trained using the linear objective function, thereby allowing solver functions from a library to be used in order to speed up matching of existing methods.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This document generally relates to machine learning. More specifically, this document relates to a deep neural network for matching entities in semi-structured data. Background Art

[0002] Databases typically store data in tables, with each row representing a different entity. An entity can be any element in a dataset, including, for example, users, documents, organizations, locations, etc.; however, in many types of data storage, each row in a table corresponds to a different entity. For example, if the table is a table of documents, then each row represents a different document. Summary of the Invention

[0003] Embodiments of the present disclosure provide a computer-implemented system, comprising: at least one hardware processor; and a non-transitory computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations, the operations including: obtaining a non-linear objective function designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; converting the non-linear objective function into a linear objective function; accessing a first entity in a first table of the second type, the first entity including a numerical field; accessing a plurality of target entities in one or more tables of the first type, each of the plurality of target entities including a numerical field; passing the first entity and the plurality of target entities into a machine learning model to generate a similarity score corresponding to each of the one or more target entities; using the linear objective function to identify, based on the score of each of the one or more target entities, one or more subsets of the one or more target entities that may match the first entity; and filtering the one or more subsets to obtain one or more inference results.

[0004] Embodiments of the present disclosure provide a computer-implemented method, comprising: obtaining a non-linear objective function designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; converting the non-linear objective function into a linear objective function; accessing a first entity in a first table of the second type, the first entity including a numerical field; accessing a plurality of target entities in one or more tables of the first type, each of the plurality of target entities including a numerical field; passing the first entity and the plurality of target entities into a machine learning model to generate a similarity score corresponding to each of the one or more target entities; using the linear objective function to identify, based on the score of each of the one or more target entities, one or more subsets of the one or more target entities that may match the first entity; and filtering the one or more subsets to obtain one or more inference results.

[0005] Embodiments of the present disclosure provide a non - transitory machine - readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including: obtaining a non - linear objective function designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; converting the non - linear objective function into a linear objective function; accessing a first entity in a first table of the second type, the first entity including a numerical field; accessing a plurality of target entities in one or more tables of the first type, each of the plurality of target entities including a numerical field; passing the first entity and the plurality of target entities into a machine - learning model to generate a similarity score corresponding to each of the one or more target entities; using the linear objective function to identify, based on the score of each of the one or more target entities, one or more subsets of the one or more target entities that may match the first entity; and filtering the one or more subsets to obtain one or more inference results. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The present disclosure is illustrated, by way of example and not limitation, in the figures of the accompanying drawings, in which like reference numerals indicate similar elements.

[0007] Figure 1 is a diagram showing an example of a query table and a target table according to an example embodiment.

[0008] Figure 2 is a block diagram showing a system for matching entities in tables using machine learning according to an example embodiment.

[0009] Figure 3 is a diagram showing an example of a sequence processing operation according to an example embodiment.

[0010] Figure 4 is a flowchart showing a method for matching entities in tables according to an example embodiment.

[0011] Figure 5 is a block diagram showing a software architecture that may be installed on any one or more of the above - mentioned devices.

[0012] Figure 6 shows an illustration of a machine in the form of a computer system in which a set of instructions may be executed, the set of instructions causing the machine to perform any one or more of the methods discussed herein. DETAILED DESCRIPTION

[0013] The following description discusses illustrative systems, methods, techniques, instruction sequences, and computer program products. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various example embodiments of the subject matter. However, it will be apparent to one skilled in the art that the various example embodiments of the subject matter may be practiced without these specific details.

[0014] One problem that can occur in data storage is the inability to match entities across multiple tables. For example, it may be difficult to determine whether an entity in one table is the same as an entity listed in another table because the data stored in the respective tables may not be normalized and, as a result, different tables may store information about the same entity in two different ways. For example, a consumer-facing product catalog may contain information about products stored in a different format than the same information in a component-supplier-facing product catalog. Similarly, a table containing revenue payments from customers may be related to invoices in a separate table of invoices.

[0015] This problem can also occur in areas other than data storage. For example, in some systems, it is desirable to match invoices with shipping records, and if this cannot be done accurately, it can cause harm.

[0016] In some cases, it may be beneficial to identify matches between entities in different tables to reconcile two different formats of information. In other cases, such matches can be used for deduplication of entities that are not intended to be listed twice in order to reduce storage size.

[0017] In an example embodiment, a solution is provided that uses machine learning techniques to match entities in a query table with one or more entities in a target table in the presence of a constraint on the sum of values of the match targets (hereinafter referred to as a "value constraint"). As a specific example, consider a table containing revenue payments (also referred to as bank statement records) and a second table containing expense invoices. The value constraint requires that the sum of the amounts of the matching invoices be close to the bank statement amount. In an enterprise finance application, finding the set of matching invoices for each bank statement that satisfies the value constraint is a labor-intensive manual task.

[0018] Figure 1FIG. 0 is a diagram illustrating an example of a query table 100 and a target table 102 according to an example embodiment. Here, the query table 100 stores information about bank statements 104A, 104B, while the target table 102 stores information about accounts receivable documents 106A, 106B, 106C, 106D. It can be imagined that bank statement 104A may be related to accounts receivable document 106A or 106D (or both), since both are from ABCD Company, but there may be ambiguity as to which one is related, and there is also a potentially inefficient search for first identifying 106A and 106D as potentially related to bank statement 104A.

[0019] Similar problems also occur in other business scenarios, such as in logistics, where, under the constraint that the quantity of received goods added up equals the quantity of purchased goods, a set of matching records for each purchase order (query) regarding incoming actual shipments (targets) needs to be found.

[0020] Formally, the problem can be formulated as follows: for each query from the query table Let be the set of targets from the target table that constitute the matching candidates for , for example, the set of invoices having the same company code as the underlying bank statement. The goal is to find a subset of targets that has the maximum matching score (calculated by a scoring function f) with and satisfies the value constraint. In many use cases, such as cash application or recyclable packaging management, there is a numerical field a in the query table and a numerical field b in the target table. The value constraint requires where ∈≥0 reflects a small tolerance. There are two reasons for introducing a non-zero tolerance ∈: it can solve the floating-point error that occurs when the exact calculation result is 0; and there may also be cases in the business process where a tolerance is needed, such as in the financial field, where currency conversions with slightly different exchange rates may be involved. It can be assumed that for all

[0021] This can be achieved by pre-filtering out all where to achieve.

[0022] Mathematically, the search problem can be formulated as solving

[0023]

[0024] subject to

[0025]

[0026] Here, Quantify​ and T s The matching score between all targets in, the higher the score the better. One way to define f is to train a machine learning / deep learning model on historical data. In practice, in terms of data preprocessing, memory, and runtime, training a model that scores the similarity between and an arbitrary-sized subset T of targets s is not feasible. Another approach is to assume that the targets are statistically independent; thus can be decomposed into a combination of individual matching scores (e.g., product, sum, average), where is a target and g is a model that scores the similarity between and . In the present disclosure, the following definition can be used:

[0027]

[0028] In summary, the following problem can be solved:

[0029]

[0030] subject to

[0031]

[0032] For the above optimization problem, one possible solution is to exhaust all subsets of T and select the subset with the best matching score with . Since this is exponential in |T|, it is applicable when |T| is small, e.g., |T| ≤ 20. When |T| is large, a more scalable algorithm is needed.

[0033] In the following, an alternative is provided that performs an efficient exploration of the search space and avoids the expensive task of exhausting all subsets. This is achieved by formulating the original optimization problem into an equivalent form that can apply mixed integer programming. Then, existing mixed integer programming solver libraries, such as SCIP, Gurobi, CPLEX, and PuLP, can be used to efficiently search for the best matching subset of targets.

[0034] Recall that and let Each subset of invoices can be characterized by a binary sequence n1,…,n N where n i = 1 indicates that the target is included in the subset and 0 otherwise.

[0035] The optimization problem becomes to solve

[0036]

[0037] subject to value constraints

[0038]

[0039] and non - empty subset constraints

[0040]

[0041] Due to the objective function being non - linear, which is not usually optimal for use in existing mixed - integer programming libraries, the optimization problem is transformed into one of two different equivalent formulations.

[0042] In the first formulation, the objective function is used as a constraint. Here, an auxiliary variable z is defined, which bounds the lower limit of the original objective function. Thus, maximizing z means maximizing the function.

[0043] Specifically, the following problem is solved:[[]]

[0044]

[0045] subject to

[0046]

[0047] and

[0048]

[0049] and

[0050]

[0051] Here, the absolute constraint can be represented by two linear constraints; for readability, they can be combined into one. Also note that the new objective function is linear and thus can be solved by a mixed - integer programming library. To ameliorate the fact that the first constraint is non - linear, another formulation is introduced, which has a linear objective function and linear constraints.

[0052] Here

[0053] Let p min = min{p1, p2, …, p N}, and p max = max{p1, p2, …, p N}.

[0054] Let Then Let z i= y·n i Then it holds that:

[0055] n i ·p min ≤ z i ≤ n i ·p max

[0056] and

[0057] y - p max ·(1 - n i ) ≤ z i ≤ y - p min ·(1 - n i )

[0058] In summary, the following is solved:

[0059]

[0060] subject to

[0061]

[0062] and

[0063]

[0064] and

[0065]

[0066] and

[0067]

[0068] and

[0069]

[0070] In the second formula, both the objective function and the constraints are linear, making it potentially easier to solve by relevant libraries.

[0071] Figure 2is a block diagram showing a system 200 that uses machine learning to match entities in a table according to an example embodiment. Here, the application server 202 runs a series of components to perform the matching. In some example embodiments, the application server 202 can be cloud-based. Enterprise resource planning (ERP) software 204 stores multiple tables, including tables that will be considered query tables and target tables for the purposes of this disclosure. The ERP software integrates processes used to run an organization, such as finance, manufacturing, human resources, supply chain, service, procurement, etc., into a single unified system. These processes generally provide intelligence, visibility, and efficiency across most, if not all, aspects of the organization. An example of ERP software is S / 4HANA.

[0072] More specifically, the ERP software 204 runs one or more ERP applications 206A, 206B, 206C, and each of the ERP applications can read from or write to tables in the database 208. In some example embodiments, the database 208 is an in-memory database, which is a database in which data is persistently stored in the main memory (e.g., random access memory) of a computer system rather than on a disk such as a hard drive.

[0073] The application server 202 can operate a machine learning training component 210. The machine learning training component 210 is used to train a machine learning model 212 to score the similarity of entities. This training can use training data 214, which can be a sample table with entities that have labels indicating identity matches (either exact matches, i.e., one-to-one matches, or partial matches, such as a single payment corresponding to several different invoices, or vice versa).

[0074] The machine learning model 212 can be trained by any of many different potential supervised or unsupervised machine learning algorithms. Examples of supervised learning algorithms include artificial neural networks, Bayesian networks, instance-based learning, support vector machines, linear classifiers, quadratic classifiers, k-nearest neighbors, decision trees, and hidden Markov models.

[0075] In an example embodiment, the machine learning training component 210 for training the machine learning model 212 can iterate among various weights (i.e., parameters) that will be multiplied by various input variables, and evaluate a loss function at each iteration until the loss function is minimized, and the weights / parameters at this stage are learned. Specifically, as part of a weighted summation operation, the weights are multiplied by the input variables, and the weighted summation operation is used by the loss function.

[0076] In some example embodiments, the training of the machine learning model 212 can be performed as a dedicated training phase. In other example embodiments, the machine learning model 212 can be dynamically retrained at runtime by a user providing real-time feedback.

[0077] At some point, one or more of the ERP applications 206A, 206B, 206C, or another application not shown, can indicate a desire to identify entities in one or more target tables that match one or more entities in a query table. As such, the inference runtime 216 is launched on the application server 202. The inference runtime is loaded with the machine learning model 212 and one or more solver functions 218 (such as from one or more libraries). At least some of these solver functions require a linear optimization problem, linear constraints, or both, or operate more efficiently on a linear optimization problem, linear constraints, or both. Examples of such libraries include SCIP and PuLP.

[0078] An inference worker 220 in the inference runtime 216 obtains inference data 222 from the database 208. The inference data 222 is then passed through the machine learning model 212, which outputs model predictions with confidence scores. This includes matching pairs of targets and queries, which can then be passed to a combinatorial search algorithm 224. The combinatorial search algorithm 224 utilizes a linear version 226 of the objective function and optional linear constraints 228, and then uses one or more solver functions 218 to solve the linear version 226 of the objective function and the optional linear constraints 228. The result is a subset of matches 230. Here, for example, query item 7 has 18 as the only subset of matches, while query item 6 has three different potential subsets of matches (the first being (3, 11, 15), the second being (2, 11, 16), and the third being (2, 15)). Based on the confidence values returned by the machine learning model 212, the combinatorial search algorithm 224 also returns the average confidence value for the corresponding set. Optionally, post-processing filtering 232 filters out sets with an average confidence value below a configured threshold. The result 234 can then be passed back to the ERP software 204.

[0079] In an example embodiment, the machine learning model 212 is a deep neural network, which can be used to determine the matches between candidate entity pairs and a confidence score reflecting how certain the deep neural network is about the corresponding match. The deep neural network is also capable of finding these matches without the need for domain knowledge, which is required if the features of the machine learning model are handcrafted, and this is a shortcoming of prior art machine learning models for matching entities in multiple tables. In fact, in some cases, users may not be able to define a universal set of engineering features (such as the semantics and exact usage of terms may vary by country and organization), which makes the prior art unavailable. Therefore, the deep neural network improves the functionality of prior art machine learning models designed to perform the same task. Specifically, the deep neural network learns the relationships between table fields and patterns for defining matches solely from historical data, making such an approach universal and context-independent applicable.

[0080] The table itself can be considered semi-structured. Some fields in the table can contain structured data (i.e., they have a definite type, such as date / numeric (such as amount, volume, and quantity), or categorical values (such as country or currency code)). Other fields in the table are unstructured text type fields, such as item description, reference number, bank statement memo note, company name, etc. Although there may be formatting conventions for some of these text fields, the data in the fields is usually entered by users, so the content can vary greatly. For example, the bank transfer payment advice field may or may not contain an invoice number, the reference number may or may not contain a leading zero, the company name may or may not contain the city where the company is located, etc. These unstructured fields usually carry a large amount of information required to find matching entities.

[0081] More specifically, in an example embodiment, the deep neural network is used as a machine learning model and is trained in such a way that domain knowledge about the meaning of the fields in the table or the relationships between the fields in the table is not required during training.

[0082] Figure 3 is a diagram showing an example of a sequence processing operation according to an example embodiment. The figure depicts how a class text field 300 of entities is tokenized and concatenated into a first sequence 302, and then a second sequence 304 is generated, thereby indicating the field location of the field where the corresponding token is located. Then, both the first sequence 302 and the second sequence 304 are respectively mapped to embeddings 306 and 308. The embeddings 306 and 308, which can be stored as matrices, are then stacked together and aligned into a matrix 310. The sequence-to-sequence module then outputs a k'-dimensional vector 312.

[0083] k'-dimensional vector and (Same as vector 312) and then is passed to the decomposable attention and aggregation components, which operate as follows:

[0084] The core model consists of the following three components, which are trained jointly:

[0085] Attention. First, a variant of neural attention is used to softly align and elements, and the question is decomposed into a comparison of aligned sub-phrases.

[0086] Comparison. Second, each aligned sub-phrase is compared separately to produce a vector of a and a vector of b. Each v 1,i is a non-linear combination of i a and its (softly) aligned sub-phrase in 2, b (similarly for v a

[0087] Aggregation. Finally, aggregate from the previous and

[0088] We first obtain the unnormalized attention weights eij computed by the function F’, and the function F’ is decomposed into:

[0089]

[0090] Such a decomposition avoids the quadratic complexity associated with applying F′l a ×l b times. Instead, only F A / B l a +l b applications are required.

[0091] These attention weights are normalized as follows:

[0092]

[0093] Here, β i is the sub-phrase in (softly) aligned with and, conversely, for α j and vice versa.

[0094] Next, the aligned phrases and are compared separately using the function G. The function G is also a feed-forward network:

[0095]

[0096] Among them, the brackets [.,.] denote concatenation. Note that since there are only a linear number of terms in this case, there is no need for decomposition as in the previous step. Thus, G can consider both and β i both.

[0097] Now there are two sets of comparison vectors: and First, the system can aggregate each set through some type of pooling (such as average, max pooling, or sum):

[0098]

[0099] And feed the result through a final classifier H, which is a feed-forward network following a linear layer:

[0100]

[0101] Among them, represents the predicted (un-normalized) score for each class, and thus the predicted class is given by given.

[0102] For training, multi-class cross-entropy loss with dropout regularization can be used:

[0103]

[0104] Here, θ F , θ G , θ H respectively represent the learnable parameters of the functions F A / B , G, and H.

[0105] Figure 4 is a flowchart of an example method for matching entities in a table according to an example embodiment. At operation 410, a non-linear objective function is obtained, which is designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table. At operation 420, the non-linear objective function is transformed into a linear objective function.

[0106] At operation 430, a first entity in a first table of the second type is accessed. The first entity includes a numerical field. At operation 440, a plurality of target entities in one or more tables of the first type are accessed. Each of the plurality of target entities includes a numerical field.

[0107] In operation 450, a first entity and multiple target entities are passed into a machine learning model to generate a score for each of the multiple target entities. The score represents the likelihood that the corresponding target entity matches the first entity. In operation 460, a combinatorial search algorithm uses the scores to identify one or more subsets of the multiple target entities that are likely to match the first entity. In operation 470, the one or more subsets are filtered to obtain one or more inference results.

[0108] In view of the above-described implementations of the subject matter, the present application discloses the following list of examples, where a feature of a single example or a combination of more than one feature of the example, and optionally, a combination of one or more features with one or more other examples, are other examples that also fall within the scope of the disclosure of the present application.

[0109] Example 1 is a system, including: at least one hardware processor; and a non-transitory computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations, the operations including: obtaining a non-linear objective function that is designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; converting the non-linear objective function into a linear objective function; accessing a first entity in a first table of the second type, the first entity including a numerical field; accessing multiple target entities in one or more tables of the first type, the multiple target entities each including a numerical field; passing the first entity and the multiple target entities into a machine learning model to generate a similarity score corresponding to each of the one or more target entities; using the linear objective function to identify one or more subsets of the one or more target entities that are likely to match the first entity based on the score of each of the one or more target entities; and filtering the one or more subsets to obtain one or more inference results.

[0110] In Example 2, the subject matter of Example 1 includes, where the machine learning model generates an average confidence score for each subset that is likely to match, and the average confidence score indicates the likelihood that the corresponding subset matches the first entity.

[0111] In Example 3, the subject matter of Examples 1-2 includes, where the sum of the numerical fields of the target entities in each of the subsets is within a threshold amount of the numerical field of the first entity.

[0112] In Example 4, the subject matter of Examples 1-3 includes, where the conversion includes creating a formula that maximizes an auxiliary variable, and the auxiliary variable is a lower bound of the non-linear objective function.

[0113] In Example 5, the subject matter of Examples 1-4 includes, wherein the transformation includes both converting a non-linear objective function into a linear objective function and converting non-linear constraints of the non-linear objective function into linear constraints of the linear objective function.

[0114] In Example 6, the subject matter of Examples 1-5 includes, wherein the passing further includes performing calculations on the output of the machine learning model using a solver function included in a software library.

[0115] In Example 7, the subject matter of Examples 1-6 includes, wherein a first table of a second type and one or more tables of a first type are stored in an enterprise resource planning (ERP) system.

[0116] Example 8 is a method that includes: obtaining a non-linear objective function that is designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; converting the non-linear objective function into a linear objective function; accessing a first entity in a first table of the second type, the first entity including a numerical field; accessing a plurality of target entities in one or more tables of the first type, each of the plurality of target entities including a numerical field; passing the first entity and the plurality of target entities into a machine learning model to generate a similarity score corresponding to each of the one or more target entities; using the linear objective function to identify, based on the score of each of the one or more target entities, one or more subsets of the one or more target entities that may match the first entity; and filtering the one or more subsets to obtain one or more inference results.

[0117] In Example 9, the subject matter of Example 8 includes, wherein the machine learning model generates an average confidence score for each potentially matching subset, the average confidence score indicating the likelihood that the corresponding subset matches the first entity.

[0118] In Example 10, the subject matter of Examples 8-9 includes, wherein the sum of the numerical fields of the target entities in each of the subsets is within a threshold amount of the numerical field of the first entity.

[0119] In Example 11, the subject matter of Examples 8-10 includes, wherein the transformation includes creating a formula that maximizes an auxiliary variable, the auxiliary variable being a lower bound of the non-linear objective function.

[0120] In Example 12, the subject matter of Examples 8-11 includes, wherein the transformation includes both converting a non-linear objective function into a linear objective function and converting non-linear constraints of the non-linear objective function into linear constraints of the linear objective function.

[0121] In Example 13, the subject matter of Examples 8-12 includes, wherein the passing further includes performing calculations on the output of the machine learning model using a solver function included in a software library.

[0122] In Example 14, the subject matter of Examples 8-13 includes, wherein, a first table of a second type and one or more tables of a first type are stored in an enterprise resource planning (ERP) system.

[0123] Example 15 is a non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including: obtaining a non-linear objective function designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; converting the non-linear objective function to a linear objective function; accessing a first entity in a first table of the second type, the first entity including a numerical field; accessing a plurality of target entities in one or more tables of the first type, each of the plurality of target entities including a numerical field; passing the first entity and the plurality of target entities into a machine learning model to generate a similarity score corresponding to each of the one or more target entities; using the linear objective function to identify, based on the score of each of the one or more target entities, one or more subsets of the one or more target entities that may match the first entity; and filtering the one or more subsets to obtain one or more inference results.

[0124] In Example 16, the subject matter of Example 15 includes, wherein, the machine learning model generates an average confidence score for each potentially matching subset, the average confidence score indicating the likelihood that the corresponding subset matches the first entity.

[0125] In Example 17, the subject matter of Examples 15-16 includes, wherein, the sum of the numerical fields of the target entities in each of the subsets is within a threshold amount of the numerical field of the first entity.

[0126] In Example 18, the subject matter of Examples 15-17 includes, wherein, the conversion includes creating a formula that maximizes an auxiliary variable, the auxiliary variable being a lower bound of the non-linear objective function.

[0127] In Example 19, the subject matter of Examples 15-18 includes, wherein, the conversion includes both converting the non-linear objective function to a linear objective function and converting the non-linear constraints of the non-linear objective function to linear constraints of the linear objective function.

[0128] In Example 20, the subject matter of Examples 15-19 includes, wherein, the passing further includes performing calculations on the output of the machine learning model using a solver function included in a software library.

[0129] Example 21 is at least one machine-readable medium including instructions that, when executed by a processing circuit, cause the processing circuit to perform operations to implement any one of Examples 1-20.

[0130] Example 22 is an apparatus including components implementing any one of Examples 1 - 20.

[0131] Example 23 is a system implementing any one of Examples 1 - 20.

[0132] Example 24 is a method implementing any one of Examples 1 - 20.

[0133] Figure 5 is a block diagram 500 showing a software architecture 502 that can be installed on any one or more of the above devices. Figure 5 is merely a non - limiting example of a software architecture, and it should be understood that many other architectures can be implemented to facilitate the functions described herein. In various embodiments, the software architecture 502 is implemented by hardware such as Figure 6 a machine 600 including a processor 610, a memory 630, and input / output (I / O) components 650. In this example architecture, the software architecture 502 can be conceptualized as a stack of layers, where each layer can provide a specific function. For example, the software architecture 502 includes layers such as an operating system 504, libraries 506, an architecture 508, and applications 510. According to some embodiments, in operation, the application 510 makes an API call 512 through the software stack and receives a message 514 in response to the API call 512.

[0134] In various embodiments, the operating system 504 manages hardware resources and provides common services. The operating system 504 includes, for example, a kernel 520, services 522, and drivers 524. According to some embodiments, the kernel 520 acts as an abstraction layer between the hardware and other software layers. For example, the kernel 520 provides memory management, processor management (e.g., scheduling), component management, networking, and security settings, among other functions. The services 522 can provide other common services to other software layers. According to some embodiments, the drivers 524 are responsible for controlling or interfacing with the underlying hardware. For example, the drivers 524 can include a display driver, a camera driver, or a low - energy driver, a flash memory driver, a serial communication driver (e.g., a Universal Serial Bus [USB] driver), drivers, an audio driver, a power management driver, etc.

[0135] In some embodiments, library 506 provides a low-level common infrastructure used by application 510. Library 506 may include system library 530 (e.g., C standard library), which may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. Additionally, library 506 may include API library 532, such as media libraries (e.g., libraries that support the presentation and manipulation of various media formats, such as Moving Picture Experts Group-4 [MPEG4], Advanced Video Coding [H.264 or AVC], Moving Picture Experts Group Layer-3 [MP3], Advanced Audio Coding [AAC], Adaptive Multi-Rate [AMR] audio codec, Joint Photographic Experts Group [JPEG or JPG] or Portable Network Graphics [PNG]), graphics libraries (e.g., OpenGL architecture for 2D and 3D presentation in a graphical environment on a display), database libraries (e.g., SQLite that provides various relational database functions), network libraries (e.g., WebKit that provides web browsing functions), etc. Library 506 may also include a variety of other libraries 534 to provide many other APIs to application 510.

[0136] According to some embodiments, architecture 508 provides a high-level common infrastructure that can be utilized by application 510. For example, architecture 508 provides various graphical user interface (GUI) functions, advanced resource management, advanced location services, etc. Architecture 508 may provide various other APIs that can be utilized by application 510, some of which may be specific to a particular operating system 504 or platform.

[0137] In an example embodiment, application 510 includes a home page application 550, a contacts application 552, a browser application 554, an e-book reader application 556, a location application 558, a media application 560, a messaging application 562, a gaming application 564, and various other applications, such as third-party applications 566. According to some embodiments, application 510 is a program that executes functions defined in the program. Various programming languages can be employed to create one or more applications 510 constructed in various ways, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In a specific example, a third-party application 566 (e.g., an application developed using an ANDROID TM or IOS TM software development kit (SDK) by an entity other than the vendor of a particular platform) can be an application running on, such as IOS TM 、ANDROID TM 、 Mobile software on a mobile operating system such as Phone or another mobile operating system. In this example, the third-party application 566 can call the API call 512 provided by the operating system 504 to facilitate the functions described herein.

[0138] Figure 6 A diagram of a machine 600 in the form of a computer system according to an example embodiment is shown, in which a set of instructions can be executed to cause the machine 600 to perform any one or more of the methods discussed herein. Specifically, Figure 6 A diagram of a machine 600 in an example form of a computer system is shown, in which instructions 616 (e.g., software, program, application, applet, app, or other executable code) can be executed to cause the machine 600 to perform any one or more of the methods discussed herein. For example, the instructions 616 can cause the machine 600 to perform Figure 4 the method. Additionally or alternatively, the instructions 616 can implement Figures 1-4 etc. The instructions 616 transform the general, unprogrammed machine 600 into a particular machine 600 that is programmed to perform the described and shown functions in the described manner. In an alternative embodiment, the machine 600 operates as a stand-alone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 600 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 600 can include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smartphone, a mobile device, a wearable device (e.g., a smartwatch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a bridge, or any machine capable of sequentially or otherwise executing the instructions 616 that specify the actions to be taken by the machine 600. Further, although only a single machine 600 is shown, the term "machine" should also be understood to include a collection of machines 600 that individually or jointly execute the instructions 616 to perform any one or more of the methods discussed herein.

[0139] Machine 600 may include a processor 610, a memory 630, and I / O components 650, which may be configured to communicate with each other, such as via a bus 602. In an example embodiment, the processor 610 (e.g., a central processing unit [CPU], a reduced instruction set computing [RISC] processor, a complex instruction set computing [CISC] processor, a graphics processing unit [GPU], a digital signal processor [DSP], an application specific integrated circuit [ASIC], a radio frequency integrated circuit [RFIC], another processor, or any suitable combination thereof) may include, for example, a processor 612 and a processor 614 that may execute instructions 616. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") that may execute instructions 616 simultaneously. Although Figure 6 multiple processors 610 are shown, machine 600 may include a single processor 612 with a single core, a single processor 612 with multiple cores (e.g., multi-core processor 612), multiple processors 612, 614 with a single core, multiple processors 612, 614 with multiple cores, or any combination thereof.

[0140] The memory 630 may include a main memory 632, a static memory 634, and a storage unit 636, each of which may be accessed by the processor 610, such as via the bus 602. The main memory 632, the static memory 634, and the storage unit 636 store instructions 616, which embody any one or more of the methods or functions described herein. During execution of the instructions 616 by the machine 600, the instructions 616 may also reside, wholly or partially, within the main memory 632, within the static memory 634, within the storage unit 636, within at least one of the processors 610 (e.g., within a cache memory of the processor), or in any suitable combination thereof.

[0141] The I / O components 650 may include a variety of components to receive input, provide output, generate output, transmit information, exchange information, capture measurement results, etc. The specific I / O components 650 included in a particular machine will depend on the type of the machine. For example, a portable machine such as a mobile phone will likely include a touch input device or other such input mechanism, while a headless server machine will likely not include such a touch input device. It should be understood that the I / O components 650 may include Figure 6Many other components not shown. The grouping of I / O components 650 by function is for simplicity of discussion below only, and this grouping is in no way restrictive. In various example embodiments, I / O components 650 may include output components 652 and input components 654. Output components 652 may include visual components (e.g., a display such as a plasma display panel [PDP], a light-emitting diode [LED] display, a liquid crystal display [LCD], a projector, or a cathode ray tube [CRT]), acoustic components (e.g., speakers), haptic components (e.g., a vibration motor, a resistance mechanism), other signal generators, etc. Input components 654 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photographic optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing tools), tactile input components (e.g., physical buttons, a touch screen that provides the location and / or force of a touch or touch gesture, or other tactile input components), audio input components (e.g., a microphone), etc.

[0142] In further example embodiments, I / O components 650 may include biometric components 656, motion components 658, environmental components 660, or location components 662, as well as various other components. For example, biometric components 656 may include components that detect expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measure biometric signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identify (e.g., voice recognition, retina recognition, face recognition, fingerprint recognition, or electroencephalogram-based recognition), etc. Motion components 658 may include acceleration sensor components (e.g., an accelerometer), gravity sensor components, rotation sensor components (e.g., a gyroscope), etc. Environmental components 660 may include, for example, lighting sensor components (e.g., a photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., a barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., an infrared sensor that detects nearby objects), gas sensors (e.g., a gas detection sensor that detects the concentration of a hazardous gas for safety or measures pollutants in the atmosphere), or other components that may provide an indication, measurement, or signal corresponding to the surrounding physical environment. Location components 662 may include location sensor components (e.g., a global positioning system [GPS] receiver component), altitude sensor components (e.g., an altimeter or a barometer that detects the air pressure from which an altitude can be derived), orientation sensor components (e.g., a magnetometer), etc.

[0143] A variety of techniques can be used to implement communication. The I / O component 650 can include a communication component 664 that is operable to couple the machine 600 to the network 680 or the device 670 via the coupling 682 and the coupling 672, respectively. For example, the communication component 664 can include a network interface component or another suitable device interfacing with the network 680. In a further example, the communication component 664 can include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, components (e.g., low energy), components, and other communication components that provide communication in other forms. The device 670 can be another machine or any of a variety of peripheral devices (e.g., via a USB coupling).

[0144] In addition, the communication component 664 can detect an identifier or include a component operable to detect an identifier. For example, the communication component 664 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code [UPC] barcodes, multi-dimensional barcodes such as QR codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Hypercode, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). Moreover, various information can be derived via the communication component 664, such as a location via Internet Protocol (IP) geolocation, a location via signal triangulation, a location via detecting an NFC beacon signal that can indicate a specific location, etc.

[0145] Various memories (i.e., 630, 632, 634, and / or the memory of the processor 610) and / or the storage unit 636 can store a set of one or more instructions 616 and data structures (e.g., software) that embody any one or more of the methods or functions described herein or that are used by any one or more of the methods or functions described herein. When executed by the processor 610, these instructions (e.g., the instructions 616) cause various operations to implement the disclosed embodiments.

[0146] As used herein, the terms "machine storage medium", "device storage medium", and "computer storage medium" mean the same thing and are used interchangeably. These terms refer to one or more storage devices and / or media that store executable instructions and / or data (e.g., a centralized or distributed database and / or associated cache and servers). Thus, these terms should be considered to include, without limitation, solid state memories as well as optical and magnetic media, including memories internal or external to a processor. Specific examples of machine storage media, computer storage media, and / or device storage media include non-volatile memories such as semiconductor storage devices such as erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), field programmable gate arrays (FPGA), and flash devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage medium", "computer storage medium", and "device storage medium" specifically exclude carrier waves, modulated data signals, and other such media, some of which are covered by the term "signal medium" discussed below.

[0147] In various example embodiments, one or more portions of network 580 can be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a network, another type of network, or a combination of two or more such networks. For example, network 680 or a portion of network 680 can include a wireless or cellular network, and coupling 682 can be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or another type of cellular or wireless coupling. In this example, coupling 682 can implement any of a variety of types of data transfer technologies, such as single carrier radio transmission technology (1xRTT), evolved data optimized (EVDO) technology, general packet radio service (GPRS) technology, GSM enhanced data rates for GSM evolution (EDGE) technology, third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) networks, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), worldwide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standards setting organizations, other remote protocols, or other data transfer technologies.

[0148] Instructions 616 may be sent or received over network 580 via a network interface device (e.g., the network interface component included in communication component 664) using a transmission medium and any of a number of well-known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, instructions 616 may be sent or received to / from device 670 via coupling 672 (e.g., peer-to-peer coupling) using a transmission medium. The terms “transmission medium” and “signal medium” mean the same thing and may be used interchangeably in this disclosure. The terms “transmission medium” and “signal medium” should be regarded as including any non-transitory medium that is capable of storing, encoding, or carrying instructions 616 for execution by machine 600, and including digital or analog communication signals or other non-transitory media to facilitate the communication of such software. Thus, the terms “transmission medium” and “signal medium” should be regarded as including any form of modulated data signal, carrier wave, etc. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.

[0149] The terms “machine-readable medium,” “computer-readable medium,” and “device-readable medium” mean the same thing and may be used interchangeably in this disclosure. These terms are defined to include both machine storage media and transmission media. Thus, the term includes both storage devices / media and carrier waves / modulated data signals.

Claims

1. A computer-implemented system, comprising: At least one hardware processor; And A non-transitory computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations, the operations including: Obtaining a non-linear objective function designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; Converting the non-linear objective function into a linear objective function; Accessing a first entity in a first table of the second type, the first entity including a numerical field; Accessing a plurality of target entities in one or more tables of the first type, each of the plurality of target entities including a numerical field; Passing the first entity and the plurality of target entities into a machine learning model to generate a similarity score corresponding to each of the one or more target entities; Using the linear objective function, based on the scores of each of the one or more target entities, to identify one or more subsets of the one or more target entities that may match the first entity; and Filtering the one or more subsets to obtain one or more inference results.

2. The system according to claim 1, wherein The machine learning model generates an average confidence score for each potentially matching subset, the average confidence score indicating the likelihood that the corresponding subset matches the first entity.

3. The system according to claim 1, wherein The sum of the numerical fields of the target entities in each of the subsets is within a threshold amount of the numerical field of the first entity.

4. The system according to claim 1, wherein, The conversion includes creating a formula that maximizes an auxiliary variable, the auxiliary variable being a lower bound of the non-linear objective function.

5. The system according to claim 1, wherein, The conversion includes both converting the non-linear objective function into a linear objective function and converting the non-linear constraints of the non-linear objective function into linear constraints of the linear objective function.

6. The system according to claim 1, wherein The passing further includes performing calculations on the output of the machine learning model using a solver function included in a software library.

7. The system according to claim 1, wherein The first table of the second type and the one or more tables of the first type are stored in an enterprise resource planning (ERP) system.

8. A computer-implemented method, comprising: Obtaining a non-linear objective function designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; Converting the non-linear objective function into a linear objective function; Accessing a first entity in a first table of the second type, the first entity including a numerical field; Accessing a plurality of target entities in one or more tables of the first type, each of the plurality of target entities including a numerical field; Passing the first entity and the plurality of target entities into a machine learning model to generate a similarity score corresponding to each of the one or more target entities; Using the linear objective function, based on the scores of each of the one or more target entities, to identify one or more subsets of the one or more target entities that may match the first entity; And Filtering the one or more subsets to obtain one or more inference results.

9. The method according to claim 8, wherein The machine learning model generates an average confidence score for each potentially matching subset, the average confidence score indicating the likelihood that the corresponding subset matches the first entity.

10. The method according to claim 8, wherein, The sum of the numerical fields of the target entities in each of the subsets is within a threshold amount of the numerical field of the first entity.

11. The method according to claim 8, wherein The transformation includes creating a formula that maximizes an auxiliary variable, which is a lower bound of the non-linear objective function.

12. The method according to claim 8, wherein The transformation includes both converting the non-linear objective function into a linear objective function and converting the non-linear constraints of the non-linear objective function into linear constraints of the linear objective function.

13. The method according to claim 8, wherein, The passing also includes performing calculations on the output of the machine learning model using a solver function included in a software library.

14. The method according to claim 8, wherein, The first table of the second type and one or more tables of the first type are stored in an Enterprise Resource Planning (ERP) system.

15. A non-transitory machine-readable medium stores instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the operations including: Obtain a non-linear objective function that is designed to identify one or more subsets of entities in a first type of table that may match entities in a second type of table; Convert the non-linear objective function into a linear objective function; Access a first entity in a first table of the second type, the first entity including a numerical field; Access a plurality of target entities in one or more tables of the first type, each of the plurality of target entities including a numerical field; Pass the first entity and the plurality of target entities into a machine learning model to generate a similarity score corresponding to each of the one or more target entities; Using the linear objective function, identify one or more subsets of the one or more target entities that may match the first entity based on the score of each of the one or more target entities; And Filter the one or more subsets to obtain one or more inference results.

16. The non-transitory machine-readable medium according to claim 15, wherein, The machine learning model generates an average confidence score for each potentially matching subset, and the average confidence score indicates the likelihood that the corresponding subset matches the first entity.

17. The non-transitory machine-readable medium according to claim 15, wherein, The sum of the numerical fields of the target entities in each of the subsets is within a threshold amount of the numerical field of the first entity.

18. The non-transitory machine-readable medium according to claim 15, wherein, The transformation includes creating a formula that maximizes an auxiliary variable, and the auxiliary variable is a lower bound of the non-linear objective function.

19. The non-transitory machine-readable medium according to claim 15, wherein, The transformation includes both converting the non-linear objective function into a linear objective function and converting the non-linear constraints of the non-linear objective function into linear constraints of the linear objective function.

20. The non-transitory machine-readable medium according to claim 15, wherein, The passing also includes performing calculations on the output of the machine learning model using a solver function included in a software library.