WO2022049682A1 - テーブル統合システム、方法およびプログラム - Google Patents

テーブル統合システム、方法およびプログラム Download PDF

Info

Publication number
WO2022049682A1
WO2022049682A1 PCT/JP2020/033310 JP2020033310W WO2022049682A1 WO 2022049682 A1 WO2022049682 A1 WO 2022049682A1 JP 2020033310 W JP2020033310 W JP 2020033310W WO 2022049682 A1 WO2022049682 A1 WO 2022049682A1
Authority
WO
WIPO (PCT)
Prior art keywords
column
join
candidate
correlation
index
Prior art date
Application number
PCT/JP2020/033310
Other languages
English (en)
French (fr)
Inventor
于洋 董
昌史 小山田
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2022546787A priority Critical patent/JP7444269B2/ja
Priority to PCT/JP2020/033310 priority patent/WO2022049682A1/ja
Priority to US18/023,830 priority patent/US20230237039A1/en
Publication of WO2022049682A1 publication Critical patent/WO2022049682A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Definitions

  • the present invention relates to a table integration system, a table integration method, and a table integration program that integrates tables containing correlated data.
  • Patent Document 1 describes a method of joining two tables.
  • a joinable row pair between two tables is determined, and a conversion model is generated from the determined joinable row pair.
  • the columns of the first table are transformed based on the generated transformation model, and the converted first table is joined with the second table.
  • Non-Patent Document 1 describes entity matching for finding a record that refers to the same entity.
  • the optimum similarity function is selected from a plurality of similarity functions based on the observation result that the similarity function for quantifying the similarity of records and the threshold value are redundant. Select.
  • each table in the external table group does not always have a unified notation rule or schema.
  • a certain beverage is managed in a column called "product name” in a table owned by a certain store, and managed in a column called "drink name” in a table owned by a certain analysis company.
  • the name of the beverage it is considered that there is a record that holds the name of the beverage alone and a record that holds the name of the beverage including the capacity.
  • the similarity between records to be combined is calculated using a similarity function. Then, when the value calculated by a certain similarity function is larger than the threshold value Tr , it is determined that the two records can be combined. Further, in the method described in Non-Patent Document 1, when the number of pairs of records determined to be connectable by the two columns to be combined is equal to or more than the threshold value Tc , it is determined that the two columns can be combined.
  • a table that can be joined is searched from an external table group for the table of the join source (hereinafter, may be referred to as a base table).
  • the similarity function of all the records in the columns of all the tables included in the external table group is calculated by the similarity function. become. Assuming that all the records included in the external table group are N and all the records in the base table are M, the calculation amount is O (NM). Further, when the similarity is calculated using a plurality of similarity functions, the amount of calculation is O (NMF), where F is the number of similarity functions.
  • Non-Patent Document 1 when the method described in Non-Patent Document 1 is simply used, there is a problem that the amount of calculation for specifying the joinable table becomes enormous because the number of records N of the external table group is enormous. be.
  • the data contained in the joined tables is not necessarily the data that promotes value creation.
  • an object of the present invention is to provide a table integration system, a table integration method, and a table integration program that can efficiently integrate correlated data with a table including a target column.
  • the join table storage means for storing the join table, which is a table that can be joined to the base table including the target column, which is the column consisting of the target data in the assumed task, and the data of the target column.
  • a candidate column storage means for storing a candidate column which is a column containing correlated data and an integrated table generator for generating an integrated table by joining a base table and a candidate column are provided, and the joined table generator is a joined table.
  • the join table is input from the join table storage means that stores the join table, which is a table that can be joined to the base table including the target column, which is the column consisting of the target data in the assumed task.
  • Combine the columns to be added to the base table select the feature quantity that improves the performance of the task based on the data contained in the combined candidate column, and join the column containing the selected feature quantity and the base table. It is characterized by outputting a table.
  • the table integration program is a join from a join table storage means that stores a join table, which is a table that can be joined to a base table including a target column, which is a column consisting of data of interest in the assumed task.
  • First input process that accepts table input
  • second input process that accepts input of the candidate column from the candidate column storage means that stores the candidate column that is a column containing data that correlates with the data of the target column
  • input of the base table 3rd input process that accepts, join process that joins the column corresponding to the candidate column in the join table to the base table, and selects the feature amount that improves the performance of the task based on the data contained in the joined candidate column.
  • a feature amount selection process and an integrated table output process for outputting an integrated table in which a column containing the selected feature amount and a base table are combined are executed.
  • correlated data can be efficiently integrated into a table including a target column.
  • FIG. 1 is a block diagram showing a configuration example of an embodiment of a join table specifying system according to the present invention.
  • the join table specifying system 100 of the present embodiment is a system that specifies an outer table (hereinafter referred to as a join table) that can be joined to the join source table (that is, the base table). More specifically, a join table is a table that includes any of the columns contained in the base table and columns that can be joined.
  • the join table specifying system 100 of the present embodiment uses a function for calculating the similarity between records (hereinafter referred to as a similarity function) to determine whether or not the records can be joined.
  • a similarity function a function for calculating the similarity between records
  • Examples of the similarity function include Jaccard similarity, editing distance, Euclidean distance of a character string converted based on Word2vec, and the like.
  • the similarity function used in this embodiment is not limited to these three types of similarity functions.
  • the similarity functions as illustrated above have different viewpoints, it is not possible to uniquely determine the optimum similarity function.
  • the similarity between "ramune” and “ramune 250 ml” is calculated as 0.375 in the case of editing distance and 0.5 in the case of Jaccard similarity.
  • the similarity between "champ orange” and “champ orange” is calculated as 0.875 in the case of the editing distance and 0.5 in the case of the Jaccard similarity. In this way, the value of similarity changes according to the contents of the records to be compared.
  • FIG. 2 is an explanatory diagram showing an example of a process for determining a table that can be joined.
  • FIG. 2 shows an example of determining whether the outer table FT1 can be joined to the base table BT1.
  • the threshold value Tr 0.5 of the similarity used for determining whether or not the records can be combined
  • the threshold value T c 2 of the record pair used for determining whether or not the columns can be combined.
  • the Jaccard similarity is 0.5
  • the editing distance is 0.37
  • the similarity after Word2vec conversion is 0.8 for "ramune” and "ramune 250 ml” illustrated in FIG. 2.
  • the maximum similarity is calculated to be 0.8, which is larger than the threshold value Tr , so that it is determined that the two records can be combined.
  • the amount of calculation of O is required as described above. Therefore, in the present embodiment, the amount of calculation (cost) at the time of searching is reduced by constructing an index of the external table group in advance.
  • the join table specifying system 100 exemplified in FIG. 1 includes an external table storage device 10, a join index construction device 110, a join index storage unit 120, a join table search device 130, and a join table storage unit 140. ..
  • the external table storage device 10 stores a plurality of external tables (that is, external table groups) that are candidates to be joined to the base table.
  • An example of the external table is the external table FT1 illustrated in FIG.
  • the external table storage device 10 is realized by, for example, a storage server, a magnetic disk, or the like.
  • join table specifying system 100 includes the external table storage device 10
  • the join index construction device 110 may acquire an external table group from a storage (not shown) or the like connected through a communication line.
  • the join table specifying system 100 does not have to include the external table storage device 10.
  • the join index construction device 110 is a device that builds an index (hereinafter referred to as a join index) of a group of external tables used for joining with a base table.
  • the join index construction device 110 includes a join column candidate extraction unit 112 and a join index generation unit 114.
  • the join column candidate extraction unit 112 extracts a column including a record that can be a join key with another table from each outer table included in the outer table group as a join column candidate.
  • the join column candidate extraction unit 112 estimates, for example, the types of all the columns in the outer table group, and determines whether or not the column of the estimated type can be joined with the columns of other tables.
  • the column type here may be a type such as a "character string type" or a "numeric type" indicating a character attribute, or may indicate a concept represented by a column. ..
  • the method of estimating the column type is arbitrary, and a known method may be used.
  • the combined column candidate extraction unit 112 may estimate the type (meaning of the column) of each column by using, for example, the method described in Patent Document 2. Then, the join column candidate extraction unit 112 joins the column when, for example, the estimated column type indicates a predetermined meaning or is an attribute of a predetermined character (for example, a character string type). It may be extracted as a candidate.
  • FIG. 3 is an explanatory diagram showing an example of a process of estimating the column type. For example, based on the record illustrated in FIG. 3, column 1 containing a character string means "name”, column 2 containing numbers means “age”, and column 3 containing alphanumericals means “grade”. It is presumed that the column means ".”
  • the join column candidate extraction unit 112 may determine that the data of the column meaning "name" is likely to be the join key, and may extract column 1 as the join column candidate. Further, for example, a numeric column or a column having few unique values is unlikely to be a join key, and a character string type column is likely to be a join key. Therefore, the join column candidate extraction unit 112 has a unique value.
  • the character string type column 1 in which the number may increase may be extracted as a join column candidate.
  • the join index generation unit 114 generates a join index of the outer table group. Specifically, the join index generation unit 114 generates a join index of the extracted join column candidates. By limiting the index target to the join column candidates in this way, the cost required to generate the join index and the size of the generated join index can be reduced.
  • the join index generation unit 114 creates, as the join index, an index that can search for records whose similarity calculated by the similarity function is equal to or higher than a predetermined threshold value for each similarity function.
  • the join index generation unit 114 may generate a join index by any method according to the similarity function.
  • index-LSH Large-sensitive Hashing
  • FISS Fidelity-sensitive Hashing
  • index corresponding to the similarity function for calculating the Euclidean similarity a method of generating a set (matrix) of vectors in a memory and a library (FAISS) are known.
  • an inverted index is known as an index according to a similarity function that calculates whether or not an exact match is obtained. Since the methods for generating these indexes are widely known, detailed description thereof will be omitted here.
  • the join index generation unit 114 stores the generated join index in the join index storage unit 120.
  • the join column candidate extraction unit 112 and the join index generation unit 114 are realized by a computer processor (for example, a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit)) that operates according to a program (join index generation program). ..
  • a computer processor for example, a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit)
  • a program join index generation program
  • the program is stored in a storage unit (not shown) included in the join index construction device 110, and the processor reads the program and operates as a join column candidate extraction unit 112 and a join index generation unit 114 according to the program. May be good.
  • the function of the join index construction device 110 may be provided in the SAAS (Software as a Service) format.
  • join column candidate extraction unit 112 and the join index generation unit 114 may each be realized by dedicated hardware. Further, a part or all of each component of each device may be realized by a general-purpose or dedicated circuit (circuitry), a processor, or a combination thereof. These may be composed of a single chip or may be composed of a plurality of chips connected via a bus. A part or all of each component of each device may be realized by the combination of the circuit or the like and the program described above.
  • each component of the join index construction device 110 when a part or all of each component of the join index construction device 110 is realized by a plurality of information processing devices, circuits, etc., the plurality of information processing devices, circuits, etc. may be centrally arranged. , May be distributed.
  • the information processing device, the circuit, and the like may be realized as a form in which each is connected via a communication network, such as a client-server system and a cloud computing system.
  • the join index storage unit 120 stores the join index according to the similarity function. In the present embodiment, the case where the join index storage unit 120 stores the join index generated by the join index construction device 110 is described, but the join index storage unit 120 is generated by another device (not shown). It may remember the joined index that was created.
  • the join table search device 130 searches for a table that can be joined to the target column (hereinafter referred to as a target column) in the base table from the outer table group by using the join index.
  • the join table search device 130 includes an input unit 132, a search plan generation unit 134, a record search unit 136, and a join table output unit 138.
  • the input unit 132 accepts the input of the target column that attempts to join with the outer table among the columns included in the base table. Further, the input unit 132 reads the join index stored in the join index storage unit 120. The input unit 132 may read the join index from a storage device (not shown) other than the join index storage unit 120.
  • the search plan generation unit 134 analyzes the records of the target column before executing the search using the join index of each similarity function, and generates a search plan that defines the order of use of the join index at the time of search. ..
  • the search plan generation unit 134 joins the number of record pairs that can be joined (hereinafter referred to as the number of results) estimated when the records in the target column are searched using the join index of each similarity function. Calculated for each index. Examples of the method for estimating the number of results using the join index of the similarity function include kernel density estimation (KernelDensityEstimation) and cardinality estimation (CardinalityEstimation). The search plan generation unit 134 may use these known estimation methods to estimate the number of results for each join index.
  • kernel density estimation KernelDensityEstimation
  • CardinalityEstimation cardinality estimation
  • the search plan generation unit 134 generates a search plan that defines the order of use of the join index in descending order of the number of calculated results.
  • the reasons for defining the order of use in this way are as follows. It is highly possible that many record pairs that can be joined can be found by performing a search using the join index that is estimated to have a large number of results. Then, since the records of the outer table group already determined to be joinable can be excluded from the search target in the subsequent join index, the search process can be omitted. As a result, the cost of searching can be further reduced.
  • N 10
  • M 1
  • the number of results when the join index A is used for the record of a certain target column is 2, and the number of results when the join index B is used is 5.
  • the amount of calculation is log (10) + log (8).
  • the amount of calculation is log (10) + log (5). In this way, the amount of calculation can be reduced by defining the order of use of the join index in descending order of the number of results.
  • the record search unit 136 searches for records in the target column using the join index in the order specified in the search plan. At that time, the record search unit 136 excludes the records of the external table searched by the already used join index from the search target, and performs a search using the subsequent join index. Then, the record search unit 136 identifies the external table in which the record having the threshold value T c or more determined in advance is searched as a result of searching the record of the target column using all the join indexes as the join table.
  • FIG. 4 is an explanatory diagram showing an example of a process for specifying the join table of the target column.
  • the search plan generation unit 134 generates a search plan.
  • the search plan is generated as "Order 1: Exact match join index, Order 2: Jaccard similarity join index, Order 3: Euclidean distance join index".
  • the record search unit 136 searches the record R1 of the target column using the join index in the order specified in the search plan.
  • the record search unit 136 first searches the record R1 of the target column by using the exact match join index.
  • the matching record group hereinafter referred to as the first record group
  • the record search unit 136 searches the record R1 of the target column by excluding the first record group by using the Jaccard similarity degree join index.
  • the matching record group hereinafter referred to as the second record group in the external table group is further searched.
  • the record search unit 136 searches the record R1 of the target column by excluding the first record group and the second record group by using the Euclidean distance join index. As a result, the matching record group (hereinafter referred to as the third record group) in the external table group is further searched.
  • the record search unit 136 identifies the table A including the record "Ramune 250 ml” as a table (join table) that can be joined in column 1, and the table C containing the record "HATA Ramune” can be joined in column 3. Specify as (join table).
  • the join table output unit 138 outputs the searched join table.
  • the join table output unit 138 may store the searched join table in the join table storage unit 140.
  • the join table storage unit 140 stores a table that can be joined to the target column in the base table.
  • the join table storage unit 140 may store, for example, a joinable base table in association with the join table.
  • the join table storage unit 140 may store the join table searched by the join table search device 130, or may store the join table generated by another device (not shown).
  • the join index storage unit 120 and the join table storage unit 140 are realized by, for example, a magnetic disk or the like.
  • the input unit 132, the search plan generation unit 134, the record search unit 136, and the join table output unit 138 are realized by a computer processor that operates according to a program (join table search program).
  • the program is stored in a storage unit (not shown) included in the join table search device 130, the processor reads the program, and according to the program, the input unit 132, the search plan generation unit 134, the record search unit 136, and the join. It may operate as a table output unit 138. Further, the function of the join table search device 130 may be provided in SaaS format.
  • FIG. 5 is a flowchart showing an operation example of the join index construction device 110 of the present embodiment.
  • the join column candidate extraction unit 112 extracts the join column candidates from each table included in the outer table group (step S11).
  • the join index generation unit 114 generates a join index of the extracted join column candidates for each similarity function (step S12). Then, the join index generation unit 114 stores the generated join index in the join index storage unit 120 (step S13).
  • FIG. 6 is a flowchart showing an operation example of the join table search device 130 of the present embodiment.
  • the input unit 132 receives the input of the join index from the join index storage unit 120 (step S21). Further, the input unit 132 accepts the input of the target column among the columns included in the base table (step S22).
  • the search plan generation unit 134 calculates the number of results for each join index estimated for the records in the target column (step S23). Then, the search plan generation unit 134 generates a search plan that defines the order of use of the join index in descending order of the number of calculated results (step S24).
  • the record search unit 136 searches for records in the target column using the join index in the order specified in the search plan (step S25). At that time, the record search unit 136 excludes the records of the external table searched by the already used join index from the search target, and performs a search using the subsequent join index. Then, the record search unit 136 identifies an external table in which records equal to or greater than a predetermined threshold value are searched for as a join table (step S26).
  • the input unit 132 accepts the input of the join index
  • the search plan generation unit 134 calculates the number of results for each join index, and the order of use of the join index is in descending order of the calculated number of results.
  • the record search unit 136 searches for the records of the target column using the join index in the order specified in the search plan, and identifies the external table in which the records of the predetermined threshold value or more are searched as the join table.
  • the record search unit 136 excludes the records of the external table searched by the already used join index from the search target, and performs a search using the subsequent join index. Therefore, the cost for specifying the table that can be joined to the target column can be reduced.
  • the join table specifying system 100 of the present embodiment since the search space can be pruned by using the join index of different similarity functions, the data that can be joined to the base data from the external table group can be obtained at high speed and with high accuracy. It becomes possible to extract.
  • FIG. 7 is a block diagram showing a configuration example of an embodiment of the correlation table specifying system according to the present invention.
  • the correlation table specifying system 200 of the present embodiment is a system for specifying an external table (hereinafter, referred to as a correlation table) including a column having a correlation with the target column.
  • the column having a correlation with the target column means a column of an external table group that is assumed to have some correlation with the data contained in the target column, and more specifically, it is included in the target column. It means a column of an external table group containing data groups having similar characteristics or distributions. This correlation also includes both positive and negative correlations.
  • the target column is a column containing the sales data included in the base table.
  • the correlated column corresponds to a column containing an explanatory variable used as a feature amount that can affect the objective variable. Therefore, by specifying the correlation table, more effective explanatory variables (features) can be added to the prediction model for realizing the task of "predicting sales", and as a result, the performance of the task can be improved. It will be possible to improve.
  • FIG. 8 is an explanatory diagram showing an example of a process for extracting correlated columns.
  • the reason for extracting the correlated columns is to determine which table in the external table group is useful for improving the performance of the task. For example, suppose that each table is joined via the "trade name" column of the base table BT2 illustrated in FIG. 8 and the "drink name" column of the external table FT2. In this case, it is determined whether the columns other than the join column of the outer table FT2 (“attribute 1” column, “attribute 2” column) are useful for improving the performance of the task of predicting the column “sales” included in the base table. It is desirable to be able to do it.
  • the table that contributes to the performance improvement of the task is defined as follows. That is, one external table can be joined to the base table via the number of records equal to or more than the threshold value Tc , and the column of the base table corresponding to the objective variable is included in the column associated with the join.
  • the external table is used as a table that contributes to the improvement of task performance.
  • the main purpose is to identify a column that has a correlation with the target column, and it does not necessarily matter whether or not the combination with the base table is possible.
  • the threshold value Tp of this correlation value may be referred to as a correlation value threshold value.
  • the correlation table specifying system 200 illustrated in FIG. 7 includes an external table storage device 10, a correlation index construction device 210, a correlation index storage unit 220, a correlation table search device 230, and a correlation table storage unit 240. ..
  • the external table storage device 10 stores a plurality of external tables (that is, a group of external tables) as in the first embodiment.
  • the external table storage device 10 is realized by, for example, a storage server, a magnetic disk, or the like.
  • the correlation table specifying system 200 includes the external table storage device 10
  • the correlation index construction device 210 may acquire an external table group from a storage (not shown) or the like connected through a communication line.
  • the correlation table specifying system 200 does not have to include the external table storage device 10.
  • the correlation index construction device 210 is a device that constructs an index of an external table group (hereinafter referred to as a correlation index) used for searching a column that has a correlation with the target column.
  • the correlation index construction device 210 includes a non-joined column candidate extraction unit 212 and a correlation index generation unit 214.
  • the non-joined column candidate extraction unit 212 extracts as a non-joined column candidate a column containing a record that is not expected to be a join key with another table from each external table included in the outer table group.
  • the non-bonded column candidate extraction unit 212 extracts columns other than the combined column candidates extracted by the combined column candidate extraction unit 112 of the first embodiment as non-bonded column candidates.
  • the non-joined column candidate extraction unit 212 estimates the types of all the columns in the outer table group, and the column of the estimated type is another column. It may be determined whether or not it can be combined with the column of the table, and when it is determined that it cannot be combined, that column may be extracted as a non-joinable column candidate.
  • the non-bonded column candidate extraction unit 212 is similar to the combined column candidate extraction unit 112 of the first embodiment, for example, when the estimated column type indicates a predetermined meaning or an attribute of a predetermined character. In the case of (for example, numerical type), the column may be extracted as a non-joined column candidate.
  • the non-binding column candidate extraction unit 212 determines that the data of the column meaning "age” or "grade” is unlikely to be the binding key, and determines that the column 2 and the column 3 are selected. It may be extracted as a non-bonded column candidate. Further, for example, since a numerical column or a column having a small unique value is unlikely to be a join key, the join column candidate extraction unit 112 is a numerical column 2 or a sentence alphanumeric type in which it is assumed that the unique value is small. Column 3 may be extracted as a non-bonded column candidate.
  • Correlation index generation unit 214 generates a correlation index of external table groups. Specifically, the correlation index generation unit 214 generates a join index of the extracted non-join column candidates. By limiting the index target to non-joined column candidates in this way, the cost required to generate the correlated index and the size of the generated correlated index can be reduced.
  • the correlation index generation unit 214 generates, as a correlation index, an index from which each column of the external table can be searched for a column whose correlation value is equal to or greater than a predetermined correlation value threshold value.
  • a predetermined correlation value threshold value As described above, in the present embodiment, in order to specify a table including a column composed of correlated data, it is specified at high speed a table including a column whose correlation value with the column of the base table is equal to or higher than the threshold value Tp . Target. However, it is difficult to build an index that calculates the correlation value.
  • the correlation index generation unit 214 first generates a feature vector indicating the features of each column.
  • the feature vectors of the two columns are X and Y.
  • the correlation index generation unit 214 calculates a vector (hereinafter referred to as a standardized vector) (X', Y') obtained by standardizing the generated feature vector.
  • the correlation index generation unit 214 defines a function for calculating the correlation value based on the distance between the standardized vectors. That is, it can be said that this process converts the calculation of the correlation value into the calculation based on the distance.
  • the function for calculating the correlation value is corr (X', Y'), and the function for calculating the distance is d (X', Y').
  • d (X', Y') is a function for calculating the Euclidean distance
  • the correlation index generation unit 214 exemplifies the correlation value below, for example, as described in Non-Patent Document 1. It may be calculated as in Equation 1.
  • the correlation index generation unit 214 defines a function that calculates the correlation value using the distance, and the correlation value calculated by the distance from the feature vector of the target column using the defined function is the correlation value. Generate a correlation index to search for columns above the threshold. Further, according to this definition, the correlation index generation unit 214 may convert the correlation value threshold value T p and define the threshold value T d as shown in the following equation 2. That is, Is. In the following description, the threshold value T d determined based on the correlation value threshold value T p may be referred to as a distance threshold value.
  • the correlation index generation unit 214 may use columns calculated with a threshold distance T d or less as correlated columns. By making it possible to calculate the correlation value based on the Euclidean distance in this way, for example, a known method (method of generating an index according to the similarity function) as described in the first embodiment is used. Therefore, it becomes possible to generate an index that can search for records having a correlation value equal to or higher than a predetermined threshold value.
  • the method of calculating the correlation value based on the Euclidean distance was explained.
  • the method of calculating the correlation value is not limited to the method based on the Euclidean distance.
  • the method for calculating the correlation value is arbitrary as long as it is a method that can generate an index that can search for records having a correlation value equal to or higher than a predetermined threshold value.
  • the correlation index generation unit 214 generates a correlation index based on the standardized vector (X', Y'). By generating such a correlation index, it becomes possible to quickly search the external table group for a column whose distance from the target column is smaller than the threshold value Td .
  • a distance index In order to further improve the search speed, it is possible to generate a distance index.
  • the columns to join with the outer tables are unknown in advance, so using a distance index cannot solve this problem. Therefore, in the present embodiment, a correlation index is created so that the amount of data in the columns to be compared can be reduced and the calculation cost required for the search can be reduced.
  • the correlation index generation unit 214 extracts predetermined elements in ascending order of the elements of the standardized vector (X', Y'), and constructs a correlation index based on the extracted elements.
  • the method for constructing the correlation index is the same as the method for generating the join index in the first embodiment.
  • the correlation index generation unit 214 may generate the correlation index of the Euclidean distance search shown above based on the extracted elements, for example.
  • the number of extracted elements is referred to as size
  • the vector extracted from the feature vector (standardized vector) in ascending order of the elements of a predetermined size is referred to as a size-specific vector.
  • a correlation index generated based on a size-based vector is referred to as a size-based correlation index. That is, the correlation index generation unit 214 generates a size-based vector obtained by extracting elements of a predetermined size from the standardized vector elements in ascending order, and generates a size-based correlation index from the generated size-based vector.
  • the method of generating the size-based correlation index from the size-based vector is the same as the method of creating an index that can search columns whose distance is equal to or greater than a predetermined threshold value.
  • the size-based correlation index generated in this way is an index in which columns whose correlation value indicating the degree of correlation between columns is equal to or higher than the correlation value threshold Tp can be searched from an external table, and the elements of the feature vector of each column can be searched. This is an index generated for each size from the size-specific vectors extracted from the elements of the predetermined size in ascending order.
  • the size-based correlation index is an index for extracting columns whose distance from the size-based vector is within the distance threshold T d determined based on the correlation value threshold T p .
  • the correlation index generation unit 214 may extract a predetermined number of elements from the standardized vector, or may determine the number (size) of the elements to be extracted based on the distribution of the number of elements in each column. For example, the correlation index generation unit 214 may determine the maximum value of the number of elements, the minimum value of the number of elements, and the average value of the number of elements as sizes. Further, the correlation index generation unit 214 may generate one correlation index for each size, or may generate a plurality of correlation indexes.
  • the correlation index generation unit 214 generates a correlation index having a maximum value of 6 elements, a correlation index having a minimum number of elements of 2, and a correlation index having an average value of 4. You may.
  • the correlation index generation unit 214 may generate correlation indexes of three types of sizes illustrated below.
  • -Correlation index of size 2 A [1,2], B [0,3]
  • -Correlation index of size 4 A [1,2,3,4], B [0,3,4,5]
  • -Correlation index of size 6 A [1,2,3,4,5,7], B [0,3,4,5,7,9]
  • the correlation index generation unit 214 stores the generated correlation index in the correlation index storage unit 220. Further, the correlation index generation unit 214 stores the generated size-specific correlation index in the correlation index storage unit 220.
  • the non-joined column candidate extraction unit 212 and the correlation index generation unit 214 are realized by a computer processor that operates according to a program (correlation index generation program).
  • a program correlation index generation program
  • the program is stored in a storage unit (not shown) included in the correlation index construction device 210, and the processor reads the program and operates as the unjoined column candidate extraction unit 212 and the correlation index generation unit 214 according to the program. You may. Further, the function of the correlation index construction device 210 may be provided in the SaaS format.
  • the correlation index storage unit 220 stores the correlation index and the correlation index by size. In the present embodiment, the case where the correlation index storage unit 220 stores the correlation index and the correlation index by size generated by the correlation index construction device 210 will be described, but the correlation index storage unit 220 is another device (FIG. The correlation index generated by (not shown) and the correlation index by size may be stored.
  • the correlation table search device 230 searches the external table group for a table including columns that are correlated with the target column (that is, referred to as the target column) in the base table by using the correlation index.
  • the correlation table search device 230 includes an input unit 232, an index identification unit 234, a candidate column search unit 236, and a correlation table output unit 238.
  • the input unit 232 accepts the input of the target column for searching the columns of the external table group having a correlation among the columns included in the base table. Further, the input unit 232 reads the correlation index stored in the correlation index storage unit 220. The input unit 232 may read the correlation index from a storage device (not shown) other than the correlation index storage unit 220.
  • the index specifying unit 234 identifies the correlation index used for the search. Specifically, the index specifying unit 234 specifies the correlation index used for the search based on the threshold value T c of the number of record pairs determined to be joinable when the base table and the external table are joined.
  • the value of the threshold value T c is predetermined by the user or the like.
  • the index specifying unit 234 may decide to use a join index having the same size as the value of the threshold T c for the search. If a join index having the same size as the value of the threshold value T c does not exist, the index specifying unit 234 uses the join index having the largest size among the join indexes having a size smaller than the value of the threshold value T c for the search. May be decided. This is because it is guaranteed that all the data of the candidate columns can be searched by using the join index having a size smaller than the value of the threshold value T c .
  • the index specifying unit 234 determines that the correlation index having a size of 3 or less is used for the search.
  • the threshold T c When the threshold T c is given, the size of the column to be joined to the outer table is always T c or more. Therefore, the lower limit of the distance can be calculated by listing the elements of the column including the objective variable and the elements of the feature vector in ascending order. Then, by comparing the lower limit of the distance with the threshold value T d , it can be determined whether or not to exclude the feature vector (that is, each column of the external table).
  • FIG. 9 is an explanatory diagram showing an example of a process for determining whether or not to exclude the feature vector. It is assumed that the data in the "sales" column of the base table BT3 illustrated in FIG. 9 and the data in the "attribute 1" column and the “attribute 2" column of the external table FT3 are standardized data, respectively. That is, each surrounded by the broken line illustrated in FIG. 9 corresponds to the feature vector.
  • the feature vector of the "sales” column used as the objective variable is [1,3,5]
  • the feature vector of the "attribute 1" column is [2,1,5], "attribute”.
  • the candidate column search unit 236 searches the external table group using the correlation index determined for the target column, and searches for candidate columns that are considered to have a correlation. Specifically, the candidate column search unit 236 searches the external table group for columns having or equal to a predetermined threshold value (here, the distance threshold value T d ) or more by using the correlation index. Since a method of searching a column having a predetermined threshold value (here, the distance threshold value T d ) or more by using a correlation index (for example, a correlation index of Euclidean distance search) is widely known, a detailed description thereof will be given here. Is omitted.
  • the candidate column search unit 236 calculates the correlation value between the target column and the searched column, and specifies a column having or equal to a predetermined threshold value (here, the threshold value T p of the correlation value) or more as the candidate column. In this way, the candidate column search unit 236 searches for columns using the correlation index and calculates the correlation values for the searched columns, so that the correlation values can be calculated only for the columns that are expected to be more correlated. , It becomes possible to reduce the calculation cost.
  • a predetermined threshold value here, the threshold value T p of the correlation value
  • Correlation table output unit 238 outputs an external table including candidate columns as a correlation table.
  • the correlation table output unit 238 may store the correlation table in the correlation table storage unit 240.
  • FIG. 10 is an explanatory diagram showing an example of a process for specifying a correlation table.
  • the index specifying unit 234 determines that the correlation index of size 2 below the threshold value is used for the search.
  • the candidate column search unit 236 searches for columns containing highly correlated features using a size 2 correlation index. In the example shown in FIG. 10, it is shown that the column 2 of the table A is searched as the column containing the feature amount a, and the column 5 of the table C is searched as the column containing the feature amount b. Then, the candidate column search unit 236 calculates the correlation value between the target column and the candidate column again, and the correlation table output unit 238 outputs the table A and the table C including the candidate column.
  • the correlation table storage unit 240 stores a correlation table including candidate columns.
  • the correlation table storage unit 240 may store the correlated column (that is, the candidate column) in association with the target column of the base table.
  • the correlation table storage unit 240 may store the “sales” column, which is a target column that can be the objective variable of the task, in association with the candidate column in the correlation table.
  • the correlation table storage unit 240 may store the correlation table output by the correlation table search device 230, or may store the correlation table generated by another device (not shown).
  • the correlation index storage unit 220 and the correlation table storage unit 240 are realized by, for example, a magnetic disk or the like.
  • the input unit 232, the index identification unit 234, the candidate column search unit 236, and the correlation table output unit 238 are realized by a computer processor that operates according to a program (correlation table search program).
  • the program is stored in a storage unit (not shown) included in the correlation table search device 230, the processor reads the program, and according to the program, the input unit 232, the index identification unit 234, the candidate column search unit 236, and the correlation. It may operate as a table output unit 238.
  • FIG. 11 is a flowchart showing an operation example of the correlation index construction device 210 of the present embodiment.
  • the non-joining column candidate extraction unit 212 extracts the non-joining column candidate from the outer table (step S31).
  • the correlation index generation unit 214 generates a feature vector showing the features of the non-joined column candidate (step S32), and generates a standardized vector obtained by standardizing the generated feature vector (step S33).
  • the correlation index generation unit 214 generates a size-based vector obtained by extracting elements of a predetermined size from the generated standardized vector elements in ascending order (step S34), and size-based from the generated size-based vector. Generate a correlation index (step S35). Then, the correlation index generation unit 214 stores the generated size-specific correlation index in the correlation index storage unit 220 (step S36).
  • FIG. 12 is a flowchart showing an operation example of the correlation table search device 230 of the present embodiment.
  • the input unit 232 receives the input of the target column among the columns included in the base table (step S41).
  • the index specifying unit 234 identifies the size-based correlation index used for the search from the size-based correlation indexes stored in the correlation index storage unit 220 based on the threshold value Tc of the number of pairs of records (step S42).
  • the input unit 232 accepts the input of the specified size-based correlation index (step S43).
  • the candidate column search unit 236 searches the external table for columns having a distance threshold value or less with respect to the target column using the specified size-specific correlation index (step S44).
  • the candidate column search unit 236 calculates the correlation value between the searched column and the target column (step S45), and searches for a column whose correlation value is equal to or greater than the correlation value threshold value as a candidate column (step S46).
  • the correlation table output unit 238 outputs an external table including the candidate column as a correlation table (step S47).
  • the input unit 232 receives the input of the size-based correlation index
  • the index specifying unit 234 searches the size-based correlation index based on the threshold value Tc of the number of record pairs. Identify the size-based correlation index used for.
  • the candidate column search unit 236 searches the external table for columns whose distance from the target column is equal to or less than the distance threshold T d by using the specified size-specific correlation index, and the correlation between the searched column and the target column. A correlation value indicating the degree of is calculated, and a column whose correlation value is equal to or greater than the correlation value threshold T p is searched as a candidate column. Then, the correlation table output unit 238 outputs an external table including the candidate columns. Therefore, it is possible to quickly identify a table containing data that is correlated with the data of the target column.
  • the correlation index generation unit 214 generates the correlation index.
  • the correlation index generation unit 214 generates a feature vector showing the features of each column of the external table, generates a standardized vector obtained by standardizing the generated feature vector, and has a predetermined size from the elements of the generated standardized vector.
  • a size-based vector is generated by extracting the elements of the above in ascending order, and a size-based correlation index is generated from the generated size-based vector.
  • the correlation index generation unit 214 and the function for calculating the correlation value are defined by using the distance from the size-based vector, and are calculated by the distance between the feature vector of the target column and the size-based vector using the defined function.
  • the correlation table search device 230 can quickly identify a table containing data that is correlated with the data of the target column. do.
  • FIG. 13 is a block diagram showing a configuration example of an embodiment of the table integration system according to the present invention.
  • the table integration system 300 of the present embodiment is a system that integrates columns having a correlation with the target columns included in the base table.
  • integrating an external table into a base table means that, as shown in the first embodiment, an external table that can be joined (that is, a join table) is joined to the base table to create a new table. The process to be generated is shown.
  • an external table that can be joined that is, a join table
  • the target column is a column composed of data targeted in the assumed task, and is, for example, a column including the objective variable of the prediction model.
  • the task means a prediction (estimation) process such as regression and classification performed using the selected feature amount, and specifically, is given by a function showing a prediction model or the like.
  • the column having a correlation with the target column means a column of an external table group that is assumed to have some correlation with the data contained in the target column, as in the second embodiment. More specifically, it means a column of an external table group including data groups having similar characteristics or distributions of the data groups included in the target column. This correlation also includes both positive and negative correlations.
  • the correlated column corresponds to the column including the explanatory variable used as the feature amount that can affect the objective variable as in the second embodiment, such a column is integrated into the base table. As a result, it becomes possible to improve the performance of the task.
  • the table integrated system 300 illustrated in FIG. 13 includes a table storage device 20, an integrated table generation device 310, and an integrated table storage unit 330.
  • the table storage device 20 stores a plurality of external tables (that is, external table groups).
  • the table storage device 20 of the present embodiment stores an external table group extracted from a predetermined viewpoint, unlike the external table storage device 10 of the first embodiment and the second embodiment.
  • the table storage device 20 includes a join table storage unit 21 and a correlation table storage unit 22.
  • the join table storage unit 21 stores the join table shown in the first embodiment (that is, an outer table that can be joined to the base table). It is assumed that the join table storage unit 21 stores the joinable base table in association with the join table.
  • the join table storage unit 21 may store the join table specified by the join table specifying system 100 of the first embodiment, and stores the join table generated by another system (not shown) or the like. May be.
  • the correlation table storage unit 22 stores the correlation table shown in the second embodiment (that is, an external table including a column that correlates with the target column).
  • the correlation table storage unit 22 may store the correlation table specified by the correlation table specifying system 200 of the second embodiment, and stores the correlation table generated by another system (not shown) or the like. You may be.
  • the correlation table storage unit 22 associates a column (that is, a candidate column) containing data having a correlation with the data of the target column with the target column of the base table. I remember it. Further, the correlation table storage unit 22 of the present embodiment may store information that can identify the column of the table that correlates with the target column, and does not necessarily have to store the data of each column. That is, the correlation table storage unit 22 may store the candidate column shown in the second embodiment (that is, the column whose correlation value with the target column is equal to or higher than a predetermined threshold value Tp ).
  • join table is generated in advance by the method shown in the first embodiment and stored in the join table storage unit 21. Further, it is assumed that the candidate column is also generated in advance by the method shown in the second embodiment and stored in the correlation table storage unit 22.
  • the integrated table generation device 310 is an device that generates an integrated table by combining a base table and a candidate column.
  • the integrated table generation device 310 includes an input unit 312, a table coupling unit 314, a feature amount processing unit 316, a feature amount selection unit 318, and an integrated table output unit 320.
  • the input unit 312 accepts the input of the base table and the designation of the target column. Further, the input unit 312 accepts the input of the join table and the candidate column. The input unit 312 may accept the designation of the objective variable of the task. In this case, the input unit 312 may specify the target column of the corresponding base table from the designated objective variable.
  • the input unit 312 When the input unit 312 receives the input of the base table and the designation of the target column, the input unit 312 acquires the input join table of the base table from the join table storage unit 21 and the candidate column of the target column in the correlation table storage unit 22. May be obtained from.
  • the table join unit 314 joins the column corresponding to the candidate column in the join table to the base table. Specifically, the table join unit 314 extracts a candidate column from the join table and joins the extracted candidate column of the join table to the base table.
  • the table join method is arbitrary.
  • the table join unit 314 may join the join table to the base table by any method such as Left-join or out-join.
  • the table after joining may be referred to as an integrated table.
  • FIG. 14 is an explanatory diagram showing an example of a process of joining tables.
  • a base table BT4 that includes a “sales” column consisting of data used as an objective variable as a target column, and an outer table (join table) FT4 that can be joined.
  • the external table FT4 is a correlation table including an "attribute 1" column and an "attribute 2" column, which are columns (correlation columns) that are considered to have a correlation with the target column.
  • the "drink name" column corresponds to the binding column candidate
  • the "attribute 1 to n" column corresponds to the non-binding column candidate.
  • the table join unit 314 extracts the "attribute 1" column and the "attribute 2" column from the external table FT4. In other words, the table join unit 314 deletes columns (non-join column candidates) other than the "drink name” column, the "attribute 1" column, and the “attribute 2" column from the outer table FT4. Then, the table joining unit 314 joins the "product name” column and the "drink name” column of the base table BT4, and joins the "attribute 1" column and the "attribute 2" column to generate the integrated table IT. ..
  • the feature amount processing unit 316 generates a feature amount for the data of the target column from the data of the column included in the integrated table.
  • the feature amount processing unit 316 can use various methods for generating the feature amount. For example, it is assumed that a missing value exists in the integrated table due to the join method (for example, led-join) or the state of the original table. In this case, the feature amount processing unit 316 may compensate for the missing value by estimating the data distribution by a known method or by using external knowledge information or the like.
  • the feature quantity processing unit 316 may generate one or more column sets (clusters) by clustering each selected column based on the distribution of data in each column.
  • the method of clustering the columns is also arbitrary, and the feature amount processing unit 316 may cluster the columns by using, for example, the method described in Non-Patent Document 2.
  • the feature amount processing unit 316 may generate a feature amount for each clustered column set (cluster).
  • the method for generating the feature amount is also arbitrary, and the feature amount may be generated based on a predetermined method.
  • the feature quantity processing unit 316 may, for example, combine all the columns included in one cluster to generate a feature quantity.
  • the feature quantity processing unit 316 selects one column from one cluster by a predetermined method (for example, selecting the column having the largest number of unique values). You may generate a quantity.
  • the feature amount selection unit 318 selects a feature amount that improves the performance of a predetermined task based on the data included in the combined candidate columns or the feature amount generated from the candidate columns.
  • improving the performance of a task means improving some evaluation index related to the task, and more specifically, improving the prediction accuracy and the like.
  • the evaluation index used at the time of selection is arbitrary and predetermined.
  • the feature amount selection unit 318 selects a feature amount that improves the performance of the task of predicting the data of the target column.
  • each record in the integrated table corresponds to the training data.
  • the mode of the learning model is arbitrary, and examples thereof include a linear model and a random forest.
  • the feature amount selection unit 318 selects one or more feature amounts from the generated feature amounts by a predetermined method.
  • the method of selecting the feature amount is not limited, and the feature amount selection unit 318 may select the feature amount by using an arbitrary feature amount selection technique. Then, the feature amount selection unit 318 learns the model using the selected feature amount.
  • the feature amount selection unit 318 evaluates the learning model based on a predetermined evaluation method, and selects a feature amount that improves the calculated evaluation index.
  • the evaluation method is not particularly limited, and the feature amount selection unit 318 may evaluate the learning model based on, for example, the f1 score of cross-validation.
  • the feature amount selection unit 318 may generate a plurality of learning models of the same embodiment and aggregate the evaluation results of each of the plurality of learning models (average, weighted average, etc.), and may have different embodiments (for example, linear model, random). A plurality of learning models of forest) may be generated, and the evaluation results of each of the plurality of learning models may be aggregated.
  • the feature amount selection unit 318 selects one or more feature amounts having a higher evaluation result. For example, when the feature amount is selected and learned by the forward method (Step Forward), the feature amount selection unit 318 may select the combination of the feature amount having the highest evaluation index.
  • the method for selecting the feature amount is not limited to this method, and any method may be used.
  • the integrated table output unit 320 outputs an integrated table in which the column including the selected feature amount and the base table are combined. In other words, the integrated table output unit 320 outputs an integrated table that retains the column from which the selected feature amount is generated.
  • the integrated table output unit 320 may store the integrated table in the integrated table storage unit 330.
  • the integrated table storage unit 330 stores a table (that is, an integrated table) in which columns of an external table are joined to a base table.
  • the join table storage unit 21, the correlation table storage unit 22, and the integrated table storage unit 330 are realized by, for example, a magnetic disk or the like.
  • the input unit 312, the table connection unit 314, the feature amount processing unit 316, the feature amount selection unit 318, and the integrated table output unit 320 are realized by a computer processor that operates according to a program (integrated table generation program). ..
  • the program is stored in a storage unit (not shown) included in the integrated table generator 310, the processor reads the program, and according to the program, the input unit 312, the table connection unit 314, the feature amount processing unit 316, and the feature. It may operate as a quantity selection unit 318 and an integrated table output unit 320. Further, the function of the integrated table generation device 310 may be provided in the SaaS format.
  • FIG. 15 is a flowchart showing an operation example of the integrated table generation device 310 of the present embodiment.
  • the input unit 312 accepts the inputs of the join table, the candidate column, and the base table (step S51).
  • the table join unit 314 joins the column corresponding to the candidate column in the join table to the base table (step S52).
  • the feature amount processing unit 316 may generate a feature amount from the data contained in the combined columns.
  • the feature amount selection unit 318 selects a feature amount that improves the performance of the task based on the data included in the combined candidate columns (step S53). Then, the integrated table output unit 320 outputs an integrated table in which the column including the selected feature amount and the base table are combined (step S54).
  • the input unit 312 accepts the input of the join table, the candidate column, and the base table
  • the table join unit 314 uses the column corresponding to the candidate column of the join table as the base table.
  • the feature amount selection unit 318 selects a feature amount that improves the performance of the task based on the data included in the combined candidate columns
  • the integrated table output unit 320 sets the column containing the selected feature amount. Output the integrated table that is joined with the base table. Therefore, the correlated data can be efficiently integrated into the table including the target column.
  • Embodiment 4 Next, a fourth embodiment of the present invention will be described.
  • a method of combining the systems from the first embodiment to the third embodiment to efficiently integrate correlated data into a table including a target column will be described.
  • FIG. 16 is a block diagram showing a configuration example of an embodiment of the external data utilization system according to the present invention.
  • the external data utilization system 400 illustrated in FIG. 16 includes the join table specifying system 100 in the first embodiment, the correlation table specifying system 200 in the second embodiment, and the table integration system 300 in the third embodiment. It is equipped with.
  • the join table specifying system 100 stores the join table for the base table generated based on the process shown in the first embodiment in the join table storage unit 140. Further, the correlation table specifying system 200 stores the correlation table and the candidate column generated based on the process shown in the second embodiment in the correlation table storage unit 240. Then, the table integration system 300 acquires the join table for the base table from the join table storage unit 140 based on the process shown in the third embodiment, and the correlation table (candidate column) for the target column from the correlation table storage unit 240. Is acquired, an integrated table is generated, and the integrated table storage unit 330 stores the integrated table.
  • join table generation process by the join table specifying system 100 and the correlation table generation process by the correlation table specifying system 200 can be performed independently and independently at any timing. Therefore, it is possible to efficiently integrate data that is correlated with the base table at the required timing.
  • FIG. 17 is a block diagram showing an outline of the table integration system according to the present invention.
  • the table integration system 700 (for example, table integration system 300) of the present invention is a table that can be joined to a base table including a target column which is a column consisting of data (for example, an objective variable) targeted by a supposed task.
  • Join table storage means 710 (for example, join table storage unit 21) for storing tables and candidate column storage means 720 (for example, correlation table storage) for storing candidate columns that are columns containing data that correlates with the data of the target column.
  • a unit 22) and an integrated table generation device 730 (for example, an integrated table generation device 310) that generates an integrated table in which a base table and a candidate column are combined are provided.
  • the join table generation device 730 joins the join table, the candidate column, and the input means 731 (for example, the input unit 312) that accepts the input of the base table, and the column corresponding to the candidate column of the join table to the base table.
  • Means 732 eg, table join unit 314) and feature quantity selection means 733 (eg, feature quantity selection unit 318) that selects feature quantities that improve task performance based on the data contained in the combined candidate columns.
  • an integrated table output means 734 (for example, an integrated table output unit 320) that outputs an integrated table in which a column containing the selected feature amount and the base table are combined.
  • the join table of the base table is acquired from the join table storage means 710, and the candidate column of the target column is acquired from the candidate column storage means 720. good.
  • the feature amount selection means 733 may select a feature amount that improves the performance of the task of predicting the data of the target column.
  • the feature amount selection means 733 learned a model using the data of the designated target column as the objective variable and the data of the candidate column as the feature amount, and learned based on a predetermined evaluation method.
  • the model may be evaluated and feature quantities that improve the evaluation index calculated by the evaluation method may be selected.
  • the join table generation device 730 may include a feature amount processing means (for example, a feature amount processing unit 316) that generates a feature amount from the data of each selected column. Then, the feature amount processing means clusters each selected column and generates a feature amount for each clustered column set, and the feature amount selection means 733 is generated with the data contained in the combined candidate columns. A feature amount that improves the performance of the task may be selected from the feature amounts.
  • a feature amount processing means for example, a feature amount processing unit 316
  • FIG. 18 is a schematic block diagram showing a configuration of a computer according to at least one embodiment.
  • the computer 1000 includes a processor 1001, a main storage device 1002, an auxiliary storage device 1003, and an interface 1004.
  • the above-mentioned table integration system is implemented in the computer 1000.
  • the operation of each of the above-mentioned processing units is stored in the auxiliary storage device 1003 in the form of a program (table integration program).
  • the processor 1001 reads a program from the auxiliary storage device 1003, expands it to the main storage device 1002, and executes the above processing according to the program.
  • the auxiliary storage device 1003 is an example of a non-temporary tangible medium.
  • non-temporary tangible media include magnetic disks, magneto-optical disks, CD-ROMs (Compact Disc Read-only memory), DVD-ROMs (Read-only memory), which are connected via interface 1004. Examples include semiconductor memory.
  • the program may be for realizing a part of the above-mentioned functions. Further, the program may be a so-called difference file (difference program) that realizes the above-mentioned function in combination with another program already stored in the auxiliary storage device 1003.
  • difference file difference program
  • a join table storage means for storing a join table, which is a table that can be joined to a base table including a target column, which is a column consisting of data targeted in the assumed task.
  • a candidate column storage means for storing a candidate column, which is a column containing data having a correlation with the data of the target column, It is provided with an integrated table generator that generates an integrated table in which the base table and the candidate column are combined.
  • the join table generator is An input means that accepts input from the join table, the candidate column, and the base table.
  • a join means for joining the column corresponding to the candidate column in the join table to the base table
  • a feature amount selection means for selecting a feature amount that improves the performance of the task based on the data contained in the combined candidate columns
  • a feature amount selection means for selecting a feature amount that improves the performance of the task based on the data contained in the combined candidate columns.
  • a table integration system characterized by including an integrated table output means that outputs an integrated table that combines a column containing selected features and a base table.
  • the input means accepts the input of the base table and the designation of the target column, acquires the join table of the base table from the join table storage means, and acquires the candidate column of the target column from the candidate column storage means.
  • Appendix 3 The table integration system according to Appendix 1 or Appendix 2, wherein the feature amount selection means selects a feature amount that improves the performance of a task that predicts data in a target column.
  • the feature quantity selection means learns a model using the data of the designated target column as the objective variable and the data of the candidate column as the feature quantity, and trains the model based on a predetermined evaluation method.
  • the table integration system according to any one of Supplementary note 1 to Supplementary note 3, which evaluates and selects a feature amount for improving the evaluation index calculated by the evaluation method.
  • the join table generation device includes a feature amount processing means for generating a feature amount from the data of each selected column.
  • the feature quantity processing means clusters each selected column and generates a feature quantity for each clustered column set.
  • the feature amount selection means is described in any one of Appendix 1 to Appendix 4 in which a feature amount that improves the performance of a task is selected from the data contained in the combined candidate columns and the generated feature amount. Table integration system.
  • a table integration method characterized by outputting an integrated table that joins a column containing selected features and a base table.
  • Appendix 7 The table according to Appendix 6 that accepts the input of the base table and the designation of the target column, acquires the join table of the base table from the join table storage means, and acquires the candidate column of the target column from the candidate column storage means. Integration method.
  • the first input process that accepts the input of the join table from the join table storage means that stores the join table that is a table that can be joined to the base table that includes the target column that is the column consisting of the target data in the assumed task.
  • a second input process for receiving input of the candidate column from the candidate column storage means for storing the candidate column which is a column containing data having a correlation with the data of the target column.
  • Third input process that accepts the input of the base table, Join processing, which joins the column corresponding to the candidate column in the join table to the base table.
  • a feature amount selection process for selecting a feature amount that improves the performance of the task based on the data contained in the combined candidate columns, and a feature amount selection process.
  • a table for executing integrated table output processing that outputs an integrated table that combines a column containing the selected features and a base table.
  • a program storage medium that stores the integrated program.
  • the first input process that accepts the input of the join table from the join table storage means that stores the join table that is a table that can be joined to the base table that includes the target column that is the column consisting of the target data in the assumed task.
  • a second input process for receiving input of the candidate column from the candidate column storage means for storing the candidate column which is a column containing data having a correlation with the data of the target column.
  • Third input process that accepts the input of the base table, Join processing, which joins the column corresponding to the candidate column in the join table to the base table.
  • a feature amount selection process for selecting a feature amount that improves the performance of the task based on the data contained in the combined candidate columns, and a feature amount selection process.
  • a table integration program for executing integrated table output processing that outputs an integrated table that combines a column containing the selected features and the base table.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

