(57)【特許請求の範囲】
【請求項１】
データベースに時間の経過と共に追加されるドキュメントを検索するための情報検索システムであって、前記ドキュメントは、ドキュメント−アトリビュート行列へと変換されて前記情報検索システムに保持され、かつ前記ドキュメント−アトリビュート行列は、逐次的に追加されるドキュメント−アトリビュート副行列から構成され、
前記ドキュメント−アトリビュート行列から共分散行列を生成し、ドキュメントベクトルの積和行列（ＳＵＭ（Ｍ）１）と、ドキュメント−ベクトルの平均（ＭＥＡＮ（Ｍ）１）と、ドキュメント−ベクトルの平均の積行列（ＳＵＭ（Ｍ）２）と、ドキュメントの全数（Ｍ）とを保持させるための手段と、
前記データベースに所定の期間の間に追加されたドキュメントからドキュメント−アトリビュート副行列を生成するための手段と、
生成された前記共分散行列と、前記ＳＵＭ（Ｍ）１と、前記ＭＥＡＮ（Ｍ）１と、前記ＳＵＭ（Ｍ）２と、前記Ｍと、追加された前記副行列のドキュメント数（Ｈ）とからなる前記ドキュメント−アトリビュート副行列に関連する情報を使用して前記共分散行列を更新し、更新された前記共分散行列を特異値分解して、データベースに保持されたすべてのドキュメント−アトリビュート行列の次元削減を実行するための手段と、
前記次元削減されたドキュメント−アトリビュート行列を使用してユーザが入力したクエリーによる情報検索を行うための手段と
を含む、情報検索システム。
【請求項２】
前記すべてのドキュメント−アトリビュート行列の次元削減を実行するための手段は、追加された前記副行列を含むすべてのドキュメント−アトリビュート行列の共分散行列Ｃ’を、下記式
0003953295.tif 000042
により生成する手段を含む
請求項１に記載の情報検索システム。
【請求項３】
さらに、ドキュメント−ベクトルに含まれるアトリビュートを自動的に検索し、アトリビュート・ハッシュ・テーブルを生成して前記アトリビュートを追加または削除するための手段を含む
請求項１または２に記載の情報検索システム。
【請求項４】
データベースに時間の経過と共に追加されるドキュメントを検索するための情報検索方法であって、前記方法は情報検索システムによって実行され、前記ドキュメントは、ドキュメント−アトリビュート行列へと変換されて保持され、かつ前記ドキュメント−アトリビュート行列は、逐次的に追加されるドキュメント−アトリビュート副行列から構成され、
前記情報検索システムが備える保持させるための手段が、前記ドキュメント−アトリビュート副行列から共分散行列を生成し、ドキュメントベクトルの積和行列（ＳＵＭ（Ｍ）１）と、ドキュメント−ベクトルの平均（ＭＥＡＮ（Ｍ）１）と、ドキュメント−ベクトルの平均の積行列（ＳＵＭ（Ｍ）２）と、ドキュメントの全数（Ｍ）とを保持させるステップと、
前記情報検索システムが備えるドキュメント−アトリビュート副行列を生成するための手段が、前記データベースに所定の期間の間に追加されたドキュメントからドキュメント−アトリビュート副行列を生成するステップと、
前記情報検索システムが備える次元削減を実行するための手段が、生成された前記共分散行列と、前記ＳＵＭ（Ｍ）１と、前記ＭＥＡＮ（Ｍ）１と、前記ＳＵＭ（Ｍ）２と、前記Ｍと、追加された前記副行列のドキュメント数（Ｈ）とからなる前記ドキュメント−アトリビュート副行列に関連する情報を使用して前記共分散行列を更新し、更新された前記共分散行列を特異値分解して、データベースに保持されたすべてのドキュメント−アトリビュート行列の次元削減を実行するステップと、
前記情報検索システムが備える情報検索を行うための手段が、前記次元削減されたドキュメント−アトリビュート行列を使用してユーザが入力したクエリーによる情報検索を行うステップと
を含む、情報検索方法。
【請求項５】
前記すべてのドキュメント−アトリビュート行列の次元削減を実行するステップは、前記情報検索システムが備える共分散行列Ｃ’を生成する手段が、追加された前記副行列を含むすべてのドキュメント−アトリビュート行列の共分散行列Ｃ’を、下記式
0003953295.tif 000043
により生成するステップを含む
請求項４に記載の情報検索方法。
【請求項６】
前記情報検索システムが備えるアトリビュートを追加または削除するための手段が、さらに、ドキュメント−ベクトルに含まれるアトリビュートを自動的に検索し、アトリビュート・ハッシュ・テーブルを生成して前記アトリビュートを追加または削除するステップを含む
請求項４または５に記載の情報検索方法。
【請求項７】
データベースに時間の経過と共に追加されるドキュメントを検索するための情報検索方法をコンピュータに実行させるためのプログラムであって、前記ドキュメントは、ドキュメント−アトリビュート行列へと変換されて保持され、かつ前記ドキュメント−アトリビュート行列は、逐次的に追加されるドキュメント−アトリビュート副行列から構成され、
前記ドキュメント−アトリビュート副行列から共分散行列を生成し、ドキュメントベクトルの積和行列（ＳＵＭ（Ｍ）１）と、ドキュメント−ベクトルの平均（ＭＥＡＮ（Ｍ）１）と、ドキュメント−ベクトルの平均の積行列（ＳＵＭ（Ｍ）２）と、ドキュメントの全数（Ｍ）とを保持させるステップと、
前記データベースに所定の期間の間に追加されたドキュメントからドキュメント−アトリビュート副行列を生成するステップと、
生成された前記共分散行列と、前記ＳＵＭ（Ｍ）１と、前記ＭＥＡＮ（Ｍ）１と、前記ＳＵＭ（Ｍ）２と、前記Ｍと、追加された前記副行列のドキュメント数（Ｈ）とからなる前記ドキュメント−アトリビュート副行列に関連する情報を使用して前記共分散行列を更新し、更新された前記共分散行列を特異値分解して、データベースに保持されたすべてのドキュメント−アトリビュート行列の次元削減を実行するステップと、
前記次元削減されたドキュメント−アトリビュート行列を使用してユーザが入力したクエリーによる情報検索を行うステップと
を含む、情報検索方法を前記コンピュータに実行させるためのプログラム。
【請求項８】
前記すべてのドキュメント−アトリビュート行列の次元削減を実行するステップにおいて、追加された前記副行列を含むすべてのドキュメント−アトリビュート行列の共分散行列Ｃ’を、下記式
0003953295.tif 000044
により生成するステップを実行させる
請求項７に記載のプログラム。
【請求項９】
さらに、ドキュメント−ベクトルに含まれるアトリビュートを自動的に検索し、アトリビュート・ハッシュ・テーブルを生成して前記アトリビュートを追加または削除するステップを実行させる
請求項７または８に記載のプログラム。
【請求項１０】
データベースに時間の経過と共に追加されるドキュメントを検索するための情報検索方法をコンピュータに実行させるためのプログラムが記録されたコンピュータ可読な記録媒体であって、前記ドキュメントは、ドキュメント−アトリビュート行列へと変換されて保持され、かつ前記ドキュメント−アトリビュート行列は、逐次的に追加されるドキュメント−アトリビュート副行列から構成され、
前記ドキュメント−アトリビュート行列から共分散行列を生成し、ドキュメントベクトルの積和行列（ＳＵＭ（Ｍ）１）と、ドキュメント−ベクトルの平均（ＭＥＡＮ（Ｍ）１）と、ドキュメント−ベクトルの平均の積行列（ＳＵＭ（Ｍ）２）と、ドキュメントの全数（Ｍ）とを保持させるステップと、
前記データベースに所定の期間の間に追加されたドキュメントからドキュメント−アトリビュート副行列を生成するステップと、
生成された前記共分散行列と、前記ＳＵＭ（Ｍ）１と、前記ＭＥＡＮ（Ｍ）１と、前記ＳＵＭ（Ｍ）２と、前記Ｍと、追加された前記副行列のドキュメント数（Ｈ）とからなる前記ドキュメント−アトリビュート副行列に関連する情報を使用して前記共分散行列を更新し、更新された前記共分散行列を特異値分解して、データベースに保持されたすべてのドキュメント−アトリビュート行列の次元削減を実行するステップと、
前記次元削減されたドキュメント−アトリビュート行列を使用してユーザが入力したクエリーによる情報検索を行うステップと
を含む、情報検索方法を前記コンピュータに実行させるためのプログラムが記録された記録媒体。
【請求項１１】
前記すべてのドキュメント−アトリビュート行列の次元削減を実行するステップにおいて、追加された前記副行列を含むすべてのドキュメント−アトリビュート行列の共分散行列Ｃ’を、下記式
0003953295.tif 000045
により生成するステップを実行させる
請求項１０に記載の記録媒体。
【請求項１２】
さらに、ドキュメント−ベクトルに含まれるアトリビュートを自動的に検索し、アトリビュート・ハッシュ・テーブルを生成して前記アトリビュートを追加または削除するステップを実行させる
請求項１０または１１に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースに保持されたデータの情報検索に関し、より詳細にはデータベースに対して情報が逐次的に追加され、情報が更新されるきわめて大きなデータベースのための情報検索システム、情報検索方法、情報検索を行うためのプログラムおよび該プログラムが記録されたコンピュータ可読な記録媒体に関する。
【０００２】
【従来の技術】
ドキュメントのベクトル空間モデルを使用する情報検索システムは、きわめて大きな、静的なデータベースに対して比較的成功したものといえる。Deerwesterらは、テキストに基づいたドキュメントの情報検索に関連する問題をより低次元のサブスペースへとマッピングするアルゴリズムである、潜在的意味解析法(Latent Semantic Indexing)を開発し、実時間における検索を可能とさせている。Deerwesterらのアルゴリズムは、ドキュメント−アトリビュート行列の特異値分解(Singular value decomposition: SVD)の効率的で、数値的に正確な計算に基づくものである。上述したDeerwesterらの手法は、精度が高く充分なものではあるが、そのために使用するサブスペースの基底ベクトルの決定は通常、逐次的なドキュメントデータの追加および削除の要求がある場合でもドキュメントデータに対する特異値分解を含む計算により実行されるのでコストが高く、例えば一晩を要するという不都合がある。
【０００３】
情報検索における上述したＳＶＤに基づく次元削減のためのアルゴリズムは、例えば、ニュース・データベース、医療データベース、消費者プロファイル・データベースといったきわめて迅速に情報が追加される、きわめて大きなデータベースから情報を検索するのに適切ではない。この理由は、主として（１）データベースは、新たに追加される情報を考慮すると共に、日付が古くなったり不要になった情報を削除するため、本明細書においてアップデートまたはダウンデートとして参照するプロセスを通じて頻繁に更新されなければならないこと、（２）データベース内のコンテンツの変更に対応するためのデータベースの更新（すなわちアップデートまたはダウンデート）のたびに、ドキュメント−アトリビュート行列に対して再度基底ベクトルを算出する必要が生じ、このため、計算時間、労力、ハードウエア資源などに関連してコストが極めて高くなることを挙げることができる。
【０００４】
＜先行技術の開示＞
これまで上述した問題点を解決するべく、いくつかの方法が提案されている。Berry, DumaisおよびO’ Brienは、“Using linear algebra for intelligent information retrieval”、 1995、 pp.573-595、において、およびZhaおよびSiomonは、“On updating problems in latent semantic indexing”、 SIAM Journal of Scientific Computation、 Vol. 21、 No. 2、 pp. 782-791、 March 2000において、ＳＶＤに基づく次元削減につき、ベクトル空間モデルの下でドキュメントをアップデート、すなわちドキュメントを付け加える方法を提案している。しかしながら、Berryらの方法は、ベクトル空間モデルに対するアップデートの正確な計算ではなく単に近似でしかないために、信頼性において充分ではないという不都合があった。
【０００５】
Berryら（１９９５）およびZhaら（２０００）によるDeerwesterらのアルゴリズムに対するアップデート方法も特異値分解に対する非線形な近似解であり、信頼性に欠けるという不都合がある。
【０００６】
一方、Witterは、“Downdating the latent semantic model for information retrieval”、 M.A. Thesis、 Univ. of Tennessee、 Knoxville、 Dec. 1997、において、Deerwesterらのアルゴリズムのためのダウンデート方法を開示している。しかしながら、Witterの方法を急速に変化するデータベースのダウンデートに対して適用すると、（１）ドキュメントが一度に削除されるので、以後に連続するダウンデートのための浮動小数点計算における誤差が蓄積し、これが重大な影響を与えること、（２）ダウンデートは、次元削減されたドキュメント−アトリビュート行列に対してのみ実行されるので、次元削減された行列は、その次元を失い元々の行列にある少量ではあるが意味的に重要ないわゆるアウトライア・ドキュメントを検出できずに、ドキュメントが削除されるにつれて主要トピックスのみになってしまう可能性があることである。これについては、本願出願人らによる特許出願、特願２００１−２０５１８３号にも詳細に記載されている。
【０００７】
上述した理由から、Witterのアルゴリズムによるダウンデートされたドキュメント−アトリビュート行列の出力は不正確であり、情報検索を含んだ多くの用途に対して適切ではない。なお、浮動小数点計算における誤差に関する検討は、最も標準的な数値解析のテキストに記載されており、このようなテキストとしては、GolubおよびVan Loan、”Matrix Computations”、第２版、John Hopkins Univ. Press、 Baltimore、 MD、 1989およびGoldbergによる総説論文”What every computer scientist should know about floating-point arithmetic”、 ACM Computing Surveys、 Vol. 23、 No. 1、１９９１年３月を挙げることができる。
【０００８】
またこれまで、急速に変化するデータベースを含み、ＳＶＤに基づいた情報検索用途に使用することができるに足る、充分な精度および効率で、次元削減されたドキュメント−アトリビュート行列のアップデートを実行するための方法は知られていない。精度および効率を必要とするアップデート用途の重要なクラスの例としては、本願出願人らによるデータベースにおける新たなトピックス／事象の検出およびその累積の追跡を挙げることができる。
【０００９】
一方で、ＳＶＤのプロセスについて考察すれば、一般的なドキュメント−アトリビュート行列ＡのＳＶＤは、下記式により与えられる。
【００１０】
【数１】
0003953295.tif 000002
（上記式中、Ｕ、Ｖは、直交行列を示し、Σは、対角行列を示し、Ｔは、行列の転置を示す。以下、本発明において同様である。）
【００１１】
この場合、上述した行列ＡのＳＶＤを、ＡＴＡやＡＡＴの固有値問題として実行する方法もあり得る。しかしながら、ＡＴＡやＡＡＴ生成させる場合には、小さな特異値に対して激しい精度低下を生じさせるという問題が生じ、反復してドキュメント−アトリビュート行列のアップデートに対応すると、出力精度が著しく低下してしまうという問題が生じることにもなる。
【００１２】
【発明が解決しようとする課題】
すなわち本発明は、ＳＶＤを使用してきわめて大きく、かつ急速に変化するデータベースから実時間での情報検索を行うための情報検索システム、情報検索方法、情報検索を実行させるためのプログラムおよび情報検索を実行させるためのプログラムが記録された記録媒体を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明は、上述した課題を解決するに際して、ドキュメント−アトリビュート行列の以前に算出した結果を一部再利用すれば、計算時間の短縮、精度向上、および効率化を達成することができる、という新奇な着想に基づいてなされたものである。
【００１４】
本発明は、上述した以前の計算結果を使用するプロセスとして、ドキュメント−アトリビュート行列をＱＲ分解し、新たに付け加えられたドキュメントを含むドキュメント−アトリビュート行列を、すでに算出されたＱＲ分解の結果のうちの直前に生成された行列Ｒを使用する。具体的には行列Ｒと付け加えられたドキュメント−アトリビュート副行列を含む行列をハウスホルダー変換し、付け加えられたドキュメント−アトリビュート副行列の結果を反映させて新たな行列Ｒとして更新する。
【００１５】
本発明においては、上述のようにして更新された上三角行列ＲをＳＶＤに用い、得られた特異ベクトルを使用してドキュメント−アトリビュート行列の次元削減を実行することにより、急速にデータが追加されるデータベースにおける次元削減プロセスを高精度、かつ効率的に実行させ、最新のデータベースでの情報検索を可能にするものである。
【００１６】
また、本発明の別の実施の形態においては、ドキュメント−アトリビュート行列について共分散行列を生成し、追加されたドキュメントからなるドキュメント−アトリビュート行列について以前に算出された共分散行列に関連する所定の行列を使用して共分散行列を更新する。本発明においては、共分散行列の更新の際にアトリビュートを追加・削除することもできる。上述のようにして得られた共分散行列に対しＳＶＤを実行して特異ベクトルを生成し、ドキュメント−アトリビュート行列の次元削減に使用することにより、次元削減プロセスの高精度化および効率化を達成するものである。
【００１７】
すなわち、動的に変化するドキュメント−アトリビュート行列の本発明による特異値トリプレット（特異値と、それに対応する左および右特異ベクトル）のアップデートは、上述した先行技術において提案された結果よりも、より数値的に正確な結果を与えることができる。本発明は、特にアップデートされた行列のＳＶＤを迅速に計算すると共に、特異値トリプレットの近似を与えるものではなく、数値的に正確な計算を実行させるものである。
【００１８】
さらに、本発明は、多数回のアップデートが行われることに対応しているので、浮動小数点誤差の蓄積を最小化させるものである。情報検索システムによる次元削減の問題に対してＳＶＤを使用する結果の出力の品質は、一般には、算出された特異値トリプレットの精度に依存するので、本発明は、従来の技術においてこれまで開示されている方法よりもより良好な結果を与えることが可能となる。
【００１９】
さらに、本発明は、ドキュメント−アトリビュート行列のＳＶＤに基づいたアップデートの正確な計算を可能とするので、本発明は、例えば新たなトピックス／事象の検出といった、内容の著しく変化するデータベースにおけるドキュメントといったデータの検出に使用することができる。また、本発明の方法は、例えば特願２０００−１７５８４８号、特願２００１−１５７６１４号にも記載されているトピックス／事象の追跡にも適用することができる。
【００２０】
すなわち、本発明によれば、データベースに時間の経過と共に追加されるドキュメントを検索するための情報検索システムであって、前記ドキュメントは、ドキュメント−アトリビュート行列へと変換されて前記情報検索システムに保持され、かつ前記ドキュメント−アトリビュート行列は、逐次的に追加されるドキュメント−アトリビュート副行列から構成され、
前記ドキュメント−アトリビュート行列から所定の行列を生成して保持させるための手段と、
前記データベースに所定の期間の間に追加されたドキュメントからドキュメント−アトリビュート副行列を生成するための手段と、
前記ドキュメント−アトリビュート副行列に関連する情報を使用して前記所定の行列を更新し、更新された前記所定の行列を特異値分解して、データベースに保持されたすべてのドキュメント−アトリビュート行列の次元削減を実行するための手段と、
前記次元削減されたドキュメント−アトリビュート行列を使用してユーザが入力したクエリーによる情報検索を行うための手段と
を含む、情報検索システムが提供される。
【００２１】
本発明においては、前記ドキュメント−アトリビュート副行列をＱＲ分解し、前記所定の行列として行列Ｒのみを使用する手段を含むことができる。本発明においては、前記保存された行列Ｒの更新を、前記ドキュメント−アトリビュート副行列に関連したハウスホルダー変換により実行させるための手段を含むことができる。
【００２２】
本発明においては、前記ドキュメント−アトリビュート副行列から前記所定の行列として共分散行列を生成し、ドキュメント・ベクトルの積和行列（ＳＵＭ（Ｍ）１）と、ドキュメント・ベクトルの平均（ＭＥＡＮ（Ｍ）１）と、ドキュメント・ベクトルの平均の積行列（ＳＵＭ（Ｍ）２）と、ドキュメントの全数（Ｍ）とを保持するための手段とを含むことができる。また、本発明においては、追加された前記副行列を含むすべてのドキュメント−アトリビュート行列の共分散行列Ｃ’を、下記式
0003953295.tif 000003
（上記式中、Ｈは、追加された副行列のドキュメント数を示す。）
により生成する手段を含むことができる。本発明においては、さらに、ドキュメント・ベクトルに含まれるアトリビュートを自動的に検索し、アトリビュート・ハッシュ・テーブルを生成して前記アトリビュートを追加または削除するための手段を含むことができる。
【００２３】
本発明によれば、データベースに時間の経過と共に追加されるドキュメントを検索するための情報検索方法であって、前記ドキュメントは、ドキュメント−アトリビュート行列へと変換されて保持され、かつ前記ドキュメント−アトリビュート行列は、逐次的に追加されるドキュメント−アトリビュート副行列から構成され、
前記ドキュメント−アトリビュート副行列から所定の行列を生成して保持させるステップと、
前記データベースに所定の期間の間に追加されたドキュメントからドキュメント−アトリビュート副行列を生成するステップと、
前記ドキュメント−アトリビュート副行列に関連する情報を使用して前記所定の行列を更新し、更新された前記所定の行列を特異値分解して、データベースに保持されたすべてのドキュメント−アトリビュート行列の次元削減を実行するステップと、
前記次元削減されたドキュメント−アトリビュート行列を使用してユーザが入力したクエリーによる情報検索を行うステップと
を含む、情報検索方法が提供される。
【００２４】
さらに本発明によれば、データベースに時間の経過と共に追加されるドキュメントを検索するための情報検索方法を実行させるためのプログラムであって、前記ドキュメントは、ドキュメント−アトリビュート行列へと変換されて保持され、かつ前記ドキュメント−アトリビュート行列は、逐次的に追加されるドキュメント−アトリビュート副行列から構成され、
前記ドキュメント−アトリビュート副行列から所定の行列を生成して保持させるステップと、
前記データベースに所定の期間の間に追加されたドキュメントからドキュメント−アトリビュート副行列を生成するステップと、
前記ドキュメント−アトリビュート副行列に関連する情報を使用して前記所定の行列を更新し、更新された前記所定の行列を特異値分解して、データベースに保持されたすべてのドキュメント−アトリビュート行列の次元削減を実行するステップと、
前記次元削減されたドキュメント−アトリビュート行列を使用してユーザが入力したクエリーによる情報検索を行うステップと
を含む、情報検索方法を実行させるためのプログラムが提供できる。
【００２５】
また、本発明によれば、データベースに時間の経過と共に追加されるドキュメントを検索するための情報検索方法を実行させるためのプログラムが記録されたコンピュータ可読な記録媒体であって、前記ドキュメントは、ドキュメント−アトリビュート行列へと変換されて保持され、かつ前記ドキュメント−アトリビュート行列は、逐次的に追加されるドキュメント−アトリビュート副行列から構成され、
前記ドキュメント−アトリビュート副行列から所定の行列を生成して保持させるステップと、
前記データベースに所定の期間の間に追加されたドキュメントからドキュメント−アトリビュート副行列を生成するステップと、
前記ドキュメント−アトリビュート副行列に関連する情報を使用して前記所定の行列を更新し、更新された前記所定の行列を特異値分解して、データベースに保持されたすべてのドキュメント−アトリビュート行列の次元削減を実行するステップと、
前記次元削減されたドキュメント−アトリビュート行列を使用してユーザが入力したクエリーによる情報検索を行うステップと
を含む、情報検索方法を実行させるためのプログラムが記録された記録媒体が提供される。
【００２６】
【発明の実施の形態】
以下、本発明につき図面に示した実施の形態に基づいて詳細に説明するが、本発明は後述する特定の実施の形態に限定されるものではない。
【００２７】
図１は、本発明において、情報検索を実行するためのデータベースの概略構成を示した図である。図１に示されたデータベースにおいては、ドキュメントは、バイナリ・モデルやアトリビュート頻度・モデルといった適切な方法を使用して、ドキュメント・ベクトルへと変換されている。図１には、上述したドキュメントにより生成されたドキュメント−アトリビュート行列としてデータベースのデータ構成を示している。図１においては、行方向にドキュメント・ベクトルが並べられており、列方向には、所定のアトリビュートがドキュメントに含まれている場合には、適切な重み、所定のアトリビュートが含まれていない場合には、０とする方法により、数値要素が並べられている。
【００２８】
なお、本発明においては、図１で示したバイナリ・モデルの他に、ユーザが指定する重み付け因子（ウエイト・ファクタ）を適用した、アトリビュート頻度モデル与えることもできる。以下、本発明においては、上述して得られた行列をドキュメント−アトリビュート行列Ａとして参照する。アトリビュートとしては、テキスト・ドキュメント・データに用いられるキーワード・アトリビュートの他にも、タイム・スタンプ、画像、オーディオ・データなど、いかなるアトリビュートでも本発明においては使用することができる
【００２９】
図１に示されるように、本発明においては、データベースには、ドキュメント／データが頻繁に追加されており、これらのドキュメントは、それぞれが含むアトリビュートに基づいて、ドキュメント・ベクトルへと変換される。これらのドキュメント・ベクトルは、例えば、日単位、週単位、月単位、或いは、データベースの管理者が設定した単位に区切られて、それぞれの副行列Ａ１，．．．，Ａｎとして構成されている。
【００３０】
例えば、最初にデータベースに対して蓄積されていたドキュメント・ベクトルの集合は、行列Ａとして区切られており、Ａについて処理を実行する。その後追加されたドキュメント・ベクトルの集合を、例えば１週間といった所定の期間まとめてドキュメント−アトリビュート行列として構成したものが、副行列Ａ１として示されている。同様にして、順次追加されたドキュメント・ベクトルを所定の期間ごとにまとめたもので、最も新しい副行列が、図１においては副行列Ａｎとして示されている。
【００３１】
上述した所定の期間としては、上述したように日単位、週単位、月単位としてまとめることができるが、特に常に一定の期間ではなく、必要に応じてその時点までに蓄積されたデータをまとめて副行列Ａｉとすることができる。本発明は、上述した副行列を使用して、ＱＲ分解で得られる上三角行列Ｒまたは共分散行列を算出することで、データが蓄積されていくドキュメント−アトリビュート行列すべてを一割してＳＶＤを実行させる労力を削減することにより、次元削減の計算時間を低減して効率化を達成する。また、本発明においては、重要ではあるがデータ数として数％程度でデータベースに含まれるいわゆるアウトライア・ドキュメントを次元削減プロセスにおいて無視してしまう可能性を可能な限り低減させ、検索精度を向上させることを可能とする。以下、本発明の実施の形態について詳細に説明する。
【００３２】
＜第１の実施の形態＞
本発明の第１の実施の形態においては、上述した副行列と前回までに得られた行列Ｒからなる行列に対してＱＲ分解を適用して、新たに得られる上三角行列Ｒに、ＳＶＤを適用して特異ベクトルを得、得られた大きなものからｋ番目までの特異ベクトルを含んで構成された特異行列を使用して、データベースに含まれるドキュメント−アトリビュート行列をｋ次元へと次元削減させるものである。
【００３３】
また、副行列Ａ１は、図２で示されるように、もとのドキュメント−アトリビュート行列ＡをＱＲ分解した時の行列Ｒの底に加えた形式で保持する。
【００３４】
図２の左側の行列Ｒに副行列Ａｉが追加された部分は適当な直交置換行列Ｐにより行列Ｒの直下に移動させる。
【００３５】
図３は、本発明の第１の実施の形態としてＱＲ分解法を使用してドキュメント−アトリビュート行列Ａの次元削減を実行するプロセスを示したフローチャートである。図３に示されるように、プロセスは、ステップＳ１から開始し、ステップＳ２において、ドキュメント−アトリビュート行列ＡのＱＲ分解を実行する。ステップＳ３においては、ＱＲ分解して得られた行列Ｑと、行列Ｒのうち、行列Ｒのみを使用する。本発明において行列Ｒのみを使用する理由は、（ａ）Ｒ行列が上三角行列であり、ＳＶＤを行うためにきわめて迅速に計算を実行することができること、（ｂ）下記式に示されるように行列Ｒを使用してもドキュメント−アトリビュート行列における特異値または固有値は保存されていること、の理由に基づくものである。
【００３６】
【数２】
0003953295.tif 000004
【００３７】
次いで、本発明の第１の実施の形態におけるプロセスにおいては、ステップＳ４において追加された副行列Ａｉを使用して行列Ｒを更新する。この際、更新された行列Ｒの算出は、本発明の好適な実施の形態においては、この更新された行列Ｒの算出については、より詳細に後述する。ステップＳ５では、上述したようにして得られたＲ行列を使用してＳＶＤを実行する。
【００３８】
【数３】
0003953295.tif 000005
（上記式中、Ｕ、Ｖは、Ｎ×Ｎ正規直交行列であり、Σは、Ｎ×Ｎ対角行列である。）
上述のようにして得られた行列Ｒの特異値または固有値は、上述したようにドキュメント−アトリビュート行列Ａの特異値と同じ特異値を保持している。また、Ｒは、上三角行列であるため、ＳＶＤをきわめて容易に行うことができ、従来のプロセスにおいてきわめて計算時間を要したＳＶＤに割り当てられる計算時間を著しく低減することが可能となる。
【００３９】
さらに本発明のプロセスにおいては、ステップＳ６で、得られた特異値から特異ベクトルまたは固有ベクトルを得、得られた特異ベクトルまたは固有ベクトルを、特異値または固有値の大きな方から特異ベクトルまたは固有ベクトルのｋ番目までを使用して次元削減したｋ次元の特異行列を生成してドキュメント−アトリビュート行列の次元を削減させる。
【００４０】
ステップＳ７において次元の減少した行列を使用して情報検索を実行し、ステップＳ８において本発明の第１の実施例の情報検索方法を終了する。
【００４１】
以下各ステップにおける処理を詳細に説明する。まず、ステップＳ２で、ドキュメント−アトリビュート行列ＡについてＱＲ分解を実行する。ＡについてのＱＲ分解を下記式に示す。
【００４２】
【数４】
0003953295.tif 000006
【００４３】
上記式中、Ｏで示された行列は、要素がすべて０の行列を意味する。図４には、一般的な行列Ｄに対する上述したＱＲ分解を実行させるための擬似コードを示す。
本発明においては、ステップＳ３において、行列Ａについて上述のＱＲ分解により得られた行列Ｒのみを使用する。図５には、行列ＡのＱＲ分解により得られる行列の構成要素を概略的に示す。図５において、Ｍは、ドキュメントの数であり、Ｎは、アトリビュートの数である。また、図５においては、行列Ｑの列ベクトルをｑｉ（ｉ＝１、．．．、Ｍ）により示し、行列Ｒの要素がゼロの部分を０で示している。また、図５に示した実施の形態においては、得られる行列Ｒは、Ｎ×Ｎの上三角行列として得られている。
【００４４】
本発明においてはさらに、ステップＳ４において、副行列Ａｉとしてデータが加えられたドキュメント−アトリビュート行列につき、ハウスホルダー変換を実行する。
【００４５】
本発明においては、ステップＳ５において行列Ｒに対して直接ＳＶＤを適用して、Ｒ行列の特異値または固有値を求める。この際、ＳＶＤに使用することができる方法としては、これまで知られた種々の方法を使用することができ、例えばハウスホルダー変換を使用する方法、またはランチョス法を使用することができる。
【００４６】
さらに本発明においては、ステップＳ６においてＳＶＤ計算により得られた特異値または固有値から特異ベクトルまたは固有ベクトルを生成し、特異値または固有値の大きな方から所定の数の特異ベクトルまたは固有ベクトルを降順に配置して特異行列を形成させ、これをドキュメント−アトリビュート行列Ａに乗じて、下記式（５）にしたがってドキュメント−アトリビュート行列Ａの次元を削減させる。
【００４７】
【数５】
0003953295.tif 000007
図６に示すように上記式中、Ａｋは、ｋ番目までの特異値を使用して得られた次元削減されたドキュメント−アトリビュート行列であり、Σｋはｋ個の特異値から成るｋ×ｋ次元の対角行列であり、Ｕｋはｋ個の特異値に対する左特異ベクトルから成る行列であり、Ｖｋはｋ個の特異値に対する右特異ベクトルから成る行列である。
【００４８】
ステップＳ７においては、上述したようにして次元削減されたドキュメント−アトリビュート行列を使用して、クエリー・ベクトルとの乗算を実行し、ユーザが所望するクエリー・ベクトルに基づいた情報検索を実行させることになる。
【００４９】
本発明の第１の実施の形態におけるドキュメント−アトリビュート行列Ａの次元削減は、上述したようにＱＲ分解により得られた行列Ｒを更新しつつ、直接ＳＶＤに提供し、精度良くＳＶＤを実行することができると共に、次元削減に対する計算時間を著しく低減させることができ、この結果、メモリ資源を節約しつつ、高精度、高効率の情報検索を実行することが可能となる。
【００５０】
＜第２の実施の形態＞
本発明の第２の実施の形態においては、共分散行列を使用した次元削減プロセスにおいて、すでに計算された以前のドキュメント−アトリビュート行列Ａに対する共分散行列を使用して新たに加えられた副行列Ａ１を含む新たな共分散行列を生成し、得られた副行列Ａ１を反映した新たな共分散行列をＳＶＤプロセスに提供するものである。本発明の第２の実施の形態は、ドキュメントの追加に対応できるばかりではなく、容易にドキュメントの削除についても適用することができる。
【００５１】
以下、本発明の第２の実施の形態について詳細に説明する。本発明の第２の実施の形態を詳細に説明する前に、共分散行列を用いた情報検索について概略的な説明を行う。Ｍ×Ｎの要素からなるドキュメント−アトリビュート行列Ａに対して、その共分散行列Ｃは、下記式により与えられる。
【００５２】
【数６】
0003953295.tif 000008
上式中、ＳＵＭ（Ｍ）１は、ドキュメント・ベクトルの積和行列であり、ＳＵＭ（Ｍ）２は、ドキュメント・ベクトルの平均の積行列である。ｄｉ、ｂａｒｄ（Ｍ）、ｂａｒｄ（Ｍ）ｉは、それぞれドキュメント−アトリビュート行列Ａの要素ｉ、ｊを使用して下記式で定義される。このうち、ＳＵＭ（Ｍ）１およびＳＵＭ（Ｍ）２は、共にＮ×Ｎの対称な正方行列である。
【００５３】
【数７】
0003953295.tif 000009
【００５４】
上述したように定義された共分散行列は、Ｎ×Ｎの正方行列として得られる。また、共分散行列の特異値または固有値は、例えば特願２０００−１７５８４８号に記載されているように、ドキュメント−アトリビュート行列の特異値または固有値を保存し、かつ正方行列であるのでドキュメントが著しく多い場合であっても特異値または固有値、ひいては特異ベクトルまたは固有ベクトルを迅速に計算でき、高い効率の情報検索の実行を可能とする。
【００５５】
図７は、本発明の第２の実施の形態の情報検索方法のフローチャートを示した図である。なお、本発明の第２の実施の形態においてもドキュメント−アトリビュート行列構成は、図１に示したようにＡおよび逐次的に蓄積されて行く副行列Ａ１、Ａ２，．．．，Ａｎから構成されているものとして説明する。以下に説明する実施の形態においては、まず最初に行列Ａから共分散行列を生成して行くものとして説明する。
【００５６】
図７に示されるように、本発明の情報検索方法の第２の実施の形態は、ステップＳ１０から開始し、ステップＳ１１において行列Ａから上記式にしたがって共分散行列を生成する。
【００５７】
ステップＳ１２においては、Ｈ個のドキュメント・ベクトルを含む副行列Ａ１が、行列Ａに追加され、ドキュメント−アトリビュート行列が形成される。ステップＳ１３においては、副行列Ａ１のドキュメント−アトリビュート行列から、下記式の計算を実行させる。
【００５８】
【数８】
0003953295.tif 000010
さらにステップＳ１４において、下記式の計算を実行させる。
【００５９】
【数９】
0003953295.tif 000011
次いで、ステップＳ１５において、下記式の計算を実行させる。
【００６０】
【数１０】
0003953295.tif 000012
【００６１】
ここで、下記式の関係が各構成要素について成り立つ。
【００６２】
【数１１】
0003953295.tif 000013
【００６３】
次いで、下記式を使用して、ＳＵＭ−ＭＥＡＮ（Ｍ＋Ｈ）１を更新する。この際の計算は、単なるＮ回の加算により実行できるので計算時間を短縮することができる。
【００６４】
【数１２】
0003953295.tif 000014
【００６５】
次いで、ステップＳ１６においてＳＵＭ（Ｍ＋Ｈ）２を、下記式にしたがってＳＵＭ−ＭＥＡＮ（Ｍ＋Ｈ）１を使用して更新する。
【００６６】
【数１３】
0003953295.tif 000015
この更新の後、アップデートされた共分散行列Ｃ’を、下記式にしたがって得ることができる。
【００６７】
【数１４】
0003953295.tif 000016
この後、ステップＳ１７において更新された共分散行列Ｃ’を、ＳＶＤに提供して特異値または固有値を得、大きな方からｋ個の特異値または固有値に対応する特異ベクトルまたは固有ベクトルを選択して次元の減少された特異行列または固有行列を生成する。ステップＳ１８において、次元の減少されたｋ本の特異行列または固有ベクトルまたは特異ベクトルを使用してドキュメント−アトリビュート行列Ａの次元削減を行い、ステップ１９で情報検索を実行させ、ステップＳ２０で、本発明の第２の実施の形態のプロセスを終了する。図８には、上述した本発明のプロセスのうち、ステップＳ１１において説明した共分散行列の生成のための擬似コードを示す。
【００６８】
また、本発明においては、上述したプロセスにおいてＳＵＭ（Ｍ−Ｈ）１を生成させて同様に計算を繰り返すことにより、ドキュメント・ベクトルが何らかの理由により削減された場合にも容易に対応することが可能となる。
【００６９】
さらに、本発明の第２の実施の形態においては、アトリビュート自体のアップデートおよびダウンデートを行うことも可能となる。アトリビュートのアップデートは、新たなアトリビュートが加えられた場合に実行され、アトリビュートの削減は、例えばアトリビュートが検索において非現実的なものとなったとき、または検索する必要が無くなったときに実行される。アトリビュートの追加・削除は、アトリビュート・ハッシュ・テーブルを使用して実行される。
【００７０】
図９には、本発明の第２の実施の形態に適用される、ドキュメントの追加または削除におけるアトリビュート・ハッシュ・テーブルを変更するプロセスを示した図である。図９（ａ）に示すように、ユーザからのドキュメント（ｉ）の追加／削除の要求があると、本発明においては、ドキュメント（ｉ）を追加する場合には、まずバイナリ・モデルといった適切な方法を使用してドキュメント・ベクトルを形成する。また、ユーザがドキュメント（ｉ）を削除しようとする場合には、削除しようとするドキュメント（ｉ）を特定する。
【００７１】
次いで、図９（ｂ）に示すようにドキュメント（ｉ）に含まれる非ゼロのアトリビュートＡＴを特定する。図９（ｂ）においては、ドキュメント（ｉ）が含む非ゼロのアトリビュートａｔｔ３，ａｔｔｎ−１が、数値１に対応することが示されているが、本発明において重み付けをそれぞれのアトリビュートＡＴに対して適用する場合には、非ゼロの要素は、ウエイト・ファクタに対応した１以外の値とされていても良い。
【００７２】
上述したようにドキュメント（ｉ）における非ゼロのアトリビュートが特定されると、本発明においては、図１０に示されたアトリビュート・ハッシュ・テーブルを参照する。
【００７３】
アトリビュート・ハッシュ・テーブルには、それぞれのアトリビュートと、当該アトリビュートを含むドキュメント数とが対応して記憶されており、アトリビュートからドキュメント数を参照することが可能とされている。図１０を使用してドキュメントの追加／削除の実施の形態について説明すると、例えば、アトリビュート３とアトリビュートｎ−１とを含むドキュメント（ｉ）が追加／削除される場合には、もともとアトリビュート３を含むドキュメント数６が、追加の場合にはドキュメント数７とされ、削除の場合にはドキュメント数５と変更される。
【００７４】
これに対応して、図１０に示される実施の形態の場合には、アトリビュートｎ−１も非ゼロの要素となっているので、もともとアトリビュートｎ−１に関連するドキュメントのドキュメント数３３が、追加／削除に対応して３４または３２へと変更される。上述したアトリビュート・ハッシュ・テーブルは、さらに別の識別子を使用することにより所定のアトリビュートを有する個々のドキュメントの参照を可能とするようにされていてもよい。
【００７５】
図１１は、上述したアトリビュートの削除を実行させる場合の概念図を示す。図１１（ａ）が、アトリビュート削除前のドキュメント・ベクトルの構成を示したものであり、図１１（ｂ）がアトリビュート削除後のドキュメント・ベクトルの構成を示した実施の形態を示した図である。図１１に示した実施の形態においては、アトリビュート４が削除される実施の形態を示しているが、本発明において削除されるアトリビュートの示された位置、または一度に削除されるアトリビュートの数は、図１１に示される以外にもいかなるものでも用いることができる。
【００７６】
図１２は、図１１に示されたアトリビュート４を削除する場合のドキュメント・ベクトルの積和行列の変更を例示した図である。図１２（ａ）は、アトリビュート４の削除前のドキュメント・ベクトルの積和により得られる積和行列を示し、図１２（ｂ）は、アトリビュート４の削除後のドキュメント・ベクトルから得られる積和行列を示す。上述したように、本発明においては、共分散行列を生成する際に積和行列を用いるので、アトリビュートの追加、削除も容易に含めることができる。
【００７７】
図１３は、アトリビュートを加える際の処理を説明した概略図である。図１３に示した実施の形態においては、図１３（ａ）にアトリビュート追加前のドキュメント・ベクトルが示されており、このドキュメント・ベクトルに対して、図１３（ｂ）に示されるように、アトリビュートｎ＋１がドキュメント・ベクトルに対して加えられる。図１４には、上述したように加えられたアトリビュートｎ＋１を含んだドキュメント・ベクトルから積和により形成された（Ｎ＋１）×（Ｎ＋１）行列を示す。
【００７８】
上述した従来の共分散行列を作る場合のドキュメント・データは、ドキュメント数とアトリビュート数とがあらかじめわかっていることが前提とされていた。これに対して本発明は、文書数の総数もアトリビュート数も、最初はわかってない状態から計算を逐次実行させることを可能とする。
【００７９】
図１５には本発明の情報検索方法を実施するためのコンピュータ・システムの概略図を示す。図１５に示した本発明のコンピュータ・システムは、コンピュータ１０と、このコンピュータ１０とデータの伝送を行うことが可能であるように接続されたデータベース１２とを含んで構成されている。本発明において使用することができるコンピュータ１０としては、本発明の方法を実行することができる中央処理装置（ＣＰＵ）、ＲＡＭなどのメモリなどのハードウエア資源を含んで構成されている限り、パーソナル・コンピュータ、ワークステーションといったいかなるものでも用いることができる。また、本発明において使用することができるデータベース１２としては、データが追加して書込みができるものであれば、従来知られているいかなるデータベースでも使用することができる。
【００８０】
また、図１５に示したコンピュータ・システムは、例えばインターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）といった、これまで知られたいかなるＴＣＰ／ＩＰといったプロトコルを使用して遠隔的に配置されネットワーク１４を介して接続されたコンピュータ１６と通信を行うことができるように構成することができる。図１５に示した本発明の実施の形態においては、データベース１２に接続されたコンピュータ１０をサーバとして使用し、このサーバに対して遠隔的に接続されたコンピュータ１６をクライアント・コンピュータとして使用する、いわゆるクライアント−サーバ・システムとして構成することができる。クライアント・コンピュータのユーザは、所望する情報を検索するべく、コンピュータ１６へと例えばキーワードといったアトリビュートの入力を行う。
【００８１】
入力されたキーワードは、ネットワーク１４を介してコンピュータ１０へと伝送され、コンピュータ１０において情報検索を行うために使用される。データベース１２には、オリジナルのドキュメントＤが保持されている。また、データベース１２には、このドキュメントＤから所定のアトリビュートを抽出し、例えばバイナリ・モデルを使用して予め数値化されたドキュメント−アトリビュート行列も保持されている。本発明においては、上述したドキュメント−アトリビュート行列は、一度すでに本発明によるＱＲ分解法または共分散行列法などの方法を使用してすでに次元削減が行われて、実際の情報検索に提供されている。
【００８２】
図１５に示されたデータベース１２には、随時にドキュメントＤＮが追加されていて、副行列として蓄積されて行く。このドキュメントＤＮは、本発明においては、例えば日単位、週単位、月単位、あるいはサーバ管理者の規定する間隔で、前回ＳＶＤを実行した時点からその時点までに蓄積された分ごとに上述したＱＲ分解法または共分散行列法により、以前に得られているＲまたはＳＵＭ（Ｍ）１，ＳＵＭ（Ｍ）２を使用することで、効率よく以前の結果を含めて次元削減が実行される。本発明においては、上述したようにしてアップデートまたはダウンデートされたドキュメントに対しての情報検索を行うために使用されるドキュメント−アトリビュート行列の効率的な次元削減を可能とし、高精度、かつ高効率の情報検索システムが提供されている。
【００８３】
また図１５においては、情報検索システムを特にクライアント−サーバ・システムとして説明したが、本発明においては、特にネットワークを介して接続されたクライアント−サーバ・システムばかりではなく、スタンド・アローンのパーソナル・コンピュータまたはワークステーションを使用した情報検索システムとすることができる。
【００８４】
以下、本発明をより具体的に実施例をもって説明するが、本発明は後述する実施例によって限定されるものではない。
【００８５】
【実施例】
（実施例１）
本発明のＱＲ分解法を用いた情報検索について、表１に一部を示したサンプル・データベースを使用して、本発明の効果について検討を加えた。サンプル・データベースは、ドキュメント数３００、キーワード数５０の３００×５０のドキュメント−キーワード行列として構成した。
【００８６】
表１に示したサンプル・データベースは、現実に使用されるデータベースよりも遙かに小さいので、計算速度においては、従来例で知られた方法に比較して大きな違いは見られなかった。このため、本発明の方法により得られた結果と、後述する比較例により得られた結果との計算精度の比較を行った。
【００８７】
【表１】
0003953295.tif 000017
【００８８】
得られた計算精度を実施例１、比較例１、比較例２の計算結果と共に以下に示す。なお、特異値計算の精度を比較する簡単な方法として、最大の特異値σ１と最小の特異値σｎの比（以下、この値をコンディション・ナンバーとして参照しｃとで示す）を採用した。なお、比較例１は、ドキュメント・アトリビュート行列Aに更新された副行列Ａｉを加えたものを新たにＡとして、Ａ全体に対してＳＶＤ法を適用して計算を行うもの（以降、ナイーブなＳＶＤ法と呼ぶ）であり、比較例２は、ＡＴＡの逐次アップデート法によりＳＶＤを更新する方法である。また、データベースの更新をシミュレートするため、３００のドキュメント−キーワード行列を５０×５０チャンクに区切り、チャンク毎に所定の方法を用いてＳＶＤを実行させた。
【００８９】
実施例および比較例とも、Ｐｅｎｔｉｕｍ（登録商標）  ＩＩＩ、クロック周波数７３３ＭＨｚ（Ｉｎｔｅｌ社、登録商標）を使用したＷｉｎｄｏｗｓ（登録商標）  ２０００（Ｍｉｃｒｏｓｏｆｔ社、登録商標）をＯＳとして使用するパーソナル・コンピュータを使用した。また、データは、６４ビット浮動小数点精度を使用して計算を実行した。
【００９０】
上述した条件の下で得られた結果を、コンディション・ナンバーの比として示す。
【００９１】
ｃ１＝１０７３２．７１４５７０２２３１８３（実施例１）
ｃ２＝１０７３２．７１４５７０２２３２１７（比較例１）
ｃ３＝１０７３２．７１４５７０４１１２３４（比較例２）
という結果が得られた。
【００９２】
したがって、本発明によるＱＲ分解法を使用してＳＶＤを実行させる場合には、ナイーブなＳＶＤ法を使用して得られる結果ｃ２と本発明による方法ｃ１との比が、ｃ２／ｃ１＝１．０００００００００００００００３となり、小数点以下９桁まで一致していることが示された。一方で、ｃ２／ｃ３の比は、０．９９９９９９９９９９８２４８１９となって、精度が本発明の方法よりも劣ることが示された。最小の特異値σｎについてみれば、実施例１の方法と、比較例１の方法とは、小数点以下１５桁まで一致していることが見出された。実施例１の結果から、本発明の方法は、ほぼマシンエプシロンまで精度的に問題ないことが示された。
【００９３】
（実施例２）
実施例２においては、本発明のＱＲ分解法を使用する実施の形態において算出するデータのスケーラビリティをあげて、ＣＰＵの全占有時間、反復計算時間からみた計算速度およびメモリ資源の必要量の点について検討を加えた。使用したデータは、
(a) 100x100、
(b) 1000x100、
(c) 10000x100、
(d) 100000x100、
(e) 1000000x100
の５つの行列を使用した。行列の要素は、ランダムに生成した密行列として作成した。計算にあたって使用したチャンクのサイズは、いずれも１００×１００とした。したがって、たとえば(e)で示される場合には、１万回反復してアップデートを行いながら計算を実行させることになる。また、本発明の方法を実行するプログラムは、言語Ｊａｖａ（登録商標）で実装した。下記表に示すメモリ使用量のうち、概ね４ＭＢがＪａｖａ（登録商標）（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社の登録商標）のＶｉｒｔｕａｌ  Ｍａｃｈｉｎｅが占める。したがって、データが使用する実質のメモリサイズは、下記表４におけるメモリ使用量から４ＭＢを引いた値と見積もることができる。
【００９４】
【表２】
0003953295.tif 000018
【００９５】
【表３】
0003953295.tif 000019
【００９６】
【表４】
0003953295.tif 000020
【００９７】
計算時間の点でいえば、比較例２で示されるＡＴＡを反復して特異値を求めるのが最速の結果を与えた。このことは理論的にも明らかで、比較例２ではＡＴＡの計算における行列−行列積の計算と行列−行列和の計算だけで済むためである。
【００９８】
一方、各反復計算の時間についてみれば、実施例２で示される本発明の方法は、ＱＲ分解の時間が必要とされる分だけ、反復時間を要することになることが示された。より正確にいえば、実施例２で使用した密行列に対してチャンク・サイズをＨとしたとき、比較例２では、乗算にO(HN2)の計算量が必要となる。一方、実施例２で用いるＱＲ分解法は、一回につき、O(2N2((H+N)-N/3)の計算量を必要とする(Golub & Van Loan)。
【００９９】
ただし、実施例１においても説明したように、比較例２のＡＴＡの反復繰り返し計算は、速度を優先し、誤差を犠牲にするものである。なお、データが１００×１００の場合（上述した（ａ）の行列の場合）は、反復がないので計算手法そのものに要する時間の差を示しているといえる。一回の反復におけるＣＰＵ時間は、比較例２で概ね平均１００ミリ秒程度、実施例２では、１３０ミリ秒程度となる。しかしながら、比較例１のナイーブなＳＶＤと本発明の方法を比較すると、遙かに計算時間が早くなっていることが示される。
【０１００】
表４に示すメモリ使用量に関してみれば、比較例２も実施例２もほぼ同程度にナイーブなＳＶＤにより得られた比較例１において使用されるメモリよりも著しく小さなメモリですむことが示されている。したがって、本発明の方法は、メモリ資源の消費といった点でも従来の方法と劣るものではないことが示される。
【０１０１】
（実施例３）
＜アップデート例＞
実施例３として、本発明において共分散行列を使用してドキュメントのアップデートを行う場合について、検討を加えた。実施例３においては、図１６に示すような７個のデータ・ファイル（その内容は、キーワードとその出現頻度）が、時間順に与えられたものとした。図１６に示されるように、データ・ファイルは、タイムス・タンプとデータ・ファイル名とを記したデータ例を示す。この実施例では、“ｄａｔａｓｅｔ”という名前のファイルとして参照する。例えば、図１６中、２００１０７０１は、２００１年７月１日を意味するタイム・スタンプである。
【０１０２】
図１６に現れる個々のファイルの内容を、図１７から図２３に示す。個々のファイルの内容は、アトリビュートとして使用されるキーワードと、その重み付け（重み付けは、正の実数値で、大きいほどそのキーワードがその文書に含まれる寄与率が大きい）とからなるペアとして構成している。また、図１７から図２３までの文書データ・ファイルは、説明する実施例では２０の文書数として構成した。
【０１０３】
以上のデータが与えられた場合、まず２００１年７月１日のタイム・スタンプを含むｄａｔａ１から順に読み込んでいき、図２３のｄａｔａ７まで本発明の共分散行列法を順次適用する。最後に、ｄａｔａ７まで処理したところで共分散行列を使用してＳＶＤを実行して、特異値および特異ベクトルを得た。比較のため、はじめから表５〜表１０に示す１４０文書のデータ・ファイルを与え、これから共分散行列を生成してＳＶＤを実行して得られた場合と特異値および特異ベクトルの結果を比較した（ベクトルの場合、順序を除いた。）。
【０１０４】
なお、表５の第１行目の１４０  ４０は、文書数のトータルが１４０個で、４０個のキーワードからなるものであることを示している。図２４には、本発明の実施例３において使用したキーワードを示す。
【０１０５】
【表５】
0003953295.tif 000021
【０１０６】
【表６】
0003953295.tif 000022
【０１０７】
【表７】
0003953295.tif 000023
【０１０８】
【表８】
0003953295.tif 000024
【０１０９】
【表９】
0003953295.tif 000025
【０１１０】
【表１０】
0003953295.tif 000026
【０１１１】
実施例３では、まず図１７に示したｄａｔａ１が入力されるものとした。図２５には、ｄａｔａ１だけを処理した時点でのＳＵＭ−ＭＥＡＮ（Ｍ）１と、ＳＵＭ（Ｍ）１とを示す。なお、最初の６行は、新しいキーワードが見つかった文書番号とそのキーワード名とを示す。図２５に示されるように、ｄａｔａ１を処理した時点では、キーワード総数は６で、したがってＳＵＭ−ＭＥＡＮ（Ｍ）１は、６次元ベクトルであり、ＳＵＭ（Ｍ）１は、６×６次元の対称行列となる。
【０１１２】
図２５においては、対称性から要素の半分だけを書き出して示している。また、キーワードは見つかるたびに、キーワードを管理するキーワード・ハッシュ・テーブルに追加される。キーワード・ハッシュ・テーブルにはこの他に、何個の文書がそのキーワードを含んでいるかのカウント数も保持されている。実施例３においては、キーワード・ハッシュ・テーブル以外に、総文書数Ｍ＝２０と、総キーワード数Ｎ＝６とを保持させた。その後、ｄａｔａ２をアップデートすることにより、ドキュメントの追加を実行した。その結果を、図２６に示す。なお、図２６においてもデータは、図２５と同様の順および構成として示されている。ｄａｔａ３からｄａｔａ６までを同様に処理した。最後にｄａｔａ７をアップデート処理した。この処理後のＳＵＭ−ＭＥＡＮ（Ｍ）１を図２７に示す。また、ＳＵＭ（Ｍ）１の内容を表１１から表１２に示す。なお、ｄａｔａ３からｄａｔａ６までのアップデート処理で、キーワードが合計４０個出揃っているため、ｄａｔａ７の処理においては、新たなキーワードの追加はされなかった。なお、表１１および表１２中「*」で示された要素は、０．０を意味する。また、コロンの左側の数字は、行列の行番号を示す。
【０１１３】
【表１１】
0003953295.tif 000027
【０１１４】
【表１２】
0003953295.tif 000028
【０１１５】
本発明においては、上述したように共分散行列を使用してｄａｔａ１からｄａｔａ７までのデータのアップデートを終了する。また、本発明において、この時点で共分散行列を作って欲しいとのユーザ・リクエストがある場合には、この時点でＳＵＭ（Ｍ）２を下記式で計算する。これは４０×４０の対称行列となる。
【０１１６】
【数１５】
0003953295.tif 000029
その後、ＳＵＭ（Ｍ）１と、ＳＵＭ（Ｍ）２とから共分散行列を計算させる。得られた共分散行列の結果を表１３から表１９に示す。得られる共分散行列は対称行列なので、表１３〜表１９では、要素の半分だけを示している。
【０１１７】
【表１３】
0003953295.tif 000030
【０１１８】
【表１４】
0003953295.tif 000031
【０１１９】
【表１５】
0003953295.tif 000032
【０１２０】
【表１６】
0003953295.tif 000033
【０１２１】
【表１７】
0003953295.tif 000034
【０１２２】
【表１８】
0003953295.tif 000035
【０１２３】
【表１９】
0003953295.tif 000036
【０１２４】
上記の逐次アップデートで計算された共分散行列Ｃ’を用いて特異値分解し、最初の１０個の特異値と最大の特異値に対する特異ベクトルを計算した結果を、図２８に示す。また、特異ベクトル(最大の特異値に対するもの)を表２０に示す。
【０１２５】
【表２０】
0003953295.tif 000037
【０１２６】
比較例３として、従来の手法（あらかじめ文書総数、キーワード総数がわかっている場合）で表５〜表１０のようなデータが与えられた場合に、直接共分散行列を計算し、これを特異値分解して特異値（大きい方から１０個）と最大特異値に対する特異ベクトルを求めた結果を図２９に示す。
【０１２７】
また、第１特異値に対する特異ベクトル（Ｎ＝４０次元）を下記表２１に示す
【０１２８】
【表２１】
0003953295.tif 000038
【０１２９】
上述した実施例３と、比較例３とを比較した結果、本発明の方法で得られる特異値と、全体のデータから共分散行列を作って、これを特異値分解して得られる特異値は、一致していることが示された。
【０１３０】
また、最大特異値についてみても、たとえば、従来手法で得られる最大特異値に対する特異ベクトルの第3要素は-2.6187e-01であり、これは本発明で得られる最大特異値に対する特異ベクトルの第6要素に対応していることが示された。すなわち、最大特異値に対する特異ベクトルは、順列(permutation)を除いて、一致していることが示された。
【０１３１】
（実施例４）
＜ダウンデート例＞
実施例４として、実施例１で使用したデータから日付が２００１年７月１日（ｄａｔａ１）と２日（ｄａｔａ２）のデータを削除することにより、データベースからのドキュメントのダウンデートについて検討した。ダウンデートのため、まず最初の処理は、ＳＵＭ−ＭＥＡＮ（Ｍ）１と、ＳＵＭ（Ｍ）１とを更新した。このために、ｄａｔａ１とｄａｔａ２とをまず走査して、削除分のＳＵＭ−ＭＥＡＮ（Ｄ）１と、ＳＵＭ（Ｄ）１とをまず作成した。ここでＤは、削除する文書数である。ＳＵＭ−ＭＥＡＮ（Ｄ）１と、ＳＵＭ（Ｄ）１とは、それぞれ、削除する文書の平均ベクトル（Ｎ次元）と削除される文書だけからなる積和行列成分(Ｎ×Ｎの対称行列)となる。
【０１３２】
具体的には、ＳＵＭ−ＭＥＡＮ（Ｄ）１と、ＳＵＭ（Ｄ）１とを求めた後、新らたなＳＵＭ−ＭＥＡＮ（Ｍ）１と、ＳＵＭ（Ｍ）１とを下記式を使用して算出した。
【０１３３】
【数１６】
0003953295.tif 000039
【０１３４】
上記式は、Ｎ次元ベクトルの引き算であり、上記式は、Ｎ×Ｎの対称行列の引き算（要素ごと）である。これで、ＳＵＭ−ＭＥＡＮ（Ｍ）１と、ＳＵＭ（Ｍ）１との更新の第１ステップを終了する。
【０１３５】
次いで、削除することによってキーワード・ハッシュ・テーブルに保持する必要がなくなるキーワードが出てくる可能性があるので、これをＤ個の文書に関してもう一度走査して調査した。実施例３では、ｄａｔａ１とｄａｔａ２とを削除するので、これに伴い図３０に示すキーワードが削除対象として検出された。
【０１３６】
ＳＵＭ−ＭＥＡＮ（Ｍ）１に関しては、上記のキーワード各々に対応するインデックスの位置の要素を削除した（これを（ｉ１、ｉ２、ｉ３、ｉ４、ｉ５、ｉ６）と表記する。）。この結果、キーワード６個分だけ減少した３４次元のベクトルが得られた。ＳＵＭ（Ｍ）１に関しては、この６つのインデックス各々に対応する行列の縦方向と横方向の要素を削除した。たとえば、”AlGore”に対するインデックスｉ１に関しては、ＳＵＭ（Ｍ）１の中で行番号または列番号がｉ１のものをすべて削除した。この時点でＮ×Ｎ行列は、（Ｎ−１）×（Ｎ−１）行列として生成され、最終的には、（Ｎ−６）×（Ｎ−６）の行列として、ＳＵＭ（Ｍ）１を生成した。
【０１３７】
上述した削除を、”Japan”に対応するインデックスｉ６まで繰り返した。このプロセスを終了した時点で、ＳＵＭ−ＭＥＡＮ（Ｍ）１とＳＵＭ（Ｍ）１との更新を終了した。この結果として、元の４０次元から６次元少ない３４次元ベクトルのＳＵＭ−ＭＥＡＮ（Ｍ）１とＳＵＭ（Ｍ）１とを得た。
【０１３８】
最後にＳＵＭ（Ｍ）２をアップデートの場合と同じ式で計算し、共分散行列を求め、これを特異値分解して特異値（大きい方から１０個）と最大特異値に対する特異ベクトルを求めた。その結果を、図３１に示す。また、表２２には、第１特異値に対する特異ベクトル（Ｎ＝３４次元）を示す
【０１３９】
【表２２】
0003953295.tif 000040
【０１４０】
また、比較例４としてｄａｔａ３からｄａｔａ７までをまとめた全体の行列を表５〜表１０と同様なフォーマットとして一度に共分散行列を計算してＳＶＤを実行させることにより得た特異値（大きい方から１０個）を図３２に示す。また、最大特異値に対する特異ベクトルを求めた結果を表２３に示す。
【０１４１】
【表２３】
0003953295.tif 000041
【０１４２】
実施例４および比較例４の結果を比較すると、最大から１０個の特異値に関しては、従来手法と一致していることが示される。また、本手法で得られる最大特異値に対する特異ベクトルと従来手法で得られる特異ベクトルとを比較すると、順序を除き、それぞれの特異ベクトルは、ほぼ一致していることが示された。たとえば、実施例４により得られた特異ベクトルの２番目のベクトル要素1.7290e-01は、従来手法（一括手法）の３番目のベクトルの要素に対応していることが示される。
【０１４３】
本発明の上述した情報検索を実行させるためのプログラムは、これまで知られたいかなる言語を使用しても記述することができ、例えばＣ言語、Ｃ＋＋言語、Ｊａｖａ（登録商標）といった言語を使用して本発明の方法を実行させるためのプログラムとすることができる。また、本発明の方法を実行させるためのプログラムは、フロッピー（登録商標）ディスク、ハードディスク、磁気テープといったコンピュータ可読な磁気記録媒体、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤといったコンピュータ可読な記録媒体に記憶させることができる。
【０１４４】
上述したように、本発明によれば、ドキュメントが逐次アップデートされていく大規模なデータベースにおける以前に計算された次元削減に関する結果を使用して、アップデートされたドキュメントを含むドキュメント−アトリビュート行列の特異値分解を効率的に実行することが可能となる。また、本発明により得られた特異ベクトルを使用してアップデートされたドキュメント−アトリビュート行列の次元削減を実行させた後、情報検索を行うことにより、効率的で、かつ高精度の情報検索を実行することが可能となる。
【０１４５】
これまで本発明を図面に示した実施の形態に基づいて詳細に説明してきたが、本発明は、図面に示した実施の形態に限定されるものではなく、種々の変更、別の実施の形態を採用することが可能である。例えば、本発明においては、ドキュメントを文書ドキュメントとして説明してきたが、本発明において使用することができるドキュメントは、文書ドキュメントに限定されるものではなく、オーディオ、グラフィックス、動画といったドキュメントを含むことができる。
【図面の簡単な説明】
【図１】  本発明において使用するデータベースの概略構成を示した図。
【図２】  副行列Ａ１が加えられた時の更新を示した図。
【図３】  本発明のＱＲ分解方を用いた情報検索方法のフローチャート。
【図４】  一般的な行列Ｄに対するＱＲ分解の実行のための擬似コードを示した図。
【図５】  行列ＡのＱＲ分解により得られる行列の構成要素を示した概略図。
【図６】  特異値分解してｋ次元への次元削減を示した図。
【図７】  本発明の第２の実施形態の情報検索方法のフローチャートを示した図。
【図８】  図７に示したステップＳ１１において使用する共分散行列生成のための擬似コードを示した図。
【図９】  アトリビュート・ハッシュ・テーブルを変更するプロセスを示した概略図。
【図１０】  本発明において使用するアトリビュート・ハッシュ・テーブルを示した図。
【図１１】  アトリビュートの削除を実行する場合の概略図。
【図１２】  アトリビュートの削除と、生成される行列との関係を示した図。
【図１３】  アトリビュートの追加と、生成される行列との関係を示した図。
【図１４】  アトリビュートの追加と、生成される行列との関係を示した図。
【図１５】  本発明の情報検索システムを示した概略図。
【図１６】  タイム・スタンプとデータ・ファイルメイトからなるデータ例を示した図。
【図１７】  図１６で説明した個々のファイルを示した図。
【図１８】  図１６で説明した個々のファイルを示した図。
【図１９】  図１６で説明した個々のファイルを示した図。
【図２０】  図１６で説明した個々のファイルを示した図。
【図２１】  図１６で説明した個々のファイルを示した図。
【図２２】  図１６で説明した個々のファイルを示した図。
【図２３】  図１６で説明した個々のファイルを示した図。
【図２４】  本発明において使用したキーワードを例示した図。
【図２５】  ｄａｔａ１のみを処理した段階でのＳＵＭ−ＭＥＡＮ（Ｍ）１と、ＳＵＭ（Ｍ）１とを示した図。
【図２６】  ｄａｔａ２をアップデートしてデータを追加して得られた結果を示した図。
【図２７】  ｄａｔａ７までアップデートして得られたＳＵＭ−ＭＥＡＮ（Ｍ）１を示した図。
【図２８】  アップデートされた共分散行列Ｃ’を使用して得られた特異ベクトルを示した図。
【図２９】  はじめから表５〜表１０のデータとして与えられた行列を直接特異値分解して得た特異値を示した図。
【図３０】  削除の対象となったキーワードを示した図。
【図３１】  本発明によりダウンデートされた共分散行列により得られた特異値を示した図。
【図３２】  表５〜表１０のデータから予めデータをダウンデートして直接共分散行列を生成して得られた特異値を示した図。
【符号の説明】
１０…コンピュータ
１２…データベース
１４…ネットワーク
１６…コンピュータ
【図１】
0003953295.tif 000046
【図２】
0003953295.tif 000047
【図３】
0003953295.tif 000048
【図４】
0003953295.tif 000049
【図５】
0003953295.tif 000050
【図６】
0003953295.tif 000051
【図７】
0003953295.tif 000052
【図８】
0003953295.tif 000053
【図９】
0003953295.tif 000054
【図１０】
0003953295.tif 000055
【図１１】
0003953295.tif 000056
【図１２】
0003953295.tif 000057
【図１３】
0003953295.tif 000058
【図１４】
0003953295.tif 000059
【図１５】
0003953295.tif 000060
【図１６】
0003953295.tif 000061
【図１７】
0003953295.tif 000062
【図１８】
0003953295.tif 000063
【図１９】
0003953295.tif 000064
【図２０】
0003953295.tif 000065
【図２１】
0003953295.tif 000066
【図２２】
0003953295.tif 000067
【図２３】
0003953295.tif 000068
【図２４】
0003953295.tif 000069
【図２５】
0003953295.tif 000070
【図２６】
0003953295.tif 000071
【図２７】
0003953295.tif 000072
【図２８】
0003953295.tif 000073
【図２９】
0003953295.tif 000074
【図３０】
0003953295.tif 000075
【図３１】
0003953295.tif 000076
【図３２】
0003953295.tif 000077