説明

分割による高次元類似ジョイン方法

【課題】相対的に短い実行時間で大量のストレージ空間を要せず、高次元データに対する類似ジョインを効率よく行うことができる分割による高次元類似ジョイン方法を提供すること。
【解決手段】高次元データ空間を分割するステップと、所定のデータセット間のジョインを行うステップを含み、前記高次元データ空間の分割を行う前に、高次元データ空間を分割するための次元、及び次元の個数を予め決定し、前記データセットの各セルは、前記データ空間上で重なり合っているか、もしくは隣り合っている場合のみにジョインを行う。

【発明の詳細な説明】
【技術分野】
【0001】
 本発明は、高次元類似ジョイン(high-dimensional similarity join)方法に関し、より詳しくは、動的に空間分割次元及び分割次元の個数を予め指定することにより、効率的な類似性(similarity)測定を可能にする次元選択手法を利用した分割による高次元類似ジョイン方法に関する。
【背景技術】
【0002】
 一般に、オーディオ、ビデオ、イメージ、テキストなどのマルチメディアデータ、時間的な順序を表す時系列データ、及び種々のデータウェアハウスに使用される膨大な量のビジネス上のデータは、図6に示すように、前処理過程を経て、検索、管理などが遂行されるように、高次元上の一つのポイント(point)としてマッピングされ、マッピングされたデータ間の類似性は、高次元空間においてユークリッド距離(euclidean distance)により測定される。例えば、二つのイメージファイルの類似性は、高次元の空間上にマッピングされた二つのポイントの間の距離により測定される。
【0003】
 さらに、前記「類似ジョイン」とは、膨大な量のマルチメディアのデータベース、医学のデータベース、科学のデータベース、時系列のデータベースなどから高次元データが入力として提供されるとき、それらのデータセット間の相互類似なデータを効率的に検索することに定義され、特に、イメージ及びマルチメディアのデータシステムと、時系列のデータシステムなどのような高次元データシステムにおいて必須に求められる。
【0004】
 この類似ジョインは、次のようにモデリングすることができる。
【0005】
 まず、d-次元空間上のデータセットR、及びSが存在し、Rと、Sとに対する任意の元素rと、sとがそれぞれr=[r1,r2,...rd]とs=[s1,s2,...sd]とに表れると仮定すれば、類似ジョインは、下記の数1のように公式化される。
【0006】
【数1】



【0007】
 ここで、pは、特定の距離マトリック(metric)を表し、εは、使用者により定義されたパラメータであって、限界類似度を表すが、RとSとからなるデータ対のうち、空間上の距離がε値よりも小さいデータ対のみを結果として返還する。
【0008】
 現在通用の類似ジョイン方法は、低次元データの場合に効率的であるが、10、100、更に10000に至る非常に大きい次数を求める高次元データに対しては、実行時間、及び所要のシステムストレージの面で極めて非効率的である。
【0009】
 従来の類似ジョイン方法は、代表的なものとして、ε-kdBツリーに基づいた類似ジョイン手法(K.Shim, R.Srikant, 及びR.Agrawalらによる“高次元類似ジョイン”、Proceedings of the 1997 IEEE International Conference  on   Data Engineering, 1997)と、イプシロン(ε)-グリッドオーダを利用した類似ジョイン手法(C.Bohm,B.Braunmuller,F.Krebs,及びH.-P.Kriegelによる“ε-グリッドオーダ”(epsilon grid order)、大量の高次元データに対する類似ジョインのためのアルゴリズム”、Proceedings of the 2001 ACM-SIGMOD Conference, 2001)などが挙げられる。
【0010】
 ε-kdBツリーに基づく類似ジョイン手法は、データ空間を一つの次元軸に対してイプシロン(ε)面積のセルにそれぞれ分割してデータを格納した後、それらセルに対して多次元インデックス構造のε-kdBツリーを構成する。
【0011】
 このような手法は、データ分割のためのパーティション領域をε単位に制限することにより、ジョイン回数を効率的に低減するが、それぞれのパーティションを表すε-kdBツリー構造をシステムストレージ内に保持すべきであって、データ空間の次元数が増加するほど、所要のシステムストレージも増大することになり、類似ジョインの実行時間も比例して増加することになる。