入力手段731は、結合テーブル、候補カラム、および、ベーステーブルの入力を受け付ける。結合手段732は、結合テーブルのうち候補カラムに対応するカラムをベーステーブルに結合する。特徴量選択手段733は、結合された候補カラムに含まれるデータに基づいて、タスクの性能を向上させる特徴量を選択する。統合テーブル出力手段734は、選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する。

Description

テーブル統合システム、方法およびプログラム
 本発明は、相関のあるデータを含むテーブルを統合するテーブル統合システム、テーブル統合方法およびテーブル統合プログラムに関する。
 近年、自身が保有するデータだけでなく、外部データやオープンデータ、データレークなど(以下、外部テーブル群と記す。)を利用したデータ分析が行われている。例えば、ある店舗の商品の売上を予測する場合に、店舗の情報だけでなく、例えば、気象条件や顧客の移動履歴、他社商品に関する動向など、要因となり得るデータを統合することで、予測精度を向上させることが可能になる。そのため、ベースとなる情報にデータを統合する方法が各種提案されている。
 例えば、特許文献1には、二つのテーブルを結合する方法が記載されている。特許文献1に記載された方法では、二つのテーブル間の結合可能な行ペアを決定し、決定された結合可能な行ペアから変換モデルを生成する。そして、生成された変換モデルに基づいて第一のテーブルの列を変換し、変換された第一のテーブルを第二のテーブルと結合する。
 また、非特許文献1には、同じエンティティを参照するレコードを発見するエンティティマッチングについて記載されている。非特許文献1に記載された方法では、レコードの類似度を定量化する類似度関数と閾値に冗長性があるという観察結果に基づき、複数存在する類似度関数の中から、最適な類似度関数を選択する。
