Systems and methods for querying large data repositories
The system addresses the challenge of identifying relevant information in large data repositories by using natural language models to generate contextual embeddings and determining unionability scores, thereby enhancing data set discovery and machine learning efficiency.
Patent Information
- Application Number
- JP2023158363
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-19
- Filing Date
- 2023-09-22
- Publication Date
- 2025-04-01
AI Technical Summary
Existing technologies face challenges in efficiently exploring and accurately identifying relevant information within large or unorganized data repositories, especially when unsupervised learning is applied.
The system uses non-transitory computer-readable storage media to store commands executable by processors for data set discovery operations. These operations include accessing a data repository, generating serialized sequences of cell values, transforming them into contextual embeddings using a natural language model, and storing these embeddings in vector indexes. The system then determines column and table unionability scores to identify candidate tables that can be unified with a query table.
This approach enables efficient and accurate identification of relevant information within large data repositories, even in unstructured or unlabeled data environments, by leveraging contextual embeddings and unionability scores to improve data set discovery and machine learning model responses.
Smart Images

Figure 2025044084000001_ABST
Abstract
Description
[Background technology]
[0001] background
[0001] Improving the ability of machine learning models to efficiently search and accurately identify relevant information in data repositories to enable computers to answer queries is a challenging task. This task becomes even more difficult when the data repositories are large or at least partially unorganized, or when unsupervised learning is applied. There is a need for techniques and systems that can understand the relationships between various data in large data repositories to meet the needs of modern queries for related information. Summary of the Invention [Means for solving the problem]
[0002] overview Some embodiments of the present disclosure relate to a non-transitory computer-readable storage medium that stores instructions executable by one or more processors to perform operations for dataset discovery. In some embodiments, the operations may include: accessing a data repository that includes a plurality of tables having cell values arranged in one or more columns and one or more rows; generating a serialized sequence of cell values corresponding to particular columns of the plurality of tables; inputting the serialized sequence into a natural language model; converting the serialized sequence into a contextualized embedding associated with the plurality of tables by using the natural language model; storing the contextualized embedding associated with the plurality of tables into one or more vector indexes; receiving a query table or generating an output of one or more candidate tables from the plurality of tables having unionability with the received query table. In some embodiments, generating an output of one or more candidate tables from a plurality of tables having unionizability with the received query table may include: determining one or more column unionizability scores between columns of the query table and one or more columns of the plurality of tables by using one or more vector indexes; and determining one or more table unionizability scores between the query table and one or more tables of the plurality of tables by using one or more column unionizability scores, or outputting one or more candidate tables based on the one or more table unionizability scores.
[0003]
[0003] According to some disclosed embodiments, each serialized sequence may include a cell value token and a separator token, where the separator token indicates a new column of additional cell value tokens. In some disclosed embodiments, the conversion of the serialized sequence into a contextualized embedding associated with the multiple tables may be based on the cell value token and the separator token. In some disclosed embodiments, the one or more vector indexes include at least one of a Locality Sensitivity Hashing (LSH) index or a Hierarchical Navigable Small World (HNSW) index. In some disclosed embodiments, the data repository may include unstructured or unlabeled data. In some disclosed embodiments, the data repository may be a data lake, a data warehouse, a data mart, an object storage system, a relational database, or a non-relational database. In some disclosed embodiments, the natural language model may include a multi-column encoder, and the contextualized embedding may include relationship data between cell values in a first column of one or more columns of the multiple tables and cell values in a second column of the one or more columns of the multiple tables.
[0004]
[0004] In some disclosed embodiments, converting the serialized sequence into a contextualized embedding associated with the multiple tables may include constructing an affinity graph across the multiple columns of one or more columns of the multiple tables; associating pairs of one or more columns in the affinity graph that have a cosine similarity above a threshold; or generating a contextualized embedding of the multiple columns of the one or more columns based on the association. In some disclosed embodiments, outputting the one or more candidate tables may be based on a calculated lower or upper bound associated with one or more table unionizability scores. In some disclosed embodiments, one or more column unionizability scores between a column of the query table and one or more columns of the multiple tables may be based on a cosine similarity between the query table embedding and the contextualized embedding. In some disclosed embodiments, outputting the one or more candidate tables may be based on the top-k highest table unionizability scores of the one or more table unionizability scores.
[0005]
[0005] In some disclosed embodiments, determining one or more column unionizable ability scores between a column of the inquiry table and one or more columns of the multiple tables may include: generating a serialized sequence of inquiry table cell values corresponding to a particular column in the inquiry table; inputting the serialized sequence of the inquiry table cell values into a natural language model; converting the serialized sequence of the inquiry table cell values into a contextualized embedding associated with the inquiry table by using the natural language model; or generating one or more column unionizable ability scores based on a comparison of the contextualized embedding associated with the inquiry table and the contextualized embedding associated with the multiple tables. In some disclosed embodiments, the natural language model may be pre-trained by using unsupervised contrastive learning based on the multiple tables.
[0006] Some embodiments of the present disclosure relate to a computer-implemented method for dataset discovery, which may include: accessing a data repository including a plurality of tables having cell values arranged in one or more columns and one or more rows; generating a serialized sequence of cell values corresponding to particular columns of the plurality of tables; inputting the serialized sequence into a natural language model; converting the serialized sequence into contextualized embeddings associated with the plurality of tables by using the natural language model; storing the contextualized embeddings associated with the plurality of tables into one or more vector indexes; receiving a query table or generating an output of one or more candidate tables from the plurality of tables having union-ability with the received query table. In some embodiments, generating an output of one or more candidate tables from a plurality of tables having unionizability with the received query table may include: determining one or more column unionizability scores between columns of the query table and one or more columns of the plurality of tables by using one or more vector indexes; determining one or more table unionizability scores between the query table and one or more tables of the plurality of tables by using one or more column unionizability scores, or outputting one or more candidate tables based on the one or more table unionizability scores.
[0007] According to some disclosed embodiments, the natural language model may be pre-trained using unsupervised contrastive learning based on one or more columns of the multiple tables, or the data repository may include unstructured or unlabeled data. In some disclosed embodiments, the natural language model may include a multi-column encoder, and the contextualized embedding may include relationship data between cell values in a first column of one or more columns of the multiple tables and cell values in a second column of the one or more columns of the multiple tables.
[0008]
[0008] Some embodiments of the present disclosure relate to a dataset discovery system. The dataset discovery system may include one or more memory devices storing processor-executable instructions and one or more processors configured to execute the instructions to cause the dataset discovery system to perform some operations. In some embodiments, the operations may include: accessing a data repository including a plurality of tables having cell values arranged in one or more columns and one or more rows; generating a serialized sequence of cell values corresponding to particular columns of the plurality of tables; inputting the serialized sequence into a natural language model; converting the serialized sequence into a contextual embedding associated with the plurality of tables by using the natural language model; storing the contextual embedding associated with the plurality of tables into one or more vector indexes; receiving a query table or generating an output of one or more candidate tables from the plurality of tables having union-ability with the received query table. In some embodiments, generating an output of one or more candidate tables from a plurality of tables having unionizability with the received query table may include: determining one or more column unionizability scores between columns of the query table and one or more columns of the plurality of tables by using one or more vector indexes; determining one or more table unionizability scores between the query table and one or more tables of the plurality of tables by using one or more column unionizability scores, or outputting one or more candidate tables based on the one or more table unionizability scores.
[0009] According to some disclosed embodiments, the natural language model may be pre-trained using unsupervised contrastive learning based on one or more columns of a plurality of tables. In some disclosed embodiments, the data repository may include unstructured or unlabeled data.
[0010]
[0010] According to some disclosed embodiments, the natural language model may include a multi-column encoder and the contextualized embedding may include relationship data between cell values in a first column of one or more columns of the multiple tables and cell values in a second column of the one or more columns of the multiple tables.
[0011] BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several exemplary embodiments and, together with the specification, serve to explain the disclosed principles. [Brief description of the drawings]
[0012] [Figure 1]
[0012] FIG. 1 is a block diagram illustrating exemplary components of a system for performing dataset discovery according to an embodiment of the present disclosure. [Diagram 2]
[0013] 1 is a flowchart illustrating an example method for dataset discovery according to an embodiment of the present disclosure. [Diagram 3]
[0014] 1 is a flowchart illustrating an example method for generating output of one or more candidate tables according to an embodiment of the present disclosure. [Figure 4]
[0015] FIG. 2 is a block diagram of an exemplary computing device according to an embodiment of the present disclosure. [Diagram 5]
[0016] FIG. 1 is a diagram illustrating an example process for dataset discovery according to an embodiment of the present disclosure. [Figure 6]
[0017] 1 is a diagram illustrating an example process for contrastive learning according to an embodiment of the present disclosure. [Figure 7]
[0018] 1 illustrates an example batch of serialized sequence data used for contrastive learning according to an embodiment of the present disclosure. [Figure 8]
[0019] 1 illustrates an example process for generating contextualized embeddings from data found in tables of a data repository according to an embodiment of the present disclosure. [Figure 9]
[0020] 1 illustrates an example process for determining a table unionable capability score according to an embodiment of the present disclosure. [Figure 10]
[0021] 1 illustrates an exemplary output candidate table based on a received query table according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] Detailed Description
[0022] In the following detailed description, many details are described to provide a thorough understanding of the exemplary embodiments of the present disclosure. It will be understood by those skilled in the art that the principles of the exemplary embodiments can be practiced without all specific details. The disclosed embodiments are exemplary and are therefore not intended to disclose every possible embodiment according to the claims and disclosure. Well-known methods, procedures, and components have not been described in detail so as not to obscure the principles of the exemplary embodiments. Unless expressly stated otherwise, the exemplary methods and processes described herein are not constrained to a specific order or sequence or to a specific system configuration. In addition, some of the described embodiments or elements thereof may occur or be performed at the same time, at the same time, or simultaneously.
[0014]
[0023] As used herein, unless specifically stated otherwise, the term "or" includes all combinations unless feasible. For example, if it is stated that a part may include A or B, then the part may include A or B, or A and B, unless specifically stated otherwise or feasible. As a second example, if it is stated that a part may include A, B, or C, then the part may include A, or B, or C, or A and B, or A and C, or B and C, or A and B and C, unless specifically stated otherwise or feasible.
[0015]
[0024] Reference will now be made in detail to the disclosed embodiments, examples of which are illustrated in the accompanying drawings. Unless expressly stated otherwise, "transmitting" and "receiving" as used herein are understood to have a broad meaning, including transmitting or receiving in response to a specific request or without such a specific request. Thus, these terms cover both active and passive forms of "transmitting" and "receiving."
[0016]
[0025] The embodiments described herein provide technologies and techniques for evaluating data sources to identify unionable data for improving the outputs and predictions provided by a computing system or machine learning model. These technologies and techniques may label and relate available information in large data repositories in an unsupervised manner and with high effectiveness, thereby enabling greater use of available information in large data repositories in determining similarity between query data and the vast amount of available, unlabeled, unstructured information in such data repositories with high efficiency and effectiveness.
[0017]
[0026] These technologies and techniques can efficiently evaluate queries against large data sources and the available information therein, and provide effective and accurate predictions based on this evaluation. These technologies and techniques enable the application of natural language models to provide both syntactic and semantic relationships between data values within the available information. These technologies and techniques can also enable detailed evaluation of possibly every data value within a large data repository, and can improve the decision making of a computing system (or machine learning model) by generating and embedding syntactic and semantic relationships between both data values within a particular column (e.g., data relationships within columns) and between data values across various columns (e.g., contextual relationships between columns).
[0018]
[0027] The described embodiments provide significant advantages over existing techniques for dataset discovery. Unlike most other processes, the systems and methods described in the disclosed embodiments can operate in an unsupervised manner on data that may be unstructured or unlabeled. In addition, the described embodiments can provide useful insights even on large amounts of unstructured or unlabeled data, which provides significant advantages over current systems and methods that work efficiently and effectively only on small repositories of labeled data. By generating contextualized embeddings that consider the data in a column and the context of that data in relation to other columns, the embodiments disclosed herein can identify associations within the data of a given table on several levels. The ability to identify associations on several levels can provide significant advantages in systems or machine learning models that must respond to various queries that request matching information from data repositories. By enabling unsupervised training and efficient identification of matching information, the embodiments disclosed herein can provide improved capabilities to use machine learning in various industries and various specialized contexts without the need for extensive modification or supervised training of the machine learning model.
[0019]
[0028] 1 is a block diagram illustrating an example operating environment 100 including a dataset discovery system 102 according to an embodiment of the present disclosure. The dataset discovery system 102 may include one or more processors 110 (including hardware accelerators working alone or in conjunction with a host processor), a user interface 112, and a natural language model 114 including an encoder 116. The user interface 112 may refer to a software interface that allows a user 104 to interact with the system 102 or the natural language model 114 by providing user input and receiving output from the system 102 or the natural language model 114. The user interface 112 may allow a user 104 to communicate a query to the system 102 (e.g., provide a query table) and receive output including data retrieved from a data repository 118, where the retrieved data is related to the query and provided in response thereto. The user interface 112 may include, for example, a text-based interface, a voice-activated interface, a conversational interface, a command line interface, a web interface, a virtual reality or augmented reality interface, an automotive interface, an email or text message interface. The natural language model 114 may refer to any artificial intelligence or machine learning model designed to understand, generate, or manipulate human language in a manner similar to how humans use and understand language. The natural language model 114 may be built on machine learning techniques (e.g., deep learning and neural networks) and may be trained on large amounts of data to learn patterns, semantics, relationships, and context within and between the data. The encoder 116 may refer to a component or module within the natural language model 114 that is responsible for converting input text or sequence into a numerical representation that can be processed by the natural language model 114. Such a numerical representation captures the semantic and contextual information of the input text or sequence data, allowing the natural language model 114 to process the information in a meaningful way before the decoding process (e.g., this may also be performed by the encoder 116 to generate a natural language output based on the numerical representation of the information or further processing).Additionally, the natural language model 114 or the encoder 116 may perform any one of the following processes: tokenization (e.g., splitting the data into smaller units such as data words or subword tokens and assigning each token to a unique index, which may be used as an input to the encoder 116), embedding (e.g., converting each unique index associated with a token into a high-dimensional vector representation that may be used to capture semantic information about the data or relationships between data within the context of a given table or a given set of columns), or processing the context (e.g., performing multiple layers of computations that allow the natural language model 114 to weight the importance of various tokens with respect to each other).
[0020]
[0029] In some embodiments, the system 102 or the processor 110 may access a data repository 118 (or at least one data repository) that includes multiple tables with cell values arranged in one or more columns and one or more rows. The data repository 118 may refer to a collection of data or information stored in one or more shared locations. The data repository 118 may be a managed storage space where data (e.g., multiple tables) is stored, managed, and made accessible to authorized users or applications. The data repository 118 may provide a reliable and secure way to store and search data. In some embodiments, the data repository 118 may include unstructured or unlabeled data. In some embodiments, the data repository 118 may be a data lake, a data warehouse, a data mart, an object storage system, a relational database, or a non-relational database. In some embodiments, the data stored in the data repository 118 may be normalized by the system 102, the processor 110, or another part of the system 102. Normalization may refer to the process of converting data so that it conforms to a particular format or standard and is consistent and compatible with other data that may be input into a computing system. Normalization may involve converting or structuring data to conform to a predefined or widely accepted format or schema. Normalization may be performed, for example, to achieve uniformity, interoperability, or consistency. For example, various dates in a data repository may be listed in various formats (e.g., YYYY-MM-DD, MM / DD / YYYY, or “MONTH-DAY,YEAR”). Normalizing various dates may involve converting each date into a single format (such as one of the examples provided above or another desired format).
[0021]
[0030] In some embodiments, the system 102, the processor 110, or another component of the system 102 may generate serialized sequences (corresponding to particular columns or rows of multiple tables in the data repository 118) of those cell values (or normalized cell values). In some embodiments, each serialized sequence may include a token corresponding to each cell value. In some embodiments, the tokens may include cell value tokens and separator tokens. The cell value tokens may refer to tokens associated with each cell in a column of multiple tables in the data repository 118. The separator tokens may refer to tokens that indicate a separation between the cell value tokens (e.g., a new column in a table). For example, the separator tokens may indicate additional columns that contain additional cell data that is different from but related to the first set of cell value tokens (e.g., a first separator token may indicate a first column that lists dates and a second separator token may indicate a second column that lists names associated with the first column). Thus, the generated serialized sequence may include a sequence of cell value tokens separated by separator tokens to represent the cell value data listed in each column of the table in a contiguous but separated sequence representing the cell value data in each column of the table in a single string.
[0022]
[0031] In some embodiments, the system 102 or the processor 110 may input the serialized sequence into the natural language model 114. In some embodiments, the natural language model 114 or a part thereof (e.g., the encoder 116) may be pre-trained by using contrastive learning. In some embodiments, contrastive learning may be completely unsupervised, which may eliminate reliance on supervised learning or the requirement of labeled training data that may not be available in a data repository (e.g., especially in a large data repository). Pre-training using contrastive learning may involve pre-training on multiple columns of a training dataset (e.g., the data repository 118 or another set of training data tables). Pre-training using contrastive learning may further involve pre-training multiple columns by generating multiple views of the same column, where we assume that the multiple views preserve the semantic information of the original column and therefore the multiple views contain relevant information. Contrastive learning may then pack the embeddings of the multiple views tightly together in the embedding space, while spreading out the embeddings of distinct columns (e.g., randomly selected columns from multiple tables) in the embedding space. Contrastive learning may utilize, for example, a contrastive loss function that may measure the distance between pairs of embeddings and penalize the model if the distance between similar pairs is too large or the distance between dissimilar pairs is too small. By performing multi-column pre-training of the natural language model, the natural language model may be more efficiently trained to encode and embed column data for all tables in the data repository.
[0023]
[0032] In some embodiments, the system 102 or processor 110 may convert the serialized sequence into contextualized embeddings associated with multiple tables, for example by using the natural language model 114 (or encoder 116). A contextualized embedding may refer to a representation (e.g., a vector representation) that captures the meaning or format of each individual token in a column of a given table as well as the meaning or format of each individual token in the context of other tokens associated with other columns of the given table. In some embodiments, the contextualized embedding may also capture the overall structure or content of each table. For example, the contextualized embeddings generated by the system 102 or processor 110 may provide information about the similarities or differences between cell values in a column of a given table as well as information about the relationships of cell values in that column to cell values in another column of the given table. For example, one column of a first table may list dates, while another column of the first table may list places. A contextualized embedding generated from two columns of a table may capture that dates listed in one column are related to corresponding locations listed in another column (e.g., across rows of a given table). One column of a second table may also list dates, but another column of the second table may list names rather than locations. A contextualized embedding generated from two columns of a second table may capture that dates listed in one column are related to corresponding named entities listed in the other column (e.g., across a row of the other table). As a result, a contextualized embedding generated from a first table based on a date column may be separated from a contextualized embedding generated from a second table based on that date column, even if the date information is the same (or at least formatted similarly) in both tables. Such separation may result from the captured context and the relationship between the respective date information and the additional column data of each table (e.g., "dates associated with locations" versus "dates associated with named entities"). Because date information from the first table is associated with location data and date information from the second table is associated with name data, any vector representing date information from the first table can be embedded at a location separate from vectors representing date information from the second table.Without such captured context and relationships, a vector representing date information from a first table will be embedded less precisely in the same place as a vector representing date information from a second table.
[0024]
[0033] In some embodiments, the encoder 116 may be a multi-column encoder. A multi-column encoder may refer to an encoder configured to evaluate multiple columns of one or more tables and encode data in the columns to indicate both relationships between data within the columns and relationships between data across the columns. In some embodiments, the contextualized embeddings generated as a result of using the multi-column encoder may include relationship information between cell values in a first column of one or more columns of the multiple tables and cell values in a second column of one or more columns of the multiple tables of the data repository 118. For example, the contextualized embeddings may capture that all of the cell values in a particular column of a table are dates, and that cell values in another column of the same table are names of individuals (e.g., the cell values may correspond to birth dates and named individuals, respectively). As a result, the contextualized embeddings may be generated to capture that each date is, for example, a birth date associated with an individual. As another example, a contextualized embedding may capture that a cell value in a particular column of a table is a date, and that a cell value in another column of the same table is a city (e.g., the cell values may correspond to the date of founding of a particular city and the particular city, respectively). As a result, the generated contextualized embedding may capture that each date is associated with a city. Considering both of the above examples, the contextualized embedding from the table in the first example and the contextualized embedding from the table in the second example will be oriented differently in the embedding space due to the context of each table (e.g., based on the various relationships between the columns of each respective table), even though the date information in the first column of both tables is the same (or at least formatted similarly).
[0025]
[0034] In some embodiments, converting the serialized sequence into a contextualized embedding associated with the multiple tables may include: constructing an affinity graph (e.g., a bipartite graph) across multiple columns of one or more columns of the multiple tables; associating pairs of one or more columns in the affinity graph that have a cosine similarity that exceeds a threshold; or generating a contextualized embedding of multiple columns of one or more columns based on the association. The cosine similarity between pairs of one or more columns of the multiple tables may indicate a relationship between the columns or between the column data. For example, the cosine similarity may range in value from -1 to 1, and may be measured by the cosine of the angle between two vector representations projected into the multi-dimensional embedding space to determine whether the two vector representations point in approximately the same direction. The threshold may refer to a minimum predetermined cosine similarity value acceptable based on a particular application to indicate a relationship between two vector representations.
[0026]
[0035] In some embodiments, the conversion of the serialized sequences into contextualized embeddings associated with multiple tables may be based on a combination of cell value tokens and separator tokens for each serialized sequence. As discussed above, the separator tokens may be utilized to indicate multiple columns in the sequence of cell value tokens. Based on the separator tokens, the natural language model 114 or the encoder 116 may understand both the tokens associated with a column of data and the tokens associated with other columns of the data. As a result, the natural language model 114 or the encoder 116 may generate an embedding that captures both the data in a particular column and the context of the data in a particular column with respect to other columns in the same table.
[0027]
[0036] In some embodiments, the system 102 or processor 110 may store contextualized embeddings associated with multiple tables in one or more vector indexes 120. A vector index may refer to a data structure that enables fast and accurate search and retrieval of vector representations or embeddings from a data repository. In some embodiments, the one or more vector indexes may include a linear index, a Locality Sensitive Hashing (LSH) index, or a Hierarchical Navigable Small World (HNSW) index. Storing the contextualized embeddings in a vector index such as an LSH or HNSW may accelerate query processing compared to processing the same query by using a linear index. Storing the contextualized embeddings in a HNSW index may further accelerate query processing compared to processing the same query by using an LSH index. Processing the query may refer to generating a contextualized embedding of the query table and searching the vector index for unionable columns or tables based on the contextualized embeddings stored therein.
[0028]
[0037] In some embodiments, the system 102 or the processor 110 may receive a query (e.g., a query table) from a user 104 via a user interface 112. For example, the user 104 may input a query table that includes one or more columns of data to request the system 102 to output a table from the data repository 118 that can be unioned with the query table.
[0029]
[0038] In some embodiments, the system 102 or processor 110 may generate an output of one or more candidate tables from multiple tables in the data repository 118 that have union-ability with the received query table. Union-ability may refer to the ability to merge two or more tables to effectively generate a new table in a logical and understandable manner that includes data from at least one column of each of the two or more tables. For example, a table that lists bird species and their attributes may not be union-able with a table that lists names of individuals and their attributes. However, a table that lists names of individuals and dates of birth corresponding to each listed individual may be union-able with a table that lists individuals of the same name and current locations corresponding to each listed individual. In some embodiments, the generated output may include all tables from multiple tables in the data repository that have union-ability with the received query table. In some embodiments, generating an output of one or more candidate tables may include determining (e.g., calculating) one or more column unionizability scores between columns of the query table and one or more columns of the multiple tables by using one or more vector indexes or contextualized embeddings stored therein. The column unionizability scores may refer to a value (e.g., cosine similarity) that indicates the likelihood of merging one or more columns from each table to effectively generate one or more new columns including data from each column of the merged columns. In some embodiments, generating the output may further include determining (e.g., calculating) one or more table unionizability scores between the query table and each table of the multiple tables by using the calculated column unionizability scores. The table unionizability scores may refer to a value that indicates the likelihood of merging two or more tables to effectively generate a new table including data from each table of the two or more tables (e.g., by aggregating, averaging, or otherwise combining the column unionizability scores between the columns of each table). In some embodiments, generating the output may further include outputting one or more candidate tables based on the one or more table unionizable ability scores.For example, referring to the inquiry table, a first candidate table from the data repository 118 may have a table unionizable ability score of 0.8, while a second candidate table from the data repository 118 may have a table unionizable ability score of 0.9. As a result, the second candidate table may be output, while the first candidate table may not be output. In some embodiments, the system 102 may rank the tables based on the table unionizable ability score. For example, using the above example, both tables may be included in the output, with the first candidate table being ranked below the second candidate table due to its lower table unionizable ability score with the received inquiry table.
[0030]
[0039] In some embodiments, outputting one or more candidate tables may be further based on (or aided by) calculated lower or upper bounds associated with one or more table unionizable competency scores. For example, the system 102 may calculate lower and upper bounds associated with the table unionizable competency scores to validate the calculated table unionizable competency scores or to improve processing of the query table. When used for validation, the upper and lower bounds may help to define a range of acceptable table unionizable competency scores between the candidate table and the query table. Table unionizable competency score values that fall outside the upper and lower bounds may be determined to be unvalidated scores that may be ignored. And table unionizable competency score values that fall within the upper and lower bounds may be determined to be validated scores that may be utilized for output. When used to improve processing of the query table, the upper and lower bounds may help to filter available relevant data in a large data repository by defining a range of relevant embedded values and ignoring other embedded values that fall outside the upper and lower bounds.
[0031]
[0040] In some embodiments, one or more column unionability scores between a column of a query table and one or more columns of a plurality of tables may be calculated based on the cosine similarity between the query table embedding and the contextualized embedding. The query table embedding may refer to the contextualized embedding associated with the query table as further discussed and exemplified below.
[0032]
[0041] In some embodiments, determining one or more column unionizable ability scores between a column of the inquiry table and one or more columns of the multiple tables may include: generating a serialized sequence of inquiry table cell values corresponding to a particular column or row in the inquiry table; inputting the serialized sequence of the inquiry table cell values into a natural language model; converting the serialized sequence of the inquiry table cell values into a contextualized embedding associated with the inquiry table, for example by using the natural language model; or generating one or more column unionizable ability scores based on a comparison of the contextualized embedding associated with the inquiry table and the contextualized embedding associated with the multiple tables. Thus, the embedding associated with the inquiry table may be generated by using a process similar to the process by which the embedding associated with the multiple tables is generated.
[0033]
[0042] In some embodiments, outputting one or more candidate tables may be based on the top k highest table unionizable capability scores of one or more table unionizable capability scores. The top k highest table unionizable capability scores may refer to a predetermined number of the top ranked table unionizable capability scores, where "k" may be any positive integer. For example, the top 5 highest table unionizable capability scores of one or more table unionizable capability scores may include the 5 highest table unionizable capability scores calculated, and thus the output may include 5 tables associated with those 5 table unionizable capability scores. Outputting may further include associating a ranking with each table of the 5 output tables.
[0034]
[0043] Components of the dataset discovery system 102 may run on a single computer or may be distributed across multiple computers or processors. The various components of the dataset discovery system 102 may communicate over a network (e.g., a LAN or WAN) or the Internet. In some embodiments, each component may run on multiple computer instances or processors. An instance of each component of the dataset discovery system 102 may be part of a connected network, such as a cloud network (e.g., Amazon AWS, Microsoft Azure, Google Cloud). In some embodiments, some or all of the components of the dataset discovery system 102 run within a virtual environment, such as a hypervisor or virtual machine.
[0035]
[0044] 2 is a flow chart illustrating an exemplary computer-implemented method 200 for dataset discovery according to an embodiment consistent with the present disclosure. For purposes of illustration, the steps of method 200 may be performed by dataset discovery system 102. It is understood that the method 200 shown is exemplary and that steps may be added, merged, split, duplicated, repeated (e.g., as part of a machine learning process), modified, performed in series, performed in parallel, or removed in some embodiments.
[0036]
[0045] In some embodiments, at step 210, the method 200 may include accessing a data repository that includes a number of tables having cell values arranged in one or more columns and one or more rows.
[0037]
[0046] In some embodiments, at step 220, method 200 may include generating a serialized sequence of cell values corresponding to particular columns of multiple tables as described and illustrated herein.
[0038]
[0047] In some embodiments, at step 230, the method 200 may include inputting the serialized sequence into a natural language model as described and illustrated elsewhere herein.
[0039]
[0048] In some embodiments, at step 240, method 200 may include converting the serialized sequence into a contextualized embedding associated with a plurality of tables by using a natural language model as described and illustrated herein.
[0040]
[0049] In some embodiments, at step 250, method 200 may include storing contextualized embeddings associated with the multiple tables into one or more vector indexes as described and illustrated herein.
[0041]
[0050] In some embodiments, in step 260, method 200 may include receiving a query table as described and illustrated elsewhere herein.
[0042]
[0051] In some embodiments, at step 270, method 200 may include generating an output of one or more candidate tables from the plurality of tables having unionizability with the received query table as described and illustrated herein. In some embodiments, generating the output may include determining one or more column unionizability scores between columns of the query table and one or more columns of the plurality of tables by using one or more vector indexes; determining one or more table unionizability scores between the query table and one or more tables of the plurality of tables by using one or more column unionizability scores; or outputting one or more candidate tables based on the one or more table unionizability scores as described and illustrated herein.
[0043]
[0052] 3 is a flow chart illustrating an example method 300 for generating one or more candidate table outputs according to an embodiment of the present disclosure. The steps of the method 300 may be performed by the dataset discovery system 102 for purposes of illustration. It is understood that the method 300 shown is exemplary and that steps may be added, merged, split, duplicated, repeated (e.g., as part of a machine learning process), modified, performed in series, performed in parallel, or removed in some embodiments.
[0044]
[0053] In some embodiments, at step 310, method 200 may include determining one or more column unionability scores between columns of the query table and one or more columns of the multiple tables by using one or more vector indexes, as described and illustrated herein.
[0045]
[0054] In some embodiments, at step 320, method 200 may include determining one or more table unionizable scores between the query table and one or more tables of the plurality of tables by using one or more column unionizable scores, as described and illustrated herein.
[0046]
[0055] In some embodiments, at step 330, method 200 may include outputting one or more candidate tables based on the one or more table unionizable ability scores as described and illustrated herein.
[0047]
[0056] 4 is a block diagram of an exemplary computing device 400 according to an embodiment of the present disclosure. In some embodiments, the computing device 400 may be a dedicated server providing the functionality described herein. In some embodiments, components of the dataset discovery system 100, such as the processor 110, the user interface 112, the natural language model 114, or the encoder 116, may be implemented using the computing device 400 or multiple computing devices 400 operating in parallel. Furthermore, the computing device 400 may be a second device that provides the functionality described herein or receives information from a server to provide at least some of the described functionality. Furthermore, the computing device 400 may be an additional device or devices that store or provide data according to an embodiment of the present disclosure, and in some embodiments, the computing device 400 may be a virtualized computing device, such as a virtual machine, multiple virtual machines, or a hypervisor.
[0048]
[0057] Computing device 400 may include one or more central processing units (CPUs) 420 and system memory 421. Computing device 400 may also include one or more graphics processing units (GPUs) 425 and graphics memory 426. In some embodiments, computing device 400 may be a headless computing device that does not include a GPU 425 or graphics memory 426.
[0049]
[0058] CPU 420 may be a single or multiple microprocessors, field programmable gate arrays, or digital signal processors capable of executing sets of instructions stored in a memory (e.g., system memory 421), a cache (e.g., cache 441), or a register (e.g., one of registers 440). CPU 420 may include one or more registers (e.g., registers 440) for storing various types of data (including data, instructions, floating point values, condition values, memory addresses of locations in memory (e.g., system memory 421 or graphics memory 426), among others), pointers, and counters. CPU registers 440 may include dedicated registers used to store data associated with executing instructions, such as an instruction pointer, an instruction counter, or a memory stack pointer. System memory 421 may include a tangible or non-transitory computer-readable medium, such as a floppy disk, a hard disk, a compact disk read-only memory (CD-ROM), a magneto-optical (MO) drive, a digital versatile disk random access memory (DVD-RAM), a solid-state disk (SSD), a flash drive or flash memory, a processor cache, a memory register, or a semiconductor memory. System memory 421 may be one or more memory chips capable of storing data and allowing direct access by CPU 420. System memory 421 may be any type of random access memory (RAM) or other available memory chips capable of operating as described herein.
[0050]
[0059] CPU 420 may communicate with system memory 421 via a system interface 450 (sometimes referred to as a bus). In embodiments that include a GPU 425, the GPU 425 may be any type of special purpose circuitry that can manipulate or modify memory (e.g., graphics memory 426) to provide images or accelerate their generation. GPU 425 may have a highly parallel structure optimized for processing large parallel blocks of graphics data more efficiently than general purpose CPU 420. Additionally, the functionality of GPU 425 may be contained within a chipset of a special purpose processing unit or co-processor.
[0051]
[0060] CPU 420 may execute programming instructions stored in system memory 421 or other memory and manipulate data stored in memory (e.g., system memory 421) and communicate with GPU 425 via system interface 450 (which bridges communication between various components of computing device 400). In some embodiments, CPU 420, GPU 425, system interface 450, or any combination thereof, are incorporated into a single chipset or processing unit. GPU 425 may execute a set of instructions stored in memory (e.g., system memory 421) to manipulate graphics data stored in system memory 421 or graphics memory 426. For example, CPU 420 may provide instructions to GPU 425, and GPU 425 may process the instructions to render graphics data stored in graphics memory 426. Graphics memory 426 may be any memory space accessible by GPU 425, including local memory, system memory, on-chip memory, and hard disk. The GPU 425 may enable the display of graphics data stored in the graphics memory 426 on the display device 424, or may process graphics information and provide this information to connected devices via the network interface 418 or I / O devices 430.
[0052]
[0061] Computing device 400 may include a display device 424 and input / output (I / O) devices 430 (e.g., a keyboard, mouse, or pointing device) connected to an I / O controller 423. The I / O controller 423 may communicate with other components of computing device 400 via a system interface 450. It should now be understood that CPU 420 may also communicate with system memory 421 and other devices in ways other than through system interface 450 (such as via serial communication or direct point-to-point communication). Similarly, GPU 425 may communicate with graphics memory 426 and other devices in ways other than through system interface 450. In addition to receiving input, CPU 420 may provide output via I / O devices 430 (e.g., via a printer, speaker, bone conduction, or other output device).
[0053]
[0062] Additionally, computing device 400 may include a network interface 418 for interfacing to a LAN, WAN, MAN, or the Internet via a wide variety of connections, including, but not limited to, a standard telephone line, a LAN or WAN link (e.g., 802.21, T1, T3, 56kb, X.25), a broadband connection (e.g., ISDN, Frame Relay, ATM), a wireless connection (e.g., compliant with 802.11a, 802.11b, 802.11b / g / n, 802.11ac, Bluetooth, Bluetooth LTE, 3GPP, or WiMax standards, among others), or a combination of any or all of the above. Network interface 418 may include a built-in network adapter; a network interface card; a PCMCIA network card; a card bus network adapter; a wireless network adapter; a USB network adapter, a modem; or other device suitable for connecting computing device 400 to any type of network with which it is capable of communicating and performing the operations described herein.
[0054]
[0063] Figure 5 is a diagram illustrating an exemplary process 500 for dataset discovery according to an embodiment of the present disclosure. For purposes of illustration, the steps of method 500 may be performed by dataset discovery system 102 of Figure 1 executing on or otherwise using features of computing device 400 of Figure 4. It is understood that the method 500 shown is exemplary and that steps may be added, merged, split, duplicated, repeated (e.g., as part of a machine learning process), modified, performed in series, performed in parallel, or removed in some embodiments.
[0055]
[0064] As shown in FIG. 5, the method 500 may include an offline phase 502 and an online phase 504. During the offline phase 502, the natural language model may be pre-trained by using contrastive self-supervised learning 514. The contrastive self-supervised learning 514 may be applied to one or more training data tables or one or more tables in a data repository 518 (or multiple data repositories). In some embodiments, the natural language model may be pre-trained (e.g., self-supervised contrastive learning 514) in an unsupervised manner and without labeled training data. Pre-training of the natural language model is discussed in more detail below with respect to FIG. 6.
[0056]
[0065] As further shown in FIG. 5 , the offline stage 502 may also include using an encoder (e.g., a multi-column encoder 516 of a machine learning model (e.g., a pre-trained natural language model)) to generate contextualized embeddings 536, 538 associated with multiple tables available in the data repository 518 (or in multiple data repositories). Based on the pre-training, the natural language model may be configured to receive as input the cell value data associated with the data repository and provide as output vector representations (e.g., contextualized embeddings 536, 538) of cell value data relationships within columns of multiple tables in the data repository as well as between columns of multiple tables in the data repository. Thus, the generated vector representations form the contextualized embeddings 536, 538 based on a combination of cell value data relationships both within and between columns of tables in the data repository 518. The vector representations 536, 538 may be stored in one or more vector indexes (e.g., a linear index, an LSH index, or an HNSW index) 520.
[0057]
[0066] As further shown in FIG. 5, the online stage 504 may include receiving a query table 506. The online stage 504 may further include generating a contextualized embedding 508 based on the cell value data in the query table 506. Generating the contextualized embedding 508 based on the cell value data in the query table 506 may include similar steps as discussed with respect to generating the contextualized embedding 536, 538 based on the cell value data in the data repository 518. The online stage 504 may also include accessing one or more vector indexes 520 to search and identify a particular contextualized embedding 536, 538 from the one or more vector indexes 520 (e.g., a contextualized embedding that is closer in orientation in the embedding space and thus more related to the contextualized embedding 508 associated with the query table). The online stage 504 may further include generating an output of a candidate table from the data repository 518, where the candidate table has union-ability with the query table 506. Generating the output of the candidate tables from the data repository may include determining one or more unionizable capability scores by using a scoring function. Unionizable capability scores (e.g., row unionizable capability scores between columns of the query table and columns of tables in the data repository) may be calculated between columns of tables. Unionizable capability scores may also be calculated between tables (e.g., table unionizable capability scores 540 between all tables based on a set of row unionizable capability scores). The table unionizable capability scores 540 may be calculated, for example, by using weighted bipartite graph matching. Furthermore, the output of the candidate tables may be based on the table unionizable capability scores between each candidate table and the query table. For example, a table with a higher table unionizable capability score with the query table (e.g., a table unionizable capability score above a threshold) may be determined to be a candidate table, while a table with a lower table unionizable capability score (e.g., a table unionizable capability score below a threshold) may be determined to be a non-candidate table.5, the candidate tables may be further validated to verify that the cell value data of the columns in each candidate table is related to and therefore unionable with the cell value data of the columns in the query table. Validation may involve reviewing and ranking the candidate tables (e.g., ranking the candidate tables via sequence 550) of the top-k tables having the highest table unionability scores with the query table.
[0058]
[0066] Figure 6 is a diagram illustrating an exemplary method 600 of self-supervised contrastive learning (e.g., contrastive pre-training). For illustrative purposes, the steps of the method 600 may be performed by the dataset discovery system 102 of Figure 1 executing on or otherwise using features of the computing device 400 of Figure 4. It is understood that the method 600 shown is exemplary and that steps may be added, merged, split, duplicated, repeated (e.g., as part of a machine learning process), modified, performed in series, performed in parallel, or removed in some embodiments.
[0059]
[0067] The natural language model may be pre-trained by using contrastive learning techniques that may be applied to batches 602, 618 of serialized strings from a training data table or from a table in a data repository. As shown in FIG. 6, various columns from a table (e.g., a training data table or a table from a data repository) may be serialized. Serialization may refer to tokenizing the cell value data in each column and ordering in a string the serialized cell value data presented in each column. At least two batches 602, 618 of serialized string data may be generated from a given table. In some embodiments, it may be assumed that each individual batch of serialized string data contains unionizable cell value data while various batches of serialized string data contain non-unionizable cell value data. Based on this assumption, a first batch 602 of serialized string data associated with a column of a table may be associated with an augmented version 608 of itself and separated from a second batch 618 of serialized string data associated with a different column of the table (or a second batch of serialized string data associated with a randomly selected column of a different table). The correlating and separating may result in the generation of vector representations 614, 616, 624 that indicate similarities or associations between the cell value data of the various columns (e.g., by their proximity to one another in the embedding space). For example, as shown in FIG. 6, a first batch (X) 604 of serialized column data associated with one column of a table may be provided, and a second batch (Y) 620 of serialized column data associated with columns of another table may be provided. Based on the first batch (X) 604 of serialized column data, an enriched batch (X) 620 of serialized column data in the first batch (X) 606 may be provided. aug )608(For example, X ori Based on the assumptions above, various presentations of data within the same batch of serialized column data 602 may produce similar cell value data (e.g., Z ori , Z aug), while various representations of various batches of serialized strings may result in vector representations 614, 616 that are mapped more closely because they contain different cell value data (e.g., M(Y) 624 that is correlated with a different batch of serialized string data that indicates location 618 compared to a batch of serialized string data 602 that contains a date), resulting in vector representations 614, 624 and 616, 624 that are mapped farther away. Such mapping may be done by using any known mapping function (e.g., mapping functions 610, 612, 622). It will be understood that mapping functions 610, 612, 622 may be the same mapping function or different mapping functions. The mapping function may train a machine learning model (e.g., natural language model 114) to understand the similarities and differences between data values found in tables of the data repository. The trained machine learning model may then generate a contextualized embedding based on the entire set of tables in the data repository, as discussed further below in connection with FIG. 8.
[0060]
[0068] FIG. 7 is an example of two batches of serialized string data that may be used for contrastive training in accordance with disclosed embodiments. As shown in FIG. 7, a first batch of serialized string data may be generated from a first table 710, and a second batch of serialized string data may be generated from a second table 730. Also, as shown in FIG. 7, each batch of serialized string data may be generated with a separator token ( <s>) 740 and cell value tokens 750. Separator tokens 740 indicate additional columns of the table, allowing a single serialized sequence of tokens to represent all columns of the table. As a result, data in one column of the table may be related to data in other columns of the table to provide context for the data within each column of the table. As another result, data in columns of the first table 710 may be distinguished from data in columns of the second table 730. As further shown in FIG. 7, the first batch of serialized string data may be augmented (720) to rearrange the order of tokens within each column of the first table. The augmented first batch of serialized string data may be understood (e.g., assumed) to be a batch of serialized string data that matches the first batch of serialized string data. The natural language model may be trained to relate cell value data associated with various cell value tokens or separator tokens 750 of the first batch of serialized string data to cell value data associated with various cell value tokens or separator tokens 752 of the augmented first batch of serialized string data because the batches of data are associated with the same column and the same table. For example, the natural language model may connect (e.g., relate or associate) cell value data associated with cell value token 740 and cell value token 742. As another example, the natural language model may connect cell value data associated with cell value token 760 and cell value token 762. As another example, the natural language model may connect cell value data associated with cell value token 770 and cell value token 772. The natural language model may also be trained to distinguish (e.g., not connect or separate) cell value data of the augmented first batch of serialized string data that does not match the first batch of serialized string data, for example based on various columns in a table. For example, the natural language model may distinguish between the cell value data associated with cell value token 740 and the cell value data associated with cell value token 762. As another example, the natural language model may distinguish between the cell value data associated with cell value token 760 and the cell value data associated with cell value token 742.As another example, the natural language model may distinguish between cell value data associated with cell value token 740 and cell value data associated with cell value token 772. The natural language model may further be trained to distinguish between cell value data associated with various cell value tokens and various separator tokens 750 of a first batch of serialized string data and cell value data associated with various cell value tokens and various separator tokens 754 of a second batch of serialized string data, as the batches of data are associated with inconsistent separate columns or tables. For example, the natural language model may distinguish (e.g., may not connect or separate) between cell value data associated with cell value token 740 and cell value data associated with any one of cell value tokens 744, 764, 774. As another example, the natural language model may distinguish between cell value data associated with cell value token 760 and cell value data associated with any one of cell value tokens 744, 764, 774. As another example, the natural language model may distinguish between cell value data associated with cell value token 770 and cell value data associated with any one of cell value tokens 744, 764, 774. The same process may be performed for additional columns or tables to further train the natural language model in an unsupervised manner, and whether or not the additional columns or tables contain labeled or structured data.
[0061]
[0069] Figure 8 is a diagram illustrating an example method 800 for generating contextualized embeddings from data found in tables of a data repository. For purposes of illustration, the steps of method 800 may be performed by the dataset discovery system 102 of Figure 1 executing on or otherwise using features of the computing device 400 of Figure 4. It is understood that the method 800 shown is exemplary and that steps may be added, merged, split, duplicated, repeated (e.g., as part of a machine learning process), modified, performed in series, performed in parallel, or removed in some embodiments.
[0062]
[0070] 8, cell data values in various columns of an input table 802 may be serialized (and tokenized) to form serialized sequences 812, 814, 816 of cell data values associated with each column of the input table 802. The serialized sequences 812, 814, 816 of cell data values may be input into a pre-trained natural language model 818 (e.g., BERT, RoBERTa). The pre-trained natural language model 818 may first generate a set of embeddings 820 (e.g., vector representations) based directly on the individual serialized sequences of the cell data values, and then transform the set of embeddings 820 based on relationship data 840 between the various serialized sequences of the cell data values (e.g., by using one or more transformer layers 830, 832 that take into account the context (e.g., relationship data 840) between the columns of the input table). In this way, the transformed tuple embeddings 850 reflect both the syntactic and semantic relationships between the data within each column of the cells of the input table 802, as well as the semantic relationships between cell data values across columns of the input table 802 (e.g., cell data values within a row). Based on the transformed tuple embeddings 850, the pre-trained natural language model 818 may output (e.g., generate) contextualized column embeddings 850, 852, 854 that represent the relationships of the data within the cells of the input table 802 (both the relationships within the columns of the input table 802 and the relationships between the columns of the input table 802). The same process may be repeated for each table found in the data repository to generate a mapping of contextualized column embeddings associated with the data repository.
[0063]
[0071] FIG. 9 illustrates an exemplary process 900 for determining a table unionizable capability score based on a row unionizable capability score. As illustrated in FIG. 9, a query table (S) 910 may have four columns S1, S2, S3, and S4, and a candidate table (T) 920 may have three columns T1, T2, and T3. A row unionizable capability score 930 may be calculated between each column of the query table (S) 910 and each column of the candidate table (T) 920. A table unionizable capability score between table S and table T may be calculated based on an aggregation or averaging of the row unionizable capability scores 930 across all columns of each table. In some embodiments, row unionizable capability scores below a threshold (such as row unionizable capability score 940) may be ignored when determining a table unionizable capability score. For example, if no column between table S and table T has a row unionizable capability score above a threshold, table T may be determined to have a table unionizable capability score of 0 (or non-zero but below the threshold) and therefore not unionizable with table S. Table T may be determined to be unionizable with table S if only a single pair of columns between table S and table T has a column unionability score that exceeds a threshold, but the table unionability score may be below another threshold associated with the table unionability score required for determining proper unionability with table S. Table T may be determined to be unionizable with table S if several pairs of columns between table S and table T have column unionability scores that exceed a threshold, and the table unionability score may meet or exceed the threshold required for determining unionability with table S. Thus, the table unionability score between two tables may take into account relationships between several columns of each table, where more relationships or greater strength of those relationships may result in a higher table unionability score. This process may be repeated for various tables in the data repository to determine top candidate tables unionable with the query table.
[0064]
[0072] FIG. 10 shows an exemplary output candidate table 1020 based on a received query table 1010. The candidate table 1020 may include some columns that contain data similar to that of the query table 1010, and therefore the table disjunctive ability score between the candidate table 1020 and the query table 1010 may be higher than the table disjunctive ability score between the other table and the query table 1010. This is evident, for example, based on similar "Name" column data in each table 1010, 1020, but also based on the similarity between the data listed in the "Party" and "State" columns of each table 1010, 1020. For example, the data repository may also include tables with the same list of states in one column but unrelated information in other columns. Such a table would have a lower column disjunctive ability score with the query table 1010 and therefore a lower table disjunctive ability score, because the data (e.g., context) in the other columns is not relatable. In contrast, candidate table 1020 shares relatable data across three columns with query table 1010, leading to several high column disjunctive scores (and thus a higher table disjunctive score with query table 1010). As a result, the indicated candidate table 1020 may be output while other tables from the data repository may not be output (or may be output but at a lower ranking).
[0065]
[0073] Some exemplary embodiments have been described above with reference to flowchart illustrations or block diagrams of methods, apparatus (systems) and computer program products. It will be understood that each block of the flowchart illustrations or block diagrams, and combinations of blocks in the flowchart illustrations or block diagrams, can be implemented by a computer program product or by instructions on a computer program product. These computer program instructions can be provided to a processor of a computer or other programmable data processing device to manufacture a machine, such that the instructions, which execute via a processor of a computer or other programmable data processing device, create means for performing the functions / acts specified in the flowchart or block diagram block or blocks.
[0066]
[0074] These computer program instructions may also be stored in a computer-readable medium that may instruct one or more hardware processors of a computer, other programmable data processing apparatus, or other device to function in a particular manner, such that the instructions stored in the computer-readable medium form an article of manufacture including instructions that implement the function / acts specified in the flowchart or block diagram block or blocks.
[0067]
[0075] The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to generate a computer-implemented process, such that the instructions, executing on the computer or other programmable data processing apparatus, generate a process for performing the function / acts specified in the flowchart or block diagram block or blocks.
[0068]
[0076] Any combination of one or more computer readable media may be utilized. A computer readable medium may be a non-transitory computer readable storage medium. In the context of this specification, a computer readable storage medium may be any tangible medium that may contain or store a program for use by or in connection with an instruction execution system, apparatus or device.
[0069]
[0077] The program code embodied on the computer readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, fiber optic cable, RF, IR, etc., or any suitable combination thereof.
[0070]
[0078] Computer program code for carrying out the operations of the exemplary embodiments may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C++, or conventional procedural programming languages such as the "C" programming language or similar programming languages. The program code may execute completely on the user computer, partially on the user computer as a stand-alone software package, partially on the user computer, partially on a remote computer, or completely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user computer via any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (e.g., via the Internet by using an Internet Service Provider).
[0071]
[0079] The flowcharts and block diagrams in the accompanying drawings illustrate examples of the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code that includes one or more executable instructions for performing specified logical functions. It should also be noted that in some alternative implementations, the functions described in the blocks may deviate from the order described in the accompanying drawings. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or these blocks may sometimes be executed in the reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams or flowchart illustrations, and combinations of blocks in the block diagrams or flowchart illustrations, may be implemented by a dedicated hardware-based system that performs the specified functions or acts, or by a combination of dedicated hardware and computer instructions.
[0072]
[0080] It is understood that the described embodiments are not mutually exclusive and that elements, components, materials, or steps described with respect to one exemplary embodiment can be combined with or omitted from other embodiments in a suitable manner to achieve desired design goals.
[0073]
[0081] In the foregoing specification, the embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. Several adaptations and modifications of the described embodiments may be made. Other embodiments may become apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered merely exemplary. It is also intended that the sequence of steps depicted in the figures is for illustrative purposes only, and is not intended to be limited to any particular sequence of steps. Thus, one skilled in the art will appreciate that these steps may be performed in different orders while implementing the same method. [Explanation of symbols]
[0074] 100 Operating environment 102 Dataset Discovery System 104 users 110 Processor 112 User Interface 114 Natural Language Modeling 116 encoder 118 Data Repository 120 Vector Index 200 Computer-Implemented Methods 210, 220, 230, 240, 250, 260, 270, 310, 320, 330 processes 244 Cache 400 computing devices 418 Network Interface 420 CPU 421 System Memory 423 I / O Controller 424 Display Devices 425 GPU 426 Graphics Memory 428 Storage 430 I / O Devices 440 Register 450 System Interface 500 processes 502 Offline Phase 504 Online Phase 506 Inquiry Table 508 Contextual Embedding 514 Contrastive Self-Managed Learning 516 Multi-sequence Encoder 518 Data Repository 520 Vector Index 536, 538 Contextualized Embedding 540 Table Union Possible Ability Scores 550 series 600 ways 602, 618 Serialization Column 604 1st batch 608 Enhanced version 610, 612, 622 Mapping Functions 614, 616, 624 Vector Representation 620 Second Batch 710 First Table 720 Enhanced View of the First Table 730 Second Table 740, 752, 754 Separator Tokens 742, 744, 750, 760, 762, 764, 770, 772, 774 Cell Value Tokens 800 ways 802 Input Table 812, 814, 816 serialization series 818 pre-trained natural language models 820, 850, 852, 854 Embedded 830, 832 Transformer Layer 840 Relationship Data 900 Processes 910 Inquiry Table 920 Candidate table 930, 940 Column set possible ability score 1010 Inquiry table 1020 Output candidate table S1, S2, S3, S4, T1, T2, T3 columns S Inquiry Table T candidate table< / s>
Claims
1. 1. A non-transitory computer readable storage medium storing instructions executable by one or more processors to cause the one or more processors to perform operations for dataset discovery, the operations including: accessing a data repository including a number of tables having cell values arranged in one or more columns and one or more rows; generating a serialized sequence of the cell values corresponding to particular columns of the plurality of tables; inputting the serialized sequence into a natural language model; converting the serialized sequence into a contextualized embedding associated with the plurality of tables by using the natural language model; storing the contextualized embeddings associated with the tables into one or more vector indexes; receiving a query table; and determining one or more column union feasibility scores between a column of the query table and the one or more columns of the plurality of tables by using the one or more vector indexes; determining one or more table unionizable ability scores between the query table and one or more of the plurality of tables by using the one or more column unionizable ability scores; and outputting one or more candidate tables based on the one or more table union feasibility scores; generating an output of the one or more candidate tables from the plurality of tables having union-ability with the received query table.
2. 2. The non-transitory computer-readable storage medium of claim 1, wherein each serialized sequence includes a cell value token and a separator token, the separator token indicating a new sequence of additional cell value tokens.
3. The non-transitory computer-readable storage medium of claim 2 , wherein the conversion of the serialized sequence into contextualized embeddings associated with the plurality of tables is based on the cell value tokens and the separator tokens.
4. 2. The non-transitory computer-readable storage medium of claim 1, wherein the one or more vector indexes include at least one of a Locality Sensitivity Hashing (LSH) index or a Hierarchical Navigable Small World (HNSW) index.
5. The non-transitory computer-readable storage medium of claim 1 , wherein the data repository contains unstructured or unlabeled data.
6. The non-transitory computer-readable storage medium of claim 1 , wherein the data repository is a data lake, a data warehouse, a data mart, an object storage system, a relational database, or a non-relational database.
7. 2. The non-transitory computer-readable storage medium of claim 1 , wherein the natural language model includes a multi-column encoder and the contextualized embeddings include relationship data between cell values in a first column of the one or more columns of the multiple tables and cell values in a second column of the one or more columns of the multiple tables.
8. Determining the one or more string union capability scores may further comprise: constructing an affinity graph across columns of the one or more columns of the tables; and The non-transitory computer-readable storage medium of claim 1 , further comprising associating pairs of the one or more columns in the affinity graph that have a cosine similarity that exceeds a threshold.
9. 10. The non-transitory computer-readable storage medium of claim 1, wherein outputting the one or more candidate tables is further based on a calculated lower or upper bound associated with the one or more table unionizable ability scores.
10. 2. The non-transitory computer-readable storage medium of claim 1 , wherein the one or more column unionability scores between a column of the query table and the one or more columns of the plurality of tables are determined based on a cosine similarity between a query table embedding and the contextualized embedding.
11. 2. The non-transitory computer-readable storage medium of claim 1, wherein outputting the one or more candidate tables is based on a top-k highest table unionizability scores of the one or more table unionizability scores.
12. Determining the one or more column unionability scores between a column of the query table and the one or more columns of the plurality of tables comprises: generating a serialized sequence of query table cell values corresponding to a particular column in the query table; inputting the serialized sequence of query table cell values into the natural language model; converting the serialized sequence of query table cell values into a contextual embedding associated with the query table by using the natural language model; and 2. The non-transitory computer-readable storage medium of claim 1, further comprising generating the one or more column unionable capability scores based on a comparison of the contextualized embeddings associated with the query table and the contextualized embeddings associated with the plurality of tables.
13. The non-transitory computer-readable storage medium of claim 1 , wherein the natural language model is pre-trained by using unsupervised contrastive learning based on the plurality of tables.
14. 1. A computer-implemented method for dataset discovery, the method comprising: accessing a data repository including a number of tables having cell values arranged in one or more columns and one or more rows; generating a serialized sequence of the cell values corresponding to particular columns of the plurality of tables; inputting the serialized sequence into a natural language model; converting the serialized sequence into a contextualized embedding associated with the plurality of tables by using the natural language model; storing the contextualized embeddings associated with the tables into one or more vector indexes; receiving a query table; and determining one or more column union feasibility scores between a column of the query table and the one or more columns of the plurality of tables by using the one or more vector indexes; determining one or more table unionizable ability scores between the query table and one or more of the plurality of tables by using the one or more column unionizable ability scores; and outputting one or more candidate tables based on the one or more table union feasibility scores; generating said one or more candidate table outputs from said plurality of tables having union-ability with said received query table.
15. the natural language model is pre-trained using unsupervised contrastive learning based on the one or more columns of the plurality of tables; The method of claim 14 , wherein the data repository contains unstructured or unlabeled data.
16. 15. The method of claim 14, wherein the natural language model includes a multi-column encoder and the contextualized embeddings include relationship data between cell values in a first column of the one or more columns of the multiple tables and cell values in a second column of the one or more columns of the multiple tables.
17. 1. A dataset discovery system, comprising: One or more memory devices for storing processor-executable instructions; and A dataset discovery system including one or more processors configured to execute the instructions to cause the dataset discovery system to perform a number of operations, the operations including: accessing a data repository including a number of tables having cell values arranged in one or more columns and one or more rows; generating a serialized sequence of the cell values corresponding to particular columns of the plurality of tables; inputting the serialized sequence into a natural language model; converting the serialized sequence into a contextualized embedding associated with the plurality of tables by using the natural language model; storing the contextualized embeddings associated with the tables into one or more vector indexes; receiving a query table; and determining one or more column union feasibility scores between a column of the query table and the one or more columns of the plurality of tables by using the one or more vector indexes; determining one or more table unionizable ability scores between the query table and one or more of the plurality of tables by using the one or more column unionizable ability scores; and outputting one or more candidate tables based on the one or more table union feasibility scores; generating said one or more candidate table outputs from said plurality of tables having union-ability with said received query table.
18. 20. The system of claim 17, wherein the natural language model is pre-trained using unsupervised contrastive learning based on the one or more columns of the multiple tables.
19. The system of claim 18 , wherein the data repository contains unstructured or unlabeled data.
20. 20. The system of claim 17, wherein the natural language model includes a multi-column encoder and the contextualized embeddings include relationship data between cell values in a first column of the one or more columns of the multiple tables and cell values in a second column of the one or more columns of the multiple tables.