IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リクルートの特許一覧

特開2024-121751多目的データ管理のためのシステム及び方法
<>
  • 特開-多目的データ管理のためのシステム及び方法 図1
  • 特開-多目的データ管理のためのシステム及び方法 図2A
  • 特開-多目的データ管理のためのシステム及び方法 図2B
  • 特開-多目的データ管理のためのシステム及び方法 図2C
  • 特開-多目的データ管理のためのシステム及び方法 図3A
  • 特開-多目的データ管理のためのシステム及び方法 図3B
  • 特開-多目的データ管理のためのシステム及び方法 図3C
  • 特開-多目的データ管理のためのシステム及び方法 図4
  • 特開-多目的データ管理のためのシステム及び方法 図5
  • 特開-多目的データ管理のためのシステム及び方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024121751
(43)【公開日】2024-09-06
(54)【発明の名称】多目的データ管理のためのシステム及び方法
(51)【国際特許分類】
   G06F 16/24 20190101AFI20240830BHJP
【FI】
G06F16/24
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023075497
(22)【出願日】2023-05-01
(31)【優先権主張番号】63/487,249
(32)【優先日】2023-02-27
(33)【優先権主張国・地域又は機関】US
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和4年7月8日にウェブサイト(https://arxiv.org/pdf/2207.04122.pdf)にて公開 令和5年3月29日にウェブサイト(https://megagon.ai/sudowoodo-data-integration-apps/)にて公開
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.LinkedIn
2.MySQL
3.JAVA
4.SMALLTALK
5.Redis
6.MongoDB
7.FoundationDB
(71)【出願人】
【識別番号】518135412
【氏名又は名称】株式会社リクルート
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100139066
【弁理士】
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】ワン,ランフイ
(72)【発明者】
【氏名】リ,ユーリャン
(72)【発明者】
【氏名】ワン,ジン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA03
5B175HB03
(57)【要約】      (修正有)
【課題】多目的データ管理のためのシステム及び方法を提供する。
【解決手段】データ管理方法は、データの少なくとも2つのセット及びデータ管理タスク要求を受信し、表現空間における受信されたデータセット内の各エンティティの位置を決定し、あるエンティティについて、代表的なエンティティ・ペアが表現空間内でどれほど近いかに基づいて、データの少なくとも2つのセットの各セットからの代表的なエンティティ・ペアのセットを決定し、表現空間における各エンティティ・ペア内のエンティティの位置の近さを決定することによって、代表的なエンティティ・ペアのセットを分析して、候補ペアのセットに含まれる最も類似したエンティティ・ペアを識別し、ラベル付けした候補ペアを使用して学習された第1の機械学習モデルにより、候補ペアのマッチしたエンティティ・ペアを決定し、マッチしたこのペアを利用して、要求されたデータ管理タスクを実行する。
【選択図】図6
【特許請求の範囲】
【請求項1】
プロセッサ実行可能命令を記憶する1つ又は複数のメモリ・デバイスと、
命令を実行して、データ管理システムに動作を実行させるように構成された1つ又は複数のプロセッサとを備えるデータ管理システムであって、前記動作が、
データの少なくとも2つのセット、及びデータ管理タスク要求を受信することであって、データの各セットがエンティティのセットを含む、受信することと、
表現空間でのデータの各セットの、エンティティのセットの、各エンティティの位置を決定することであって、前記表現空間での前記位置が、データの前記各セットの、エンティティの前記セットの、代表的な構造に基づいて決定される、各エンティティの位置を決定することと、
あるエンティティについて、データの前記少なくとも2つのセットの各セットから、対応する代表的なエンティティ・ペアのセットを決定することであって、代表的なエンティティ・ペアの前記セットのそれぞれでのエンティティが、前記代表的なエンティティ・ペアの、あるエンティティ・ペアにおけるエンティティのベクトル表現間の角度に基づいて、前記表現空間において相対的に近いと決定される、代表的なエンティティ・ペアのセットを決定することと、
代表的なエンティティ・ペアの前記セットを分析して、候補ペアのセットを識別することであって、前記候補ペアが、最も類似しているエンティティ・ペアであると決定される前記代表的なエンティティ・ペアのエンティティ・ペアを含み、前記最も類似しているエンティティ・ペアが、代表的なエンティティ・ペアの前記セットの各エンティティ・ペアにおけるエンティティの前記表現空間での位置の近さによって決定される、代表的なエンティティ・ペアのセットを分析することと、
前記候補ペアのマッチしたエンティティ・ペアを決定することであって、第1の機械学習モデルが、ラベル付けすることによって前記候補ペアを使用して学習される、マッチしたエンティティ・ペアを決定することと、
前記マッチしたペアを利用して、前記要求されたデータ管理タスクを実行することと
を含む、データ管理システム。
【請求項2】
表現空間でのデータの前記各セットの、エンティティの前記セットの各エンティティの位置を決定することが、
対照学習技法を使用して第2のモデルを事前学習することであって、前記対照学習が、対照的目的を含み、データの前記少なくとも2つのセットを入力として獲得する、第2のモデルを事前学習することと、
前記第2のモデルを使用して、データの前記各セットの、エンティティの前記セットの前記各エンティティの代表的な構造を決定することと
をさらに含む、請求項1に記載のデータ管理システム。
【請求項3】
前記第2のモデルが畳込みニューラル・ネットワークである、請求項2に記載のデータ管理システム。
【請求項4】
代表的なエンティティ・ペアが、前記代表的なエンティティ・ペアの、あるエンティティ・ペアでのエンティティのベクトル表現間の角度に基づいて、前記角度が閾値よりも大きいときは、前記表現空間において相対的に近いと決定される、請求項1に記載のデータ管理システム。
【請求項5】
前記候補ペアを使用して、代表的なエンティティ・ペアの前記セットのサブセットにラベル付けすることによって、第1の機械学習モデルを学習し、代表的なエンティティ・ペアの前記セットの前記サブセットは、前記各エンティティ・ペアの各エンティティの符号化された表現間の類似度が、正の閾値を上回るか、又は負の閾値を下回る状態のエンティティ・ペアである、請求項1に記載のデータ管理システム。
【請求項6】
代表的なエンティティ・ペアの前記セットのサブセットにラベル付けすることが、
互いにより近いと決定されたエンティティを有する第1のエンティティ・ペアに正の値をラベル付けすることであって、前記第1のエンティティ・ペア内のエンティティが互いに類似している、ラベル付けすることと、
互いにより遠いと決定されたエンティティを有する第2のエンティティ・ペアに負の値をラベル付けすることであって、前記第2のエンティティ内のエンティティが互いに類似していない、ラベル付けすることと
をさらに含む、請求項5に記載のデータ管理システム。
【請求項7】
互いにより近いと決定されたエンティティを有する第1のエンティティ・ペアに正の値をラベル付けすることが、
前記第1のエンティティ・ペア内のエンティティ間の距離の量に応じて負の値の量を変化させること
をさらに含む、請求項6に記載のデータ管理システム。
【請求項8】
互いにより遠いと決定されたエンティティを有する第2のエンティティ・ペアに負の値をラベル付けすることが、
前記第2のエンティティ・ペア内のエンティティ間の距離の量に応じて正の値の量を変化させること
をさらに含む、請求項6に記載のデータ管理システム。
【請求項9】
データ管理タスク要求が、データ統合、データ・クリーンアップ、又はデータ・ディスカバリのうちの1つを含む、請求項1に記載のデータ管理システム。
【請求項10】
前記候補ペアのうちのマッチしたエンティティ・ペアを決定することが、マッチしているか又はマッチしていないものとしての、エンティティ・ペアの2項分類を含む、請求項1に記載のデータ管理システム。
【請求項11】
前記候補ペアのうちマッチしたエンティティ・ペアを決定することが、前記マッチしたエンティティ・ペアの各エンティティ・ペアのエンティティ間でのマッチのレベルを含む、請求項1に記載のデータ管理システム。
【請求項12】
対照学習技法を使用して第2のモデルを事前学習することが、
前記要求されたデータ管理タスクに基づいて拡張演算子を使用して前記第2のモデル用の学習データを生成することであって、前記拡張演算子が、データの前記少なくとも2つのセット内のエンティティのバリアントを生成する、学習データを生成することと、
前記第2のモデルを学習して、前記データの前記少なくとも2つのセットのエンティティと、前記バリアント内の前記エンティティのバリアントとの間の類似点又は相違点を決定することであって、前記第2のモデルを学習することが、
埋込みモデルを使用してエンティティ及び前記エンティティの前記バリアントを符号化すること、並びに
符号化されたエンティティ及び前記バリアントをベクトル空間に投影することをさらに含む、前記第2のモデルを学習することと
をさらに含む、請求項1に記載のデータ管理システム。
【請求項13】
前記候補ペアを使用して、前記要求されたデータ管理タスクに基づいて、線形層を含む第1の機械学習モデルを学習する、請求項1に記載のデータ管理システム。
【請求項14】
データ管理システムを利用するエンティティに、データ管理タスクを実行するためのシステムによって実行される方法であって、
データの少なくとも2つのセット、及びデータ管理タスク要求を受信することであって、データの各セットがエンティティのセットを含む、受信することと、
表現空間でのデータの前記各セットの、エンティティの前記セットの、各エンティティの位置を決定することであって、前記表現空間での前記位置が、データの前記各セットの、エンティティの前記セットの、代表的な構造に基づいて決定される、各エンティティの位置を決定することと、
あるエンティティについて、データの前記少なくとも2つのセットの各セットから、代表的なエンティティ・ペアのセットを決定することであって、代表的なエンティティ・ペアの前記セットのそれぞれでのエンティティが、前記代表的なエンティティ・ペアの、あるエンティティ・ペアでのエンティティのベクトル表現間の角度に基づいて、前記表現空間において相対的に近いと決定される、代表的なエンティティ・ペアのセットを決定することと、
代表的なエンティティ・ペアの前記セットを分析して、候補ペアのセットを識別することであって、前記候補ペアが、最も類似しているエンティティ・ペアであると決定される前記代表的なエンティティ・ペアのエンティティ・ペアを含み、前記最も類似しているエンティティ・ペアが、代表的なエンティティ・ペアの前記セットの各エンティティ・ペアにおけるエンティティの前記表現空間での位置の近さによって決定される、代表的なエンティティ・ペアのセットを分析することと、
前記候補ペアのマッチしたエンティティ・ペアを決定することであって、第1の機械学習モデルが、ラベル付けすることによって前記候補ペアを使用して学習される、マッチしたエンティティ・ペアを決定することと、
前記マッチしたペアを利用して、前記要求されたデータ管理タスクを実行することと
を含む、方法。
【請求項15】
表現空間でのデータの前記各セットの、エンティティの前記セットの各エンティティの位置を決定することが、
対照学習技法を使用して第2のモデルを事前学習することであって、前記対照学習が、対照的目的を含み、データの前記少なくとも2つのセットを入力として獲得する、第2のモデルを事前学習することと、
前記第2のモデルを使用して、データの前記各セットの、エンティティの前記セットの前記各エンティティの代表的な構造を決定することと
をさらに含む、請求項14に記載の方法。
【請求項16】
代表的なエンティティ・ペアが、前記代表的なエンティティ・ペアの、あるエンティティ・ペアでのエンティティのベクトル表現間の角度に基づいて、前記角度が閾値よりも大きいときは、前記表現空間において相対的に近いと決定される、請求項14に記載の方法。
【請求項17】
前記候補ペアを使用して、代表的なエンティティ・ペアの前記セットのサブセットにラベル付けして、第1の機械学習モデルを学習し、代表的なエンティティ・ペアの前記セットの前記サブセットは、前記各エンティティ・ペアの各エンティティの符号化された表現間の類似度が、正の閾値を上回るか、又は負の閾値を下回る状態のエンティティ・ペアである、請求項14に記載の方法。
【請求項18】
代表的なエンティティ・ペアの前記セットのサブセットにラベル付けすることが、
互いにより近いと決定されたエンティティを有する第1のエンティティ・ペアに正の値をラベル付けすることであって、前記第1のエンティティ・ペア内のエンティティが互いに類似している、ラベル付けすることと、
互いにより遠いと決定されたエンティティを有する第2のエンティティ・ペアに負の値をラベル付けすることであって、前記第2のエンティティ内のエンティティが互いに類似していない、ラベル付けすることと
をさらに含む、請求項17に記載の方法。
【請求項19】
互いにより近いと決定されたエンティティを有する第1のエンティティ・ペアに正の値をラベル付けすることが、
前記第1のエンティティ・ペア内のエンティティ間の距離の量に応じて負の値の量を変化させること
をさらに含む、請求項18に記載の方法。
【請求項20】
エンティティにデータ管理タスクを実行する方法をシステムに実行させるための、1つ又は複数のプロセッサによって実行可能な命令を含む、非一時的なコンピュータ可読媒体であって、前記方法が、
データの少なくとも2つのセット、及びデータ管理タスク要求を受信することであって、データの各セットがエンティティのセットを含む、受信することと、
表現空間でのデータの前記各セットの、エンティティの前記セットの、各エンティティの位置を決定することであって、前記表現空間での前記位置が、データの前記各セットの、エンティティの前記セットの、代表的な構造に基づいて決定される、各エンティティの位置を決定することと、
あるエンティティについて、データの前記少なくとも2つのセットの各セットから、代表的なエンティティ・ペアのセットを決定することであって、代表的なエンティティ・ペアの前記セットのそれぞれでのエンティティが、前記代表的なエンティティ・ペアの、あるエンティティ・ペアでのエンティティのベクトル表現間の角度に基づいて、前記表現空間において相対的に近いと決定される、代表的なエンティティ・ペアのセットを決定することと、
代表的なエンティティ・ペアの前記セットを分析して、候補ペアのセットを識別することであって、前記候補ペアが、最も類似しているエンティティ・ペアである前記代表的なエンティティ・ペアのエンティティ・ペアを含み、前記最も類似しているエンティティ・ペアが、代表的なエンティティ・ペアの前記セットの各エンティティ・ペアにおけるエンティティの前記表現空間での位置の近さを決定することを含む、代表的なエンティティ・ペアのセットを分析することと、
前記候補ペアのマッチしたエンティティ・ペアを決定することであって、第1の機械学習モデルが、ラベル付けすることによって前記候補ペアを使用して学習される、マッチしたエンティティ・ペアを決定することと、
前記マッチしたペアを利用して、前記要求されたデータ管理タスクを実行することと
を含む、非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の参照
[001] 本出願は、2023年2月27日出願の仮出願第63/487,249号に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
背景
[002] 情報記録を理解して様々なタスクを実行するために、自然言語処理システムが使用される。既存の自然言語処理システムは、特定のタスクしか実行することができず、学習データとして大規模なラベル付きデータセットを必要とする。単一のタスクを実行するこのような特定用途向けシステムは、データのデータ・フォーマット又はデータ・ソースでの変更について定期的に調整される必要がある。様々なデータ管理タスク用の手動でラベル付けされたデータ作成を伴わない、多目的使用のための技術及びシステムが必要である。このような技術及びシステムは、タイムリー且つコスト効率の高い方法で、現代の自然言語システムの要望に応えることができる。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
[003] 本開示のある特定の実施形態は、データ管理のためのシステムに関する。このシステムは、1つ又は複数のメモリ・デバイスに記憶されたプロセッサ実行可能命令を実行して方法を実行する、1つ又は複数のプロセッサを備える。この方法は、データの少なくとも2つのセット、及びデータ管理タスク要求を受信することであって、データの各セットがエンティティのセットを含む、受信することと、表現空間でのデータの各セットの、エンティティのセットの、各エンティティの位置を決定することであって、この表現空間での位置が、データの各セットの、エンティティのセットの、代表的な構造に基づいて決定される、各エンティティの位置を決定することと、あるエンティティについて、データの少なくとも2つのセットの各セットから、対応する代表的なエンティティ・ペアのセットを決定することであって、この代表的なエンティティ・ペアのセットのそれぞれでのエンティティが、代表的なエンティティ・ペアの、あるエンティティ・ペアでのエンティティのベクトル表現間の角度に基づいて、表現空間において相対的に近いと決定される、代表的なエンティティ・ペアのセットを決定することと、代表的なエンティティ・ペアのセットを分析して、候補ペアのセットを識別することであって、この候補ペアが、最も類似しているエンティティ・ペアであると決定される代表的なエンティティ・ペアのエンティティ・ペアを含み、この最も類似しているエンティティ・ペアが、代表的なエンティティ・ペアのセットの各エンティティ・ペアにおけるエンティティの表現空間での位置の近さによって決定される、代表的なエンティティ・ペアのセットを分析することと、候補ペアのマッチしたエンティティ・ペアを決定することであって、第1の機械学習モデルが、ラベル付けすることによって候補ペアを使用して学習される、マッチしたエンティティ・ペアを決定することと、マッチしたペアを利用して、要求されたデータ管理タスクを実行することとを含んでもよい。
【0004】
[004] いくつかの開示された実施形態によれば、表現空間でのデータの各セットの、エンティティのセットの各エンティティの位置を決定することは、対照学習技法を使用して第2のモデルを事前学習することであって、この対照学習が、対照的目的を含み、データの少なくとも2つのセットを入力として獲得する、第2のモデルを事前学習することと、この第2のモデルを使用して、データの各セットの、エンティティのセットの各エンティティの代表的な構造を決定することとを含んでもよい。
【0005】
[005] いくつかの開示された実施形態によれば、第2のモデルは、畳込みニューラル・ネットワークである。
【0006】
[006] いくつかの開示された実施形態によれば、代表的なエンティティ・ペアは、この代表的なエンティティ・ペアの、あるエンティティ・ペアでのエンティティのベクトル表現間の角度に基づいて、この角度が閾値よりも大きいときは、表現空間において相対的に近いと決定される。
【0007】
[007] いくつかの開示された実施形態によれば、候補ペアを使用して、代表的なエンティティ・ペアのセットのサブセットにラベル付けすることによって、第1の機械学習モデルを学習し、この代表的なエンティティ・ペアのセットのサブセットは、各エンティティ・ペアの各エンティティの符号化された表現間の類似度が、正の閾値を上回るか、又は負の閾値を下回る状態のエンティティ・ペアである。
【0008】
[008] いくつかの開示された実施形態によれば、代表的なエンティティ・ペアのセットのサブセットにラベル付けすることは、互いにより近いと決定されたエンティティを有する第1のエンティティ・ペアに正の値をラベル付けすることであって、この第1のエンティティ・ペア内のエンティティが互いに類似している、ラベル付けすることと、互いにより遠いと決定されたエンティティを有する第2のエンティティ・ペアに負の値をラベル付けすることであって、この第2のエンティティ内のエンティティが互いに類似していない、ラベル付けすることとを含んでもよい。
【0009】
[009] いくつかの開示された実施形態によれば、互いにより近いと決定されたエンティティを有する第1のエンティティ・ペアに正の値をラベル付けすることは、この第1のエンティティ・ペア内のエンティティ間の距離の量に応じて負の値の量を変化させることを含んでもよい。
【0010】
[0010] いくつかの開示された実施形態によれば、互いにより遠いと決定されたエンティティを有する第2のエンティティ・ペアに負の値をラベル付けすることは、この第2のエンティティ・ペア内のエンティティ間の距離の量に応じて正の値の量を変化させることを含んでもよい。
【0011】
[0011] いくつかの開示された実施形態によれば、データ管理タスク要求は、データ統合、データ・クリーンアップ、又はデータ・ディスカバリのうちの1つを含む。
【0012】
[0012] いくつかの開示された実施形態によれば、候補ペアのうちのマッチしたエンティティ・ペアを決定することは、マッチしているか又はマッチしていないものとしての、エンティティ・ペアの2項分類を含む。
【0013】
[0013] いくつかの開示された実施形態によれば、候補ペアのうちマッチしたエンティティ・ペアを決定することは、このマッチしたエンティティ・ペアの各エンティティ・ペアのエンティティ間でのマッチのレベルを含む。
【0014】
[0014] いくつかの開示された実施形態によれば、対照学習技法を使用して第2のモデルを事前学習することは、要求されたデータ管理タスクに基づいて拡張演算子を使用して第2のモデル用の学習データを生成することであって、この拡張演算子が、データの少なくとも2つのセット内のエンティティのバリアントを生成する、学習データを生成することと、第2のモデルを学習して、データの少なくとも2つのセットのエンティティと、バリアント内のエンティティのバリアントとの間の類似点又は相違点を決定することであって、この第2のモデルを学習することが、埋込みモデルを使用してエンティティ及びエンティティのバリアントを符号化すること、並びに符号化されたエンティティ及びバリアントをベクトル空間に投影することを含んでもよい、第2のモデルを学習することとを含んでもよい。
【0015】
[0015] いくつかの開示された実施形態によれば、候補ペアを使用して、要求されたデータ管理タスクに基づいて、線形層を含む第1の機械学習モデルを学習する。
【0016】
[0016] 本開示のある特定の実施形態は、データ管理システムを利用するエンティティにデータ管理タスクを実行するコンピュータ実装方法に関する。この方法は、データの少なくとも2つのセット、及びデータ管理タスク要求を受信することであって、データの各セットがエンティティのセットを含む、受信することと、表現空間でのデータの各セットの、エンティティのセットの、各エンティティの位置を決定することであって、この表現空間での位置が、データの各セットの、エンティティのセットの、代表的な構造に基づいて決定される、各エンティティの位置を決定することと、あるエンティティについて、データの少なくとも2つのセットの各セットから、代表的なエンティティ・ペアのセットを決定することであって、この代表的なエンティティ・ペアのセットのそれぞれでのエンティティが、代表的なエンティティ・ペアの、あるエンティティ・ペアでのエンティティのベクトル表現間の角度に基づいて、表現空間において相対的に近いと決定される、代表的なエンティティ・ペアのセットを決定することと、代表的なエンティティ・ペアのセットを分析して、候補ペアのセットを識別することであって、この候補ペアが、最も類似しているエンティティ・ペアであると決定される代表的なエンティティ・ペアのエンティティ・ペアを含み、この最も類似しているエンティティ・ペアが、代表的なエンティティ・ペアのセットの各エンティティ・ペアにおけるエンティティの表現空間での位置の近さによって決定される、代表的なエンティティ・ペアのセットを分析することと、候補ペアのマッチしたエンティティ・ペアを決定することであって、第1の機械学習モデルが、ラベル付けすることによって候補ペアを使用して学習される、マッチしたエンティティ・ペアを決定することと、マッチしたペアを利用して、要求されたデータ管理タスクを実行することとを含んでもよい。
【0017】
[0017] 本開示のある特定の実施形態は、データ管理タスクをエンティティに実行する方法をシステムが実行できるようにするための、1つ又は複数のプロセッサによって実行可能な命令を含む、非一時的なコンピュータ可読媒体に関する。この方法は、データの少なくとも2つのセット、及びデータ管理タスク要求を受信することであって、データの各セットがエンティティのセットを含む、受信することと、表現空間でのデータの各セットの、エンティティのセットの、各エンティティの位置を決定することであって、この表現空間での位置が、データの各セットの、エンティティのセットの、代表的な構造に基づいて決定される、各エンティティの位置を決定することと、あるエンティティについて、データの少なくとも2つのセットの各セットから、代表的なエンティティ・ペアのセットを決定することであって、この代表的なエンティティ・ペアのセットのそれぞれでのエンティティが、代表的なエンティティ・ペアの、あるエンティティ・ペアでのエンティティのベクトル表現間の角度に基づいて、表現空間において相対的に近いと決定される、代表的なエンティティ・ペアのセットを決定することと、代表的なエンティティ・ペアのセットを分析して、候補ペアのセットを識別することであって、この候補ペアが、最も類似しているエンティティ・ペアであると決定される代表的なエンティティ・ペアのエンティティ・ペアを含み、この最も類似しているエンティティ・ペアが、代表的なエンティティ・ペアのセットの各エンティティ・ペアにおけるエンティティの表現空間での位置の近さによって決定される、代表的なエンティティ・ペアのセットを分析することと、候補ペアのマッチしたエンティティ・ペアを決定することであって、第1の機械学習モデルが、ラベル付けすることによって候補ペアを使用して学習される、マッチしたエンティティ・ペアを決定することと、マッチしたペアを利用して、要求されたデータ管理タスクを実行することとを含んでもよい。
【0018】
図面の簡単な説明
[0018] 本明細書に組み込まれ、本明細書の一部を構成する各添付図面は、いくつかの実施形態を示し、また説明とともに、開示された原理を説明するのに役立つ。
【図面の簡単な説明】
【0019】
図1】[0019]本開示の実施形態による、データ管理システム100の例示的な構成要素を示すブロック図である。
図2A】[0020]本開示の実施形態による、データ管理システム100を使用して、エンティティ・マッチングの例示的なデータ統合タスクを解決する流れ図である。
図2B】[0021]本開示の実施形態による、対照事前学習用の例示的なデータ表現モデルの流れ図を示す。
図2C】[0022]本開示の実施形態による、ファイン・チューナでのデータフローの一例の流れ図を示す。
図3A】[0023]本開示の実施形態による、エンティティのペア間で実行されるデータ管理タスクの例示的な表形式の表現を示す。
図3B】[0023]本開示の実施形態による、エンティティのペア間で実行されるデータ管理タスクの例示的な表形式の表現を示す。
図3C】[0023]本開示の実施形態による、エンティティのペア間で実行されるデータ管理タスクの例示的な表形式の表現を示す。
図4】[0024]本開示の実施形態による、事前学習された言語モデルによるデータの例示的なシリアル化を示す。
図5】[0025]本開示のいくつかの実施形態による、例示的な分散システムの概略図を示す。
図6】[0026]本開示の実施形態による、多目的データ管理システムを使用する、データ管理用の例示的な方法を示す流れ図である。
【発明を実施するための形態】
【0020】
詳細な説明
[0027] 以下の詳細な説明では、数多くの詳細を説明して、開示された例示的な実施形態を十分に理解できるようにする。例示的な実施形態の原理は、あらゆる具体的な詳細なしに実施できることが、当業者には理解される。開示された各実施形態は、例示的なものであり、特許請求の範囲及びこの開示による実現可能なあらゆる実施形態を開示するものではない。例示的な実施形態の原理を曖昧にしないように、よく知られた方法、手順、及び構成要素を詳細には説明してこなかった。明示的に示されていない限り、本明細書に記載の例示的な方法及びプロセスは、特定の順序又はシーケンスに制約されるものではなく、特定のシステム構成に制約されるものでもない。さらに、説明される実施形態又はその要素の一部は、同時に、同じ時点で、若しくは並行して発生してもよく、又はそのように実行されてもよい。
【0021】
[0028] 本明細書では、別段の具体的な言及がない限り、「又は」という用語は、実行不可能な場合を除いて、実行可能なあらゆる組合せを包含する。たとえば、ある構成要素がA又はBを含むことができると述べられている場合、別段の具体的な言及がない限り、又は実現不可能でない限り、この構成要素は、A若しくはB、又はA及びBを含むことができる。第2の例として、ある構成要素がA、B、又はCを含むことができると述べられている場合、別段の具体的な言及がない限り、又は実現不可能でない限り、この構成要素は、A若しくはB若しくはC、又はA及びB、又はA及びC、又はB及びC、又はA及びB及びCを含むことができる。
【0022】
[0029] 次に、開示された各実施形態を詳細に説明することにする。各実施形態の例は添付図面に示す。明示的に示されていない限り、本明細書での送信及び受信は、特定の要求に応答して、又はそのような特定の要求なしに、送信又は受信することを含む、広い意味を有するものと理解される。したがって、これらの用語は、送信及び受信の能動形式と受動形式の両方を対象として含む。
【0023】
[0030] 本明細書に記載の実施形態は、マッチング・モデルを使用するための技術及び技法を提供して、コンピューティング・システムによる、自然言語技法を使用したラベル付けなしデータを用いた事前学習に基づいて、データ統合(たとえば、エンティティ・マッチング)、データ・クリーニング(たとえば、誤り訂正)、データ・ディスカバリ(たとえば、カラム型検出)など、様々なデータ管理タスクを実行する。
【0024】
[0031] 説明される実施形態は、既存の自然言語処理技法に勝る明確な利点をもたらす。他のプロセスとは異なり、開示された実施形態で説明されるデータ・マッチング技法は、様々なタイプのエンティティを用いた複数のデータ統合及びデータ作成のタスク用に使用することができる。さらに、説明される実施形態は、これらをマッチング・ベースの問題に変え、BERTなど利用可能な言語モデルがデータ管理タスクを解決できるようにする。トランスフォーマ言語モデルを使用することによって、本明細書に開示される実施形態は、エンティティ間の様々な関係を決定することができる。マッチング・ベースの問題定義を使用して単一のデータ管理フレームワークを可能にすることにより、本明細書に開示される実施形態は、1つのデータ管理タスクだけのために構築された、時間のかかる高価な専用の機械学習ソリューションを必要とすることなく、様々な産業及び個別化された状況において自然言語処理を使用する能力を改善することができる。
【0025】
[0032] 図1は、本開示の実施形態による、データ管理システム100の例示的な構成要素を示すブロック図である。データ管理システム100は、エンティティの候補ペアを作成して、マッチをチェックするためのプロセッサ110を備えてもよい。ある実施形態では、ユーザ入力、他のシステム、他のデータ・ソース、又はデータ管理システム100若しくはその構成要素からのフィードバックによって、この候補ペアを提供することができる。図1に示すように、データ管理システム100は、プロセッサ110やマッチャ120などの構成要素を備えてもよい。データ管理システム100はまた、データセット・リポジトリ150などのデータ記憶装置を備えてもよい。データ管理システム100は、マッチャ120を使用して、データセット・リポジトリ150内の様々なエンティティ・タイプのエンティティをマッチさせる。実施形態によっては、データ管理システム100は、プロセッサ110及びマッチャ120の機械学習(ML)モデルを学習するための入力として、データセット・リポジトリ150に記憶されたデータを使用してもよい。データ管理システム100は、プロセッサ110及びマッチャ120での既存のトランスフォーマ・モデルを使用してもよい。たとえば、データ管理システム100は、既存の言語モデルBERTを使用して、マッチするテキストベースのエンティティを識別してもよい。実施形態によっては、データ管理システム100は、プロセッサ110を使用して、マッチャ120によってマッチされたエンティティを前処理してもよい。
【0026】
[0033] プロセッサ110は、マッチャ120などのダウンストリーム・モジュールが、利用可能なエンティティの実現可能なあらゆるペアの、エンティティのペアのサブセットをマッチさせることを管理可能にする。プロセッサ110は、データ表現モデル111、ブロッカ112、サンプラ113など複数のプリプロセッサを備え、入力エンティティを処理して、エンティティの様々な組合せの中で潜在的な候補ペアを作成して、マッチしたエンティティを見つける。データ管理システム100は、プロセッサ110によって使用される、エンティティにデータを構文解析するためのパーサ130を備えてもよい。実施形態によっては、プロセッサ110の構成要素によってパーサ130を使用して、データ管理システム100をさらに最適化してもよい。
【0027】
[0034] データ表現モデル111は、入力エンティティのエンティティ・ペアリングのデータ表現を生成して、マッチャ120とともに使用するためのエンティティ・ペアを識別するのに役立ててもよい。データ表現モデル111は、関連する候補エンティティのペアリングを識別して、マッチしたエンティティを見つけるようにするための、対照学習技法を使用して学習される機械学習モデルでもよい。データ表現モデル111は、エンティティ内のデータの基本となる構造を見直すことによって、ラベル付けなしのデータを使用して、関連する候補ペアを識別してもよい。データ表現モデル111は、エンティティ・ペアリングにおけるエンティティ間の近さを示すことによって、類似しているエンティティとの潜在的なエンティティ・ペアリングを識別するのに役立つデータ表現を生成してもよい。データ管理システム100は、データ表現を変換して、データ管理システム100内の他のモジュールに入力してもよい。実施形態によっては、データ表現に適用される変換は、プロセッサ110及びマッチャ120内の他のモジュールに取って代わってもよい。たとえば、データ管理システム100は、候補ペアのデータ表現によって識別される候補ペアとして最も類似しているエンティティ・ペアリングを識別して、ブロッカ112に取って代わるのに役立つことがある。実施形態によっては、データ表現を使用して、他の機械学習モデルを学習して、マッチング・エンティティを見つけてもよい。たとえば、データ管理システム100は、マッチャ120用の学習データとして使用するために、データ表現のサブセットをラベル付けするのに役立つことがある。
【0028】
[0035] ブロッカ112は、決してマッチすることにならないエンティティ・ペアリングをブロックし、マッチャ120への入力として提供される候補エンティティ・ペアリングを識別するのに役立つことがある。データ管理システム100は、エンティティの潜在的なマッチングのためにマッチャ120によって見直されるエンティティのペアの数を制限するように、ユーザ170がブロッカ112のブロッキング機能を構成できるようにしてもよい。ブロッキング機能は、単純なルールベースのプロセッサでもよく、このプロセッサは、高い再現率で高速であり、関係のないマッチのみを回避する。たとえば、マッチしているジョブを見つけるための場面では、ブロッカ112は、このブロッカ112のブロッキング機能として「役職」の属性値がマッチしていないことを使用してもよい。実施形態によっては、ブロッカ112は、潜在的なマッチを予測するためにマッチャ120に送られるエンティティのペアをさらに精緻化するための、複数のブロッキング機能を含むように構成されてもよい。たとえば、ブロッカ112は、マッチを予測するためにマッチャ120と共有するエンティティの実現可能なペアをさらに精緻化するための、「タイトル」マッチ・ルールベースのブロッカ機能の後に適用されるQグラムのブロッキング機能を含んでもよい。Qグラムのブロッキング機能は、エンティティ内の2つのシーケンスのおおよそのマッチングを可能にすることによって、マッチング用の実現可能なペアのセットを精緻化するために、エンティティ・ペアをブロックする。2つのシーケンスのおおよそのマッチングは、長さがQのサブシーケンスだけこれらのシーケンスが異なることを可能にすることを含んでもよい。エンティティの任意の2つのシーケンスが、長さがQのサブシーケンスよりも大きく異なる場合には、この2つのシーケンスによって表される2つのエンティティのペアリングが、これまでのペアリングからブロックされる。ユーザ170は、ブロッカ112に含めるためのブロッキング機能を選択又は定義するように、データ管理システム100を構成してもよい。
【0029】
[0036] 実施形態によっては、ブロッカ112によって利用されるブロッキング機能は、データ・リポジトリ150からのデータ表現の類似点検索を利用してもよい。類似点検索に基づくブロッキング機能は、エンティティ類似点機能でもよい。実施形態によっては、エンティティ類似点機能は、フィルタを利用して、最も類似している上位k個のペア、又は閾値よりも大きい類似点のエンティティ・ペアを識別することによって、類似しているエンティティ・ペアを見つけてもよい。ユーザ170は、類似しているエンティティを見つけるのを開始する際に、閾値を設定してもよい。
【0030】
[0037] サンプラ113は、ブロッカ112によってブロックされないエンティティ・ペアをフィルタリングしてもよい。サンプラ113は、エンティティ・ペアリングにおいてマッチング・エンティティを見つけることにおいて、考慮されない可能性があってもよいコンテンツをマッチさせることによって、フィルタリングしてもよい。サンプラ113は、エンティティのサブセットを選択して、入力ペアをマッチャ120に与えるように、ユーザ170によって構成されてもよい。サンプラ113の構成は、データ管理システム100によって考慮されるある特定のエンティティ・ペアの数、又はデータ管理システム100によって識別されると予想されるマッチの数を含んでもよい。サンプラ113は、複数のフィルタをともに積み重ねることを可能にしてもよい。
【0031】
[0038] マッチャ120は、マッチング・エンティティを識別するのに役立つことがある機械学習(ML)モデルである。マッチャ120は、データセット・リポジトリ150内に存在するエンティティの候補ペアを検索して、最良のマッチング・エンティティを見つけてもよい。マッチャ120は、エンティティの各ペアをスコア付けし、最も高いマッチ・スコアを有するエンティティ・ペアの上位パーセンテージを選択することによって、最良のマッチング・エンティティを見つけてもよい。実施形態によっては、マッチャ120は、マッチ・スコアが低いエンティティ・ペアを除外することによって、マッチしたエンティティを選択してもよい。マッチャ120は、ユーザ170によって要求されるデータ管理タスクに基づいて、エンティティ・ペアリングを分類してもよい。たとえば、誤り訂正タスク用に使用されるマッチャ120は、正確な訂正又は不正確な訂正のいずれかとして、エンティティ・ペアリングを分類してもよい。
【0032】
[0039] マッチャ120は、エンティティ・ペアリングを分類するのに役立つ機械学習モデルでもよい。図1に示すように、マッチャ120は、マッチしたエンティティ・ペアを予測するためのデータを設定するための、入力層121を含んでもよい。マッチャ120はまた、入力エンティティ・ペアを処理し、関連情報をフィルタ除去し、マッチ結果を提示するための、符号化層122、プール層123、及び出力層124を含んでもよい。
【0033】
[0040] マッチャ120は、修正を伴う既知の言語モデル、たとえば、BERT、Long Formerなどでもよい。修正は、既存の層の修正を含んでもよく、たとえば、符号化層122は、長い文字列を有する最小限に構造化されたジョブ・エンティティをさらに構造化するための分類子を含んでもよい。実施形態によっては、修正は、実現可能なマッチの数を低減させ、最良マッチを予測するための、プール層123など、新規の層の追加を含んでもよい。出力層124は、タスクを解決するためのマッチング・ベースの手法を使用して、データ管理タスクに基づいて、マッチしたエンティティ・ペアの2項分類を提示してもよい。たとえば、データ訂正用のデータ管理タスクは、エンティティ内のデータへの真の訂正として、マッチを分類してもよい。別の例では、カラム型検出タスク用に使用されるマッチャ120の出力層124は、タイプに基づいてマッチング・カラムを識別してもよい。
【0034】
[0041] マッチャ120は、データセット・リポジトリ150からエンティティ・ペアにアクセスして、マッチを予測してもよい。実施形態によっては、マッチャ120は、エンティティ・ペアを直接受信して、マッチを予測してもよい。ユーザ170は、ネットワーク160を介して、エンティティ・ペアをマッチャ120に供給してもよく、又はプロセッサ110は、エンティティ・ペアを供給して、マッチを予測してもよい。実施形態によっては、マッチャ120は、マッチ予測を実行する前に、エンティティ・ペアのセットをバッファリングしてもよい。
【0035】
[0042] パーサ130は、機械可読フォーマットにエンティティを変換するのに役立つ。たとえば、パーサ130は、HTML及びPDFのフォーマットでのエンティティを、機械可読JSONフォーマットへと抽出し、エンティティのコンテンツに階層構造を提供してもよい。パーサ130は、エンティティのコンテンツの順序、又はそのコンテンツ自体など、エンティティのコンテンツ構造を修正することはない。パーサ130はまた、エンティティの意味論的意味を変更することなく、エンティティを変換してもよい。
【0036】
[0043] パーサ130は、ルールベースのプロセッサを使用して、エンティティ内のコンテンツを構造化フォーマットに変換してもよい。パーサ130によって処理されるエンティティに提供される階層構造は、エンティティ・タイプに依存する場合がある。たとえば、住所データは、半構造化JSONフォーマットのデータに変換するための、番地、都市、及び州の既知の構造を有する傾向がある。パーサ130は、例示的なテンプレート・スキーマを使用して、エンティティのコンテンツを変換してもよい。実施形態によっては、パーサ130は、提供されたエンティティに基づいてスキーマを生成してもよい。パーサ130は、同じタイプの複数のエンティティを見直して、このエンティティを、半構造化JSONフォーマットのデータに変換するための標準スキーマを決定してもよい。たとえば、パーサ130は、利用可能なエンティティ及びそのコンテンツ、並びにそのコンテンツの順序に基づいて、キーとして使用する属性、及びJSONフォーマットのデータの階層構造を決定してもよい。パーサ130は、エンティティを解析して、マッチャ120が使用するために、このエンティティを変換してもよい。パーサ130は、エンティティ・ペア内のエンティティの意味論的意味を損なうことなく、ある特定の単語を同義語に置換することによって、エンティティ・ペアリングを変換してもよい。
【0037】
[0044] 実施形態によっては、パーサ130は、様々なデータ・ソース(たとえば、ウェブサイト上での社外人材募集)からデータを検索し、このデータを処理してエンティティにすると、データ管理システム100の残りとともに、このエンティティを使用できるようになる。パーサ130は、データ抽出器131、データ・トランスフォーマ132、及びデータ・ローダ133のモジュールをさらに備えてもよい。データ抽出器131及びデータ・トランスフォーマ132は協働して、データセット・リポジトリ150に記憶されるエンティティを生成してもよい。データ・トランスフォーマ132は、データ抽出器131によってデータ・ソースから抽出された異種データを接続し、これをデータセット・リポジトリ150に記憶してもよい。
【0038】
[0045] データ抽出器131は、様々なデータ・ソース、たとえばIndeed.com、又はDice.comなどの人材募集サイト、glassdoor.comなどの仕事レビュー・サイト、LinkedInなどのソーシャル・ネットワークからデータ検索する。これらのデータ・ソースのそれぞれは、異なるタイプのデータ・ソースを表してもよい。たとえば、データ・ソースは、データセット・リポジトリ150と類似のデータベースでもよい。データ・ソースは、候補のレジュメなどの構造化データを表してもよい。実施形態によっては、データ・ソースは、人材募集や仕事レビューなどの単層ファイルでもよい。さらに、データ・ソースは、部分的に重複するか、又は完全に異なるデータセットを含んでもよい。実施形態によっては、あるデータ・ソースは、人材募集についての情報を含んでもよく、他のデータ・ソースは、人材募集で広告された役職の給与情報、並びに人材募集で広告された役職と類似の役職でのこれまでの雇用主及び現在の雇用主によるレビューを含んでもよい。データ抽出器131は、様々なデータ・ソースと対話し、関連データを検索し、そのデータをデータ・トランスフォーマ132に提供してもよい。
【0039】
[0046] データ・トランスフォーマ132は、データ抽出器131からデータを受信し、このデータを処理して標準フォーマットにしてもよい。実施形態によっては、データ・トランスフォーマ132は、日付、住所、役職などのデータを正規化してもよい。たとえば、人材募集用のデータ・ソースは、文字列(たとえば、技術者、ディレクタ、マネージャなど)としての役職を含んでもよく、仕事レビュー用のデータ・ソースは、組織内での様々なレベル(たとえば、L1、L2など)としての役職を記憶してもよい。この例では、データ・トランスフォーマ132は、データ抽出器131を通して提供されたデータを、一貫したフォーマットに修正又は正規化してもよい。したがって、データ・トランスフォーマ132は、データ抽出器131を介して提供されたデータを、効果的にクリーニングすることができ、その結果、あらゆるデータは様々なソースから発生するが、一貫したフォーマットを有する。実施形態によっては、データ・トランスフォーマ132は、様々なソースからのデータを組み合わせることによって、データをクリーニングしてもよい。たとえば、仕事レビュー・データは、それぞれの役職に対する支払い範囲を含んでもよいが、人材募集は、支払い範囲を含まなくてもよい。第2の例では、データ・トランスフォーマ132は、人材募集のウェブ・ページを構文解析することによって生成される人材募集エンティティに、欠落している支払い範囲を含めてもよい。
【0040】
[0047] さらに、データ・トランスフォーマ132は、データ抽出器131によって送信されたデータから、追加のデータ点を抽出してもよい。たとえば、データ・トランスフォーマ132は、仕事場の位置及び会社の位置についての別々のデータ・フィールドを抽出することによって、仕事が遠隔の場所であるかどうか決定してもよい。データ・トランスフォーマ132はまた、正規化やディミーニングなど、カテゴリカル・データ及び数値データに、他の線形変換及び非線形変換、並びに抽出を実行してもよい。実施形態によっては、データ・トランスフォーマ132は、データ抽出器131によって抽出されたデータを匿名化してもよい。データ・トランスフォーマ132は、データを匿名化して、データ管理システム100での機械学習モデルを学習するために、プライベート・データが使用されるのを回避することができる。データ・トランスフォーマ132は、変換又は抽出されたデータを、データ・ローダ133に提供してもよい。実施形態によっては、データ・トランスフォーマ132は、データ・ローダ133、及びプロセッサ110の他のモジュールによって後に使用するために、変換されたデータをデータセット・リポジトリ150に記憶してもよい。
【0041】
[0048] データ・ローダ133は、データ・トランスフォーマ132から、正規化されたデータを受信してもよい。データ・ローダ133は、データ管理システム100の特定の要求条件に応じて、様々なフォーマットにデータをマージし、データセット・リポジトリ150などの適切な記憶機構にこのデータを記憶してもよい。
【0042】
[0049] データセット・リポジトリ150は、リレーショナル・データベース管理システム(RDBMS)(たとえば、Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL、又はIBM DB2)とすることができる。RDBMSは、行全体又はレコード全体についてのデータを、可能な限り少ない操作で、データベースから効率的に戻すように設計することができる。RDBMSは、データ構造内のデータの各行を直列化することによって、データを記憶することができる。RDBMSでは、レコードのあらゆるカテゴリに関連付けられたデータに1回の操作でアクセスできるように、このレコードに関連付けられたデータを連続的に記憶することができる。さらに、RDBMSは、異種のテーブルに記憶された関連レコードへのアクセスを、効率的に可能にすることができる。たとえば、RDBMSでは、テーブルを参照列によってリンクすることができ、RDBMSは、各テーブルをともに結合して、データ構造についてのデータを検索することができる。実施形態によっては、データセット・リポジトリ150は、ノンリレーショナル・データベース・システム(NRDBMS)(たとえば、XML、Cassandra、CouchDB、MongoDB、Oracle NoSQL Database、FoundationDB、又はRedis)とすることができる。ノンリレーショナル・データベース・システムは、とりわけ、キーバリュー・ストア、ドキュメント・ストア、グラフ、及びタプル・ストアなど、様々なデータ構造を使用してデータを記憶することができる。たとえば、ドキュメント・ストアを使用するノンリレーショナル・データベースは、特定の識別子に関連付けられたデータのすべてを、XMLを使用して符号化された単一のドキュメントに組み合わせることもできる。データセット・リポジトリ150はまた、Memcachedなどのインメモリ・データベースとすることができる。実施形態によっては、データセット・リポジトリ150のコンテンツは、たとえばRedisにおいて実現可能なように、永続記憶データベースとインメモリ・データベースの両方に存在することができる。
【0043】
[0050] データ管理システム100は、ネットワーク160を介してエンティティ間のマッチを予測するための要求を受信することができる。ネットワーク160は、ローカル・ネットワーク、インターネット、又はクラウドとすることができる。ユーザ170は、ネットワーク160を介して、マッチング・エンティティの要求を、データ管理システム100に送信することができる。ユーザ170は、ユーザ装置180を介して、データ管理システム100と対話することができる。ユーザ装置180は、ウェブ・ブラウザ又はインストールされたアプリケーションを使用する、タブレット、ラップトップ、又はポータブル・コンピュータなど、様々な装置とすることができる。
【0044】
[0051] データ管理システム100の構成要素は、単一のコンピュータ上で実行することができ、又は複数のコンピュータ若しくはプロセッサ全体にわたって分散させることができる。データ管理システム100の様々な構成要素は、ネットワーク(たとえば、LAN若しくはWAN)160、又はインターネットを介して通信することができる。実施形態によっては、複数のコンピュータ・インスタンス又はプロセッサ上で、各構成要素を実行することができる。データ管理システム100の各構成要素のインスタンスは、クラウド・ネットワーク(たとえば、Amazon AWS、Microsoft Azure、Google Cloud)など、接続されたネットワークの一部とすることができる。実施形態によっては、データ管理システム100の構成要素の一部又はすべては、ハイパーバイザ又は仮想マシンなど、仮想化された環境において実行される。
【0045】
[0052] 図2Aは、本開示の実施形態による、データ管理システム100を使用してエンティティ・マッチングの例示的なデータ統合タスクを解決する流れ図である。図2Aに示すように、データ管理システム100は、2つのパイプライン、すなわち上端でのエンティティ・マッチング・パイプライン210、及び下端での対照学習パイプライン220を使用して、エンティティ・マッチングを実行する。エンティティ・マッチング・パイプライン210は、標準的なエンティティ・マッチング・パイプラインであり、ブロッカ112及びマッチャ120を含んでもよく、対照学習パイプライン220は、データセット・リポジトリ150からのデータセットの代表的な構造を理解するためのデータ表現モデル111を含む。データ表現モデル111は、入力エンティティ201上で学習されて、入力エンティティ201内のエンティティの類似のデータ表現を学習する。
【0046】
[0053] 対照学習パイプライン220は、エンティティ・マッチング・パイプライン210内のモジュールに入力を提供する。対照学習パイプライン220は、エンティティ・マッチング・パイプライン210内のモジュールへの入力として、データ表現モデル111の出力を提供してもよい。たとえば、対照学習パイプライン220は、エンティティ・マッチング・パイプライン210内のブロッカ112にデータ表現221を提供して、マッチング・エンティティを見つけるために、エンティティの候補ペア211を識別してもよい。実施形態によっては、対照学習パイプライン220は、データ表現モデル111からの出力を変換してもよい。対照学習パイプライン220は、エンティティ・マッチング・パイプライン210のモジュールの相対的に良好な性能のために、出力を変換してもよい。たとえば、対照学習パイプライン220は、擬似ラベラ222を使用することによってデータ表現221を変換して、信頼度が高い類似のデータ表現エンティティを識別してもよい。別の例では、対照学習パイプライン220は、ファイン・チューナ223を使用することによって、データ表現221を変換してもよい。ファイン・チューナ223及びその構成要素の詳細な説明が、以下の図2Cの説明において提示される。実施形態によっては、擬似ラベラ222及びファイン・チューナ223は、データ表現モデル111の一部でもよい。データ表現モデル111は、複数の層を有する機械学習モデルでもよく、機械学習モデルの出力層として擬似ラベラ222及びファイン・チューナ223を有する。
【0047】
[0054] 対照学習パイプライン220は、データ表現221の質を改善することによって、データ表現モデル111の性能を改善してもよい。データ管理システム100は、データ表現221を使用して生成される候補ペア211に基づいて、対照学習パイプライン220によって生成されるデータ表現221の質を評価してもよい。対照学習パイプライン220は、入力エンティティ201を使用して形成されるデータ表現221内のデータの変換不変表現について学習することによって、データ表現221の質を改善してもよい。変換不変表現を学習するために、対照学習パイプライン220は、エンティティ(たとえば、入力エンティティ201)内のデータの変換を実行する。変換には、同義語置換、スパン削除、及び意味論的意味を保存する他の変換が含まれ得る。実施形態によっては、対照学習パイプライン220は、データ拡張技法を使用して、入力エンティティ201内のエンティティを変換することによって、相対的にきめ細かい変換を実現してもよい。たとえば、対照学習パイプライン220は、入力エンティティ201内のエンティティでの各単語の、単語埋込みベクトル表現を変換してもよい。入力エンティティ201のエンティティのこれらの変換は、直接に、また単語埋込みレベルで、データ表現モデル111の対照学習用の、密接に関連した複数のエンティティを生成するのに役立つ。データ管理システムは、データ拡張演算子を使用して、データ表現モデル111用の学習データとして使用される、元のエンティティに密接に関連するエンティティを生成してもよい。バリアントを生成するために選択されるデータ拡張演算子は、データ管理タスク(たとえば、誤り訂正、カラム型検出、エンティティ・マッチングなど)に基づいている。
【0048】
[0055] 実施形態によっては、対照学習パイプライン220は、データ表現モデル111を学習するための負の例を取得して、入力エンティティ201内の異なるエンティティをどのように分離するかを学習することによって、データ表現モデル111を改善する。対照学習パイプライン220は、入力エンティティ201内のエンティティのグループに、データ表現モデル111を学習することによって、入力エンティティ201内の異なるエンティティを識別する。対照学習パイプライン220は、ほんのわずかに異なる場合がある各グループ内の、異なるエンティティを識別するための入力としてのグループを提供してもよい。実施形態によっては、対照学習パイプライン220は、k平均法によってエンティティのグループを取得してもよい。入力エンティティ201全体に対するサブセット内の異なるエンティティを識別するデータは、データ表現モデル111に、入力エンティティ201内の各エンティティ間の最小差を学習させる。
【0049】
[0056] 擬似ラベラ222は、データ表現221から追加の類似度知識を抽出し、データ表現221内のエンティティ・ペアとして表される入力エンティティ201内のエンティティにラベルとして付けることによって、マッチャ120の性能を改善するのに役立つ。実施形態によっては、類似度知識は、候補ペア211に付けるべき確率ラベルである。実施形態によっては、擬似ラベラ222は、サンプルのラベル付きペア212に確率ラベルを付けてもよい。
【0050】
[0057] 擬似ラベラ222は、最も似かよっているか又は異なっているエンティティ・ペアのサブセットを見つけるために、データ表現221に添付すべきラベルを決定するための埋込みモデルを含んでもよい。擬似ラベラ222において使用される埋込みモデルは、BERTなど既存の言語モデルに基づいた、事前学習された埋込みモデルである。事前学習埋込みモデルの詳細な説明は、図2Bでの以下の説明においておこなう。
【0051】
[0058] 擬似ラベラ222は、ラベル付けされていないエンティティ・ペアの各ペア内のエンティティ間のマッチの信頼値を測定することによって、候補ペア211内のラベル付けされていないエンティティ・ペアを識別することにより、類似度知識を抽出する。擬似ラベラ222は、埋込みモデルによって評価されるコサイン類似度を計算することによって、候補ペア211内のマッチング・エンティティの信頼値を測定する。実施形態によっては、擬似ラベラ222は、コサイン類似度が正の閾値を上回る場合は正のラベルを割り当て、コサイン類似度が負の閾値を下回る場合には負のラベルを割り当てる。
【0052】
[0059] データ管理システム100は、ラベルを決定するための閾値についての値をカスタマイズしてもよい。データ管理システム100は、閾値のカスタム値を自動的に設定してもよい。実施形態によっては、データ管理システム100は、マッチャ120において機械学習モデルを学習するときのバイアスを回避するために、データ管理タスクに基づいて閾値を設定してもよい。たとえば、エンティティ・マッチング又はデータ・クリーニングのタスクは、たいていのエンティティがマッチしないか、又はすでにクリーンになっているので、負のラベルでタグ付けされた数多くのペアを有することになる。このような場面では、負のラベルでタグ付けされた候補ペアの数を低減するために、非常に低い負の閾値を有することが重要となり得る。実施形態によっては、データ管理システム100は、閾値のユーザ・カスタマイゼーションを可能にしてもよい。データ管理システム100は、エンティティの特定の割合について手動で設定された閾値と、ヒューリスティックス(たとえば、山登りヒューリスティック)に基づいて自動的に設定された残りの閾値との組合せを使用して、入力エンティティ201の現在のセットについての最適値を見つけてもよい。
【0053】
[0060] 実施形態によっては、データ管理システム100は、データ表現モデル111の出力を使用して、エンティティ・マッチング・パイプライン210内のモジュールの実行ステップを置換してもよい。たとえば、データ表現モデル111は、類似点検索を実行して、ブロッカ112のように、類似しているエンティティを有するエンティティ・ペアを候補ペアとして識別する。対照学習パイプライン220は、最近傍技法を適用して、データ表現221内の上位k個の最も類似しているエンティティを候補ペア211として検索することによって、データ表現221を変換して、ブロッカ112を置換することができる。
【0054】
[0061] データ管理システム100は、マッチング関連データ項目としてタスクを定式化することによって、様々なデータ管理タスクを処理する。データ項目は、入力エンティティ201のテーブル内のテーブル行、テーブル列、又はセル値を含んでもよい。データ管理システム100は、データ項目ペア間の2項関係をカスタマイズすることによって、複数のデータ管理タスクを実行してもよい。たとえば、2項関係は、2つのエンティティが、エンティティ・マッチ・タスクにおける実世界の同じエンティティを指すかどうか、エンティティが、データ・クリーニング・タスクにおいて誤りのあるエンティティに対する正しい候補訂正であるかどうか、又は2つのテーブル列が、データ・ディスカバリ・タスクにおいて同じ意味論的タイプを有するかどうかでもよい。
【0055】
[0062] データ管理システム100はまた、データ管理タスクに基づいて、エンティティ・マッチング・パイプライン210内の個々のモジュールを更新してもよい。たとえば、エンティティ・マッチング・タスクにおいて、ブロッカ112は、再現率が高い候補ペア211の小さなセットを生成してもよく、マッチャ120は、再現率が高く、精度率が高い候補ペア211のマッチしたペア213を生成してもよい。対照学習パイプライン220は、ブロッカ112及びマッチャ120の様々な要求に、データ表現221の変換された必要なデータ表現を提供する。
【0056】
[0063] 対照学習パイプライン220は、データ表現221の各データ項目のベクトル表現を生成し、ブロッカ112を使用して高速の類似点検索用のベクトルを索引付けして、候補ペアを識別することによって、高い再現率を実現してもよい。実施形態によっては、対照学習パイプライン220は、単一のクラスタからの生成されたベクトル及びサンプル・ベクトルをクラスタ化して、データ表現モデル221を学習して、その再現率を改善してもよい。クラスタ内の選択されたサンプル・ベクトルは、区別するのが相対的に困難な異なるエンティティ・ペアの負のサンプルである。データ表現モデル221は、クラスタ内からの選択された負のサンプルを使用して学習されて、エンティティ(たとえば、入力エンティティ201)を表すベクトル内の意味特徴を識別することを学習してもよい。
【0057】
[0064] 図2Bは、本開示の実施形態による、対照事前学習用の例示的なデータ表現モデルの流れ図を示す。データ表現モデル111は、類似しているエンティティのペア間の距離を最小化し、別個のエンティティのペア間の距離を最大化するように事前学習される。
【0058】
[0065] データ管理システム100は、データ拡張演算子を使用して、同じエンティティのバリアントを生成して、ラベル付けされたデータが最小限から、ラベル付けされたデータがなしの状態まで、データ表現モデル111を学習する。たとえば、エンティティ241-2は、エンティティ241-1のバリアントである。データ管理システム100は、データ管理タスク(たとえば、エンティティ・マッチング、誤り訂正、カラム型検出など)に基づいて、様々なデータ拡張演算子を使用し、エンティティ(たとえば、図2Aの入力エンティティ201)の意味論的意味を保存してもよい。たとえば、エンティティ・マッチング・タスク用に使用されるデータ表現モデルは、エンティティ内の単語などのトークンを削除、置換、スワッピング、又は挿入するためのデータ拡張演算子を利用してもよい。エンティティ・マッチング・タスクに関連付けられたデータ拡張演算子は、複数のトークンを有するスパン又は列全体を削除及びシャッフルすることを含んでもよい。誤り訂正タスクでは、データ管理システム100は、セル値など、1つのトークンだけでなく、列全体に適用することのできるデータ拡張演算子のみを適用してもよい。たとえば、列シャッフル演算子を使用して、列内のエンティティのセル値をシャッフルしてもよい。
【0059】
[0066] 実施形態によっては、データ管理システム100は、データ拡張演算子を使用して生成されるエンティティ(たとえば、エンティティ241-1~241-3)のベクトル表現の、行又は列の全体にわたって適用するためにカットオフ演算子を使用してもよい。カットオフ演算子は、トークン・カットオフ、特徴カットオフ、又はスパン・カットオフを含んでもよい。
【0060】
[0067] データ拡張演算子は、意味論的意味を維持しながら、エンティティ(たとえば、エンティティ241-1~241-3)のバリアントを生成する。たとえば、コンピュータ・ビジョン内のエンティティは画像であり、そのバリアントは、エンティティを表す元の画像を回転させ、反転させ、又は切り取る、取得されたデータ拡張演算子である。データ拡張演算子は、学習データ表現モデル111に類似しているエンティティ(元のエンティティ及びバリアント)のペアを生成して、エンティティをマッチング/区別することを学習するのに役立つ。データ拡張演算子によって生成される学習データは、バリアントが同じ意味論的意味を維持することによって元のエンティティに似かよっている限り、データに関連付けられたラベルか、又は関連付けられていないラベルかに関係なく、データ表現モデル111を学習するのに役立つ場合がある。このようなデータへのデータ表現モデル111の学習は、マッチしている類似のバリアント及び元のエンティティを識別することができる。
【0061】
[0068] データ管理システム100は、(図2Aに示すような)入力エンティティ201の拡張ベクトル表現を、埋込みモデル242-1~242-3のインスタンスに供給する。埋込みモデル242-1~242-3は、トランスフォーマを使用して設計されたエンコーダである。実施形態によっては、データ管理システム100は、トランスフォーマとしてBERTなどの事前学習された言語モデルを使用する。図2Bに示すように、プロジェクタ・インスタンス243-1~243-3は、エンティティ及びそのバリアントの符号化された表現を入力として取得して、対照損失を適用する空間にマッピングしてもよい。実施形態によっては、プロジェクタ243-1~243-3は線形層でもよい。プロジェクタ243-1~243-3は、エンティティ241-1~241-3のベクトル表現を生成することによって、ベクトル空間にマッピングしてもよい。
【0062】
[0069] ファイン・チューナ223は、このファイン・チューナ223において使用されるペアごとのマッチング・モデルを生成する際に、事前学習された埋込みモデル・インスタンス242-1及び242-3を使用する。ファイン・チューナ223は、単一のエンティティを使用して事前学習された埋込みモデルを使用して、エンティティのペアを処理して、データ表現(たとえば、図2Aのデータ表現221)をキャプチャする。
【0063】
[0070] 図2Cには、本開示の実施形態による、ファイン・チューナでのデータフローの一例の流れ図が示してある。ファイン・チューナ223は、シリアル化されたエンティティの入力エンティティ・ペアを連結することによって類似点結果を微調整する、埋込みモデルを含んでもよい。実施形態によっては、ファイン・チューナ223はまた、勾配降下などの学習パイプライン(図2Cには図示せず)を含んでもよい。エンティティのシリアル化の詳細な説明は、以下の図4の説明において提示される。ファイン・チューナ223は、入力エンティティ・ペア250内のエンティティ間の類似点及び相違点をキャプチャする。図2Cに示すように、ファイン・チューナ223は、入力エンティティ・ペア250を受信し、個々のエンティティ251-1及び251-2、並びに連結されたエンティティ251-3を符号化する。エンティティ251-1、251-2、及び連結されたエンティティ・ペア251-3は、入力エンティティ・ペア250内のエンティティのシリアル化されたバージョンである。図2Cに示すように、シリアル化されたエンティティ251-1~251-3は、エンコーダ・モデル252-1~252-3のインスタンスに入力される。エンコーダ・モデル252-1~252-3は、個々のエンティティ251-1、251-2、及び連結されたエンティティ・ペア251-3のシリアル化されたバージョンのd次元ベクトル表現を生成する。ファイン・チューナ223は、データ管理システム100によって処理されるデータ管理タスク(たとえば、カラム型検出、誤り訂正など)に特有の線形層255を含んでもよい。実施形態によっては、ファイン・チューナ223には、タスク特有の複数の線形層が存在してもよい。線形層255は、エンコーダ・モデル・インスタンス252-1~252-3の連結された出力253-1~253-3を入力として取得してもよい。連結器254は、符号化された出力253-1~253-3を連結してもよい。連結器254は、出力253-1~253-3を連結して2次元ベクトルを生成するために、ベクトル連結を使用してもよい。線形層255は、完全に接続された層でもよく、また、入力ペアがマッチするか否かを予測するソフトマックス関数を含んでもよく、予測256として含まれる。ファイン・チューナ223は、対照学習パイプライン220にこれを含む前に、学習されてもよい。ファイン・チューナ223は、エンコーダ・モデル(たとえば、エンコーダ・モデル252-1~252-3)と、事前学習された重みを有する線形層とで形成された、機械学習モデルのネットワークを初期化することによって学習してもよい。ファイン・チューナ223は、収束が達成されるまで学習される。
【0064】
[0071] 図3A図3Cには、本開示の実施形態による、エンティティのペア間で実行されるデータ管理タスクの例示的な表形式の表現が示してある。図3Aに示すように、テーブル320内のエンティティとのマッチを実行することによって、テーブル310内のエンティティが訂正される。データ管理システム100は、テーブル310及び320内のエンティティのペアごとのマッチングを実行してもよい。データ管理システム100は、データ・クリーニング・タスクの要求を受信すると、(図1に示すような)ブロッカ112の実行をスキップして、候補ペアを識別する。実施形態によっては、データ管理システム100は、エンティティの候補ペアを生成する代替方法を使用してもよい。代替方法は、実現可能な候補ペアを列挙するためのルールベースの方法(たとえば、ジャカード類似度)を含んでもよい。実施形態によっては、データ管理システム100は、ルールベースの方法を使用して、テキスト・エンティティのシーケンス間のテキスト類似度又は構文類似度を見つけてもよい。実施形態によっては、データ管理システム100は、エンティティの生成候補ペアのための代替方法として、様々なブロッキング技法を使用してもよい。たとえば、様々なブロッキング技法には、再帰型ニューラル・ネットワーク・モデルを利用する、ルールベースのブロッキング、スキーマ非依存のブロッキング、メタ・ブロッキング、及び他の深層学習技法が含まれ得る。
【0065】
[0072] 実施形態によっては、データ表現モデル111は、テーブル310及び320内の住所、州、及び郵便番号のフィールド値を使用して、基本となる構造を物理的な位置アドレスとして識別してもよい。データ管理システム100は、(図2Aに示すような)擬似ラベラ222を使用して、テーブル310及び320内の各エンティティ・ペアリングにラベル付けして、どのエンティティが正しいアドレスを有するのかを識別してもよい。データ管理システム100は、ラベル付けされたエンティティ・ペアリングを微調整して、間違ったエンティティに適用される訂正を識別してもよい。データ管理システム100は、エンティティ311への実現可能な訂正を有するテーブル320を生成してもよい。データ管理システム100は、エンティティ321及び322を生成してテーブル320内に含め、テーブル310及び320内のエンティティ間のマッチを実行してもよい。データ管理システム100は、訂正されたエンティティとして、マッチしたエンティティを使用してもよい。エンティティの訂正は、タイプミスを訂正することと、欠落データ、たとえばアドレス内の欠落都市を追加することとを含んでもよい。
【0066】
[0073] データ管理システム100は、誤り訂正タスクを実行するときに、特定のステップを実行しなくてもよい。たとえば、擬似ラベル付けは類似点に基づかないので、(図2に示すような)擬似ラベラ222を適用しなくてもよい。誤り訂正の一部として生成される候補エンティティが大きなセットでない限り、(図1に示すような)ブロッカ112を使用しなくてもよい。たとえば、データ管理システム100が、州フィールド値及び郵便番号フィールド値を考慮することなく、エンティティ311内の都市名のタイプミスを、都市名の大きいセットで置換することを選択する場合、修正されたエンティティ(たとえば、エンティティ321)を見つけるために、(図1に示すような)マッチャ120と共有するエンティティのセットを精緻化するためのブロッカが必要となる。
【0067】
[0074] 図3Bに示すように、テーブル330内のエンティティは、データ管理システム100によってテーブル340内のエンティティとマッチングされる。データ管理システム100は、エンティティ331と341の間のマッチ、及びエンティティ332と342の間のミスマッチを見つけてもよい。図2Aに示すように、データ管理システム100は、エンティティ・マッチング・パイプライン210及び対照学習パイプライン220を使用して、テーブル330及び340内のエンティティのマッチングを実行してもよい。データ管理システム100は、対照学習パイプライン220を使用して、エンティティの変換を実行してマッチを決定してもよい。たとえば、データ管理システム100は、エンティティ341のタイトル・フィールド「instance immers spanish dlux2」を「instant immersion spanish deluxe 2.0」に英語で書き換えて、エンティティ331と341をマッチングしてもよい。実施形態によっては、データ管理システム100は、エンティティ331及び341内のコンテンツをフォーマットすることによって、エンティティ331及び341の各部分を変換してもよい。たとえば、エンティティ341内のテキスト「dlux2」がフォーマットされて、エンティティ331内のテキスト「deluxe 2.0」とマッチする。データ管理システム100は、エンティティ332と342の間にマッチを見つけることはなく、これらは、エンティティ・マッチング・タスクにおいて無視される。
【0068】
[0075] 図3Cに示すように、テーブル350及び360内のカラム型が識別されて、マッチしている列を見つけてカラム型を検出する。データ管理システム100は、テーブル350及び360内の列のマッチ・セマンティックを実行することによって、列355のタイプを検出してもよい。
【0069】
[0076] データ管理システム100は、すべてのエンティティ351~353及び361~363を見直して、列355~356及び365~366のタイプを識別してもよい。州都列355は都市列365とマッチするが、州列356は都市列365とマッチしない。データ管理システム100は、データ表現モデル111を使用して、テーブル350及び360内の各列の表現を高次元ベクトルとして学習してもよい。次いで、データ管理システム100は、テーブル350及び360内の列のデータ表現(たとえば、図2Aのデータ表現221)に基づいて、候補列を識別してもよい。データ管理システム100は、マッチャ120の一部分としてグラフ構文解析アルゴリズムを使用して、同じタイプであると予測される列のクラスタを見つけてもよい。データ管理システム100は、擬似ラベルを適用し、データ表現221を微調整することによって、マッチャ120を学習してもよい。データ管理システム100は、列パーサを使用して、各列のタイプを識別してもよい。
【0070】
[0077] 図4には、本開示の実施形態による、事前学習された言語モデルによるデータの例示的なシリアル化が示してある。テーブル410に存在するデータは、(図3に示す)テーブル330のように、(図1に示す)マッチャ120の(図1に示す)入力層121によってシリアル化される。入力層121は、データを文字列にシリアル化するためのシリアライザを含んでもよい。図4に示すように、テーブル行411及び412として表される書籍詳細エンティティをシリアル化して、シリアル化されたエンティティ421及び422にしてもよい。類似の層はまた、(図2Aに示すように)微調整データ表現221の一部分として、データ表現モデル111内に存在してもよい。
【0071】
[0078] データ管理システム100は、「[COL]」及び「[VAL]」など、専用のトークンを使用することによって、エンティティを表すテーブル410の各行を変換して、特定の列内での列名及び行の値を表してもよい。シリアライザ・モジュールは、列名及び列値を要求し、「[COL]<列名>[VAL]<列値>」という形式のエンティティを作成する。データ管理システム100は、各行の列を繰り返しシリアル化し、これらをともに付加して、シリアル化されたエンティティを形成してもよい。たとえば、シリアル化されたエンティティ421及び422は、テーブル410の行411及び412を表し、列内のすべての列名及び列値が、特別なトークン「[COL]」及び「[VAL]」を使用してともに付加される。データ管理システム100は、最初にシリアル化し、次いで、事前学習された言語モデル、たとえばBERTを使用して符号化するブロッカ112に含めるための、埋込みモデルを生成してもよい。
【0072】
[0079] データ管理システム100は、エンティティのペアをシリアル化して、マッチしたエンティティ・ペアを識別してもよい。データ管理システム100は、シリアル化されたエンティティ・ペア423に示すように、特別なトークン「[CLS]」及び「[SEP]」を使用して、複数のエンティティを単一のシーケンスに連結することによって、事前学習された言語モデルを使用してペア分類を支援してもよい。エンティティ・ペア423に示すように、データ管理システム100は、「[CLS]」トークンを一連のトークン及び「[SEP]」トークンの先頭に追加して、シリアル化されたエンティティを分離する。マッチャ120において使用されるペアごとのマッチング・モデルは、エンティティをシリアル化するためにトランスフォーマ層(たとえば、図1の入力層121)の後に、タスク特有の層を含めることによって微調整される。タスク特有の層は、完全に接続された線形層、及び2項分類用のSoftMax層を含んでもよい。
【0073】
[0080] 図5には、本開示のいくつかの実施形態による、例示的な分散システムの概略図が示してある。図5によれば、分散コンピューティング・システム500のサーバ510は、情報をやり取りするためのバス512又は他の通信機構と、情報を処理するための、バス512と通信可能なように結合された1つ又は複数のプロセッサ516と、情報を処理するための、バス512と通信可能なように結合された1つ又は複数のメイン・プロセッサ517とを備える。プロセッサ516は、たとえば、1つ又は複数のマイクロプロセッサとすることができる。実施形態によっては、1つ又は複数のプロセッサ516は、プロセッサ565及びプロセッサ566を備え、このプロセッサ565及びプロセッサ566は、相互接続トポロジのチップ間相互接続を介して接続される。メイン・プロセッサ517は、たとえば、中央処理装置(「CPU」)とすることができる。
【0074】
[0081] サーバ510は、ネットワーク522を介して、別のサーバ530にデータを伝送するか、又はそのサーバと通信することができる。ネットワーク522は、(図1に示すような)ネットワーク160と類似のローカル・ネットワーク、インターネット・サービス・プロバイダ、インターネット、又はこれらの任意の組合せとすることができる。サーバ510の通信インターフェース518はネットワーク522に接続されており、サーバ530との通信を可能にすることができる。さらに、表示装置(たとえば、陰極線管(CRT)、液晶ディスプレイ(LCD)、タッチ・スクリーンなど)、及び入力装置(たとえば、キーボード、マウス、ソフト・キーパッドなど)を備える周辺装置540に、バス512を介してサーバ510を結合することができる。
【0075】
[0082] カスタマイズされたハードワイヤード論理、1つ又は複数のASIC若しくはFPGA、ファームウェア、又はサーバと組み合わせてサーバ510を専用マシンにするプログラム論理を使用して、サーバ510を実装することができる。
【0076】
[0083] サーバ510は、メモリ561及び物理記憶装置564(たとえば、ハード・ドライブ、ソリッドステート・ドライブなど)を含んでもよい、記憶装置514をさらに備える。メモリ561は、ランダム・アクセス・メモリ(RAM)562、及び読み取り専用メモリ(ROM)563を含んでもよい。バス512を介して、プロセッサ516及びメイン・プロセッサ517と、記憶装置514を通信可能なように結合することができる。記憶装置514は、プロセッサ516及びメイン・プロセッサ517によって実行される命令の実行中に、一時変数又は他の中間情報を記憶するために使用することのできるメイン・メモリを備えてもよい。このような命令は、プロセッサ516及びメイン・プロセッサ517にアクセス可能な、非一時的な記憶媒体に記憶された後、サーバ510を、命令において指定された動作を実行するようにカスタマイズされた専用マシンにする。本明細書での「非一時的な媒体」という用語は、マシンを特定の方式で動作させるデータ又は命令を記憶する、任意の非一時的な媒体を指す。このような非一時的な媒体は、不揮発性媒体又は揮発性媒体を含むことができる。非一時的な媒体には、たとえば、光ディスク又は磁気ディスク、ダイナミック・メモリ、フロッピー・ディスク、フレキシブル・ディスク、ハード・ディスク、ソリッドステート・ドライブ、磁気テープ、又は他の任意の磁気データ記憶媒体、CD-ROM、他の任意の光データ記憶媒体、孔のパターンを有する任意の物理媒体、RAM、PROM、及びEPROM、フラッシュEPROM、NVRAM、フラッシュ・メモリ、レジスタ、キャッシュ、他の任意のメモリ・チップ又はカートリッジ、並びにこれらのネットワーク化されたバージョンが含まれる。
【0077】
[0084] 実行するためのプロセッサ516又はメイン・プロセッサ517に、1つ又は複数の命令の1つ又は複数のシーケンスを搬送することには、様々な形式の媒体が関わることができる。たとえば、遠隔コンピュータの磁気ディスク又はソリッドステート・ドライブ上で、各命令を初めに実行することができる。遠隔コンピュータは、そのダイナミック・メモリに命令をロードし、モデムを使用して電話回線を介して、この命令を送信することができる。サーバ510にとってローカルなモデムは、電話回線上でデータを受信し、赤外線送信機を使用して、データを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で搬送されるデータを受信することができ、適切な回路が、このデータをバス512上に置くことができる。バス512は、記憶装置514内のメイン・メモリにデータを搬送し、そこから、プロセッサ516又はメイン・プロセッサ517が命令を取り出して実行する。
【0078】
[0085] (図1に示すような)データ管理システム100、又はその構成要素のうちの1つ又は複数は、サーバ510又は530のいずれかに存在してもよく、プロセッサ516又は517によって実行されてもよい。実施形態によっては、データ管理システム100、プロセッサ110、及びマッチャ120の構成要素は、複数のサーバ510及び530にわたって分散されてもよい。たとえば、プロセッサ110の構成要素111~113は、複数のサーバ上で実行されてもよい。
【0079】
[0086] 図6は、本開示の実施形態による、多目的データ管理システムを使用する、データ管理用の例示的な方法を示す流れ図である。方法600の各ステップは、たとえば、例示するために、図5のコンピューティング装置500上で実行するか、又は他の方法でその機能を使用する、図1のデータ管理システム100によって実行することができる。例示された方法600は、ステップの順序を修正し、追加のステップを含むように変更できることが理解される。
【0080】
[0087] ステップ610において、データ管理システム100は、データの少なくとも2つのセット、及びデータ管理タスクを受信してもよい。データの2つのセットはそれぞれ、エンティティ(たとえば、図2Aの入力エンティティ201)を含む。データ管理システム100は、関連する候補ペアを識別し、受信したデータセット内のマッチしているエンティティ・ペアに対して2項分類を実行してもよい。データ管理システム100は、(図1に示すような)ネットワーク160を介して、(図1に示すような)データセット・リポジトリ150からデータセットを受信してもよい。実施形態によっては、データ管理システム100は、(図1に示すような)ユーザ装置180を介して、(図1に示すような)ユーザ170から直接、データセットを受信してもよい。
【0081】
[0088] ステップ620において、データ管理システム100は、ステップ610で受信されたデータセット内のエンティティのセットの代表的な構造に基づいて、表現空間内の各エンティティの位置を決定してもよい。データ表現モデル111は、表現空間内の各エンティティの位置に基づいて、データ表現(たとえば、図2Aのデータ表現221)を生成するのに役立つ場合がある。データ管理システム100は、表現空間内での位置を決定することの一部分として、各エンティティのベクトル表現を生成してもよい。
【0082】
[0089] データ管理システム100は、表現空間内の入力データでのエンティティ(たとえば、図2Aの入力エンティティ201)の位置を決定して、エンティティのデータ表現(たとえば、図2Aのデータ表現221)を作成してもよい。データ管理システムは、第2の機械学習モデル(たとえば、図1のデータ表現モデル111)を使用して、エンティティの代表的な構造を見直すことによって、表現空間内のエンティティの位置を決定してもよい。データ管理システム100は、対照学習技法を使用して、機械学習モデルを事前学習してもよい。対照学習技法は、対照的目的を含んでもよい。機械学習モデルは、既存の言語モデル(たとえば、BERT)など、畳込みニューラル・ネットワーク・モデル、又は再帰型ニューラル・ネットワーク・モデル、又はトランスフォーマ・モデルとすることができる。
【0083】
[0090] 実施形態によっては、データ管理システム100は、入力データセット内の各エンティティ(たとえば、図2Aの入力エンティティ201)をベクトル表現に変換することによって表現空間を構築してもよい。データ管理システム100は、BERTなどの既存の言語モデルを使用して、エンティティのベクトル表現を生成してもよい。
【0084】
[0091] データ管理システム100は、表現空間内の位置を決定する前に、受信されたデータセット内のエンティティを前処理してもよい。データ管理システム100は、エンティティの意味論的意味を維持しながら、エンティティを前処理し、そのエンティティを変換してもよい。たとえば、データ管理システム100は、置換された単語の代わりに、類似の意味の単語を使用することによって、エンティティにおいてスパン置換を実行してもよい。このようなスパン置換はまた、表現空間内でのエンティティの位置を識別するために、データ表現モデル111を学習するのに役立つ。
【0085】
[0092] ステップ630において、データ管理システム100は、代表的なエンティティ・ペアのセットを決定してもよい。この代表的なエンティティ・ペアは、ステップ610で受信された2つのデータセットのそれぞれから、1つのエンティティを含む。データ管理システム100は、ステップ620で識別された表現空間内のエンティティの位置に基づいて、エンティティ間の近さのレベルを示すことによって、代表的なペアを生成してもよい。データ管理システム100は、表現空間内で互いに遠すぎる位置にあるエンティティを有するエンティティ・ペアをフィルタリングしてもよい。
【0086】
[0093] ステップ640において、データ管理システム100は、代表的なエンティティ・ペアを分析して、候補ペア(たとえば、図2Aの候補ペア211)を識別してもよい。データ管理システム100は、候補ペアに含める最も類似しているエンティティ・ペアである、代表的なエンティティ・ペアを識別してもよい。データ管理システム100は、対照学習パイプライン200を使用して、最も類似しているエンティティ・ペアを決定してもよい。対照学習パイプライン200は、エンティティのデータ表現(たとえば、図2Aのデータ表現221)間の近さを見直して、表現空間での近さを決定してもよい。実施形態によっては、データ管理システム100は、最近傍検索を実行して、候補ペア211に含める最も類似しているエンティティを識別してもよい。
【0087】
[0094] データ管理システム100は、表現空間におけるエンティティのデータ表現の各位置間の距離を決定することによって、エンティティ・ペアの2つのエンティティ間の類似度を決定してもよい。データ管理システム100は、エンティティ・ペアにおけるエンティティのベクトル表現間のコサイン角度を決定することによって、2つのエンティティ間の位置の近さを決定してもよい。データ管理システム100は、コサイン関数を使用して、エンティティ・ペア内のエンティティ間の角度及び類似度を決定してもよい。データ管理システム100は、コサインによって決定される角度が閾値よりも大きいときに、エンティティが最も似かよっているとみなしてよい。
【0088】
[0095] ステップ650において、データ管理システム100は、候補ペア(たとえば、図2Aの候補ペア211)のマッチしたエンティティ・ペア(たとえば、図2Aのマッチしたペア213)を決定してもよい。データ管理システム100は、マッチャ120での機械学習モデルを使用して、候補ペアを使用して学習されたマッチしたペアを識別してもよい。
【0089】
[0096] データ管理システム100は、マッチャ120に含まれる第1の機械学習モデルを学習して、マッチしたペア(たとえば、図2Aのマッチしたペア213)を識別してもよい。データ管理システム100は、候補ペア(たとえば、図2Aの候補ペア211)のサブセットを使用して、第1の機械学習モデルを事前学習してもよい。データ管理システム100は、(図2Aに示すような)擬似ラベラ222を使用して、たとえば擬似ラベルなどのラベルを付けてもよい。実施形態によっては、データ管理システム100は、代表的なエンティティ・ペアの、エンティティ・ペアのサブセット(たとえば、図2Aのデータ表現221)にラベルを付けてもよい。代表的なエンティティのセットのデータ・サブセットは、信頼度の高い値とペアを組む。
【0090】
[0097] データ管理システム100は、エンティティ・ペア内の各エンティティが、近接していて、似かよっているか、又は似かよっていないかに基づいて、正のラベル及び負のラベルをエンティティ・ペアに付けてもよい。データ管理システム100は、類似関数、たとえばコサインに基づいて、似かよっているエンティティと似かよっていないエンティティとの間の正の値及び負の値を決定し、その値を使用して、正のラベル及び負のラベルを決定してもよい。データ管理システム100は、この正の値が正の閾値を超えるとき、エンティティが互いに近い状態の第1のエンティティ・ペアに正の値のラベルを付けてもよい。同様に、データ管理システム100は、この負の値が負の閾値よりも低いとき、エンティティが互いにより遠い状態の第2のエンティティ・ペアに負の値のラベルを付けてもよい。
【0091】
[0098] ステップ660において、データ管理システム100は、マッチしたペア(たとえば、図2Aのマッチしたペア213)を利用して、データ管理タスクを実行してもよい。ユーザ(たとえば、図1のユーザ170)は、ネットワーク160を介して送信されたデータ管理タスクの要求を提示して、マッチしたエンティティに適用してもよい。たとえば、データ統合タスクは、データ管理システム100によって実行されてもよく、マッチング・エンティティを組み合わせることを、マッチング・エンティティに実行することができる。図3Bにおいて、エンティティ331及び341は、マッチするタイトルに基づくマッチであり、データ統合タスクは、エンティティ331及び341のタイトル・フィールド値とともに使用されることになる、モデル及び価格での値をもたらすことになる。
【0092】
[0099] データ管理システム100は、ステップ660が完了すると、コンピューティング装置500上での方法600の実行を完了する(ステップ699)。
【0093】
[00100] 方法、機器(システム)、及びコンピュータ・プログラム製品の流れ図又はブロック図を参照して、これまでに例示的な実施形態が説明されている。流れ図又はブロック図の各ブロック、及び流れ図又はブロック図での各ブロックの組合せは、コンピュータ・プログラム製品、又はコンピュータ・プログラム製品上の命令によって実装できることが理解されよう。これらのコンピュータ・プログラム命令は、コンピュータのプロセッサ、又は他のプログラム可能なデータ処理機器に送られてマシンを生成することができ、その結果、コンピュータ又は他のプログラム可能なデータ処理機器のプロセッサを用いて実行される命令は、流れ図又はブロック図の1つ若しくは複数のブロックで指定された機能/動作を実施するための手段を作成する。
【0094】
[00101] これらのコンピュータ・プログラム命令はまた、コンピュータの1つ若しくは複数のハードウェア・プロセッサ、他のプログラム可能なデータ処理機器、又は他の装置に指示を与えて、特定のやり方で機能させることのできるコンピュータ可読媒体に記憶することができ、その結果、コンピュータ可読媒体に記憶された命令は、流れ図又はブロック図の1つ若しくは複数のブロックで指定された機能/動作を実施する命令を含む製品を形成する。
【0095】
[00102] コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理機器、又は他の装置にロードして、一連の動作ステップを、コンピュータ、他のプログラム可能な機器、又は他の装置で実行できるようにして、コンピュータ実装プロセスを生成することができ、その結果、コンピュータ、又は他のプログラム可能な機器で実行される命令は、流れ図又はブロック図の1つ又は複数のブロックで指定された機能/動作を実施するためのプロセスを提供する。
【0096】
[00103] 1つ又は複数のコンピュータ可読媒体の、任意の組合せを利用することができる。コンピュータ可読媒体は、非一時的なコンピュータ可読記憶媒体とすることができる。この文書においては、コンピュータ可読記憶媒体は、命令実行のシステム、機器、又は装置によって、又はこれらとともに使用するためのプログラムを包含又は記憶することのできる、任意の有形媒体とすることができる。
【0097】
[00104] コンピュータ可読媒体に具体化されるプログラム・コードは、任意の適切な媒体を使用して伝送することができ、これらの媒体には、無線、有線、光ファイバ・ケーブル、RF、IRなど、又はこれらの任意の適切な組合せが含まれるが、これらに限定されるものではない。
【0098】
[00105] 各動作、たとえば各実施形態を実行するためのコンピュータ・プログラム・コードは、1つ又は複数のプログラミング言語の任意の組合せで書くことができ、そうした言語には、Java、Smalltalk、又はC++などのオブジェクト指向のプログラミング言語、及び、「C」プログラミング言語又は類似のプログラミング言語など、従来の手続き型プログラミング言語が含まれる。プログラム・コードは、もっぱらユーザのコンピュータ上で実行することができ、部分的にはスタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で実行することができ、部分的にはユーザのコンピュータ上で実行することができ、また部分的には遠隔コンピュータ上で実行することができ、又はもっぱら遠隔コンピュータ若しくは遠隔サーバ上で実行することができる。後者の状況では、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含め、任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、又は(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに接続することができる。コンピュータ・プログラム・コードは、プロセッサによって実行することのできるオブジェクト・コードにコンパイルすることができ、又は、コンピュータ・プログラム・コードの実行を対象としたインタープリタ、ジャストインタイム・コンパイラ、又は仮想マシンの環境において、部分的に中間オブジェクト・コードにコンパイルするか、又は解釈実行することができる。
【0099】
[00106] 各図における流れ図及びブロック図には、様々な実施形態によるシステム、方法、及びコンピュータ・プログラム製品の実現可能な実装形態のアーキテクチャ、機能、及び動作の例が示してある。この点に関して、流れ図又はブロック図における各ブロックは、コードのモジュール、セグメント、又は一部分を表すことができ、これは、指定された論理機能を実施するための、1つ又は複数の実行可能な命令を含む。代替実装形態によっては、ブロックに記された各機能が、各図に記された順序から外れて実行されてもよいことにも留意されたい。たとえば、連続して示した2つのブロックは、実際にはほぼ同時に実行されてもよく、又は各ブロックは、関連する機能に応じて、逆の順序で実行されてもよい場合がある。ブロック図又は流れ図の各ブロック、及びブロック図又は流れ図での各ブロックの組合せは、指定された機能若しくは動作を実行する特殊目的のハードウェア・ベースのシステム、又は特殊目的のハードウェアとコンピュータ命令の組合せによって実施できることに留意されよう。
【0100】
[00107] 説明した実施形態は、相互排他的なものではなく、ある1つの例示的な実施形態に関連して説明した要素、構成要素、材料、又はステップは、所望の設計目的を達成するために適切な方式で他の実施形態と組み合わせることができ、又は他の実施形態から除外することができることが理解される。
【0101】
[00108] 前述の明細書においては、実装形態ごとに異なる場合がある数多くの具体的な詳細を参照しながら、各実施形態を説明してきた。説明した実施形態の、ある一定の改変形態及び修正形態を作り出すことができる。本明細書の考察及び本明細書に開示された発明の実施から、他の実施形態が当業者に明らかとなり得る。本明細書及び各例は、例示的なものにすぎないと考えられるものである。また、各図に示すステップの順序は、もっぱら例示するためのものであり、ステップのいかなる特定の順序にも限定されるものではないことが意図されている。したがって、同じ方法を実施しながら、異なる順序でこれらのステップを実行できることを、当業者は理解することができる。
【符号の説明】
【0102】
100 データ管理システム
110、516、565、566 プロセッサ
111 データ表現モデル
112 ブロッカ
113 サンプラ
120 マッチャ
121 入力層
122 符号化層
123 プール層
124 出力層
130 パーサ
131 データ抽出器
132 データ・トランスフォーマ
133 データ・ローダ
150 データセット・リポジトリ
160、522 ネットワーク
170 ユーザ
180 ユーザ装置
200、220 対照学習パイプライン
201 入力エンティティ
210 エンティティ・マッチング・パイプライン
211 候補ペア
212 サンプルのラベル付きペア
213 マッチしたペア
221 データ表現
222 擬似ラベラ
223 ファイン・チューナ
241-1、241-2、251-1、251-2、311、321、322、331、332、341、342、351~353、361~363、421、422 エンティティ
242-1、242-2、242-3 埋込みモデル
243-1、243-2、243-3 プロジェクタ
250 入力エンティティ・ペア
251-3、423 エンティティ・ペア
252-1、252-2、252-3 エンコーダ・モデル
253-1、253-2、253-3 出力
254 連結器
255 線形層
256 予測
310、320、330、340、350、360、410 テーブル
355、356、365、366 列
411、412 行
500 コンピューティング装置
510 サーバ
512 バス
514 記憶装置
517 メイン・プロセッサ
518 通信インターフェース
530 サーバ
540 周辺装置
561 メモリ
562 ランダム・アクセス・メモリ
563 リードオンリ・メモリ
564 物理記憶装置
600 方法
601、610、620、630、640、650、660、699 ステップ
図1
図2A
図2B
図2C
図3A
図3B
図3C
図4
図5
図6
【外国語明細書】