米国特許出願公開第2018/0157706号明細書
J.Wang, et al., "Entity Matching: How Similar Is Similar", Proceedings of the VLDB Endowment, pp.622-633, July 2011. Jonas Mueller, Alex Smola, "Recognizing Variables from their Data via Deep Embeddings of Distributions", 2019 IEEE International Conference on Data Mining (ICDM), Nov. 2019.
 一方、外部テーブル群の各テーブルには、必ずしも統一の表記ルールやスキーマが存在するとは限らない。例えば、ある飲料について、ある店舗が保有するテーブルでは、「商品名」というカラムで管理され、ある分析会社が保有するテーブルでは、「ドリンク名」というカラムで管理されている場合が考えられる。また、飲料の名称についても、飲料の名称単体を保持するレコードもあれば、容量まで含めた飲料の名称を保持しているレコードもあると考えられる。
 非特許文献1に記載された方法では、類似度関数を用いて結合するレコード間の類似度を算出する。そして、ある類似度関数により算出された値が閾値Tより大きい場合に、二つのレコードを結合可能と判定する。また、非特許文献1に記載された方法では、結合を試みる二つのカラムで結合可能と判定されるレコードのペアの数が閾値T以上の場合に、二つのカラムを結合可能と判定する。
 ここで、結合元のテーブル(以下、ベーステーブルと記すこともある。)に対し、外部テーブル群から結合可能なテーブルを検索する場合を考える。上述する類似度関数を用いた単純な方法では、ベーステーブルの各カラムの各レコードに対し、外部テーブル群に含まれるすべてのテーブルのカラムにおけるすべてのレコードの類似度を類似度関数で算出することになる。外部テーブル群に含まれるすべてのレコード数をN,ベーステーブルの全てのレコード数をMとすると、計算量はO(NM)である。さらに、複数の類似度関数を用いて類似度を計算する場合、類似度関数の数をFとすると、計算量はO(NMF)である。
 例えば、非特許文献1に記載された方法を単純に用いた場合、外部テーブル群のレコード数Nが巨大なため、結合可能なテーブルを特定するための計算量が膨大になってしまうという問題がある。
 さらに、仮にテーブルの結合可否が判断できたとしても、結合したテーブルに含まれているデータが必ずしも価値創造を促すようなデータであるとは限らない。
 そこで、本発明は、対象とするカラムを含むテーブルに対し、相関のあるデータを効率的に統合できるテーブル統合システム、テーブル統合方法およびテーブル統合プログラムを提供することを目的とする。
 本発明によるテーブル統合システムは、想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段と、対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段と、ベーステーブルと候補カラムとを結合した統合テーブルを生成する統合テーブル生成装置とを備え、結合テーブル生成装置が、結合テーブル、候補カラム、および、ベーステーブルの入力を受け付ける入力手段と、結合テーブルのうち候補カラムに対応するカラムをベーステーブルに結合する結合手段と、結合された候補カラムに含まれるデータに基づいて、タスクの性能を向上させる特徴量を選択する特徴量選択手段と、選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する統合テーブル出力手段とを含むことを特徴とする。
 本発明によるテーブル統合方法は、想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段から、その結合テーブルの入力を受け付け、対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段からその候補カラムの入力を受け付け、ベーステーブルの入力を受け付け、結合テーブルのうち候補カラムに対応するカラムをベーステーブルに結合し、結合された候補カラムに含まれるデータに基づいて、タスクの性能を向上させる特徴量を選択し、選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力することを特徴とする。
 本発明によるテーブル統合プログラムは、コンピュータに、想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段から、その結合テーブルの入力を受け付ける第一入力処理、対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段からその候補カラムの入力を受け付ける第二入力処理、ベーステーブルの入力を受け付ける第三入力処理、結合テーブルのうち候補カラムに対応するカラムをベーステーブルに結合する結合処理、結合された候補カラムに含まれるデータに基づいて、タスクの性能を向上させる特徴量を選択する特徴量選択処理、および、選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する統合テーブル出力処理を実行させることを特徴とする。
 本発明によれば、対象とするカラムを含むテーブルに対し、相関のあるデータを効率的に統合できる。
