Deep neural network for matching entities in semi-structured data

By generating entity embeddings through deep neural networks and using decomposable attention neural networks, the problem of matching entities in semi-structured data across tables is solved, achieving flexible and accurate entity matching applicable to various contexts.

CN114202053BActive Publication Date: 2026-01-02SAP SE
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202110804694.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-09-18
Filing Date
2021-07-16
Publication Date
2026-01-02
Estimated Expiration
2041-07-16

AI Technical Summary

Technical Problem

Existing technologies struggle to match entities across tables in semi-structured data, especially when identifying the same entity in data stored in different formats. Furthermore, existing machine learning methods rely on engineered features and domain knowledge, making them unable to adapt to different contexts.

Method used

Entity matching is performed using deep neural networks. Entity embeddings are generated by embedding machine learning models, and entities are compared using decomposable attention neural networks, independent of the meaning and relationships of table fields. Matching patterns are learned using training data.

Benefits of technology

It enables cross-table entity matching, improving matching flexibility and accuracy, reducing reliance on domain knowledge, and is suitable for various contextual environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114202053B_ABST
    Figure CN114202053B_ABST
Patent Text Reader

Abstract

In example embodiments, a deep neural network can be used to determine matches between pairs of candidate entities, as well as confidence scores reflecting the degree of certainty of the deep neural network's determination of the corresponding matches. The deep neural network is also able to find these matches without the domain knowledge required if the features of the machine learning model were done by hand, which is a shortcoming of prior art machine learning models for matching entities in multiple tables. Thus, the deep neural network has an improvement over the operation of prior art machine learning models designed to perform the same task. In particular, the deep neural network learns from historical data only the relationships between table fields and patterns that define matches, making the approach context-independent and generalizable.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

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

[0002] Databases often store data in tables, where each row represents a different entity. An entity can be any element in a dataset, including, for example, a user, a document, an organization, a location, and so on; however, in many types of data stores, each row in a table corresponds to a different entity. If the table is, for example, a table of documents, each row represents a different document. One issue that can arise in data stores is the inability to match entities across multiple tables. For example, it can be difficult to determine whether an entity in one table is the same entity listed in another table because the data stored in the respective tables can not be standardized and thus different tables can store information about the same entity in two different ways. For example, a product catalog intended for consumers can contain information about products that is stored in a different format than the same information in a product catalog intended for component suppliers. In some instances, it can be advantageous to identify matches between entities in different tables in order to reconcile the two different formats of information. In other instances, such matching can be used to remove duplicate entities that are not intended to be listed twice to reduce storage capacity. SUMMARY

[0003] A system according to an example embodiment includes 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 including: obtaining a first entity in a first table, the first entity including values for a plurality of fields; tokenizing the values in one or more of the plurality of fields into one or more tokens; passing each of the one or more tokens to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, resulting in an embedding including coordinates for each of the one or more tokens; concatenating the embedding of the one or more tokens and the first entity into a first matrix; constructing a sequence of starting fields for the first entity, the sequence of starting fields including, for each of the one or more tokens in one or more of the plurality of fields in the first entity, an identification corresponding to the field from which the value generating the token was derived; passing each value in the sequence of starting fields into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields; concatenating the embedding of each value in the sequence of starting fields into a second matrix; stacking the first matrix and the second matrix to form a third matrix; and passing the third matrix to a decomposable attention neural network to compare the first entity to a second entity represented by its own matrix of embeddings.

[0004] A method according to example embodiments includes obtaining a first entity in a first table, the first entity including values for a plurality of fields; tokenizing values in one or more of the plurality of fields into one or more tokens; passing each of the one or more tokens to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, thereby producing an embedding including coordinates for each of the one or more tokens; concatenating the embedding for each of the one or more tokens and the first entity into a first matrix; constructing a sequence of starting fields for the first entity, the sequence of starting fields including, for each of the one or more tokens in one or more of the plurality of fields in the first entity, an identification corresponding to the field from which the value from which the token was generated; passing each value in the sequence of starting fields into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields; concatenating the embedding for each value in the sequence of starting fields into a second matrix; stacking the first matrix and the second matrix to form a third matrix; and passing the third matrix to a decomposable attention neural network to compare the first entity to a second entity represented by its own matrix of embeddings.

[0005] A non-transitory machine-readable medium according to example embodiments stores instructions that, when executed by one or more processors, cause the one or more processors to perform operations including: obtaining a first entity in a first table, the first entity including values for a plurality of fields; tokenizing values in one or more of the plurality of fields into one or more tokens; passing each of the one or more tokens to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, thereby producing an embedding including coordinates for each of the one or more tokens; concatenating the embedding for each of the one or more tokens and the first entity into a first matrix; constructing a sequence of starting fields for the first entity, the sequence of starting fields including, for each of the one or more tokens in one or more of the plurality of fields in the first entity, an identification corresponding to the field from which the value from which the token was generated; passing each value in the sequence of starting fields into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields; concatenating the embedding for each value in the sequence of starting fields into a second matrix; stacking the first matrix and the second matrix to form a third matrix; and passing the third matrix to a decomposable attention neural network to compare the first entity to a second entity represented by its own matrix of embeddings. BRIEF DESCRIPTION OF DRAWINGS

[0006] The disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like references indicate similar elements. The following description with reference to the figures is provided to assist in understanding various aspects of the disclosure.

[0007] Figure 1 is a block diagram illustrating a system for matching entities in tables using machine learning, according to example embodiments.

[0008] Figure 2 is a diagram illustrating an example of a sequence processing operation, according to example embodiments.

[0009] Figure 3 is a flow diagram illustrating a method for matching entities in tables using a machine learning model, according to example embodiments.

[0010] Figure 4 is a block diagram illustrating a software architecture, which can be installed on any one or more of the above-described devices.

[0011] Figure 5 illustrates a diagrammatic representation of the machine in the form of a computer system within which a set of instructions can be executed for causing the machine to perform any one or more of the methodologies discussed herein, according to example embodiments. DETAILED DESCRIPTION

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

