(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024012018
(43)【公開日】2024-01-25
(54)【発明の名称】情報処理装置、情報処理方法、及び、プログラム
(51)【国際特許分類】
G06F 16/901 20190101AFI20240118BHJP
【FI】
G06F16/901
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022143435
(22)【出願日】2022-09-09
(31)【優先権主張番号】P 2022113698
(32)【優先日】2022-07-15
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【弁理士】
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【弁理士】
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】董 于洋
(72)【発明者】
【氏名】小山田 昌史
(72)【発明者】
【氏名】野澤 拓磨
(72)【発明者】
【氏名】榎本 昌文
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175HB03
(57)【要約】
【課題】大規模なデータに対しても高い計算コストを要することなく二つのテーブルを結合できる情報処理技術を提供する。
【解決手段】情報処理装置は、対象データを取得し、対象データを対象データの潜在特徴量を示す埋め込みベクトルへ変換する。また、情報処理装置は、対象データの潜在特徴量と類似するデータを候補データとして検索し、候補データに所定の処理を適用し、候補データ毎に対象データと結合する順位を付与する。そして、情報処理装置は、付与された順位に基づいて、対象データと候補データとを結合した結果を出力する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
対象データを取得するデータ取得手段と、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換するデータ変換手段と、
前記対象データの潜在特徴量と類似するデータを候補データとして検索する候補検索手段と、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与する候補ランキング手段と、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する結果出力手段と、
を備える情報処理装置。
【請求項2】
前記候補検索手段は、前記対象データの埋め込みベクトルに基づいて近傍探索を行うことで、前記候補データを検索する請求項1に記載の情報処理装置。
【請求項3】
前記埋め込みベクトルは、多層ニューラルネットワークを用いて学習された深層学習モデルによって獲得される請求項1に記載の情報処理装置。
【請求項4】
対象データを取得し、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換し、
前記対象データの潜在特徴量と類似するデータを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する情報処理方法。
【請求項5】
対象データを取得し、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換し、
前記対象データの潜在特徴量と類似するデータを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する処理をコンピュータに実行させるプログラム。
【請求項6】
対象データを取得するデータ取得手段と、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換するデータ変換手段と、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索する候補検索手段と、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与する候補ランキング手段と、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する結果出力手段と、
を備える情報処理装置。
【請求項7】
前記埋め込みモデルは、互いに類似する複数のデータから抽出された複数の特徴量ベクトルが入力された際に、前記ベクトル空間内における距離が互いに近くなるとともに、当該入力された特徴量ベクトルの次元数よりも小さい次元数を有する複数の埋め込みベクトルが出力されるように学習されたモデルである請求項6に記載の情報処理装置。
【請求項8】
前記探索インデックスに含まれる前記検索対象データの埋め込みベクトルは、前記検索対象データから抽出された特徴量ベクトルを、前記学習された前記埋め込みモデルに入力することにより変換したものである請求項7に記載の情報処理装置。
【請求項9】
対象データを取得し、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換し、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する情報処理方法。
【請求項10】
対象データを取得し、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換し、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データの結合に関連する情報処理に関する。
【背景技術】
【0002】
異なる属性を持つ多様なデータベース(異種データベース)を統合する技術が知られている。非特許文献1は、教師あり機械学習の技術を用いて、異なるデータベースに含まれる二つのテーブルを結合するか否かを判定する技術を開示する。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Javier Flores, et.al,’Scalable Data Discovery Using Profiles’,
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1に記載の技術では、テーブルに含まれる列単位で結合判定を行うため、大規模データに対して結合判定を行う場合、計算コストが大きいという課題があった。
【0005】
本開示は、上記の問題に鑑みてなされたものであり、その目的の一例は、大規模なデータに対しても高い計算コストを要することなく二つのテーブルを結合できる情報処理技術を提供することである。
【課題を解決するための手段】
【0006】
本開示の1つの観点は、情報処理装置であって、
対象データを取得するデータ取得手段と、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換するデータ変換手段と、
前記対象データの潜在特徴量と類似するデータを候補データとして検索する候補検索手段と、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与する候補ランキング手段と、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する結果出力手段と、を備える。
【0007】
本開示の他の観点は、情報処理方法であって、
対象データを取得し、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換し、
前記対象データの潜在特徴量と類似するデータを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する。
【0008】
本開示のさらに他の観点は、情報処理プログラムであって、
対象データを取得し、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換し、
前記対象データの潜在特徴量と類似するデータを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する処理をコンピュータに実行させる。
【0009】
本開示のさらに他の観点は、情報処理装置であって、
対象データを取得するデータ取得手段と、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換するデータ変換手段と、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索する候補検索手段と、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与する候補ランキング手段と、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する結果出力手段と、を備える。
【0010】
本開示のさらに他の観点は、情報処理方法であって、
対象データを取得し、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換し、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する。
【0011】
本開示のさらに他の観点は、情報処理プログラムであって、
対象データを取得し、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換し、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する処理をコンピュータに実行させる。
【発明の効果】
【0012】
本開示によれば、大規模なデータに対しても高い計算コストを要することなく二つのテーブルを結合できるという効果を奏する。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態に係る情報処理装置の構成を示すブロック図である。
【
図2】クエリ列を埋め込みベクトルに変換する処理の概要を示す図である。
【
図3】探索インデックスを用いて近傍ベクトルを検索する処理の概要を示す図である。
【
図4】ランキング結果を取得するために行われる処理の概要を示す図である。
【
図5】第1実施形態に係る情報処理の流れを示すフロー図である。
【
図6】第1実施形態に係る情報処理装置として機能するコンピュータの構成を示すブロック図である。
【
図7】情報処理装置を適用した実施例の構成を示すブロック図である。
【
図8】第1実施形態に係る情報処理装置の構築に用いられる他の情報処理装置の構成を示すブロック図である。
【
図9】埋め込みモデルの学習の概要を示す図である。
【
図10】索引対象列を埋め込みベクトルに変換する処理の概要を示す図である。
【
図11】探索インデックスを構築する処理の概要を示す図である。
【
図12】ランキングモデルの学習の概要を示す図である。
【
図13】第1実施形態に係る情報処理装置の構築に用いられる他の情報処理装置における処理の流れを示すフロー図である。
【
図14】第2実施形態に係る情報処理装置の構成を示すブロック図である。
【
図15】第2実施形態に係る情報処理装置において行われる処理を説明するためのフローチャートである。
【
図16】第3実施形態に係る情報処理装置の構成を示すブロック図である。
【
図17】第3実施形態に係る情報処理装置において行われる処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0014】
以下、本開示の第1実施形態について、図面を参照して詳細に説明する。
【0015】
[第1実施形態]
<情報処理装置の構成>
まず、本実施形態に係る情報処理装置1の構成について、
図1を参照して説明する。
図1は、情報処理装置1の構成を示すブロック図である。情報処理装置1は、一例として、データを統合するデータ検索装置、又は、データを検索する検索装置である。情報処理装置1は、データ取得部11、データ変換部12、候補検索部13、候補ランキング部14、及び、結果出力部15を備える。
【0016】
なお、本実施形態において、データ取得部11はデータ取得手段を実現する構成であり、データ変換部12はデータ変換手段を実現する構成である。また、候補検索部13は候補検索手段を実現する構成であり、候補ランキング部14は候補ランキング手段を実現する構成であり、結果出力部15は結果出力手段を実現する構成である。
【0017】
データ取得部11は、対象データを取得する。ここで、対象データは、所定の処理が適用されるデータであり、一例として、1又は複数のレコードを含むデータベースである。ただし、対象データは上述した例に限られず、他のデータであってもよい。対象データは、1又は複数の属性を含む。対象データに含まれる属性は、対象データの特徴又は対象データに含まれるデータの特徴を示すものであり、一例として、対象データであるデータベースに含まれるフィールドである。ただし、対象データに含まれる属性は上述した例に限られず、他の属性であってもよい。データ取得部11は、取得した対象データをデータ変換部12へ出力する。
【0018】
データ変換部12は、対象データに所定の処理を適用して埋め込みベクトルに変換する。ここで、所定の処理は、対象データに適用される処理であり、一例として、対象データであるデータベースに含まれるレコードを、埋め込みモデル記憶部20に含まれる埋め込みモデルを用いて、対象データの潜在的特徴量を示す埋め込みベクトルに変換する処理である。埋め込みモデルとは、任意のデータをベクトル空間に表現するモデルであって、データの類似度が空間上の距離として表現されるモデルである。例えば、データ変換部12は、対象データから特徴量を取得する。そして、データ変換部12は、取得した特徴量と、埋め込みモデルとを用いて対象データのベクトル値を算出し、候補検索部13へ出力する。
【0019】
なお、データ変換部12は、対象データの特徴量として、対象データの列の値を文字列として言語モデルで算出した特徴量を用いてもよい。あるいはデータ変換部12は、対象データの特徴量として、単語やキャラクターの数などの統計量を用いてもよい。なお、埋め込みモデルを学習するための方法および特徴量を取得する方法は、特定のものに限定されず、一般的な機械学習の技術が利用されてよい。例えば、データ変換部12は、埋め込みモデルとして多層ニューラルネットワークを利用した学習アルゴリズムによって学習されたモデルを用いてもよい。
【0020】
候補検索部13は、対象データの埋め込みベクトルに類似するデータであって、対象データと結合する候補データを検索する。候補検索部13は、一例として、対象データの埋め込みベクトルとのベクトル空間上の距離(類似度)が所定の条件を満たすデータを候補データとして取得する。より具体的には、候補検索部13は、索引記憶部30に含まれる、候補データと当該データの埋め込みベクトルとを対応付けた探索インデックスを用いて、近傍探索を行うことで、対象データの埋め込みベクトルとの距離が小さいデータを候補データとして取得する。そして、候補検索部13は、取得した候補データを候補ランキング部14へ出力する。
【0021】
なお、候補検索部13が取得する候補データの数は特に限定されない。例えば、候補検索部13は事前に定められた所定値(K)を候補データの数としてよい。
【0022】
候補ランキング部14は、候補データに対して所定の処理を適用して、対象データと結合する候補データのランキングを行う。ここで、所定の処理は、候補データに適用される処理である。一例として、候補ランキング部14は、対象データと、候補データと、ランキングモデル記憶部40に含まれるランキングモデルとを用いて、各候補データに対して、対象データと結合する優先順位を付与する。そして、候補ランキング部14は、優先順位を示すランキング結果を、結果出力部15へ出力する。
【0023】
ランキングモデルは、入力された対象データと、候補データとの結合のしやすさ(結合性)を評価するためのモデルである。ランキングモデルは、予め用意されたモデルであり、ランキングモデル記憶部40に記憶されている。なお、ランキングモデルを生成するアルゴリズムは特に限定されない。ランキングモデルは、事前に定められたルールを用いて結合性を評価するモデルであってよい。あるいは、ランキングモデルは、多層ニューラルネットワークを利用した学習アルゴリズムによって学習されたモデルであってもよい。
【0024】
結果出力部15は、候補データのランキング結果に基づいて、対象データと候補データとを結合し、結合データとして出力する。
【0025】
なお、結果出力部15が結合する候補データの数は特に限定されない。例えば、結果出力部15は事前に定められた所定値(M)に応じて、上位M個と対象データとを結合した結果を出力するようにしてもよい。具体的には、例えば、10×M(=K)個の候補データがランキング結果に含まれているとともに、当該10×M個の候補データのうちの上位M個の候補データと対象データとを結合した結果を示す結合データが出力されるようにしてもよい。
【0026】
<情報処理装置の構成に係る具体例>
データ変換部12は、埋め込みモデルの学習時と同様の方法を用いてクエリ列から特徴量ベクトルを抽出し、当該抽出した特徴量ベクトルを当該埋め込みモデルに入力し、当該埋め込みモデルの中間の層で計算されたベクトルを埋め込みベクトルとして出力する。例えば、データ変換部12は、
図2に示すように、「東京」、「横浜」及び「筑波」のような文字列を含むクエリ列が対象データとして得られた場合に、当該文字列を数値化した特徴量ベクトルを抽出し、当該特徴量ベクトルを埋め込みモデルに入力することにより、当該クエリ列を埋め込みベクトルに変換する。
図2は、クエリ列を埋め込みベクトルに変換する処理の概要を示す図である。
【0027】
候補検索部13は、探索インデックスを用い、データ変換部12から出力される埋め込みベクトルの近傍の埋め込みベクトルの集合に相当する近傍ベクトルを検索し、当該検索した近傍ベクトルに対応付けられた索引対象列の集合を候補データとして取得し、当該取得した候補データを候補ランキング部14へ出力する。例えば、候補検索部13は、探索インデックスを用いた検索を行うことにより、
図3に示すような近傍ベクトルの検索結果を取得する。
図3は、探索インデックスを用いて近傍ベクトルを検索する処理の概要を示す図である。このような処理によれば、候補検索部13は、K個の近傍ベクトル各々に対応するK個の索引対象列を候補データとして取得することができる。
【0028】
候補ランキング部14は、ランキングモデルを用い、クエリ列に類似する索引対象列に対して相対的に上位の順位を付与し、当該クエリ列に類似しない索引対象列に対して相対的に下位の順位を付与したランキング結果を取得する。例えば、候補ランキング部14は、
図4に示すように、「東京」、「横浜」及び「筑波」のような文字列を含むクエリ列から抽出された特徴量ベクトルと、候補データに含まれる各索引対象列から抽出された特徴量ベクトルと、をランキングモデルに入力することにより、当該各索引対象列のうちの上位M個の索引対象列に係るランキング結果を取得する。なお、
図4の例においては、クエリ列及び候補データから抽出された特徴量ベクトルをランキングモデルに入力することにより、当該クエリ列に対する結合性(類似性)の高さに係る推論結果を示す値である結合スコアを含むランキング結果が得られるようにしている。また、
図4の例によれば、「東京」、「筑波」、「名古屋」及び「川崎」のような文字列を含む索引対象列に1位の順位が付与されている。また、
図4の例によれば、「東京」、「筑波」、「名古屋」及び「川崎」のような文字列を含む索引対象列の結合スコアとして、0.8という値が得られている。また、
図4の例によれば、結合スコアが相対的に高い索引対象列に対して相対的に上位の順位が付与されているとともに、結合スコアが相対的に低い索引対象列に対して相対的に下位の順位が付与されたランキング結果を得ることができる。なお、候補ランキング部14は、結合スコアを降順に並べたランキング結果を得るものであってもよく、または、結合スコアを所定の方法で補正したスコアに応じたランキング結果を得るものであってもよい。
図4は、ランキング結果を取得するために行われる処理の概要を示す図である。
【0029】
<情報処理>
次に、本実施形態に係る情報処理の流れについて、
図5を参照して説明する。
図5は、情報処理の流れを示すフロー図である。
【0030】
まず、ステップS11において、データ取得部11は、対象データを取得する。ステップS12において、データ変換部12は、対象データに所定の処理を適用して埋め込みベクトルに変換し、候補検索部13へ出力する。ステップS13において、候補検索部13は、索引記憶部30において、対象データの埋め込みベクトルに類似するデータであって、対象データと結合する候補データを検索し、候補ランキング部14へ出力する。ステップS14において、候補ランキング部14は、候補検索部13から入力された複数の候補データに対して所定の処理を適用し、対象データと結合する複数の候補データのランキングを行い、ランキング結果を結果出力部15へ出力する。ステップS15において、結果出力部15は、候補データのランキング結果に基づいて、対象データと候補データとを結合し、結合データとして出力する。
【0031】
<ソフトウェアによる実現例>
情報処理装置1の一部又は全部の機能は、集積回路(ICチップ)等のハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。
【0032】
ソフトウェアによって実現する場合、情報処理装置1は、例えば、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータによって実現される。
図6は、このようなコンピュータの一例を示す。コンピュータ50は、少なくとも1つのプロセッサ51と、少なくとも1つのメモリ52と、を備えている。メモリ52には、コンピュータ50を情報処理装置1として動作させるためのプログラム53が記録されている。コンピュータ50において、プロセッサ51がプログラム53をメモリ52から読み取って実行することにより、情報処理装置1の各機能が実現される。
【0033】
プロセッサ51としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせなどを用いることができる。メモリC2としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又は、これらの組み合わせなどを用いることができる。
【0034】
なお、コンピュータ50は、プログラム53を実行時に展開したり、各種データを一時的に記憶したりするためのRAM(Random Access Memory)を更に備えていてもよい。また、コンピュータ50は、他の装置との間でデータを送受信するための通信インタフェースを更に備えていてもよい。また、コンピュータ50は、キーボードやマウス、ディスプレイやプリンタなどの入出力機器を接続するための入出力インタフェースを更に備えていてもよい。
【0035】
また、プログラム53は、コンピュータ50が読み取り可能な、一時的でない有形の記録媒体54に記録することができる。このような記録媒体54としては、例えば、テープ、ディスク、カード、半導体メモリ、又はプログラマブルな論理回路などを用いることができる。コンピュータ50は、このような記録媒体54を介してプログラム53を取得することができる。また、プログラム53は、伝送媒体を介して伝送することができる。このような伝送媒体としては、例えば、通信ネットワーク、又は放送波などを用いることができる。コンピュータ50は、このような伝送媒体を介してプログラム53を取得することもできる。
【0036】
<本実施形態の効果>
以上のように、本実施形態においては、情報処理装置1は、対象データを取得し、対象データに所定の処理を適用して得られる埋め込みベクトルに変換し、対象データの埋め込みベクトルに類似するデータであって、対象データと結合する候補データを検索する。さらに本実施形態において、情報処理装置1は、検索された候補データに対して、ランキングモデルを用いて順位付けを行い、順位に基づいて対象データと候補データを結合する。以上のように、本実施形態は、埋め込みベクトルの類似度とランキングモデルを用いることによって、大規模なデータに対しても高い計算コストを要することなく二つのテーブルを結合できるという効果を奏する。
【0037】
<実施例>
図7は、上記の実施形態に係る情報処理装置を適用した実施例の構成を示す。本実施例では、情報処理装置は、対象となるテーブル(以下、「対象テーブル」とも呼ぶ。)と結合可能なテーブルを、大規模な外部テーブルから検索し、対象テーブルと結合するものである。
【0038】
図7において、情報処理装置1は
図1に示す情報処理装置1と同一の構成を有し、埋め込みモデル記憶部20、索引記憶部30及びランキングモデル記憶部40と接続されている。情報処理装置1には、対象データとして対象テーブルが入力される。本実施例では、情報処理装置1は、入力された対象テーブルからクエリ列を抽出し、予め用意された埋め込みモデルを用いてクエリ列を埋め込みベクトルに変換する。
【0039】
一方、検索の対象となる外部テーブル群からは、予め探索インデックスが生成され、索引記憶部30に記憶されている。具体的に、本実施例では、まず外部テーブル群から、索引対象列が選択される。索引対象列は、前述の候補データに相当する。次に、選択された索引対象列が埋め込みベクトルに変換される。この変換処理は、対象テーブルから抽出したクエリ列の変換に用いた埋め込みモデルと同一のモデルを用いて行われる。そして、索引対象列と、その埋め込みベクトルとを対応付けた探索インデックスが生成され、索引記憶部30に記憶される。こうして、索引記憶部30には、対象テーブルと結合可能なテーブル群についての探索インデックスが記憶されている。
【0040】
情報処理装置1は、索引記憶部30に記憶されている探索インデックスを用いて、クエリ列の埋め込みベクトルとの距離が小さい複数の索引対象列を候補データとして取得する。次に、情報処理装置1は、ランキングモデルを用いて候補データのランキングを行い、複数の候補データについて、対象データと結合する優先順位を示すランキング結果を生成する。そして、情報処理装置1は、ランキング結果に基づいて、例えば優先順位が上位M個の候補データを対象データと結合し、結合データを出力する。
【0041】
本実施例によれば、高い計算コストを要することなく、対象テーブルのクエリ列と結合可能なテーブルを大規模外部テーブル群から取得し、対象テーブルと結合することが可能となる。
【0042】
<情報処理装置を構築するための構成>
次に、情報処理装置1の構築に用いられる他の情報処理装置の構成について説明する。
図8は、第1実施形態に係る情報処理装置の構築に用いられる他の情報処理装置の構成を示すブロック図である。情報処理装置100は、情報処理装置1の構築に用いられる装置であり、情報処理装置1と同様のハードウェア構成を有している。また、情報処理装置100は、
図8に示すように、データ取得部101と、埋め込みモデル学習部102と、索引対象列取得部103と、埋め込みベクトル変換部104と、索引構築部105と、ランキングモデル構築部106と、を有している。
【0043】
データ取得部101は、機械学習モデルまたは深層学習モデルの学習用データとして、訓練データ及びテストデータを取得する。
【0044】
埋め込みモデル学習部102は、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルを有している。具体的には、埋め込みモデルは、例えば、3層のニューラルネットワーク等のような深層学習モデルにより構成されている。
【0045】
埋め込みモデル学習部102は、データ取得部101により得られた訓練データの列の値から特徴量ベクトルを抽出するとともに、当該特徴量ベクトルを埋め込みモデルに入力した際の出力結果に基づいて当該埋め込みモデルの学習を行う。例えば、埋め込みモデル学習部102は、
図9に示すように、「東京」、「筑波」、「名古屋」及び「川崎」のような文字列が訓練データの列に含まれている場合には、当該文字列を数値化した特徴量ベクトルを抽出し、当該抽出した特徴量ベクトルを埋め込みモデルに入力することにより、当該埋め込みモデルの学習を行う。また、埋め込みモデル学習部102は、データ取得部101により得られたテストデータの列の値から特徴量ベクトルを抽出するとともに、当該特徴量ベクトルを埋め込みモデルに入力した際の出力結果に基づいて当該埋め込みモデルのパラメータ調整を行う。
図9は、埋め込みモデルの学習の概要を示す図である。
【0046】
埋め込みモデルの学習に用いる特徴量ベクトルに含まれる各特徴量は、例えば、訓練データの列の値とテストデータの列の値とがいずれも文字列である場合には、所定の言語モデルに基づいて算出されるものであってもよく、あるいは、単語数または文字数のカウント値に基づいて算出されるものであってもよい。また、例えば、訓練データの列の値とテストデータの列の値とがいずれも文字列である場合には、word embeddingを用いた変換処理を行うことにより、埋め込みモデルの学習に用いる特徴量ベクトルを得ることができる。
【0047】
埋め込みモデルの学習は、例えば、特徴量ベクトルの基となった列の値と、当該特徴量ベクトルの入力に応じて出力される埋め込みベクトルと、の間の関係性に基づいて行われるようにすればよい。または、埋め込みモデルの学習は、例えば、特徴量ベクトルの入力に応じて出力される出力データを用いた自己教師あり学習として行われるようにすればよい。また、埋め込みモデルの学習は、終了条件を満たすまで繰り返し行われるようにすればよい。終了条件は、例えば、互いに類似する複数の列の値から抽出された複数の特徴量ベクトルが入力された際に、ベクトル空間内における距離が互いに近くなるとともに、当該入力された特徴量ベクトルの次元数よりも小さい次元数を有する複数の埋め込みベクトルが出力される、という条件として設定されていればよい。
【0048】
埋め込みモデル学習部102は、以上の具体例に述べたような学習が行われた学習済の埋め込みモデルを埋め込みモデル記憶部20に格納する。そのため、データ変換部12は、対象データから抽出された特徴量ベクトルを、埋め込みモデル記憶部20から取得した学習済の埋め込みモデルに入力することにより、当該対象データを埋め込みベクトルに変換することができる。また、データ変換部12は、埋め込みモデル記憶部20から取得した学習済の埋め込みモデルを用い、互いに類似する複数の対象データを、ベクトル空間における距離が互いに近い複数の埋め込みベクトルに変換することができる。
【0049】
索引対象列取得部103は、テーブル記憶部500に格納されている外部テーブル群の中から、探索インデックスの構築に用いる索引対象列を取得する。索引対象列には、外部テーブル群に属する1つのテーブルの中から選択された1つのまたは複数の列が少なくとも含まれていればよい。また、索引対象列には、外部テーブル群に属する複数のテーブルの中から選択された複数の列が含まれていてもよい。また、索引対象列取得部103は、索引対象列を所定のルールに則って選択的に取得するものであってもよく、または、索引対象列を機械学習の推論方式で選択的に取得するものであってもよい。具体的には、索引対象列取得部103は、例えば、列の値が文字列であるとともに、ユニーク値が所属テーブル内において最も多い列を索引対象列として選択的に取得するようにしてもよい。
【0050】
埋め込みベクトル変換部104は、埋め込みモデル記憶部20に格納されている学習済の埋め込みモデルを用い、索引対象列取得部103により取得された索引対象列の集合を埋め込みベクトルの集合に変換する。例えば、埋め込みベクトル変換部104は、
図10に示すように、「東京」、「筑波」、「名古屋」及び「川崎」のような文字列が索引対象列に含まれている場合には、当該文字列を数値化した特徴量ベクトルを抽出し、当該抽出した特徴量ベクトルを埋め込みモデルに入力することにより、当該索引対象列を埋め込みベクトルに変換する。なお、索引対象列から特徴量ベクトルを抽出する方法は、埋め込みモデルの学習用データ(訓練データ及びテストデータ)から特徴量ベクトルを抽出した際に用いた方法と同じ方法でよい。
図10は、索引対象列を埋め込みベクトルに変換する処理の概要を示す図である。
【0051】
索引構築部105は、
図11に示すように、索引対象列の集合を変換して得られた埋め込みベクトルの集合に対して所定のアルゴリズムを適用することにより、探索インデックスを構築する。具体的には、索引構築部105は、索引対象列の集合を変換して得られた埋め込みベクトルの集合に対し、例えば、https://github.com/spotify/annoyに開示されているアルゴリズム、または、https://github.com/facebookresearch/faissに開示されているアルゴリズムを適用することにより、探索インデックスを構築する。
図11は、探索インデックスを構築する処理の概要を示す図である。
【0052】
索引構築部105は、以上の具体例に述べた方法により構築した探索インデックスを索引記憶部30に格納する。
【0053】
以上の具体例に述べた方法によれば、索引対象列取得部103により取得された索引対象列と、当該索引対象列の埋め込みベクトルと、が対応付けられた探索インデックスを構築することができる。また、候補検索部13は、以上に述べたような方法で構築された探索インデックスを用い、対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている検索対象列を候補データとして検索(取得)することができる。
【0054】
また、以上の具体例に述べた方法によれば、ベクトル空間における距離が互いに近い複数の埋め込みベクトルに関連付けられた代表ベクトルを含む探索インデックスを構築することができる。このような場合においては、候補検索部13は、例えば、対象データの埋め込みベクトルに類似する代表ベクトルを検索し、当該代表ベクトルに関連付けられている複数の埋め込みベクトルを特定することにより、当該複数の埋め込みベクトル各々に対応付けられた索引対象列を候補データとして検索(取得)することができる。
【0055】
ランキングモデル構築部106は、所定のルールに則ったモデル、機械学習モデル、または、深層学習モデルのいずれかにより構成されたランキングモデルを有している。なお、本具体例においては、特に言及のない限り、ランキングモデルが機械学習モデルまたは深層学習モデルである場合について説明する。
【0056】
ランキングモデル構築部106は、データ取得部101により得られた訓練データの列の値から特徴量ベクトルを抽出するとともに、当該特徴量ベクトルをランキングモデルに入力した際の出力結果に基づいて当該ランキングモデルの学習を行う。例えば、ランキングモデル構築部106は、
図12に示すように、「東京」、「筑波」、「名古屋」及び「川崎」のような文字列が訓練データの列に含まれている場合には、当該文字列を数値化した特徴量ベクトルを抽出し、当該抽出した特徴量ベクトルをランキングモデルに入力することにより、当該ランキングモデルの学習を行う。また、ランキングモデル構築部106は、データ取得部101により得られたテストデータの列の値から特徴量ベクトルを抽出するとともに、当該特徴量ベクトルをランキングモデルに入力した際の出力結果に基づいて当該ランキングモデルのパラメータ調整を行う。
図12は、ランキングモデルの学習の概要を示す図である。
【0057】
ランキングモデルの学習に用いる特徴量ベクトルに含まれる各特徴量は、例えば、訓練データの列の値とテストデータの列の値とがいずれも文字列である場合には、所定の言語モデルに基づいて算出されるものであってもよく、あるいは、単語数または文字数のカウント値に基づいて算出されるものであってもよい。また、例えば、訓練データの列の値とテストデータの列の値とがいずれも文字列である場合には、word embeddingを用いた変換処理を行うことにより、ランキングモデルの学習に用いる特徴量ベクトルを得ることができる。
【0058】
ランキングモデル構築部106は、以上の具体例に述べたような方法で構築されたランキングモデルをランキングモデル記憶部40に格納する。そのため、候補ランキング部14は、対象データ及び候補データから抽出された特徴量ベクトルを、ランキングモデル記憶部40から取得したランキングモデルに入力することにより、ランキング結果を得ることができる。また、候補ランキング部14は、対象データに類似する候補データに対して相対的に上位の順位を付与し、当該対象データに類似しない候補データに対して相対的に下位の順位を付与したランキング結果を得ることができる。
【0059】
続いて、以上に述べた情報処理装置100の処理の流れについて説明する。
図13は、第1実施形態に係る情報処理装置の構築に用いられる他の情報処理装置における処理の流れを示すフロー図である。
【0060】
まず、ステップS101において、データ取得部101は、機械学習モデルまたは深層学習モデルの学習用データを取得する。次に、ステップS102において、埋め込みモデル学習部102は、ステップS101により得られた学習用データを用いて埋め込みモデルの学習を行った後、学習済の埋め込みモデルを埋め込みモデル記憶部20に格納する。続いて、ステップS103において、索引対象列取得部103は、テーブル記憶部500に格納されている外部テーブル群の中から索引対象列を取得する。続いて、ステップS104において、埋め込みベクトル変換部104は、ステップS103により得られた索引対象列を埋め込みベクトルに変換する。続いて、ステップS105において、索引構築部105は、ステップS104により得られた埋め込みベクトルに対して所定のアルゴリズムを適用することにより探索インデックスを構築し、当該構築した探索インデックスを索引記憶部30に格納する。最後に、ステップS106において、ランキングモデル構築部106は、ステップS101により得られた学習用データを用いてランキングモデルの学習を行った後、学習済のランキングモデルをランキングモデル記憶部40に格納する。
【0061】
[第2実施形態]
図14は、第2実施形態に係る情報処理装置の構成を示すブロック図である。
【0062】
本実施形態に係る情報処理装置200は、情報処理装置1と同様のハードウェア構成を有している。また、情報処理装置200は、データ取得手段201と、データ変換手段202と、候補検索手段203と、候補ランキング手段204と、結果出力手段205と、を有している。
【0063】
図15は、第2実施形態に係る情報処理装置において行われる処理を説明するためのフローチャートである。
【0064】
データ取得手段201は、対象データを取得する(ステップS201)。
【0065】
データ変換手段202は、対象データを当該対象データの潜在特徴量を示す埋め込みベクトルへ変換する(ステップS202)。
【0066】
候補検索手段203は、対象データの潜在特徴量と類似するデータを候補データとして検索する(ステップS203)。
【0067】
候補ランキング手段204は、候補データに所定の処理を適用し、当該候補データ毎に対象データと結合する順位を付与する(ステップS204)。
【0068】
結果出力手段205は、付与された順位に基づいて、対象データと候補データとを結合した結果を出力する(ステップS205)。
【0069】
本実施形態によれば、大規模なデータに対しても高い計算コストを要することなく二つのテーブルを結合できる。
【0070】
[第3実施形態]
図16は、第3実施形態に係る情報処理装置の構成を示すブロック図である。
【0071】
本実施形態に係る情報処理装置300は、情報処理装置100と同様のハードウェア構成を有している。また、情報処理装置300は、データ取得手段301と、データ変換手段302と、候補検索手段303と、候補ランキング手段304と、結果出力手段305と、を有している。
【0072】
図17は、第3実施形態に係る情報処理装置において行われる処理を説明するためのフローチャートである。
【0073】
データ取得手段301は、対象データを取得する(ステップS301)。
【0074】
データ変換手段302は、対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、当該対象データを埋め込みベクトルへ変換する(ステップS302)。
【0075】
候補検索手段303は、検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている当該検索対象データを候補データとして検索する(ステップS303)。
【0076】
候補ランキング手段304は、候補データに所定の処理を適用し、当該候補データ毎に対象データと結合する順位を付与する(ステップS304)。
【0077】
結果出力手段305は、付与された順位に基づいて、対象データと候補データとを結合した結果を出力する(ステップS305)。
【0078】
本実施形態によれば、大規模なデータに対しても高い計算コストを要することなく二つのテーブルを結合できる。
【0079】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0080】
(付記1)
対象データを取得するデータ取得手段と、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換するデータ変換手段と、
前記対象データの潜在特徴量と類似するデータを候補データとして検索する候補検索手段と、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与する候補ランキング手段と、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する結果出力手段と、
を備える情報処理装置。
【0081】
(付記2)
前記候補検索手段は、前記対象データの埋め込みベクトルに基づいて近傍探索を行うことで、前記候補データを検索する付記1の情報処理装置。
【0082】
(付記3)
前記埋め込みベクトルは、多層ニューラルネットワークを用いて学習された深層学習モデルによって獲得される付記1の情報処理装置。
【0083】
(付記4)
対象データを取得し、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換し、
前記対象データの潜在特徴量と類似するデータを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する情報処理方法。
【0084】
(付記5)
対象データを取得し、
前記対象データを前記対象データの潜在特徴量を示す埋め込みベクトルへ変換し、
前記対象データの潜在特徴量と類似するデータを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する処理をコンピュータに実行させるプログラム。
【0085】
(付記6)
対象データを取得するデータ取得手段と、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換するデータ変換手段と、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索する候補検索手段と、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与する候補ランキング手段と、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する結果出力手段と、
を備える情報処理装置。
【0086】
(付記7)
前記埋め込みモデルは、互いに類似する複数のデータから抽出された複数の特徴量ベクトルが入力された際に、前記ベクトル空間内における距離が互いに近くなるとともに、当該入力された特徴量ベクトルの次元数よりも小さい次元数を有する複数の埋め込みベクトルが出力されるように学習されたモデルである付記6の情報処理装置。
【0087】
(付記8)
前記探索インデックスに含まれる前記検索対象データの埋め込みベクトルは、前記検索対象データから抽出された特徴量ベクトルを、前記学習された前記埋め込みモデルに入力することにより変換したものである付記7の情報処理装置。
【0088】
(付記9)
対象データを取得し、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換し、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する情報処理方法。
【0089】
(付記10)
対象データを取得し、
前記対象データから抽出された特徴量ベクトルを、ベクトル空間における潜在特徴量の分布を表すモデルである埋め込みモデルに入力することにより、前記対象データを埋め込みベクトルへ変換し、
検索対象データと、当該検索対象データの埋め込みベクトルと、を対応付けた探索インデックスを用い、前記対象データの埋め込みベクトルに類似する埋め込みベクトルが対応付けられている前記検索対象データを候補データとして検索し、
前記候補データに所定の処理を適用し、前記候補データ毎に前記対象データと結合する順位を付与し、
付与された順位に基づいて、前記対象データと前記候補データとを結合した結果を出力する処理をコンピュータに実行させるプログラム。
【0090】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0091】
1 情報処理装置
11 データ取得部
12 データ変換部
13 候補検索部
14 候補ランキング部
15 結果出力部
20 埋め込みモデル記憶部
30 索引記憶部
40 ランキングモデル記憶部
50 コンピュータ