【0012】
 また、ε-グリッドオーダを利用する類似ジョイン手法においては、データ空間上にセルの長さがεのグリッドを配置し、それらグリッドセルを辞典編纂順に比較することで得られるデータの特別な整列順序に基づいて、高次元データに対する類似ジョインを行う。しかし、このような手法は、ε-kdBツリーを利用する方法とは異なって、制限されたストレージでも極めて大きいデータセットの効率的なスケーリングを提供するが、図7に示すように、pのジョイン対を探し出すするために、 p-[ε.ε. .ε] と p+ [ε.ε. .ε] 間の全てのポイントを考慮しなければならず、次元の増加に伴い、所定の区間内の検索すべきセルの個数が増大することとなり、実行時間も増加するという問題点がある。
【0013】
 一方、低次元空間データシステムにおいて利用される空間分割手法は、高次元データ空間での類似ジョインに適用可能ではあるが、全ての次元軸に対する空間分割が求められ、実用化の側面からみて好ましくない。すなわち、分割されるセルの数は、分割すべき次元軸の数の増加に従い急激に増加し(例えば、各次元軸が10等分される場合、8,16,32,64の各次元に対して生成されるセルの個数は、108,1016,1032,1064となる)、元のデータセットの個数よりも分割されたセルの個数が多くなる結果をもたらす。分割されたセルの個数が増大すると、データスキュー(data skew)現象が甚だしくなり、さらに、空間分割に基づく手法そのものが非効率的になってしまう。ここで、前記「データスキュー現象」とは、図8に示すように、高次元データ空間を各セルにそれぞれ分割する際、セル内のデータ分布が均一でないことを意味する。
【0014】
 従って、短い実行時間で効率的な高次元データの類似ジョインを行い、類似ジョインの実行の際に大量のストレージ空間を必要としない類似ジョイン方法が求められる。
【発明の開示】
【発明が解決しようとする課題】
【0015】
 本発明は、上記問題点に鑑みなされたものであって、相対的に短い実行時間で大量のストレージ空間を要せず、高次元データに対する類似ジョインを効率良く行うことができる分割による高次元類似ジョイン方法を提供することを目的とする。
【0016】
 また、本発明は、類似ジョインの性能を向上し得る分割次元の選択手法を提供することを他の目的とする。このとき、前記分割次元の選択手法は、与えられた複数のデータセットの各軸に対する分布値を用い、動的に最も効率良くデータ空間を分割する次元、及び次元の個数を指定することである。
【課題を解決するための手段】
【0017】
 上記の目的を達成するため、本発明に係る高次元類似ジョイン方法においては、高次元データ空間を分割するステップを含み、前記高次元データ空間を分割する前に、高次元データ空間を分割するための次元、及び次元の個数が予め決定され、所定のデータセット間のジョインを行うステップを含み、前記データセットの各セールは、前記データ空間上で重なり合っているか、もしくは隣り合っている場合のみにジョインを行うことを特徴とする。
【0018】
 そして、前記データセットの各セル間のジョインの際に発生可能なジョイン演算回数を計算するステップを更に含むことを特徴とする。
【0019】
 さらに、前記高次元データ空間を分割するための次元は、前記ジョイン演算回数に基づいて決定されることを特徴とする。
【0020】
 また、前記高次元データ空間を分割するための次元の個数(dp)は、データセットの大きさと、データセットの格納されたディスクブロックの大きさとを比較して求め、下記の式より求められる。
【0021】
【数2】



【0022】
 ここで、|R|blockと、|S|blockとは、ジョインを行うデータセットRとSとの総ディスクブロック数であり、BlockSizeは、ディスクブロックの大きさ、[1/ε]は、各セルの個数である。
【0023】
 さらに、前記ジョイン演算の回数は、各次元に対し、各セルに含まれたデータセットR及びSのエントリ数を計算した後、各次元に対し、各セル間のジョインの際の距離計算の回数を算出することにより求められる。
【0024】
 さらに、前記ジョイン演算の回数は、各次元に対し、サンプリングされた一部のセルに含まれたデータセットR及びSのエントリ数を計算した後、各次元に対し、各セル間のジョインの際の距離計算の回数を算出することにより求められる。
【0025】
 これらの目的、特徴および利点は、本発明の詳細な説明および添付図面に照らして明らかとなろう。
【発明の効果】
【0026】
 以上のとおり、本発明によると、低次元空間で通用されていた空間分割手法を高次元の空間でも適用可能にし、空間分割によるセルの個数が急激に増加しても、CPU及びIOコストを最適化しながら類似ジョインを行い得るという効果がある。
