(57)【要約】  ブロッキング・キーを決定するための方法が、複数のレコードのペアを、データベースの複数のレコードから形成することのできるペア空間からランダムに選択すること、これらの複数のレコードのペアにスコアを付けること、および複数のレコードのペアのそれぞれのスコアとスレッショルドを比較して各レコードのペアのためのラベルを決定することを包含する。さらにこの方法は、複数のレコードのペアのそれぞれの各フィールドを一文字ずつ比較すること、それにおいてこの比較の結果がバイナリ・ベクトル行列内に入れられるバイナリ・ベクトルであること、およびこのバイナリ・ベクトル行列を基礎としてブロッキング・キーを決定することを包含する。  【選択図】      図１
2007538304.tif 000002
【特許請求の範囲】
【請求項１】
ブロッキング・キーを決定するための方法であって：
複数のレコードのペアを、データベースの複数のレコードから形成することのできるペア空間からランダムに選択すること；
前記複数のレコードのペアにスコアを付けること；
前記複数のレコードのペアのそれぞれのスコアとスレッショルドを比較して各レコードのペアのためのラベルを決定すること；
前記複数のレコードのペアのそれぞれの各フィールドを一文字ずつ比較すること、およびそれにおいて前記比較の結果が、バイナリ・ベクトル行列内に入れられるバイナリ・ベクトルであること；および、
前記バイナリ・ベクトル行列を基礎としてブロッキング・キーを決定すること
を包含する方法。
【請求項２】
前記選択されるレコードのペアは、前記データベースの前記複数のレコードの約１／１，０００を構成する、請求項１に記載の方法。
【請求項３】
スレッショルドを超えるスコアを伴うレコードのペアに第１のラベルが与えられ、スレッショルドより低いスコアを伴うレコードのペアに第２のラベルが与えられ、それにおいて前記スレッショルドは、データベースのフィールドのサブセットの組み合わせの数値的表現である、請求項１に記載の方法。
【請求項４】
前記スコアは、グラウンド・トゥルースの代用となる請求項３に記載の方法。
【請求項５】
前記一文字ずつの比較は、各フィールドについて行われ、前記バイナリ・ベクトルは長さを有し、それにおいて前記長さは、フィールド長の合計である、請求項１に記載の方法。
【請求項６】
前記バイナリ・ベクトル行列は、各フィールド内のポジションに対応する行を包含し、各行は、レコードのペアの比較に対応する、請求項１に記載の方法。
【請求項７】
ブロッキング・キーを決定するための方法ステップを実行するべくマシンによって実行可能なインストラクションのプログラムを有体として具体化するマシン可読プログラム・ストレージ・デバイスであって、前記方法ステップが：
複数のレコードのペアを、データベースの複数のレコードから形成することのできるペア空間からランダムに選択すること；
前記複数のレコードのペアにスコアを付けること；
前記複数のレコードのペアのそれぞれのスコアとスレッショルドを比較して各レコードのペアのためのラベルを決定すること；
前記複数のレコードのペアのそれぞれの各フィールドを一文字ずつ比較すること、およびそれにおいて前記比較の結果が、バイナリ・ベクトル行列内に入れられるバイナリ・ベクトルであること；および、
前記バイナリ・ベクトル行列を基礎としてブロッキング・キーを決定すること
を包含する、マシン可読プログラム・ストレージ・デバイス。
【請求項８】
前記選択されるレコードのペアは、前記データベースの前記複数のレコードの約１／１，０００を構成する、請求項７に記載のマシン可読プログラム・ストレージ・デバイス。
【請求項９】
スレッショルドを超えるスコアを伴うレコードのペアに第１のラベルが与えられ、スレッショルドより低いスコアを伴うレコードのペアに第２のラベルが与えられ、それにおいて前記スレッショルドは、データベースのフィールドのサブセットの組み合わせの数値的表現である、請求項７に記載のマシン可読プログラム・ストレージ・デバイス。
【請求項１０】
前記スコアは、グラウンド・トゥルースの代用となる、請求項９に記載のマシン可読プログラム・ストレージ・デバイス。
【請求項１１】
前記一文字ずつの比較は、各フィールドについて行われ、前記バイナリ・ベクトルは長さを有し、それにおいて前記長さは、フィールド長の合計である、請求項７に記載のマシン可読プログラム・ストレージ・デバイス。
【請求項１２】
前記バイナリ・ベクトル行列は、各フィールド内のポジションに対応する行を包含し、各行は、レコードのペアの比較に対応する、請求項７に記載のマシン可読プログラム・ストレージ・デバイス。
【請求項１３】
レコードのリンク方法であって：
データベースのレコードのペアのプールのサブセットから、少なくとも１つのブロッキング・キーを自動的に決定すること；
前記レコードのペアのプールを、前記自動的に決定したブロッキング・キーを使用してフィルタリングすること；
前記ブロッキング・キーによってフィルタリングされた複数のレコードのペアにスコアを付けること；および、
フィルタリング後の所望のスコアを有するレコードのペアをレポートすること
を包含する方法。
【請求項１４】
少なくとも１つのブロッキング・キーを自動的に決定することは、前記データベースのレコードのペアのプールから複数のレコードのペアをランダムに選択することを包含する、請求項１３に記載の方法。
【請求項１５】
さらに、前記ランダムに選択した複数のレコードのペアにスコアを付けることを包含する、請求項１４に記載の方法。
【請求項１６】
さらに、前記ランダムに選択した複数のレコードのペアのそれぞれのスコアとスレッショルドを比較して各レコードのペアのためのラベルを決定することを包含する、請求項１５に記載の方法。
【請求項１７】
さらに、前記ランダムに選択した複数のレコードのペアのそれぞれの各フィールドを一文字ずつ比較すること、およびそれにおいて前記比較の結果が、バイナリ・ベクトル行列内に入れられるバイナリ・ベクトルであることを包含する、請求項１６に記載の方法。
【請求項１８】
さらに、前記バイナリ・ベクトル行列を基礎としてブロッキング・キーを決定することを包含する、請求項１７に記載の方法。
【請求項１９】
前記決定が、機械学習方法、論理回路方法、および現行のブロッキング・キーの最適化のうちの少なくとも１つに従って行われる、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件出願は、２００４年３月５日に出願された米国特許仮出願第６０／５５０，８７６号の優先権を主張するものであり、当該出願は、その全体が参照によりこれに援用される。
【０００２】
本発明はレコードのリンキングに関し、より詳細に述べれば、レコードのリンキング問題のためのブロッキング・キーを見つけるためのシステムおよび方法に関する。
【背景技術】
【０００３】
レコードのリンクは、同一のエンティティを表すデータベース内の複数のエントリを識別するプロセスである。これは、レコードのペアを比較し、各ペアが同一のエンティティに符合するか否かを決定することによって達成される。実世界のデータベースにおいてレコードのすべての可能ペアを比較することは極端に負担が重く、たとえば２００万のレコードのデータベースのための比較は２兆に達する。この問題を演算的により扱いやすいものとするために、データベースが『ブロック』と呼ばれるより小さなデータベースに、『ブロッキング・キー』を使用して、同一エンティティを表すと見られるレコードのペアのほとんどが同一ブロック内に入るように分割される。
【０００４】
ブロッキング・キーは、レコード内の文字ポジションのセットとして選択される。ブロッキング・キーの質は、結果として重複の検出をもたらした比較の数、およびもたらさなかった比較の数によって測定される。概して言えば、ブロッキング・キーは、蓄積されたドメインの知識の補助を伴うドメイン・エキスパートによって選択される。
【０００５】
ブロッキングは、ペアの比較の数を縮小するためにレコードのリンクに使用されるメカニズムである。データベース（レコードのセット）は、ブロッキング・キーの値によってより小さなブロックに分割される。データベース内のレコードによって形成することのできるすべての可能ペアを比較することに代えて、レコードが同一ブロックに属するペアを比較することだけが必要になる。
【０００６】
ブロッキング・キーは、あらかじめ定義済みのポジションのセットである。良好なブロッキング・キーは、重複レコードが同一ブロック内となる尤度を増加させる。ブロッキング・キーを選択するための現行方法は、直観および統計的分析を基礎としたマニュアル選択を含む。可能ブロッキング・キーのセットが大きいことからこれらの方法は遅く、複雑であり、負担が重い。これらの方法は、良好なブロッキング・キーを見つけ出すことを保証しない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、ブロッキング・キーの自動選択のためのシステムおよび方法が求められている。
【課題を解決するための手段】
【０００８】
この開示の実施態様によれば、ブロッキング・キーを決定するための方法が、複数のレコードのペアを、データベースの複数のレコードから形成することのできるペア空間からランダムに選択すること、これらの複数のレコードのペアにスコアを付けること、および複数のレコードのペアのそれぞれのスコアとスレッショルドを比較して各レコードのペアのためのラベルを決定することを包含する。さらにこの方法は、複数のレコードのペアのそれぞれの各フィールドを一文字ずつ比較すること、それにおいてこの比較の結果がバイナリ・ベクトル行列内に入れられるバイナリ・ベクトルであること、およびこのバイナリ・ベクトル行列を基礎としてブロッキング・キーを決定することを包含する。
【０００９】
選択されるレコードのペアは、データベースの複数のレコードの約１／１，０００を構成する。
【００１０】
スレッショルドを超えるスコアを伴うレコードのペアに第１のラベルが与えられ、スレッショルドより低いスコアを伴うレコードのペアに第２のラベルが与えられるが、それにおいてスレッショルドは、データベースのフィールドのサブセットの組み合わせの数値的表現である。スコアは、グラウンド・トゥルースの代用となる。
【００１１】
上記の一文字ずつの比較は、各フィールドについて行われ、バイナリ・ベクトルは長さを有し、それにおいてこの長さは、フィールド長の合計である。バイナリ・ベクトル行列は、各フィールド内のポジションに対応する行を包含し、各行は、レコードのペアの比較に対応する。
【００１２】
この開示の実施態様によれば、ブロッキング・キーを決定するための方法ステップを実行するべくマシンによって実行可能なインストラクションのプログラムを有体として具体化するマシン可読プログラム・ストレージ・デバイスが提供される。この方法は、複数のレコードのペアを、データベースの複数のレコードから形成することのできるペア空間からランダムに選択すること、これらの複数のレコードのペアにスコアを付けること、複数のレコードのペアのそれぞれのスコアとスレッショルドを比較して各レコードのペアのためのラベルを決定すること、複数のレコードのペアのそれぞれの各フィールドを一文字ずつ比較すること、それにおいてこの比較の結果がバイナリ・ベクトル行列内に入れられるバイナリ・ベクトルであること、およびこのバイナリ・ベクトル行列を基礎としてブロッキング・キーを決定することを包含する。
【００１３】
この開示の実施態様によれば、レコードのリンク方法が、データベースのレコードのペアのプールのサブセットから少なくとも１つのブロッキング・キーを自動的に決定すること、この自動的に決定したブロッキング・キーを使用してレコードのペアのプールをフィルタリングすること、ブロッキング・キーによってフィルタリングされた複数のレコードのペアにスコアを付けること、およびフィルタリング後の所望のスコアを有するレコードのペアをレポートすることを包含する。
【００１４】
以下、添付図面を参照して本発明の好ましい実施態様を更に詳細に説明する。
【発明を実施するための最良の形態】
【００１５】
本発明の実施態様によれば、レコードのリンクのための方法は、レコードのペアのプール（たとえば２×１０12のペア）を用意することを含む（１０１）。少なくとも１つのブロッキング・キーが自動的に決定され、レコードのペアのプールをフィルタして（１０２）、レコードのペアのサブセット（たとえば１０9のペア）１０３とする。レコードのペアのサブセットは、スコア１０４が付けられる。スレッショルドより高いスコアが付けられたレコードのペアがレポートされる（１０５）。ブロッキング・キーは、レコードのリンクに先行して決定される（１０６）。
【００１６】
この例は２×１０12のレコードのペアから１０9のレコードのペアへの縮小を提案しているが、異なる初期プール・サーズを用意してもよい。縮小比（たとえば約１／１，０００）が期待されている。仮定上の初期の２×１０12のレコードのペアは、約２００万のレコードのデータベースに対応する。レコードのペアのサブセットのサイズは、処理速度（たとえばコンピュータの能力）およびレコードのリンクのタスクに許容されている時間制限（たとえば８時間、１日、３日）に依存する。
【００１７】
この開示の実施態様によれば、与えられたスコア付け方法に関してブロッキング・キーの選択（図２参照）を自動化／最適化することが可能である。したがって、スコア付け方法とブロッキング・キーは関連している。
【００１８】
この開示の実施態様によれば、図２を参照すると、ブロッキング・キーを選択する方法が、データベース２０１の多数のレコード（Ｎ）から形成することができるペア空間（たとえば、用意されたペア空間；図１、１０１）から、多数（ｎ）のペアをランダムに選択することを含む。数ｎは、評価が信頼できることを保証する公式によって決定され、たとえば初期プールの５％とする。ｎ個のペアは、スコア付け方法を使用してスコアが付けられ、スレッショルド２０２に従ってラベルが付けられる（たとえば、整合／非整合）。
【００１９】
スコア付け方法は、初期プールからランダムに選択された多数（たとえば『ｎ』）のレコードのペアにスコアを付ける。このスコア付け方法は、データのプールを生成する。スコアが付けられたレコードの各ペアは、対応するポジションにおける整合状態（たとえば、整合または非整合）およびスコアまたはラベルを表すブール・ベクトルを作る。このデータのプールに基づいて、種々の最適化テクニック（たとえば、機械学習、ブール最適化、線形／整数計画法）をブロッキング・キーの導出に使用することができる。
【００２０】
スレッショルドを超えるスコアを伴うペアには１のラベルが付けられる。スレッショルドに満たないスコアを伴うペアには０のラベルが付けられる。スレッショルドは、たとえば整合すると決定されたフィールドのサブセットの組み合わせとすることができる。たとえば、２つのレコードが複数のフィールドにわたって比較され、それら２つのレコードの類似性が、規則のセットの適用および各フィールドに関連付けされた対応する重みの関数として評価され、結果として類似性スコア、たとえば０〜１００の割り当てをもたらす。このスコアがスレッショルド、たとえば６５より大きい場合には、そのペアが整合していると見なされ、たとえば１がラベル付けされる。
【００２１】
スコア付け方法によって与えられたスコアは、グラウンド・トゥルース（重複／非重複）の代用として扱われる。標本内のレコードの各ペア（Ｒ１、Ｒ２）ごとに、たとえば名前フィールドのペア内の各文字を比較する一文字ずつの比較が各フィールド２０３について行われる。結果は、長さｍのバイナリ・ベクトルＶとなり、それにおいてｍはフィールドの長さの合計である。レコードＲ１のｋ番目の文字が、レコードＲ２のｋ番目の文字と異なる場合には、値Ｖ［ｋ］＝０になる。レコードＲ１のｋ番目の文字が、レコードＲ２のｋ番目の文字と同じであれば、値Ｖ［ｋ］＝１になる。ポジションは、左から、または右から指定することができる。結果は、サイズｎ×（ｍ＋１）の０／１行列Ｍであり、それにおいて行の数は標本サイズｎであり、列の数は、ラベル２０４について標準化されたレコードの長さに１を加えた値である。行列Ｍが与えられると、ブロッキング・キーの決定２０５が可能になる。行列Ｍの行はフィールド・ポジションに対応する；各行は、一文字ずつのベースで対応するフィールド・ポジションを比較することによってペアから得られる。
【００２２】
決定されたブロッキング・キーは、レコード・リンク方法の中で実装される（たとえば図１参照）。ブロッキング・キーは、たとえば機械学習方法、論理回路設計方法、または最適化方法によって決定できる。決定されたブロッキング・キーは、マニュアルで修正することができる。
【００２３】
図３を参照すると、機械学習方法は、標本のサイズ（ｎ）３０１としてデータ・ポイントの数を決定することを含む。各データ・ポイントはｍ個のバイナリ特徴を有し、それにおいてｍは、標準化されたベクトル３０２の長さである。各データ・ポイントのためのラベルが、スコア付け方法３０３によって与えられる分類（たとえば０／１）として決定される。いわゆるｆａｌｓｅ  ｐｏｓｉｔｉｖｅのコストに対するｆａｌｓｅ  ｎｅｇａｔｉｖｅのコストの比は大きい（３０４）。分類の陽関数的な形式を決定する際、分類の引数は、ブロッキング・キーである（３０５）。このほかの、最大尤度方法等の機械学習方法を実装することもできることに注意を要する。
【００２４】
機械学習は、最適化の特殊ケースである。たとえば最適化の観点から、長さ『ｋ』の所望のブロッキング・キーが決定される。『所望』は、キーによって正しくブロック化されるペアの最大数として定義してもよい。キーは、ラベル１を有するペアについて真であり、ラベル０を有するペアについて偽である。
【００２５】
図４を参照すると、論理回路設計は、行列４０１の最初のｍ列に対応するｍ個の引数を取る論理（ブール）関数を指定する行列Ｍの決定を含む。関数の値は、行列Ｍ  ４０２の最後の列内に与えられる。ブール関数は単純化４０３され、結果として得られる関数は、選言標準形（ＤＮＦ）４０４の論理表現Ｅである。各ブロッキング・キーは、Ｅ  ４０５の項に対応する。
【００２６】
論理回路設計については、ブール行列Ｍをブール関数として見ることができる。もっとも単純なＤＮＦ形式の等価ブール関数が求められる。この関数は、ブロッキング・キーのセットを与える。
【００２７】
図５を参照すると、最適化方法は、以前に決定された分類器５０１の精度測定の決定を含む。精度測定は、ブロッキング・キーの質に対応する。ブロッキング・キーの質は、線形／混合整数計画法５０２を使用する可能選択肢の空間にわたって明示的に最適化される。
【００２８】
ここで理解する必要があるが、この開示の実施態様に従ったブロッキング・キーの選択のための方法は、種々の形式のハードウエア、ソフトウエア、ファームウエア、専用プロセッサ、またはそれらの組み合わせにおいて実装することができる。一実施態様においては、ブロッキング・キーの選択のための方法を、プログラム・ストレージ・デバイス上において有体として具体化されるアプリケーション・プログラムとしてソフトウエア的に実装することができる。このアプリケーション・プログラムを、任意の適切なアーキテクチャを構成するマシンにアップロードし、それによって実行することができる。
【００２９】
図６を参照すると、この開示の実施態様によれば、ブロッキング・キーの選択のための方法を実装するためのコンピュータ・システム６０１は、特に、中央処理ユニット（ＣＰＵ）６０２、メモリ６０３、および入力／出力（Ｉ／Ｏ）インターフェース６０４を包含することができる。コンピュータ・システム６０１は、概してＩ／Ｏインターフェース６０４を介してディスプレイ６０５および種々の入力デバイス６０６、たとえばマウスおよびキーボード等に結合される。サポート回路は、キャッシュ、電源、クロック回路、および通信バス等の回路を含むことができる。メモリ６０３は、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、ディスク・ドライブ、テープ・ドライブ等、あるいはそれらの組み合わせを含むことができる。ブロッキング・キーの選択のための方法は、メモリ６０３内にストアされ、ＣＰＵ  ６０２によって実行される、信号ソース６０８からの信号を処理するルーチン６０７として実装することが可能である。したがって、コンピュータ・システム６０１は汎用コンピュータ・システムであり、この開示のルーチン６０７の実行時に専用コンピュータとなる。
【００３０】
コンピュータ・プラットフォーム６０１は、オペレーティング・システムおよびマイクロインストラクション・コードも含む。ここで述べている種々のプロセスおよび関数は、これらのマイクロインストラクション・コードの部品もしくは、オペレーティング・システムを介して実行されるアプリケーション・プログラムの部品のうちのいずれか（またはこれらの組み合わせ）とすることができる。それに加えて、追加のデータ・ストレージ・デバイスおよびプリント・デバイスといった、このほかの種々の周辺デバイスをこのコンピュータ・プラットフォームに接続することもできる。
【００３１】
さらにここで理解が必要であるが、添付図面に図示されている構成システム・コンポーネントならびに方法ステップのいくつかがソフトウエアにおいて実装できることから、システム・コンポーネント（またはプロセス・ステップ）の間の実際の接続が、本発明がプログラムされる態様に応じて異なることがある。ここに提供されているこの開示の教示が与えられれば、本発明のそれらの、および類似の実装もしくは構成を当業者が企図することは可能となろう。
【００３２】
レコードのリンクの問題についてブロッキング・キーを決定するためのシステムおよび方法に関する実施態様を説明してきたが、注意を要することは、以上の教示に照らせば、当業者による修正および変形は可能であるということである。したがって、付随する特許請求の範囲によって定義されるとおりの本発明の精神ならびに範囲内となる開示された本発明の特定の実施態様において変更を行い得ることを理解するべきである。このように本発明を特に特許法によって求められる詳細を用いて説明してきたが、請求されており、かつ特許によって保護されることが望ましいとする本発明は付随する特許請求の範囲に示されるとおりである。
【図面の簡単な説明】
【００３３】
【図１】この開示の実施態様に従ったレコードのリンクのための方法のフローチャートである。
【図２】この開示の実施態様に従った自動的なブロッキング・キーの選択のための方法のフローチャートである。
【図３】この開示の実施態様に従った機械学習方法のフローチャートである。
【図４】この開示の実施態様に従った論理回路設計方法のフローチャートである。
【図５】この開示の実施態様に従った最適化方法のフローチャートである。
【図６】この開示の実施態様に従ったシステムの概略図である。
【符号の説明】
【００３４】
６０１  コンピュータ・システム；コンピュータ・プラットフォーム
６０２  中央処理ユニット（ＣＰＵ）
６０３  メモリ
６０４  入力／出力（Ｉ／Ｏ）インターフェース
６０５  ディスプレイ
６０６  入力デバイス
６０７  ルーチン
６０８  信号ソース
【図１】
2007538304.tif 000003
【図２】
2007538304.tif 000004
【図３】
2007538304.tif 000005
【図４】
2007538304.tif 000006
【図５】
2007538304.tif 000007
【図６】
2007538304.tif 000008