(57)【特許請求の範囲】
【請求項１】
ネットワーク上に存在するリソースの中から、Ｐ２Ｐ検索によってユーザが所望するリソースを検索するリソース検索方法であって、
各リソースの内容が、長さが可変の意味ベクトルにより意味ベクトル空間によって表現され、前記各リソースのインデックス情報が、当該リソースの前記意味ベクトル空間内での位置にマッピングされており、
前記ネットワーク上のピアが、前記意味ベクトル空間を部分空間に分割して部分空間ごとに当該部分空間に含まれる前記インデックス情報を分散管理し、
前記ユーザが所望するリソースを検索する場合に、前記ユーザに対応するピアであるユーザピアが、検索対象のリソースに対応したクエリ意味ベクトルを含むクエリを生成して前記クエリを前記ネットワークに送信し、前記ネットワークに含まれる各ピアが、前記ネットワーク内において前記意味ベクトル空間内で前記クエリ意味ベクトルによって表わされる方向に前記クエリを転送し、
前記意味ベクトル空間内で目的とする位置に対するピアに前記クエリが到達した場合に、当該ピアが、前記意味ベクトル空間内で前記クエリ意味ベクトルに近い意味を有するリソースのインデックス情報を有するピアに前記クエリをフラッディングで転送し、
前記クエリをフラッディングで転送されたピアが、クエリにヒットするリソースのインデックス情報を、前記ユーザのピアに直接転送する、
リソース検索方法。
【請求項２】
前記リソースの意味ベクトルと前記クエリ意味ベクトルとの内積が所定の値を超える範囲を検索範囲として、前記検索範囲内にのみ前記クエリがフラッディングで転送される、請求項１に記載のリソース検索方法。
【請求項３】
前記リソースのインデックス情報が転送された前記ユーザのピアは、
当該インデックス情報を用いてリソース保持ピアから対応するリソースを取得し、
前記取得したリソースの満足度を評価して当該満足度を前記リソース保持ピアに送信し、
前記リソース保持ピアは前記満足度に基づいて、前記リソースの意味ベクトルの更新を行う、
請求項１または２に記載のリソース検索方法。
【請求項４】
前記リソースの意味ベクトルをＲとし、更新後の前記リソースの意味ベクトルをＲ’とし、前記クエリ意味ベクトルをＱとし、前記満足度をＳとして、
前記リソースの意味ベクトルＲは、前記満足度Ｓの単調増加関数でありかつ絶対値が１以下の関数ｇ(Ｓ)とｈ(Ｓ)とを用いて、
Ｒ’＝｛Ｒ＋ｇ(Ｓ)（|Ｒ|Ｑ−Ｒ）｝（|Ｒ|＋ｈ(Ｓ)）／|Ｒ|
を満たすように更新される、請求項３に記載のリソース検索方法。
【請求項５】
ネットワーク上に存在するリソースの中から、Ｐ２Ｐ検索によってユーザが所望するリソースを検索するリソース検索システムであって、
Ｐ２Ｐネットワークと、
前記Ｐ２Ｐネットワークに参加するピアと、
を有し、
前記各リソースの内容が、長さが可変の意味ベクトルにより意味ベクトル空間によって表現され、前記各リソースのインデックス情報が、当該リソースの前記意味ベクトル空間内での位置にマッピングされ、前記意味ベクトル空間は部分空間に分割され、部分空間ごとに当該部分空間に含まれる前記インデックス情報が前記ピアによって分散管理され、
前記ユーザが所望するリソースを検索する場合には、前記ユーザに対応するピアであるユーザピアが、検索対象のリソースに対応したクエリ意味ベクトルを含むクエリを生成して前記クエリを前記ネットワークに送信し、
前記ネットワークに含まれる各ピアは、前記ネットワーク内において前記意味ベクトル空間内で前記クエリ意味ベクトルによって表わされる方向に前記クエリを転送し、
前記意味ベクトル空間内で目的とする位置に対するピアに前記クエリが到達した場合に、当該ピアは、前記意味ベクトル空間内で前記クエリ意味ベクトルに近い意味を有するリソースのインデックス情報を有するピアに前記クエリをフラッディングで転送し、
前記クエリをフラッディングで転送されたピアは、クエリにヒットするリソースのインデックス情報を、前記ユーザピアに直接転送する、
リソース検索システム。
【請求項６】
前記リソースの意味ベクトルと前記クエリ意味ベクトルとの内積が所定の値を超える範囲を検索範囲として、前記検索範囲内にのみ前記クエリがフラッディングで転送される、請求項５に記載のリソース検索システム。
【請求項７】
前記リソースのインデックス情報が転送された前記ユーザピアは、当該インデックス情報を用いて、対応するリソースを保持するリソース保持ピアから当該リソースを取得し、前記取得したリソースの満足度を評価して当該満足度を前記リソース保持ピアに送信し、
前記リソース保持ピアは前記満足度に基づいて、前記リソースの意味ベクトルの更新を行う、
請求項５または６に記載のリソース検索システム。
【請求項８】
前記リソースの意味ベクトルをＲとし、更新後の前記リソースの意味ベクトルをＲ’とし、前記クエリ意味ベクトルをＱとし、前記満足度をＳとして、
前記リソース保持ピアは、前記満足度Ｓの単調増加関数でありかつ絶対値が１以下の関数ｇ(Ｓ)とｈ(Ｓ)とを用いて、
Ｒ’＝｛Ｒ＋ｇ(Ｓ)（|Ｒ|Ｑ−Ｒ）｝（|Ｒ|＋ｈ(Ｓ)）／|Ｒ|
を満たすように前記リソースの意味ベクトルの更新を実行する、請求項７に記載のリソース検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上のリソースをユーザがＰ２Ｐの手法によって検索する際に、トラフィックを抑えつつネットワーク内で効率的にクエリを転送するための方法及びシステムに関する。
【背景技術】
【０００２】
近年、ＩＴ技術の進歩により、数多くのリソース（ウェブ(web)サービス、ウェブページ、ネットワークデバイスなど）がネットワークを介してアクセス可能となっている。ユーザがネットワーク上のリソースを利用するためには、ユーザが所望とするリソースがどこに存在するかを検索する技術が必要となる。従来は、リソースの検索のために、リソースの内容や所在などを集中して管理するサーバをネットワークに設け、ユーザは、このサーバに対してアクセスし所望のリソースの所在を検索するようにしていた。しかしながら、ネットワーク、特にインターネット上のリソース数は膨大であり、また、リソースの追加や削除、変更が極めて頻繁に行われることから、サーバとして極めて大掛かりなものを必要とする。そこで、サーバを用いることによる耐障害性の低下を防ぎ、サーバコストを低減し、また、不要な管理を排除することを目的として、Ｐ２Ｐ（ピア・ツー・ピア）の手法を用いた検索技術が発展してきている。Ｐ２Ｐ検索技術では、ネットワークに参加するピアと呼ばれるノード同士が、集中管理用のサーバを設けることなく、クエリ（質問語；query）を相互に転送し合い、クエリに合致するピアが検索結果を質問元に返すことで、検索が実施される。
【０００３】
典型的なＰ２Ｐ検索技術であるグヌーテラ(Gnutella)では、ネットワーク内においてフラッディング(Flooding)を用いてクエリを転送するため、キーワードにはマッチするが適切でないリソースの大量発見したり（クエリに対する低適合率）、あるいはネットワークにおけるトラフィックが爆発的に増大するという問題がある。また、Ｐ２Ｐネットワークでは、ウイルスなどの悪質リソースも多く存在する。
【０００４】
そこで、ユーザが所望するリソースと意味的に近いリソース群のみにクエリを伝播させるとともに、同じピアへの複数回のクエリ転送を遮断でき、かつ、悪質なリソースを発見しないようなＰ２Ｐ検索技術が望まれている。
【０００５】
複数のテキストを対象とするテキストベース検索において、検索指示語に対して意味的に近い文書を検索する方法として、ベクトル空間法（非特許文献１）がある。また、Ｐ２Ｐネットワークにおいて効率的にクエリを転送することが可能な技術に、ＣＡＮ(Content-Addressable Network)（非特許文献２）がある。
【非特許文献１】松尾  比呂志、内野  一，“意味属性に基づくテキストデータべ−ス検索方式”、情報処理学会論文誌、第３２巻、第９号、１１７２−１１７９頁（１９９１）
【非特許文献２】Sylvia Ratnasamy, Paul Francis, Mary Handley, Richard Karp and Scott Shenker, "A Scalable Content-Addressable Network," SIGCOMM '01, pp. 161-172 (August 27-31, 2001, San Diego, California, USA)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、インターネットなどのネットワーク上に存在するリソースを検索するための技術として、Ｐ２Ｐ検索技術に基づくとともに、ネットワーク内においてユーザが所望するリソースと意味的に近いリソース群のみにクエリを伝播させるとともに、同じピアへの複数回のクエリ転送を遮断でき、かつ、悪質なリソースを発見しないような技術が求められている。
【０００７】
本発明の目的は、上記の課題を解決し、意味的に近いリソース群のみに効率的クエリを伝播する、新たなリソース検索方法を提供することにある。
【０００８】
本発明の別の目的は、上記の課題を解決し、意味的に近いリソース群のみに効率的クエリを伝播する、新たなリソース検索システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のリソース検索方法は、ネットワーク上に存在するリソースの中から、Ｐ２Ｐ検索によってユーザが所望するリソースを検索するリソース検索方法であって、ネットワークにおいて、各リソースの内容が、長さが可変の意味ベクトルにより意味ベクトル空間によって表現され、各リソースのインデックス情報が、そのリソースの意味ベクトル空間内での位置にマッピングされており、ネットワーク上のピアが、意味ベクトル空間を部分空間に分割して部分空間ごとにその部分空間に含まれるインデックス情報を分散管理し、ユーザが所望するリソースを検索する場合に、ユーザに対応するピアであるユーザピアが、検索対象のリソースに対応したクエリ意味ベクトルを含むクエリを生成してクエリをネットワークに送信し、ネットワークに含まれる各ピアが、ネットワーク内において意味ベクトル空間内でクエリ意味ベクトルによって表わされる方向にクエリを転送し、意味ベクトル空間内で目的とする位置に対するピアにクエリが到達した場合に、そのピアが、意味ベクトル空間内でクエリ意味ベクトルに近い意味を有するリソースのインデックス情報を有するピアにクエリをフラッディングで転送し、クエリをフラッディングで転送されたピアは、クエリにヒットするリソースのインデックス情報を、ユーザのピアに直接転送する。
【００１０】
本発明のリソース検索システムは、ネットワーク上に存在するリソースの中から、Ｐ２Ｐ検索によってユーザが所望するリソースを検索するリソース検索システムであって、Ｐ２Ｐネットワークと、Ｐ２Ｐネットワークに参加するピアと、を有し、各リソースの内容が、長さが可変の意味ベクトルにより意味ベクトル空間によって表現され、各リソースのインデックス情報がそのリソースの意味ベクトル空間内での位置にマッピングされ、意味ベクトル空間は部分空間に分割され、部分空間ごとにその部分空間に含まれるインデックス情報がピアによって分散管理され、ユーザが所望するリソースを検索する場合には、ユーザに対応するピアであるユーザピアが、検索対象のリソースに対応したクエリ意味ベクトルを含むクエリを生成してクエリをネットワークに送信し、ネットワークに含まれる各ピアは、ネットワーク内において意味ベクトル空間内でクエリ意味ベクトルによって表わされる方向にクエリを転送し、意味ベクトル空間内で目的とする位置に対するピアにクエリが到達した場合に、そのピアは、意味ベクトル空間内でクエリ意味ベクトルに近い意味を有するリソースのインデックス情報を有するピアにクエリをフラッディングで転送し、クエリをフラッディングで転送されたピアは、クエリにヒットするリソースのインデックス情報を、ユーザピアに直接転送する。
【００１１】
本発明において、クエリがフラッディングで転送される範囲は、例えば、リソースの意味ベクトルとクエリ意味ベクトルとの内積が所定の値を超える範囲を検索範囲として、その検索範囲内とすることができる。
【００１２】
また本発明においては、検索の品質の向上を図り、また、悪意のあるリソースを排除することを目的として、リソースのインデックス情報が転送されたユーザピアが、そのインデックス情報を用いて、対応するリソースを保持するリソース保持ピアからそのリソースを取得し、取得したリソースの満足度を評価してその満足度をそのリソース保持ピアに送信し、リソース保持ピアが、満足度に基づいて、リソースの意味ベクトルの更新を行うようにしてもよい。
【００１３】
リソースの意味ベクトル（リソース意味ベクトルＲ）は、その更新後のものをＲ’とし、クエリ意味ベクトルをＱとし、満足度をＳとし、満足度Ｓの単調増加関数でありかつ絶対値が１以下の関数ｇ(Ｓ)とｈ(Ｓ)とを用いて、例えば、
Ｒ’＝｛Ｒ＋ｇ(Ｓ)（|Ｒ|Ｑ−Ｒ）｝（|Ｒ|＋ｈ(Ｓ)）／|Ｒ|
を満たすように更新される。
【発明の効果】
【００１４】
本発明では、テキストの検索に用いられるベクトル空間法を拡張して非テキストのリソースを検索できるようにし、さらにＣＡＮの手法を適用することにより、Ｐ２Ｐ検索において意味的に近いリソース群のみに効率的にクエリを転送することが可能になる、という効果が得られる。これにより発見したリソースのクエリに対する高い適合率と、ネットワークにおけるトラフィックの削減を実現する。また、リソース意味ベクトルＲの更新を行うことによって、ウイルスなどの悪質なリソースは検索の際に発見されないようになるため、ユーザは適切なリソースのみ発見することができるようになる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。
【００１６】
図１は、本発明が適用されるネットワークの構成の一例を示している。
【００１７】
インターネットなどの物理ネットワーク５０上にＰ２Ｐネットワーク５１が構成されており、Ｐ２Ｐネットワーク５１に対して多数のピア５２が参加している。ピア５２は、それぞれが、リソース保持ピアとしてリソースを保持することができるものである。また、ピア５２は、後述の説明から明らかなように、それぞれ、リソースのインデックス情報を保持するインデックス保持ピアとして機能できるものである。なお、本実施形態では、リソースとそのリソースのインデックス情報とが同じピアに保持されるとは限らない。むしろ、後述するようにＰ２Ｐネットワークに対して意味ベクトル空間がマッピングされており、リソースのインデックス情報は、そのインデックス情報に対応したリソースに対応するリソース意味ベクトルＲに対応して、Ｒの値に応じたピアに格納されるものである。ここでインデックス情報とは、リソースの内容を端的に示すための情報と、そのリソースがどのピアに格納されているかを示す情報（エンドポイント情報）である。本実施形態では、リソースの内容を端的に示すための情報として、リソース名が使用される。  次に、本発明に基づくリソース検索方法の前提となる、ベクトル空間法について説明する。
【００１８】
テキスト検索に用いられるベクトル空間法では、文書の内容を、文書内の単語を基にして、長さを１に正規化した意味ベクトルで表わし、ベクトルの距離で文書の類似性を判定する。意味ベクトルにおいて、ベクトル軸は単語の意味属性に対応し、各成分の値は対応する意味属性の文書に対する重みを表わしている。すなわち、検索対象の文書がベクトル空間にマッピングされているため、検索したいと所望する文書の意味ベクトル周辺を重点的に探すことで、効率的な検索を行うことができる。
【００１９】
このようなベクトル空間法を、リソースのＰ２Ｐ検索に適用する際の課題として、以下の３点が挙げられる：
（ａ）検索対象が非文書であるリソースであるため、検索対象からはベクトル成分の抽出を行えない；
（ａ’）テキスト検索の典型的な分野である新聞記事検索の場合などとは異なり、Ｐ２Ｐネットワーク内には、ウイルスなどの悪質リソースが蔓延している；
（ｂ）Ｐ２Ｐネットワークにおいては各ピアが多くの計算資源や記憶資源を持つことは期待できないため、各ピアにインデックス情報を大量に保持させることはできない。
【００２０】
本実施形態では、テキスト検索のためのベクトル空間法を以下のように拡張することによって、これらの課題を解決した：
（Ａ）リソースのファイル名及びユーザの評価値を用いてベクトル成分を定める；
（Ａ’）リソースの質を表わすためにベクトル長さを１に正規化しない。さらに、ベクトル長さもユーザ評価値を用いて変更できるようにする；
（Ｂ）上述したＣＡＮを参考にして、Ｐ２Ｐネットワーク５１に参加する各ピア５２によって、ベクトル空間を分散して管理する。
【００２１】
まず、上述の（Ａ）と（Ａ’）に関連して、意味ベクトル成分の学習について説明する。
【００２２】
通常のテキスト検索であれば、例えばｈｔｍｌ(hypertext markup language)文書中の単語頻度から意味ベクトル成分の抽出が可能である。しかしながら、本実施形態の場合、検索対象が、文書ではなくリソースであるため、リソース中の単語頻度から意味ベクトル成分を抽出する、といった手法を用いることができない。一般に、Ｐ２Ｐリソース共有では、リソースの名前は複数のキーワードからなっている。また、リソースに対するメタデータの付与に手間がかかるため、リソースの名前を構成するキーワード以外のメタデータは
、リソースに付与されていないのが一般的である。そのため、リソースの意味ベクトルを決めるためには、これらのキーワードしか使うことができない。
【００２３】
そこで本実施形態では、意味ベクトルを構成する各成分のうち値が非零な成分を決めるため、リソース名から得られる単語意味属性を用い、また、ベクトル成分値にユーザ群の評価により変動する評価値を用い、評価によりベクトル成分値の学習を行うことにした。
【００２４】
まず、ベクトル成分の値が０でない成分を決める。リソースのファイル名から複数の単語を抜き出し、その単語を日本語意味属性（Ｎ種）にマッピングすることで（例：単語が「同僚」、「メンバ」、「座員」ならば、意味属性は「同士」にマッピングされる）、０でない成分が決まる。なお、日本語の単語意味属性は、例えば３０００種で、全体で１２段のツリーである。しかしＰ２Ｐネットワークでのクエリ転送の実用性の観点から考えた場合、ベクトル次元数は２０程度とすることが好ましく、ツリー４段目（２１種）程度の高いレベルの意味属性を用いることが推奨される。
【００２５】
次に、意味ベクトルにおけるベクトル成分値について説明する。ベクトル成分は［０，１］（すなわち０以上１以下の値）とし、初回登録時には、成分が非零な軸の数をｎとして、非零な成分の値は全て１／ｎ0.5とする。ベクトル成分値を固定したままではリソースの内容を十分表わしているとはいえないため、本実施形態では、ベクトル成分は、ユーザがリソースを発見した際に評価する満足度Ｓ［０，１］により、更新（アップデート）される。
【００２６】
本実施形態では、リソースごとにリソース意味ベクトルＲを定義するとともに、リソースを検索したいユーザ（すなわちリソースに対応付けられたコンテンツを欲するユーザ）のクエリも意味ベクトル（クエリ意味ベクトルＱ）として表わす。Ｐ２Ｐネットワークにおいてリソース意味ベクトルＲは、対応するリソースを提供するピアに保持される。そして後述するように、意味ベクトルＲと意味ベクトルＱとの合致度に基づいて、リソースを検索する。またこのようにして検索され取得されたリソースについてのユーザの満足度Ｓに基づいて、先に述べたように、リソース意味ベクトルＲが更新される。クエリ意味ベクトルＱの長さ（ベクトルとしての絶対値）は１に固定する。
【００２７】
以下、図２を用いて、リソース意味ベクトルＲの更新手法を説明する。
【００２８】
まず、第１のステップとして、ユーザは、その欲するコンテンツを表わすクエリ意味ベクトルＱを用いて、Ｑ・Ｒ＞Ｒｓを満たす範囲を検索し、リソースのインデックス情報を取得する。言い換えれば、Ｑ・Ｒ＞Ｒｓを満たすリソース意味ベクトルＲを検索して、対応するリソースのインデックス情報を取得する。ここで、Ｒｓは検索範囲の広さを示す（スカラー）量で、リソース・シュヴァルツシルト半径と呼ぶことにする。また、「・」は、ベクトルの内積を表わしている。
【００２９】
次に、第２のステップとして、ユーザは、取得したインデックス情報を用いて対応するリソースを取得または利用し、取得または利用したリソースに対する満足度Ｓを評価して、そのリソースを提供したピア（リソース提供ピア）に満足度Ｓを送信する。
【００３０】
その後、第３のステップとして、評価をリソース提供ピアは、満足度Ｓに応じて、リソース意味ベクトルＲを、
｛Ｒ＋ｇ(Ｓ)（|Ｒ|Ｑ−Ｒ）｝（|Ｒ|＋ｈ(Ｓ)）／|Ｒ|
に更新する。
【００３１】
ここで、ｇ(Ｓ)とｈ(Ｓ)は、ユーザの満足度Ｓの単調増加関数であり、かつ、絶対値が１以下の関数である。Ｓが低いときは、ｇ(Ｓ)、ｈ(Ｓ)は負であり、Ｓが高いときは正である。図２に示した例は、意味ベクトル空間が３次元ベクトル空間であるとして、満足度Ｓが高かった場合にベクトルＲがベクトルＱに近づく形で更新されることを示している。
【００３２】
本実施形態では、このようなユーザ評価に基づくリソース意味ベクトルの更新を繰り返すことによって、リソースはユーザ群の評価を学習することになり、そのリソースに適したリソース意味ベクトルＲが自動的に浮かび上がってくることになる。また、ウイルスのような悪質なリソースはいつも悪い評価を受けるため、上の式に従い、対応するリソース意味ベクトルの長さがだんだんと短くなる。そのため、いずれ、リソース意味ベクトルの長さがＲｓよりも小さくなり、いかなる場合にもＲ・Ｑ＜Ｒｓとなって、そのような悪質なリソースは検索されないようになる。
【００３３】
次に、本発明のもう１つの特徴である、ＣＡＮトポロジの利用について説明する。
【００３４】
非特許文献２に開示されるＣＡＮは、リソース名に対してハッシュ関数を適用し、その結果を高次元ハッシュ空間にマッピングし、さらにその空間をＰ２Ｐネットワークのピアで分割して、リソースインデックスを管理する方法である。すなわち、高次元ハッシュ空間を複数の部分空間に分割し、各部分空間ごとにその部分空間を管理するピアを設定し、そのようなピアにクエリを転送する方法である。本実施形態では、リソース名に対してハッシュ関数を適用する代わりに上述したようにリソース意味ベクトルを生成し、また、リソースはハッシュ空間ではなく意味ベクトル空間にマッピングされるが、その分割管理及びクエリルーティングの方法は、ＣＡＮでの方法をそのまま用いる。
【００３５】
そこで、意味ベクトル空間と、意味ベクトル空間の分散管理法について説明する。
【００３６】
上述したようにリソースは、Ｎ次元の意味ベクトルＲで表現される。意味ベクトルＲの各成分の値は、そのリソースがどれだけその成分の意味を含んでいるかを示す量である。例えば、もし、意味ベクトルの軸が、「数学」、「国語」、「理科」、「社会」の４つの軸だとすると、このとき意味ベクトルは４次元ベクトルということになるが、「整数論」というリソースは「数学」の要素しか持たないため、意味ベクトルは（１，０，０，０）で表わされる。一方、「経済学」というリソースは、「数学」と「社会」の両方の要素を持つため、意味ベクトルは、（０．７１，０，０，０．７１）のように、２つの軸の重ね合わせで表現できる。このように、一般に、リソースはＮ次元の意味ベクトルで表現できる。
【００３７】
各リソースの意味ベクトルがマッピングされたＮ次元空間を意味ベクトル空間と呼ぶ。
【００３８】
図３は意味ベクトル空間を示している。ここでは説明のため、Ｎ＝２すなわち意味ベクトル空間が２次元空間であるものとする。リソースＡ〜Ｃが、意味ベクトル空間上にマッピングされている。
【００３９】
このような意味ベクトル空間は、各ピアによって分割管理されている。Ｐ２Ｐネットワークに参加する各ピアの性能（処理能力）は、一般に、サーバよりも劣っているから、意味ベクトル空間の全体をひとつのピアで管理することは困難である。そこで、Ｐ２Ｐネットワークに参加する複数のピアによって（場合によってはネットワークに参加する全てのピアによって）、意味ベクトル空間を分散管理する。
【００４０】
図４は、図３に示した意味ベクトル空間を１６個のピアａ〜ｐによって管理する例を示している。意味ベクトル空間を等分割して、各ピアで管理している。具体的には、リソースＡのインデックス情報はピアｆに、リソースＢのインデックス情報はピアｌに、リソースＣのインデックス情報はピアｍに、登録されている。なお、リソース自体は、そのリソースのインデックス情報を登録しているピアとは別のピアに保持されていてもよい。Ｐ２Ｐネットワークでは、参加するピアごとに性能が異なる場合もあるので、性能の高いピアにはより大きな空間を管理させ、性能の低いピアは小さな空間を管理させるようにしてもよい。
【００４１】
また、Ｐ２Ｐネットワークでは、ピアは、サーバのように常時起動し稼動する存在ではなく、離脱したり新たに加わったりすることが考えられる。図５は、ピアの増減があった場合に、各ピアが管理する空間を変更することを説明している。例えば、図４に示すように意味ベクトル空間が分割されてピアａ〜ｆによって分散管理されているときに、ピアｆがネットワークから離脱する場合を考える。ピアｆは、ネットワークから離脱する前に、自分の管理する空間に登録されたインデックス情報をピアｅに渡し、これにより、ピアｅは、ピアｆが管理していた分の管理空間も合わせて管理する。また、ピアｑが新たに加わる場合は、ピアｍは、自分の管理空間の半分をピアｑに任せてその範囲のインデックス情報をピアｑに渡している。
【００４２】
図６は、ＣＡＮトポロジを用いて、クエリをルーチングしフラッディングすることを説明する図である。
【００４３】
最初に、検索条件が記述された検索クエリがユーザのピアにより生成される。クエリには、そのクエリに固有の番号が付与されるものとする。このクエリは、上述のようにクエリ意味ベクトルＱとして表わされるものであり、図６において破線の矢印で示されるように、意味ベクトル空間上のＱ方向にマルチホップで転送される。マルチホップでの転送の過程でクエリを受信したピアは、そのピア自身が持つリソースインデックス情報とクエリとをマッチングさせて検索を行うことはなく、単に意味ベクトル空間内でＱの方向に向け、隣接のピアにクエリを転送することだけしか行わない。このようにして、検索クエリは、Ｑを管理するピアまで到達する。
【００４４】
Ｑを管理するピアまで到達したら、次に、Ｑを管理するピアは、Ｑに意味的に近いインデックス情報Ｒ（リソース意味ベクトルＲ）を持つインデックス保持ピアに対し、図６において実線の矢印で示すように、そのクエリをフラッディングで転送する。フラッディングの対象となるエリア（意味ベクトル空間内における部分空間）は、ユーザが指定する検索範囲の広さ（リソース・シュヴァルツシルト半径）Ｒｓをもちいて、Ｑ・Ｒ＞Ｒｓとなるエリアである。この段階では、フラッディングによりクエリを受け取ったインデックス保持ピアは、自身の持つインデックス情報とクエリが合致するかをチェックする。もちろん、Ｑを管理するピア自身も、自身が持つインデックス情報とクエリとが合致するかをチェックする。
【００４５】
このようなＣＡＮトポロジの利用により、意味ベクトル空間の分割管理及びクエリのルーティング、フラッディングがスムーズにできる。特に、クエリのフラッディングのルールを以下のように定める：
（１）Ｑを管理するピアは、クエリを全ての隣接ピアに転送する。このピアをフラッディング元ピアと呼ぶ；
（２）各ピアは、意味ベクトル空間におけるｉ軸方向の隣接ピアからクエリを受け取ったピアは、そのクエリを、１，…，ｉ−１軸の各軸に沿って両方向の隣接ピアにクエリを転送し、また、ｉ軸方向に関しては、クエリを受け取った方向とは逆の方向にクエリを転送する；
（３）各ピアは、クエリを受け取るたびにそのクエリの番号をキャッシュし、既にキャッシュされている番号のクエリを再度受け取った場合には、それ以上、フラッディング転送を行わない；
（４）各ピアは、受け取ったクエリに記述された意味ベクトルＱと、自分が管理するリソースの意味ベクトルＲから、Ｑ・Ｒ＞Ｒｓの条件を満たすかどうかを計算し、この条件が満たされなくなったら、クエリをそれ以上転送しない。
【００４６】
このようなクエリのフラッディングに際してこのようなルールを採用することによって、同じピアへの複数回のクエリ転送を防ぐことができ、トラフィックの削減を行うことができる。
次に、以上説明したベクトル空間法の拡張とＣＡＮトポロジの使用とを利用した、本実施形態におけるリソース検索の手順について、図７を用いて説明する。
【００４７】
まず、図７中の番号１で示すように、各ピアは、意味ベクトルＲで表わされるその管理するリソースのインデックス情報を、意味ベクトル空間上のＲの位置に登録する。ここでインデックス情報には有効期限が設定されており、期限が切れたインデックス情報は、意味ベクトル空間から削除される。
【００４８】
次に、番号２で示すように、ユーザは、その欲するコンテンツに対応するリソースの詳細な条件、ユーザの使用するピアのネットワークアドレス、クエリ番号、及びクエリ意味ベクトルＱが記述されたクエリを、ユーザのピアからネットワークに送信する。その結果、上述したＣＡＮによるクエリルーティングによって、クエリはＱ方向にマルチホップで転送される。
【００４９】
転送の結果、目的とする位置にクエリが届くと、番号３で示すように、Ｑと近い意味のリソースのインデックスを保持するインデックス保持ピアに、クエリがフラッディングで転送される。クエリがフラッディングで転送される範囲（検索範囲）は、上述したように、リソースのインデックス情報に対応するリソース意味ベクトルＲがＱ・Ｒ＞Ｒｓを満たす範囲である。
【００５０】
クエリをフラッディングしたことにより、番号４に「応答」として示すように、検索範囲内で、クエリに記述された詳細条件（キーワードの部分一致など）に合致するリソースのインデックス情報が発見され、そのインデックス情報がユーザのピアに直接転送される。
【００５１】
インデックス情報が転送されたユーザは、番号５で示すように、取得したインデックス情報を用いて、リソースを保持するピア（リソース保持ピア）にアクセスし、対応するリソースを使用または取得する。
【００５２】
リソースの使用または取得ののち、番号６に「評価」として示すように、ユーザはそのリソースの満足度Ｓを判定して満足度Ｓをリソース保持ピアに転送する。
【００５３】
満足度Ｓを転送されたリソース保持ピアは、番号７で示すように、そのリソースに対応するリソース意味ベクトルＲを更新し、ベクトル空間に登録しなおす。図７に示す例では満足度Ｓが負であったので、意味ベクトル空間内においてＱに対して更新前の位置から遠ざかる方向にインデックス情報が更新されることになる。
【図面の簡単な説明】
【００５４】
【図１】本発明のリソース検索方法が適用されるネットワークの構成の一例を示す図である。
【図２】リソース意味ベクトルの更新手法を説明する図である。
【図３】インデックス情報の分割管理を説明する図であって、意味ベクトル空間を示す図である。
【図４】インデックス情報の分割管理を説明する図であって、意味ベクトル空間を等分割して管理する例を示す図である。
【図５】インデックス情報の分割管理を説明する図であって、ピアの増減があった場合に各ピアの管理する空間が変更されることの例を示す図である。
【図６】ＣＡＮトポロジーを利用したクエリのルーティングとフラッディングとを説明する図である。
【図７】本発明に基づくリソース検索方法の手順を説明する図である。
【符号の説明】
【００５５】
５０    物理ネットワーク
５１    Ｐ２Ｐネットワーク
５２    ピア
【図１】
0004445451.tif 000002
【図２】
0004445451.tif 000003
【図３】
0004445451.tif 000004
【図４】
0004445451.tif 000005
【図５】
0004445451.tif 000006
【図６】
0004445451.tif 000007
【図７】
0004445451.tif 000008