本発明による結合テーブル特定システムの一実施形態の構成例を示すブロック図である。 結合可能なテーブルを判定する処理の例を示す説明図である。 カラムの型を推定する処理の例を示す説明図である。 対象カラムの結合テーブルを特定する処理の例を示す説明図である。 結合索引構築装置の動作例を示すフローチャートである。 結合テーブル探索装置の動作例を示すフローチャートである。 本発明による相関テーブル特定システムの一実施形態の構成例を示すブロック図である。 相関のあるカラムを抽出する処理の例を示す説明図である。 特徴ベクトルを除外するか否か判断する処理の例を示す説明図である。 相関テーブルを特定する処理の例を示す説明図である。 相関索引構築装置の動作例を示すフローチャートである。 相関テーブル探索装置の動作例を示すフローチャートである。 本発明によるテーブル統合システムの一実施形態の構成例を示すブロック図である。 テーブルを結合する処理の例を示す説明図である。 統合テーブル生成装置の動作例を示すフローチャートである。 本発明による外部データ活用システムの一実施形態の構成例を示すブロック図である。 本発明によるテーブル統合システムの概要を示すブロック図である。 少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
 以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
 まず、本発明の第一の実施形態を説明する。第一の実施形態では、対象とするカラムに結合可能なテーブルを特定するためのコストを低減させることを目標とする。図1は、本発明による結合テーブル特定システムの一実施形態の構成例を示すブロック図である。本実施形態の結合テーブル特定システム100は、結合元のテーブル(すなわち、ベーステーブル)に結合可能な外部テーブル(以下、結合テーブルと記す。)を特定するシステムである。より具体的には、結合テーブルは、ベーステーブルに含まれるいずれかのカラムと結合可能なカラムを含むテーブルである。
 また、本実施形態の結合テーブル特定システム100は、レコード間の類似度を算出する関数(以下、類似度関数と記す。)を用いて、レコードが結合可能か否か判断する。類似度関数として、例えば、Jaccard類似度や編集距離、Word2vecに基づいて変換された文字列のユークリッド距離、などが挙げられる。なお、本実施形態で用いられる類似度関数は、これらの3種類の類似度関数に限定されない。
 上記に例示するような類似度関数は、それぞれ観点が異なることから、最適な類似度関数を一意に決定できるわけではない。例えば、「ラムネ」と「ラムネ250ml」との類似度は、編集距離の場合0.375と算出され、Jaccard類似度の場合0.5と算出される。一方、「チャンプオレンジ」と「チヤンプオレンジ」との類似度は、編集距離の場合0.875と算出され、Jaccard類似度の場合0.5と算出される。このように、比較するレコードの内容に応じて類似度の値が変わってしまう。
 例えば、非特許文献1に記載された方法では、各類似度関数によって算出された類似度のうち、一番大きい類似度が閾値Tより大きい場合、二つのレコードが結合可能と定義される。図2は、結合可能なテーブルを判定する処理の例を示す説明図である。図2に示では、外部テーブルFT1をベーステーブルBT1に結合可能か判定する例を示す。ここでは、レコードを結合可能か否かの判定に用いられる類似度の閾値T=0.5とし、カラムを結合可能か否かの判定に用いられるレコードペアの閾値T=2とする。
 例えば、図2に例示する「ラムネ」と「ラムネ250ml」について、Jaccard類似度が0.5、編集距離が0.37、Word2vec変換後の類似度が0.8と算出されたとする。この場合、一番大きい類似度が0.8と算出されており、これは、閾値Tよりも大きいため、二つのレコードが結合可能と判定される。
 また、図2に示す例において、「商品名」と「ドリンク名」の二つのカラムが結合可能か否か判定される。ここで、「ラムネ」と「ラムネ250ml」、および、「チャンプオレンジ」と「CHAMPオレンジ」がそれぞれ結合可能と判定され、「マイ・コーラ」がどのレコードとも結合不可と判定されたとする。この場合、結合可能なレコードペアの数が2であることから、閾値T以上であるため、二つのカラムが結合可能と判定される。
 しかし、このような判定処理をすべてのレコードに対して単純に行った場合、上述するように、O(NMF)の計算量が必要になってしまう。そこで、本実施形態では、事前に外部テーブル群の索引を構築することで、検索時の計算量(コスト)を低減させる。
 図1に例示する結合テーブル特定システム100は、外部テーブル記憶装置10と、結合索引構築装置110と、結合索引記憶部120と、結合テーブル探索装置130と、結合テーブル記憶部140とを備えている。
 外部テーブル記憶装置10は、ベーステーブルに結合させる候補となる複数の外部テーブル(すなわち、外部テーブル群)を記憶する。外部テーブルの一例が、図2に例示する外部テーブルFT1である。外部テーブル記憶装置10は、例えば、ストレージサーバ、磁気ディスク等により実現される。
 なお、本実施形態では、結合テーブル特定システム100が外部テーブル記憶装置10を備えている場合について説明する。ただし、結合索引構築装置110は、通信回線を通じて接続されるストレージ(図示せず)等から外部テーブル群を取得してもよい。この場合、結合テーブル特定システム100は、外部テーブル記憶装置10を備えていなくてもよい。
 結合索引構築装置110は、ベーステーブルとの結合に用いられる外部テーブル群の索引(以下、結合索引と記す。)を構築する装置である。結合索引構築装置110は、結合カラム候補抽出部112と、結合索引生成部114とを含む。
 結合カラム候補抽出部112は、外部テーブル群に含まれる各外部テーブルのうち、他のテーブルとの結合キーになり得るレコードを含むカラムを、結合カラム候補として抽出する。結合カラム候補抽出部112は、例えば、外部テーブル群の全てのカラムの型を推定し、推定された型のカラムが他のテーブルのカラムと結合可能か否か判定する。なお、ここでのカラムの型とは、文字の属性を示す「文字列型」や「数値型」のような型であってもよく、カラムが表わしている概念を示すものであってもよい。
 カラムの型を推定する方法は任意であり、既知の方法が用いられれば良い。結合カラム候補抽出部112は、例えば、特許文献2に記載された方法を用いて、各カラムの型(カラムの意味)を推定してもよい。そして、結合カラム候補抽出部112は、例えば、推定されたカラムの型が、予め定めた意味を示す場合や所定の文字の属性(例えば、文字列型)である場合に、そのカラムを結合カラム候補として抽出してもよい。
 図3は、カラムの型を推定する処理の例を示す説明図である。例えば、図3に例示するレコードに基づいて、文字列を含むカラム1が「名前」を意味するカラム、数字を含むカラム2が「年齢」を意味するカラム、英数字を含むカラム3が「グレード」を意味するカラムと推定されたとする。
 この場合、結合カラム候補抽出部112は、「名前」を意味するカラムのデータが結合キーになる可能性が高いと判断し、カラム1を結合カラム候補として抽出してもよい。また、例えば、数値型のカラムやユニークの値が少ないカラムは結合キーになりにくく、文字列型のカラムが結合キーになる可能性が高いことから、結合カラム候補抽出部112は、ユニークの値が多くなり得る文字列型のカラム1を結合カラム候補として抽出してもよい。
 結合索引生成部114は、外部テーブル群の結合索引を生成する。具体的には、結合索引生成部114は、抽出された結合カラム候補の結合索引を生成する。このように、索引の対象を結合カラム候補に限定することで、結合索引の生成に要するコストや、生成される結合索引のサイズを低減できる。
 本実施形態では、結合索引生成部114は、結合索引として、類似度関数により算出される類似度が予め定めた閾値以上のレコードを検索可能な索引を、類似度関数ごとに作成する。結合索引生成部114は、類似度関数に応じた任意の方法により結合索引を生成すればよい。
 なお、類似度関数に応じた索引の生成方法は、各種知られている。例えば、Jaccard類似度を算出する類似度関数に応じた索引として、minHash-LSH(Locality-sensitive Hashing)が知られている。また、ユークリッド類似度を算出する類似度関数に応じた索引として、メモリ上にベクトルの集合(行列)を生成しておく方法や、ライブラリ(FAISS)が知られている。他にも、完全一致か否か算出する類似度関数に応じた索引として、転置インデックスが知られている。これらの索引の生成法は広く知られているため、ここでは、詳細な説明は省略する。
 このように生成された結合索引を探索に用いることで、理論上、計算量をO(MFlog(N))に低減でき、高速に検索を行うことが可能になる。結合索引生成部114は、生成した結合索引を、結合索引記憶部120に記憶させる。
 結合カラム候補抽出部112と、結合索引生成部114とは、プログラム(結合索引生成プログラム)に従って動作するコンピュータのプロセッサ(例えば、CPU(Central Processing Unit )、GPU(Graphics Processing Unit))によって実現される。
 例えば、プログラムは、結合索引構築装置110が備える記憶部(図示せず)に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、結合カラム候補抽出部112および結合索引生成部114として動作してもよい。また、結合索引構築装置110の機能がSaaS(Software as a Service )形式で提供されてもよい。
 また、結合カラム候補抽出部112と、結合索引生成部114とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
 また、結合索引構築装置110の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
 結合索引記憶部120は、類似度関数に応じた結合索引を記憶する。本実施形態では、結合索引記憶部120が結合索引構築装置110により生成された結合索引を記憶する場合について説明しているが、結合索引記憶部120は、他の装置(図示せず)により生成された結合索引を記憶していてもよい。
 結合テーブル探索装置130は、結合索引を利用して、ベーステーブルで対象とするカラム(以下、対象カラムと記す。)に結合可能なテーブルを、外部テーブル群から探索する。結合テーブル探索装置130は、入力部132と、検索プラン生成部134と、レコード検索部136と、結合テーブル出力部138とを含む。
 入力部132は、ベーステーブルに含まれるカラムのうち、外部テーブルとの結合を試みる対象カラムの入力を受け付ける。また、入力部132は、結合索引記憶部120に記憶された結合索引を読み取る。なお、入力部132は、結合索引記憶部120以外の他の記憶装置(図示せず)から、結合索引を読み取ってもよい。
 検索プラン生成部134は、各類似度関数の結合索引を用いた検索の実行前に、対象とするカラムのレコードを分析して、検索時の結合索引の利用順を規定した検索プランを生成する。
 まず、検索プラン生成部134は、各類似度関数の結合索引を用いて対象カラムのレコードを検索した場合に推定される結合可能なレコードペアの数(以下、結果数と記す。)を、結合索引ごとに算出する。類似度関数の結合索引を用いた結果数の推定方法として、例えば、カーネル密度推定(Kernel Density Estimation )や、カーディナリティ推定(Cardinality Estimation)などが挙げられる。検索プラン生成部134は、これら既知の推定方法を利用して、結合索引ごとに結果数を推定すればよい。
 次に、検索プラン生成部134は、算出された結果数の多い順に結合索引の利用順を規定した検索プランを生成する。このように利用順を規定する理由は、以下の通りである。結果数が多いと推定された結合索引を利用して検索を行うことで、結合可能な多くのレコードペアを発見できる可能性が高い。そして、すでに結合可能と判定された外部テーブル群のレコードについては、後続の結合索引で検索対象から除外できるため、検索処理を省略できる。その結果、検索によるコストをさらに低減できる。
 例えば、二種類の類似度関数の結合索引A,Bが存在するとする。すなわち、類似度関数の数F=2である。ここで、外部テーブル群に含まれるすべてのレコード数N=10とし、ベーステーブルの全てのレコード数M=1とする。そして、ある対象カラムのレコードに対する結合索引Aを用いた場合の結果数が2であり、結合索引Bを用いた場合の結果数が5であったとする。
 結合索引A、結合索引Bの順に検索を行った場合、計算量はlog(10)+log(8)である。一方、結合索引B、結合索引Aの順に検索を行った場合、計算量はlog(10)+log(5)である。このように、結果数の結果数の多い順に結合索引の利用順を規定することで、計算量を削減できる。
 レコード検索部136は、検索プランで規定された順に結合索引を用いて、対象カラムのレコードの検索を行う。その際、レコード検索部136は、すでに用いた結合索引により検索された外部テーブルのレコードを検索対象から除外して、後続の結合索引を用いた検索を行う。そして、レコード検索部136は、すべての結合索引を用いて対象カラムのレコードの検索を行った結果、予め定めた閾値T以上のレコードが検索された外部テーブルを結合テーブルと特定する。
 図4は、対象カラムの結合テーブルを特定する処理の例を示す説明図である。まず、入力部132が対象カラムのレコードR1を入力すると、検索プラン生成部134は、検索プランを生成する。図4に示す例では、検索プランが「順番1:完全一致結合索引、順番2:Jaccard類似度結合索引、順番3:ユークリッド距離結合索引」と生成されたとする。
 次に、レコード検索部136は、検索プランで規定された順に結合索引を用いて、対象カラムのレコードR1の検索を行う。ここでは、レコード検索部136は、まず、完全一致結合索引を用いて、対象カラムのレコードR1の検索を行う。これにより、外部テーブル群で一致するレコード群(以下、第一のレコード群)が検索される。次に、レコード検索部136は、Jaccard類似度結合索引を用いて、第一のレコード群を対象外にして、対象カラムのレコードR1の検索を行う。これにより、外部テーブル群で一致するレコード群(以下、第二のレコード群)がさらに検索される。そして、レコード検索部136は、ユークリッド距離結合索引を用いて、第一のレコード群および第二のレコード群を対象外にして、対象カラムのレコードR1の検索を行う。これにより、外部テーブル群で一致するレコード群(以下、第三のレコード群)がさらに検索される。
 この検索により、例えば、図4に例示するように、“ラムネ250ml”というレコードがテーブルAのカラム1から検索され、“HATAラムネ”というレコードがテーブルCのカラム3から検索されたとする。レコード検索部136は、“ラムネ250ml”というレコードを含むテーブルAがカラム1で結合可能なテーブル(結合テーブル)と特定し、“HATAラムネ”というレコードを含むテーブルCがカラム3で結合可能なテーブル(結合テーブル)と特定する。
 結合テーブル出力部138は、探索された結合テーブルを出力する。結合テーブル出力部138は、探索された結合テーブルを結合テーブル記憶部140に記憶させてもよい。
 結合テーブル記憶部140は、ベーステーブルで対象とするカラムに結合可能なテーブルを記憶する。結合テーブル記憶部140は、例えば、結合可能なベーステーブルを結合テーブルに対応付けて記憶してもよい。なお、結合テーブル記憶部140は、結合テーブル探索装置130が探索した結合テーブルを記憶してもよく、他の装置(図示せず)により生成された結合テーブルを記憶してもよい。
 結合索引記憶部120および結合テーブル記憶部140は、例えば、磁気ディスク等により実現される。
 入力部132と、検索プラン生成部134と、レコード検索部136と、結合テーブル出力部138とは、プログラム(結合テーブル探索プログラム)に従って動作するコンピュータのプロセッサによって実現される。
 例えば、プログラムは、結合テーブル探索装置130が備える記憶部(図示せず)に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、入力部132、検索プラン生成部134、レコード検索部136および結合テーブル出力部138として動作してもよい。また、結合テーブル探索装置130の機能がSaaS形式で提供されてもよい。
 次に、本実施形態の結合テーブル特定システム100の動作を説明する。図5は、本実施形態の結合索引構築装置110の動作例を示すフローチャートである。結合カラム候補抽出部112は、外部テーブル群に含まれる各テーブルから結合カラム候補を抽出する(ステップS11)。結合索引生成部114は、抽出された結合カラム候補の結合索引を類似度関数ごとに生成する(ステップS12)。そして、結合索引生成部114は、生成した結合索引を、結合索引記憶部120に記憶させる(ステップS13)。
 図6は、本実施形態の結合テーブル探索装置130の動作例を示すフローチャートである。入力部132は、結合索引記憶部120から結合索引の入力を受け付ける(ステップS21)。また、入力部132は、ベーステーブルに含まれるカラムのうち、対象カラムの入力を受け付ける(ステップS22)。
 検索プラン生成部134は、対象カラムのレコードに対して推定される結合索引ごとの結果数を算出する(ステップS23)。そして、検索プラン生成部134は、算出された結果数の多い順に結合索引の利用順を規定した検索プランを生成する(ステップS24)。
 レコード検索部136は、検索プランで規定された順に結合索引を用いて、対象カラムのレコードの検索を行う(ステップS25)。その際、レコード検索部136は、すでに用いた結合索引により検索された外部テーブルのレコードを検索対象から除外して、後続の結合索引を用いた検索を行う。そして、レコード検索部136は、予め定めた閾値以上のレコードが検索された外部テーブルを結合テーブルと特定する(ステップS26)。
 以上のように、本実施形態では、入力部132が結合索引の入力を受け付け、検索プラン生成部134が結合索引ごとに結果数を算出し、算出された結果数の多い順に結合索引の利用順を規定した検索プランを生成する。また、レコード検索部136が、検索プランで規定された順に結合索引を用いて対象カラムのレコードの検索を行い、予め定めた閾値以上のレコードが検索された外部テーブルを結合テーブルと特定する。その際、レコード検索部136は、すでに用いた結合索引により検索された外部テーブルのレコードを検索対象から除外して、後続の結合索引を用いた検索を行う。よって、対象とするカラムに結合可能なテーブルを特定するためのコストを低減できる。
 すなわち、本実施形態の結合テーブル特定システム100では、異なる類似度関数の結合索引を用いることで探索空間を枝刈りできるため、外部テーブル群から、ベースデータと結合可能なデータを高速かつ高精度で抽出することが可能になる。