【0027】
 また、与えられたデータセットの各軸に対する分布値を利用して、動的に最も効率良く空間を分割する次元、及び次元の個数を予め指定することにより、類似ジョインの実行時間を短縮し得るという効果がある。
【発明を実施するための最良の形態】
【0028】
 以下、本発明の好ましい実施の形態を、添付図面に基づいて詳しく説明する。
【0029】
 図1は、本発明を適用するハードウェアの一実施例を示す構成図である。
【0030】
 図1に示すように、システムバス16を介して、単一、もしくは多重プロセッサ(P1,P2,P3…Pn;11)、主記憶装置のメモリ領域12及び入出力処理器15がそれぞれ連結されており、前記主記憶装置のメモリ領域12の内には、共有メモリ領域13が設けられ、前記入出力処理器15は、補助記憶装置のディスク14と連結されている。このように、本発明は、単一プロセッサ、もしくは多重プロセッサと、共有メモリ領域とを含む一般のハードウェア環境で作動し得るものである。
【0031】
 以下、本発明に係る分割による高次元類似ジョイン方法について、図2に基づいて説明する。
【0032】
 本発明に係る分割による高次元類似ジョイン方法においては、高次元データ空間を分割するステップ(S100)と、該空間分割を行う前に、高次元データ空間を分割するための次元の個数を決定するステップ(S200〜S220)と、高次元データ空間を分割するための次元を決定するステップ(S300〜S320)と、所定のデータセット間のジョインを行うステップ(S400)とを含んでいる。
【0033】
 そして、前記各ステップについて、より詳しく説明すると、次の通りである。
【0034】
 前記分割ステップ(S100)においては、全データ空間が、限界類似度を表すε単位のセルにそれぞれ分割されており、データ空間上の全てのエントリが単位ハイパーキューブ(hypercube)の内に存在すると仮定するとき、すなわち、各次元軸の範囲が[0,1]の間の場合、各次元は、[1/ε]個のセルに分けられる。さらに、類似ジョインを行うデータセットR及びSの各エントリは、データの前処理過程を経て該当のセルに分散し、格納される。図3は、2次元に対する分割ステップを経た後のデータ空間を示し、図中の小さい正方形は、それぞれ分割されたセルを表す。
【0035】
 また、前記類似ジョインステップ(S400)においては、類似ジョインを行う二つのデータセットから特定の類似性の要求を満足するデータ対を検索するが、このとき、一つのデータセットの各セルを他の一つのデータセットの全てのセルと対を組み合う必要はなく、データ空間上で重なり合っているか、もしくは、隣り合っているセルのみに対を組み合う。一般に、d-次元上での単位ハイパーキューブの境界に存在しない任意のセルが、対を組み合う相手側のセットのセルの数は、3個となり、例えば、図3の2次元空間でのセルPは、相手側のセットのセルのうち、斜線部分の9個のセルと類似ジョインを行うための対を組み合う。
【0036】
 前述のとおり、高次元類似ジョインを行う場合に、全次元に対してデータ空間を分割すると、分割されたセルの数が急増し、これによりデータスキュー現象が甚だしくなり、ディスクのIO費用が増加することになる。さらに、分割次元の個数が増加すると、データを該当のセルにマッピングするためのハッシュ関数の計算コストも、さらに他の費用負担として作用する。従って、全次元に対して空間を分割せず、次元のうち、データの「均一な分布」を示す幾つかの次元のみを選択して、空間分割を行うことが好ましい。ここで、「均一な分布」は、相対的な概念であって、何れの次元が一つのデータセットに対して均一な分布を示すとしても、他のデータセットに対しては、均一でない分布を示すこともある。また、限界類似度が変わるに従い、次元の分布の均一度も変わる。すなわち、次元の分布の均一度は、与えられた二つのデータセット及び限界類似度に従い、動的に決定される。
【0037】
 従って、本発明においては、全次元に対して空間分割を行わず、次元のうち、データの「均一な分布」示す幾つかの次元のみを選択して空間の分割を行う。
【0038】
 以下、前記空間の分割を行う前に、高次元データ空間を分割するための次元の個数を決めるステップ(S200〜S220)と、高次元データ空間を分割するための次元を決めるステップ(S300〜S320)とについて説明する。