[0013] In example embodiments, a deep neural network can be used to determine matches between pairs of candidate entities, as well as confidence scores reflecting the degree to which the deep neural network is certain of its determination of the corresponding matches. The deep neural network is also able to find these matches without the need for domain knowledge that would be required if the features of the machine learning model were done by hand, which is a shortcoming of prior art machine learning models for matching entities in multiple tables. Indeed, in some examples, it can not be possible for a user to define a general set of engineered features (such as the semantics of terms and exact usage can differ between countries and between organizations), making the prior art inapplicable. Thus, the deep neural network improves upon the operation of prior art machine learning models designed to perform the same task. In particular, the deep neural network learns from historical data only the relationships between table fields and patterns that define matches, making the approach context- independent and applicable.

[0014] The table itself can be considered semi-structured. Some fields in the table can contain structured data (i.e., they have an explicit type, such as date / numerical values (such as amounts, volumes, and quantities), or categorical values (such as country or currency codes)). Other fields in the table are unstructured text fields, such as item description, reference number, bank transfer memo description, company name, and so on. While for some of these text fields, there can be formatting conventions, the data in the fields is generally entered by a user and thus the content can vary substantially. For example, a bank transfer payment memo field can or can not contain an invoice number, a reference number can or can not have leading zeros, a company name can or can not contain the city of the company, and so on. These unstructured fields often carry most of the information needed to find out matching entities.

[0015] One solution is to use a rudimentary form of automation to reconcile entities from different tables, such as "match if the amount matches between entities and the invoice number is contained in the bank payment memo field." This rule-based automation lacks flexibility, as it must be programmed with knowledge about the data types in each field and their corresponding meanings. A higher degree of automation can be achieved using machine learning methods that can handle "fuzzy" data and adapt to patterns from historical data.

[0016] Machine learning methods represent the task as a machine learning problem by using a pairwise matching score. Specifically, given a pair of entities (a, b) from historical data (where and represent the tabular data for each of these two entities) and a category label (e.g., "match" or "no match"), a machine learning model f is trained to output a probability score (or, more generally, a multi-class probability score (e.g., "no match," "one-to-one match," "partial match")) that the items are a match:

[0017]

[0018] The training data can be in the form of labeled pairs where is an indicator vector encoding the label and C is the number of output categories. At test time, a pair of entities (a, b) is received and the goal is to predict the correct label y. Notably, while the training data is specifically mentioned in this section, it is used to train the entire neural network collectively.

[0019] Training data is obtained from historical data specifying which entities are considered to be matches. Training data is then constructed from these positive examples (pairs constituting a "one-to-one match" or a "partial match") as well as generated negative examples of pairs of classes (no match).

[0020] To find the match(es) for a given entity all M relevant candidate pairs are scored, the results are aggregated, and the best match (or combination of partial matches) is selected as output, along with a confidence score reflecting the model's degree of certainty in the result.

[0021] Existing machine learning approaches to this problem rely on engineered features or other types of pre-assigned relationships between fields of tables. However, as mentioned earlier, this approach does not work in the range where domain knowledge is not available. This is common, where for example the model creator is different from the user of the model. A software organization can for example create a model, but the model can be used by a business industry (e.g. a healthcare business or a sprinkler component manufacturer) that the software organization does not know or is not familiar with.

[0022] In example embodiments, a deep neural network is used as the machine learning model, and it is trained in a way that does not require domain knowledge of the meaning of the fields in the tables or relationships between the fields in the tables during training.

[0023] Figure 1 is a block diagram illustrating a system 100 for matching entities in tables using machine learning, according to example embodiments. Here, an application server 102 runs a series of components to perform the matching. In certain example embodiments, the application server 102 can be cloud-based. The organization's data collection 104 can contain many different document tables of the organization (potentially thousands or millions). One or more of these tables can be passed to a machine learning component 106, which is used to identify matching entities between the tables. Before that, a deep neural network 108 within the machine learning component 106 can be trained using training data 110, which can be sample tables where the entities have labels identifying matches (full matches (i.e. one-to-one matches), or partial matches such as where a single payment corresponds to multiple different invoices, or vice versa). A field grouper 112 can be used to group the fields within each table from the training data 110 into one of three different field types. The first field type is a categorical text field, represented as 114A or 114B, a categorical field, represented as 116A or 116B, and a numerical field, represented as 118A or The numeric and date fields of 118B. The deep neural network 108 includes a separate neural network 120A, 120B, 120C for each of these types of fields.

[0024] Class text fields are fields that contain unstructured text, such as names, invoice numbers, and so on. Categorical fields are fields that contain a category identification, such as a country code, a currency code, and so on. Numeric features are fields that contain structured numbers and dates.

[0025] Image portions can contain text, although they are not themselves text. Thus, optical character recognition can be performed on the image portions to identify text in the images. Depending on the file format of the document file, optical character recognition can also be performed on the text portions of the document (in some file formats, the text portions are already stored in text readable form and thus do not require optical character recognition).

[0026] For categorical fields, the neural network 120B includes a categorical embedding model that converts the value of each field into a vector in an n-dimensional space (a vector in this context means a one-dimensional array of values or a coordinate in an n-dimensional space). This conversion is performed using a trainable embedded lookup. Specifically, the categorical variable is mapped into a function approximation problem into a Euclidean space, which is the entity embedding of the categorical variable. The mapping itself is learned by a neural network. Then, following this embedding is a dense feedforward neural network.

[0027] For numeric fields, these can be standardized, such as by converting a date or time stamp into a numeric scale, such as the number of days / seconds since some fixed date and time.

[0028] In optional example embodiments, numeric and categorical fields can be treated as text fields, such as by appending the textual representation of the numeric and categorical fields to the text vector (either by keeping them as numeric and categorical inputs or using only their textual representation).