実施形態2.
 次に、本発明の第二の実施形態を説明する。第二の実施形態では、対象カラムのデータに相関のあるデータから成るカラムを含むテーブルを高速に特定することを目標とする。図7は、本発明による相関テーブル特定システムの一実施形態の構成例を示すブロック図である。本実施形態の相関テーブル特定システム200は、対象カラムと相関のあるカラムを含む外部テーブル(以下、相関テーブルと記す。)を特定するシステムである。
 本実施形態で、対象カラムと相関のあるカラムとは、対象カラムに含まれるデータと何らかの相関関係を有すると想定される外部テーブル群のカラムを意味し、より具体的には、対象カラムに含まれるデータ群の特徴または分布が類似するデータ群を含む外部テーブル群のカラムを意味する。また、この相関には、正の相関および負の相関の何れも含む。
 例えば、「売上を予測する」というタスクが存在するとする。このとき、対象カラムはベーステーブルに含まれる売上データを含むカラムになる。そして、売上を目的変数とするような予測モデルが存在する場合、相関のあるカラムとは、その目的変数に影響を与え得る特徴量として用いられる説明変数を含むカラムに対応する。そのため、相関テーブルを特定することで、「売上を予測する」というタスクを実現するための予測モデルに、より効果的な説明変数(特徴量)を加えることができるため、結果としてタスクの性能を向上させることが可能になる。
 図8は、相関のあるカラムを抽出する処理の例を示す説明図である。相関のあるカラムを抽出する理由として、外部テーブル群の中で、どのテーブルがタスクの性能向上に役立つか判断することが挙げられる。例えば、仮に、図8に例示するベーステーブルBT2の「商品名」カラムと外部テーブルFT2の「ドリンク名」カラムとを介して各テーブルを結合させたとする。この場合に、外部テーブルFT2の結合カラム以外のカラム(「属性1」カラム、「属性2」カラム)が、ベーステーブルに含まれるカラム「売上」を予測する、というタスクの性能向上に役立つか判断できることが望ましい。
 また、本実施形態では、タスクの性能向上に寄与するテーブルを以下のように定義する。すなわち、ある一つの外部テーブルがベーステーブルと閾値T以上の数のレコードを介して結合でき、かつ、その結合によって対応付けられたカラムの中に、目的変数に対応するベーステーブルのカラムとの相関の度合いを示す値(以下、相関値と記す。)が、閾値T以上のカラムが存在するとき、その外部テーブルをタスクの性能向上に寄与するテーブルとする。なお、本実施形態では、主として対象カラムと相関のあるカラムを特定することを目的とし、必ずしも、ベーステーブルとの結合の可否は問わない。また、以下の説明では、この相関値の閾値Tを相関値閾値と記すこともある。
 図7に例示する相関テーブル特定システム200は、外部テーブル記憶装置10と、相関索引構築装置210と、相関索引記憶部220と、相関テーブル探索装置230と、相関テーブル記憶部240とを備えている。
 外部テーブル記憶装置10は、第一の実施形態と同様、複数の外部テーブル(すなわち、外部テーブル群)を記憶する。外部テーブル記憶装置10は、例えば、ストレージサーバ、磁気ディスク等により実現される。
 なお、本実施形態においても、相関テーブル特定システム200が外部テーブル記憶装置10を備えている場合について説明する。ただし、相関索引構築装置210は、通信回線を通じて接続されるストレージ(図示せず)等から外部テーブル群を取得してもよい。この場合、相関テーブル特定システム200は、外部テーブル記憶装置10を備えていなくてもよい。
 相関索引構築装置210は、対象カラムと相関のあるカラムの検索に用いられる外部テーブル群の索引(以下、相関索引と記す。)を構築する装置である。相関索引構築装置210は、非結合カラム候補抽出部212と、相関索引生成部214とを含む。
 非結合カラム候補抽出部212は、外部テーブル群に含まれる各外部テーブルのうち、他のテーブルとの結合キーにはならないと想定されるレコードを含むカラムを、非結合カラム候補として抽出する。言い換えると、非結合カラム候補抽出部212は、第一の実施形態の結合カラム候補抽出部112が抽出する結合カラム候補以外のカラムを、非結合カラム候補として抽出する。
 第一の実施形態の結合カラム候補抽出部112の処理と同様、非結合カラム候補抽出部212は、例えば、外部テーブル群の全てのカラムの型を推定し、推定された型のカラムが他のテーブルのカラムと結合可能か否か判定し、結合可能ではないと判定されたときに、そのカラムを非結合カラム候補として抽出してもよい。このとき、非結合カラム候補抽出部212は、第一の実施形態の結合カラム候補抽出部112と同様、例えば、推定されたカラムの型が、予め定めた意味を示す場合や所定の文字の属性(例えば、数値型)である場合に、そのカラムを非結合カラム候補として抽出してもよい。
 例えば、図3に示す例において、非結合カラム候補抽出部212は、「年齢」や「グレード」を意味するカラムのデータが結合キーになる可能性が低いと判断し、カラム2およびカラム3を非結合カラム候補として抽出してもよい。また、例えば、数値型のカラムやユニークの値が少ないカラムは結合キーになりにくいことから、結合カラム候補抽出部112は、ユニークの値が少ないと想定される数値型のカラム2や文英数字型のカラム3を非結合カラム候補として抽出してもよい。
 相関索引生成部214は、外部テーブル群の相関索引を生成する。具体的には、相関索引生成部214は、抽出された非結合カラム候補の結合索引を生成する。このように、索引の対象を非結合カラム候補に限定することで、相関索引の生成に要するコストや、生成される相関索引のサイズを低減できる。
 本実施形態では、相関索引生成部214は、相関索引として、外部テーブルの各カラムから、相関値が予め定めた相関値閾値以上のカラムを検索可能な索引を生成する。上述するように、本実施形態では、相関のあるデータから成るカラムを含むテーブルを特定するため、ベーステーブルのカラムとの相関値が閾値T以上のカラムを含むテーブルを高速に特定することを目標とする。しかし、相関値の計算を行うような索引を構築することは難しい。
 そこで、相関索引生成部214は、まず、各カラムの特徴を示す特徴ベクトルを生成する。ここでは、二つのカラムの特徴ベクトルを、X,Yとする。さらに、相関索引生成部214は、生成された特徴ベクトルを標準化したベクトル(以下、標準化ベクトルと記す。)(X´,Y´)を算出する。また、相関索引生成部214は、相関値の計算を行う関数を、標準化したベクトル間の距離に基づいて定義する。すなわち、この処理は、相関値の計算を距離に基づく計算に変換していると言える。
 ここで、相関値の計算の行う関数をcorr(X´,Y´)とし、距離の計算を行う関数をd(X´,Y´)とする。このとき、d(X´,Y´)を、ユークリッド距離を算出する関数とした場合、相関索引生成部214は、例えば、非特許文献1に記載されているように、相関値を以下に例示する式1のように算出してもよい。
