(57)【特許請求の範囲】
【請求項１】
コンピュータにより管理されるデータベースに保持され属性を含む情報の情報処理をコンピュータに実行させるためのプログラムであって、前記情報は、属性を使用してドキュメント−キーワード・ベクトルとされてドキュメント行列を構成し、かつ少なくとも属性に対応する数値要素と前記情報の階層構造を追跡するためのノードポインタを含む情報識別子とを含み、前記ドキュメント−キーワード・ベクトルは、前記情報の階層化構造におけるノードを構成しており、前記プログラムは、前記コンピュータに対し、
前記ドキュメント行列を所定の次元まで次元削減を行い、次元削減行列を生成するステップと、
前記次元削減行列に含まれるドキュメント−キーワード・ベクトルを前記階層構造のノードセットのうちのトップノードとしてランダムに指定するステップと、
前記トップノードから開始する層状の階層レベルとして、前記ドキュメント−キーワード・ベクトルに対して前記階層構造を構成するステップと、
互いに隣接した階層レベルの上側レベルから親ノードを決定し、下側レベルから前記親ノードと子ノードとの間の三角不等式を満たす距離空間での距離を使用して前記子ノードを選択することにより、前記親ノードに対する所定数の複数の子ノードの対を決定するステップと、
決定された前記親ノードと前記子ノードとの間を規定するノードポインタを、対応する前記親ノードと前記子ノードについてのそれぞれの前記情報識別子として追加して、前記親ノードと前記子ノードとの間の関連性を生成するステップと、
クエリーを取得し、前記クエリーに関連して前記ノードをランク付けするステップと、
前記ノードを選択して前記クエリーに関連してランク付けされたノードを前記親ノードとして割り当てられた前記子ノードとの間の前記距離に応答したクラスターを生成するステップと、
を実行させる、コンピュータ実行可能なプログラム。
【請求項２】
前記次元削減ステップは、潜在的意味索引法または共分散行列法を使用して前記行列の次元削減を行うステップを含む、
請求項１に記載のプログラム。
【請求項３】
前記親ノードと前記子ノードとの間の関連性を生成するステップは、さらに、前記所定数の子ノードを示すポインタが所定数に達していない親ノードと、前記情報識別子のノードポインタにおいて親ノードが登録されていない少なくとも１つの子ノードとの間において別のポインタ対を決定し、前記ノードポインタとして前記ドキュメント−キーワード・ベクトルの対応するそれぞれのノードポインタとして割り当てる、第２の生成ステップを含む、
請求項１に記載のプログラム。
【請求項４】
前記情報処理は、情報検索、情報検出、情報ランキング、時系列データ解析およびこれらのいかなる組み合わせから選択される、
請求項１に記載のプログラム。
【請求項５】
コンピュータと、入出力インタフェイスと、前記コンピュータにより管理されるデータベースとを含む情報処理システムであって、前記情報は、属性を使用してドキュメント−キーワード・ベクトルとされ、ドキュメント行列を構成し、かつ少なくとも属性に対応する数値要素と前記情報の階層構造を追跡するためのノードポインタを含む情報識別子とを含み、前記ドキュメント−キーワード・ベクトルは、前記情報の階層化構造におけるノードを構成しており、前記情報処理システムは、
前記ドキュメント行列を所定の次元まで次元削減を行い、次元削減行列を生成する手段と、
前記次元削減行列に含まれるドキュメント−キーワード・ベクトルを前記階層構造のノードセットのうちのトップノードとしてランダムに指定する手段と、
前記トップノードから開始する層状の階層レベルとして、前記ドキュメント−キーワード・ベクトルに対して前記階層構造を構成する手段と、
互いに隣接した階層レベルの上側レベルから親ノードを決定し、下側レベルから前記親ノードと前記子ノードとの間の三角不等式を満たす距離空間での距離を使用して選択し、所定数の複数の子ノードの対を決定する手段と、
決定された前記親ノードと前記子ノードとの間を規定するノードポインタを、対応する前記親ノードと前記子ノードについてのそれぞれの前記情報識別子として追加して、前記親ノードと前記子ノードとの間の関連性を生成する手段と、
クエリーを取得し、前記クエリーに関連して前記ノードをランク付けする手段と、
前記ノードを選択して前記クエリーに関連してランク付けされたノードと前記ノードを前記親ノードとして割り当てられた前記子ノードとの間の前記距離に応答したクラスターを生成する手段と
を含む情報処理システム。
【請求項６】
前記次元削減手段は、潜在的意味索引法または共分散行列法を使用して前記行列の次元削減を行う手段を含む、
請求項５に記載のシステム。
【請求項７】
前記関連性を生成する手段は、前記所定数の子ノードを示すポインタが所定数に達していない親ノードと、前記情報識別子のノードポインタにおいて親ノードが登録されていない少なくとも１つの子ノードとの間において別のポインタ対を決定し、前記ノードポインタとして前記ドキュメント−キーワード・ベクトルの対応するそれぞれのノードポインタとして割り当てる第２の生成手段を含む、
請求項５に記載のシステム。
【請求項８】
前記情報処理は、情報検索、情報検出、情報ランキング、時系列データ解析およびこれらのいかなる組み合わせから選択される、
請求項５に記載のシステム。
【請求項９】
請求項１〜４のいずれか１項に記載のプログラムを記憶したコンピュータ可読な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、大規模データベースにおける情報処理に関し、より詳細には大規模データベースに保持されたドキュメントといった情報の、ランダム化されたサンプルの階層化構造を使用する情報検索、検出、ランキングおよび時系列データ解析に関する。
【０００２】
【従来の技術】
近年、情報処理システムは、たとえばニュース・データ、顧客情報、在庫データといった大量のデータを取り扱うことがますます要求されている。このようなデータベースのユーザは、所望する情報を迅速かつ効果的に充分な精度をもって検索を行うことがますます困難となっている。このため、新たなトピックスや事件の検出を適時に正確で、安価に行うことは、たとえば在庫管理、先物取引、世界中に多数のレポーターを駐在させることなくレポーターを赴任させる必要のある通信社、およびインターネットや別の素早い環境に基づいて行われ、成功するために競合者についての新たで重要な情報を必要とするビジネスなど、多くのタイプのビジネスに対して価値ある情報を提供することになる。
【０００３】
従来では、大規模なデータベース内での新たな事象の検出およびトラッキングは、検索者が通常では検索をモニタするための余剰な人員を確保する必要があるので、効果で、労力を使い、時間を浪費するものである。
【０００４】
検索エンジンのために用いられている事象の検出およびトラッキング方法には、データベース内のデータについてデータのクラスター化を行うためベクトル・モデルを使用しているものが多い。ベクトル空間モデルでは、関連するデータベース内のそれぞれのドキュメントは、ドキュメントの属性を表す座標軸を有するベクトルによりモデル化される。理想的には、情報検索の間に互いにドキュメントを区別するのを容易にする属性だけを属性空間に含ませる。２値化モデルでは、ゼロ（対応する属性が含まれていない場合）、または１（対応する属性が含まれている場合）とされる。２値化モデルに関しては多くの改良が行われている。最も普通に用いられているのは、属性（キーワード）の出現頻度、または出現位置（タイトル、セクションヘッダ、またはアブストラクトのキーワード）を考慮するターム・ウエイティング・モデルである。最も簡単な検索およびランキングシステムにおいては、それぞれの頻度はまた、ドキュメントと同じ方法によるベクトルによってモデル化される。
【０００５】
先行技術
１．類似検索
類似性検索（また、近接検索）は、データベース内のアイテムが、与えられたクエリー・ベクトルに対してどの程度適合するかを考慮するものである。類似度（または非類似度）は、典型的にはある種の実数または整数値化された距離を“尺度”として使用するモデルである。すなわち、
(1) dist(p, q) ≧ 0 for all p, q （非負）;
(2) dist(p, q) = dist(q, p) for all p, q （対称）;(3) dist(p, q)=0 ⇔  p=q （必要十分条件）;
(4) dist(p, q) + dist(q, r) ≧ dist(p, r) for all p, q, r (三角不等式)；
などである。
【０００６】
上述した距離関数が存在する対象のセットは、距離空間と呼ばれる。クエリー時に、距離を評価する数を低下させることを可能とするデータ構造は、索引と呼ばれる。
【０００７】
距離空間における類似クエリーには、２つの一般的なタイプがあり、（Ａ）与えられたクエリー要素ｑおよび正数ｋについて、ｋ番目までに近いものを探すクエリーであり、ｑに対してｋ番目までの近接したデータベース要素を出力させ、（Ｂ）クエリー要素ｑと距離ｒとを与え、dist(p,q)≦rとなるデータベース内におけるすべてのアイテムｐを出力させるものである。
【０００８】
大規模なデータベースについては、クエリーベクトルからの距離をすべてのデータベース要素につき正確に計算することで類似クエリーを実行させるのは負担が大きすぎる。また、データベース要素の間のすべての距離をあらかじめ算出して保存しておくことも、データベース要素の数のベキ乗に比例した時間と空間（すなわち、時間的にはデータ数をNとして，N2倍になる）とを要するので、負担が大きすぎる。より現実的な方法は、クエリーを概ねデータ数Nに比例する時間、好ましくはN2のオーダー以下の記憶領域と前処理時間とを使用して取り扱うことができる検索構造を構築することである。
【０００９】
２．類似検索構造
類似クエリーを取り扱うための、膨大な種類の構造が過去３０年にわたり提案されてきている。これらのうちの大半は、対象とする集合をｄ個の実数値キーワードのベクトルとしてモデル化する空間索引を用いるものである。この手法に属する例としては、四分木、k-d-tree、B-treeの他にも、R*-tree、X-treeといったより新しい構造を含むものを挙げることができる。過去１０年間にわたり、一般化された距離空間についての索引を用いる手法も提案されてきており、たとえば消失点木（ＶＰＴ）、幾何学的近傍アクセス木（ＧＮＡＴ）、空間近似木（SAT）、およびM-treeを挙げることができる。これらの“距離”検索構造は、距離が尺度として存在すること以外にはデータベース要素の性質にまったく仮定を行なわず、従って空間検索構造よりも、より適用性が広いといえる。
【００１０】
論理的な方法で、Ciacciaら（Paolo Ciaccia and Marco Patella, PAC nearest neighbor queries: approximate and controlled search in high-dimensional and metric spaces, Proc. 16th International Conference on Data Engineering(ICDE 2000), San Diego, USA, 2000, pp.244-255.）は、M-treeを変更した距離探索構造は、ベクトルデータについて通常の空間索引法およびR*-treeと同等であることの証拠を示した。多次元ベクトル空間および距離空間についてのサーチ構造の最近の検討については、Edgar Chavez, Gonzalo Navarro, Ricardo Baeza-Yates and Jose L. Marroquin, Searching in metric spaces, ACM Computing Surveys vol. 33, No. 3, pp. 273-321.)を参照されたい。
【００１１】
類似検索の実情は、計量データであろうと、ベクトルデータであろうと、ともに“次元の呪い”と呼ばれる効果により制限を受ける。伝統的なベクトル空間における索引技術（たとえばk-d-tree）は、距離計算コストや記憶領域が空間を示す次元に指数関数的に依存する。距離索引法は、いわゆるデータの“固有次元”が空間の次元よりも著しく小さい場合により現実的な代替法である。
【００１２】
ベクトル空間については、固有次元は、データ点間の距離を保存するために、データ点が埋め込まれる最小の次元としてとらえることができる（１００次元空間での２次元平面は、固有次元が２であり、空間を示す次元は１００である）。距離空間においては、固有次元の直感的認識は、種々の方法により定量化されている。たとえば、Chavezら、（前掲）、Pestov (Vladimir Pestov, On the geometry of similarity search: dimensionality curse and concentration of measure, Information Processing Letters, 73, 2000, pp.47-51.)を挙げることができる。
【００１３】
後者の論文では、“自然発生”空間および分布が究極的には次元に関連して探索時間を指数的な下限値まで導く“集約特性”を有することが示されている。言い換えれば、次元の呪いは、クエリー要素からデータベース要素への距離の分布によるものであり、次元（代表次元または固有次元）が増加するにつれ、距離の変動は減少し、そしてサーチは、より困難になる。この結果、概ね２０を超える固有次元の空間について一般的な（正確な）近接クエリーを直接的に取り扱うことができる索引技術は、これまで知られていない。この限界を超えて多数の距離計算を行うために必要とされる手段は、完全なデータベースのシーケンシャルな探索とは比較することができないものとなる。
【００１４】
３．  関連距離索引構造
本発明者らの提案するシステムにもっとも関連する２つの距離索引は、Ciacciaら（前掲）およびNavarro (Gonzalo Navarro, Searching in metric spaces by spatial approximation, Proc. String Processing and Information Retrieval (SPIRE ’99), IEEE CS Press, 1999, pp.141-148.)による、SATである。
【００１５】
＜M-tree＞
M-treeのいくつかのバリエーションが知られている。以下、もっとも有効であるとして報告されているバリエーションについて説明する。それぞれのノードは、利用可能なデータベース要素のセットから選択されるｍ個までの“ピボット”要素ｐ１，ｐ２，．．．，ｐｍを記憶する。それぞれのピボットは、subtreeに対するポインタを伴っている。残りの利用可能な要素は、もっとも近いピボットに伴われるsubtreeに帰属される。すなわち、要素ｓは、すべてのｉ≠ｊについて、dist(s,pi)≦dist(s,pj)（結合は任意に切断することができる。）の場合にのみ、ピボットｐｉのsubtreeに帰属される。共通のsubtreeに帰属された要素は、その後再帰的にtreeに組み込まれ，M-treeが形成される。それぞれのピボットｐには、dist(p,φ(p))（ここで、φ（ｐ）は、当該subtree内でのｐからもっとも離れた要素である）で定義される、その被覆半径が記憶されている。
【００１６】
treeをサーチする場合には、被覆半径を使用して、クエリーを満たすことがあり得ないsubtreeを排除する。アイテムｑおよびレンジｒを含むクエリーであるレンジ・クエリーについては、三角不等式、
dist(q,p) > r + dist(p,φ(p))
を満たす場合、ｐのsubtreeの要素は、解にはまったく含まれないことが保証される。そうでない場合は、ｐのsubtreeを探索する。
【００１７】
M-treeは、B-treeと同様な方法で動的な挿入により構成される。トップレベルである“ルート”ノードから開始して、要素は、その被覆半径の増加が最小となるようにsubtreeへと挿入される。被覆半径が増加しない要素があった場合は、要素は、もっとも近いピボットのsubtreeへと挿入される。このプロセスは、treeの底レベルに達するまで続けられる。この“リーフ”ノードで存在するピボットの数がｍよりも少ない場合には、新たな要素をそのノードにピボットとして追加する。そうでない場合には、オーバーフローが発生する。つまり、そのノードは、２つに分けられ、要素は上側へと移動される（これは、逆に他の分離の引き金となる）。この他にも、ノードが分離され、上側へ移動する要素が選択されるようないくつかのバリエーションがある。
【００１８】
＜空間近似木(SAT)＞
名前が示すように、SATは、データベース要素の間の近似関係を捉える試みを行ない、そのエッジをエッジに沿った方向の距離を最小にするように選択する。ルート・ノードでは、要素ｐが選択される。ｐに連結されるＮ個の複数の子からなるセットは、ｐを最近傍として有するデータベース要素を構成する。Ｎ∪{ｐ}に含まれない残りの要素ｕは、Ｎの最も近い要素に付随するsubtreeへと帰属される。それぞれのsubtreeについては、当該subtreeに帰属される要素が、再帰的にtreeに組み込まれ、SATが形成される。
【００１９】
個々のアイテムのサーチは、要素がクエリー・アイテムに最も近い要素の子ノードを繰り返し決定することによりエッジとなるまで実行される。要素ｑのレンジ検索は、個々のアイテムについての検索の適用により、ｑを中心とし、中心がｒの閉じたボール、{q’|dist(q,q’)}≦r}におけるすべてのアイテムが同時に検索されるようにして行われる。
【００２０】
４．近似的な類似検索
次元の呪いを回避する試みにおいて、従来の技術は、計算のスピードアップを行うため、類似クエリーの精度をいくらか低下させることが考えられていた。典型的な例として、クエリーと共に、クエリーの結果の正確な結果からのずれの尺度である、精度パラメータε＞０を指定する。一般的に、ｒｋを、クエリー要素ｑからそのｋ番目に近いネイバーまでの距離（未知）であるものとすると、(1+ε)-(近似的なｋ最近傍クエリー）は、下記集合Uの要素を返す。
【００２１】
|U| = k,
dist(q, u) ≦ (1+ε)rk （すべてのu ∈ Uについて）
【００２２】
５．ベクトル空間
ベクトル空間についての上述したタイプの近似的アルゴリズムは数多く存在している。これらのアルゴリズムにより共有される特徴は、スケーラビリティに欠けるため、それらのクエリー実行時間が、ｋとｄが増加するにつれて、またεが減少するにつれて、きわめて遅くなってしまうことである。代表例は、Aryaら（Sunil Arya, David M. Mount, Nathan S. Netanyahu, Ruth Silverman and Angels Y. Wu, An optical algorithm for approximate nearest neighbor searching in fixed dimensions, Journal of the ACM, 45, 6, 1998, pp.891-923.）のミンコフスキーの距離についてのアルゴリズムを挙げることができる。ここで、(1+ε)-近似的なｋ最近傍クエリーは、
O( [ ( 1 + 6 dε-1 )d + 2 k ] d log n ).
に比例する計算時間を必要とする。
【００２３】
彼らは、指数因子は、実際上上記よりもこの範囲では小さいことを報告しているものの、彼らの方法は、実際上は概ね２０次元に制限されることを述べている。彼らは、
dist( q, u ) ≦ ( 1 +ε’ ) rk （所定のε’≪εについて）
であるので、(1+ε)-近似的最近傍クエリーは、多くの場合、より正確であると注記している。これは、有効なことであると思われるが、実際的には、上述した方法は、εの正確な値を決定することを困難とする。
【００２４】
最近、Ferhatosmanogluら (Hakan Ferhatosmanoglu, Ertem Tuncel, Divyakant Agrawal and Amr El Abbadi, Approximate nearest neighbor searching in multimedia databases, Proc. 17th International Conference on Data Engineering (ICDE 2001), Heidelberg, Germany, 2001, pp.503-514.)は、低次元で優れた結果を与えるベクトル空間に対する近似的アルゴリズムを提案した。前処理で、データは“k-means”法（ここで、“k-means”における“ｋ”は、求めるクラスターの数である）により、多数の小さいクラスターに分割される。それぞれのクラスターは、代表ベクトルｒｉを伴っており、データ要素ｕは、すべてのｊ≠ｉについて、
dist(u, ri) ≦ dist(u, rj) （j ≠ iであるようなすべてのjに対して）
である場合に、ｉ番目のクラスターに属するものと判断される。ｕが１つ以上のクラスターについてこの条件を満たす場合には、それらのうちの１つに任意的に割り当てることができる。）代表の初期選択は、２つのステップからなるループで反復的に改善され、このループは、もうこれ以上改善されないとわかったところで停止される。
【００２５】
ステップ１：データ要素を、そのもっとも近い代表へと割り当てることによりクラスターを形成する。
【００２６】
ステップ２：それぞれのクラスターについてベクトルデータを平均して新たなクラスター代表を得る。
クラスターのサイズは、最小値と最大値との間になるように制限され、最小値は、典型的なクエリー・サイズの程度とされる。これは、クラスターが大きくなりすぎた場合のクラスター代表を２つの分離させることにより反復およびクラスターが小さくなりすぎた場合の代表クラスターの削除を行う間に実行される。
【００２７】
クラスター化を用いたｋ近傍クエリーを実行させるために、Ferhatosmanogluらは、下記の方法を使用している。
【００２８】
ステップ１：クエリー・ベクトルから代表ベクトルへの距離が増加する順番でクラスターをランク付けする。
【００２９】
ステップ２：ベクトル表現の最初の数個の座標軸に基づいてクエリー点からの距離に従ってクラスターの要素をソートする。ここで、最も近いｋ個のポイントをｋ近傍クエリーの解の候補とする。
【００３０】
ステップ３：ランク付けされたリストにある次のクラスターまたはベクトル表現の新しいいくつかの次の座標軸のいずれかを使用して、解の候補を改良し、ステップ１と、ステップ２とを繰り返す。
【００３１】
彼らの実装において、Ferhatosmanogluらは、いくつかのデータセットでは、シーケンシャル検索を超える実質的なスピードアップをもって90％オーダーの精度を得られることを示した（要素の全列挙型探索法）。小さなセット（12,000ポイントまでは、30倍のスピードアップが上述したレベルの精度で観測され、より大きなセット（100,000ポイント）では、約17倍のスピードアップが見られた。残念なことに、著者らはデータの削減された次元数を示していない。上述した成功にもかかわらず、上述した方法は、後述するいくつかの著しい欠点を含む。
【００３２】
（１）結果の品質は、クラスタリングの成功に大きく依存することである。k-meansは、その効率の故に一般的ではあるが、低精度のクラスタリングを生じる点で有名である。この手法は、利用可能な代表ベクトルの初期選択に特に敏感である。また、いくつかのデータ・セットは、クエリー・サイズよりもオーダー的に何倍も多い自然的なクラスターを含む可能性がある。通常、均一またはほぼ均一な密度の大きな領域内でのデータのクラスター化に挑戦することは意味があまりない。k-meansについての手法およびその性能についてのより詳細については、Leonard Kaufman and Peter J. Rousseeuw, Finding Groups in Data: an Introduction to Cluster Analysis, John Wiley & Sons, New York, USA, 1990を参照されたい。
【００３３】
（２）クラスターのサイズに上限と下限とを設けることは、k-means手法が解を変換できない状態を与える。クラスターの代表の排除は、より大きなクラスターにクラスターの要素が帰属される結果となる。このことでより大きなクラスターが最大のサイズ限界を超えさせてしまう場合には、得られる分離は、以前に排除されたより小さなクラスターを修復することとなる。その結果として無限ループに陥る危険性がある。
【００３４】
Ferhatosmanogluらは、彼らの方法を、一般的な次元削減技術を使用した比較的低い次元でのデータセットについて試験した（たとえば６４次元を８次元に低下させた）。テキストに基づいた情報検索といった数千の次元が数百へと削減されるような削減された次元が多くなり、実行される距離計算の数が増えるにつれ、彼らの結果は、期待されるようにはスケーリングを行うことができない。近傍検索がいつ終了するかを決定する明確な方法はない。この欠点は、この方法の実際性を著しく制限してしまうことになる。
【００３５】
６．距離空間
近似的ｋ最近傍クエリーは、最近になってから距離探索構造のために考慮されるようになっている。Zezulaら（Pavel Zezula, Pasquale Savino, Giuseppe Amato and Fausto Rabitti, Approximate similarity retrieval with M-trees, The VLDB Journal, 7, 1998, pp. 275-293）およびCiacciaら(2000,前掲）は、他の距離tree基準に対して適合可能なM-treeに基づいた方法を提案している。これら４つはすべて、汎用距離tree基準についての正確な技術の変更例である。概略的には、データベース要素の優先順序付きキューＰＱを保持して、クエリー要素ｑとそれらとの距離にしたがってランク付けを行う。最初には、ＰＱは、treeのルートに保持された要素である。
【００３６】
それぞれの繰り返しにおいて、最も高いランクの要素ｐは、ＰＱから削除される。ｐがｋ番目に近いデータベースの要素よりもｑに近い場合には、ｐをｋ番目に近い要素で置換する。ついで、ｐの複数の子ノードについて検討する。三角不等式を用いて、子孫の要素に、これまで見つかったデータベース要素でｋ番目に近いものよりも、クエリー要素に近いものがない場合、これらの子孫ノードを削除する。残りの複数の子ノードは、ＰＱへと挿入される。このアルゴリズムは、その時点でのＰＱの要素が空になったときに停止される。停止すると、実行中に遭遇したｋ番目に近い要素がクエリーに対する正確な解となる。
【００３７】
上述した正確な解を与えるアルゴリズムについて３つのバリエーションが、Zezulaら（前掲）により提案され; 第４のバリエーションがCiacciaらにより提案されており、以下これらについて簡単に説明する。
【００３８】
（１）許容性試験として、ｑからその時点でｋ最近傍との間の距離がファクタ1/(1+ε)だけ小さい場合に、クエリーの結果は、(1+ε)-近似解とする。どのように許容性の条件を狭めるにしても、実行される距離計算の数を減らすことが出来るだけである。
【００３９】
（２）ｑからのデータベース要素の距離の分布が知られている場合には、この情報は、その時点でのｋ最近傍のランクを決定するために使用することができる。もし、このランクが望むしきい値より良い場合は、実行を早めに終了することができる。結果は、近似的なものであり、品質がランクにより決定されてしまう。実際的には、ｑからの距離の分布は知られておらず、このような状況のもとで、Zezulaらは、データベース要素の大局的な分布から見積もりを得ることができることを報告している。
【００４０】
（３）M-treeを使用した彼らの実験においては、Zezulaらは、実行が進行するにつれてｋ最近傍の候補までの距離は、その最終的な値にまで迅速に低下して近づき、その後ゆっくりと改善してゆく。彼らは、距離曲線が平坦化した時点で近似的な解を、実行を停止させることにより生成することを提案した（標準的な数値解析技術を使用し、微分手段により決定される）。実行の早期の停止は、再度精度に対するコストをスピードアップさせることになる。
【００４１】
（４）Zezulaらのはじめの２つの方法は、結合することができる。Ciacciaらは、第２の方法に対するしきい値の選択を注意深く行い、単一の最近傍問題のための“おそらく大体正しい”（ＰＡＣ：probably approximately correct)アルゴリズムを改善した。このアルゴリズムは、信頼限界が(1-δ)の単一の最近傍問題についての(1+ε)-近似解を与えた。すなわち、(1+ε)-近似解とならない結果の確率が最大でもδであることを意味する。誤差パラメータεと共に、信頼性パラメータδはユーザにより選択できる。しかしながら、この方法は、依然としてｑからの距離（またはその見積もり）の分布についての知識に依存する。
【００４２】
Zezulaら（前掲）は、彼らの方法の３つすべてを、ユークリッド距離を使用して45次元の10,000要素のデータセットに対して適用した。彼らの実験の結果によれば、第１の方法は、効率の面から他の２つの方法とは比較にならないとしている。ｋ＝10のクエリーに対しては、第３の方法について彼らは、観測された誤差ε＝0.15で、“精度”が30％（大まかに言えば、報告された要素の30％程度は、正確なｋ最近傍のリストに含まれている）で20倍スピードアップすることができたとしている。第２の方法については、彼らは、（たとえば）0.10〜0.20の間の誤差ε、精度が0.10〜0.45の間で20倍のスピードアップができたとしている。またしきい値を大きく選択することにより、彼らは40倍スピードアップしたとしているが、観測された誤差が大きく、場合により＞0.80）であり、精度も低い（場合によっては＜0.20）。彼らは、固定された精度および誤差については、彼らの方法におけるスピードアップ割合は、ｋが増加しても明らかには変化せず、ｎが増加するにつれて増加するとしている（これは、クエリー時間が、概ねｎに比例することを示す）。
【００４３】
Ciacciaら（前掲）は、ユークリッド距離を使用して、彼らの方法を40次元において単位ハイパーキューブから均一に導いた10,000要素のデータセットについて適用した。彼らは、誤差εと信頼性ｄとに依存して１桁から２桁の実行時間のスピードアップしたとしている。この場合は、スピードアップさせると誤差が増加し、信頼性が低下した。
【００４４】
これらのうちでも、ZezulaらおよびCiacciaらは、絶対次元が４０〜６０の範囲にある数万から数１０万の実データおよび人工データに対して良好な性能を報告している。それにもかかわらず、彼らの方法は、下記のようにいくつかの顕著な欠点を有している。
【００４５】
（１）Aryaらの近似的アルゴリズムのように、要求する精度εと観測される精度ε’との間が大きく違う可能性は、実際的なεの近似値を決定することが困難となる。Ciacciaらは、ε’を問題としているデータセットについてあらかじめ実験的に決定することに基づいてεを選択することを示唆している。
【００４６】
（２）第２の方法では、クエリー要素とデータベース要素との間の距離の分布についての知見に大きく依存するパラメータを使用する（本発明者らは、これをクエリー要素間距離の分布(query-to-element distance distribution,QEDD)と呼ぶ。実際には、クエリーは、一般的にあらかじめわからないので、それらのQEDDは、効率的に決定することができない。著者らは、QEDDがデータベースの全要素−要素距離の分布（element-to-element distance distribution:EEDD）を使用して見積もることができることを指摘しており、それ自体は、平均化手段またはランダム・サンプリング（Ciacciaら）により見積もることができる。しかしながら、EEDDがQEDDの良好な見積もり因子であるとの仮定は、すべてのクエリーについてのQEDDがEEDDと似たものであることをあらかじめ仮定するものであり、これは一般的には当てはまらない。データが高度に構造化されており、密度に広い変化がある場合には、EEDDを使用する場合、性能の重大な劣化を避けることを可能とするパラメータの単一の選択はない。これを近似的なｋ最近傍を見出すために拡張したとすれば、Ciacciaらの方法と同様の欠陥を含むことになる。
【００４７】
（３）第３の方法は、その微分に基づいた停止基準を含み、計算精度および計算速度に大きな変動が生じる。このため、一致性良く良好な性能を得るための方法に改良することは不可能ではないにしろ困難である。著者らの実験的検討がこの傾向を示しているようである。詳細については、Zezulaら（前掲）を参照されたい。
【００４８】
（４）Zezulaらの方法は、いずれもが高い精度（たとえば７０％〜８０％の精度）および妥当なスピードアップの両方に対する近似的な解を見出すために適切と思われない。Ciacciaによるハイブリッド法は、ｋ最近傍問題にまで拡張使用したとしても、上述した方法よりも上手くゆくとはどうしても思われない。
【００４９】
（５）その著者らが自身で明らかにしているように、第１の方法は、第２と第３の方法に対してさえ実際的には比較できるものではない。上述したように、これまで類似検索の性能を改善するためのいくつかの試みがなされてきている。しかしながら、いくつかの本質的な問題が、上述したように依然として残されており、これらの問題は、下記のようにまとめられる。
【００５０】
問題１：実時間での類似度ランキング
大規模なデータベースからの迅速で正確な情報検索は、きわめて困難な課題である。中程度から大きなデータベースについてきわめて良好な結果を与える技術は、大規模データベースについては適用可能ではない。大規模データベースに伴う情報検索の課題のスケーラビリティについては、“次元の呪い”と呼ばれる現象で明文化されている。
【００５１】
問題２：ＬＳＩとＣＯＶのスケーラビリティ向上
中程度から大きなデータベースからの情報検索についての２つの方法、ＬＳＩ（潜在的意味情報索引）法およびＣＯＶ（共分散行列法）法は、両方とも最初に、データベースにおけるクエリー・ベクトルとすべてのドキュメント・ベクトルとの間の距離を計算することにより類似度に基づくランキングを実行する。このように全文書との距離計算が必要であるという理由から、次元の大きな削減の後であっても、両手法とも性能として納得の行く時間のうちに大規模データベースから情報を抽出することができない。
【００５２】
問題３：スピードと精度とのトレード・オフ
ユーザの中には、情報検索システムからのランク付けされた結果について、数秒以上待てない人がいる。これらのユーザは、長く待った後でより正確な結果を得るよりも、１秒から２秒で精度の低い結果を得る方をむしろ好む。このようなユーザは、所定のクエリーに対して返答に必要な時間が事前に予測できることを希望し、この指定された時間内で可能な最も正確な結果を得ることを希望する。現在の情報検索システムは、ユーザに対してユーザ・フレンドリーな方法でトレード・オフを可能とするパラメータで制御することができない。
【００５３】
したがって、情報検索、検出およびランキングの性能をよりいっそう改善するための新規な方法およびシステムが依然として必要とされていた。
【００５４】
【課題を解決するための手段】
本発明は、部分的には、制御された階層構造をドキュメント・データに導入することができれば、ドキュメントの類似度ランキング、検索、検出、時系列解析の効率を、コンピュータ資源および計算時間を低減させつつ、著しく向上させることができる、という認識に基づいてなされたものである。
【００５５】
したがって、本発明の目的は、予め計算され、階層化されたドキュメント探索構造を使用して情報処理を行うための方法を提供することにある。本発明においては、それぞれのドキュメントには、構造内における位置を与え、かつ２つのドキュメントの間の連結がある場合、それらが互いに密接に関連するという意味をもたせる。階層の各レベルは、ランダムにサンプルされたドキュメントから構成される。
【００５６】
本発明の他の目的は、ＬＳＩ（潜在的意味索引）法およびＣＯＶ（共分散行列）法による次元削減法のスケーラビリティを著しく向上することを可能とする情報処理方法を提供することにある。ＬＳＩ法およびＣＯＶ法の両方について、本発明者らの方法は、次元削減された副空間へのドキュメントおよびクエリー・ベクトルの射影の後に使用することができる。本発明者らの方法をＬＳＩおよびＣＯＶ法における通常の類似度ランキングの代わりに用いる場合には、クエリーに対するドキュメントの類似度ランキングのスピードを著しく改善することができる。
【００５７】
さらに本発明の目的は、それぞれのユーザに対し、ユーザの個々の必要性に応じて精度と応答時間とのトレード・オフを決定することを可能とする情報処理方法を提供することを目的とする。
【００５８】
本発明によれば、データベースに保持され属性を含む情報の情報処理を行うための方法であって、前記情報は、行列を構成し、かつ少なくとも数値要素と情報識別子とを含むベクトルを含み、前記ベクトルは、前記情報の階層化された構造のノードとされており、
前記行列を所定の次元まで次元削減を行い、次元削減行列を生成するステップと、
前記次元削減行列のベクトルをノードセットとしてランダムに指定するステップと、
トップノードから開始する層状の階層レベルとして前記階層構造を構成するステップと、
互いに隣接した階層レベルにおいて上側レベルから親ノードを決定し、下側レベルから複数の子ノードを決定するステップと、
前記親ノードと前記子ノードとの間に関連性を生成するステップと、
クエリーを与え、前記クエリーに関連して前記ノードをランク付けするステップと、
前記ノードを選択して前記クエリーに関連してランク付けされたノードを含むクラスターを生成するステップと、
を含む情報処理方法が提供される。
【００５９】
本発明においては、前記次元削減ステップは、潜在的意味索引法または共分散行列法を使用して前記行列の次元削減を行うステップを含むことができる。本発明においては、前記生成ステップは、ノード間の距離に関連して前記ノードを選択するステップを含むことができる。本発明においては、前記生成ステップは、さらに、
前記距離に関連して前記親ノードと前記子ノードとに対してポインタを与えるステップと、
所定の数の対が生成されるまで最も距離の近いノード対からポインタを登録するステップとを含むことができる。本発明においては、前記生成ステップはさらに、子ノードを示すポインタの所定数に達していずに前記ポインタ対を形成することが許可された親ノードと、関係を形成することができなかった少なくとも１つの子ノードとの間において別のポインタ対を生成する第２の生成ステップを含むことができる。また、本発明によれば、前記情報処理は、情報検索、情報検出、情報ランキング、時系列データ解析およびこれらのいかなる組み合わせから選択される。
【００６０】
また、本発明においては、コンピュータと、入出力インタフェイスと、データベースとを含む情報処理システムであって、前記情報は、属性を含んで前記データベースに保持され、かつ少なくとも数値要素と情報識別子とを含むベクトル含んだ行列とされて、前記ベクトルが前記情報の階層構造を与えるノードとされ、前記行列を所定の次元まで次元削減を行い、次元削減行列を生成する手段と、前記次元削減行列のベクトルをノードセットとしてランダムに指定する手段と、
トップノードから開始する層状の階層レベルとして前記階層構造を構成する手段と、
互いに隣接した階層レベルにおいて上側レベルから親ノードを決定し、下側レベルから複数の子ノードを決定する手段と、
前記親ノードと前記子ノードとの間に関連性を生成する手段と、
クエリーを与え、前記クエリーの関連して前記ノードをランク付けする手段と、
前記ノードを選択して前記クエリーに関連してランク付けされたノードを含むクラスターを生成する手段と、
を含む情報処理システムが提供される。
【００６１】
本発明においては、前記次元削減手段は、潜在的意味索引法または共分散行列法を使用して前記行列の次元削減を行う手段を含むことができる。本発明においては、前記関係を生成するステップは、ノード間の距離に関連して前記ノードを選択する手段を含むことができる。本発明においては、前記関係を生成する手段は、さらに、
前記距離に関連して前記親ノードと前記子ノードとに対してポインタを与える手段と、
所定の数の対が生成されるまで最も距離の近いノード対からポインタを登録する手段と、を含むことができる。本発明においては、前記関係を生成する手段は、さらに、子ノードを示すポインタの所定数に達していずに前記ポインタ対を形成することが許可された親ノードと、関係を形成することができなかった少なくとも１つの子ノードとの間において別のポインタ対を生成させるための第２の生成を実行させる手段を含むことができる。本発明においては、前記情報処理は、情報検索、情報検出、情報ランキング、時系列データ解析およびこれらのいかなる組み合わせから選択することができる。
【００６２】
さらに、本発明においては、データベースに保持され属性を含む情報の情報処理をコンピュータに対して実行させるコンピュータ可読な記録媒体であって、前記情報は、行列を構成し、かつ少なくとも数値要素と情報識別子とを含むベクトルを含み、前記ベクトルは、前記情報の階層化された構造のノードとされており、記録媒体は、
前記行列を所定の次元まで次元削減を行い、次元削減行列を生成するステップと、
前記次元削減行列のベクトルをノードセットとしてランダムに指定するステップと、
トップノードから開始する層状の階層レベルとして前記階層構造を構成するステップと、
互いに隣接した階層レベルにおいて上側レベルから親ノードを決定し、下側レベルから複数の子ノードを決定するステップと、
前記親ノードと前記子ノードとの間に関連性を生成するステップと、
クエリーを与え、前記クエリーの関連して前記ノードをランク付けするステップと、
前記ノードを選択して前記クエリーに関連してランク付けされたノードを含むクラスターを生成するステップと、
を含むコンピュータ可読な記録媒体が提供される。
【００６３】
本発明においては、前記次元削減ステップは、潜在的意味付け法または共分散行列法を使用して前記行列の次元削減を行うステップを含むことが好ましい。本発明においては、前記生成ステップは、ノード間の距離に関連して前記ノードを選択するステップを含むことが好ましい。本発明においては、前記生成ステップは、さらに、
前記距離に関連して前記親ノードと前記子ノードとに対してポインタを与えるステップと、
所定の数の対が生成されるまで最も距離の近いノード対からポインタを登録するステップと、
を含むことが好ましい。本発明の前記生成ステップはさらに、子ノードを示すポインタの所定数に達していずに前記ポインタ対を形成することが許可された親ノードと、関係を形成することができなかった少なくとも１つの子ノードとの間において別のポインタ対を生成する第２の生成ステップを含むことができる。本発明においては、前記情報処理は、情報検索、情報検出、情報ランキング、時系列データ解析およびこれらのいかなる組み合わせから選択される。
【００６４】
また、本発明によれば、コンピュータに実装されて情報の処理を実行するためのコンピュータ実行可能なプログラムであって、データベースに保持され属性を含み、かつ少なくとも数値要素と情報識別子とを含むベクトルを含む行列を構成するベクトルとされ、前記ベクトルは、前記情報の階層化された構造のノードとされており、前記コンピュータ実行可能プログラムは、
前記行列を所定の次元まで次元削減を行い、次元削減行列を生成するステップと、
前記次元削減行列のベクトルをノードセットとしてランダムに指定するステップと、
トップノードから開始する層状の階層レベルとして前記階層構造を構成するステップと、
互いに隣接した階層レベルにおいて上側レベルから親ノードを決定し、下側レベルから複数の子ノードを決定するステップと、
前記親ノードと前記子ノードとの間に関連性を生成するステップと、
クエリーを与え、前記クエリーの関連して前記ノードをランク付けするステップと、
前記ノードを選択して前記クエリーに関連してランク付けされたノードを含むクラスターを生成するステップと、
を実行させる、コンピュータ可読なプログラムが提供される。
【００６５】
本発明においては、前記次元削減ステップは、潜在的意味付け法または共分散行列法を使用して前記行列の次元削減を行うステップを含むことができる。本発明においては、前記生成ステップは、ノード間の距離に関連して前記ノードを選択するステップを含むことができる。本発明においては、前記生成ステップは、さらに、
前記距離に関連して前記親ノードと前記子ノードとに対してポインタを与えるステップと、
所定の数の対が生成されるまで最も距離の近いノード対からポインタを登録するステップと、
を含むことができる。本発明においては、前記生成ステップはさらに、子ノードを示すポインタの所定数に達していずに前記ポインタ対を形成することが許可された親ノードと、関係を形成することができなかった少なくとも１つの子ノードとの間において別のポインタ対を生成する第２の生成ステップを含むことができる。前記情報処理は、情報検索、情報検出、情報ランキング、時系列データ解析およびこれらのいかなる組み合わせから選択することができる。
【００６６】
【発明の実施の形態】
＜概略手順＞
図１は、本発明の概略的な方法を示した図である。本発明の方法は、ステップＳ１０から開始し、ステップＳ１２へと進んでデータベース内のドキュメントをベクトル空間モデルを使用してベクトルへと変換し、ドキュメント−キーワード行列を生成する。本発明における情報には、ドキュメント、テキスト、グラフィック・データなどが含まれ、また属性としては、本発明においてはキーワード、日付または年といった時間情報およびキャラクタなどが含まれる。しかしながら、本明細書においては、発明を明確に説明する目的から、情報は、ドキュメントであり、属性はキーワードであるものとする。本発明におけるプロセスは、Saltonにより解説された単純なバイナリ・モデルを含むこともでき、また属性の出現頻度から決定されるか、またはユーザ入力またはそれら双方により決定される重み付けを使用したより高度な方法を含むことができる。
【００６７】
本発明の方法は、ステップＳ１４へと進み、ＬＳＩ法またはＣＯＶ法を使用して、得られたドキュメント−キーワード行列に対して情報検索などを行うために次元削減を実行する。例えば、目的次元は、およそ１００〜２００として選択することができる。両方の方法については、後述する。
【００６８】
本発明の方法は、ついでステップＳ１６へと進み、ドキュメント−キーワードベクトルに対し、ドキュメント−キーワードベクトルの間の距離、すなわち本発明においては“空間近似サンプル階層；ＳＡＳＨ(Spatial Approximation Sample Hierarchy)”（以後単にＳＡＳＨとして参照する。）と名前を付ける階層構造を導入する。
【００６９】
本発明において使用するＳＡＳＨにおいては、２つのドキュメント−キーワード・ベクトルの間の距離関係は、まずドキュメント−キーワード行列を構成する各ドキュメント・ベクトルをランダム化することで、導入される。具体的には、初期状態では、ＳＡＳＨにはエッジはまったく存在しない。そこで、データベース内の各ドキュメント・ベクトルに、一様乱数を与えて攪拌させて、ＳＡＳＨのノードに割り当てる。
【００７０】
この方法においては、階層のトップノードは、ランダムに選択されたドキュメント−キーワード・ベクトルからランダムに予め選択することができる。その後、ドキュメント−キーワード・ベクトル間の関係を、ノード間の距離を使用して階層構造へと導入する。そのより詳細については、後述する。本発明における用語“ノード”とは、階層構造に含まれる、個々のドキュメント−キーワード・ベクトルを参照するものである。
【００７１】
本発明の方法は、ステップＳ１８へと進み、ユーザ入力などでキーワード・クエリーを受け取る。受け取ったキーワード・クエリーはまた、バイナリー法、またはウエイト法を使用してクエリー・ベクトルへと変換される。
【００７２】
ついで、本発明の方法は、ステップＳ２０へと進み、階層構造が導入されたドキュメント−キーワード行列と、クエリー・ベクトルとを使用して従来の方法にしたがって類似度に基づいた情報検索を実行する。
【００７３】
図１に示した要素ステップについて、さらに詳細に説明するが、実施の詳細は、代表的な実施の形態を説明するものであり、本発明においてはいかなる別の等価なプロセスでも採用することができる。
【００７４】
Ａ．次元削減（ステップＳ１４）
上述したように、本発明においては、ドキュメント−キーワード行列の次元削減を使用する。本発明において使用することができる代表的な実施の形態としては、ＬＳＩ法およびＣＯＶ法を挙げることができる。
【００７５】
＜潜在的意味索引法＞
潜在的意味索引法（ＬＳＩ）は、Deerwesterら（１９８９）、（１９９０）に参照されるドキュメントのランキングの問題の次元削減のためのベクトル空間モデルに基づくアルゴリズムである(Scott Deerwester, Susan T. Dumais, George W. Furnas, Richard Harshman, Thomas K. Landauer, Karen E. Lochbaum, Lynn A. Streeter, Computer information retrieval using latent semantic analysis, U.S. Patent No. 4839853, filed Sept. 15, 1988, issued June 13, 1989;Scott Deerwester, Susan T. Dumais, George W. Furnas, Thomas K. Landauer, Richard Harshman, Indexing by latent semantic analysis, Journal of the American Society for Information Science, 41, 6, 1990, pp. 391-407)。
【００７６】
ＬＳＩ法においては、ドキュメントは、Saltonのベクトル空間モデルと同一の方法においてベクトルへとモデル化される。本発明者らは、キーワードとドキュメントとの間の関係を、ｉ，ｊ番目の要素ａｉ，ｊ、すなわちＡ＝[ａｉ，ｊ]である、Ｍ×Ｎ行例Ａを用いて説明する。Ａの列ベクトルを、データベースのドキュメントとする。ついで、Ａの特異値分解（ＳＶＤ）を計算する。
A = U Σ V T ; Σ= diag (σ1, σ2, ... ,σmin(M,N) )
ここで、σ1≧σ2≧... ≧σmin(M,N)である。 その後、Aの近似行列Ａｄをｄ個の大きな特異値、σi ; i = 1, 2, ..., d, と、それらに対応するベクトルから構成する。
Ad = UdΣd V d T
（上式中、Σdは、Ａの特異値であるσ1の対角エントリを含む対角行列である。）
Σd = diag (σ1,σ2, ... ,σd)
上記式におけるＵｄとＶｄは、Ａのｄ番目に大きな左特異値ベクトルおよび右特異値ベクトルからなる行列である。特異値分解の実行についての詳細については、Demmel (1997)とGolub and Van Loan (1989)による行列計算における標準的なテキストを参照されたい。
【００７７】
クエリーの処理は、射影と類似度計算との２段階で行われる。射影ステップにおいては、入力クエリーは、行列Ｕｄにより次元削減クエリー−ドキュメント空間における疑似ドキュメントに射影され、その後次元削減された特異値行列Σdからの対応する特異値σiにより重み付けされる
q ========＞ barq = qT Ud Σd-1
（上式中、ｑは、もとのクエリー・ベクトルを表し、ｂａｒｑは、疑似ドキュメントを表し、ｑＴは、ｑの転置を表す。）。
【００７８】
第２のステップでは、疑似ドキュメントｂａｒｑと、次元削減されたドキュメント空間ＶｄTとの間の類似度を、多くの類似度尺度のうちの１つを使用して計算する。情報検索における線形代数の技術については、Berry, Dumais and O’Brienによる成書(1995)を参照されたい。
【００７９】
＜共分散行列に基づく方法（ＣＯＶ法）＞
ＣＯＶ法は、小林、Malassis、および寒川ら(Mei Kobayashi, Loic Malassis, Hikaru Samukawa, Retrieval and ranking of documents from a database, IBM Japan, docket No. JP9-1000-1044, filed June 12, 2000; Loic Malassis, Mei Kobayashi, Statistical methods for search engines, IBM Tokyo Research Laboratory Research Report, RT-413, 33 pages, May 2, 2001)により開発された。上述したＣＯＶ法は、ベクトル空間モデルに基づいた情報検索システムの次元を削減するための使用され、実時間でのクエリーおよび検索を容易にするものである。彼らの方法は、概略的には、以下のように説明することができる。
【００８０】
ステップ１：きわめて大きな所定のデータベースについて、すべてのＭ個のドキュメント{ Δi : i = 1, 2, ..., M } をＮ個のキーワードを含むベクトルとしてモデル化する。すべてのドキュメント｛Ｄｉ｝のセットを伴う共分散行列Ａを構築する（陽にまたは陽にせずに）。ここで、Ａ、Δ、Δｉは、それぞれ下記、
A = (1/M)  [Σi = 1 , 2, ..., M ΔiΔi T ]   -   ΔΔT ,
ΔiT = [ a (i,1) a (i,2) a (i,3) . . . a (i, N) ] T ,
ΔT = [ Δ1 Δ2 Δ3 . . . ΔN ] T , および
Δi = (1/M) Σ j = 1 , 2, ..., M a (j, i) ,
の通りに定義される（上式中、“Ｔ”は、行列の転置を示す。）。
【００８１】
ステップ２：共分散行列Ａの固有値λj; j = 1, 2, ..., d,を算出し、対応する固有値ベクトルｖｊを算出する。ここで、vj; j = 1, 2, ..., dである。
【００８２】
ステップ３：Ｎ次元からｄ次元まで（ｄ≪Ｎ）関連するランキング問題の次元を削減するために、ｄ個の固有値ベクトルvj ; j = 1, 2, ..., dによって張られた副空間へとドキュメント・ベクトルを射影する。この計算は、きわめて大きなデータベースではきわめて負荷となるので、たとえばユーザが待つことができるように、オンラインされていない夜間のジョブとして予め実行させておく必要がある。
【００８３】
ステップ４：ｄ次元vj ; j = 1, 2, ..., d,で張られた副空間へとそれぞれのユーザ入力クエリーを射影し、その後、たとえばクエリー・ベクトルとそれぞれのドキュメント・ベクトルとの間の角度といったいくつかの類似度尺度を使用して、ドキュメント・ベクトルに関連して関連性のランキングを実行する。
【００８４】
上述したＬＳＩ法は、検索およびランキングの問題をかなり低次元にまで削減することを可能とするので、きわめて大きなデータベースからの検索を、より効率的に実行させることができる。小林ら（２０００）による他の次元削減手法は、ＣＯＶを使用し、ドキュメント・ベクトルの共分散行列を使用してドキュメント・ベクトルを射影する適切な次元削減空間を決定する。ＬＳＩ法およびＣＯＶ法は、情報検索における情報処理のための匹敵しあう方法であり、いくつかのデータベースおよびいくつかのクエリーに対しては、ＬＳＩ法は、わずかに良好な結果を与えるものの、その他についてはＣＯＶが、より良好な結果を与える。本発明においては、しかしながら、本発明によるドキュメント・キーワードベクトルの階層構造を導入することができる限り、次元削減について他の方法を用いることができる。
【００８５】
Ｂ．階層の構築
本発明においては、特定のノードは、１つまたはそれ以上の親ノードとして指定されるノードを有しており、親ノードには、０個またはそれ以上の子ノードとして指定されるノードを有している。ノードは、その親ノードに対しては親ポインタ手段により結合され、かつその子ノードに対しては子ポインタ手段により結合される。本発明においては、パラメータｐは、特定のノードによりポイントされることが可能な
親ノードの最大数であり、パラメータｃは、特定のノードへとポイントされる子ノードの最大数である。
【００８６】
図２は、ドキュメント−キーワードベクトルの階層構造を構築するための概略的な手順を示した図である。手順は、図１のＳ１４の結果を受け取った後、ステップＳ３２から開始し、たとえばよく知られた乱数発生プログラムを使用して次元削減されたドキュメント−キーワードベクトルをランダムに階層構造におけるノードとして指定する。ついで、手順は、ステップＳ３４へと進み、トップ階層のレベルを１として指定する。以後、ＳＡＳＨｉは、ノードを含むｉ番目の階層レベルを意味する。ついで、手順は、ステップＳ３６へと進み、レベルLの数を増分させる。次にステップS３８に進み、上位レベルとの間に結合を生成する。たとえばＬ＝１とＬ＝２との間の結合を生成する。手順は、ステップＳ４０へと進んでＬがｈに等しいか否かを判断する。そうであれば（ｙｅｓ）、そのレベルが結合され、その後手順はその結果を次のステップに渡して終了する。そうでなければ（ｎｏ）、手順はステップＳ３６へと戻り、その後ステップＳ３６〜４０を、ステップＳ４０の判断が肯定的な結果を与えるまで繰り返す。
【００８７】
図３は、本発明に従って生成された階層構造の構築例を示した図である。図３に示されているように、ドキュメント−キーワード・ベクトルは、“レベルｉ”の階層レベルに分類される。ここで、iは、１〜ｈまでの値をとる整数であり、ｈは、log2n（ｎは、ノードの数である。）を繰り上げた整数値に設定される。ｉ番目のレベルでのノードの数は、概ねｎ／（２ｈ−ｉ−１）であるが、本発明においては、本発明の特定の用途に応じて階層レベル数をいくつでも増やせることができる。構築手順のさらに詳細については、後に説明する。
【００８８】
手順はステップＳ４０へと進み、その時点での階層レベルの数が、最終レベルの数に適合するか否かを判断する。さらに結合させるべき残りのレベルがあれば（ｎｏ）、その後手順はステップＳ３６へと分岐してノードの結合のための計算を繰り返す。結合するべきレベルが残っていなければ（ｙｅｓ）、終了する。
【００８９】
Ｃ．階層構築のためのサブプロセス
図４は、ステップS３８で示された階層構築のための手順に含まれるサブプロセスを示した図である。ステップＳ３８では、互いに隣接するレベルの間のノードを結合する。図４に示した手順は、ステップＳ５２から開始し、その時点でのＬが２に等しいか否かを判断する。
【００９０】
Ｌが２に等しい場合には、手順は、ステップＳ７８へと進み、ユニークな親ノードで、レベル２に含まれるすべてのノードの保証人となるトップノードを設定する。その後手順は、ステップＳ８０へと進み、レベル２のノードをトップノードに依存する子ノードとして設定する。
【００９１】
Ｌが２に等しくない場合には、手順はステップＳ５４へと進んで、レベルＬ−１に含まれる“近傍”P_{L-1}(v,p)を計算する。ここで、ｖは、レベルＬ内のノードを示し、ｐは、特定の子ノードまでの距離を計算するために含まれることになる親ノードを規定するパラメータである。ステップＳ５４のプロセスは、より詳細に後述する。その後手順は、ステップＳ５６へと進み、Ｌ−１レベルに含まれるP_{L-1}(v,p)の各ノードを、ノードｖの親ノードとして設定する。手順はステップＳ５８へと進んでレベルＬにけるノードｖを、レベルＬ−１に含まれる親ノードの子ノード候補とする。
【００９２】
手順は、ついで、ステップＳ６０へと進み、Ｌ−１レベルのそれぞれのノードｕが最大のｃ個の子ノード候補を有しているか否かを判断する。そうであれば（ｙｅｓ）、手順は、ステップＳ６２で子ノード候補のすべてを、ノードｕの子ノードと認定する。そうでなければ（ｎｏ）、手順はステップＳ６４で、ノードuの子ノード数をｃとする。手順は、ステップＳ６６へと進み、ｖを子ノードと認定し、選択している親ノードuの数をアップデートする。
【００９３】
手順は、ステップＳ６８へと進み、その後、レベルＬのそれぞれの子ノードｖに対して、ｖが孤児ノード、すなわちノードｖがレベルＬ−１のいずれのノードによっても認定されていないか否かを判断する。そうであれば（ｙｅｓ）、手順はステップＳ７０へと進み、レベルＬ−１のノードから保証人ノードｇ（ｖ）を見つけ出し、その後、ｖからもっとも遠い親ノードをｇ（ｖ）として置き換え、その後子ノードｖを保証人ノードｇ（ｖ）の子ノードとして設定する。手順はさらにステップＳ７６へと続き、子ノードｖを保証人ノードｇ（ｖ）に依存するものと登録する。ステップＳ６８の判断がｎｏの場合には、手順はステップＳ７２へと進み、保証人ノードｇ（ｖ）を子ノードｖの親ノードとして設定する。この保証人ノードｇ（ｖ）は、子ノードｖに距離的にもっとも近いものである。その後手順はステップＳ７６へと分岐して子ノードｖを保証人ノードｇ（ｖ）に依存するものとして登録する。
【００９４】
上述した親子関係の登録は、よく知られたいろいろな技術を使用して実装することができる。たとえばドキュメント識別子と、距離識別子と、親ノードまたは子ノードのためのノードポインタとを、ドキュメント−キーワード・ベクトルに追加することで実装してもよいし、結合またはリンクを上述した識別子、すなわちノードポインタを参照するように実装してもよい。しかしながら、上述した方法に限定されることはなく、本発明では、親ノードと、それに対応する子ノードとを同定するためにいかなる技術でも用いて実装することができる。
【００９５】
図５は、図４において説明した手順を、グラフィカルに説明した図である。図５に示すように、ＳＡＳＨにおける結合は、レベル１のユニークなトップノードから開始する。ＳＡＳＨｉは、図４において説明した手順の条件を満足する。完全なＳＡＳＨの構築（すなわち、ＳＡＳＨｈ）は、繰り返しＳＡＳＨ１、ＳＡＳＨ２、・・・ＳＡＳＨｈを順に構築することにより進行してゆく。図５は、ある時点でのレベルＬ−１のノードからその上のレベルLのノードにエッジを加えることでＳＡＳＨＬ−１からＳＡＳＨＬを形成する仕組み、あるいは逆に、レベルLのノードからその下のレベルＬ−１のノードにエッジを加えることで、ＳＡＳＨＬからＳＡＳＨＬ−１を形成する仕組みを示した図である。図５に示した実施の形態においては、たとえば、パラメータの値はｐ＝３、ｃ＝１２である。
【００９６】
図５に示すように、ＳＡＳＨ１は、単一のノード、すなわちルート・ノードとして構成される。Ｌ＝２の場合には、レベル２のすべてのノードは、その単一の親ノードおよび保証人としてルート・ノードを保有することになる。また、ルート・ノードは、レベル２のすべてのノードをその子ノードおよびそれに依存するものとして保有させる。それぞれのエッジでは、その終点の間の距離が保存されている。これでＳＡＳＨ２の構築は完了する。
【００９７】
それ以外の場合には、Ｌ＞２のレベルの数について残りのステップを行う。レベルＬのそれぞれのノードｖに対して、各レベル１≦ｉ＜Ｌのノードから、最大でｐ個までの近傍Pi (v, p)を以下のようにして決定する。まず、P1 (v, p)をルート・ノードとする。次に、Pi (v, p)を、Pi-1 (v, p)のすべての子ノードの集合を決定することで生成する。その後この集合からｖにもっとも近いｐ個の異なる子ノードを選択する。ｐ個よりも少ない子ノードしか存在しない場合には、すべての子ノードを選択する。
【００９８】
ついで、ｖの親ノードをPＬ-1 (v, p)のノードとする。レベルＬのそれぞれの要素ｖは、その時点でｐ個の異なる親ノードを近傍のデータ要素に含んでいる。ただし、条件としてレベルＬ−１は、少なくともｐ個のノードを含んでいるものと仮定する。すべての親ノードのエッジが生成されたら、その終点間の距離を保存する。
【００９９】
レベルＬ−１のそれぞれのノードｕに対して、ｕを親ノードとして選択したレベルＬの異なるノードＣ（ｕ）のリストを決定する。ここで、C（u）の要素をuからの距離に応じて、小さい順に並べる。Ｃ（ｕ）がｃ個の要素よりも多い場合には、リストを切り縮めて、ｕにもっとも近いｃ個の要素だけにする。上述した結合またはリンクの構築のグラフィカルな表現を、図６に示す。
【０１００】
図６においては、本発明において、ノードｕへのポインタ、またはノードuからのポインタとともに、所定の距離関数を使用して、距離が決定され、その値が保存される。図６に示されるように、親ノードｕから子ノードへの結合は、基本的には距離の大きさに基づいて選択される。ノードuを親ノードとして選択するレベルLのノードは、uからの連結を受け取るノードの候補となる。しかしながら、ノードｕから最も距離の値の小さいｃ個のノードだけが候補となる。図６において、ｕへの距離3.3のノードと、ｕへの距離3.7のノードは、ｕの子ノードとしては認定されていない。その理由は、これらのノードのuまでの距離が、他のノードより大きかったり。他のノードの数がｃに等しかったりするためである。
【０１０１】
図７は、本発明において使用可能な例示的な距離関数を示した図である。距離関数は、これらの三角不等式を満たす関数の中から選択することができ、示したものに限定されるものではない。本発明は、２つの数値データにより規定されるいかなる関数であっても、情報検索などにおいて充分な精度を可能とする構造が得られる限りにおいて採用することができる。
【０１０２】
再度図５を参照すると、レベルＬの各ノードｖについて、レベルＬ−１のいずれかのノードの子ノードとして認定されているか否かが判断される。もしそうであれば、子ノードとして認定されており、かつ最も近接したノードが、ｖの“保証人”ノードとなる。そうでなければ、ノードｖは、“孤児”ノードとなる。孤児ノードに関しては、レベルＬ−１の適当な親ノード（保証人ノード）を見出し、登録を行うことにより、検索できることを保証することが必要である。保証人ノードは、ｖに対して充分に距離的に近く、“子ノード追加可能な”、すなわち子ノードの許容される最大数ｃよりも少ない数の子ノードを有していなければならないノードである。孤児ノードを保証人ノードの新たな子ノードとして追加しても限度ｃを越えることがないことが必要である。
【０１０３】
この目的のため、上述したように本発明者らはｖに対する近傍の集合を、レベルＬ−１の子ノード追加可能なノードPＬ-1 (v, p2), PＬ-1 (v, 2p2), ..., PＬ-1 (v, 2ip2)を算出することにより段階的に拡大することに成功した。１つ以上の子ノード追加可能なノードが見出された場合には、その後ｖに最も近いノードがｖの保証人ノードｇ（ｖ）として選択される。ノードｖはｇ（ｖ）の子ノードのリストに加えられ、ｖの親ノードであって、ｖから最も遠いノードが、ｇ（ｖ）と交換される。近傍を見出す手順を、図８に示す。
【０１０４】
図８に示した手順は、図４のステップＳ５４の詳細を説明した図である。図８に示した手順は、ステップＳ５２からの出力を受け取った後にステップＳ９０から開始し、P_1(v,k)を階層のトップノードとして設定する。ついで手順は、ステップＳ９２においてレベル・インジケータiを１に設定し、ステップＳ９４においてインジケータを増分させる。その後手順はステップＳ９６へと進んでP’_i(v)を、P_{i-1}(v,k)のノードの異なる子ノードの集合としてあらかじめ決定されたものとする。手順は、ステップＳ９８へと進んで、P’_i(v)の近傍ノードの数が所定の数ｋ以下であるかどうかを決定する。
【０１０５】
図８において、P’_i(v)がｋに等しいかまたはｋよりも小さい場合（ｙｅｓ）には、プロセスは、ステップＳ１００へと進み、P_i(v,k)=P’_i(v)とする。そうでなければ（ｎｏ）、ステップＳ１０２へと進んで、ｖに最も近いP_i(v,k)のｋ個の要素に設定して、子ノードの数を制限する。ステップＳ１００およびＳ１０２の後、手順はステップＳ１０４へと進んで、インジケータｉがｂ（＝Ｌ−１）に等しいか否かを判断する。そうであれば（ｙｅｓ）、手順は図４のステップＳ６０へと進み、そうでなければ（ｎｏ）、手順はステップＳ９４へと戻ってｉを増加して、その後ステップＳ９６−Ｓ１０４を繰り返す。
【０１０６】
図９は、ステップＳ７０で説明した孤児の保証人ノードｇ（ｖ）を探すための手順を示した図である。図９に示されているように、保証人ノード探しのための手順は、ステップＳ６８の結果を受け取った後、ステップＳ１１０から開始し、隣接する上位レベルのノードにおいて、ノードの数の制限内で孤児を探す範囲を広げるためにｋ＝p2/2に設定する。その後、手順は、ステップＳ１１２でｋに因子２を乗じ、一方で、探索範囲を高々レベルのノード数以下になるように保つ。
【０１０７】
ついで、手順はステップＳ１１４へと進み、保証人候補G=P_{L-1}(v,k)を、図８で示した（近傍発見）ものと同一の手順を使用して計算する。その後、手順は、ステップＳ１１６へと進んでＧが子ノード追加可能なノード、すなわち子ノードがｃ個以下のノードを含むか否かを判断する。そうであれば（ｙｅｓ）、手順はステップＳ１１８へと進んでｇ（ｖ）をＧの子ノード追加可能な最も近いノードに設定し、その結果をステップＳ７４へと渡す。そうでない場合（ｎｏ）には、手順はステップＳ１１２へと戻って探索範囲を広げ、ステップＳ１１４−Ｓ１１６を繰り返す。
【０１０８】
Ｄ．近似的な類似性に基づくランキング・クエリー（ステップＳ１８）
与えられたクエリー対象ｑは、たとえばｑに最も近いものの中からｋ＝１００個のデータベース要素をユーザが見出したいものであるとする。上述したＳＡＳＨを使用して、R= P0(q, k) ∪ P1(q, k) ∪ ... ∪ Ph(q, k)を実行し、その後、ｑに最も近いＲのｋ個の要素をクエリーの結果とする。この方法は、データベースにおける要素の数が少なくともｋ個でありさえすれば、少なくともｋ個の要素が戻されることを保証するものである。
【０１０９】
図１０は、ｋ近傍ノードを見出すための詳細な手順を示した図である。図１０の手順はステップＳ１２０から開始して、近傍集合を算出し、ついでステップＳ１２２へと進み、R=P_1(q,k)∪P_2 (q,k) ∪... ∪P_h(q,k)を計算する。手順はステップＳ１２４へと進んで、Ｒのサイズがｋよりも大きいか否かを判断する。そうであれば（ｙｅｓ）、手順はステップＳ１２６へと進んで、子ノードｖに最も近いｋ個のＲのノードを戻す。そうでない場合（ｎｏ）には、手順は、ステップＳ１２６へと進み、Ｒの値を返して終了する。
【０１１０】
＜コンピュータ・システムおよびデータ構造＞
図１１を参照すると、本発明のコンピュータ・システムの代表的な実施の形態が示されている。本発明のコンピュータ・システムは、スタンド・アローンのコンピュータ・システム、ＬＡＮ／ＷＡＮを通していかなる従来のプロトコルを用いて通信を行うクライアント−サーバ・システム、またはインターネット基盤を介して通信を行うコンピュータ・システムを挙げることができる。図１１には、インターネットを介したネットワークにおいて効果的なクライアント−サーバ・システムを示す。
【０１１１】
図１１に示したコンピュータ・システムは、少なくとも１つのクライアント・コンピュータとサーバ・ホスト・コンピュータとを含んで構成されている。クライアント・コンピュータおよびサーバ・コンピュータは、ＴＣＰ／ＩＰプロトコルを介して通信しているが、本発明においてはいかなる別の利用可能な通信プロトコルでも使用することができる。図１１に示されているように、クライアント・コンピュータは、サーバ・ホスト・コンピュータに対して、サーバ・ホスト・コンピュータにより管理される記憶領域に保持されたドキュメントに対する検索およびランク付けを実行させるためのリクエストを発行する。
【０１１２】
サーバ・ホスト・コンピュータは、クライアント・コンピュータからのリクエストに応じてデータベースのドキュメントの検索およびランキングを実行して、クエリーに対して関連するドキュメントのクラスターまたはグループを生成する。図１１には、サーバ・コンピュータは、ウェブ・サーバとして記載されているが、本発明においてはこれに制限されるものではない。本発明においてはいかなる他のタイプのサーバ・ホストであっても、コンピュータ・システムが上述した機能を与える限り使用することができる。
【０１１３】
サーバ・コンピュータは、本発明による処理を行うためのいくつかの機能を含んでいる。これらの機能は、サーバ・コンピュータに実装されたハードウエアリソースを使用して上述した機能を提供させるための、適切なプログラムにより構成することができる。これらの手段は、下記のようにまとめることができる。
（ｉ）所定の次数まで行列の次元を削減して次元削減行列を与えるための手段と、
（ｉｉ）次元削減行列のベクトルをノードのセットとしてランダムに割り当てるステップと、
（ｉｉｉ）ノードの階層構造を構成する手段と、
（ｉｖ）隣接する階層レベルの間において親ノードとその子ノードとを決定する手段と、
（ｖ）親ノードと子ノードとの間に関係を生成する手段と、
（ｖｉ）クエリーを与えてクエリーに関連してノードをランク付けする手段と、
（ｖｉｉ）クエリーに関連してランク付けされたノードを含むクラスターを生成する手段である。
【０１１４】
本発明の方法が実装されるコンピュータ・システムは、図１１に示したネットワーク・システムとして使用することができる。しかしながら、上述したように本発明のコンピュータ・システムは、ネットワーク・システムではなくスタンド・アローンタイプのコンピュータ・システムとしても構成することができる。コンピュータ・システムの使用は、ネットワーク・システムまたはスタンドアローン・システムのいずれでもユーザの特定の用途に応じて選択することができる。
【０１１５】
図１２は、ドキュメント−キーワード・ベクトルのデータ構造の実施の形態を示した図である。図１２に示したドキュメント−キーワード・ベクトルは、オリジナルのドキュメントと共にドキュメント−キーワード行列としてデータベース内に保持させておくこともできる。また他の実施の形態においては、ドキュメント−キーワード行列は、ドキュメントとドキュメント−キーワード行列との対応が保証される限りコンピュータ・システムにおける別の記憶空間に保持させておくこともできる。
【０１１６】
図１２に示したデータ構造は、ドキュメント−キーワード・セクションと、ドキュメント識別子セクションと、距離記録セクションと、ノードポインタ・セクションとを含んで構成されている。ドキュメント−キーワードベクトル・セクションは、ベクトル・モデリングを使用して導出されたドキュメント−キーワードベクトルの数値要素を含み、ドキュメント識別子セクションは、階層構造の構築またはユーザリクエストに対応するドキュメントを参照するためのドキュメント識別子docIDとを含んで構成されている。距離記録セクションは、階層構造の構築のために使用することができるドキュメント−キーワード・ベクトルに対する固有の距離を含んでいる。しかしながら、一度階層構造が構築された後には距離は情報検索手順には必要とはされないので、距離記録セクションは、本発明の上述したデータ構造に含まれていなくともよい。
【０１１７】
ノードポインタ・セクションは、本発明にしたがって階層構造を追跡するために必要なノードポインタnodeIDを含んでいる。図１２はまた、ノードポインタnodeIDの詳細な構成を示す。nodeIDは、図１２に示すように階層構造のために上側ポインタと下側ポインタとを含んでいる。上側ポインタセクションは、さらにパラメータｐに依存して親ノードポインタpdocID1，．．．，pdocIDpを含んでおり、ドキュメント−キーワード・ベクトルが結合される親ノードを指定する。下側ポインタセクションは、さらにパラメータｃのセッティングに依存して子ノード・ポインタcdocID1，．．．，cdocIDcを含んでおり、ドキュメント−キーワード・ベクトルが結合される子ノードを示している。
【０１１８】
図１２に示した実施の形態においては、階層構造は、データ構造に含まれる上述したノードポインタと共にドキュメント−キーワード・ベクトルの要素を使用して追跡される。しかしながら、結合識別子セクションは、たとえば対応するドキュメント−キーワード・ベクトルのドキュメント識別子DocIDを加えた“結合テーブル”といった名称として別のテーブルとして構成することができ、データベースにおけるドキュメントのアップデートまたはダウンデートに関連して結合テーブルをアップデートまたはダウンデートするために必要な手順を行わせることも可能である。
【０１１９】
図１３は、上述したデータ構造に含まれるノードポインタそれぞれの機能を示した図である。本発明の方法は、情報検索といった情報処理を実行する場合に、予め構築された階層構造におけるノードを動的に追跡結合する。
【０１２０】
＜バリエーション＞
ＳＡＳＨ組織化およびクエリー探索パターンの両方に関連して、上述した簡単な実施の形態の多くのバリエーションまたは実施の形態が可能である。後述するバリエーションまたは実施の形態は、すべて同等の、あるいはそれよりも良質で互換性のある振る舞いをすることが期待される。本発明における方法においては、以下に列挙するバリエーションはいかなる組み合わせとしても同時に実装することができる。
（バリエーション１）
本発明の方法は、前述したように孤児ノードに対して保証人ノードを決定することにより効果が出せるが、いくつかの設定では、実行される計算の量に対して上限を設けることにより機能強化することができる。これを行うための１つの方法は、ノード−保証人関係を使用するものである。すべてのノードは、構造において１つ上のレベルに固有の保証人ノードを有しており、このノード−保証人関係は、ＳＡＳＨ全体をスパンする“保証人tree”を形成している。この保証人treeは、後述するように、レベルＬにおける孤児の保証人ノードを見出すために使用することができる。
（１）保証人ｕがノードｖに帰属されている限り、ｖは、ｕに“依存する”。保証人treeのエッジは、正確に保証人と依存するノードとの間の正確なエッジである。
（２）ｖがレベルＬで見出された第１の孤児ノードである場合には、その後ＳＡＳＨＬ−１のすべてのノードｃについて、ｗをルートとする保証人treeのsubtreeにおける子ノード追加可能なノードの集合Ｓ（ｗ）を考える。ｗについてＳ（ｗ）における最も近いノードへの距離の上限ｂ（ｗ）を記録し、繰り返し下記のように計算を行う。
ｉ）ｗが子ノード追加可能で、レベルＬ−１である場合には、β（ｗ）＝０とする。
ｉｉ）ｗが子ノード追加不可能で、レベルＬ−１である場合には、β（ｗ）を無限大とする。
ｉｉｉ）ｗがＬ−１レベルではないときは、β(w)＝min｛β(y) + dist(w, y)｜ｙがｗに依存する｝とする。
（３）ＳＡＳＨのルートから、レベルＬ−１で繰り返しノードｕの子ノード追加可能なノードについて保証人treeを、下記のように探索する。
ｉ）その時点でのノードｗがレベルＬ−１でない場合、その後β(y) + dist(w, y)を最小にするｗの依存ノードのsubtreeを繰り返し探索する。
ｉｉ）その時点でのノードｗがレベルＬ−１である場合には、ｗは子ノード追加可能なので、ｃ≧３ｐとすることでこれを満たさせる。
ｉｉｉ）上述したように、ｕをｖの保証人として設定する。再帰的にβ（ｗ）の値を、上述したルールを使用して保証人tree内のｕのすべてのｗに対してアップデートする。
【０１２１】
上述の方法は、最大でnlog2nに比例する全時間で孤児ノードに対する保証人を見出すことを可能とする。しかしながら、ノードｖを見出した保証人は、多くの場合、実施の形態において説明した方法を使用して保証人として見出されたｖほどは近接したものではない。
【０１２２】
（バリエーション２）
多くの距離探索構造（M-treeを含む）は、構造の構築時にエッジに沿って記憶された距離を使用していくつかの距離計算を回避する可能性を与える。この例としては、従来の技術において総説したM-treeにおいて説明したように、被覆半径を使用してクエリーを満足する可能性がないsubtreeを排除することである。この技術は、またクエリーの計算と同様に、Pi(v, p)の計算に適用することができる。この技術は、情報処理の距離探索において広く用いられているものなので、本発明者らは、ＳＡＳＨにおいて上述した方法をどのようにして使用するかについて概略的に説明する。適用性のより詳細については、たとえばCiacciaら（前掲）がより詳細な説明を与えている。
【０１２３】
Ci (v, p)を、ノードPi-1 (v, p)の子ノードの集合（レベルｉでの）とする。πを、Pi-1 (v, p)のノードとし、χをπの子ノードとする。クエリーポイントｖからCi (v, p)の少なくともｐ個の異なったノードへの距離は、すでに計算されているものとし、ωをｖに対してｐ番目に近い要素とする。三角不等式は、下記式を保証する。
dist(v, χ) ≧ | dist(v, π) - dist(π,χ) |.
ここで、下記の条件を考える。
|dist(v,π) - dist(π,χ)| ≧ dist(v,ω).
ここで、上記条件に現れる３つの距離は、それぞれすでに計算されている。dist(v,π)は、Pi-1 (v, p)の計算の結果として利用可能である。dist(π,χ)は、πからχのＳＡＳＨエッジに沿って記憶された距離である。dist(v,ω) は、Ci (v, p)のポイントがPi (v,p)に挿入される場合にはいつでもアップデートされる。これらが最初に計算された時点での距離を記憶させることにより、条件を試験するには、いかなる追加の別の計算も必要とされない。
【０１２４】
上述した条件が満たされた場合には、
dist(v, χ) ≧ dist(v,ω),
であると結論でき、これは反対に、χをPi (v, p)に加えることは、Pi (v, p)におけるｐ番目に最も近い要素に対するクエリーからの距離を改善することにはならない。この場合には、χは、クエリー要素に対する距離を計算することなく安全に排除される。そうでなく、条件が満たされない場合には、上述したようにdist(v, χ)を正確に計算することができる。
【０１２５】
（バリエーション３）
多くのデータ構造において共通するように、探索構造のボトム（リーフ）レベルにおけるすべてのデータベース要素について参照することが可能である。この場合には、与えられたデータベース要素は、いかなる所定のレベルにおける最大でも１つのノードに対応する。レベルＬ−１でのノードは、均一、かつランダムでレベルＬのノードの概ね半分を選択して、参照としてそれらのデータベース要素をコピーすることにより生成することができる。
【０１２６】
（バリエーション４）
実施の形態においては、レベルＬ−１の多数のノードをレベルＬのノードのおよそ半分に設定する。この比は、変更することができ、かつレベル間で一定とされる必要はない（良好な性能を得るためには、実質的に１よりも大きくなるように選択することが必要であろう）。多数のノードが孤児ノードまたは子ノードを追加不可能なノードとなることを防止するために、定数ｐおよび定数ｃ自体をレベル間で変化させることも可能である。
【０１２７】
（バリエーション５）
単純な実施の形態の形態においては、クエリー・オブジェクトに最も近いP1 (q, k) ∪ P2 (q, k), ...,∪ Ph (q, k)ｋ個の要素を報告するかわりに、それぞれのレベルから可変数の要素を抜き出すこともできる。たとえば、代わりに、セットP1 (q, k1) ∪ P2 (q, k2) ∪ ... ∪ Ph (q, kh)をレポートすることもでき、上記式中、
kh = 3k, および
ki = max {2 ki+1 / 3, p} （すべての1 ≦ i ＜ hについて）
である。
【０１２８】
このことは、データベースの要素の最大のサンプル、すなわちＳＡＳＨの底部により近いノードに費やすクエリー検索時間の大きな割合を消費させることを可能とする。
【０１２９】
（バリエーション６）
簡単な実施の形態においては、親ポインタは、子ポインタを決定するための補助として構築フェーズにおいてのみ使用され、子ポインタは、類似検索の性能向上のためのみ使用される。しかしながら、親ポインタは、またクエリーの場合にも使用することができる。生成されたPi(q, k)の集合は、もとの集合のノードのすべてのすべての親ノードのすべての子ノードを含むように拡張することができる。これは、クエリー実行時間あたりの精度を改善することができる。
【０１３０】
（バリエーション７）
近似的な範囲クエリーは、近似的なｋ最近傍クエリーを、いくつかの増加するシーケンスｋ＝ｓ１，ｓ２，ｓ３，．．．を繰り返し計算することにより実行される。例えば、クエリーのサイズは、それぞれの反復において２倍（si+1 = 2siすべての i ＞1について）される。反復は、所望する範囲の外の要素が発見される（その時点では、範囲内で発見されたすべての要素は、範囲クエリーに対する解として報告される）か、または全体のデータベースが問い合わされる（これは、クエリー範囲内にほとんどまたはすべてのデータベースの要素が存在する場合にのみ発生する。）まで続けられる。
【０１３１】
（バリエーション８）
正確なｋ最近傍クエリーは、変更例１において説明した保証人treeを使用して計算される。すべてのノードｗにおいて、ｗからそのいかなる依存者への最大距離を維持することができる。この情報で、汎用距離探索treeに対するいかなる好適な方法でも使用することができる。詳細については、例えば、Chavezら（１９９８）またはCiaccia（２０００）を参照されたい。他の距離tree構造の正確な類似検索のように、正確なクエリーは、“次元の呪い”に遭遇する。
【０１３２】
（バリエーション９）
パラメータｐの選択および、ｐほど大きな影響を与えないがパラメータｃの選択は、両方とも実行速度と精度に影響を与える。これらが増加すると、クエリーの精度は増加するが、時間的および記憶量的な要求も増加する。適切な値は、利用可能な記憶量と、ＳＡＳＨ構築時間への制限とに基づいて経験的に決定することができる。
【０１３３】
（バリエーション１０）
いかなるｋ近傍クエリー問題であっても、代わりにＫ近傍クエリー（Ｋ＞ｋ）を実行することで精度を向上することが可能である。その後結果の最も近いｋ要素を報告することにより向上可能である。当然のことながら、これは、Ｋ/ｋの値に概ね比例して実行時間の増加を引き起こす。本発明において説明するこのバリエーションは、精度とクエリー時間との良好なトレード・オフを達成する実際的な実装に使用される方法であることを注記しておく。
【０１３４】
本発明について、情報検索の実験の結果を示した実施例をもって説明する。再度、後述する実施例は、本発明のよりよく理解するための目的のためにのみ与えられるものであって、本発明の真の範囲を制限するものではない。
【実施例】
本発明者らは、本発明を最大で約500,000ドキュメント、約9000キーワードを含むサンプルデータベースを使用した情報検索の実際的な問題に適用することにより検討した。実施例においては、本発明の方法を、３つの異なったデータ分布を使用して検討した。後述する説明においては、ｄは、データセットの所望する次元である。本発明の方法は、充分な計算能力を有する市販のワークステーションに実装した。実験のサンプル条件を下記に示す。
（１）  データ・セット
ユニフォーム：与えられたポイントについて、そのｄ座標それぞれを、所定の間隔で均一にランダム生成した整数とする。距離の尺度としては、ユークリッド距離とした。
【０１３５】
クラスター：所定の多次元矩形内に位置する１０個の固定されたクラスターの中心の１つに近くにそれぞれのデータ点を置いた、すなわちそれぞれのクラスター中心のそれぞれの座標は、所定の間隔の整数である。与えられたデータ点に対するクラスター中心は、ランダムに均一に選択し、その後オフセットをそれぞれの座標に加えてポイントを生成した。それぞれの座標に対して、２つの上述したオフセットを加えた。すべてのオフセットを、互いに独立に生成した。距離の尺度は、ユークリッド距離である。
【０１３６】
ロイター：200次元の概ね100,000ポイントのデータセットを、元々8749次元のキーワード集合のロイター通信社のニュース記事におけるキーワードの発生を表す概ね21,000の特性ベクトルをＣＯＶ法により次元削減を用いて生成した。それぞれの特性ベクトルから、４つの付加的なベクトルを非ゼロのエントリに摂動を与えることにより生成した。
【０１３７】
上述した条件の下で、同様のクエリーを取り扱うＳＡＳＨの性能を調べる目的から、本発明者らは、変更例５および８についてＳＡＳＨを実装し、試験を行った。比較の目的から、本発明者らは、また、従来技術で説明したZezulaら（前掲）により提案された第２と第３のM-treeに基づく方法を、従来の方法の比較例として実装した。しかしながら、本発明者らは、Ferhatosmanogluら（前掲）のクラスタリングに基づく方法を実装することは、彼らによる実験結果から充分に比較できるので、選択しなかった。
【０１３８】
試験した方法は、下記の通りである。
【０１３９】
実施例
Sash3：親ノード容量ｐ＝３であり、子ノード容量ｃ＝１２のＳＡＳＨ
Sash4：親ノード容量ｐ＝４であり、子ノード容量ｃ＝１６のＳＡＳＨ
Sash5：親ノード容量ｐ＝５であり、子ノード容量ｃ＝２２のＳＡＳＨ
Sash10：親ノード容量ｐ＝１０であり、子ノード容量ｃ＝４０のＳＡＳＨ
【０１４０】
比較例
MTreeCR：ノード容量５のM-treeで、収束率にしきい値を使用した(Zezulaらの第３の方法)
MTreeDD：ノード容量５のM-treeで、クエリー要素間距離分布の見積もりを使用した（Zezulaらの第２の方法）。分布は、要素間距離のランダムサンプリングにより与えた。使用したサンプルサイズは、ｎ１．５であり、ｎは、データベース内での要素の数である。
MTreeDD+：MTreeDDと同様であるが、すべてのクエリー要素間距離を予め計算し、この方法に使用可能とした。この情報は実際的には、利用できない。
【０１４１】
（２）実験例１：精度と時間のトレード・オフ
第１の実験例では、クラスターおよびロイターデータセットについて、ＳＡＳＨ法とMTreeDD+法とを比較した。クラスターデータセットのサイズは、50,000または200,000であり、その次元を、50または100とした。ロイターデータセットのサイズは、100,000であり、次元（削減された）は、200であった。クエリーサイズ（近傍要求の数）を、すべての実行において20,50,100とした。構造は、ランダムに生成した。ＳＡＳＨについては、それぞれのデータ要素を、所定のノードについて均等に等しく出現させた。M-treeについては、ノードの挿入を、均一にかつランダムに行った。クエリー要素のセットを、またデータ要素自体について同一の手順を用いてランダムに生成した。
【０１４２】
それぞれの実行について、１０個のクエリーポイントを生成した。構造（ＳＡＳＨまたはM-tree）を、１０回構築し、それぞれの構築後、精度と時間との間のトレード・オフに影響を与えるため異なるパラメータを使用して、すべての１０クエリーを繰り返し実行させた。ＳＡＳＨ法については、変化させたパラメータは、クエリーサイズとした（上述した変更例１０において説明した）。MTreeDD+法については、変化させたパラメータは、ランクしきい値とした。しかしながら、MTreeDD+は、クエリー要素からデータベース要素への距離の完全なリストへとアクセスするので、ランクしきい値の選択は、これらの距離のうちの１つを単に直接選択することに等しい。
【０１４３】
図１４は、実行時間（ＳＡＳＨおよびMtreeに基づく方法において主要な操作である距離計算の数として測定した）ｖｓ．精度（正確なｋ最近傍クエリーの結果において出現するクエリーの結果の比として測定した。）のグラフとして実験の結果を示した図である。スムースなグラフを得るために、それぞれの精度レベルにつき、構造の１０回の構築のすべてのクエリーの実行時間を平均した。
【０１４４】
この実験について、MTreeCRと、MTreeDDは、両方ともMTreeDD+法として表した。MTreeDD+により生成された結果のスペクトルは、MTreeCRまたはMTreeDDにより生成される結果と同一であった。この理由は、両方の方法は、究極的にクエリー−要素の距離のうちの１つを選択して、それらの停止基準を決定するためである。しかしながら、MTreeCRおよびMTreeDDは、それぞれのクエリーについての距離の選択において一致性に劣る。
【０１４５】
図１５には、100,000ポイント64次元のクラスター・データセットSash3、Sash4、およびSash5法についての結果を示す。これは、Ferhatosmanogluら（２００１）の実験において考察された最も大きなセット同一のサイズおよび次元である。90％の精度レベルでは、20,50,100のクエリーサイズについてＳＡＳＨ法は、正確なシーケンシャル法に比較して15から20倍のスピードアップを達成した。彼らのクラスター化データセットとは異なるものの、Ferhatosmanogluらは、この精度レベルについて概ね16倍のスピードアップを報告している。
【０１４６】
（３）実験例２：クエリー結果の変化
M-tree法およびＳＡＳＨ法の時間および精度の変動を見積もるために、本発明者らは、MTreeCR、MTreeDD1.25、およびSash10をそれぞれ、1,000,000ポイントで50次元のユニフォーム・データについて実行させて、実験を行った。それぞれの方法について、100クエリーポイントを、データセットの要素を均一に、かつランダムに選択することで生成し、すべての100クエリーをその後適切な構造（M-treeまたはＳＡＳＨ）について実行させた。すべての実行において、要求したクエリーサイズ（近傍の数）を、100とした。実験例１と同様に、時間を、実行した距離計算の数として測定し、精度を正確な100最近傍クエリーの結果において出現したクエリー結果の割合として測定した。クラスター・データセットおよびロイター・データセットに比較して、ユニフォーム・データセットは、まったくクラスターを含んでおらず、このため、ユニフォーム・データセットに対するクエリーの結果は、より変動が少ないことが期待される。
【０１４７】
それぞれの方法における目的精度を得るための能力を示すために、本発明者らは、70％のクエリー結果精度をえるための精度と時間との間のトレード・オフに影響を与えるために使用するパラメータの特定の値を決定することを試みた。Sash10法については、このパラメータは、クエリーサイズである（前述した変更例10において説明した）。MTreeCR法およびMTree1.25法については、パラメータは、ランクしきい値である。前処理ステップにおいて、100の追加のクエリーポイントを、トレーニング・パラメータのために生成した。与えられたパラメータの選択において、100のトレーニング・クエリーを実行し、それらの結果の平均精度を決定した。
【０１４８】
この平均値が70％のターゲット精度よりも大きいか小さいかに基づいて、パラメータを大小に調節した。パラメータの対話的なガイドによる２分探索技術を使用して、値を、可能な限り70％に近いトレーニング・クエリーに対する平均結果精度が得られるように選択した。一度決定すると、このパラメータを使用して、100データ点の異なったセットに基づいたクエリーのために使用した。
【０１４９】
図１６には、この実験の結果を示す。MTreeCR法は、使用したパラメータの値に関わらず、14％以上のクエリー結果精度に達することができなかった。Sash10とMTreeDD1.25は、概ね70％の平均クエリー結果精度を得ることができたが、MTreeDD1.25とSash10とを比較すると、Sash10は、その精度が一致しており、また実行する距離計算の数においてもきわめて一致した。
【０１５０】
本発明の方法を、50次元の50,000ポイントのクラスター・データセットについての実験により検討した。ここで、選択したターゲットは、クエリーあたり4000回の距離計算であり、テストした方法は、MTreeCR、MTreeDD1.5およびSash3である。探索パラメータの値は、本質的に精度をターゲットにした場合と同一にして決定した。図１７は、上述した実験の結果を示す。MTreeCRの場合においては、クエリーについて4000回の距離計算を消費させるパラメータの選択はなかった。再度、Sash3法は、その精度が一致し、かつ実行する距離計算の数について究極的な一致を示した。
【０１５１】
本発明者らは、さらにSash3、Sash4、Sash5およびMTreeDD1.25法を、ロイター・データセットに適用し、90％のクエリー結果精度をターゲットとして検討を加えた。MTreeDD1.25法は、究極的に不一致であり、82回の実行では、目的の精度を得るために概ね37,500から85,000（最大100,000）で距離計算が変動し、他の18回の実行では、1〜58％の範囲の精度が、約8,000〜30,000回の範囲の距離計算を使用して得られた。
【０１５２】
これに比較して、すべての３つのSash法は、距離計算の回数に関して高い度合いの一致性を示した。本発明の方法は、精度に関していてば一致性においてより低いながら、すべての３つの方法について、100クエリーの結果のうちの10以下は、精度65％以下であり、クエリーの主なものについては、目的の精度を達成した。
【０１５３】
この実験の結果を図１８（MTreeDD1.25；比較例）および図１９（本発明）に示す。精度の平均および標準偏差と距離計算を、下記表１に示す。
【０１５４】
【表１】
0003860046.tif 000002
総じて、本発明は、情報処理技術における効率を著しく改良することができる。改善について以下にまとめる。
【０１５５】
改良１：スケーラビリティ
変更例５を使用すれば、ＳＡＳＨを使用することにより必要とされる記憶量は、ｐｎに比例する。必要とされる距離比較の数は、近似的な上限を有する。
ＳＡＳＨ構築：pcnlog2n
近似的なｋ最近傍クエリー：9ck+clog2n
【０１５６】
しかしながら、ノードあたりの子ノードの平均の数は、２ｐよりも小さく、実際的にはこれらの限界は、下記式に近いものとなる。
ＳＡＳＨ構築：2p2nlog2n
近似的なｋ最近傍クエリー：18pk+2plog2n
この方法は、ｎおよびｋに関連してきわめて良くスケールを行うことができる。次元ｄは、個々の比較におけるコストに対してのみ寄与する。したがって、次元ｄの数に比例する時間的な同様の尺度が、実行時間に対してｄに比例した要因となることが期待できる（クエリーおよび構築の両方に対して）。これは、さらに従来のベクトル空間法により期待される指数的なｄ依存性よりも遙かに良好である。
【０１５７】
改善２：実行時間の見積もりと制御
クエリーの実行について与えられた時間制限の中で改善１において開始された時間制限は、近似的なＫ最近傍クエリーを実行することができる最も大きなＫの値を見積もるために使用することができる。要求されたデータベースの要素の数ｋがＫよりも小さい場合には、Ｋクエリーを実行し、最良のｋの値を戻す。この方法において、ユーザには、時間制限内で最も正確な可能な解が与えられる。Ｋの見積もりには、単一の距離計算の時間を知る必要がある。現実的には、ＳＡＳＨの構築のための時間をベンチマークとして使用することができる。近似的な類似性クエリーのための従来の方法は、上述した見積もりおよび制御を許すものではない。
【０１５８】
改善３：精度ｖｓ．実行時間のトレード・オフ
本発明者らの実験は、M-treeに基づく方法がクエリー・ポイントからデータベースの要素までの距離についての完全な知識を使用するという、“アンフェア”な効果のもとで与えられているにもかかわらず、ＳＡＳＨに基づく方法は、これらを上回った。トレード・オフはまた、従来よりも優れたものである。
【０１５９】
改善４：データ分布に対する依存性および知識
ＳＡＳＨにおいては、それぞれのデータベース要素の位置は、データのサンプルに関連して形成される（すなわち、階層構造におけるその上のレベルに属するノードのセット）。この方法のポイントを配置する能力は、データの分布に依存せず、データが不均一に分布しているかまたは分布に大きな変動があるかは、問題としない。従来の距離treeに基づいた方法とは異なり、本発明の方法は、与えられたクエリー要素への要素の距離の分布を見積もることは必要とされず、また与えられたデータベース要素に対して要素の距離の分布の非現実的な平均にも依存しない。従来のクラスタリング方法とは異なり、データは、k-meansを使用して同定できるように、順番付けられた単純なクラスターは必要とされない。
【０１６０】
これまで、本発明を、特定の実施の形態に関連して説明してきた。しかしながら、当業者によれば、本発明の範囲から逸脱することなく種々の除外、修正、および他の実施例が可能であることは、理解できるであろう。
【０１６１】
本発明は、検索およびランキングのための方法の他、検出およびトラッキングのための方法として説明してきたが、本発明は、また本発明において説明した方法を実行するためのシステムおよび方法それ自体、本発明の方法を実行するためのプログラムが記録された、光学的、磁気的、電気―磁気的媒体といったプログラム製品を含むものである。本発明の真の範囲は、添付する請求項によってのみ定められるものである。
【図面の簡単な説明】
本発明の上述した目的および他の目的および効果については、図面に示した特定の実施の形態をもってする詳細な説明により理解されるであろう。しかしながら、本発明は図面に示した実施の形態に限定されるものではない。
【図１】  図１は、本発明の概略的な方法を示した図。
【図２】  図２は、ドキュメント−キーワード・ベクトルにおける階層構造を構築するための概略手順を示した図。
【図３】  本発明にしたがって生成された階層構造の実施の形態を示した図。
【図４】  図４は、図２に示した階層構造構築のための手順に含まれる副次的手順を示した図。
【図５】  図５は、図４に示した手順をグラフィカルに示した図。
【図６】  図６は、上述した結合またはリンケージの構築をグラフィカルに示した図。
【図７】  図７は、本発明において使用することができる代表的な距離関数を示した図。
【図８】  図８は、本発明において実装される近傍発見のための手順を示した図。
【図９】  図９は、図４に示した孤児保証人を探索する手順を示した図。
【図１０】  図１０は、ｋ近傍ノードを見出すための手順を示した図。
【図１１】  図１１は、本発明のコンピュータ・システムの代表的な実施の形態を示した図。
【図１２】  図１２は、ドキュメント−キーワード・ベクトルのデータ構造の実施の形態を示した図。
【図１３】  図１３は、上述したデータ構造に含まれるノードポインタそれぞれの機能を示した図。
【図１４】  図１４は、クエリーサイズ２００で、サイズ２００，０００、次元１００のクラスター・データセットに対するＳＡＳＨ法とMTreeDD+法を比較するための第１の実験の結果を示した図。
【図１５】  図１５は、１００，０００ポイントの６４次元のクラスター・データセットに対するSash3、Sash4、Sash5法の結果−Ferhatosmanogluら（２００１）の実験により検討された最も大きなセットと同一のサイズと次元−を示した図。
【図１６】  図１６は、ユニフォーム・データセットについての要求した精度を７０％とした場合の第２の実験の結果を示した図。
【図１７】  図１７は、要求した距離計算の数が４０００の場合の、クラスター・セットについての第２の実験の結果を示した図。
【図１８】  図１８は、MTreeDD1.25を使用し、要求精度が９０％の場合の第２の実験の結果を示した図。
【図１９】  図１９は、ＳＡＳＨ法を使用し、要求精度が９０％の場合の第２の実験の結果を示した図。
【図１】
0003860046.tif 000003
【図２】
0003860046.tif 000004
【図３】
0003860046.tif 000005
【図４】
0003860046.tif 000006
【図５】
0003860046.tif 000007
【図６】
0003860046.tif 000008
【図７】
0003860046.tif 000009
【図８】
0003860046.tif 000010
【図９】
0003860046.tif 000011
【図１０】
0003860046.tif 000012
【図１１】
0003860046.tif 000013
【図１２】
0003860046.tif 000014
【図１３】
0003860046.tif 000015
【図１４】
0003860046.tif 000016
【図１５】
0003860046.tif 000017
【図１６】
0003860046.tif 000018
【図１７】
0003860046.tif 000019
【図１８】
0003860046.tif 000020
【図１９】
0003860046.tif 000021