[0029] The class text fields are tokenized, which represent a series of text strings from different table fields. In example embodiments, each Unicode character is a token, but in other embodiments, a word or subword based tokenizer can be used. Specifically, a series of operations can be performed by a sequence processor 122 in the neural network 120A. Specifically, the sequence processor 122 tokenizes and concatenates the text fields of the entities to form input sequences of length l a and l b respectively. and These sequences are then converted via a trainable embedded lookup into vectors of dimension k emb,textof floating point vectors. In alternative implementations of trainable embedded lookup, if tokenization is word-based, pre-trained word embeddings lookup can be used.

[0030] A second sequence of tokens is generated to encode information about which table field in the start sequence each of the characters (or words or subwords) originates from. It is converted into a k emb,field dimensional vector of length l a sequence.

[0031] The two sequences are then stacked along the vector dimension, resulting in a k emb,text dimensional vector of length l emb,field . a sequence.

[0032] The stacked sequence is then processed by a sequence-to-sequence module 124, possibly by padding the stacked sequence with leading zeros to a fixed length. In example embodiments, a multi-layer 1 -dimensional convolutional network is used, although in other example embodiments, a recurrent neural network or a self-attention / transformer module can be used. The sequence-to-sequence module 124 outputs a k’ dimensional vector of length l’ sequence, denoted as a A similar processing is applied to the text field to obtain a second pre-processed sequence As a tokenization, the sequence-to-sequence module 124 can be represented as having a trainable mapping function F and with F A and F B . Depending on the use case, some of the trainable parameters can be shared between F A and F B . If all parameters are shared, then F A = F B .

[0033] The token-level embedded lookup can model the correspondence between individual tokens (e.g., “a” is similar to “A”, “a”, and ). Expanding the token sequence with the start field information enables the model to learn the relationship between table fields. For example, in a bank invoice declaration matching task, the common string of digits between the invoice number field and the payment ticket can indicate a match, but the common string of digits between the invoice number and the payment amount or the zip code is accidental and meaningless.

[0034] ​Further processing in the sequence-to-sequence operation allows the algorithm to model the context of the tokens (e.g., a leading zero can be less important) and learn correspondences for multi-token sequences (e.g., "Volkswagen" can correspond to "VW" as well as the corresponding language in foreign letter forms, such as Japanese).

[0035] In particular, the decomposable attention and aggregation component 126 uses decomposable attention to perform alignment and comparison of sequences.

[0036] Figure 2 is a diagram showing an example of a sequence processing operation according to an example embodiment. The diagram depicts how a class text field 200 of entities is tokenized and connected into a first sequence 202 and then a second sequence 204 is generated indicating the field position of the field in which the corresponding token exists. Both the first sequence 202 and the second sequence 204 are then mapped to embeddings 206 and 208, respectively. The embeddings 206 and 208, which can be stored as matrices, are then stacked together and aligned into a matrix 210. The sequence-to-sequence module then outputs a k' -dimensional vector 212.

[0037] The k' -dimensional vector and (same as vector 212) is then passed to the decomposable attention and aggregation component 126, which operates as follows:

[0038] The core model includes the following three components, which are trained jointly:

[0039] Attention mechanism. First, the elements of and are softly aligned using a variant of neural attention, and the problem is decomposed into a comparison of aligned subphrases.

[0040] Comparison. Second, each aligned subphrase is compared individually to produce a set of vectors: a's and b's Each v 1,i is a nonlinear combination of a i and its (soft) aligned subphrase in b (for v 2,j , the case is similar).

[0041] Aggregation. Finally, the sets and are aggregated and the result is used to predict the label

[0042] We first obtain the unnormalized attention weights e ij computed by the function F', which is decomposed as:

[0043]

[0044] This decomposition avoids the quadratic complexity associated with the separate application of A / B F .

[0045] These attention weights are normalized as follows:

[0046]

[0047]

[0048] Here, β i is the sub-phrase in (soft) aligned with and vice versa for a j .

[0049] Then, the aligned phrases and are compared individually using a function G:

[0050]

[0051]

[0052] where the brackets [.,.] denote concatenation. Note that no decomposition is needed as in the previous step since there is only a linear number of terms in this case. Thus, G can take both and β i into account jointly.

[0053] Now there are two sets of comparison vectors and First, the system can aggregate over each set by some kind of pooling (such as average, max-pooling or sum):

[0054]

[0055] and feed the result through a final classifier H, which is a feed-forward network followed by a linear layer:

[0056]

[0057] where denotes the predicted (un-normalized) score for each class and thus gives the predicted class by

[0058] For training, one can use a multi-class cross-entropy loss with dropout regularization:​​

[0059]

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

[0061] Referring again to Figure 1 , the final classifier module 128 includes a dense neural network with a multi-class output. It receives the output of all the preceding modules and derives probabilities of the classes the model is trained for.

[0062] The match utilization module 130 can then utilize the output of the final classifier module 128, along with the confidence scores, to perform one or more actions related to the matched (or partially matched, or not matched) entities. For example, the matched entities can be presented to a user in a graphical user interface for reconciliation. Alternatively, the matched entities can be reconciled automatically, meaning that an action is performed on one of the entities based on its match to another entity. For example, an entity representing a payment of income can be partially or fully matched to an entity representing an invoice to which the payment should be applied. Reconciliation then includes applying the payment to the invoice and documenting the process so that the parties involved are aware that the payment has been applied to the invoice.

[0063] Alternatively, rather than using the output of the final classifier module 128 for reconciliation purposes, the match utilization module 130 can use it for the purpose of removing duplicate data. Specifically, if, for example, matched entities appear in redundant tables or even in the same table, one of the entities can be removed and / or combined into the other since they are considered to be duplicates or redundant to some extent.

[0064] Figure 3 is a flowchart illustrating a method 300 of using a machine learning model to match entities in tables according to example embodiments. The method 300 will be described in terms of comparing a first entity to a second entity to determine whether they match. In practice, in order to identify matches or partial matches, the method 300 can be repeated for various combinations of entities in the tables being examined in some example embodiments. For example, if table #1 has 10 entities and table #2 has 8 entities, 80 different combinations of entities from table #1 and table #2 can be examined. In some example embodiments, entities from the same table can also be compared to each other, resulting in even more combinations being examined.

