(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-15
(45)【発行日】2024-08-23
(54)【発明の名称】データ・マッチングのための能動学習
(51)【国際特許分類】
G06F 16/215 20190101AFI20240816BHJP
G06N 20/00 20190101ALI20240816BHJP
【FI】
G06F16/215
G06N20/00 130
(21)【出願番号】P 2022505348
(86)(22)【出願日】2020-07-24
(86)【国際出願番号】 IB2020057001
(87)【国際公開番号】W WO2021024080
(87)【国際公開日】2021-02-11
【審査請求日】2022-12-23
(32)【優先日】2019-08-05
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ブレマー,ラース
(72)【発明者】
【氏名】バージパイ,ウッカーシュ
(72)【発明者】
【氏名】オバーホーファー,マーチン
(72)【発明者】
【氏名】ルス ザビエル ダ コスタ,アレクサンドル
【審査官】早川 学
(56)【参考文献】
【文献】特開2013-246478(JP,A)
【文献】米国特許出願公開第2018/0330280(US,A1)
【文献】米国特許出願公開第2018/0150506(US,A1)
【文献】米国特許出願公開第2012/0259802(US,A1)
【文献】米国特許出願公開第2004/0111253(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
データセットのデータレコードをマッチングする方法であって、前記データレコードは、属性のセットの値を有し、前記方法は
、コンピュータが、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、前記データポイントの各々は、複数のデータレコードであり、前記データポイントのラベルは、前記データポイントの分類を示し、前記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)前記訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果
および前記現在のセットの少なくとも一部のクラスタリングの結果を使用して、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、
前記ラベル無しデータポイントのサブセットは、前記クラスタリングの結果として得られる複数のクラスタ各々で特定されたデータポイントを含み、前記ラベル無しデータポイントの選択されたサブセットなしの前記ラベル無しデータポイントの現在のセットが、前記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)前記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、前記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)前記ラベル付きデータポイントの現在のセットに加えてラベル付きデータポイントの前記サブセットを、前記ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)前記訓練済み機械学習モデルを用いて、前記データセットのデータポイントを分類するステップと
を実行する、方法。
【請求項2】
前記コンピュータが、
前記訓練済み機械学習モデルによる前記データセットの前記データポイントの分類を用いて前記データセットの前記データレコードの重複排除を行うステップ、および、
前記訓練済み機械学習モデルによる前記データセットの前記データポイントの分類に基づいて、前記データセットの各データポイントの個別のデータレコードを併合するかまたは維持するステップ
のうちの1つをさらに
実行する、請求項1に記載の方法。
【請求項3】
前記コンピュータが、前記訓練済み機械学習モデルによる前記データセットの前記データポイントの分類を用いて前記データセットの重複排除されたデータレコードを保存するステップをさらに
実行する、請求項1または2に記載の方法。
【請求項4】
ステップ(e)で使用される前記訓練済み機械学習モデルは、ステップ(a)~(d)の所定回数の反復の結果として生じる前記訓練済み機械学習モデルである、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記繰り返すステップは、予め定義された反復回数行われるか、または、前記ラベル無しデータポイントのセットが、所定の最小数よりも少ない数のデータポイントを含むまで行われる、請求項1~4のいずれか1項に記載の方法。
【請求項6】
データセットのデータレコードをマッチングする方法であって、前記データレコードは、属性のセットの値を有し、前記方法は、コンピュータが、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、前記データポイントの各々は、複数のデータレコードであり、前記データポイントのラベルは、前記データポイントの分類を示し、前記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)前記訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、前記ラベル無しデータポイントの選択されたサブセットなしの前記ラベル無しデータポイントの現在のセットが、前記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)前記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、前記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)前記ラベル付きデータポイントの現在のセットに加えてラベル付きデータポイントの前記サブセットを、前記ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)前記訓練済み機械学習モデルを用いて、前記データセットのデータポイントを分類するステップと
を実行し、ステップ(d)は、前記ラベル無しデータポイントのセットが、
所定の最小数よりも少ない数のデータポイントを含むと判定したことに応答して、ステップ(a)から(d)まで繰り返すステップを、前記ラベル無しデータポイントのセットが前記所定の最小数よりも多い数または同数のデータポイントを含むまで待つステップ
をさらに含む
、方法。
【請求項7】
データセットのデータレコードをマッチングする方法であって、前記データレコードは、属性のセットの値を有し、前記方法は、コンピュータが、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、前記データポイントの各々は、複数のデータレコードであり、前記データポイントのラベルは、前記データポイントの分類を示し、前記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)前記訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、前記ラベル無しデータポイントの選択されたサブセットなしの前記ラベル無しデータポイントの現在のセットが、前記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)前記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、前記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)前記ラベル付きデータポイントの現在のセットに加えてラベル付きデータポイントの前記サブセットを、前記ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)前記訓練済み機械学習モデルを用いて、前記データセットのデータポイントを分類するステップと
を実行し、前記コンピュータが、
さらなるラベル無しデータポイントを受信するステップであって、前記ラベル無しデータポイントが、受信された前記さらなるラベル無しデータポイントを加えて前記ラベル無しデータポイントとなる、受信するステップ
をさらに
実行する、方法。
【請求項8】
データセットのデータレコードをマッチングする方法であって、前記データレコードは、属性のセットの値を有し、前記方法は、コンピュータが、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、前記データポイントの各々は、複数のデータレコードであり、前記データポイントのラベルは、前記データポイントの分類を示し、前記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)前記訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、前記ラベル無しデータポイントの選択されたサブセットなしの前記ラベル無しデータポイントの現在のセットが、前記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)前記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、前記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)前記ラベル付きデータポイントの現在のセットに加えてラベル付きデータポイントの前記サブセットを、前記ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)前記訓練済み機械学習モデルを用いて、前記データセットのデータポイントを分類するステップと
を実行し、前記ラベル無しデータポイントのサブセットを選択するステップは、前記分類結果を用いて、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの中間サブセットを選択するステップと、前記属性のセットのうちの第1の属性のサブセットを用いて前記ラベル無しデータポイントの中間サブセットの前記データポイントをクラスタリングし、複数のクラスタもたらすステップと、前記複数のクラスタの各クラスタについて、前記クラスタの重心点に最も近いデータポイントを特定するステップとをさらに含み、前記ラベル無しデータポイントのサブセットは、特定された前記最も近いデータポイントを含む
、方法。
【請求項9】
データセットのデータレコードをマッチングする方法であって、前記データレコードは、属性のセットの値を有し、前記方法は、コンピュータが、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、前記データポイントの各々は、複数のデータレコードであり、前記データポイントのラベルは、前記データポイントの分類を示し、前記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)前記訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、前記ラベル無しデータポイントの選択されたサブセットなしの前記ラベル無しデータポイントの現在のセットが、前記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)前記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、前記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)前記ラベル付きデータポイントの現在のセットに加えてラベル付きデータポイントの前記サブセットを、前記ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)前記訓練済み機械学習モデルを用いて、前記データセットのデータポイントを分類するステップと
を実行し、前記ラベル無しデータポイントのサブセットを選択するステップは、前記分類結果を用いて、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの第1の中間サブセットを選択するステップと、前記データポイントを説明するメタデータ・パラメータを用いて、前記ラベル無しデータポイントの第1の中間サブセットから、ラベル無しデータポイントの第2の中間サブセットを選択するステップと、前記属性のセットのうちの第1の属性のサブセットを用いて前記ラベル無しデータポイントの第2の中間サブセットのデータポイントをクラスタリングし、複数のクラスタもたらすステップと、前記複数のクラスタの各クラスタについて、前記クラスタの重心点に最も近いデータポイントを特定するステップとをさらに含み、前記ラベル無しデータポイントのサブセットは、特定された前記データポイントを含む
、方法。
【請求項10】
データセットのデータレコードをマッチングする方法であって、前記データレコードは、属性のセットの値を有し、前記方法は、コンピュータが、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、前記データポイントの各々は、複数のデータレコードであり、前記データポイントのラベルは、前記データポイントの分類を示し、前記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)前記訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、前記ラベル無しデータポイントの選択されたサブセットなしの前記ラベル無しデータポイントの現在のセットが、前記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)前記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、前記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)前記ラベル付きデータポイントの現在のセットに加えてラベル付きデータポイントの前記サブセットを、前記ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)前記訓練済み機械学習モデルを用いて、前記データセットのデータポイントを分類するステップと
を実行し、前記方法は、前記コンピュータが、
前記属性のセットのうちの第2の属性のサブセットを用いて、受信したデータポイントをクラスタリングし、複数のクラスタをもたらすステップと、前記複数のクラスタの各クラスタについて、前記クラスタの重心点に最も近いデータポイントを特定するステップとをさらに
実行し、前記ラベル無しデータポイントのセットは、特定されたデータポイントを含む
、方法。
【請求項11】
前記ラベル無しデータポイントのサブセットを選択するステップは、前記分類結果を用いて、前記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの中間サブセットを選択するステップと、前記データポイントを説明するメタデータ・パラメータを用いて、前記ラベル無しデータポイントの中間サブセットから、前記ラベル無しデータポイントのサブセットを選択するステップと、
さらに含む、請求項1~
7のいずれか1項に記載の方法。
【請求項12】
前記メタデータ・パラメータは、前記データポイントの最新変更時刻および前記データポイントのユーザ優先値の少なくとも1つを含む、請求項9または
11に記載の方法。
【請求項13】
前記ラベル無しデータポイントのサブセットのラベルを受信するステップは、前記第1の属性のサブセットの標示を受信するステップをさらに含む、請求項
8および9のいずれか1項に記載の方法。
【請求項14】
前記選択は、ランダム・サンプリング、マージン・サンプリング(margin sampling)、エントロピー・サンプリング、不一致サンプリング(disagreement sampling)のうちの1つを用いて実行される、請求項1~
13のいずれか1項に記載の方法。
【請求項15】
前記選択するステップは、前記データポイントをランク付けするステップと
上位にランク付けされたデータポイントを選択するステップとを含む、請求項1~
14のいずれか1項に記載の方法。
【請求項16】
前記複数のクラスタ各々で特定されたデータポイントは、前記複数のクラスタ各々の重心点に最も近いデータポイントであり、前記クラスタリングは、第1の属性のサブセットを用い、前記第1の属性のサブセットは、前記分類器によりランク付けされ、前記ラベル無しデータポイントのサブセットの前記ラベルとともに受信されたものである、請求項1~請求項5のいずれか1項に記載の方法。
【請求項17】
前記分類器は、データスチュワードが用いるシステムであり、前記提供することに応答して前記ラベル無しデータポイントのサブセットのラベルを受信することは、前記データスチュワードが用いるシステムのユーザ・インタフェースを介して行われる、請求項1~請求項16のいずれか1項に記載の方法。
【請求項18】
コンピュータに請求項1~
17のいずれか1項に記載の方法の各ステップを実行させるためのコンピュータ・プログラム。
【請求項19】
データセットのデータレコードをマッチングするためのコンピュータ・システムであって、前記データレコードは、属性のセットの値を有し、前記コンピュータ・システムは、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、前記データポイントは、複数のデータレコードであり、前記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果
および前記現在のセットの少なくとも一部のクラスタリングの結果を使用して、ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、
前記ラベル無しデータポイントのサブセットは、前記クラスタリングの結果として得られる複数のクラスタ各々で特定されたデータポイントを含み、前記ラベル無しデータポイントの選択されたサブセットなしの前記ラベル無しデータポイントの現在のセットが、前記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)前記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、前記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)前記ラベル付きデータポイントの現在のセットに加えて、ラベル付きデータポイントの前記サブセットを、前記ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)前記訓練済み機械学習モデルを用いて、前記データセットのデータポイントを分類するステップと
のために構成される、コンピュータ・システム。
【請求項20】
重複排除システムのための能動学習機であって、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、前記データポイントは、複数のデータレコードであり、前記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果
および前記現在のセットの少なくとも一部のクラスタリングの結果を使用して、ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、
前記ラベル無しデータポイントのサブセットは、前記クラスタリングの結果として得られる複数のクラスタ各々で特定されたデータポイントを含み、前記ラベル無しデータポイントの選択されたサブセットなしの前記ラベル無しデータポイントの現在のセットが、前記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)前記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、前記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)前記ラベル付きデータポイントの現在のセットに加えて、ラベル付きデータポイントの前記サブセットを、前記ラベル付きデータポイントの現在のセットとして用いてステップ(a)から(d)までを繰り返すステップと
のために構成される、能動学習機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル・コンピュータの分野に関し、より詳細には、データをマッチングする方法に関する。
【背景技術】
【0002】
要検討レコード(clerical records)は、所与のマッチングプロセスが、それらが互いに重複し、よって併合すべきかどうか、または、1つまたは複数が非一致であるとみなし、よって互いに別個に維持するべきかどうかを判断することができないレコードである。これらの要検討レコードは、データレコードの値を詳しく調べるためにユーザ介入を必要とする場合がある。レコード・マッチングのプロセスを自動化し、改善するための多大な努力にかかわらず、これらの要検討レコードの数は継続的に増加している(例えば、数100万の要検討レコードであり得る)。これにより、非常に長い時間にわたって、要検討レコードの大部分が処理されないということになり、その間、システム構成において矛盾するデータが使用される可能性がある。
【発明の概要】
【0003】
種々の実施形態は、独立請求項の主題によって説明される、データをマッチングするための方法、コンピュータ・システムおよびコンピュータ・プログラム製品を提供する。有利な実施形態が、従属請求項において説明される。本発明の実施形態は、互いに矛盾しない場合に自由に組み合わせることができる。
【0004】
1つの側面においては、本発明は、データセットのデータレコードをマッチングする方法に関連し、データレコードは、属性のセットの値を有する。方法は、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、データレコードは、複数のデータレコードであり、データポイントのラベルは、データポイントの分類を示し、訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、ラベル無しデータポイントの選択されたサブセットなしのラベル無しデータポイントの現在のセットが、ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)ラベル付きデータポイントの現在のセットを加えてラベル付きデータポイントのサブセットを、ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)訓練済み機械学習モデルを用いて、データセットのデータポイントを分類するステップと
を含む。
【0005】
別の側面においては、本発明は、データセットのデータレコードをマッチングするコンピュータ・システムに関連し、データレコードは、属性のセットの値を有する。コンピュータ・システムは、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、データポイントは、複数のデータレコードであり、訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、ラベル無しデータポイントの選択されたサブセットなしのラベル無しデータポイントの現在のセットが、ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)ラベル付きデータポイントの現在のセットに加えて、ラベル付きデータポイントのサブセットを、ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)訓練済み機械学習モデルを用いて、データセットのデータポイントを分類するステップと
のために構成される。
【0006】
別の側面においては、本発明は、重複排除システムのための能動学習機に関連し、能動学習機は、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、データポイントは、複数のデータレコードであり、訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、ラベル無しデータポイントの選択されたサブセットなしのラベル無しデータポイントの現在のセットが、ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)ラベル付きデータポイントの現在のセットに加えて、ラベル付きデータポイントのサブセットを、ラベル付きデータポイントの現在のセットとして用いてステップ(a)から(d)までを繰り返すステップと
のために構成される。
【0007】
別の側面においては、本発明は、コンピュータ可読プログラム・コードが具現化されたコンピュータ可読記録媒体を含むコンピュータ・プログラム製品に関し、コンピュータ可読プログラム・コードが、先行する実施形態に従う方法のすべてのステップを実装するよう構成される。
【0008】
上記方法により、反復的な訓練プロセス内で訓練データの生成が制御される能動学習が可能となり得る。本明細書において、用語”能動学習(active learning)”は、機械学習モデルを訓練するために本方法による訓練データの能動的な生成を参照して使用される。これにより、価値があるか、有益であるか若しくはその両方であるレコードを発見し、これらのレコードを訓練セットに反復的に追加することが可能となり得る。例えば、所与の入力データポイントについて、訓練済み機械学習モデルは、分類結果を出力することができる。分類結果は、1以上のクラスの標示を含み、これらは、入力データポイントが1以上のクラスの各々に属する確率に関連付けられる。例えば、クラス”同一”に対する確率が高いほど、データポイントのレコード間のマッチングのレベルが高くなり、その逆も同様である。また、クラス”異なる”に対する確率が高いほど、データレコードのレコード間のマッチングのレベルが低くなり、その逆も同様である。
【0009】
本主題は、訓練のためにより少ないデータを用いる能動学習技術を利用することによって処理リソースを節約しながらデータポイントの正確な分類を可能とし得るため、有利である。これにより、数日を要するかもしれない大きなデータセット上での訓練のための膨大な計算リソースを使用することが防止され得る。本方法は、レコード・マッチングを実行するための価値あるデータを特定することを可能とするデータのサブセッティングを使用してもよい。
【0010】
例えば、分類結果を用いて、分類が最も不確かなデータポイントが選択されてもよい。例えば、事前定義された構造に従う確率の分布を有するデータポイントが選択されてもよい。それには、ラベル無しデータポイントの確率がプロットされ、ラベル無しデータポイントの分布に基づいて、例えばユーザから、ラベル無しデータポイントの選択されたサブセットの選択が受信される。例えば、データポイントのクラスが非常に高い確率で知られている場合、これは、訓練済みモデルがこのタイプのデータポイントの分類を良く学習したことを示す可能性がある。このように、最も不確かなデータポイントを選択することにより、モデルは、新しいタイプのデータを学習するためにより良く訓練される可能性がある。
【0011】
以下、本発明の実施形態について、例示として、以下の図面を参照しながら、より詳細に説明する。
【図面の簡単な説明】
【0012】
【
図1】代表的なコンピュータ・システムのブロック図表現。
【
図2】本開示の例に従ったデータセットのデータレコードをマッチングするための方法のフローチャート。
【
図3】機械学習モデルを訓練するためのサブセットの能動学習のための方法のフローチャート。
【
図4】代表的なコンピュータ・システムのブロック図表現。
【
図5】本開示に含まれる1または複数の方法のステップを実装するのに適したコンピュータ化されたシステムを示す図。
【発明を実施するための形態】
【0013】
本発明の種々の実施形態について、説明を目的として説明されるが、開示される実施形態を網羅または限定することを意図するものではない。多数の変更例および変形例が、説明する実施形態の範囲および精神を逸脱することなく、当業者にとって明白となるであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、または、市場において見られる技術を超えた技術向上を最も良く説明し、または、他の当業者が本明細書に開示の実施形態を理解することができるように選ばれたものである。
【0014】
データセットは、1以上のデータレコードのコレクションである。例えば、データセットは、ファイルに包含される関連したレコードのコレクションの形で提供されてもよく、例えば、データセットは、クラス内のすべての生徒のレコードを包含するファイルであってもよい。データセットは、例えば、データベースのテーブルまたはHadoop(登録商標)ファイルシステムのファイルなどであってもよい。別の例においては、データセットは、HTMLページまたは他の文書タイプのような文書を含んでもよい。文書は、例えば、患者のデータを含んでもよい。
【0015】
データレコードまたはレコードは、特定のユーザの名前、誕生日およびクラスなどの関連したデータ項目のコレクションである。レコードは、エンティティを表し、ここで、エンティティは、それについての情報がレコードに格納される、ユーザ、オブジェクトまたは概念を参照する。用語”データレコード”および”レコード”は、同義で使用される。データレコードは、関係性を有するエンティティとして、グラフデータベースに格納されてもよく、ここで、各レコードは、プロパティが名前、誕生日等の属性値であるとしてグラフのノードまたは頂点に割り当てられてもよい。別の例では、データレコードは、リレーショナルデータベースのレコードであってもよい。
【0016】
データセットは、例えば、本方法によって処理される前に、1以上のデータ源から受信されてもよい。処理されたレコードは、例えば、データベース・システムの中央レポジトリに格納されてもよい。中央レポジトリは、複数のクライアント・システムから受信したデータを格納する、データストア、ストレージまたはデータベースであってもよい。加えて、あるいは代替的に、データセットは、本方法によって処理されるべく特定または選択されたコンピュータ・システムの既存のレコードを含んでもよい。例えば、データセットのレコードのユーザ選択が受信されてもよい。データセットのレコードは、例えば、本方法によって処理される前に、前処理されてもよい。前処理は、例えば、データセットのレコードの属性値の形式の変換を含んでもよい。例えば、属性値が大文字化されてもよく、ノイズ文字(例えば、”-”,”.”,”/”文字)が除去されてもよい。匿名の属性値(都市=nowhereまたは姓=Test)を除去してもよく、属性値の単語マッピングを行って、所与の属性値を、対応する所定の値にマッピング(例えば、St.は、St.からStreetへマッピングした後にStreetとなる)してもよい。
【0017】
レコードのマッチングは、レコードの属性値を比較することを含む。マッチしたレコード(併合可能なレコード)は、同一のエンティティを表すレコードである。2つのレコードのマッチングのレベルは、2つのレコードの属性値の類似の程度を示す。
【0018】
データポイントは、2以上のレコードを参照する。データポイントのクラスは、”同一”または”異なる”クラスであり、それぞれ、データポイントのレコードが同一のエンティティまたは異なるエンティティを表すことを意味する。ラベル付きデータポイントは、データポイントの分類の結果としてクラス(例えば”同一”または”異なる”)に関連付けられたデータポイントである。ラベル無しデータポイントは、クラスに関連付けられない未分類のデータポイントである。未分類のデータポイントは、要検討レコードを含んでもよい。
【0019】
一実施形態によれば、方法は、さらに、データセットのデータポイントの分類を用いてデータセットのデータレコードの重複排除およびデータセットのデータポイントの分類に基づいてデータセットの各データポイントの個別のデータレコードを併合するかまたは維持することのうちの1つを含む。データセットのデータポイントの分類は、訓練済み機械学習モデルによって実行される。
【0020】
例えば、データセットの各データポイントに割り当てられたクラスに基づいて、それは、これらが同一エンティティを表すことを意味する”同一”として分類されたデータポイントを重複排除することを決定してもよい。別の例においては、クラス”同一”の各データポイントのレコードを1つのレコード、例えば、ゴールデン・レコードに併合してもよい。訓練済みモデルを用いてレコードを分類することによって、本方法は、データセットのレコードを、これらを重複排除するかまたはこれらを併合することによって、効率的かつ確実に処理し得る。レコードの不正確な分類に起因した不要な重複排除操作を防ぐことができるので、処理は、効率的であり得る。
【0021】
一実施形態によれば、方法は、データセットのデータポイントの分類を用いてデータセットの重複排除されたデータレコードを保存することを含む。データセットのデータポイントの分類は、訓練済み機械学習モデルによって実行される。この実施形態により、データの内容がレコードの重複排除または併合の後に同一となり得ながら、不要なデータを格納することを回避することよって、ストレージリソースなどの処理リソースを節約し得る。
【0022】
一実施形態によれば、ステップ(e)で使用される訓練済み機械学習モデルは、ステップ(a)~(d)の複数回の反復の結果として生じた訓練済み機械学習モデルである。
【0023】
例えば、反復の数は、ユーザが事前定義した数、例えば2回または3回の反復であってよい。別の例においては、反復の回数は、例えばランダムなど、自動的に選択されてもよい。別の例においては、ステップ(e)を実行するための要求を受信したことに応答して、受信した要求を処理した最後の反復の結果として生じた訓練済みモデルが、ステップ(e)のために使用されてもよい。
【0024】
この実施形態により、モデルの訓練を行いながら、訓練された機械学習モデルを使用することが可能になり得る。これにより、訓練および訓練済みモデルの推論の効率的な処理が可能となり得る。
【0025】
一実施形態によれば、繰り返しは、予め定義された反復回数行われるか、または、ラベル無しデータポイントのセットが、所定の最小数よりも少ない数のデータポイントを含むまで行われる。
【0026】
本実施形態により、制御されかつ自動の機械学習モデルの訓練プロセスが可能となり得る。
【0027】
一実施形態によれば、ステップ(d)は、ラベル無しデータポイントのセットが、所定の最小数よりも少ない数のデータポイントを含むと判定したことに応答して、ステップ(a)から(d)まで繰り返すステップを、ラベル無しデータポイントのセットが、所定の最小数よりも多い数または同数のデータポイントを含むまで待つことを含む。
【0028】
この実施形態は、特に、データレコードがほとんど継続的にシステムに入力されるMDMシステムなど大規模システムにおいて有利である可能性がある。この場合、訓練の継続的な反復実行は、より多くのデータを使用しながら訓練済みモデルが改善されるため、有利である可能性がある。改良された訓練済みモデルは、確実なレコード処理の結果を得ることを可能とする正確な分類結果を意味する。
【0029】
一実施形態によれば、方法は、さらなるラベル無しデータポイントを受信することを含み、ここで、ラベル無しデータポイントが、受信されたさらなるラベル無しデータポイントを加えて、ラベル無しデータポイントとなる。この実施形態は、より多くのデータを使用することにより、訓練済み機械学習モデルをさらに改善する可能性がある。
【0030】
一実施形態によれば、ラベル無しデータポイントのサブセットを選択することは、分類結果を用いて、ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの中間サブセットを選択することと、属性のセットのうちの第1の属性のサブセットを用いてラベル無しデータポイントの中間サブセットのデータポイントをクラスタリングし、複数のクラスタもたらすことと、複数のクラスタの各クラスタについて、クラスタの重心点に最も近いデータポイントを特定するステップとをさらに含み、ここで、ラベル無しデータポイントのサブセットは、特定された最も近いデータポイントを含む。
【0031】
クラスタリングにより、ラベル無しデータポイントの中間サブセット内の類似の例のグループを発見することが可能となる。例えば、クラスタ当たり1より多いデータポイントが、モデルの訓練を有意に改善しない可能性があり、重心を使用することは、それがクラスタの信頼できる表現であり得るため、有利である可能性がある。加えて、複数のクラスタの重心に最も近いポイントを選択することにより、大きく異なるポイントを見つけることが可能となり得る。これは、より良いモデルを訓練するために機械学習の助けとなる可能性がある。これらのクラスタ化されたポイントは、データスチュワードによって、ラベル付けされるために優先付けされてもよい。
【0032】
選択は、例えば、サンプリング機能を用いて行ってもよい。サンプリング機能を使用することによって、ラベル無しデータポイントの現在のセットをランク付けしてもよい。ラベル無しデータポイントの中間サブセットは、最初のX個のランク付けされたデータポイントを含む。ランク付けは、重要度およびどれだけデータポイントが現在の訓練済みモデルに対して有益であるかに従って、その精度を高めるために実行されてもよい。クラスタリングは、データポイントの中間サブセットのすべてのデータポイントを使用して実行されてもよい。別の例では、クラスタリングは、中間サブセットにおいて同一ランクを有するデータポイントに対して別個に実行されてもよい。
【0033】
一実施形態によれば、ラベル無しデータポイントのサブセットを選択することは、分類結果を用いて、ラベル無しデータポイントの現在のセットのデータポイントをランク付けすることと、属性のセットのうちの第1の属性のサブセットを用いて、ラベル無しデータポイントの現在のセットのデータポイントをクラスタリングし、複数のクラスタをもたらすことと、複数のクラスタの各クラスタについて、クラスタの重心点に最も近いデータポイントを特定することとをさらに含み、ここで、ラベル無しデータポイントのサブセットは、特定されたデータポイントを含み、クラスタリングは、ラベル無しデータポイントの現在のセットにおいて同一ランクを有するデータポイントについて別個に実行される。
【0034】
ラベル無しデータポイントの現在のセットの同一ランクを有する複数のデータポイントが存在し得て、例えば、これらの全てのポイントが現在のモデルに対して等しく有益であり、これらから中間サブセットを選択することが課題となる可能性がある。この例では、中間サブセットを提供する必要がない可能性があり、ラベル無しデータポイントの現在のセットにおいて同一ランクを有するデータポイント上でクラスタリングを実行してもよい。これにより、訓練にさらに利用するべく選択されたデータポイントを取得することが可能となり得る。
【0035】
一実施形態によれば、ラベル無しデータポイントのサブセットを選択することは、分類結果を用いて、ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの第1の中間サブセットを選択することと、データポイントを説明するメタデータ・パラメータを用いて、ラベル無しデータポイントの第1の中間サブセットから、ラベル無しデータポイントの第2の中間サブセットを選択することと、属性のセットのうちの第1の属性のサブセットを用いて、ラベル無しデータポイントの第2の中間サブセットのデータポイントをクラスタリングし、複数のクラスタもたらすことと、複数のクラスタの各クラスタについて、クラスタの重心点に最も近いデータポイントを特定することとをさらに含み、ここで、上記ラベル無しデータポイントのサブセットは、特定されたデータポイントを含む。
【0036】
一実施形態によれば、ラベル無しデータポイントのサブセットを選択することは、分類結果を用いて、ラベル無しデータポイントの現在のセットのデータポイントをランク付けし、データポイントを説明するメタデータ・パラメータを用いて同一ランクを有するデータポイントのさらなるランク付けをすることであって、上記ランク付けと上記さらなるランク付けとにより、ランク付けされたラベル無しデータポイントの現在のセットがもたらされる、ランク付けおよびさらなるランク付けをすることと、属性のセットのうちの第1の属性のサブセットを用いて、ラベル無しデータポイントの現在のセットのデータポイントをクラスタリングし、複数のクラスタをもたらすことであって、ここで、クラスタリングは、ラベル無しデータポイントの現在のセットにおいて同一ランクを有するデータポイントについて別個に実行される、クラスタリングすることと、複数のクラスタのうちの各クラスタについて、クラスタの重心点に最も近いデータポイントを特定することとをさらに含み、ラベル無しデータポイントのサブセットは、特定された最も近いデータポイントを含む。
【0037】
一実施形態によれば、ラベル無しデータポイントのサブセットを選択することは、分類結果を用いて、ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの中間サブセットを選択することと、データポイントを説明するメタデータ・パラメータを用いて、ラベル無しデータポイントの中間サブセットから、ラベル無しデータポイントのサブセットを選択することとをさらに含む。
【0038】
一実施形態によれば、ラベル無しデータポイントのサブセットを選択することは、分類結果を用いて、ラベル無しデータポイントの現在のセットのデータポイントをランク付けすることと、データポイントを説明するメタデータ・パラメータを用いて同一ランクを有するデータポイントのさらなるランク付けをすることとを含み、上記ランク付けと上記さらなるランク付けとにより、ランク付けされたラベル無しデータポイントの現在のセットがもたらされ、ここで、ラベル無しデータポイントのサブセットは、Kが事前定義された数であるとして、最初のK個のランクを有するデータポイントを含む。
【0039】
ランク付けは、ランダム・サンプリング法、マージン・サンプリング法、エントロピー・サンプリング法、不一致サンプリング法のうちの1つを用いて実行されてもよい。
【0040】
これらの実施形態により、多層選択プロセスが可能となり得て、この多層選択プロセスにおいては、機械学習モデルをさらに訓練するために最も価値の高いレコードのサブセットを得るために、異なるタイプの選択が組み合わせられる。3つの選択の各々が、異なる基準に基づく。例えば、第1の選択は、レコードの分類結果に基づいており、第2の選択は、属性値の多次元空間におけるレコードの分布に基づいており、第3の選択は、優先ユーザレコードに基づく。
【0041】
一実施形態によれば、メタデータ・パラメータは、データポイントの最新変更時刻およびデータポイントのユーザ優先値の少なくとも1つを含む。
【0042】
一実施形態によれば、方法は、属性のセットのうちの第2の属性のサブセットを用いて、受信したデータポイントをクラスタリングし、複数のクラスタをもたらすことと、複数のクラスタの各クラスタについて、クラスタの重心点に最も近いデータポイントを特定することとをさらに含み、ラベル無しデータポイントのセットは、特定されたデータポイントを含む。これにより、訓練プロセスがさらに改善される可能性があり、訓練済みモデルによってなされる予測の精度が高められる可能性がある。
【0043】
一実施形態によれば、第2の属性のサブセットは、第1の属性のサブセットと同一または異なる。
【0044】
一実施形態によれば、第1の属性のサブセットは、第2の属性のサブセットの属性の一部である。
【0045】
一実施形態によれば、ラベル無しデータポイントのサブセットのラベルを受信することは、第1の属性のサブセットの標示を受信することをさらに含む。
【0046】
一実施形態によれば、選択は、ランダム・サンプリング法、マージン・サンプリング法、エントロピー・サンプリング法および不一致サンプリング法のうちの1つを用いて実行される。一例においては、本方法の各現在の反復毎に、最後の反復で使用したサンプリング法とは異なるサンプリング法が用いられてもよい。例えば、本方法が、2回繰り返される場合、最初の実行では、ランダム・サンプリング法を選択ステップに用いてもよく、最初の繰り返しが、マージン・サンプリング法を選択ステップに用いてもよく、2回目の繰り返しが、不一致サンプリング法を選択ステップに用いてもよい。
【0047】
一実施形態によれば、選択することは、ラベル無しデータポイントの現在のセットをランク付けすることと、最初のK個のランク付けされたデータポイントを選択することとを含む。例えば、データポイントは、差分確率で昇順にランク付けされてもよく、最初のK個のランク付けされたデータポイントが選択されてもよい。Kは事前決定された数、例えば10であってもよい。データポイントの差分確率は、データポイントがクラス”同一”である確率と、データポイントがクラス”異なる”である確率との差である。
【0048】
図1は、例示的なコンピュータ・システム100を示す。コンピュータ・システム100は、例えば、マスタデータ管理またはデータ・ウエアハウジング若しくはこれらの組み合わせを実行するように構成されてもよく、例えば、コンピュータ・システム100は、重複排除システムを有効にしてもよい。コンピュータ・システム100は、データ統合システム101と、1以上のクライアント・システムまたはデータソース105A~105N(これらを合わせて105と参照する。)とを含む。クライアント・システム105は、(例えば、
図5を参照して説明するような)コンピュータ・システムを含んでもよい。データ統合システム101は、中央リポジトリ103へのアクセス(読み込みおよび書き込みアクセスなど)を制御してもよい。ストレージ・システムは、中央リポジトリ103を含んでもよい。
【0049】
データ統合システム101は、クライアント・システム105から受信したレコードを処理し、データレコードを中央リポジトリ103に格納してもよい。クライアント・システム105は、例えば、無線ローカル・エリア・ネットワーク(WLAN)接続、WAN(ワイド・エリア・ネットワーク)接続、LAN(ローカル・エリア・ネットワーク)接続、またはそれらの組み合わせを含むネットワーク接続を介してデータ統合システム101と通信することができる。
【0050】
中央リポジトリ103に格納されたデータレコードは、複数の列および行を有するデータテーブルのような所定のデータ構造107を有していてもよい。事前定義されたデータ構造は、属性109A~109Pのセット(例えば、データテーブル107の列を表す各属性)を含んでもよい。別の例においては、データレコードは、関係を有するエンティティとしてグラフデータベースに格納されてもよい。事前定義されたデータ構造は、各レコードがグラフのノードに割り当てられ得るグラフ構造を含んでもよい。本例が少数の属性に関して説明されているが、より多くのまたはより少ない属性が使用されてもよい。属性109A~109Pのセットは、例えば、データレコードを受信しながら動的に更新または決定されてもよく、例えば、受信したデータレコードが属性109A~109Pのセットの一部ではない新しい属性を有する場合、その新しい属性は、属性109A~109Pのセットに追加されてもよい。別の例においては、属性109A~109Pのセットは、クライアント・システム105によって使用される全ての属性を示す履歴データに基づいて決定されてもよい。
【0051】
例えば、クライアント・システム105は、同一のデータ構造107を有する場合も、有さない場合もあるデータレコードを提供または作成するように構成されてもよい。クライアント・システム105から受信された各レコードの属性は、全ての属性109A~109Pまたは属性109A~109Pの一部であってもよい。例えば、クライアント・システム105は、XMLもしくはJSON形式、または、属性と、対応する属性値とを関連付けることが可能な他の形式で、レコードを提供するように構成されてもよく、ここで、属性109A~109Pの少なくとも一部がXMLにおいてそれぞれの値に関連付けられる。
【0052】
各クライアント・システム105は、作成されたデータレコードを、本開示の例示的な方法に従って処理された後に中央リポジトリ103に格納するために、データ統合システム101に送信するように構成されてもよい。処理される前に、受信されたレコードは、例えばデータ統合システム101によって、データ構造107の形式に変換されてもよい。
【0053】
一例においては、データ統合システム101は、1または複数の抽出-変換-ロード(ETL)バッチ・プロセスを用いて、またはハイパーテキスト・トランスポート・プロトコル(HTTP:HyperText Transport Protocol)通信を介して、または他のタイプのデータ交換を介して、クライアント・システム105からデータレコードをインポートしてもよい。データ統合システム101およびクライアント・システム105の一方または両方は、例えば、パーソナル・コンピュータ(PC)、サーバおよびモバイル・デバイスの少なくとも1つと関連付けられてもよい。
【0054】
データ統合システム101によってクライアント・システム105から受信された各データレコードは、属性109A~109Pのセットのすべての値を有していてもよいし、有していなくてもよく、例えば、データレコードは、属性のセットのうちの属性のサブセットの値を有してもよく、残りの属性についての値を有さなくてもよい。リポジトリ103に一度格納されると、一例においては、値を持たない残りの属性は、空に維持される可能性がある。言い換えれば、クライアント・システム105によって提供されるレコードは、異なる完全性を有する。完全性は、データ値を含むデータレコードの属性数の、属性109A~109Pのセットにおける属性の合計数に対する比である。
【0055】
データ統合システム101は、本方法の少なくとも一部を実装するアルゴリズム120のような1以上のアルゴリズムを用いて、受信されたレコードを処理するように構成されてもよい。例えば、データ統合システム101は、本開示に従って、同一のエンティティを表すレコードのペアまたは重複レコードを見つけるために、アルゴリズム120を使用して、クライアント・システム105から受信されたデータレコードを処理してもよい。
【0056】
図2は、データセットのデータレコードをマッチングするための方法のフローチャートである。データレコードは、属性のセットの値を有する。簡便のため
図2の方法は、
図1を参照しながら説明するが、これに限定されるものではない。
【0057】
レコードのマッチングは、レコードの属性値を比較することを含む。マッチしたレコードは、同一のエンティティ(同じ人物)を表すレコードであり、異なるレコードは、異なるエンティティのものである可能性がある。2つのレコードのマッチングのレベルは、2つのレコードの属性値の類似の程度を示す。マッチされるまたは比較されるレコードは、単一のデータポイントについてのものであってよい。すなわち、本明細書において使用されるデータポイントは、それらが同一のエンティティを表すか、または異なるエンティティを表すかを決定するために互いに対してマッチまたは比較されるレコードを参照する。データセットは、複数のデータポイントを含み得る。
【0058】
データセットは、データレコードを含んでもよい。データセットは、例えば、データ統合システム101においてクライアント・システム105の1または複数から受信されてもよい。別の例においては、データセットは、現在の主題に従って分類されるべき、中央リポジトリのような1以上のデータベースの既存のデータセットであってもよい。
【0059】
データセットのデータレコードは、例えば、属性109A~109Pの少なくとも一部を有していてもよい。データセットのデータレコードは、データ構造107を有する場合も、有さない場合もある。受信されたデータレコードが、事前定義された構造107とは異なる構造を有する場合、データセットのレコードの構造をデータ構造107に変換するために変換プロセスが実行されてもよい。
【0060】
データセットのデータポイントを最適な方法で分類するために、ステップ201~205の少なくとも一部によって本明細書で説明されるように、能動学習が使用され得る。
【0061】
機械学習モデルは、ステップ201において、ラベル付きデータポイントの現在のセットを使用して訓練されてもよい。ラベル付きデータポイントの現在のセットの各データポイントは、データポイントが同一のエンティティに属するかまたは異なるエンティティに属するかを示すそれぞれのラベルに関連付けられてもよい。例えば、ラベルは、2つの値”同一”または”異なる”を有していてもよい。ラベルは、したがって、それが関連付けられるデータポイントの分類を示す。ステップ201は、同一エンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルをもたらし得る。例えば、訓練済み機械学習モデルにデータポイントを入力することにより、訓練済み機械学習モデルは、入力データポイントの分類を示す分類結果を出力することができる。分類結果は、入力されたデータポイントが”同一”または”異なる”の特定のクラスに分類される可能性がどれくらいかを示す確率値をさらに含み得る。
【0062】
本方法は、ステップ201の最初の実行で使用されるラベル付きデータポイントの現在のセットがごく少数または少数のデータポイントを含み、それでもなおデータセットの分類に有用である可能性があるので、有利である可能性がある。これは、ラベル付きデータポイントの現在のセット内のデータポイントの数が、本明細書に記載された本方法によって漸進的に増加される可能性があり、また、ラベル付きデータポイントの各新しいまたは更新された現在のセットについて、訓練済み機械学習モデルによる分類が改善し得るという事実によって可能となり得る。
【0063】
一例において、機械学習モデルは、ランダムフォレストであってもよい。
【0064】
ステップ203において、ラベル無し(または未分類の)データポイントのサブセットが、ラベル無しデータポイントの現在のセットから選択されてもよい。ラベル無しデータポイントのサブセットの選択は、訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を用いて実行されてもよい。ラベル無しデータポイントの現在のセットの分類は、例えば、ラベル無しデータポイントの現在のセットを訓練済み機械学習モデルに入力することによって実行されてもよい。訓練済み機械学習モデルにラベル無しデータポイントの現在のセットを入力することに応答して、ラベル無しデータポイントの現在のセットの分類結果が受信されてもよい。例えば、ラベル無しデータポイントの現在のセットの各入力データポイントについて、入力データポイントの分類結果が受信されてもよい。
【0065】
ステップ203の選択は、未分類のデータポイントが、訓練済み機械学習モデルにとってどの程度有益であるかに基づいて実行される。例えば、分類結果を用いて、分類が最も不確かなデータポイントが選択されてもよい。例えば、事前定義された構造に従う確率の分布を有するデータポイントが選択されてもよい。そのためには、ラベル無しのポイントの確率がプロットされ、データポイントの分布に基づいて、それらが選択され、あるいは選択されなくてもよい。例えば、データポイントのクラスが非常に高い確率で知られている場合、これは、訓練済みモデルがこのタイプのデータポイントの分類をうまく学習したことを示す可能性がある。このように、最も不確かなデータポイントを選択することによって、モデルはより良く訓練される可能性があり、ひいては、訓練済みモデルが、正確である可能性がある。例えば、マージン・サンプリング法により取得される最も不確かなデータポイントが、他のデータポイントよりも訓練に有益である可能性がある。
【0066】
一例においては、ラベル無しデータポイントのサブセットの選択は、ランダム・サンプリング法を用いて実行されてもよい。例えば、ラベル無しデータポイントの現在のセットの分類結果のうちから、分類結果のサブセットがランダムに選択されてもよい。この選択された分類結果のサブセットは、ラベル無しデータポイントの現在のセットのうちの特定のラベル無しデータポイントの分類結果を含む。特定のラベル無しデータポイントが、ラベル無しデータポイントの選択されたサブセットであってもよい。
【0067】
別の例においては、ラベル無しデータポイントのサブセットの選択は、マージン・サンプリング法を用いて行ってもよい。マージン・サンプリング法は、ラベル無しデータポイントの現在のセットの分類結果の確率値を使用してもよい。これらの確率値は、いずれかのクラスに分類されるデータポイントの同一または類似の確率に基づいて、最も不確かなデータポイントを選択するために使用される。例えば、マージン・サンプリング法を用いて、ランクが分類の不確かさを反映するようにデータポイントをランク付けしてもよい。ラベル無しデータポイントのサブセットは、N個の最も不確かなデータポイントである。例えば、同一のデータポイントが、同一ランクのものである場合には、これらは、選択されたN個のデータポイントにおいて計数され、例えば、N=4であって、ランク付けにより、3つのデータポイントが同一ランク1を有し、1つのデータポイントが、ランク2を有し、5個のデータポイントがランク3を有することが示された場合、選択された4個の最初の不確かなデータポイントは、ランク2を有する1つに加えて同一ランク1を有する3つのデータポイントである。
【0068】
別の例においては、ラベル無しデータポイントのサブセットの選択は、ラベル無しデータポイントの現在のセットの分類結果とともにユーザに促して、実行されるべき選択を要求することによって実行されてもよい。促すことに応答して、ラベル無しデータポイントのサブセットを示すデータまたは情報が受信されてもよい。例えば、ユーザは、どのサブセットを選択するかを判断するために、確率値の分布の分析を実行してもよい。
【0069】
ラベル無しデータポイントのサブセットを選択した後、ラベル無しデータポイントの現在のセットは、ラベル無しデータポイントの選択されたサブセットをそれから除外または除去することによって更新されてもよい。これにより、削減された数のレコードを有するラベル無しデータポイントの現在のセットがもたらされ得る。
【0070】
ステップ205において、分類機が、ラベル無しデータポイントのサブセットとともに提供され、提供に応答して、ラベル無しデータポイントのサブセットのラベルが受信されてもよい。例えば、スチュワード(分類機はスチュワードである。)は、ラベル無しデータポイントのサブセットの分類を彼または彼女の経験に基づいて実行するために要求または照会されてもよい。例えば、ラベル無しデータポイントのサブセットの各データポイントについて、スチュワードは、データポイントのレコード属性値を比較してもよい。彼または彼女の比較の結果は、受信されてもよい。
【0071】
このように、ステップ203および205を使用して、本発明の方法によってさらなるラベル付きデータポイントが取得される。これにより、ラベル付きデータポイントの現在のセットを増加または増強することが可能となり得る。例えば、ラベル付きデータポイントのサブセットは、ラベル付きデータポイントの現在のセットに追加されて、本方法の次の反復のためのラベル付きデータポイントの現在のセットを形成してもよい。ラベル付きデータポイントの現在のセットは、ステップ201~205を繰り返すために使用されてもよい。ステップ201~205の各現在の反復において、最後の反復で生じた訓練済み機械学習モデルが使用されてもよい。
【0072】
一例においては、各ラベル無しデータポイントの現在のセットについてのステップ201~205の反復は、事前定義された反復回数実行されてもよく、あるいは、ラベル無しデータポイントのセットが、事前定義された最小数よりも小さい数のデータポイントを含むまで実行されてもよい。
【0073】
別の例においては、ラベル無しデータポイントのセットが予め定義された最小数よりも小さいデータポイントの数を含むと決定することに応答して、ステップ201~205の反復を、ラベル無しデータポイントのセットが、予め定義された最小数以上の数のデータポイントを含むまで待ってもよい。
【0074】
訓練済み機械学習モデルは、ステップ207において、データセットのすべてのデータポイントを分類するために使用されてもよい。ステップ207で使用される訓練済み機械学習モデルは、ステップ201~205の事前定義された回数の反復からもたらされた訓練済み機械学習モデルであってよい。例えば、ユーザが、モデルが十分に訓練されたことを確信すると、彼または彼女は、訓練済み機械学習モデルを使用すると判断してもよい。訓練済み機械学習モデルの使用は、ステップ201~205の反復によって可能とされる能動学習プロセスに影響を与えあるいは中断しない。
【0075】
データセットのデータポイントの分類は、エンティティ解決(ER)を実行することを可能にし得る。ERは、データセットのデータポイントに割り当てられたクラスを用いて、データセットの分類されたデータポイントを横断して同一の実世界データを特定するためのプロセスである。
【0076】
図3は、機械学習モデルを訓練するためのサブセットの能動学習のための方法のフローチャートである。
図3は、説明の簡単のため、
図4のコンピュータ・システム400を参照して説明する。
【0077】
ステップ300では、マッチング・エンジン401から初期タスクのリストが受信されてもよい。初期タスクのリストは、例えば、タスク・データベース402に格納されていてもよい。マッチング・エンジンは、例えば、確率的マッチングエンジン(PME)であってもよい。初期タスクのリストは、M個のタスクを含み、M個のタスクの各タスクは、データポイントに関連付けられる。データポイントは、レコードを含み、データポイントのタスクは、データポイントのレコードのマッチングを必要とする可能性がある。このように、以下では、データポイントとタスクとは同義に使用される。レコードは、属性のセットを有していてもよい。初期タスクのレコードは、PMEエンジンによって、属性のセットの一部であるPME属性を請うて(suing)取得することができる。
【0078】
ステップ301では、重心に最も近いN個のタスクを選択するためのM個のタスクの初期クラスタリングが実行されてもよい。そのためには、M個のタスクが、属性のセットのうちの第1のサブセットを使用してクラスタリングされてもよい。これにより、複数のクラスタがもたらされ得る。複数のクラスタの各クラスタについて、クラスタの重心に最も近いタスクが特定されてもよい。これにより、N個のタスクがもたらされる。クラスタリングは、例えば、コンピュータ・システム400の機械学習コンポーネント403によって実行されてもよい。
【0079】
ステップ302では、データスチュワードは、N個のタスクを、クラス”同一”または”異なる”に分類する。例えば、N個のタスクを選択すると、スチュワードは、ユーザインタフェース(UI)404を用いてステップ302および303を行うように要求または促される。
【0080】
例えば、ステップ303において、データスチュワードは、属性のセットをランク付けする。ステップ302および303の結果は、例えば、UI404を介して機械学習コンポーネント403で受信されてもよい。
【0081】
照会ステップ304では、ランク付けされた属性がPMEエンジンによって初期タスクを得るために使用されるかどうかを判定してもよい。もしそうであれば、ステップ305~310が実行されてもよく、そうでなければ、ステップ312~313が実行されてもよい。
【0082】
ステップ305において、機械学習モデルは、少なくともN個の分類されたタスクを用いて訓練されてもよい。一例においては、K個のタスクを含む初期訓練セットを使用してもよい。この場合、ステップ305では、N個のタスクだけ初期訓練セットが増加されてもよく、N+Kタスクを使用して訓練が実行されてもよい。
【0083】
初期リスト中のN個のタスクを選択した後にタスクが残っているかを判定してもよく(照会ステップ306)、例えば、M-Nがゼロでないかどうかを判定してもよい。
【0084】
タスクが残っている場合は、ステップ307で、M-Nタスクを使用して、データスチュワードの判断に基づいて、能動学習を実行してもよい。これにより、例えば、L<=M-Nであるとして、L個のタスクがもたらされ得る。例えば、M-N個のタスクのランク付けは、サンプリング機能に基づいてもよい。サンプリング機能としては、例えば、ランダム・サンプリング、エントロピー・サンプリング、マージン・サンプリング、不一致サンプリングなどが挙げられるが、これに限定されない。
【0085】
加えて、ステップ308において、L個のタスクは、どのデータが選択されるべきかを示すビジネスルールを使用してさらにソートされてもよい。また、H<Lであるとして、選択が実行されて、H個のタスクがもたらされる。このステップは、例えば、カスタマー重要性データベース405を用いて実行されてもよい。例えば、サンプリング法によるステップ307のランク付けの後、複数のデータポイントが類似のランクを有する可能性がある。次いで、データポイントをさらに選択するためにビジネスルールが用いられる。この場合、顧客データは、ユーザにとってより有益なタスクのより良い選択のために使用され得る。
【0086】
ステップ309および310において、H個のタスクは、ステップ301で説明したように、ただしランク付けされた属性を用いて、クラスタ化されてもよく、したがって、N2個のタスクが選択されてもよい。これらのN2個のタスクは、ステップ302~310の別の反復のためにデータスチュワードに戻されてもよい。
【0087】
(照会ステップ306)でタスクが残っていない場合、ステップ307からステップ310に進む前に、ステップ311で新たなタスクを待ってもよい。
【0088】
ステップ312では、PMEエンジンによって使用されないランク付けされた属性をPME属性に追加してもよく、その中からクラスタリングを用いてN個のタスクを選択することができる新たな初期サンプルを生成するために、ステップ313において再配備を実行してもよい。ステップ304~310は、機械学習コンポーネント403によって実行されてもよい。
【0089】
図5は、データ統合システム101の例示的なハードウェア実装を示す。
図5は、本開示に含まれる方法のステップを実装することに適した汎用コンピュータ化されたシステムを説明する。
【0090】
本明細書で説明される方法は、少なくとも部分的に非対話的であり、サーバまたは埋め込みシステムのような、コンピュータ化されたシステムによって、自動化されることが理解されよう。例示の実施形態においては、本明細書で説明される方法は、少(部分的に)対話型システムにおいて実装されてもよい。これらの方法は、ソフトウェア(ファームウェア622を含む。)、ハードウェア(プロセッサ605)、または、これらの組み合わせにおいてさらに実装されてもよい。例示の実施形態においては、本明細書で説明される方法は、ソフトウェアにおいて、実行形式プログラムとして実装されてもよく、パーソナル・コンピュータ、ワークステーション、ミニコンピュータ、メインフレーム・コンピュータなどの特定用途または汎用デジタル・コンピュータによって実行される。大部分の汎用システム101は、汎用コンピュータ601を含む。
【0091】
例示の実施形態においては、ハードウェア・アーキテクチャに関し、
図5に示されるように、コンピュータ601は、プロセッサ605と、メモリ・コントローラ615に結合されたメモリ(メインメモリなど)610と、ローカル入力/出力コントローラ635を介して通信可能に結合される1以上の入力および/または出力(I/O)デバイス(または周辺機器)10,645とを含む。入力/出力コントローラ635は、これに限定されるものではないが、当該技術分野で知られているように、1以上のバスまたは他の有線または無線の接続であってよい。入力/出力コントローラ635は、通信を可能にするため、コントローラ、バッファ(キャッシュ)、ドライバ、リピータおよび受信機のような追加の要素を有する可能性があるが、これらは簡便のため省略される。さらに、ローカル・インタフェースは、上述したコンポーネントの間の適切な通信を可能とするためにアドレス、制御もしくはデータまたはこれらの組み合わせの接続を含んでもよい。本明細書で説明されるようにI/Oデバイス10,645は、一般的には、当該技術分野で知られた、任意の一般化された暗号カードまたはスマート・カードを含んでもよい。
【0092】
プロセッサ605は、具体的にはメモリ610に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ605は、任意のカスタム・メイドのまたは市販のプロセッサ、中央処理装置(CPU)、コンピュータ601に関連付けられたいくつかのプロセッサのうちの補助プロセッサ、(マイクロチップまたはチップセットの形態での)半導体ベースのマイクロプロセッサ、マクロプロセッサまたはソフトウェア命令を実行するための任意のデバイスであってよい。
【0093】
メモリ610は、揮発メモリ要素(例えば、DRAM,SRAM,SDRAMなどのランダム・アクセス・メモリ(RAM))、非揮発メモリ要素(例えば、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROM)、電気的消去可能プログラマブル・リード・オンリー・メモリ(EEPROM)、プログラマブル・リード・オンリー・メモリ(PROM))の任意の1つまたは組み合わせを含んでもよい。メモリ610は、種々のコンポーネントが離れた場所にあるが、プロセッサ605によってアクセスできる、分散アーキテクチャを有してもよいことに留意されたい。
【0094】
メモリ610内のソフトウェアは、論理機能、とりわけ本発明の実施形態に含まれる機能を実装するための実行可能な命令の順序付きリストをそれぞれ含む1以上の別個のプログラムを含んでもよい。
【0095】
メモリ610内のソフトウェアは、典型的には、適切なオペレーティング・システム(OS)611も含む。OS611は、基本的に、本明細書で説明する動作を実装するアルゴリズム120などの他のコンピュータ・プログラムの実行を制御する。アルゴリズム120は、例えば、データベース管理システムまたはJava(登録商標)アプリケーションを含み得る。アルゴリズム120は、本方法の少なくとも一部を実行するためのコンポーネントを含み得る。アルゴリズム120は、さらに、例えばマッチングを実行する前に、データレコードの標準化を実行するためのコンポーネントを含み得る。標準化は、データを事前定義されたデータ形式に変形するプロセスを参照する。データ形式は、共通データ定義、形式、表現および構造を含んでもよい。変形されるデータは、事前定義されたデータ形式に適合しないデータである。
例えば、データを変形するプロセスは、データを、これらのデータ形式を定義する共通表現データに適合する必要のあるデータへ自動的に変換するプロセスを含んでもよい。このデータを変形するプロセスは、不整合な値を識別すること、修正すること、スペリング形式および省略を標準化すること、データの形式および内容を検証することを含み得る。
【0096】
本明細書で説明される方法は、ソース・プログラム、実行形式プログラム(オブジェクト・コード)、スクリプトまたは実行するべき命令のセットを含む他の実体物の形態であってよい。ソース・プログラムの場合、プログラムは、メモリ610に含まれても含まれなくてもよいコンパイラ、アセンブラ、インタプリタもしくはこれらに類するものを介して、OS611に関連して適切に動作するように変換(translate)される必要がある。さらに、方法は、データおよびメソッドのクラスを有するオブジェクト指向プログラミング言語、または、ルーチン、サブルーチンもしくは関数またはこれらの組み合わせを有する手続型プログラミング言語で書かれてもよい。
【0097】
例示の実施形態においては、従来型のキーボード650およびマウス655が、入力/出力コントローラ635に結合されてもよい。例えば、I/Oデバイス645などの他の出力装置は、これに限定されないが、例えば、プリンタ、スキャナ、マイクなどの入力装置を含んでもよい。最後に、I/Oデバイス10,645は、これに限定されないが、例えば、ネットワーク・インタフェース・カードまたは(他のファイル、デバイス、システムまたはネットワークにアクセスするための)変調器/復調器、または、高周波、他のトランシーバ、電話インタフェース、ブリッジ、ルータもしくはこれらに類するものまたはこれらの組み合わせなど、入力および出力の両方を通信するデバイスをさらに含んでもよい。I/Oデバイス10,645は、当該技術分野で知られた任意の汎用暗号カードまたはスマート・カードであってもよい。システム600は、さらに、ディスプレイ630に結合されたディスプレイ・コントローラ625を含んでもよい。例示の実施形態においては、システム101は、ネットワーク666に結合するためのネットワーク・インタフェースをさらに含んでもよい。ネットワーク666は、ブロードバンド接続を介して、コンピュータ601と他の外部サーバ、クライアントまたはこれらに類するものとの間の通信のためのIPベースのネットワークであってもよい。ネットワーク666は、本明細書で議論した方法の一部または全部のステップを実行するために関与し得るコンピュータ601および外部システム30の間でデータを送信または受信する。例示的な実施形態において、ネットワーク666は、サービスプロバイダによって管理されたマネージドIPネットワークであってもよい。ネットワーク666は、例えば、Wi-Fi(登録商標)、WiMAX(登録商標)などの無線プロトコルおよび技術を使用するなど、無線様式で実装されてもよい。ネットワーク666は、また、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワークもしくは他の類似のタイプのネットワーク環境またはこれらの組み合わせなどのパケット交換ネットワークであってもよい。ネットワーク665は、固定された無線ネットワーク、無線ローカル・エリア・ネットワーク(LAN)、無線ワイド・エリア・ネットワーク(WAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、イントラネットまたは他の適切なネットワーク・システムであってよく、信号を受信しまた送信するための装置を含む。
【0098】
コンピュータ601がPC、ワークステーション、インテリジェント・デバイスまたはこれに類するものである場合は、メモリ610内のソフトウェアは、さらに、BIOS(Basic Input Output System)622を含んでもよい。BIOSは、起動時にハードウェアを初期化し、テストし、OS611を起動し、ハードウェア・デバイスの間でデータの転送をサポートする、重要なソフトウェアルーチンのセットである。BIOSは、コンピュータ601がアクティベートされた場合にBIOSが実行されるようにROMに格納される。
【0099】
コンピュータ601が稼働中である場合、プロセッサ605は、メモリ610内に格納されるソフトウェアを実行し、メモリ610へのまたはメモリ610からのデータを通信し、かつ、一般にソフトウェアに従ってコンピュータ601の動作を制御するように構成される。本明細書で説明された方法およびOS611は、全体として、または部分的に、しかし、典型的には後者で、プロセッサ605により読み込まれ、プロセッサ605内でおそらくはバッファされ、そして、実行される。
【0100】
本明細書で説明されるシステムおよび方法がソフトウェアにおいて実装される場合、
図5に示すように、方法は、コンピュータ関連システムまたは方法によって、または関連して使用するために、ストレージ620などの任意のコンピュータ可読媒体に格納されてもよい。ストレージ620は、HDDストレージなどのディスク・ストレージを含んでもよい。
【0101】
種々の実施形態が、以下の番号付き条項において特定される:
【0102】
1.データセットのデータレコードをマッチングする方法であって、上記データレコードは、属性のセットの値を有し、上記方法は、
(a)ラベル付きデータポイントの現在のセットを用いて機械学習モデルを訓練するステップであって、上記データポイントの各々は、複数のデータレコードであり、上記データポイントのラベルは、上記データポイントの分類を示し、上記訓練により、同一のエンティティまたは異なるエンティティを表すとしてデータポイントを分類するように構成された訓練済み機械学習モデルがもたらされる、訓練するステップと、
(b)上記訓練済み機械学習モデルを使用したラベル無しデータポイントの現在のセットの分類の分類結果を使用して、上記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントのサブセットを選択するステップであって、上記ラベル無しデータポイントの選択されたサブセットなしの上記ラベル無しデータポイントの現在のセットが、上記ラベル無しデータポイントの現在のセットとなる、選択するステップと、
(c)上記ラベル無しデータポイントのサブセットを分類器に提供し、提供することに応答して、上記ラベル無しデータポイントのサブセットのラベルを受信するステップと、
(d)上記ラベル付きデータポイントの現在のセットに加えて上記ラベル付きデータポイントのサブセットを、上記ラベル付きデータポイントの現在のセットとして用いて、ステップ(a)から(d)までを繰り返すステップと、
(e)上記訓練済み機械学習モデルを用いて、上記データセットのデータポイントを分類するステップと
を含む、方法。
【0103】
2.上記訓練済み機械学習モデルによる上記データセットの上記データポイントの分類を用いて上記データセットの上記データレコードの重複排除を行うステップ、および、
上記訓練済み機械学習モデルによる上記データセットの上記データポイントの分類に基づいて、上記データセットの各データポイントの個別のデータレコードを併合するかまたは維持するステップ
のうちの1つをさらに含む、条項1に記載の方法。
【0104】
3.上記訓練済み機械学習モデルによる上記データセットの上記データポイントの分類を用いて上記データセットの重複排除されたデータレコードを保存するステップをさらに含む、条項1に記載の方法。
【0105】
4.ステップ(e)で使用される上記訓練済み機械学習モデルは、ステップ(a)~(d)の所定回数の反復の結果として生じる上記訓練済み機械学習モデルである、条項1に記載の方法。
【0106】
5.上記繰り返すステップは、予め定義された反復回数行われるか、または、上記ラベル無しデータポイントのセットが、所定の最小数よりも少ない数のデータポイントを含むまで行われる、条項1に記載の方法。
【0107】
6.ステップ(d)は、上記ラベル無しデータポイントのセットが、前記所定の最小数よりも少ない数のデータポイントを含むと判定したことに応答して、ステップ(a)から(d)まで繰り返すステップを、ラベル無しデータポイントのセットが、所定の最小数よりも多い数または同数のデータポイントを含むまで待つステップをさらに含む、条項1に記載の方法。
【0108】
7.さらなるラベル無しデータポイントを受信するステップであって、上記ラベル無しデータポイントが、受信された上記さらなるラベル無しデータポイントを加えて上記ラベル無しデータポイントとなる、受信するステップ
をさらに含む、条項1に記載の方法。
【0109】
8.上記ラベル無しデータポイントのサブセットを選択するステップは、上記分類結果を用いて、上記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの中間サブセットを選択するステップと、上記属性のセットのうちの第1の属性のサブセットを用いて上記ラベル無しデータポイントの中間サブセットの上記データポイントをクラスタリングし、複数のクラスタもたらすステップと、上記複数のクラスタの各クラスタについて、上記クラスタの重心点に最も近いデータポイントを特定するステップとをさらに含み、上記ラベル無しデータポイントのサブセットは、特定された前記最も近いデータポイントを含む、条項1に記載の方法。
【0110】
9.上記ラベル無しデータポイントのサブセットを選択するステップは、上記分類結果を用いて、上記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの第1の中間サブセットを選択するステップと、上記データポイントを説明するメタデータ・パラメータを用いて、上記ラベル無しデータポイントの第1の中間サブセットから、ラベル無しデータポイントの第2の中間サブセットを選択するステップと、上記属性のセットのうちの第1の属性のサブセットを用いて上記ラベル無しデータポイントの第2の中間サブセットのデータポイントをクラスタリングし、複数のクラスタもたらすステップと、上記複数のクラスタの各クラスタについて、上記クラスタの重心点に最も近いデータポイントを特定するステップとをさらに含み、上記ラベル無しデータポイントのサブセットは、特定された上記データポイントを含む、条項1に記載の方法。
【0111】
10.上記ラベル無しデータポイントのサブセットを選択するステップは、上記分類結果を用いて、上記ラベル無しデータポイントの現在のセットから、ラベル無しデータポイントの中間サブセットを選択するステップと、上記データポイントを説明するメタデータ・パラメータを用いて、上記ラベル無しデータポイントの中間サブセットから、上記ラベル無しデータポイントのサブセットを選択するステップとをさらに含む、条項1に記載の方法。
【0112】
11.上記メタデータ・パラメータは、上記データポイントの最新変更時刻および上記データポイントのユーザ優先値の少なくとも1つを含む、条項9に記載の方法。
【0113】
12.上記属性のセットのうちの第2の属性のサブセットを用いて、受信したデータポイントをクラスタリングし、複数のクラスタをもたらすステップと、上記複数のクラスタの各クラスタについて、上記クラスタの重心点に最も近いデータポイントを特定するステップとをさらに含み、上記ラベル無しデータポイントのセットは、特定されたデータポイントを含む、条項1に記載の方法。
【0114】
13.上記第2の属性のサブセットは、上記第1の属性のサブセットと同一または異なる、条項12に記載の方法。
【0115】
14.上記第1の属性のサブセットは、上記第2の属性のサブセットの属性の一部である、上記12に記載の方法。
【0116】
15.上記ラベル無しデータポイントのサブセットのラベルを受信するステップは、上記第1の属性のサブセットの標示を受信するステップをさらに含む、条項8に記載の方法。
【0117】
本発明の側面が、本発明の実施形態に従った方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図およびブロック図またはこれらの一方を参照しながら本明細書において説明される。フローチャート図およびブロック図またはこれらの一方の各ブロックおよびフローチャート図およびブロック図またはこれらの一方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【0118】
本発明は、システム、方法もしくはコンピュータ・プログラム製品またはこれらの組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の側面を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含んでもよい。
【0119】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読ストレージ媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のより具体的な非網羅的なリストとしては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピーディスク(登録商標)、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
【0120】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはこれらの組み合わせといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバまたはこれらの組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0121】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソース・コードあるいはオブジェクト・コードであってよく、1以上のプログラミング言語は、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの従来型の手続型言語を含む。コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、本発明の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよく、この電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む。
【0122】
本発明の側面は、本明細書において、本発明の実施形態に従った方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
【0123】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特定用途コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供され、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行される命令が、フローチャート図もしくはブロックまたはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するように、マシンを生成する。これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置もしくは他のデバイスまたはこれらの組み合わせに特定のやり方で機能するよう指示できるコンピュータ可読ストレージ媒体に格納され、それに格納された命令を有するコンピュータ可読ストレージ媒体に、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
【0124】
コンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で実行される命令が、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成することもできる。
【0125】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に従ったシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、特定の論理機能を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表す可能性がある。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる可能性がある。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行されてもよく、あるいは、複数のブロックは、関与する機能性に応じて逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロックおよびブロック図もしくはフローチャート図またはその両方の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実施する、特定目的ハードウェアベースのシステムによって実装されてもよいことに留意されたい。