Figure JPOXMLDOC01-appb-M000001
 このように、相関索引生成部214は、距離を用いて相関値を算出する関数を定義し、定義された関数を用いて、対象カラムの特徴ベクトルとの距離により算出される相関値が相関値閾値以上のカラムを検索する相関索引を生成する。また、この定義に合わせ、相関索引生成部214は、相関値閾値Tを変換し、以下に例示する式2のように閾値Tを定義してもよい。すなわち、
Figure JPOXMLDOC01-appb-M000002
 である。なお、以下の説明では、相関値閾値Tに基づいて定められる閾値Tのことを、距離閾値と記すこともある。
 したがって、相関索引生成部214は、閾値距離T以下と算出されるカラム同士を相関のあるカラムとすればよい。このように、ユークリッド距離に基づいて相関値を計算できるようにすることで、例えば、第一の実施形態で説明したような既知の方法(類似度関数に応じた索引の生成方法)を利用して、予め定めた閾値以上の相関値のレコードを検索できるような索引を生成することが可能になる。
 なお、ここでは、相関値をユークリッド距離に基づいて算出する方法を説明した。ただし、相関値の算出方法は、ユークリッド距離に基づく方法に限定されない。予め定めた閾値以上の相関値のレコードを検索可能な索引を生成できる方法であれば、相関値の算出方法は任意である。
 そして、相関索引生成部214は、標準化ベクトル(X´,Y´)に基づいて相関索引を生成する。このような相関索引を生成することで、外部テーブル群から、対象カラムとの距離が閾値Tより小さいカラムを高速に検索することが可能になる。
 なお、このような相関索引を用いる場合、単純には、対象カラムに対し外部テーブル群の全てのカラムとの距離を算出し、算出した距離を閾値Tと比較する必要がある。外部テーブル群すべてのカラム数をCとすると、計算量はO(C)である。
 さらに検索速度を向上させるため、距離の索引を生成することも考えられる。しかし、外部テーブル群と結合するカラムは、事前には不明であるため、距離の索引を使用することでは、この問題を解決できない。そこで、本実施形態では、比較するカラム内のデータ量を削減して検索に必要な計算コストを低減できるような相関索引を作成する。
 まず、相関索引生成部214は、標準化ベクトル(X´,Y´)の要素の小さい順に所定の要素を抽出し、抽出した要素に基づいて相関索引を構築する。相関索引の構築方法は、第一の実施形態で結合索引を生成する方法と同様である。相関索引生成部214は、例えば、抽出した要素に基づいて、上記に示すユークリッド距離検索の相関索引を生成してもよい。
 以下の説明では、抽出される要素の数をサイズと記し、特徴ベクトル(標準化ベクトル)から所定のサイズの要素が小さい順に抽出されたベクトルをサイズ別ベクトルと記す。また、サイズ別ベクトルに基づいて生成される相関索引のことをサイズ別相関索引と記す。すなわち、相関索引生成部214は、標準化ベクトルの要素から所定のサイズの要素を小さい順に抽出したサイズ別ベクトルを生成し、生成されたサイズ別ベクトルからサイズ別相関索引を生成する。なお、サイズ別ベクトルからサイズ別相関索引を生成する方法は、距離が予め定めた閾値以上のカラムを検索可能な索引を作成する方法と同様である。
 このように生成されるサイズ別相関索引は、カラム間の相関の度合いを示す相関値が相関値閾値T以上のカラムを外部テーブルから検索可能な索引であり、各カラムの特徴ベクトルの要素のうち予め定めたサイズの要素を小さい順に抽出したサイズ別ベクトルからサイズごとに生成される索引である。また、サイズ別相関索引は、サイズ別ベクトルとの距離が相関値閾値Tに基づいて定められる距離閾値T以内のカラムを抽出する索引である。
 相関索引生成部214は、予め定めた数の要素を標準化ベクトルから抽出してもよく、各カラムの要素数の分布に基づいて抽出する要素の数(サイズ)を決定してもよい。相関索引生成部214は、例えば、要素の数の最大値、要素の数の最小値、要素の数の平均値を、それぞれサイズと決定してもよい。また、相関索引生成部214は、サイズ別相関索引を1つ生成してもよく、複数生成してもよい。
 例えば、4つのカラムP1~P4が存在するものとし、P1の要素の数が6、P2の要素の数が5、P3の要素の数が4、P4の要素の数が2であったとする。このとき、相関索引生成部214は、要素の数の最大値6のサイズの相関索引、要素の数の最小値2のサイズの相関索引、および、平均値4のサイズの相関索引を、それぞれ生成してもよい。
 以下、相関索引を生成する方法を、具体例を挙げて説明する。いま、A=[5,1,2,3,4,7]と、B=[0,7,5,3,4,9]の二つのカラム(特徴ベクトル)が存在するものとし、サイズ2、サイズ4およびサイズ6の相関索引を生成するものとする。この時、相関索引生成部214は、以下に例示する3種類のサイズの相関索引を生成してもよい。
-サイズ2の相関索引:A[1,2]、        B[0,3]
-サイズ4の相関索引:A[1,2,3,4]、    B[0,3,4,5]
-サイズ6の相関索引:A[1,2,3,4,5,7]、B[0,3,4,5,7,9]
 また、相関索引生成部214は、対応するサイズの要素が存在する相関索引のみ生成してもよい。例えば、上述する4つのカラムP1~P4について、それぞれ、P1=[0,1,2,3,4,5]、P2=[3,4,5,6,7]、P3=[1,2,3,3]、P4=[0,1]であったとする。このとき、相関索引生成部214は、以下に例示する相関索引を生成してもよい。
 -サイズ2の相関索引:P1[0,1]、P2[3,4]、P3[1,2]、P4[0,1]
 -サイズ4の相関索引:P1[0,1,2,3]、P2[3,4,5,6]、P3[1,2,3,3]
 -サイズ6の相関索引:P1[0,1,2,3,4,5]
 相関索引生成部214は、生成した相関索引を相関索引記憶部220に記憶させる。また、相関索引生成部214は、生成したサイズ別相関索引を相関索引記憶部220に記憶させる。
 非結合カラム候補抽出部212と、相関索引生成部214とは、プログラム(相関索引生成プログラム)に従って動作するコンピュータのプロセッサによって実現される。例えば、プログラムは、相関索引構築装置210が備える記憶部(図示せず)に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、非結合カラム候補抽出部212および相関索引生成部214として動作してもよい。また、相関索引構築装置210の機能がSaaS形式で提供されてもよい。
 相関索引記憶部220は、相関索引、および、サイズ別相関索引を記憶する。本実施形態では、相関索引記憶部220が相関索引構築装置210により生成された相関索引およびサイズ別相関索引を記憶する場合について説明しているが、相関索引記憶部220は、他の装置(図示せず)により生成された相関索引およびサイズ別相関索引を記憶していてもよい。
 相関テーブル探索装置230は、相関索引を利用して、ベーステーブルで対象とするカラム(すなわち、対象カラムと記す。)と相関のあるカラムを含むテーブルを、外部テーブル群から探索する。相関テーブル探索装置230は、入力部232と、索引特定部234と、候補カラム検索部236と、相関テーブル出力部238とを含む。
 入力部232は、ベーステーブルに含まれるカラムのうち、相関がある外部テーブル群のカラムを探索する対象カラムの入力を受け付ける。また、入力部232は、相関索引記憶部220に記憶された相関索引を読み取る。なお、入力部232は、相関索引記憶部220以外の他の記憶装置(図示せず)から、相関索引を読み取ってもよい。
 索引特定部234は、検索に用いる相関索引を特定する。具体的には、索引特定部234は、ベーステーブルと外部テーブルとを結合する際に結合可能と判定されるレコードのペア数の閾値Tに基づいて、検索に用いる相関索引を特定する。なお、閾値Tの値は、ユーザ等により予め定められる。
 索引特定部234は、閾値Tの値と同じサイズの結合索引を検索に用いると決定してもよい。なお、閾値Tの値と同じサイズの結合索引が存在しない場合、索引特定部234は、閾値Tの値よりも小さいサイズの結合索引の中で、最も大きなサイズの結合索引を検索に用いると決定してもよい。閾値Tの値よりも小さいサイズの結合索引を用いることで、候補とするカラムの全てのデータを検索できることが保証されるからである。
 例えば、上述するサイズ2の相関索引、サイズ4の相関索引およびサイズ6の相関索引が存在する状況で、T=3と定められているとする。このとき、索引特定部234は、サイズが3以下のサイズ2の相関索引を検索に用いると決定する。
 このように決定するのは、以下の理由による。閾値Tが与えられた場合、外部テーブルと結合するカラムのサイズは、必ずT以上になる。そのため、目的変数を含むカラムの要素と、特徴ベクトルの要素とを、小さい順に列挙することで、距離の下限を計算することができる。そして、距離の下限を閾値Tと比較することで、特徴ベクトル(すなわち、外部テーブルの各カラム)を除外するか否か判断できる。
 図9は、特徴ベクトルを除外するか否か判断する処理の例を示す説明図である。図9に例示するベーステーブルBT3の「売上」カラムのデータ、および、外部テーブルFT3の「属性1」カラムおよび「属性2」カラムのデータは、それぞれ標準化されたデータであるとする。すなわち、図9に例示する破線で囲まれたそれぞれが、特徴ベクトルに対応する。
 図9に例示するように、目的変数として用いられる「売上」カラムの特徴ベクトルが[1,3,5]であり、「属性1」カラムの特徴ベクトルが[2,1,5]、「属性2」カラムの特徴ベクトルが[9,7,4]であるとする。また、閾値T=2、閾値T=2と定められているとする。
 初期状態では、ベーステーブルBT3の「商品名」カラムと外部テーブルFT3の「ドリンク名」カラムとが結合可能か否かは不明である。言い換えると、ベーステーブルBT3のレコードと、外部テーブルFT3のどのレコードとが結合するか不明である。
 このような状態であっても、「売上」カラムと「属性1」カラムの距離の下限は、値の小さい要素同士で比較することにより、d([1,3],[1,2])=1と算出できる。この値は、閾値T=2より小さいため、相関のあるカラムである可能性がある。よって、「属性1」カラムは、後続の処理を行うべき対象であると判断される。
 一方、「売上」カラムと「属性2」カラムの距離の下限は、値の小さい要素同士で比較することにより、d([1,3],[4,7])=3と算出できる。この値は、閾値T=2より大きいため、他のどの要素で距離を算出しても、その距離はTより小さくなることはない。よって、「属性2」カラムは、相関のないカラムと判断され、後続の処理から除外することが可能になる。
 候補カラム検索部236は、外部テーブル群に対し、対象カラムについて決定された相関索引を用いた検索を行い、相関があると想定される候補のカラムを検索する。具体的には、候補カラム検索部236は、相関索引を用いて予め定めた閾値(ここでは、距離閾値T)以上のカラムを外部テーブル群から検索する。なお、相関索引(例えば、ユークリッド距離検索の相関索引)を用いて予め定めた閾値(ここでは、距離閾値T)以上のカラムを検索する方法は広く知られているため、ここでは詳細な説明は省略する。
 そして、候補カラム検索部236は、対象カラムと、検索されたカラムとの相関値を計算し、予め定めた閾値(ここでは、相関値の閾値T)以上のカラムを候補カラムとして特定する。このように、候補カラム検索部236が相関索引によりカラムを検索し、検索されたカラムについて相関値を計算することで、より相関があると想定されるカラムに限定して相関値を算出できるため、計算コストを削減することが可能になる。
 相関テーブル出力部238は、候補カラムを含む外部テーブルを相関テーブルとして出力する。相関テーブル出力部238は、相関テーブルを相関テーブル記憶部240に記憶させてもよい。
 図10は、相関テーブルを特定する処理の例を示す説明図である。図10に示す例では、ベーステーブルの対象カラムR2が目的変数である「売上」を示すカラムであり、閾値T=3であるとする。この場合、索引特定部234は、閾値以下のサイズ2の相関索引を検索に用いると決定する。
 候補カラム検索部236は、サイズ2の相関索引を用いて、高相関の特徴量を含むカラムを検索する。図10に示す例では、テーブルAのカラム2が特徴量aを含むカラムとして検索され、テーブルCのカラム5が特徴量bを含むカラムとして検索されたことを示す。そして、候補カラム検索部236は、対象カラムと候補カラムとの間で改めて相関値を計算し、相関テーブル出力部238は、候補カラムを含むテーブルAおよびテーブルCを出力する。
 相関テーブル記憶部240は、候補カラムを含む相関テーブルを記憶する。相関テーブル記憶部240は、相関があるカラム(すなわち、候補カラム)を、ベーステーブルの対象カラムと対応付けて記憶してもよい。相関テーブル記憶部240は、例えば、上記に示す例では、タスクの目的変数になり得る対象カラムである「売上」カラムと、相関テーブル内の候補カラムとを対応付けて記憶してもよい。なお、相関テーブル記憶部240は、相関テーブル探索装置230が出力した相関テーブルを記憶してもよく、他の装置(図示せず)により生成された相関テーブルを記憶してもよい。
 相関索引記憶部220および相関テーブル記憶部240は、例えば、磁気ディスク等により実現される。
 入力部232と、索引特定部234と、候補カラム検索部236と、相関テーブル出力部238とは、プログラム(相関テーブル探索プログラム)に従って動作するコンピュータのプロセッサによって実現される。
 例えば、プログラムは、相関テーブル探索装置230が備える記憶部(図示せず)に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、入力部232、索引特定部234、候補カラム検索部236および相関テーブル出力部238として動作してもよい。
 次に、本実施形態の相関テーブル特定システム200の動作を説明する。図11は、本実施形態の相関索引構築装置210の動作例を示すフローチャートである。非結合カラム候補抽出部212は、外部テーブルから非結合カラム候補を抽出する(ステップS31)。相関索引生成部214は、非結合カラム候補の特徴を示す特徴ベクトルを生成し(ステップS32)、生成された特徴ベクトルを標準化した標準化ベクトルを生成する(ステップS33)。
 また、相関索引生成部214は、生成された標準化ベクトルの要素から所定のサイズの要素を小さい順に抽出したサイズ別ベクトルを生成し(ステップS34)、生成されたサイズ別ベクトルからサイズごとにサイズ別相関索引を生成する(ステップS35)。そして、相関索引生成部214は、生成したサイズ別相関索引を相関索引記憶部220に記憶させる(ステップS36)。
 図12は、本実施形態の相関テーブル探索装置230の動作例を示すフローチャートである。入力部232は、ベーステーブルに含まれるカラムのうち、対象カラムの入力を受け付ける(ステップS41)。索引特定部234は、相関索引記憶部220に記憶されたサイズ別相関索引の中から、レコードのペア数の閾値Tに基づいて、検索に用いるサイズ別相関索引を特定する(ステップS42)。入力部232は、特定されたサイズ別相関索引の入力を受け付ける(ステップS43)。
 候補カラム検索部236は、特定されたサイズ別相関索引を用いて、対象カラムに対して距離閾値以下のカラムを外部テーブルから検索する(ステップS44)。候補カラム検索部236は、検索されたカラムと対象カラムとの相関値を計算し(ステップS45)、その相関値が相関値閾値以上のカラムを候補カラムとして検索する(ステップS46)。そして、相関テーブル出力部238は、候補カラムを含む外部テーブルを相関テーブルとして出力する(ステップS47)。
 以上のように、本実施形態では、入力部232がサイズ別相関索引の入力を受け付け、索引特定部234が、サイズ別相関索引の中から、レコードのペア数の閾値Tに基づいて、検索に用いるサイズ別相関索引を特定する。また、候補カラム検索部236が、特定されたサイズ別相関索引を用いて、対象カラムとの距離が距離閾値T以下のカラムを外部テーブルから検索し、検索されたカラムと対象カラムとの相関の度合いを示す相関値を計算し、その相関値が相関値閾値T以上のカラムを候補カラムとして検索する。そして、相関テーブル出力部238が、候補カラムを含む外部テーブルを出力する。よって、対象とするカラムのデータに相関のあるデータを含むテーブルを高速に特定できる。
 また、本実施形態では、相関索引生成部214が相関索引を生成する。その際、相関索引生成部214は、外部テーブルの各カラムの特徴を示す特徴ベクトルを生成し、生成された特徴ベクトルを標準化した標準化ベクトルを生成し、生成された標準化ベクトルの要素から所定のサイズの要素を小さい順に抽出したサイズ別ベクトルを生成し、生成されたサイズ別ベクトルからサイズ別相関索引を生成する。また、相関索引生成部214、相関値を算出する関数をサイズ別ベクトルとの距離を用いて定義し、定義された関数を用いて、対象カラムの特徴ベクトルとサイズ別ベクトルとの距離により算出される相関値が相関値閾値以上である外部テーブルのカラムを検索する相関索引を生成する。このような相関索引(サイズ別相関索引)を予め生成しておくことで、相関テーブル探索装置230が、対象とするカラムのデータに相関のあるデータを含むテーブルを高速に特定することを可能にする。