[0065] A loop is started for each of the two entities. At operation 302, the corresponding entity is obtained, which includes values for a plurality of fields. At operation 304, the fields are separated into categories, one category being text-based fields, one category being categorical fields, and one category being numerical / date fields. At operation 306, the values of the text-based fields are tokenized. At operation 308, each of the tokens is passed to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, resulting in an embedding that includes a set of coordinates for each of the one or more tokens. At operation 310, the embeddings for each of the one or more tokens are concatenated into a first matrix.

[0066] At operation 312, a start field sequence is constructed for the entity. The start field sequence includes, for each of the one or more tokens in each of the text-based fields, an identification of the text-based field corresponding to the value from which the token was generated. At operation 314, each value in the start field sequence is passed into the embedding machine learning model to generate a set of coordinates for each value in the start field sequence. At operation 316, the embeddings for each value in the start field sequence are concatenated into a second matrix.

[0067] At operation 318, the first matrix and the second matrix are stacked to form a third matrix. At operation 320, the third matrix is passed to a multi-layer 1 -dimensional convolutional network that outputs a sequence of k’-dimensional vectors. At operation 322, it is determined whether the entity is the first entity or the second entity. If it is the first entity, the method 300 loops back to operation 302 to obtain the second entity. If it is the second entity, at operation 324, the k’-dimensional vectors are passed to a decomposable attention neural network to compare the first entity to the second entity based on the text-based fields. At operation 326, a first feedforward neural network is used to compare the first entity to the second entity based on the categorical fields. At operation 328, the numerical / date fields are normalized and used as input to a second feedforward neural network to compare the first entity to the second entity based on the numerical / date fields.

[0068] At operation 330, a classifier module then combines the outputs of operations 324, 326, and 328 and applies a category to the combination of the first entity and the second entity. The category can include a label such as match, no match, or partial match. The classification can be based at least in part on confidence values output during operations 324, 326, and 328. The output of the neural network, which classifies into match / partial match / no match categories, is then used as input into rule-based logic to construct a final proposed single or multiple matches (e.g., by applying a confidence threshold).

[0069] Example 1, a system comprising:

[0070] at least one hardware processor; and

[0071] a non-transitory computer-readable medium storing instructions that, when executed by at least one hardware processor, cause the at least one hardware processor to perform operations comprising:

[0072] obtaining a first entity in a first table, the first entity comprising values for a plurality of fields;

[0073] tokenizing the values in one or more of the plurality of fields into one or more tokens;

[0074] passing each of the one or more tokens to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, thereby producing an embedding comprising a coordinate for each of the one or more tokens;

[0075] concatenating the one or more tokens and the embedding for each of one or more of the plurality of fields in the first entity into a first matrix;

[0076] constructing a start field sequence for the first entity, the start field sequence comprising, for each of the one or more tokens in one or more of the plurality of fields in the first entity, an identification corresponding to the field from which the value generating the token was derived;

[0077] passing each value in the start field sequence into the embedding machine learning model to generate a set of coordinates for each value in the start field sequence;

[0078] concatenating the embeddings for each value in the start field sequence into a second matrix;

[0079] stacking the first matrix and the second matrix to form a third matrix; and

[0080] passing the third matrix to a decomposable attention neural network to compare the first entity to a second entity represented by its own matrix of embeddings.

[0081] Example 2, the system of Example 1, wherein the operations further comprise:

[0082] obtaining a second entity in a second table, the second entity comprising values for a plurality of fields;

[0083] tokenizing the values in each of one or more of the plurality of fields in the second entity into one or more tokens;

[0084] passing each of the one or more tokens to the embedding machine learning model, thereby producing an embedding comprising a set of coordinates for each of the one or more tokens of the second entity;

[0085] connecting the embedding of each of the one or more tokens and each of the one or more fields of the plurality of fields of the second entity into a fourth matrix;

[0086] constructing a sequence of starting fields of the second entity, the sequence of starting fields including, for each of the one or more tokens in the one or more fields of the plurality of fields of the second entity, an identification corresponding to the field from which the value generating the token was generated;

[0087] passing each value in the sequence of starting fields of the second entity into an embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields of the second entity;

[0088] connecting the embedding of each value in the sequence of starting fields of the second entity into a fifth matrix; and

[0089] stacking the fourth matrix and the fifth matrix to form a sixth matrix, the sixth matrix compared to the third matrix by the decomposable attention neural network.

[0090] Example 3, the system of example 2, wherein the operations further comprise passing an output of the decomposable attention neural network to a classifier module, the classifier module comprising a dense neural network having a multi-class output.

[0091] Example 4, the system of example 3, wherein the multi-class output includes separate classes for a match, a partial match, and a non-match.

[0092] Example 5, the system of any of examples 1-4, wherein the operations further comprise classifying the plurality of fields in the first entity into three classes of fields: text-based fields, categorical fields, and numerical / date fields, and wherein the one or more fields of the plurality of fields are text-based fields.

[0093] Example 6, the system of example 5, wherein the operations further comprise passing values of the categorical fields to a second embedding machine learning model followed by a first feedforward neural network.

[0094] Example 7, the system of example 5 or 6, wherein the operations further comprise normalizing values in the numerical / date fields and passing the normalized values to a second feedforward neural network.

[0095] Example 8, a method comprising:

[0096] obtaining a first entity in a first table, the first entity including values for a plurality of fields;

[0097] tokenizing values in one or more fields of the plurality of fields into one or more tokens;

[0098] passing each of the one or more tokens to an embedding machine learning model trained by the first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, resulting in an embedding comprising coordinates for each of the one or more tokens;

[0099] concatenating the embedding of each of the one or more tokens and each of the one or more of the plurality of fields in the second entity into a fourth matrix;

[0100] constructing a sequence of starting fields for the second entity, the sequence of starting fields comprising, for each of the one or more tokens for each of the one or more of the plurality of fields in the second entity, an identification corresponding to the field from which the token was generated;