【0039】
 分割次元の個数
 高次元空間での二つのデータセットR及びSに対する類似ジョイン処理の際、データの分布が均一であると仮定し、分割次元の個数がdpのとき、R及びSのデータエントリ数をそれぞれ対組み合わせする回数として測定されるCPUコスト(Cost(CPU))は、下記の数3のように計算される。
【0040】
【数3】



【0041】
 さらに、R及びSの格納された総ディスクブロック数をそれぞれ、|R|block, |S|blockとすると、ディスクへの接近コストのディスクI/Oコスト(Cost(IO))は、下記の数4のように計算される。
【0042】
【数4】



【0043】
 前記数3と数4とによると、分割次元の個数(dp)が増加するほど、CPUコストは減少するが(
【0044】
【数5】



【0045】
を仮定するとき)、ディスクI/Oコストはむしろ増加することが分かる。つまり、CPUコストとディスクI/Oコストとは、類似ジョインの性能に関わってお互いに相反する。
【0046】
 このような点を考慮して、本発明においては、データセットの大きさとディスクブロックの大きさとを比較することにより、分割次元の個数を決定する。
【0047】
 例えば、各セルの平均の大きさを、ディスクの一つのブロックと仮定すると、総分割セルの個数(Np)は、下記の数6のように計算される(S200)。
【0048】
【数6】



【0049】
 ここで、|R|block, |S|blockは、R及びSのそれぞれ格納された総ディスクブロック数であり、BlockSizeは、ディスクブロックの大きさである。
【0050】
 さらに、空間を所定次元の個数(dp)に分割する際に得られるセルの個数(Np´)は、下記の数7のように計算される(S210)。
【0051】
【数7】



【0052】
 従って、Np = Np´が成立され、その結果、分割次元の個数(dp)は、下記の数8のように推論される(S220)。
【0053】
【数8】



【0054】
 分割次元の選択
 高次元データ空間でデータが存在できるドメインの大きさは、指数的に膨張することになり(いわゆる“次元の呪い”現象)、従って、高次元データ空間上で存在する実際のデータの分布は均一でない。
【0055】
 前述のとおり、次元の分布の均一度は、与えられた二つのデータセットと、限界類似度により動的に決定されるので、類似ジョインのための分割次元は、複数のデータセット間の連関関係を考慮して選択されるべきである。つまり、一つのデータセットに対するデータ分布は、類似ジョイン処理を行うための効率的な分割次元の選択基準ではない。
【0056】
 このような点を考慮して、本発明においては、類似ジョイン処理を行うための効率的な分割次元の選択基準として、二つのデータセットを該当の次元軸にジョインする際、データセットのエントリが対を組み合う回数、すなわち、分割されたセル間のジョインの際の距離計算の回数、つまり、ジョイン演算回数が使用されている。このとき、前記ジョイン演算回数は、各次元軸に対するセル間のジョインコストとして見なされ、各次元軸に対して予め計算されたジョインコストに基づき分割次元を選択するようになる。
【0057】
 図4(a)は、特定のデータセットRとSとに対して予想される距離計算の回数を算出する概念を説明するための概略図である。
【0058】
 データセットR及びSの内の各エントリは、一つの次元軸に対する空間プロジェクションを通して該次元軸の座標値に従いε単位で分割された[1/ ε]個のセルのうち、何れの一つとしてマッピングされる。その後、各次元に対し、各セルに含まれたデータセットR及びSのエントリ数を計算する(S300)。
【0059】
 次に、前記エントリ数を利用して、分割されたセル間のジョインの際の距離計算回数が得られる(S310)が、このとき、 自分と隣り合っているデータセットRのセルと、もしくは、重なっているデータセットSの三つのセル部とのジョインが行われる。すなわち、データセットRの任意の各セルは、自分の左方、自分、及び自分の右方に位置するデータセットSのセルとそれぞれジョインを行う。
【0060】
 例えば、図4(b)に示すように、特定の次元に対してデータセットRがそれぞれ 1個、3個、0個、5個,……のエントリを有し、データセットSがそれぞれ1個、3個、4個、2個,5個……のエントリを有すると仮定すると、距離の計算回数は、{(1x1)+(1x3)}+{(3x1)+(3x3)+(3x4)}+{(0x3)+(0x4)+(0x2)}+{(5x4)+(5x2)+(5x5)}+…のように求められる。
