(57)【特許請求の範囲】
【請求項１】
コンピュータ装置のデータ処理環境において文書に対して行なわれた操作の履歴の表現を保持する方法であって、
(i)１つ以上の元文書の識別子、(ii)少なくとも１つの先文書の識別子、および(iii)前記１つ以上の元文書が前記先文書の生成に用いられた程度を表わしている関係記述子、を備えたエントリを含む文書配布経路表現を、前記コンピュータ装置のデータベースに維持する維持工程と、
前記コンピュータ装置のオペレーティング・システム・カーネル内におけるモニタ手段が、文書間の関係に影響を及ぼす可能性のあるアクセス・イベントを検出する検出工程と、
新たな元文書を生成するアクセス・イベントまたは既存の文書についての関係記述子に変更が生じるアクセス・イベントの検出に応答して、このアクセス・イベントを前記操作の履歴に反映させるように、前記コンピュータ装置の手段が、検出したアクセス・イベントによって決まる関係記述子で、前記文書配布経路表現に新規エントリを生成する生成工程とを備えた、操作履歴表現の保持方法において、
前記検出したアクセス・イベントからは前記関係記述子を決定できない場合に、
類似性検出手段が、前記先文書を既存の文書からなるデータベースに対して照会して、前記先文書に対する適切な関係記述子を決定することを特徴とした、操作履歴表現の保持方法。
【請求項２】
請求項１において、前記文書配布経路表現がイベント識別子を含み、このイベント識別子が、ユーザ識別子、呼び出しプロセス識別子、ネットワーク操作識別子、および記憶媒体識別子で構成されるグループから選択される、操作履歴表現の保持方法。
【請求項３】
請求項２において、前記記憶媒体がリムーバブル記憶媒体である、操作履歴表現の保持方法。
【請求項４】
請求項１において、前記データ配布経路表現が、文書を表わす頂点および関係記述子を表わす辺を有するグラフ・データ構造である、操作履歴表現の保持方法。
【請求項５】
請求項１において、前記関係記述子が、元文書と先文書が同一であるか否かを特定している、操作履歴表現の保持方法。
【請求項６】
請求項１において、前記関係記述子が、元文書が変更されて先文書になる手段を特定している、操作履歴表現の保持方法。
【請求項７】
請求項６において、前記関係記述子が、編集、合体、およびコピーで構成されるグループから選択される、操作履歴表現の保持方法。
【請求項８】
請求項６において、元文書へのユーザのアクセスの監視および／または元文書に関係する変更イベントの監視によって、前記関係記述子が、さらに、元文書が変更された手段の特定を構成する、操作履歴表現の保持方法。
【請求項９】
請求項１において、関係記述子が、先文書が得られるように元文書が変更された度合いを定量化している、操作履歴表現の保持方法。
【請求項１０】
請求項１において、前記データ配布経路が、データ・セキュリティ・アプリケーションを前記コンピュータ装置に実装するのに使用され、
先文書を既存の文書からなるデータベースに対して照会する前記工程が、類似の文書が存在すると判断した場合に、前記データ・セキュリティ・アプリケーションが、当該類似の文書にすでに割り当てられているセキュリティ分類を前記先文書に適用する、操作履歴表現の保持方法。
【請求項１１】
請求項１０において、前記モニタ手段が、文書へのユーザのアクセスを当該文書のセキュリティ分類に従って制限できる、操作履歴表現の保持方法。
【請求項１２】
請求項１０において、前記モニタ手段が、文書に対するユーザの制御を当該文書のセキュリティ分類に従って制限できる、操作履歴表現の保持方法。
【請求項１３】
請求項１０において、前記セキュリティ分類は、新規文書が前記コンピュータ装置に最初に保存されるときにリアルタイムでその新規文書に対して適用される、操作履歴表現の保持方法。
【請求項１４】
請求項１において、前記関係記述子が、文書間の類似性の度合いによって決定される、少なくとも１対の文書間の最初の変更関係を特定する、操作履歴表現の保持方法。
【請求項１５】
請求項１４において、前記変更関係が、これら文書のアクセス時間または変更時間の少なくとも一方によってさらに決定される、操作履歴表現の保持方法。
【請求項１６】
請求項１において、前記データ配布経路が文書削除機能を実装するのに使用され、削除するよう要求された文書に類似する文書が存在すると前記照会工程が判断した場合に、前記類似文書も削除する、操作履歴表現の保持方法。
【請求項１７】
請求項１において、前記適切な関係記述子の前記決定には、
データ処理システムにおいてディジタル形式で保存された第１および第２の文書が類似しているか否かを、これら第１および第２の文書のスパース表現を比較することによって判断する方法が用いられ、この判断方法が、
前記第１および第２の文書を所定サイズのデータのチャンクに分割する分割工程と、
文書内のデータの代表としてすべてのチャンクの部分集合を選択する選択工程と、
選択されたチャンクを表わす係数のセットを決定する決定工程と、
係数のセットを係数クラスタに組み合わせる工程であって、係数クラスタは所定の類似度基準に従って類似である係数を含む、組合せ工程と、
両方の文書からのチャンクが該当するクラスタをカウントすることによって、前記類似性検出手段が文書間の類似性の度合いを評価する評価工程とを備えた、操作履歴表現の保持方法。
【請求項１８】
請求項１７において、前記特定のチャンクを表わす係数が、このチャンクを構成するデータ値についてのフーリエ変換係数として選択される、操作履歴表現の保持方法。
【請求項１９】
請求項１８において、前記選択された係数が、フーリエ変換係数の絶対値である、操作履歴表現の保持方法。
【請求項２０】
請求項１８において、フーリエ係数が計算される前に、チャンク内のデータが、複素変数の平面内のユニタリ円にマッピングされる、操作履歴表現の保持方法。
【請求項２１】
請求項１７において、前記類似性の度合いが、チャンクに保存されたデータの係数の相関を計算することによって割り出される、操作履歴表現の保持方法。
【請求項２２】
請求項２１において、係数のベクトルから外れ値が除去された後に、前記相関が線形である、操作履歴表現の保持方法。
【請求項２３】
請求項１７において、２つの文書内の類似データの位置において生じうるシフトを明らかにして、前記類似性の度合いの評価工程が行なわれる、操作履歴表現の保持方法。
【請求項２４】
請求項１７において、前記クラスタ表現が、少なくとも２つのレベルを有する階層を備え、より低いレベルの階層が順次、より高いレベルの階層におけるチャンクの一部のみを表わす、操作履歴表現の保持方法。
【請求項２５】
請求項１７において、前記比較工程が、最初に階層中のより高いレベルで処理を実行し、この高いレベルにおいて照会されたチャンクの係数とクラスタの中心との間に十分な度合いの類似性が見出された場合にのみ、階層のより低いレベルにおいて係数の比較が続行される、操作履歴表現の保持方法。
【請求項２６】
請求項２５において、前記階層の所定の低いレベルにおけるチャンクの係数とクラスタとの比較は、照会された文書の係数に類似するとすでに判断された関連の高いレベルのクラスタを通過する階層の分岐枝に属するクラスタのみについての検討に限定される、操作履歴表現の保持方法。
【請求項２７】
請求項２５において、さらに、
ａ．第１の文書について、階層の所定のレベルに位置する係数のセットから導き出されるクラスタ探索セットを選択する選択工程と、
ｂ．前記クラスタ探索セット内のクラスタについて、このクラスタ探索セット内のクラスタをベース要素として選択された第２の文書の少なくとも１つのチャンクと比較することによって、類似性を計算する計算工程と、
ｃ．前記第２の要素からのチャンクに対する類似性の度合いに従って、前記比較したクラスタを並べ替える並べ替え工程と、
ｄ．進出の類似性しきい値を計算する計算工程と、
ｅ．前記ベース要素に最も類似するクラスタとして、前記クラスタ探索セットの部分集合を選択する選択工程と、
ｆ．この部分集合をさらに次のクラスタ探索セットとして取り扱う取扱い工程と、
ｇ．階層の底部に達するまで前記工程ｂ〜前記ｆを繰り返す繰返し工程と、
ｈ．繰り返しが完了した場合、工程ｆで生成された部分集合を解として返す返却工程とを備えた、操作履歴表現の保持方法。
【請求項２８】
請求項１７において、前記比較工程が、さらに、２つの文書についての全体的な類似性の度合いを判断するように、階層内の複数のチャンクについての照会の結果を合体させる照会解釈処理を備えた、操作履歴表現の保持方法。
【請求項２９】
請求項２８において、さらに、
前記第１の文書、およびこの類似性判断方法によってすでに処理された処理済み文書セットのすべての文書について、これら文書内の類似のチャンク数を割り出すさらなる工程によって、
前記第１の文書が、処理済み文書からなるより大規模なセット中の文書のグループに類似していると判断される、操作履歴表現の保持方法。
【請求項３０】
請求項２９において、前記第１の文書に類似するチャンクの数が所定数よりも少ない、前記処理済み文書のセット中の文書は、類似であると判断されない、操作履歴表現の保持方法。
【請求項３１】
請求項２５において、前記取扱い工程ｆにおいて生成されたクラスタの部分集合の中から、階層のより上位レベルの親クラスタと共に所定の係数セットに平均が最も類似するクラスタが、対応する係数セットを保存する受け入れ先として選択される、操作履歴表現の保持方法。
【請求項３２】
請求項３１において、前記対応する係数セットに対する階層のさまざまなレベルに位置するクラスタの平均した類似性が、さまざまなレベルにおけるクラスタの前記係数セットとの類似性の２乗の算術平均であって、これらレベルにおけるクラスタの次元によって重み付けされた算術平均によって与えられる、操作履歴表現の保持方法。
【発明の詳細な説明】
【背景技術】
【０００１】
本件出願は、2003年12月17日に出願された米国特許出願第10/738,924号および2003年12月17日に出願された米国特許出願第10/738,919号の優先権を主張する部分継続出願であり、これらは、2003年1月23日に出願された「所有する電子情報の適応的識別および保護の方法およびシステム（Method and System for Adaptive Identification and Protection
of Proprietary Electronic Information）」という名称の米国特許仮出願第60/442,464号の利益を主張している。上記出願の教示の全体は、ここでの言及によって本明細書に組み込まれたものとする。
【０００２】
今やほぼすべての組織が、知的財産を包含する機密に属する情報を含むその組織の大量の情報を種々のフォーマットの電子ファイルとして保存している。この傾向は、コンピュータのコストが低くて幅広く利用可能であること、電子および磁気記憶媒体そのもののコストが減少し続けていること、および情報のアーカイブとしてのバックアップの維持が比較的容易であることなど、多くの理由による。
【０００３】
データの電子的保存データへの強い動機の１つは、特定の情報を求めて大量のファイルに効率よく照会できる容易な点にある。この課題に対処するために、いくかのアルゴリズム的技法が提案されている。広く知られている技術の１つは、テキスト形式の内容に限られており、ウェブでのサーチエンジンで最も広く使用されている。この技法では、ユーザが単語または単語のセットをサーチエンジンに打ち込み、次いでサーチエンジンが膨大なデータの集まりについてあらかじめインデックス化しておいたイメージを処理して、サーチ条件で指定された単語を含む文書を取って来る（フェッチする）。
【０００４】
この技法を洗練することによって、ユーザは、よりユーザ・フレンドリな人間の言葉の形式（単語セット、すなわち単語「ボストン  AND  特売」ではない）で情報を入力できるようになる。これらのいわゆる「自然言語」インターフェイスによって、ユーザは、「ボストン地域で現在特売を宣伝しているのはいずれの取引業者か？」などとクエリ（照会）を入力することができる。画像パターン認識および数学的相関などのその他の技法を用いて、例えば画像のようなテキスト以外のデータの集まりにおいて情報が見つけ出される（例えば、保安カメラで顔を捉えた人物が既知の犯罪者のデータベース内に存在するか否か見つけるため）。
【０００５】
技術が発展し、またハードウェアがより利用可能になり手ごろな価格になるにつれて、コンピュータ・ユーザは、同一文書について複数のコピーを保持できる能力を獲得した（また、そのようにすることを実際に好んでいる）。このようなコピーは、テキストの追加、削除もしくは配置変更、画像のトリミング、１つの文書を２つの文書に分ける、またはいくつかの文書の合体など、わずかな量の編集によってのみ異なっていることがしばしばである。さらに、文書は異なるフォーマットに変換されることがあり、例えば、植字指示付きのテキスト・ファイルを印刷可能形式に変換することができる。これら同一またはきわめて類似した文書の複数のコピーが、同一のコンピュータ上に保持されるかもしれない。しかしながら、これら文書を構内通信網（ＬＡＮ）または広域通信網（ＷＡＮ）に接続された多くのコンピュータに分散させることも可能であり、すなわち異なる部署、あるいは物理的に何千マイルも離れた場所にさえ置くことができる。
【０００６】
しかしながら、同一文書について多数のコピーを容易に生成できるということは、あるいくつかの問題を引き起こす。これらの問題としては、以下のものがある。
・データのセキュリティ−−文書のコピーが多くなるとともに、その中身へのアクセス
を管理することが難しくなる。
・文書の分類−−類似の文書のコピーは、ユーザの介在を必要とせずに同一の方法で処理される必要があると考えられ、さらにこれを自動で行なうのが望ましい。
・系図−−特定の文書がいかに発展したのかについて履歴を特定する。
・フォレンジック−−誰が文書を改ざんしたかを特定する。
・法令遵守−−今や、医療業界および金融業界におけるあるいくつかの法律および規則が、文書へのアクセスを管理して、かつ／または文書が所定の時間経過後に自動的に廃棄されるように要求している。
【０００７】
既存のデータ検索アルゴリズムは、文書間の類似性の計算および文書配布経路の再現について、効率性、正確さ、または拡張性が十分ではない。
【発明の開示】
【０００８】
本発明の一構成によれば、文書の巨大な集合からのデータと所定のデータ一部（新規であってもよく、前記集合に属していてもよい）との間の類似度を効率的に発見するの方法およびシステムが提供される。
【０００９】
さらに詳細には、本システムは、組織のコンピュータにわたって分散されるソフトウェア・プログラムとして実装できる。クライアント側のモニタ・プロセスが、コンピュータ・ユーザのディジタル資産に関するアクティビティ（例えば、機密に属するユーザ文書がコピーされ、変更され、削除され、あるいは送信される）を報告する。これらアクティビティの報告を使用して、データ・セキュリティ・アプリケーションが、文書配布経路（ＤＤＰ）を文書間の履歴的な関係の表現である有向グラフとして保持することができる。ＤＤＰは、ユーザのアクティビティの履歴を観測するシステムにもとづいて構築される。
【００１０】
さらに、本システムは、ユーザ・データ・ファイルについて、類似する（必ずしも等価でなくてよい）情報の高速な照会を可能にするようにインデックス化され、きわめて大きく低減された（「不可逆の」）階層表現を保持する。これより、本システムは、「所定の文書に類似する文書を発見せよ」などといった照会に応答できる。次いで、この情報は、ある操作がクライアント・モニタ処理にとって不可視である場合に、ＤＤＰグラフのさらなる追補に使用される。
【００１１】
文書の類似性照会は、ユーザから手動で起動されることができ、または分散データ処理システム・サービスの一部として適用および／もしくは実装することができる。「新規ファイルに類似するデータを含む」既存のファイルを見つけ、新規ファイルに自動的に適切な管理を適用することができる、組織全体にわたるセキュリティの解決手段を提供するために、類似性検出エンジン（ＳＤＥ）と呼ばれる文書類似性サービスを使用することができる。好ましい実施の形態においては、類似性の判断を高速化するために、ＳＤＥは文書のスパース表現を使用する。スパース表現は、好ましくは、ファイルの選択された部分すなわち「チャンク」から割り出された応答型のフーリエ係数の階層で構成される。文書を最もよく表わしているフーリエ係数成分を選択的に選ぶためにアルゴリズムが使用される。
【００１２】
このシステムは、エンドユーザに透過であり、最新のコンピュータ・ワークステーションにおいて利用可能なリソースのわずかな部分しか利用しない。本システムは、多数のクライアント・ワークステーションをサポートするために、専用のサーバまたはサーバ・クラスタを必要とする場合もある。
【００１３】
このように、文書配布経路を自動的に保持および／または再構築する能力を有するデータ管理アプリケーションを提供するために、本システムを使用することができる。この経
路は、１）文書の起源、２）起源の場所からの配布経路、および３）当該文書を改ざんしたユーザの名前および改ざんが生じた時刻、を特定することができる。
【００１４】
組織は、本発明のこの能力を多数の最終用途に適用することができる。例えば、業務の流れに影響する情報交換の致命的なボトルネックを特定して解消することによって、文書の流れおよび能率的な企業実務を監視するために、本発明を使用することができる。
【００１５】
たとえ企業の膨大な文書の集合にわたっても、類似文書をリアルタイムで自動的に特定できるようにすることで、情報セキュリティ・アプリケーションにこの構成を実装することも可能である。機密でない文書の交換を妨げることなく機密に属するデータへの不適切なアクセスまたは配布を防止するために、不可欠なデータ・セキュリティ機能である文書の機密性の判断に文書の類似性分析を利用することができる。
【００１６】
本発明の前記の目的、特徴および利点、ならびに他の目的、特徴および利点は、添付の図面に示した本発明の好ましい実施の形態に関する以下のさらに詳しい説明から明らかになるであろう。添付の図面においては、異なる図であっても同一参照符号は同一部分を指している。図面は必ずしも縮尺どおりではなく、本発明の原理を示すことに重点がおかれている。
【発明を実施するための最良の形態】
【００１７】
＜システム環境の概要＞
図１は、データ類似性発見システム１００を高度に概念化した図である。クライアント・コンピュータ１０２およびサーバ・コンピュータ１０４（利用される場合）が、ユーザの作業を継続的に監視し、データ・ファイルまたは価値ある情報を包含する文書ファイルのようなその他「ディジタル資産」についての情報を収集する。監視されるイベントには、コンピュータのオペレーティング・システム（ＯＳ）ならびにそのユーザによって変更（生成、コピー、移動、削除、編集、または合体）された文書についての情報の検出および記録のみが含まれる。この情報は、文書配布経路（ＤＤＰ）１５０と称されるデータ構造として表わされ、通常は有向グラフとして実現される。有向グラフにおける頂点は文書を表わし、有向グラフにおける辺は文書間の履歴的な関係（historic relationship）を記述する。ＤＤＰ１５０は、ファイルおよびそれらのチャンク（ひとまとまりのデータ群）に関するその他の情報とともに、データベースに保存される。
【００１８】
多くの場合において、ＯＳおよびネットワーク・プロトコル・アーキテクチャによって、全文書間の履歴上の関係をシステム１００が再構築するのが妨げられる。特に、ユーザが電子メールの添付として文書を受信してディスクに保存した場合、既存の電子メール・プロトコルは、組織的ネットワークの別のワークステーションでのファイルの起源（文書の起源）までさかのぼって当該ファイルを追跡するアプリケーションをサポートしていない。このような場合、システム１００は、受信した文書を既存の文書のデータベースに対して照会するように、類似性検出エンジン（ＳＤＥ）１６０（以下で詳しく説明する）を使用することができる。次いで、システムは照会結果を使用して、ＤＤＰ１５０を最初に構築する。
【００１９】
ＳＤＥ１６０は、システムで利用できる文書の「チャンク」のデータベースを維持する。ＳＤＥ１６０は、これらのチャンクのデータを高度に圧縮された階層構造表現１７０に変換する。この階層構造表現１７０は、チャンク間の類似性を近似的に示して使用するのに最適な形式である。さらに、ＳＤＥ１６０は、チャンクの出所についての情報を文書チャンク・データベース１７５内に保持する。
【００２０】
本システムは、単一のスタンドアロンのローカル・マシン１０２上で動作するように構
成でき、この場合、ＤＤＰ１５０、ＳＤＥ１６０、および階層構造１７０はすべてこのローカル・マシン１０２に存在する。しかしながら、システムを企業全体にわたるデータの管理またはセキュリティ解決手段として実装できることを理解すべきである。この場合、クライアント装置１０２およびサーバ１０４は構内通信網および／またはインターネットワーク接続１０６を介して接続される。このようなシステムにおいて、インターネット１０８のような外部のネットワークへの接続も可能であることより、企業の外でファイルが生成されて、かつ／または企業の外に分配される。
【００２１】
ネットワーク化された環境において、ＤＤＰ１５０、ＳＤＥ１６０、および階層構造１７０といった各構成要素が、通常は複数のクライアント１０２およびサーバ１０４および／またはサーバ・クラスタに分散される。これより、ＳＤＥ１６０はローカル・マシン１０２上の文書の階層化データベース１７０による表現を保持し、分散によってサーバ１０４上、および／またはサーバ１０４のクラスタ上に同一の圧縮された表現を保持できる。クラスタおよび／または分散型の実装において、ローカルＳＤＥ１６０が新規に受信した文書に対する照会に応答できないとき、ローカルＳＤＥ１６０はサーバＳＤＥ１０４に照会を行なう。次いで、ユーザが新規文書を生成したとき、または既存の文書を変更したとき、ローカルＳＤＥ１６０がサーバＳＤＥ１０４を更新する。更新がサーバＳＤＥ１０４に届くと、すぐに他のクライアント・ワークステーション上で動作する他のローカルＳＤＥ１６０による照会が利用可能になる。クライアント１０２がネットワーク１０６に接続されていない状況（例えば、ラップトップのユーザがオフィスを離れて旅行中の場合など）においては、ネットワーク接続が回復されるときまで通信要求が延期されて待ち行列に入れられる。
【００２２】
ＤＤＰ１５０およびＳＤＥ１６０は多数のさまざまなアプリケーション１２０において使用される。このようなアプリケーションの一例は、文書の使用についてのアカウンタビリティの境界を使用点（使用時点および使用場所）において確立するために、データ・セキュリティ・アプリケーションが使用される。このアカウンタビリティ・モデルは、権限を与えられたユーザによる文書へのアクセスを追跡できるだけでなく、さらに重要なことには、機密に属する文書のコピーを周辺機器またはネットワーク接続を介してアクセスまたは移動しようとする企てを監視することができる。このようにして、機密に属する知的財産または他の情報を配布もしくは記録しようとする企て、あるいは他に考えられる権限を悪用するイベントを管理または防止するために、ＳＤＥ依存セキュリティ・アプリケーション１２０が使用される。
【００２３】
透過システムのイベント・モニタ１８０と呼ばれるシステム構成要素が、アプリケーション１２０のエージェントとして動作する。モニタ１８０は、クライアント１０２上で動作するオペレーティング・システム（ＯＳ）とエンドユーザ・アプリケーション１９０との間に介装されている。モニタ・プロセス１８０は、ファイル・システム１９２、ネットワーク・インターフェイス１９４、ポート１９６、および／またはシステム・クリップボード１９８への読み書き動作を検出するために、センサまたはシム（Shim）を有する。これらモニタ・プロセス１８０のセンサは、ローカル・ファイル・サーバには見ることも制御するもできない装置にユーザがアクセスするときに常に生じうる、考えられる不正なイベントを検出するために使用されてもよい。これらのイベントには、コンパクト・ディスク読み書き（ＣＤ−ＲＷ）ドライブ、携帯情報端末（ＰＤＡ）、ユニバーサル・シリアル・バス（ＵＳＢ）記憶装置、無線装置、ディジタル・ビデオ記録装置などの管理不可能な媒体への文書の書き込みが含まれ、さらには文書の印刷も含まれる。他の疑わしいイベントは、外部ピア・トゥ・ピア（Ｐ２Ｐ）アプリケーション、外部の電子メール・アプリケーションを介しての文書の送信、インスタント・メッセージ（ＩＭ）アプリケーションの実行、およびインターネット１０８を介してのウェブサイトへの文書のアップロードなどのイベントを検出するために、ネットワーク・センサ１９４によって検出される。
【００２４】
イベントとともに通常集められるデータはイベントの種類およびＤＤＰ１５０内に保持したいと望まれる情報の種類による。このような情報は以下に示すものを含むことができる。
・ファイル操作の場合には、元／先のファイル名、操作の種類（オープン、書き込み、削除、名前の変更、ゴミ箱への移動）、装置の種類、最初および最後のアクセス時刻
・アプリケーションの呼び出しの場合には、呼び出しプロセスの識別、実行可能な名前、開始時間、終了時間、およびプロセス所有者
・ログオンまたはログオフなどのユーザ操作の場合には、時刻およびユーザの識別子（ＩＤ）
・ネットワーク操作の場合には、発信元／宛先のアドレス、ポートおよびホスト名、開始／終了時刻のスタンプ、送信および受信したバイト数、入力および出力のデータ伝送時間
・クリップボード操作の場合には、宛先のプロセスＩＤ、イベント開始時刻、関係するファイル名のフルパス
・リムーバブル記憶媒体へのアクセスのようなその他の高レベルの操作の場合には、ファイル名、装置ＩＤ、日時、転送されたバイト数、など
【００２５】
類似性発見システムがセキュリティ・システムの一部である場合、ローカル文書へのアクセス規制、リムーバブル媒体への書き込みの禁止、またはネットワーク・トラフィックの制限など、セキュリティ・アプリケーション１２０によって定義されているように、アクセス・ポリシーを受け取り行使するために、さらにモニタ・プロセス１８０を使用できる。
【００２６】
イベント・モニタ１８０処理は、アプリケーション１２０、ＤＤＰ１５０および／またはＳＤＥ１６０による処理を制限するために発見的方法（heuristics）を含んでもよい。典型的な発見的方法は、システム・ファイルへの標準的な呼び出しによって生成された多数の重要でないイベントを自動的にフィルタリングするための承認ファイル・フィルタを含んでもよい。例えば、多種多様な実行可能ファイルおよびダイナミック・ライブラリのオペレーティング・システムのファイル、フォント・ファイルなどは、同一のアプリケーションから繰り返しオープンされてアクセスされるのが、全くあたりまえである。
【００２７】
イベント・モニタ１８０およびそれとセキュリティ・アプリケーション１２０とのやり取りについてのさらなる詳細が本件出願と同時に継続中であるヴェルデーシス社（Verdasys,Inc.）による2003年11月12日付の「ディジタル資産の管理された配布（Managed Distribution of Digital Assets）」という名称の関連の米国特許出願第10/706,871号に含まれており、この出願は、その全体がここでの言及によって本明細書に組み込まれたものとする。しかしながら、ＳＤＥ依存アプリケーションの他の種類も本発明を利用できることを理解すべきである。
【００２８】
＜文書の系図を表現する文書配布経路（ＤＤＰ）１５０の生成＞
前記データ・セキュリティ・アプリケーション１２０の一部として、システムは、通常システム内における文書の流れについての履歴的なイベントの表現である文書配布経路（ＤＤＰ）１５０を生成する。ＤＤＰは通常、ノードすなわち頂点が文書の識別子であって、辺が文書間の履歴的な関係を記述する有向グラフであってもよい。このようなグラフを保持することによって、文書が生成、修正、および／またはアクセスされたときに、セキュリティ・ポリシーをリアルタイムに適用することができる。
【００２９】
さらに、文書の新しいバージョンとこれら文書の起源である出所元文書との類似性は、コンピュータ・システムの動作（例えば、文書の名前が変更、または文書がコピーもしく
は合体させられる場合は常に）を監視することによって明らかにされることもしばしばある。その他の場合（例えば、文書がネットワーク１０８から受信された場合）には、この類似性を、文書がデータベース内の既存の文書と同様であるか否かを判定することによってのみ明らかにできる。これは、ＳＤＥ１６０がセキュリティ・アプリケーション１２０の重要な一部となる状況の別の例である。
【００３０】
図２は、コンピュータ・システム内の文書の流れの経路の一例（シナリオ）、およびいかに典型的なＤＤＰ１５０を構築できるのかを示す図である。最初の時刻ｔ０において、システムは、データベース内の３つの文書（図２において、「文書」Ａ，ＢおよびＣと印されている）の起源について何の情報も有していない。しかしながら、セキュリティ・アプリケーションはＳＤＥ１６０を使用し、文書Ａ，ＢおよびＣの比較を実行して文書ＡおよびＣが類似しているという最初の結論を確立することができる。この結果が、図３に示すとおり、ＤＤＰ１５０の関係を有するデータ・セットのエントリ群におけるエントリ３０１として保存される。
【００３１】
さらに、文書Ａに高セキュリティ設定が付されているが、文書Ｃがそのように特定されていない場合、これらの文書が類似であるとＳＤＥ１６０が判断したことから、セキュリティ・アプリケーション１２０は、今や文書Ｃにも同一のセキュリティ設定を適用する。このように、新しい文書に直面したときにセキュリティ・アプリケーション１２０によって適用される一般的アルゴリズムは、類似文書の探索にＳＤＥ１６０を使用することになっている。類似の文書が見つけ出された場合、新しい文書に対して同一セキュリティ設定を仮定することができる。
【００３２】
時刻ｔ２において、イベント・モニタ１８０（図１）によってコピー・イベント２０２が検出され、文書Ａがコピーされて文書Ａ’として保存されたことが報告される。これが、さらなるエントリ３０２（図３を参照）としてＤＤＰ１５０に記録される。これは単なるコピー操作であるため、文書同士は類似であると推定され、２つの文書間の関係を完成するためにＳＤＥ１６０を使用する必要はない。
【００３３】
時刻ｔ３において、文書Ｂおよび文書Ｃを合体させて新しい文書ＢＣにするファイル合体イベント２０３が見られる。文書Ｃが高セキュリティのラベルを有するので、１つの結果は、このようなラベルが合体後の文書ＢＣに自動的に適用されるというものであろう。
【００３４】
時刻ｔ４において、イベント・モニタ１８０が、文書Ａの文書Ａ''への名称変更２０４を報告する。このイベントが、エントリ３０４（図３を参照）としてＤＤＰ１５０に保存される。
【００３５】
次に、ｔ５において、２つのイベントが生じるが、これは、イベント・モニタ１８０およびＳＤＥ１６０の他の部分の両者を備えなければフォレンジックに対して解読困難である状況の一例である。イベント２０５−１が、機密に属する文書Ａ''が編集プログラム（マイクロソフト・ワードなど）にロードされた旨を報告している。イベント２０５−３は、文書Ｄがインターネットから受信されて、やはりエディタ（編集プログラム）によってオープンされた旨を報告している。しかしながら、ＳＤＥ１６０は、現時点において文書Ｄの起源を知らない（実際には、この例では、ユーザが作業を行なっている文書Ｄは個人的な誕生日パーティの招待状であり、正確な判断をするためには、システムがこの文書を機密に属する文書に分類してはならない）。時刻ｔ６において、クリップボードについてのカット・アンド・ペースト操作のイベント２０６が見られる。しかしながら、マイクロソフト・ワードのカット・アンド・ペースト操作はセキュリティ・アプリケーション１２０の「適用範囲外」であるという事実により、解決すべき問題が存在している。したがって単にファイル名および保存操作を追跡するだけで文書の系図を辿るのは困難である。こ
れより、検出された操作の範囲が、セキュリティ・アプリケーション１２０には知らされない。
【００３６】
ｔ７において、イベント・モニタ１０８が文書Ｅへの保存操作を見つけ、時刻ｔ８において、文書Ｅがインターネットを介して送信されるというイベント２０８をイベント・モニタ１８０が報告する。このユーザは、機密に属する文書Ａ''からの情報を文書Ｅとして保存して送信し、セキュリティを損なったか？あるいは、このユーザは、単に文書Ｄから誕生日の招待状用の文書Ｅを生成しただけか？
【００３７】
ここで、文書Ａ''と文書Ｅ、および文書Ｄと文書Ｅの比較を要求するＳＤＥ１６０の結果によって、セキュリティ分類の精度を大きく向上させることができる。文書Ｅが文書Ｄにきわめて類似するとの報告が返されたならば、これは低セキュリティのイベントであって違反は生じておらず、インターネット転送の動作の続行が許可される（そして／あるいは、報告はされない）。しかしながら、文書Ｅが文書Ａ''に類似するのであれば、違反が生じていると考えられ、セキュリティ・アプリケーションが、企業のセキュリティ・ポリシーに規定されているとおりに適切な処理を行なう。低リスクのイベントを誤って高リスクのイベントに分類してしまうことは、このような誤りが多数の誤警報につながり、セキュリティ・システムの運営コストを大きく膨大させてしまうため、一般に納得できるものではない。
【００３８】
これらのイベントを記録する適切なエントリ３０６，３０７および３０８（図３参照）がＤＤＰ１５０に入力され、新規ドキュメントＤおよびＥがどこから由来したのかについての履歴、および文書Ｅが送り出されたという事実が記録される。
【００３９】
時刻ｔ８において、いずれかのアプリケーションから保存イベント２０９が検出される。このイベント２０９では、古いファイルである文書Ｃ’と同一の名前を有する新しいファイルに別のデータが保存される。ここでも、同一ファイル名を有するファイルは同一セキュリティ分類に属すると単に仮定するのではなく、文書Ｃ’の中身をデータベースと比較して文書Ｃ’を分類するために、ＳＤＥ１６０のエンジンを使用することができる。
【００４０】
時刻ｔ９において、企業のセキュリティ部門が所有情報漏洩の報告を受信したため、フォレンジック調査が要求された。このような調査は、調査人がＤＤＰ１５０の情報を利用できるのであれば、大幅に簡略化され、より正確に行なうことができる。したがって、企業の外部への機密情報の配布を阻止するようにシステムが構成されていなくても、適切なログおよび報告が一旦もたらされると、後の調査によってこのような漏洩を発見し、違反者に対して法的手段に訴えることができる。
【００４１】
ＳＤＥ１６０は、また、２つのファイルの比較の結果として、類似性の程度（実際の数字）を報告することができる。次いで、この数字が使用されて、さらに／あるいはＤＤＰに保持される。したがって、新規文書Ｅが文書Ａ''に６０％類似し、文書Ｄに３２％類似していると例えばＳＤＥ１６０が報告する場合、この情報も、いかに文書が作成されたかについてフォレンジックを推測するうえで重要でありうる。
【００４２】
文書から文書への類似性の程度は、好ましくは２つの文書内の「チャンク」の総数に対する類似するチャンクの数にもとづいて計算される（このようなアルゴリズムの１つについての詳細な説明は、後述されている）。ファイルの一方が入手不可能であり、このファイルに対する類似性を他のファイルに対する既知の類似度にもとづいて計算しなければならない場合、確率論に共通の公式を推定として使用してもよい。例えば、入手できない文書Ａの文書Ｂに対する類似度がＳＡＢであると分かっており、文書Ｂの文書Ｃに対する類似度がＳＢＣであると分かっている場合、文書Ａと文書Ｃとの間の類似度は、
【００４３】
【数１】
0004667362.tif 000002
【００４４】
であると推定できる。この公式より、入手不可能なファイルＡおよび照会されたファイルＣに対する類似度が、既知であるファイルの数が多くなれば、より大幅に正確になりうる。
【００４５】
＜ＳＤＥ１６０によって使用されるデータの圧縮された内部表現＞
次に、ＳＤＥ１６０がいかに２つの文書が類似であるか否かを判断するかについて説明する。ＳＤＥ１６０の現実の実装は、いくつかの要件を満足していなければならない。通常は、上述した目的のためには、むしろ非類似の情報であっても類似していると考えられるべきである（例えば、大きく変更された文書でも、元の文書に類似していると考えられるべきである）。今や、一般的なユーザが取り扱う情報の量はきわめて大きくなる可能性があり、システム間での大量のデータの転送がきわめて高速に実行可能であることもしばしばであるため、ＳＤＥ１６０は、コンピュータ的にきわめて効率的かつ正確でなければならない。ＳＤＥ１６０に必要なメモリ量およびディスク空間量は、ユーザに対して透過であるという要件を満足するため、きわめて限られた量である必要がある。
【００４６】
効率的なＳＤＥ１６０の実装における１つの一般的所見は、２つのバイナリ・データ・ストリームから取り出される同一サイズの２つのチャンクについて、一方のチャンクに存在する長い一連のバイトが他方のチャンクの長い一連のバイトとほぼ一致する（必ずしも正確に一致していなくてもよい）ならば、２つのチャンクは通常は類似であると考えられる。数学的には、このような類似度を示す量は、２つのチャンク間の「共分散」であってもよい（共分散の計算のために各チャンクから取り出されたバイトの対は二次元のデータ点であると考えられる）。ここに記載したＳＤＥ１６０の実装において、望ましいチャンクのサイズは、１キロバイト（KBt）が一般的な値である可変のパラメータである。この数値はシステムのパラメータであり、ＳＤＥ１６０についての所望の速度と正確さの間のトレードオフ、保持しなければならない情報の量、および典型的な文書のサイズなどに応じて、より大きくすることも、より小さくすることも、可能である。
【００４７】
典型的な動作の例（シナリオ）には、このように２つ以上のチャンクを含むデータ・ストリームを伴い、さらに別個に、このデータ・ストリームが比較されるチャンクのセット（おそらくは大きなセット）を伴う。目標は、ストリームからのチャンクに類似するチャンクがデータ・セット中に存在するか否かを見出すことにある。「部分文字列検索（substring search）」または「編集回数（number of edits）」などの伝統的なアルゴリズムは、これらがチャンクのデータ・セットに対して、ストリームのすべてのチャンクをすべての文字位置（character position）から出発して照会するため、実用的ではない。伝統的なアルゴリズムが所定のストリームからの互いに重なり合わないチャンクのみを照会するように改良された場合、データ・ストリームを分割するときに分割の位置シフトすなわち「位相」を正確に推測することができないため、類似チャンクの対をほとんど発見できないであろう。
【００４８】
好ましい実施の形態においては、代わりに、ＳＤＥ１６０がチャンクのフーリエ係数の絶対値を比較し、かなりの大きさで互いの位相がずれているチャンクについて、チャンク間の類似性を見つけ出す。以下に説明する階層的チャンク表現を使用して、ＳＤＥ１６０は正確な一致を特定するためにフーリエ係数の全セットの約１０％しか必要とせず、それらを低い正確さの形式（それぞれにつき１バイト、あるいは半バイト）で維持することが
できる。
【００４９】
したがって、データ比較のために効果的に利用されるデータの圧縮された内部表現は、データの短いチャンクのフーリエ係数の絶対値の部分集合であって、低い正確さの形式で維持される。
【００５０】
＜クラスタリング・アルゴリズムおよびインデックス・アルゴリズム＞
このように、フーリエ変換に基づくチャンク比較は、ＳＤＥ１６０（図１を参照）の核心をなす手法である。これより、元となる既存の文書ファイル（例えば、前述した文書Ａ，Ａ’，Ａ''，Ｂ，Ｃなど）が、小さなチャンク（それぞれ約１KBt）に分割され、これらのフーリエ係数のいくつかがチャンク・データベース１７５に保持される。新しいデータ・ストリームを受信すると、ＳＤＥ１６０はこのストリームをチャンクのセットに分解し、これらをデータベース１７５と比較する。ＳＤＥ１６０は、新しいデータ・ストリームとデータベース上のチャンクを構成している既存の文書との間の類似度に関して比較の結果を返す。
【００５１】
図４は、高いレベルにおけるＳＤＥ１６０の処理の代表的なフローチャートである。このように、第１の工程４００はデータのストリームを受信する工程であり、次いで工程４１０でストリームのチャンクを決定する。工程４２０において、チャンクのフーリエ係数が計算され、これらのうちのいくつかのみが保持される一方で、残りは廃棄される（詳細は後述）。次いで、一連の工程４３０が、各チャンクのフーリエ係数をデータベース内のファイルのチャンクのフーリエ係数と比較するように、順序だてた方法で実行される。その後、工程４４０において類似度を割り出す。
【００５２】
通常のファイル・システムが分割されて得られるチャンクの数はきわめて多く、これらのフーリエ係数のデータベースへの効率的な照会手段、および圧縮されたフォーマットでデータを保持する方法が必要とされる。特に、簡単なＳＱＬに基づく照会では、わずかに少数のフーリエ係数の大きな相違を、たとえ他のフーリエ級数の良好な一致が勝っていても、一致していないと判断するため、類似のデータ・チャンクを突き止めることができない。しかしながら、ＳＤＥ１６０は、いわゆる最近隣探索（nearest neighbor search）を利用して、少数のフーリエ係数の不一致を重大な相違であるとはみなさない。
【００５３】
すなわち工程４２０において、チャンクの係数で構成されるベクトル・セットの効率的な表現は、係数の大クラスタのツリー状構造であり、クラスタ・サイズが十分に類似するチャンクのグループを表現するのに十分なだけ小さくなるまで、より小さいクラスタに分割される。このクラスタリング・アルゴリズムはフーリエ級数のセットについてのハッシュ関数の概念を実装し、データベースのインデックスと多少類似する役割を果たす。
【００５４】
工程４２０のさらなる詳細に関し、最初にＳＤＥ１６０、照会されたチャンクを含むクラスタを見つけるために、最も高いレベルのクラスタを検索する。この処理は、クラスタ階層の底部で一致するチャンク（またはチャンクのセット）に到達するまで、あるいは類似のチャンクが存在しないと判断されるまで続けられる。こうして、ＳＤＥ１６０は、類似の文書を同一のクラスタ・セットにマッピングすることができ、これより、クラスタにフィットするすべてのチャンクの座標ではなく、クラスタそのものの座標のみを保持することによって、高レベルのデータ圧縮が達成される。
【００５５】
以下で示すとおり、単一のチャンク・ルックアップ・クエリが、存在するのであれば、類似チャンクの発見を保証することが、ＳＤＥ１６０の全体性能にとって極めて重要というわけではない。一致するレコードの取り出しが保証されている決定論的なデータベース・アーキテクチャに反して、ＳＤＥ１６０の照会は、多くの場合において正しい一致を見
つけるが、すべての場合とは対照的に、その他の場合には形式的に誤った不一致または「発見されず」の応答を返す。このような緩やかな要件の環境においては、照会を速度について大幅に最適化することができる。
【００５６】
階層内のクラスタは、かなりの程度の重なり合いを有しているため、類似のクラスタが発見される可能性があるツリーのすべての分岐枝を下るということは、照会を大部分の分岐枝を下って移動させることになり、（単純なクラスタ・セットと比べて）階層を備えることの利益を無にしてしまう。本照会は、確率論的推定を使用して、所定チャンクをいずれのクラスタが最も受け入れる可能性があるかを判断し、これらのクラスタを通過する階層の分岐枝のみを探索するように進める。この多分岐枝確率論的サーチは、必要とされる正確さと性能との間に設定可能なバランスをもたらし、これがリアルタイムで文書の類似度を判断するために不可欠である。
【００５７】
ＳＤＥ１６０が、元々の照会の他にさらに２つの類似の照会を開始するのであれば、工程４４０における照会の正確さは大きく改善される。これらの照会においては、元のチャンクの最初の半分または最後の半分のいずれかからのデータのみがフーリエ変換に使用され、使用されない半分からのデータはゼロに設定される。照会されたチャンクに類似するチャンクがシステムに存在する場合、それは照会された半チャンクの一方を含む（重なり合うのではなく）であろう。また、それらの類似度はかなり大きいであろう。３つの照会のうち、最も類似するチャンクのセットを取り出した照会が、最も信頼できる結果を生成するであろう。
【００５８】
単一のクラスタ内にファイル・システムからの多数のチャンクが属する可能性があり、またそれが通常であるため、単一のチャンク照会では、いずれの文書が所定のチャンクに類似するチャンクを含むかを判断することができない。したがって、ＳＤＥ１６０が所定のファイルまたはストリームのいくつかの連続するチャンクについて実行する複数の照会４３０からの結果を照会解釈手順４４０が統合し、所定のファイルに最も類似するいくつかのファイルの名称（または識別子）を出力する。さらにＳＤＥ１６０は、照会結果の正確さを裏打ちするため、結果についての確率論的大きさを出力する。この大きさが、文書配布経路内における類似度の推定として、あるいは情報セキュリティ・システムにおける確定性因子として使用される。
【００５９】
＜多種内容ファイルからのデータ抽出＞
いくつかの共通する種類のファイル（例えば、オフィス文書）は、異なる性質の情報を異なるストリーム中に別個に保持している。ストリームごとにもとづき、この情報を分離する方法がいくつか存在する。チャンク・データベースのルックアップをより高速にするためにこれらの手段を利用することができる。例えば、テキスト情報は、画像のデータベースと比較する必要がなく、所定の実装例では、ある種の情報（例えば、ダウンロードしたウェブページ）を機密に関すると判断しないよう決定できる。
【００６０】
＜好ましい実施の形態の設計に関する数学的側面＞
フーリエ係数のスパース表現を使用する比較処理の設計の目的は、ストリームからのデータを、ＳＤＥ１６０が利用できるすべての文書からのすべてのチャンクを含む予め定められたデータベースと比較できるアルゴリズムを設計することにあった。２つのｎ次元データベクトルｘおよびｙを考える（必ずしも同じ長さでなくてもよい）。これらのベクトルの畳み込みは、以下のとおり定義される。
【００６１】
【数２】
0004667362.tif 000003
【００６２】
添字ｑの関数としての畳み込みが、あるｑにおいて平均に比べて大きい値を有する場合、これらベクトルの２つのチャンクは、おそらくは互いに類似している。畳み込みが複数のピークを呈するということは、ベクトルｘおよびｙの中に一致するチャンクが多数存在し、これら一致するチャンクの対に関し、これらが属するベクトルの始点からのオフセットの距離が異なっているということを意味する。
【００６３】
図５は、畳み込み結果の一例である。図示の信号を生成するために、以下のｍａｔｌａｂ（計算機言語の一種）スクリプトを使用した。
clear
n=1000;
a1=rand(n,1);a2=rand(size(a1));
1part=n/4;n1part=1;n2part=n1part+1part-1;
j1part=n1part:n2part;j2part=n/2+(n1part:n2part);
a2(j1part)=a1(j1part);a2(j2part)=a1(j2part+100);
a1=a1-mean(a1);a2=a2-mean(a2);
c=conv(a1,flipud(a2));plot(ｃ)
【００６４】
関数ｃｏｎｖ（ｘ，ｙ）、さらに正確にはそのピークの高さが、ベクトルｘとｙの間の類似度のよい指標である。この関数の以下の特徴を、アルゴリズムの構築に使用することができる。ベクトルｘ、ｙ、およびｃｏｎｖ（ｘ，ｙ）のフーリエ・スペクトルについて検討する。畳み込み定理によれば、
【００６５】
【数３】
0004667362.tif 000004
【００６６】
であり、ここでＦは、ベクトルへのフーリエ分解の適用を示している。この式は、上記式の両辺をｅｘｐ（ｉｋｑ）で乗算し、ｑについて合計し、総和を右辺に入れ換えることによって容易に確認できる。フーリエ係数は、一般に複素数である。絶対値をとり、次いで上記式の両辺の平均を計算すると、以下のとおりである。
【００６７】
【数４】
0004667362.tif 000005
【００６８】
ここで、│・│は、複素数の絶対値を取ることを意味しており、＜・＞は、平均値を取り除いた後の平均化を表わしている。ベクトルｘおよびｙが両者の間の位相シフト無しで一致する場合、式の右辺の平均は、同一の振幅および長さを有する任意のベクトル間について得られる平均よりも大きくなるであろう。しかしながら、たとえｘおよびｙの間に位相シフトが存在しても、（ｘとｙの大きさの差と対照的に）これらのフーリエ係数の位相の差に反映され、この位相シフトの影響は絶対値をとることによって除去される。
【００６９】
この公式が、比較アルゴリズムの数学的基礎の１つを提供する。類似のいくつかのアルゴリズムの説明について、例えばエム・ジェイ・アタラー（M.J.Atallah）、エフ・チザ
ク（F.Chyzak）、ピー・デュマス（P.Dumas）の「近似文字列マッチングのためのランダム化アルゴリズム（A Randomized Algorithm for Approximate String Matching）」、http://algo.inria.fr/dumas/AtChDu99/を参照されたい。
【００７０】
この式は、その右辺において、２つのベクトルのフーリエ係数の絶対値間の相関の公式ときわめてよく似ている。したがって、２つのストリームの比較の問題は、それらのフーリエ係数間の相関係数の計算の問題に帰する。我々のニーズにとって十分な正確さで相関係数を推定するためには、文書のチャンクに保存されたデータのフーリエ係数のすべてを保持する必要はない。我々の実験から、実際に必要とされるのは、すべてのフーリエ係数のうちのわずか約１０％であることが明らかになっている。これらほとんどが必要とされない係数の指標を選択するために異なる手法も試みて、より低周波数の係数が保持される手法が、最もよい結果を示した。
【００７１】
ｃｏｎｖ（ｘ，ｙ）のピークを見つけることに比べると、このアプローチの利点の１つは、ある長さ（小さな素数の倍数、好ましくは２の整数乗）のベクトルのフーリエ係数を、ベクトルの長さとほぼ線形である時間で計算できるという事実による。高速フーリエ変換として知られている一般的なアルゴリズムは、ベクトルの長さがｎである場合、時間Ｏ（ｎｌｏｇｎ）で動作する。このアルゴリズムを適用することによって、２つのベクトルの畳み込みのフーリエ係数の平均の計算を、時間がベクトルのサイズの平方に比例する畳み込みそのものの直接計算よりも、大幅に高速にすることができる。
【００７２】
ベクトルの係数間の相関の計算の問題について、さらに詳しく検討する。成分が正規分布（ガウス分布）している２つの任意のベクトルを考える。これらの相関係数ｒの分布関数を調べる。ベクトルが十分に長い長さｋである（この記述の目的において、ｋ＞１０を十分に大きい数字であると考えることができる）場合、量の分布関数ｙが、分散Ｄ＝１／（ｋ−３）でほぼ標準的であることが、統計学から知られているのが事実である。
【００７３】
【数５】
0004667362.tif 000006
【００７４】
ジー・エイ・コーン（G.A.Korn）、ティー・エム・コーン（T.M.Korn）の「科学者および技術者のための数学ハンドブック（Mathematical Handbook for Scientista and Engineers）」、マグロウヒル社（McGraw-Hill）、1968年を参照されたい。
【００７５】
この記述は、上記の条件のもとでは、２つのベクトルについて測定された相関係数が理論値とは異なっており、相違はベクトルの長さとともにほぼ指数関数的に減少することを意味している。
【００７６】
ある１つのチャンクに保存されたデータのフーリエ係数がいかに分布（正規または他の何らかの分布）しているか明らかでないため、文書のチャンクに保存されたデータのフーリエ成分の相関係数に上記の記述は直接当てはまらない。実際、我々は、現実の多くの場面において、文書のチャンクに保存されたデータのフーリエ係数の分布関数が正規ではないことを見出している。我々は、単純な技法（外れ値を放棄するなど）を適用することが、フーリエ係数の分布関数をほぼ正規に促進させるのに十分であることを見出した。
【００７７】
今や、「文書の２つのチャンクが類似であるか」という質問が、一般的な統計学の枠組みの中に置かれる。我々は、「２つの文書のチャンクが関係していない」という統計的仮
説を考査することを意図した。文書のチャンクに保存されたデータのフーリエ係数の絶対値が正規分布しているという仮定のもとで、この仮説は「上記導入された量ｙが、ゼロ平均および１／（ｋ−３）の分散を有する正規分布に属している」に帰する（ｋは、使用するフーリエ係数の数である）。この考査は、統計学においても最も一般的かつよく検討されているものの１つである。この問題の再構成は、我々に「ファイルのチャンクが類似である」および「ファイルのチャンクに保存されたデータのフーリエ係数がよく相関している」という２つの定性的表現を交換可能に使用させる。
【００７８】
我々の結論は、文書のチャンクを利用可能なチャンクのデータベースに対して考査するために、所定のチャンクおよびデータベース内のすべてのチャンクについて「２つのチャンクは関係ない」という仮説を考査することを選択してもよい。しかしながら、ファイル・システムのうちでＳＤＥ１６０に公開されている部分およびチャンクのデータベース１７５（図１参照）がきわめて大きいかもしれないので、この考査は法外に高価となる。したがって、我々の課題に対して、「すべてのチャンクを考査する」方法すなわち「サーチし尽くす」方法よりも効率的な技法を発明する必要がある。この件への対処の試みにおいて、我々は、文書のチャンクのツリー状の"world inside the world"構造（図６を参照）を設計した。決定的に重要なことは、相関の関係がほぼ推移的であり、ａがｂと相関し、ｂがｃと相関するならば、ａはｃと相関するというものである。換言すれば、ベクトルの小クラスタの中心が、ある所定のベクトルとの強い相関を示さないのであれば、その所定のベクトルは、クラスタ内のあらゆるベクトルとの間に強い相関をもたない可能性が高い。
【００７９】
その要素がＳＤＥ１６０に公開された文書のチャンクに保存されたデータのフーリエ係数であって、ユニタリＬ２ノルムを有するように正規化されている空間を考える。我々は、この空間内の要素の類似度の大きさとしてベクトル間の相関を使用する。
【００８０】
推移性の近似関係を念頭において、図６に示すようなクラスタの階層構造が生成される。以下の説明は、所定のチャンクに類似するチャンクを求める照会に対してこの構造６００がいかに「すべてをチェックする」方法すなわち網羅的サーチよりも効率的な照会をサポートするのかについての詳細な説明である。特に、照会は、照会されたベクトルと相関するクラスタの中心を通過する構造６００の分岐枝に掘り下げられる。
【００８１】
次に、上記クラスタの階層構造６００を構築するために我々が使用したクラスタリング方法を説明する。一般に、クラスタリングの問題はＮＰ困難（現実的な次元で解けない）であり、進んだアルゴリズムの適用を必要とする（K-means法、遺伝的アルゴリズム、など）。我々の場合には、すべてのチャンクをメモリ内に同時に保持することさえ不可能である（そのメモリのデータをきわめて多数回閲覧することは言うまでもなく不可能である）ことが、従来からのクラスタリング技法の使用の可能性を無くしてしまうきわめて厄介な問題である。我々は、階層の構築の全プロセスにおいて１回のみ、または最大でも数回のみ、すべてのチャンクを監視することができるオンライン・アルゴリズムを構築する必要がある。
【００８２】
我々は、ディッテンバッハ・エム（Dittenbach,M）、ラウバー・エー（Rauber,A）、およびメルクル・ディー（Merkl,D）の「成長する階層自己組織化マップを使用するデータ内階層構造の発見（Uncovering the Hierarchical Structure in Data Using the Growing Hierarchical Self-Organizing Maps）」、ニューロコンピューティング（Neurocomputing）、2002年、48巻（1〜4）：199〜216頁、http://www.ifs.tuwien.ac.at/〜mbach/ghsom/に記載の「成長する階層自己組織化マップ（Growing Hierarchical Self-Organizing Maps）」法に類似するアルゴリズムの構築を選択する。
【００８３】
このアルゴリズムにおいて、すべてのクラスタは当該クラスタに新しい要素が挿入されたときに空間内における位置を変化させるが、このような挿入は、要素がクラスタ内に収まる場合にのみ生じる（このようなクラスタが存在しない場合、構造によって別のクラスタが自動的に生成される）。我々の構造において我々が使用するクラスタは所定の半径を有する球形状である。同一階層レベルにあるクラスタの半径は同一であり、階層の上部から底部へと次第に小さくなる。底部レベルではない１つのクラスタから階層のいくつかの分岐枝が発生する。すべての分岐枝は共通の底部に達する。要素は、構造の底部レベルにおいて登録される。我々の理論の構築のために、我々は「クラスタが要素に類似している」という表現を、より厳密な「クラスタが、要素に類似している中心を備えている」という表現に代えて使用する。クラスタの半径は、そのメンバーがその中心で有する最小の相関係数に対応している。
【００８４】
クラスタが少数の要素しか有していない場合、要素が挿入されたときにクラスタは大きく移動して空間内における適切な位置を「学習」する。クラスタの歩幅は、クラスタが成長するにつれて小さくなり、最終的にクラスタは、事実上不動になる。我々は、新しい要素が挿入されたときに、常に中心がクラスタに属するすべての要素の平均であるように、クラスタの中心の座標を更新することを選択する。ひとたびクラスタが元の位置から移動すると、当該クラスタの要素が依然クラスタ内にあるかどうか保証することがもはやできない。しかしながら、中心極限定理によれば、新たなチャンクが挿入されたときに初期位置からのクラスタ中心の移動の総距離は、いくつのチャンクが属しているかにかかわらず有限である。この理由から、要素がそれら要素の属するクラスタの範囲外になることはまれである。アルゴリズムが、階層構造６００を定期的に調べて、クラスタの動きを定期的に調べ、各クラスタの要素が受け入れ先クラスタの範囲から外れる可能性を推定する。次いで、前記可能性があるしきい値（典型的には１０−３）を超えたクラスタの要素を自動的に再チェックする。
【００８５】
われわれの構造６００のクラスタ６１０は、程度の大きな重なり合いを互いに有しているようである。構造６００内に挿入しようとする要素（すなわち、フーリエ係数のセット）６２０に対して、当該要素を任意のクラスタに挿入するのに十分高い類似度のクラスタ６１０が複数存在することもしばしばである。これら複数のクラスタのすべては当該要素に対して一定の類似度を呈する。したがって、それらの中からいずれのクラスタが挿入しようとする要素にとって最も適した受け入れ先であるかを判断しなければならないことが、しばしばある。我々は、このロジックをこの章でさらに明らかにする。
【００８６】
我々の階層構造６００は、すべてのツリー状構造に共通であるいくつかの問題を抱えている。第１に、これらの構造は、これらが適切にバランスしている場合、すなわち所定のレベルから出発して各分岐枝の要素の数が大まかに同一である場合にのみ、上手く機能する。簡潔なツリー構造では、（要素が挿入されるときに）オンザフライのバランスが可能であるのに対し、より複雑なツリー構造では、定期的なバランス再調整手順が必要になる。我々の構造も、このような手順を必要とし、ワークステーション１０２（図１参照）が待機状態の間にＳＤＥ１６０が適切な方法を呼び出す。
【００８７】
次に、図７のフローチャートを参照して、所定の要素について十分に高い相関を呈するクラスタのセットを求めて要素のクラスタの階層構造を照会する手順を説明する。データの掘り出しにおいて、このような手順は「類似度サーチ」と称される。ここに検討する手順の目標は、探し歩く構造の分岐枝の数を可能な限り少なくしつつ（したがって、照会を満足するために要する時間を減らす）、サーチ条件を満足するクラスタを可能な限り多く突き止めることにある。形式的に、我々のサーチ条件は常に、「所定の要素とクラスタ中心との相関が、指定のしきい値よりも大である」というものである。このしきい値ｒｑの値は、この手順の外部パラメータであり、いかに選択されるのかも含めて、この章で後述
する。このアルゴリズムの全体的目標に沿って、この手順の正確さは、確率論的な条件で表現され、すなわちこの手順は、所定の条件を満足するクラスタをすべて突き止めることを保証しない。
【００８８】
照会される要素をｑとする（「照会のベース」とも称される）。階層構造において最上位レベルに位置するすべてのクラスタ（図６を参照）を
【００８９】
【数６】
0004667362.tif 000007
【００９０】
とし、それらの中心を
【００９１】
【数７】
0004667362.tif 000008
【００９２】
とする。この手順は、最初に階層構造の最上位レベルを調べる（図７を参照、工程７０１）。幾何学的検討によれば、あるクラスタ
【００９３】
【数８】
0004667362.tif 000009
【００９４】
においてｑと高い類似度を呈する要素ｘを発見する可能性は、
【００９５】
【数９】
0004667362.tif 000010
【００９６】
とｑとの間の相関係数に従って増加する。
ｘについてｃｏｒｒ（ｑ，ｘ）＞ｒとすると、
【００９７】
【数１０】
0004667362.tif 000011
（近似）
【００９８】
【００９９】
この公式が、われわれの照会手順の基礎である。この手順の次の工程７０３は、すべての
【０１００】
【数１１】
0004667362.tif 000012
【０１０１】
についてｑとの相関係数を計算する。
【０１０２】
次の工程７０５は、これらの係数の値に従ってクラスタを並べ替える工程である。次の工程７０７において、ｑとの高い類似度を呈する要素の収容先である可能性が最も高い
【０１０３】
【数１２】
0004667362.tif 000013
【０１０４】
からクラスタの部分集合
【０１０５】
【数１３】
0004667362.tif 000014
【０１０６】
を選択する。
【０１０７】
【数１４】
0004667362.tif 000015
【０１０８】
内に入るクラスタと他のクラスタとの間の区別に使用される可能性しきい値Ｐｑは、この手順の外部パラメータである。このパラメータは、通常はＰｑ〜１０−２〜１０−４の範囲で選択され、これがこの手順の速度と正確さの間の受け入れ可能なトレードオフであることを我々は見出している。パラメータＰｑは、ｑとの高い類似度を呈する要素をこの手順が報告しない確率である。この手順は、階層構造の最上位レベルにおいてＰｑに相当する相関しきい値
【０１０９】
【数１５】
0004667362.tif 000016
【０１１０】
を自動的に計算する。この手順が選択するクラスタの部分集合
【０１１１】
【数１６】
0004667362.tif 000017
【０１１２】
は、さらに詳細に調べる価値のある階層構造中の分岐枝の部分集合を特定する。
【０１１３】
次の工程７０９において、この手順は階層構造の次の（より低い）レベルを調べる。構造の当該レベルに属し、かつこの手順の最初の工程で進入する価値があると見出された分岐枝の部分集合に属するすべてのクラスタが集められる。
【０１１４】
このようにして、工程７０９においてクラスタの部分集合
【０１１５】
【数１７】
0004667362.tif 000018
【０１１６】
が形成され、
【０１１７】
【数１８】
0004667362.tif 000019
【０１１８】
の代わりに
【０１１９】
【数１９】
0004667362.tif 000020
【０１２０】
を使用して前述の分析が適用される。この分析の結果として、この部分集合
【０１２１】
【数２０】
0004667362.tif 000021
【０１２２】
が、ｑとの高い類似度を呈するクラスタによって形成される、さらなる
【０１２３】
【数２１】
0004667362.tif 000022
【０１２４】
に帰し、必要とされる相関しきい値
【０１２５】
【数２２】
0004667362.tif 000023
【０１２６】
の値が計算される。
【０１２７】
これらの工程は状態７１２で手順が階層構造の底部レベルに達したことが発見されるまで繰り返され、このレベルにおいてｒｑ（この手順の外部パラメータ、前記を参照）よりも大きいｑとの相関を中心が呈するクラスタがこの手順の結果として報告される（工程７１４）。
【０１２８】
すでに述べたように、要素ｑが階層構造に挿入されるとき、階層構造のレベルｌにおいて、当該要素を収容しうる２つ以上のクラスタ
【０１２９】
【数２３】
0004667362.tif 000024
【０１３０】
が存在することがしばしばである。これらのクラスタは、
【０１３１】
【数２４】
0004667362.tif 000025
【０１３２】
であり、ここでｒｌは、レベルｌにおけるクラスタ半径を定める相関しきい値である。ｑを収容するのに適したクラスタのこの部分集合の中から、ｑに対してもっとも適切な収容先あろうクラスタを選択しなければならない。次に、いかにクラスタ選択を決定するかについて説明する。
【０１３３】
分岐枝上の他のクラスタとともに、要素ｑを収容する階層構造の底部レベルのあるクラスタ
【０１３４】
【数２５】
0004667362.tif 000026
【０１３５】
を選択すると仮定する（ここで、Ｌは階層の底部レベルを表わしている）。次いで、すでに述べたとおり照会のベースとして行なわれる同一要素ｑについての類似度照会を実行すると仮定する。以下の条件が、ｑの最も適切な収容先として底部レベルのクラスタを指定する。そのクラスタは、引き続く類似度照会が、同一要素を最も高い確度で見つけることができるクラスタである。最もｑに類似するクラスタは階層の各レベルにおいて見つけられ、その分岐枝がｑの収容先として選択される「貪欲な（greedy）」挿入ロジックが、必ずしも策定された基準を満足しないことに注意すべきである。実際、最上位のレベルにおいてあるクラスタがｑにきわめて類似している場合、貪欲なロジックは、このクラスタをｑの収容先として選択し、このクラスタから出発する分岐枝のみを下ってより低いレベル
の収容先クラスタの選択を続けるであろう。しかしながら、選択された分岐枝に属し、かつ我々の構造の次のレベルにおいて最もｑに類似しているクラスタ
【０１３６】
【数２６】
0004667362.tif 000027
【０１３７】
が、ｑとかなり非類似である場合がありうる（また、そのような場合が多い）。特に、
【０１３８】
【数２７】
0004667362.tif 000028
【０１３９】
の場合を考えてみよう。ここでｒ１および
【０１４０】
【数２８】
0004667362.tif 000029
【０１４１】
の意味は、すでに述べたとおりである。このような状況下において、引き続く照会手順は
【０１４２】
【数２９】
0004667362.tif 000030
【０１４３】
をｑの収容先としての可能性があると考えず、したがって階層内でｑを見つけることができないであろう。要素挿入手順の設計において考慮に入れるべき他の重要な側面は、クラスタに新規要素が挿入されたときにすべてのレベルのクラスタが移動するという点である。その結果、ある時点において要素ｑに対して良好な候補のように思われる階層の分岐枝は、構造が成長するとともに良好な候補ではなくなるかもしれない。
【０１４４】
所定の要素ｑを挿入するのに階層構造の最も適切な分岐枝を突き止めるために我々が使用を好む方法を以下の内容で説明する。
【０１４５】
我々は最初に、階層の底部においてｑに類似するクラスタのグループを見つけるために、類似度照会手順を実行する。
【０１４６】
次いで我々は、平均して、階層のすべてのレベルにおいてｑに最も類似している分岐枝に属するクラスタをこのグループ内で見つける。我々は、ｑと階層のすべてのレベルにおいて分岐枝を構成しているクラスタの中心との間の重み付けしたＬ２距離の二乗平均平方根としてこの平均を定義する。この計算における重み付けは、先の照会手順において
【０１４７】
【数３０】
0004667362.tif 000031
【０１４８】
に対応する半径である。
【０１４９】
すでに述べたとおり、工程７１４（図７参照）における要素の類似度の照会は、次に通常、照会された要素（照会ベース）に類似するクラスタのセットを返す。このセット内の各クラスタは、種々の文書からのデータ・チャンクを含む。したがって、ただ１つの照会では、いずれの単一文書が照会されたチャンクを収容しているかを判断するのに十分ではない。しかしながら、ＳＤＥ１６０は、ベースとして文書からの連続するチャンクとの複数の類似度照会を実行でき、次いで、これら照会の結果にもとづいていずれの文書が所望のチャンクを含むかを推論することができる。この目標を満足するために、チャンクが含まれる階層のクラスタにそのチャンクをマッピングした文書チャンク・データベースをＳＤＥ１６０は維持している。ひとたび未知の文書の連続するチャンクに対していくつかの類似度照会をＳＤＥ１６０が実行し、これら連続するチャンクに類似するクラスタのセットが得られると、別の手順が実行される。この手順は、文書チャンク・データベースにアクセスし、その連続するチャンクが、類似度照会によって発見されたものと同一のクラスタに含まれ、かつ同一順序である文書を引き出す。これらの文書が、照会された未知の文書と類似であるとして報告される。後処理の正確さは、照会された未知の文書のチャンクの数に従って指数関数的に増加する。これにより、前処理された文書の１つと当該文書との類似度を高い確度で発見するためには、その文書の少数の連続するチャンクのみを調べればよい。
【０１５０】
次に、我々の典型的な類似度照会手順（上記参照）において、われわれの手順が引き出すクラスタとの照会のベースの類似度しきい値を指定するパラメータｒｑについて検討する。照会の後処理を簡単にするために、ベースに偶発的に類似する可能性と同程度のクラスタをこの手順が取り出すことがないように十分に高い値をこのパラメータは有する必要がある。同時に、この照会の最終の目標である要素に類似するチャンクを収容するクラスタをこの手順が取り出してしまうことを防止できるので、このパラメータを高くしすぎてもいけない。したがって、照会の後処理手順がいかに実装されるかに応じてこのパラメータは決まり、さらに階層構造の空間の次元（すなわち、含まれるフーリエ・モードの数）によって決まる。我々の実験においては、７０の次元が我々の目的にとって適切であると見出されており、パラメータｒｑは、偶発的クラスタ取出しが約１％であるように選択される。
【０１５１】
以上、本発明を、本発明の好ましい実施の形態を参照しつつ詳しく示して説明したが、添付の特許請求の範囲に包含される本発明の技術的範囲から離れることなく、形態や詳細においてさまざまな変更が可能であることを、当業者であれば理解できるであろう。
【図面の簡単な説明】
【０１５２】
【図１】本発明による類似性発見システムの構成要素を示す図である。クライアント側においては、類似性検出エンジン（ＳＤＥ）がＳＤＥ依存アプリケーションからの文書チャンク類似度照会をサポートする。このため、ＳＤＥは文書管理に関連するシステム・イベントを監視し、文書ファイルの階層構造表現を保持する。所定のファイルの階層構造の構成要素はデータ「チャンク」のフーリエ成分として参照され、その識別子（ＩＤ）ならびに元々のファイルにおける位置が備え付けの文書チャンク・データベースに保存されている。クライアント側のデータベースも文書配布経路（ＤＤＰ）を保存している。選択的に、企業全体にわたるサーバをクライアントのＳＤＥからのデータを集めるために使用でき、ローカルＳＤＥではサービスできないサービス照会を提供する。
【図２】コンピュータ・システムにおける文書の流れの経路の一例（シナリオ）を示す図である。時刻ｔ０において、ＳＤＥは文書の出所について何ら情報を有しておらず、元々の階層構造ならびに文書配布経路（ＤＤＰ）を生成するためにファイル・システムをスキャンする。文書の新しいバージョンとそれらの起源の元文書との類似性は、コンピュータ・システムの動作を監視するだけでは網羅できないこともありうる（例えば、文書の名前が変更されるか、またはコピーもしくは統合された場合）。その他の場合（例えば、文書がネットワークから受信された場合）には、この類似性はＳＤＥへの照会によって最もよく明らかにされる。
【図３】文書配布経路（ＤＤＰ）の表現のリレーショナル・データベースのエントリの一例を示す図であり、文書間の関係、およびいかにしてこれらが生成されたのかを記録している。
【図４】ＳＤＥが類似文書を特定するのに使用するアルゴリズムの高レベル流れ図である。
【図５】文書チャンク階層の最下位レベルの成分をそれぞれ表わす２つのベクトルの畳み込みを示す図である。ここで、畳み込みはそれぞれがベクトル長さの４分の１である２つの相対的にオフセットした共通部分、ならびにランダム・ノイズの２つのピークを有している。
【図６】データ・ファイルを表わすためにＳＤＥによって使用される階層構造のアーキテクチャを示す図である。この構造は、文書のチャンクに保存されたデータのフーリエ係数のベクトル空間を表現している。より高いレベルのクラスタはそれぞれ、より低いレベルのクラスタ集合への参照を保持している。底部レベルのクラスタが前記フーリエ係数空間の構成要素を収容している。
【図７】所定の構成要素（「照会のベース」と称される）に類似するクラスタについて階層構造を照会するために使用される操作のフローチャートである。
【図１】
0004667362.tif 000032
【図２】
0004667362.tif 000033
【図３】
0004667362.tif 000034
【図４】
0004667362.tif 000035
【図５】
0004667362.tif 000036
【図６】
0004667362.tif 000037
【図７】
0004667362.tif 000038