[0101] passing each value in the sequence of starting fields to the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields for the second entity;

[0102] concatenating the embedding of each value in the sequence of starting fields into a second matrix;

[0103] stacking the first matrix and the second matrix to form a third matrix; and

[0104] passing the third matrix to the decomposable attention neural network to compare the first entity to the second entity represented by its own matrix of embeddings.

[0105] Example 9, the method of example 8, further comprising:

[0106] obtaining a second entity in a second table, the second entity comprising values for a plurality of fields;

[0107] tokenizing the values in each of the one or more of the plurality of fields in the second entity into one or more tokens;

[0108] passing each of the one or more tokens to an embedding machine learning model, resulting in an embedding comprising a set of coordinates for each of the one or more tokens of the second entity;

[0109] concatenating the embedding of each of the one or more tokens and each of the one or more of the plurality of fields in the second entity into a fourth matrix;

[0110] constructing a sequence of starting fields for the second entity, the sequence of starting fields comprising, for each of the one or more tokens for each of the one or more of the plurality of fields in the second entity, an identification corresponding to the field from which the token was generated;

[0111] passing each value in the sequence of starting fields for the second entity to the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields for the second entity;

[0112] concatenating the embedding of each value in the starting field sequence of the second entity into a fifth matrix; and

[0113] stacking the fourth matrix and the fifth matrix to form a sixth matrix, comparing the sixth matrix to the third matrix by the decomposable attention neural network.

[0114] Example 10, the method of example 9, further comprising passing an output of the decomposable attention neural network to a classifier module, the classifier module comprising a dense neural network having a multi-class output.

[0115] Example 11, the method of example 10, wherein the multi-class output comprises separate classes for match, partial match, and no match.

[0116] Example 12, the method of any of examples 8-11, further comprising classifying a plurality of fields in the first entity into three classes of fields: text-based fields, categorical fields, and numerical / date fields, and wherein one or more of the plurality of fields is a text-based field.

[0117] Example 13, the method of example 12, further comprising passing values of the categorical fields to a second embedding machine learning model followed by a first feedforward neural network.

[0118] Example 14, the method of example 12 or 13, further comprising normalizing values in the numerical / date fields and passing the normalized values to a second feedforward neural network.

[0119] Example 15, 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 comprising:

[0120] obtaining a first entity in a first table, the first entity comprising values of a plurality of fields;

[0121] tokenizing values in one or more of the plurality of fields into one or more tokens;

[0122] passing each of the one or more tokens to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, thereby producing an embedding comprising coordinates for each of the one or more tokens;

[0123] concatenating the embedding of each of the one or more tokens and one or more of the plurality of fields in the first entity into a first matrix;

[0124] constructing a sequence of starting fields for the first entity, the sequence of starting fields including, for each of one or more tokens in each of one or more fields in the first entity, an identification corresponding to the field from which the token was generated;

[0125] passing each value in the sequence of starting fields into an embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields;

[0126] concatenating the embeddings for each value in the sequence of starting fields into a second matrix;

[0127] stacking the first matrix and the second matrix to form a third matrix; and

[0128] passing the third matrix to a decomposable attention neural network to compare the first entity to a second entity represented by its own matrix of embeddings.

[0129] Example 16, the non-transitory machine-readable medium of Example 15, wherein the operations further comprise:

[0130] obtaining a second entity in a second table, the second entity including values for a plurality of fields;

[0131] tokenizing the values in each of one or more fields in the plurality of fields in the second entity into one or more tokens;

[0132] passing each of the one or more tokens to an embedding machine learning model resulting in an embedding including a set of coordinates for each of the one or more tokens of the second entity;

[0133] concatenating the embeddings for each of the one or more tokens and each of one or more fields in the plurality of fields in the second entity into a fourth matrix;

[0134] constructing a sequence of starting fields for the second entity, the sequence of starting fields including, for each of one or more tokens in each of one or more fields in the second entity, an identification corresponding to the field from which the token was generated;

[0135] passing each value in the sequence of starting fields for the second entity into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields for the second entity;

[0136] concatenating the embeddings for each value in the sequence of starting fields for the second entity into a fifth matrix; and

[0137] stacking the fourth matrix and the fifth matrix to form a sixth matrix, the sixth matrix compared to the third matrix by the decomposable attention neural network.

[0138] Example 17. The non-transitory machine-readable medium of example 16, wherein the operations further comprise passing an output of the decomposable attention neural network to a classifier module, the classifier module comprising a dense neural network with a multi-class output.

[0139] Example 18. The non-transitory machine-readable medium of example 17, wherein the multi-class output comprises separate classes of match, partial match, and no match.

[0140] Example 19. The non-transitory machine-readable medium of any of examples 15-18, wherein the operations further comprise classifying a plurality of fields in the first entity into three categories of fields: text-based fields, categorical fields, and numerical / date fields, and wherein one or more fields of the plurality of fields are text-based fields. Example 20. The non-transitory machine-readable medium of example 19, wherein the operations further comprise passing a value of the categorical field to a second embedding machine learning model followed by a first feedforward neural network.

[0141] Figure 4 is a block diagram 400 illustrating a software architecture 402, which can be installed on any one or more of the devices described herein. Figure 4 This described software architecture 402 is merely an example and should not be construed as limiting. Numerous other configurations can be employed, as would be understood by one skilled in the art. Figure 5 The software architecture 402 is operational with a hardware architecture 500 including a processor 510, a memory 530, and input / output (I / O) components 550. In this example architecture, the software architecture 402 can be conceptualized as a stack of layers, each of which provides particular functionality. For example, the software architecture 402 includes layers such as an operating system 404, libraries 406, frameworks 408, and applications 410. Operationally, the applications 410 invoke API calls 412 through the software stack and receive messages 414 in response to the API calls 412, consistent with some embodiments.