【0061】
 最終的に、各次元軸に対して得られた予想の距離の計算回数が小さいほどジョインコストが低いと見なされ、更に、ジョインコストの最も低い次元が分割次元として指定される(S320)。
【0062】
 一方、前記距離の計算回数の算出の際に、実際にデータを分割して格納する必要はなく、ただ、二つのデータセットに対して各セルに属するデータの個数のみを記録すれば良い。すなわち、分割次元を選択するとき、ジョイン演算を実際に行わず、各セルに指定されたエントリ数のみを利用してジョインに必要な距離の計算回数を算出する。
【0063】
 さらに、前記エントリ数を求める際に、全てのデータセットに対して、各セルに指定されたエントリ数を求めるか、もしくはデータセットの一部のみをサンプリングしてエントリ数を求めても良い。
【0064】
 図5は、データセットRとSとに対する分割次元の選択のためのアルゴリズムを示す。図中、アルゴリズムの7〜11ライン、及び12〜16ラインは、各次元に対して各セルに含まれているデータセットRとSのエントリ数を算出する過程を示し、18〜24ラインは、各次元に対してセル間のジョインの際の距離の計算回数を算出する過程を示す。
【図面の簡単な説明】
【0065】
【図1】本発明を適用するハードウェアの一例を示す構成図である。
【図2】本発明に係る分割による高次元類似ジョイン方法を説明するフローチャートである。
【図3】2次元に対して分割ステップを経た後のデータ空間を示す図である。
【図4】図4(a)と、図4(b)は、特定のデータセットRとSとに対する予想の距離の計算回数を算出する概念を説明するための概略図である。
【図5】データセットR及びSに対する分割次元の選択のためのアルゴリズムを示す図である。
【図6】高次元データが前処理過程を経て、検索、管理されるように、高次元上の一つのポイントにマッピングされる概念を示す図である。
【図7】従来のε-グリッドオーダを利用した類似ジョインにおけるデータ空間を示す図である。
【図8】高次元の空間をセルに分割する際のセル内のデータ分布の不均一さを示す図である。
【符号の説明】
【0066】
 11 多重プロセッサ
 12 主記憶装置のメモリ領域
 15 入出力処理器
 16 システムバス

【特許請求の範囲】
【請求項1】
 分割による高次元類似ジョイン方法において、
 高次元データ空間を分割するための次元、及び次元の個数を予め決定するステップと、
 前記決定された次元及び次元の個数に従い、高次元データ空間を分割するステップと、
 前記分割された次元に従い、各データセット間のジョインを行うステップとを含み、
 前記各データセットの各セルは、前記データ空間上で重なり合っているか、もしくは隣り合っている場合にのみジョインを行うことを特徴とする分割による高次元類似ジョイン方法。
【請求項2】
 前記データセットの各セル間のジョインの際に発生可能なジョイン演算回数を計算するステップを更に含むことを特徴とする請求項1に記載の分割による高次元類似ジョイン方法。
【請求項3】
 前記高次元データ空間を分割するための次元は、前記ジョイン演算回数に基づいて決定されることを特徴とする請求項2に記載の分割による高次元類似ジョイン方法。
【請求項4】
 前記高次元データ空間を分割するための次元の個数dpは、
 データセットの大きさと、データセットの格納されたディスクブロックの大きさとを比較して求め、下記の式より求められることを特徴とする請求項2または3に記載の分割による高次元類似ジョイン方法。
【数1】



ここで、|R|blockと、|S|blockとは、ジョインを行うデータセットRとSとの総ディスクブロック数であり、BlockSizeは、ディスクブロックの大きさ、[1/ε]は、各セルの個数である。
【請求項5】
 前記ジョイン演算回数は、各次元に対し、各セルに含まれたデータセットR及びSのエントリ数を計算した後、各次元に対し、各セル間のジョインの際の距離計算の回数を算出することにより求められることを特徴とする請求項4に記載の分割による高次元類似ジョイン方法。
【請求項6】
 前記ジョイン演算の回数は、各次元に対し、サンプリングされた一部のセルに含まれたデータセットR及びSのエントリ数を計算した後、各次元に対し、各セル間のジョインの際の距離計算の回数を算出することにより求められることを特徴とする請求項4に記載の分割による高次元類似ジョイン方法。

【図1】
image rotate



【図2】
image rotate



【図3】
image rotate



【図4】
image rotate



【図5】
image rotate



【図6】
image rotate



【図7】
image rotate



【図8】
image rotate