Tamr(以前のData Tamer)は、データベースの重複排除を大規模に行います。単純ベイズとグラフクラスタリングが含まれます。
アルゴリズムは主にSQLで実装されていると思いますが、これはやや奇妙ですが、ホワイトペーパーの主な著者はPostgreSQLの作成を主導したMichael Stonebrakerです。
こちらのホワイトペーパーをご覧ください。
編集:彼らの論文がとるステップを以下にまとめました。私の言葉のいくつかは、彼らの論文とほとんど同じです。
Tamrの重複排除システムには、新しいデータソースを扱うための2つの主要なステップがあります。(1)属性の識別と(2)エンティティの統合。これらは、列の重複排除および行の重複排除とほぼ同等です。
1)新しいデータソースを既存のデータソースと比較するための最初のステップは、属性の識別です。
新しいソースの属性(列)は、4つのアルゴリズムを使用して既存のソースの属性にマップされます。
- 属性名とファジー文字列の比較(トライグラムコサイン類似度)
- 列全体をドキュメントと見なし、トークン化し、合計頻度/逆文書頻度(TF-IDF)コサインの類似度を他の列と比較します。
- 最小記述長:交差点と結合のサイズに基づいて2つの列を正確に一致させて比較します。
- 数値列の場合、新しい列と既存の数値列の間でt検定を実行して、同じ分布からのものかどうかを判断します。
2)エンティティの統合(行の重複排除)
属性の識別が実行されたら、行(レコード)を重複排除します。
クラスタリングによる分類
レコードは最初に類似性に基づいてカテゴリにグループ化され、次に重複排除ルールがカテゴリレベルで学習されます。分類の例は、スキーリゾートのデータベース用です。ここでは、ベースエレベーションなどの機能はリゾートが東か西かによって大きく分離されているため、西部のスキーリゾートは東部のスキーリゾートとは異なるカテゴリにする必要があります。分類は、例としてk-meansを使用して、クラスタリングアルゴリズムで行われます。
Naive Bayesでの重複排除
属性が特定され、レコードがカテゴリにクラスタ化されると、重複と非重複のトレーニングセットに基づいて、各カテゴリの重複排除ルールを学習します。
重複排除ルールには2つのタイプがあります。
- 属性にとって意味のある距離関数に関する属性の類似性のしきい値。(これらのしきい値がどのように学習されるかについての論文は明確ではありません。)
- 各属性の重複および非重複の確率分布。例えば
P("Title" values similar | duplicate) ~ 1
と
Pr("State" values are different | duplicate) ~ 0
レコードの各ペアについて、適切な距離メトリックを使用して、各属性の類似性を計算します。いずれかの属性のしきい値を超える類似性がある場合、レコードのペアは単純ベイズ分類器を介して供給され、重複または非重複として分類されます。
私の仮定は、レコードのためにということでX1 = (a1,b1,c1,d1)
、X2 = (a2,b2,c2,d2)
彼らは類似度ベクトル計算正しい距離メトリックにその属性のWRTのための類似性であるが。S = (s_a, s_b, s_c, s_d)
s_i
単純ベイズ分類器の構造は次のとおりです。
P(dupe|S) = P(dupe)P(s_a|dupe)(s_b|dupe)(s_c|dupe)P(s_d|dupe) / P(S)
グラフクラスタリングによるエンティティ解決
分類ステップの後、ペアワイズ複製と考えられる特定のカテゴリのレコードのサブセットがあります。これらは現在、異なった実体に解決される必要があります。これにより、推移性の問題が解決されます。レコードt1がt2の重複であり、t2がt3の重複である場合、t1もt3の重複である必要があります。つまり、t1、t2、およびt3 は同じエンティティを表します。
グラフ構造は、この工程に使用されます。カテゴリ内では、だまされやすい各レコードがノードです。互いに重複している疑いがあるノードには、エッジがあります。次に、クラスターがグラフで検出され、あるクラスターが別のクラスターにどの程度強く接続されているかに関するしきい値に基づいて結合されます。次に、接続性に基づいて結合される場合とされない場合があるクラスターペアの3つの例を示します。
c1 c2
x-x-x-----y-y-y
|\|/| |\|/|
x-x-x-----y-y-y Meets similiarity threshold
|/|\| |/|\|
x-x-x-----y-y-y
x-x-x y-y-y
|\|/| |\|/|
x-x-x-----y-y-y Does not meet similarity threshold
|/|\| |/|\|
x-x-x y-y-y
x y
| |
x-----y Meets similarity threshold
| |
x y
アルゴリズムが終了すると、各クラスターはカテゴリ内の個別のエンティティを表す必要があります。プロセスを完了するには、このエンティティの属性を、その中のレコードの属性から決定する必要があります。ヌルが最初に破棄され、次に頻度、平均、中央値、最長などのメソッドが使用されます。
また、この論文では、アルゴリズムが不確実な場合に役立つドメインエキスパートの使用方法や、異なるレベルの専門知識を持つ複数のエキスパートの使用方法を開発しています。