[0142] In various implementations, the operating system 404 manages hardware resources and provides common services. The operating system 404 includes, for example, a kernel 420, services 422, and drivers 424. According to some embodiments, the kernel 420 acts as an abstraction layer between the hardware and the other software layers. For example, the kernel 420 provides memory management, processor management (e.g., scheduling), component management, networking, and security settings, among other functionality. The services 422 can provide other common services for the other software layers. According to some embodiments, the drivers 424 are responsible for controlling or interfacing with the underlying hardware. For instance, the drivers 424 can include display drivers, camera drivers, Bluetooth® or Bluetooth® Low Energy drivers, flash memory drivers, serial communication or Low-power drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.

[0143] In some embodiments, library 406 provides low-level common infrastructure used by application 410. Library 406 may include system libraries 430 (e.g., the C standard library) that provide functions such as memory allocation, string manipulation, mathematical functions, and so on. Additionally, library 406 may include API libraries 432, such as media libraries (e.g., libraries supporting the rendering and processing 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 codecs, Joint Picture Experts Group (JPEG or JPG), or Portable Web Image (PNG),), graphics libraries (e.g., the OpenGL framework for rendering in 2D and 3D on a display in a graphics context), database libraries (e.g., SQLite providing various relational database functions), network libraries (e.g., WebKit providing web browsing functionality), and so on. Library 406 may also include a variety of other libraries 434 to provide many other APIs to application 410.

[0144] According to some embodiments, framework 408 provides advanced public infrastructure that can be used by application 410. For example, framework 408 provides various graphical user interface (GUI) functions, advanced resource management, advanced location services, and so on. Framework 408 can provide a wide range of other APIs that can be used by application 410, some of which may be specific to operating system 404 or platform.

[0145] In example embodiments, application 410 includes a home application 450, a contacts application 452, a browser application 454, a book reader application 456, a location application 458, a media application 460, a messaging application 462, a game application 464, and a variety of other applications such as a third-party application 466. According to some embodiments, application 410 is a program that performs the functions defined in the program. Various programming languages ​​can be used to form one or more of applications 410, and these programming languages ​​are structured 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, third-party application 466 (e.g., using Android by an entity other than a platform-specific vendor) TM or iOS TM Applications developed using a Software Development Kit (SDK) can be used on platforms such as iOS.TM ANDROID TM , Mobile software running on the phone's mobile operating system or another mobile operating system. In this example, third-party application 466 can invoke API call 412 provided by operating system 404 to facilitate the functionality described herein.

[0146] Figure 5 A graphical representation of a machine 500 in the form of a computer system according to an example embodiment is shown, within which a set of instructions can be executed to cause the machine 500 to perform any or more of the methods described herein. Specifically, Figure 5 A graphical representation of a machine 500 in the form of an example computer system is shown, within which instructions 516 (e.g., software, programs, applications, applets, application programs, or other executable code) can be executed to cause the machine 500 to perform any or more of the methods discussed herein. For example, instruction 516 can cause the machine 500 to perform... Figure 4 The method. Additionally or alternatively, Directive 516 may be implemented. Figures 1-4 Etc. Instruction 516 transforms a general-purpose, unprogrammed machine 500 into a specific machine 500 programmed to perform the functions described and illustrated in the manner described. In alternative embodiments, machine 500 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, machine 500 may operate as a server machine or client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 500 may include, but is not limited to, server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart appliances), other smart devices, web appliances, network routers, network switches, bridges, or any machine capable of sequentially or otherwise executing instructions 516 to be performed by the specified machine 500. Furthermore, although only a single machine 500 is shown, the term "machine" should also be considered as including a collection of machines 500 that individually or collectively execute instructions 516 to perform any or more of the methods discussed herein.

[0147] Machine 500 can include processors 510, memory 530, and I / O components 550, which can be configured to communicate with one another such as via bus 502. In example embodiments, processors 510 (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) can include a processor 512, such as an execution unit 516, and a processor 514. The term “processor” is intended to encompass a multi-core processor that can include two or more independent processors (sometimes referred to as “cores”) that can execute instructions 516 Figure 5 Multiple processors 510 are shown, but machine 500 can include a single processor 512 with a single core, a single processor 512 with multiple cores (e.g., a multi-core processor 512), multiple processors 512, 514 with a single core, multiple processors 512, 514 with multiple cores, or any combination thereof.

[0148] Memory 530 can include main memory 532, static memory 534, and storage unit 536 each of which can be accessed by processors 510, such as via bus 502. Main memory 532, static memory 534, and storage unit 536 store instructions 516 embodying any one or more of the methodologies or functions described herein. In addition to storing

[0149] I / O components 550 can include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I / O components 550 that are included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones will likely include a contact Figure 5Many other components not shown are also part of the I / O components 550. For simplicity, the I / O components 550 are grouped into output components 552 and input components 554, according to functionality only. In various example embodiments, the I / O components 550 can include output components 552 and input components 554. The output components 552 can 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 vibratory motor, resistive mechanisms), other signal generators, and the like. The input components 554 can include alphanumeric input components (e.g., a keyboard, a touchscreen configured to receive alphanumeric input, a photo-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 another pointing instrument), tactile input components (e.g., a physical button, a touchscreen that provides location and / or force of touches, or other tactile input components), audio input components (e.g., a microphone), and the like.

[0150] In further example embodiments, the I / O components 550 can include biometric components 556, motion components 558, environmental components 560, or position components 562, among a myriad of other components. For example, the biometric components 556 can include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram-based identification), and the like. The motion components 558 can include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. The environmental components 560 can include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detect concentrations of hazardous gases in the environment or to measure pollutants in a

[0151] Communication can be implemented using a wide variety of technologies. The I / O components 550 can include communication component 564 operable to couple the machine 500 with a network 580 or the device 570 via the coupling 582 and the coupling 572, respectively. For example, the communication component 564 can include a network interface component or another suitable device to interface with the network 580. In further examples, the communication component 564 can include wired components (e.g., low power), components, and other communication components to provide communication via other modalities. The device 570 can be another machine or any of a wide variety of peripheral devices (e.g., coupled via a USB).