実施形態3.
 次に、本発明の第三の実施形態を説明する。第三の実施形態では、対象とするカラムを含むテーブルに対し、相関のあるデータを効率的に統合することを目標とする。図13は、本発明によるテーブル統合システムの一実施形態の構成例を示すブロック図である。本実施形態のテーブル統合システム300は、ベーステーブルに含まれる対象カラムと相関のあるカラムを統合するシステムである。
 本実施形態において、ベーステーブルに外部テーブルを統合するとは、第一の実施形態で示すように、ベーステーブルに対して結合可能な外部テーブル(すなわち、結合テーブル)を結合させて、新たなテーブルを生成する処理を示す。
 また、本実施形態において、対象カラムとは、想定するタスクで対象とするデータからなるカラムであり、例えば、予測モデルの目的変数を含むカラムである。また、タスクとは、選択された特徴量を用いて行われる回帰や分類などの予測(推定)処理を意味し、具体的には、予測モデルを示す関数などで与えられる。
 また、本実施形態において、対象カラムと相関のあるカラムとは、第二の実施形態と同様、対象カラムに含まれるデータと何らかの相関関係を有すると想定される外部テーブル群のカラムを意味し、より具体的には、対象カラムに含まれるデータ群の特徴または分布が類似するデータ群を含む外部テーブル群のカラムを意味する。また、この相関には、正の相関および負の相関の何れも含む。
 また、相関のあるカラムとは、第二の実施形態と同様、その目的変数に影響を与え得る特徴量として用いられる説明変数を含むカラムに対応することから、このようなカラムをベーステーブルに統合することで、結果としてタスクの性能を向上させることが可能になる。
 図13に例示するテーブル統合システム300は、テーブル記憶装置20と、統合テーブル生成装置310と、統合テーブル記憶部330とを備えている。
 テーブル記憶装置20は、複数の外部テーブル(すなわち、外部テーブル群)を記憶する。なお、本実施形態のテーブル記憶装置20は、第一の実施形態および第二の実施形態の外部テーブル記憶装置10とは異なり、所定の観点から抽出された外部テーブル群を記憶する。テーブル記憶装置20は、結合テーブル記憶部21と、相関テーブル記憶部22とを含む。
 結合テーブル記憶部21は、第一の実施形態で示す結合テーブル(すなわち、ベーステーブルに結合可能な外部テーブル)を記憶する。なお、結合テーブル記憶部21は、結合可能なベーステーブルを結合テーブルに対応付けて記憶しているものとする。結合テーブル記憶部21は、第一の実施形態の結合テーブル特定システム100により特定された結合テーブルを記憶していてもよく、他のシステム(図示せず)等により生成された結合テーブルを記憶していてもよい。
 相関テーブル記憶部22は、第二の実施形態で示す相関テーブル(すなわち、対象カラムと相関のあるカラムを含む外部テーブル)を記憶する。相関テーブル記憶部22は、第二の実施形態の相関テーブル特定システム200により特定された相関テーブルを記憶していてもよく、他のシステム(図示せず)等により生成された相関テーブルを記憶していてもよい。
 本実施形態では、相関テーブル記憶部22は、第二の実施形態に示すように、対象カラムのデータと相関があるデータを含むカラム(すなわち、候補カラム)を、ベーステーブルの対象カラムと対応付けて記憶しているとする。また、本実施形態の相関テーブル記憶部22は、対象カラムと相関のあるテーブルのカラムが特定できる情報を記憶していればよく、必ずしも各カラムのデータを記憶していなくてもよい。すなわち、相関テーブル記憶部22は、第二の実施形態で示す候補カラム(すなわち、対象カラムとの相関値が、予め定めた閾値T以上のカラム)を記憶していればよい。
 本実施形態では、結合テーブルは、例えば、第一の実施形態で示す方法により予め生成され、結合テーブル記憶部21に記憶されているものとする。また、候補カラムも、例えば、第二の実施形態で示す方法により予め生成され、相関テーブル記憶部22に記憶されているものとする。
 統合テーブル生成装置310は、ベーステーブルと候補カラムとを結合した統合テーブルを生成する装置である。統合テーブル生成装置310は、入力部312と、テーブル結合部314と、特徴量加工部316と、特徴量選択部318と、統合テーブル出力部320とを含む。
 入力部312は、ベーステーブルの入力および対象カラムの指定を受け付ける。また、入力部312は、結合テーブルおよび候補カラムの入力を受け付ける。なお、入力部312は、タスクの目的変数の指定を受け付けてもよい。この場合、入力部312は、指定された目的変数から対応するベーステーブルの対象カラムを特定してもよい。
 また、入力部312は、ベーステーブルの入力および対象カラムの指定を受け付けた場合、入力されたベーステーブルの結合テーブルを結合テーブル記憶部21から取得し、対象カラムの候補カラムを相関テーブル記憶部22から取得してもよい。
 テーブル結合部314は、結合テーブルのうち候補カラムに対応するカラムをベーステーブルに結合する。具体的には、テーブル結合部314は、結合テーブルから候補カラムを抽出し、抽出された結合テーブルの候補カラムをベーステーブルに結合する。
 なお、テーブルの結合方法は任意である。テーブル結合部314は、例えば、Left-joinや、out-joinなど、任意の方法で結合テーブルをベーステーブルに結合すればよい。なお、結合後のテーブルを統合テーブルと記すこともある。
 図14は、テーブルを結合する処理の例を示す説明図である。図14に示す例では、目的変数として用いられるデータからなる「売上」カラムを対象カラムとして含むベーステーブルBT4と、結合可能な外部テーブル(結合テーブル)FT4が存在するものとする。また、外部テーブルFT4は、対象カラムと相関があるとされたカラム(相関カラム)である「属性1」カラムと「属性2」カラムを含む相関テーブルであるとする。なお、外部テーブルFT4において、「ドリンク名」カラムが結合カラム候補であり、「属性1~n」カラムが、非結合カラム候補に対応する。
 テーブル結合部314は、外部テーブルFT4から、「属性1」カラムと「属性2」カラムを抽出する。言い換えると、テーブル結合部314は、外部テーブルFT4から、「ドリンク名」カラム、「属性1」カラムおよび「属性2」カラム以外のカラム(非結合カラム候補)を削除する。そして、テーブル結合部314は、ベーステーブルBT4の「商品名」カラムと「ドリンク名」カラムとを結合し、「属性1」カラムおよび「属性2」カラムを結合して、統合テーブルITを生成する。
 特徴量加工部316は、統合テーブルに含まれるカラムのデータから、対象カラムのデータに対する特徴量を生成する。特徴量加工部316は、特徴量の生成に様々な方法を用いることが可能である。例えば、結合方式(例えば、ledt-join)や元々のテーブルの状態により、統合テーブルに欠損値が存在しているとする。この場合、特徴量加工部316は、既知の方法によりデータ分布を推定したり、外部のナレッジ情報などを利用したりして、欠損値を補ってもよい。
 また、特徴量加工部316は、各カラム内のデータの分布に基づいて、選択された各カラムをクラスタリングすることにより、1以上のカラム集合(クラスタ)を生成してもよい。なお、カラムをクラスタリングする方法も任意であり、特徴量加工部316は、例えば、非特許文献2に記載された方法を用いて、カラムをクラスタリングしてもよい。
 そして、特徴量加工部316は、クラスタ化されたカラム集合(クラスタ)ごとに特徴量を生成してもよい。なお、特徴量の生成方法も任意であり、予め定めた方法に基づいて特徴量が生成されればよい。特徴量加工部316は、例えば、一つのクラスタに含まれるすべてのカラムを結合して特徴量を生成してもよい。他にも、特徴量加工部316は、一つのクラスタの中から予め定めた方法(例えば、ユニークになる値の数が一番多いカラムを選択する、など)により、一つのカラムを選んで特徴量を生成してもよい。
 特徴量選択部318は、結合された候補カラムに含まれるデータ、または、候補カラムから生成された特徴量に基づいて、予め定めたタスクの性能を向上させる特徴量を選択する。ここで、タスクの性能を向上させるとは、タスクに関する何らかの評価指標を向上させることを意味し、より具体的には、予測精度の向上などが挙げられる。選択の際に用いられる評価指標は、任意であり、予め定められる。
 以下、特徴量を選択する具体的方法を説明する。ここでは、学習により商品の売上を予測する学習モデルをタスクとして用いるものとする。この場合、特徴量選択部318は、対象カラムのデータの予測を行うタスクの性能を向上させる特徴量を選択する。
 売上予測を行うタスクの場合、対象カラムに含まれる「売上」のデータが目的変数として用いられ、結合されたテーブルに含まれる各カラムのデータが特徴量(説明変数)として用いられる。すなわち、統合テーブルの各レコードが学習データに対応する。なお、学習モデルの態様は任意であり、例えば、線形モデルやランダムフォレスト、などがあげられる。
 まず、特徴量選択部318は、生成された特徴量の中から、予め定めた方法で1以上の特徴量を選択する。なお、特徴量を選択する方法は限定されず、特徴量選択部318は、任意の特徴量選択(Feature Selection )の技術を用いて特徴量を選択すればよい。そして、特徴量選択部318は、選択された特徴量を用いてモデルを学習する。
 そして、特徴量選択部318は、予め定めた評価方法に基づいて学習モデルを評価し、算出される評価指標を向上させる特徴量を選択する。なお、評価方法も特に限定されず、特徴量選択部318は、例えば、交差検証のf1スコアに基づいて学習モデルを評価してもよい。
 また、特徴量選択部318は、同一態様の学習モデルを複数生成し、複数それぞれの学習モデルの評価結果を集約(平均、重み付け平均等)してもよく、異なる態様(例えば、線形モデル、ランダムフォレスト)の学習モデルを複数生成し、複数それぞれの学習モデルの評価結果を集約してもよい。
 そして、特徴量選択部318は、評価結果のより高い1以上の特徴量を選択する。例えば、特徴量をフォワード方式(Step Forward)により選択して学習した場合、特徴量選択部318は、最も評価指標が高くなった特徴量の組み合わせを選択してもよい。ただし、特徴量の選択方法は、この方法に限定されず、任意の方法が用いられてもよい。
 統合テーブル出力部320は、選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する。言い換えると、統合テーブル出力部320は、選択された特徴量を生成する元になったカラムを残した統合テーブルを出力する。統合テーブル出力部320は、統合テーブルを統合テーブル記憶部330に記憶させてもよい。
 統合テーブル記憶部330は、ベーステーブルに外部テーブルのカラムを結合させたテーブル(すなわち、統合テーブル)を記憶する。
 結合テーブル記憶部21、相関テーブル記憶部22および統合テーブル記憶部330は、例えば、磁気ディスク等により実現される。
 入力部312と、テーブル結合部314と、特徴量加工部316と、特徴量選択部318と、統合テーブル出力部320とは、プログラム(統合テーブル生成プログラム)に従って動作するコンピュータのプロセッサによって実現される。
 例えば、プログラムは、統合テーブル生成装置310が備える記憶部(図示せず)に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、入力部312、テーブル結合部314、特徴量加工部316、特徴量選択部318および統合テーブル出力部320として動作してもよい。また、統合テーブル生成装置310の機能がSaaS形式で提供されてもよい。
 次に、本実施形態のテーブル統合システム300の動作を説明する。図15は、本実施形態の統合テーブル生成装置310の動作例を示すフローチャートである。入力部312は、結合テーブル、候補カラム、および、ベーステーブルの入力を受け付ける(ステップS51)。テーブル結合部314は、結合テーブルのうち候補カラムに対応するカラムをベーステーブルに結合する(ステップS52)。なお、特徴量加工部316が、結合したカラムに含まれるデータから特徴量を生成してもよい。
 特徴量選択部318は、結合された候補カラムに含まれるデータに基づいて、タスクの性能を向上させる特徴量を選択する(ステップS53)。そして、統合テーブル出力部320は、選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する(ステップS54)。
 以上のように、本実施形態では、入力部312が、結合テーブル、候補カラム、および、ベーステーブルの入力を受け付け、テーブル結合部314が、結合テーブルのうち候補カラムに対応するカラムをベーステーブルに結合する。そして、特徴量選択部318が、結合された候補カラムに含まれるデータに基づいて、タスクの性能を向上させる特徴量を選択し、統合テーブル出力部320が、選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する。よって、対象とするカラムを含むテーブルに対し、相関のあるデータを効率的に統合することができる。
実施形態4.
 次に、本発明の第四の実施形態を説明する。第四の実施形態では、第一の実施形態から第三の実施形態までのシステムを組み合わせて、対象とするカラムを含むテーブルに対し、相関のあるデータを効率的に統合する方法を説明する。
 図16は、本発明による外部データ活用システムの一実施形態の構成例を示すブロック図である。図16に例示する外部データ活用システム400は、第一の実施形態における結合テーブル特定システム100と、第二の実施形態のおける相関テーブル特定システム200と、第三の実施形態におけるテーブル統合システム300とを備えている。
 結合テーブル特定システム100は、第一の実施形態で示す処理に基づいて生成したベーステーブルに対する結合テーブルを結合テーブル記憶部140に記憶させる。また、相関テーブル特定システム200は、第二の実施形態で示す処理に基づいて生成した相関テーブルおよび候補カラムを相関テーブル記憶部240に記憶させる。そして、テーブル統合システム300は、第三の実施形態で示す処理に基づいて、結合テーブル記憶部140からベーステーブルに対する結合テーブルを取得し、相関テーブル記憶部240から対象カラムに対する相関テーブル(候補カラム)を取得して、統合テーブルを生成し、統合テーブル記憶部330に記憶させる。
 結合テーブル特定システム100による結合テーブルの生成処理と、相関テーブル特定システム200による相関テーブルの生成処理は、別個独立に任意のタイミングで行うことが可能である。そのため、必要なタイミングで、ベーステーブルに対して相関のあるデータを効率的に統合することが可能になる。
 次に、本発明の概要を説明する。図17は、本発明によるテーブル統合システムの概要を示すブロック図である。本発明のテーブル統合システム700(例えば、テーブル統合システム300)は、想定するタスクで対象とするデータ(例えば、目的変数)からなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段710(例えば、結合テーブル記憶部21)と、対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段720(例えば、相関テーブル記憶部22)と、ベーステーブルと候補カラムとを結合した統合テーブルを生成する統合テーブル生成装置730(例えば、統合テーブル生成装置310)とを備えている。
 結合テーブル生成装置730は、結合テーブル、候補カラム、および、ベーステーブルの入力を受け付ける入力手段731(例えば、入力部312)と、結合テーブルのうち候補カラムに対応するカラムをベーステーブルに結合する結合手段732(例えば、テーブル結合部314)と、結合された候補カラムに含まれるデータに基づいて、タスクの性能を向上させる特徴量を選択する特徴量選択手段733(例えば、特徴量選択部318)と、選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する統合テーブル出力手段734(例えば、統合テーブル出力部320)とを含む。
 そのような構成により、対象とするカラムを含むテーブルに対し、相関のあるデータを効率的に統合できる。
 また、入力手段731は、ベーステーブルの入力および対象カラムの指定を受け付け、ベーステーブルの結合テーブルを結合テーブル記憶手段710から取得し、対象カラムの候補カラムを候補カラム記憶手段720から取得してもよい。
 また、特徴量選択手段733は、対象カラムのデータの予測を行うタスクの性能を向上させる特徴量を選択してもよい。
 具体的には、特徴量選択手段733は、指定された対象カラムのデータを目的変数とし、候補カラムのデータを特徴量とするモデルを学習し、予め定められた評価方法に基づいて学習されたモデルを評価し、評価方法により算出される評価指標を向上させる特徴量を選択してもよい。
 また、結合テーブル生成装置730は、選択された各カラムのデータから特徴量を生成する特徴量加工手段(例えば、特徴量加工部316)を含んでいてもよい。そして、特徴量加工手段は、選択された各カラムをクラスタリングし、クラスタ化されたカラム集合ごとに特徴量を生成し、特徴量選択手段733は、結合された候補カラムに含まれるデータおよび生成された特徴量の中から、タスクの性能を向上させる特徴量を選択してもよい。
 図18は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ1000は、プロセッサ1001、主記憶装置1002、補助記憶装置1003、インタフェース1004を備える。
 上述のテーブル統合システムは、コンピュータ1000に実装される。そして、上述した各処理部の動作は、プログラム(テーブル統合プログラム)の形式で補助記憶装置1003に記憶されている。プロセッサ1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、当該プログラムに従って上記処理を実行する。
 なお、少なくとも1つの実施形態において、補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read-only memory )、DVD-ROM(Read-only memory)、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000が当該プログラムを主記憶装置1002に展開し、上記処理を実行してもよい。
 また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段と、
 前記対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段と、
 前記ベーステーブルと前記候補カラムとを結合した統合テーブルを生成する統合テーブル生成装置とを備え、
 前記結合テーブル生成装置は、
 前記結合テーブル、前記候補カラム、および、前記ベーステーブルの入力を受け付ける入力手段と、
 前記結合テーブルのうち前記候補カラムに対応するカラムを前記ベーステーブルに結合する結合手段と、
 結合された前記候補カラムに含まれるデータに基づいて、前記タスクの性能を向上させる特徴量を選択する特徴量選択手段と、
 選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する統合テーブル出力手段とを含む
 ことを特徴とするテーブル統合システム。