[0152] In addition, the communication component 564 can detect identifiers or include components operable to detect identifiers. For example, the communication component 564 can include radio frequency identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify a special coded audio signal). In addition, a variety of information can be derived via the communication component 564, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, location via cellular signal triangulation, or via NFC beacon signal detection to identify a specific location.

[0153] The various memories (i.e., 530, 532, 534, and / or memory of the processor(s) 510) and / or the storage unit 536 can store one or more sets of instructions 516 and data structures (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. These instructions (e.g., instructions 516), when executed by the processor(s) 510, cause various operations to implement the disclosed embodiments.

[0154] As used herein, the terms “machine storage medium,” “device storage medium,” and “computer storage medium” have the same meaning and can be used interchangeably. These terms refer to one or more storage devices and / or media (e.g., centralized or distributed databases, and / or associated caches and servers) that store executable instructions and / or data. These terms should be accordingly considered to include, but are not limited to, solid-state memory, and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and / or device storage media include non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field-programmable gate arrays (FPGAs), and flash memory devices; disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM discs. The terms “machine storage medium,” “computer storage medium,” and “device storage medium” specifically exclude carrier waves, modulated data signals, and other such media, at least some of which are covered under the term “signal medium” as described below.

[0155] In various example embodiments, one or more portions of network 580 may be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the public switched telephone network (PSTN), a simple old-style telephone service (POTS) network, a cellular telephone network, a wireless network, etc. A network, another type of network, or a combination of two or more such networks. For example, network 580 or a portion thereof may include a wireless or cellular network, and connector 582 may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or another type of cellular or wireless connector. In this example, connector 582 may implement any of a variety of data transmission technologies, such as Single Carrier Radio Transmission (1xRTT), Evolved Data Optimization (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data Rate Evolution (EDGE) technology, 3rd Generation Partnership Project (3GPP) (including 3G and 4G wireless networks), Universal Mobile Telecommunications System (UMTS), High-Speed ​​Packet Access (HSPA), Global Interoperability Microwave Access (WiMAX), Long Term Evolution (LTE) standard, other technologies defined by various standards setting organizations, other telematics protocols, or other data transmission technologies.

[0156] The instructions 516 can be transmitted or received over the network 580 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 564) and utilizing any one of a number of well- known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Similarly, the instructions 516 can be transmitted or received using a transmission medium via the interface 572 to the device 570 (e.g., a peer-to-peer interface). The term "transmission medium" shall be taken to include any intangible medium that is capable of storing, encoding or carrying the instructions 516 for execution by the machine 500, and includes digital or analog communications signals or other intangible media to facilitate communication of such software. Thus, the term "transmission medium" shall be taken to include any form of a modulated data signal, carrier wave, and so forth. 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.

[0157] The terms "machine-readable medium," "computer-readable medium," and the like, mean the same thing and can be used interchangeably in this disclosure. The terms "machine-readable medium," "computer-readable medium," and the like, specifically can be, and can include, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), electrically programmable read-only memory (EPROM), electrically erasable read-only memory (EEPROM), flash memory, compact disc read-only memory (CD-ROM), digital versatile disc (DVD), cache, cache core, and the like. The terms "machine-readable medium," "computer-readable medium," and the like, can also specifically include a computer- readable storage medium. The terms "machine-readable medium," "computer-readable medium," and the like, can also specifically include a communication medium, and can include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine 500, and that causes the machine 500 to perform any one or more of the techniques of the present disclosure, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.

Claims

1. A 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 comprising: obtaining a first entity in a first table, wherein the first table is a table in a database, the first entity comprising values for a plurality of fields; tokenizing values in one or more of the plurality of fields into one or more tokens; passing each of the one or more tokens to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, thereby producing an embedding comprising coordinates for each of the one or more tokens; concatenating the one or more tokens and the embedding for each of the one or more of the plurality of fields in the first entity into a first matrix; constructing a sequence of start fields for the first entity, the sequence of start fields comprising an identification corresponding to the field from which the value generating a token for each of the one or more tokens for each of the one or more of the plurality of fields in the first entity; passing each value in the sequence of start fields into the embedding machine learning model to generate a set of coordinates for each value in the sequence of start fields; concatenating the embeddings for each value in the sequence of start fields into a second matrix; stacking the first matrix and the second matrix to form a third matrix; and passing the third matrix to a decomposable attention neural network to compare the first entity to a second entity represented by its own matrix of embeddings, wherein the operations further comprise: classifying the plurality of fields in the first entity into three categories of fields: text-based fields, categorical fields, and numerical / date fields, and wherein the one or more of the plurality of fields are the text-based fields, and passing values of the categorical fields to a second embedding machine learning model followed by a first feedforward neural network, and wherein the operations further comprise: determining a match between the first entity and the second entity, and removing one of the first entity and the second entity or combining the first entity and the second entity, thereby reducing storage capacity.

2. The system of claim 1, wherein the operations further comprise: obtaining a second entity in a second table, wherein the second table is a table in a database, the second entity comprising values for a plurality of fields; tokenizing values in one or more of the plurality of fields in the second entity into one or more tokens; passing each of the one or more tokens to the embedding machine learning model, thereby producing an embedding comprising a set of coordinates for each of the one or more tokens of the second entity; concatenating each of the one or more tokens and the embedding for each of the one or more of the plurality of fields in the second entity into a fourth matrix; ​ constructing a sequence of starting fields for the second entity, the sequence of starting fields including, for each of the one or more tokens for each of the one or more fields in the second entity, an identification corresponding to the field from which the token was generated; passing each value in the sequence of starting fields for the second entity into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields for the second entity; connecting the embeddings for each value in the sequence of starting fields for the second entity into a fifth matrix; and stacking the fourth matrix and the fifth matrix to form a sixth matrix, the sixth matrix compared to the third matrix by the decomposable attention neural network.

3. The system of claim 2, wherein the operations further comprise passing an output of the decomposable attention neural network to a classifier module, the classifier module comprising a dense neural network with a multi-class output.