(付記2)入力手段は、ベーステーブルの入力および対象カラムの指定を受け付け、前記ベーステーブルの結合テーブルを結合テーブル記憶手段から取得し、前記対象カラムの候補カラムを候補カラム記憶手段から取得する
 付記1記載のテーブル統合システム。
(付記3)特徴量選択手段は、対象カラムのデータの予測を行うタスクの性能を向上させる特徴量を選択する
 付記1または付記2記載のテーブル統合システム。
(付記4)特徴量選択手段は、指定された対象カラムのデータを目的変数とし、候補カラムのデータを特徴量とするモデルを学習し、予め定められた評価方法に基づいて学習されたモデルを評価し、前記評価方法により算出される評価指標を向上させる特徴量を選択する
 付記1から付記3のうちのいずれか1つに記載のテーブル統合システム。
(付記5)結合テーブル生成装置は、選択された各カラムのデータから特徴量を生成する特徴量加工手段を含み、
 前記特徴量加工手段は、選択された各カラムをクラスタリングし、クラスタ化されたカラム集合ごとに特徴量を生成し、
 特徴量選択手段は、結合された候補カラムに含まれるデータおよび生成された特徴量の中から、タスクの性能を向上させる特徴量を選択する
 付記1から付記4のうちのいずれか1つに記載のテーブル統合システム。
(付記6)想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段から、当該結合テーブルの入力を受け付け、
 前記対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段から当該候補カラムの入力を受け付け、
 前記ベーステーブルの入力を受け付け、
 前記結合テーブルのうち前記候補カラムに対応するカラムを前記ベーステーブルに結合し、
 結合された前記候補カラムに含まれるデータに基づいて、前記タスクの性能を向上させる特徴量を選択し、
 選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する
 ことを特徴とするテーブル統合方法。
(付記7)ベーステーブルの入力および対象カラムの指定を受け付け、前記ベーステーブルの結合テーブルを結合テーブル記憶手段から取得し、前記対象カラムの候補カラムを候補カラム記憶手段から取得する
 付記6記載のテーブル統合方法。
(付記8)コンピュータに、
 想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段から、当該結合テーブルの入力を受け付ける第一入力処理、
 前記対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段から当該候補カラムの入力を受け付ける第二入力処理、
 前記ベーステーブルの入力を受け付ける第三入力処理、
 前記結合テーブルのうち前記候補カラムに対応するカラムを前記ベーステーブルに結合する結合処理、
 結合された前記候補カラムに含まれるデータに基づいて、前記タスクの性能を向上させる特徴量を選択する特徴量選択処理、および、
 選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する統合テーブル出力処理
 を実行させるためのテーブル統合プログラムを記憶するプログラム記憶媒体。
(付記9)コンピュータに、
 第三入力処理で、ベーステーブルの入力および対象カラムの指定を受け付けさせ、
 第一入力処理で、前記ベーステーブルの結合テーブルを結合テーブル記憶手段から取得させ、
 第二入力処理で、前記対象カラムの候補カラムを候補カラム記憶手段から取得させる
 テーブル統合プログラムを記憶する付記8記載のプログラム記憶媒体。
(付記10)コンピュータに、
 想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段から、当該結合テーブルの入力を受け付ける第一入力処理、
 前記対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段から当該候補カラムの入力を受け付ける第二入力処理、
 前記ベーステーブルの入力を受け付ける第三入力処理、
 前記結合テーブルのうち前記候補カラムに対応するカラムを前記ベーステーブルに結合する結合処理、
 結合された前記候補カラムに含まれるデータに基づいて、前記タスクの性能を向上させる特徴量を選択する特徴量選択処理、および、
 選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する統合テーブル出力処理
 を実行させるためのテーブル統合プログラム。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 10 外部テーブル記憶装置
 20 テーブル記憶装置
 21 結合テーブル記憶部
 22 相関テーブル記憶部
 100 結合テーブル特定システム
 110 結合索引構築装置
 112 結合カラム候補抽出部
 114 結合索引生成部
 120 結合索引記憶部
 130 結合テーブル探索装置
 132 入力部
 134 検索プラン生成部
 136 レコード検索部
 138 結合テーブル出力部
 140 結合テーブル記憶部
 200 相関テーブル特定システム
 210 相関索引構築装置
 212 非結合カラム候補抽出部
 214 相関索引生成部
 220 相関索引記憶部
 230 相関テーブル探索装置
 232 入力部
 234 索引特定部
 236 候補カラム検索部
 238 相関テーブル出力部
 240 相関テーブル記憶部
 300 テーブル統合システム
 310 統合テーブル生成装置
 312 入力部
 314 テーブル結合部
 316 特徴量加工部
 318 特徴量選択部
 320 統合テーブル出力部
 330 統合テーブル記憶部
 400 外部データ活用システム

Claims (9)

  1.  想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段と、
     前記対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段と、
     前記ベーステーブルと前記候補カラムとを結合した統合テーブルを生成する統合テーブル生成装置とを備え、
     前記結合テーブル生成装置は、
     前記結合テーブル、前記候補カラム、および、前記ベーステーブルの入力を受け付ける入力手段と、
     前記結合テーブルのうち前記候補カラムに対応するカラムを前記ベーステーブルに結合する結合手段と、
     結合された前記候補カラムに含まれるデータに基づいて、前記タスクの性能を向上させる特徴量を選択する特徴量選択手段と、
     選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する統合テーブル出力手段とを含む
     ことを特徴とするテーブル統合システム。
  2.  入力手段は、ベーステーブルの入力および対象カラムの指定を受け付け、前記ベーステーブルの結合テーブルを結合テーブル記憶手段から取得し、前記対象カラムの候補カラムを候補カラム記憶手段から取得する
     請求項1記載のテーブル統合システム。
  3.  特徴量選択手段は、対象カラムのデータの予測を行うタスクの性能を向上させる特徴量を選択する
     請求項1または請求項2記載のテーブル統合システム。
  4.  特徴量選択手段は、指定された対象カラムのデータを目的変数とし、候補カラムのデータを特徴量とするモデルを学習し、予め定められた評価方法に基づいて学習されたモデルを評価し、前記評価方法により算出される評価指標を向上させる特徴量を選択する
     請求項1から請求項3のうちのいずれか1項に記載のテーブル統合システム。
  5.  結合テーブル生成装置は、選択された各カラムのデータから特徴量を生成する特徴量加工手段を含み、
     前記特徴量加工手段は、選択された各カラムをクラスタリングし、クラスタ化されたカラム集合ごとに特徴量を生成し、
     特徴量選択手段は、結合された候補カラムに含まれるデータおよび生成された特徴量の中から、タスクの性能を向上させる特徴量を選択する
     請求項1から請求項4のうちのいずれか1項に記載のテーブル統合システム。
  6.  想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段から、当該結合テーブルの入力を受け付け、
     前記対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段から当該候補カラムの入力を受け付け、
     前記ベーステーブルの入力を受け付け、
     前記結合テーブルのうち前記候補カラムに対応するカラムを前記ベーステーブルに結合し、
     結合された前記候補カラムに含まれるデータに基づいて、前記タスクの性能を向上させる特徴量を選択し、
     選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する
     ことを特徴とするテーブル統合方法。
  7.  ベーステーブルの入力および対象カラムの指定を受け付け、前記ベーステーブルの結合テーブルを結合テーブル記憶手段から取得し、前記対象カラムの候補カラムを候補カラム記憶手段から取得する
     請求項6記載のテーブル統合方法。
  8.  コンピュータに、
     想定するタスクで対象とするデータからなるカラムである対象カラムを含むベーステーブルに結合可能なテーブルである結合テーブルを記憶する結合テーブル記憶手段から、当該結合テーブルの入力を受け付ける第一入力処理、
     前記対象カラムのデータと相関があるデータを含むカラムである候補カラムを記憶する候補カラム記憶手段から当該候補カラムの入力を受け付ける第二入力処理、
     前記ベーステーブルの入力を受け付ける第三入力処理、
     前記結合テーブルのうち前記候補カラムに対応するカラムを前記ベーステーブルに結合する結合処理、
     結合された前記候補カラムに含まれるデータに基づいて、前記タスクの性能を向上させる特徴量を選択する特徴量選択処理、および、
     選択された特徴量を含むカラムとベーステーブルとを結合した統合テーブルを出力する統合テーブル出力処理
     を実行させるためのテーブル統合プログラムを記憶するプログラム記憶媒体。
  9.  コンピュータに、
     第三入力処理で、ベーステーブルの入力および対象カラムの指定を受け付けさせ、
     第一入力処理で、前記ベーステーブルの結合テーブルを結合テーブル記憶手段から取得させ、
     第二入力処理で、前記対象カラムの候補カラムを候補カラム記憶手段から取得させる
     テーブル統合プログラムを記憶する請求項8記載のプログラム記憶媒体。
PCT/JP2020/033310 2020-09-02 2020-09-02 テーブル統合システム、方法およびプログラム WO2022049682A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022546787A JP7444269B2 (ja) 2020-09-02 2020-09-02 テーブル統合システム、方法およびプログラム
PCT/JP2020/033310 WO2022049682A1 (ja) 2020-09-02 2020-09-02 テーブル統合システム、方法およびプログラム
US18/023,830 US20230237039A1 (en) 2020-09-02 2020-09-02 Table integration system, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/033310 WO2022049682A1 (ja) 2020-09-02 2020-09-02 テーブル統合システム、方法およびプログラム

Publications (1)

Publication Number Publication Date
WO2022049682A1 true WO2022049682A1 (ja) 2022-03-10

Family

ID=80491872

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/033310 WO2022049682A1 (ja) 2020-09-02 2020-09-02 テーブル統合システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US20230237039A1 (ja)
JP (1) JP7444269B2 (ja)
WO (1) WO2022049682A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180096000A1 (en) * 2016-09-15 2018-04-05 Gb Gas Holdings Limited System for analysing data relationships to support data query execution

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180096000A1 (en) * 2016-09-15 2018-04-05 Gb Gas Holdings Limited System for analysing data relationships to support data query execution

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NADIIA CHEPURKO; RYAN MARCUS; EMANUEL ZGRAGGEN; RAUL CASTRO FERNANDEZ; TIM KRASKA; DAVID KARGER: "ARDA: Automatic Relational Data Augmentation for Machine Learning", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 21 March 2020 (2020-03-21), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081626880 *
YEYE HE ; KRIS GANJAM ; XU CHU: "SEMA-JOIN", PROCEEDINGS OF THE VLDB ENDOWMENT, ASSOC. OF COMPUTING MACHINERY, NEW YORK, NY, vol. 8, no. 12, 1 August 2015 (2015-08-01), New York, NY , pages 1358 - 1369, XP058072808, ISSN: 2150-8097, DOI: 10.14778/2824032.2824036 *
ZHU ERKANG EKZHU@CS.TORONTO.EDU; DENG DONG DONG.DENG@INCEPTIONIAI.ORG; NARGESIAN FATEMEH FNARGESIAN@CS.TORONTO.EDU; MILLER REN&#23: "JOSIE Overlap Set Similarity Search for Finding Joinable Tables in Data Lakes", DESIGNING INTERACTIVE SYSTEMS CONFERENCE, ACM, 2 PENN PLAZA, SUITE 701NEW YORKNY10121-0701USA, 25 June 2019 (2019-06-25) - 28 June 2019 (2019-06-28), 2 Penn Plaza, Suite 701New YorkNY10121-0701USA , pages 847 - 864, XP058637317, ISBN: 978-1-4503-5850-7, DOI: 10.1145/3299869.3300065 *

Also Published As

Publication number Publication date
JPWO2022049682A1 (ja) 2022-03-10
JP7444269B2 (ja) 2024-03-06
US20230237039A1 (en) 2023-07-27

Similar Documents

Publication Publication Date Title
Zhang et al. Pattern recommendation in task-oriented applications: A multi-objective perspective [application notes]
AU2014201516A1 (en) Resolving similar entities from a transaction database
Liu et al. ProtDet-CCH: protein remote homology detection by combining long short-term memory and ranking methods
JP7103496B2 (ja) 関連スコア算出システム、方法およびプログラム
MX2012011923A (es) Asignacion de atributis aplicables para datos que describen la identidad personal.
JP2007219929A (ja) 感性評価システム及び方法
KR20160071746A (ko) 규칙 기반 로그 데이터 그룹화를 이용한 개인 맞춤형 로그 분석 시스템 및 그 방법
Zhu et al. Book recommendation service by improved association rule mining algorithm
Satish et al. Big data processing with harnessing hadoop-MapReduce for optimizing analytical workloads
KR102438923B1 (ko) 시계열 분포 특징을 고려한 딥러닝 기반 비트코인 블록 데이터 예측 시스템
EP3477505B1 (en) Fingerprint clustering for content-based audio recogntion
Sagala et al. Enhanced churn prediction model with boosted trees algorithms in the banking sector
JP2012008899A (ja) 検索クエリ推薦方法、検索クエリ推薦装置及び検索クエリ推薦プログラム
Qinl et al. Synthesizing privacy preserving entity resolution datasets
WO2022049682A1 (ja) テーブル統合システム、方法およびプログラム
WO2022049680A1 (ja) 結合テーブル特定システム、結合テーブル探索装置、方法およびプログラム
WO2022049681A1 (ja) 相関索引構築装置、相関テーブル探索装置、方法およびプログラム
JP2014206382A (ja) 目標類識別装置
Abinaya et al. Effective Feature Selection For High Dimensional Data using Fast Algorithm
Akhgari et al. Sem-TED: semantic twitter event detection and adapting with news stories
JP2021163134A (ja) 論述構造推定方法、論述構造推定装置、および論述構造推定プログラム
Kumar et al. ARSkNN-A k-NN classifier using mass based similarity measure
Pinto et al. Machine learning dynamic switching approach to forecasting in the presence of structural breaks
CN116228484B (zh) 基于量子聚类算法的课程组合方法及装置
CN110737749A (zh) 创业计划评价方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20952422

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022546787

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20952422

Country of ref document: EP

Kind code of ref document: A1