4. The system of claim 3, wherein the multi-class output comprises separate classes for match, partial match, and no match.

5. The system of claim 1, wherein the operations further comprise normalizing values in the numeric / date fields and passing the normalized values to a second feedforward neural network.

6. The system of claim 1, wherein the decomposable attention neural network is trained jointly with a classifier module.

7. A method implemented on a computer system within which a set of instructions can be executed to cause the computer system to perform the method, the method comprising: obtaining a first entity in a first table, wherein the first table is a table in a database, the first entity comprising values for a plurality of fields; tokenizing values in one or more fields of the plurality of fields into one or more tokens; passing each of the one or more tokens to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for input, thereby producing an embedding comprising coordinates for each of the one or more tokens; connecting the one or more tokens and the embeddings for each of the one or more fields of the plurality of fields in the first entity into a first matrix; constructing a sequence of starting fields for the first entity, the sequence of starting fields including, for each of the one or more tokens for each of the one or more fields in the first entity, an identification corresponding to the field from which the token was generated; passing each value in the sequence of starting fields into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields; connecting the embeddings for each value in the sequence of starting fields into a second matrix; stacking the first matrix and the second matrix to form a third matrix; and passing the third matrix to a decomposable attention neural network to compare the first entity to a second entity represented by its own embedding matrix, wherein the method further comprises: classifying the plurality of fields in the first entity into three categories of fields: text-based fields, categorical fields, and numerical / date fields, and wherein the one or more fields of the plurality of fields are the text-based fields, and passing values of the categorical fields to a second embedding machine learning model followed by a first feedforward neural network, and wherein the method further comprises: determining a match between the first entity and the second entity, and removing one of the first entity and the second entity, or combining the first entity and the second entity, thereby reducing storage capacity.

8. The method of claim 7, further comprising: obtaining a second entity in a second table, wherein the second table is a table in a database, the second entity comprising values of a plurality of fields; tokenizing values in each of the one or more fields in the second entity into one or more tokens; passing each of the one or more tokens to the embedding machine learning model, thereby producing an embedding comprising a set of coordinates for each of the one or more tokens of the second entity; concatenating each of the one or more tokens and the embedding of each of the one or more fields in the plurality of fields in the second entity into a fourth matrix; constructing a sequence of starting fields for the second entity, the sequence of starting fields comprising, for each of the one or more tokens of each of the one or more fields in the plurality of fields in the second entity, an identification corresponding to the field from which the value generating the token was derived; passing each value in the sequence of starting fields for the second entity into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields for the second entity; concatenating the embeddings of each value in the sequence of starting fields for the second entity into a fifth matrix; and stacking the fourth matrix and the fifth matrix to form a sixth matrix, the sixth matrix compared to the third matrix by the decomposable attention neural network.

9. The method of claim 8, further comprising passing an output of the decomposable attention neural network to a classifier module, the classifier module comprising a dense neural network having a multi-class output.

10. The method of claim 9, wherein the multi-class output comprises separate classes of match, partial match, and no match.

11. The method of claim 7, further comprising normalizing values in the numerical / date fields and passing the normalized values to a second feedforward neural network.

12. 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 comprising: obtaining a first entity in a first table, wherein the first table is a table in a database, the first entity comprising values of a plurality of fields; tokenizing values in one or more fields of the plurality of fields into one or more tokens; passing each of the one or more tokens to an embedding machine learning model trained by a first machine learning algorithm to generate a set of coordinates in an n-dimensional space for the input, resulting in an embedding comprising coordinates for each of the one or more tokens; concatenating the embedding for each of the one or more tokens and the one or more of the plurality of fields in the first entity into a first matrix; constructing a sequence of starting fields for the first entity, the sequence of starting fields comprising, for each of the one or more tokens for each of the one or more of the plurality of fields in the first entity, an identification corresponding to the field from which the token was generated; passing each value in the sequence of starting fields into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields; concatenating the embedding for each value in the sequence of starting fields into a second matrix; stacking the first matrix and the second matrix to form a third matrix; and passing the third matrix to a decomposable attention neural network to compare the first entity to a second entity represented by its own matrix of embeddings, wherein the operations further comprise: classifying the plurality of fields in the first entity into three categories of fields: text-based fields, categorical fields, and numerical / date fields, and wherein the one or more of the plurality of fields are the text-based fields, and passing values of the categorical fields to a second embedding machine learning model followed by a first feedforward neural network, and wherein the operations further comprise: determining a match between the first entity and the second entity, and removing one of the first entity and the second entity, or combining the first entity and the second entity, thereby reducing storage capacity.

13. The non-transitory machine-readable medium of claim 12, wherein the operations further comprise: obtaining a second entity in a second table, wherein the second table is a table in a database, the second entity comprising values for a plurality of fields; tokenizing values in each of one or more of the plurality of fields in the second entity into one or more tokens; passing each of the one or more tokens to the embedding machine learning model, resulting in an embedding comprising a set of coordinates for each of the one or more tokens of the second entity; concatenating the embedding for each of the one or more tokens and each of the one or more of the plurality of fields in the second entity into a fourth matrix; constructing a sequence of starting fields for the second entity, the sequence of starting fields comprising, for each of the one or more tokens for each of the one or more of the plurality of fields in the second entity, an identification corresponding to the field from which the token was generated; passing each value in the sequence of starting fields of the second entity into the embedding machine learning model to generate a set of coordinates for each value in the sequence of starting fields of the second entity; connecting the embeddings for each value in the starting field sequence of the second entity into a fifth matrix; and stacking the fourth matrix and the fifth matrix to form a sixth matrix, the sixth matrix compared to the third matrix by the decomposable attention neural network.

14. The non-transitory machine-readable medium of claim 13, wherein the operations further comprise passing an output of the decomposable attention neural network to a classifier module, the classifier module comprising a dense neural network having a multi-class output.

15. The non-transitory machine-readable medium of claim 14, wherein the multi-class output comprises separate classes for a match, a partial match, and a non-match.