JP2014228975A - 検索装置、検索方法および検索プログラム - Google Patents

検索装置、検索方法および検索プログラム Download PDF

Info

Publication number
JP2014228975A
JP2014228975A JP2013106672A JP2013106672A JP2014228975A JP 2014228975 A JP2014228975 A JP 2014228975A JP 2013106672 A JP2013106672 A JP 2013106672A JP 2013106672 A JP2013106672 A JP 2013106672A JP 2014228975 A JP2014228975 A JP 2014228975A
Authority
JP
Japan
Prior art keywords
node
nodes
subgraph
candidate
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013106672A
Other languages
English (en)
Other versions
JP5964781B2 (ja
Inventor
靖宏 藤原
Yasuhiro Fujiwara
靖宏 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013106672A priority Critical patent/JP5964781B2/ja
Publication of JP2014228975A publication Critical patent/JP2014228975A/ja
Application granted granted Critical
Publication of JP5964781B2 publication Critical patent/JP5964781B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ノード検索において、高速かつ正確な検索結果を得る。【解決手段】検索装置100の部分グラフ構築部110は、問い合わせに用いるグラフGと、更新前のi回目の繰り返し計算前の部分グラフGi−1と、選択ノードSを入力とし、更新後のi回目の繰り返し計算後の部分グラフGiを出力する。ランダムウォーク確率計算部120は、更新後の部分グラフGiを入力とし、部分グラフGiにおける各ノードのランダムウォークの確率piを出力する。推定値計算部130は、各ノードのランダムウォークの確率piを入力とし、選択ノードSの推定値を出力する。候補ノード計算部140は、選択ノードSの推定値と、解ノードの個数kを入力とし、候補ノードLを出力する。決定ノード計算部150は、候補ノードLと、候補ノードLに対応する選択ノードSの推定値と、解ノードの個数kを入力とし、解ノードAを出力する。【選択図】図1

Description

本発明は、検索装置、検索方法および検索プログラムに関する。
近年、ソーシャルネットワークに代表されるように、大規模なネットワークの利用が進んでいる。そして、大規模なネットワークに対して、データマイニングや検索をおこなうシステムの重要性が増している。ネットワーク構成は、ネットワークを構築するコンピュータをノードとし、各ノード間の接続を示すリンクをエッジとするグラフデータとして表現できる。このため、ネットワーク構成をグラフデータとして取り扱うグラフデータベースに問い合わせをおこない、グラフのノードの検索、分類、解析などをおこなうことへの関心が高まりつつある。
例えば、ノードとしてのコンピュータがウェブサイトである場合に、ウェブページの重要度を決定するためのアルゴリズムとしてPageRankのアルゴリズムがある。このPageRankのアルゴリズムが発表されて以来、グラフデータにおけるノードのリンク関係に基づいてノードの類似度を用いる処理の重要性が増している。ノードの類似度は、グラフのリンク構造からノードの類似度を取り出す目的で用いられており、ノードの類似度を用いることによりグラフのノードを検索、分類、解析などをおこなうことができる。
従来から、ノードの類似度の計算手法として多くのものが提案されているが、Personalized Page Rank(PPR)(例えば非特許文献1参照)は、それらの中でも最も用いられるものの一つである。各ノードのPPRのスコアは、ランダムウォークの定常状態における確率として得られる。具体的には、PPRにおける各処理ステップは、現在のノードに接続されるエッジを一つランダムに選択し、選択したエッジを経由して現在のノードから他のノードへ移動する。そして、PPRにおける各処理ステップは、一定の確率c(cは、0<c<1なる実数)で、問い合わせノードの一つにランダムにジャンプする。ここで、確率cは、スケーリングパラメータとよばれる。
ここで、アプリケーションを用いるノード検索などは、インタラクティブに処理される。例えば、インタラクティブなノード検索は、グラフやスケーリングパラメータをアドホックに変更する。このようにしてノード検索をおこなうことには、2つの理由がある。1つ目の理由は、ノード検索を実際におこなうまでは検索対象となるグラフが不明であることである。これは、グラフが動的に変化するなどに起因する。2つ目の理由は、スケーリングパラメータが検索結果へ影響を与えることである。これは、アプリケーションごとに求められる検索結果が異なるため、スケーリングパラメータを動的に設定し、適切な値に変更することを要するためである。
なお、PPRについて上述したが、Random Walk with Restart(RWR)(例えば非特許文献2参照)についても、同様である。これは、RWRが、特殊ケースとしてPPRに含まれるためである。
Glen Jeh、Jennifer Widom、"Scaling Personalized Web Search"、WWW2003、May 20−24 2003 Yasuhiro Fujiwara、Makoto Nakatsuji、Makoto Onizuka、Masaru Kitsuregawa、"Fast and Exact Top-k Search for Random Walk with Restart"、The 38th International Conference on Very Large Data Bases、August 27th-31th 2012
しかしながら、上述の従来技術では、ノード検索のための計算コストが大きく、高速かつ正確な検索結果が得られない。すなわち、上述の従来技術では、総ノード数をN、総エッジ数をM、ノード検索のための繰り返しの計算回数をTとすると(N、M、Tは自然数)、ノード検索のために、O((N+M)・T)という高い計算コストを要するためである。なお、O(*)は、ランダウの記号である。
本願が開示する技術は、上記に鑑みてなされたものであって、ノード検索において、高速かつ正確な検索結果を得ることを目的とする。
本願が開示する技術は、一つの実施形態として、コンピュータネットワークを形成する機器をノードとし、機器間の接続をエッジとするコンピュータネットワークのグラフを、問い合わせノードおよび問い合わせノードに対する解ノードの個数を示すk(kはノードの数を超えない正整数)の入力を受け付けて検索し、問い合わせノードに対応するk個の解ノードを出力する検索装置である。さらに、検索装置は、非負整数であるiについて、グラフが含むノードおよびエッジのうち、問い合わせノードからのホップ数がiホップ以内かつ問い合わせノードに到達可能なノードおよび当該ノード間を接続するエッジに基づいてグラフのi番目の部分グラフを構築する。さらに、検索装置は、部分グラフが含む全てのノードごとに、当該ノードから当該ノードとエッジで接続される隣接ノードへランダムウォークで遷移する確率を計算する。さらに、検索装置は、選択ノードの集合が含む全てのノードについて、当該ノードに対応する確率に基づいて問い合わせノードとのノードの類似度の推定値を計算する。さらに、検索装置は、部分グラフが含むノードのうち、問い合わせノードとの類似度が所定値より大となる可能性がある候補ノードの集合を計算する。さらに、検索装置は、候補ノードの集合の要素数がkと等しいか否かを判定し、候補ノードの集合の要素数がkと等しい場合には候補ノードの要素について問い合わせノードとの類似度の降順による順序が決定する要素の集合を決定ノードの集合と計算し、候補ノードの集合の要素数がkと異なる場合に決定ノードの集合を空集合と計算する。さらに、検索装置は、候補ノードの集合と、決定ノードの集合とからi+1番目の選択ノードの集合を計算する。さらに、検索装置は、選択ノードの集合の要素数が0と等しいか否かを判定し、選択ノードの集合の要素数が0と等しい場合には計算した決定ノードの集合のk個のノードを当該各ノードに対応する算出した推定値の降順に並び替えて推定値が上位のk個である解ノードに設定し、選択ノードの集合の要素数が0と異なる場合にはiを+1インクリメントした非負整数をあらたなiとしてグラフのあらたなi番目の部分グラフを構築する。なお、検索装置において、選択ノードは、iが0である場合にはグラフが含む全てのノードの集合であり、iが1以上である場合にはiについて計算したi番目の選択ノードの集合であり、グラフのあらたなi番目の部分グラフを構築させる場合は、あらたなiについて、上述の各処理が再度、順次実行される。
本願が開示する技術によれば、ノード検索において、高速かつ正確な検索結果を得ることができる。
図1は、検索装置の構成を示すブロック図である。 図2は、部分グラフ構築部を示すブロック図である。 図3は、検索処理を示すフローチャートである。 図4は、部分グラフ計算処理を示すフローチャートである。 図5は、検索アルゴリズムを示す図である。 図6は、部分グラフ構築アルゴリズムを示す図である。 図7は、検索プログラムを実行するコンピュータの一例を示す図である。
以下に、本願が開示する技術にかかる検索装置などの実施形態を図面に基づいて説明する。以下の実施形態は、コンピュータネットワークを形成する機器をノードとし、機器間の接続をエッジとするコンピュータネットワークのグラフを、問い合わせノードおよび問い合わせノードに対する解ノードの個数を示すk(kはノードの数を超えない正整数)の入力を受け付けて検索し、問い合わせノードに対応するk個の解ノードを出力する。なお、以下の実施形態は、一例を示すに過ぎず、本願が開示する技術を限定するものではない。また、以下の実施形態は、矛盾しない範囲内で適宜組み合わせることができる。
[記号の定義]
実施形態の説明で用いる記号を下表に示す。なお、実施形態の説明では、行列をボールド体のラテン大文字、ベクトルをボールド体のラテン小文字で表記する。
Figure 2014228975
(従来技術の概要)
実施形態の説明に先立ち、従来技術について説明する。従来技術では、PageRankと同様に、ランダムサーファモデルに基づき、Jehらによって提案されたPPRをノードの類似度として計算し、グラフ全体におけるノードの類似度をユーザごとに個別化する(非特許文献1参照)。すなわち、ユーザごとにノードを任意に設定し、設定されたノードの優先度に基づいてノードの重要度を計算する。ここで、ユーザごとに設定されたノードを問い合わせノードとすると、各ノードの重要度は、問い合わせノードに対する類似度であると捉えることができる。問い合わせノードは、検索対象のノードである。なお、RWRは、PPRにおいて単独のノードのみが問い合わせノードとして設定された場合に該当する。
PPRにおけるノードの類似度は、定常状態におけるランダムウォークの確率に対応する。PPRの各処理ステップは、現在のノードに隣接する複数の隣接ノードから1つの隣接ノードを確率cで選択する。また、PPRの各処理ステップは、問い合わせノードの一つへ、問い合わせノードの値にしたがって確率(1−c)で遷移する。以下、PPRにおけるノードの類似度を、PPRのスコアもしくはノードのスコアと呼ぶ。
ここで、Vをグラフのノード集合、Eをグラフのエッジ集合とすると、問い合わせ対象のグラフはG={V,E}となる。また、
Figure 2014228975
をN×1(N行1列、Nは自然数)であるPPRのスコアを示すベクトル(以下、PPRのスコアベクトルと呼ぶ)とすると、ノードu(u∈V)のスコアs[u]は、PPRのスコアベクトルのu番目の要素に該当する。
Figure 2014228975
は、列の合計が1になるように正規化されたグラフの隣接行列であり、その要素W[u,v](u,v∈V)は、ノードvからノードuへランダムウォークが遷移する確率となる。PPRのスコアベクトルは、以下の式(1)を再帰的に計算することによって得る。
Figure 2014228975
なお、式(1)における
Figure 2014228975
は、問い合わせノードのベクトルであり、そのu番目の値q[u]は、問い合わせノードとしての優先度に対応する。なお、ノードuが問い合わせノードでなければq[u]=0である。問い合わせノードの優先度に対応するq[u]の合計は、1になるように正規化されている。
(従来技術の問題点)
しかし、式(1)により再帰的に計算を行う上述の従来技術の手法は、上位k個のノード検索をおこなうことには適切ではない。それは、従来技術の手法では、式(1)による各繰り返し計算において、全てのノードのスコアを更新することを要するためである。さらに、従来技術の手法では、正確なノードのスコアに基づくランキングで上位k個のノードを検索するために、ノードのスコアが収束するまで、式(1)による繰り返し計算をおこなうことを要する。しかし、アプリケーションにおいては、ランキングが重要であり、ノードのスコアは必ずしも重要ではない。このため、従来技術の手法は、必ずしも重要ではないノードのスコアを含む繰り返し計算のためにO((N+M)・T)の計算コストを要するため、大規模なグラフに対して高速にノード検索をおこなうことが難しい。なお、O(*)は、ランダウの記号である。
[実施形態]
(実施形態の概要)
以下に説明する実施形態は、上述の従来技術の問題点を解決するものである。上述したように、従来技術の手法は、定常状態における確率を計算することを要し、再帰的にグラフ全体を用いてノードのスコアを計算するため、高い計算コストとなる。その一方、実施形態は、上位k個のノードを高速に求めるため、選択されたノードに対してのみ、式(1)により再帰的にPPRのスコアベクトルの推定値を更新する。
また、実施形態は、ノードの類似度の推定値を高速に更新するために、グラフ全体から不要なノードとエッジを除外するように、動的に部分グラフを構築する。また、実施形態は、ノードの推定値を計算するために要するランダムウォークの確率を部分グラフから計算する。また、実施形態は、不要なノードとエッジを特定するために、ノードの類似度の下限値と上限値を推定する。また、実施形態は、繰り返し計算の中で得られる部分グラフから解ノードを検索する。
以下の実施形態では、まず、実施形態にかかる計算処理方法および理論的背景を説明し、次に、実施形態にかかる検索装置の構成および処理を説明する。
<計算処理方法および理論的背景>
(ノードの類似度の計算方法)
実施形態は、ノードの類似度の推定値を求めるために、問い合わせノードの1つから開始してノードuに到達する長さがi(i=0,1,2,・・・、(非負整数))のランダムウォークの確率p[u]を用いる。このランダムウォークにおいては、一定確率(1―c)で問い合わせノードに遷移することはない。ここで、N×1のベクトル
Figure 2014228975
を、u番目の要素がP[u]に対応するベクトルとする。
Figure 2014228975
は、隣接行列のi乗から、
Figure 2014228975
と計算することができる。ここで、明らかに
Figure 2014228975
であるため、長さiのランダムウォークの確率
Figure 2014228975
は、
Figure 2014228975
から、以下の式(2)のように逐次的に計算できる。
Figure 2014228975
ここで、式(2)におけるC[u]は、ノードuと接続するエッジ集合とする。すなわち、C[u]は、問い合わせ対象のグラフGにおいて、ノードuと直接隣接するノードの集合と見なしうる。実施形態では、式(2)のi番目の繰り返し計算における選択ノード集合Sを計算し、選択ノード集合Sに対して、ノードの類似度の下限値および上限値を推定する。選択ノード集合Sの初期集合は、グラフGのノード集合Vである。すなわち、S=Vである。また、Sは、つねにSi−1に含まれるように設定される。すなわち、V=S⊇S⊇S・・・⊇Si−1⊇Sである。具体的なノードの選択方法は、後述する。
ノードの類似度の上限値を計算するために、ノード集合Rを用いる。Rは、選択ノード集合Sに含まれるいずれか1つのノードへランダムウォークにより到達可能なノード集合である。なお、ノードuがノードvへ到達可能とは、問い合わせ対象のグラフGにおいて、ノードuからノードvへのパスがあるということである。
ここで、明らかに、S⊆Rであり、u∈SならばC[u]⊆Rである。また、P[R]は、長さがiのランダムウォークが、問い合わせノードq∈Qから始まってRのいずれかのノードに到達する確率であり、
Figure 2014228975
と計算される。ここで、ノードの類似度の上限値を計算するためにWmax[u]を導入する。Wmax[u]は、ノードuと接続するエッジの最大の重みである。すなわち、Wmax[u]=max{W[u,v]:v∈V}である。
(ノードの類似度の下限値)
ノードの類似度の下限値は、各繰り返し計算において以下のようにランダムウォークの確率を用いて計算される。以下のように、ノードuの下限値
Figure 2014228975
を定義する。
Figure 2014228975
定義1は、i=0ならば、ノードuの下限値は、ランダムウォークの確率とスケーリングパラメータから計算できることを示す。また、定義1は、i≠0ならば、ノードuの下限値は、ランダムウォークの確率とスケーリングパラメータから逐次的に計算されることを示す。また、定義1は、ランダムウォークの確率p[u]が計算されていれば、ノードuの下限値は、O(1)のオーダで計算できることを示す。式(3)で定義するノードuの下限値の性質について、以下の補助定理1を示す。
Figure 2014228975
(ノードの類似度の上限値)
ノードの類似度の上限値を計算するために定義1によるノードの類似度の下限値を利用する。ノードの類似度の上限値は、以下のように、ノードuの上限値
Figure 2014228975
を定義する。
Figure 2014228975
定義2は、ノードuの上限値は、スケーリングパラメータc、ノードuと接続するエッジの最大の重みWmax[u]、ランダムウォークの確率p[u]を用いることにより、O(1)のオーダで計算できることを示す。ノードuの上限値の性質について、以下の補助定理2を示す。
Figure 2014228975
定義1および定義2に示すように、ノードuの下限値および上限値は、各繰り返し計算において、ランダムウォークの確率から推定される。ノードuの下限値および上限値の推定値は、繰り返し計算の繰り返し回数が進むごとに推定の精度が上がっていくという性質を有する。ノードuの下限値および上限値の推定値の精度向上の性質について、以下の補助定理3を示す。
Figure 2014228975
後述するように、補助定理3により、ノードの類似度の推定値が収束するまで計算せずとも、正確なランキングで上位k個のノードを検索することができる。ノードの類似度の下限値および上限値が、正確な類似度に収束するという性質について、以下の補助定理4を示す。
Figure 2014228975
(ノードの選択)
実施形態は、問い合わせ対象のグラフGの部分グラフGを繰り返し計算の中で動的に構築し、ランダムウォークの確率p[u]を高速に計算する。そして、実施形態は、選択ノードSに対するノードの類似度の下限値および上限値を、ランダムウォークの確率p[u]を用いて計算する。以下では、部分グラフGを構築する際のノードの選択方法について述べる。
実施形態は、解ノードになる可能性があるノードが、ノードの類似度の推定値を用いても解ノードとしてのランキングが決定できないならば、ノードの類似度の下限値および上限値を計算するために、当該のノードを選択する。その際、i番目の繰り返し計算におけるノードの類似度の下限値のうちk番目の大きさのものをθとし、i番目の繰り返し計算における解ノードの候補ノード集合Lを、以下のように定義する。
Figure 2014228975
定義3は、あるノードの類似度の上限値がi以上ならば、当該のノードは、候補ノードとなることを示す。これは、あるノードの類似度の推定値がiならば、当該のノードの正確な類似度はi以上になることがないため、解ノードになり得ないからである。後述するように、候補ノード集合は、繰り返し計算の中で単調減少する性質がある。i番目の繰り返し計算において、解ノードとしてのランキングが決定した決定ノード集合Dを、以下のように定義する。
Figure 2014228975
定義4は、次を示す。すなわち、解ノードの数がk個であり、かつ、ノードの類似度の下限値または上限値が、
Figure 2014228975

Figure 2014228975
の間にあるノードvが存在しないノードu(u≠v)は、決定ノードとなる。すなわち、下限値または上限値が、
Figure 2014228975

Figure 2014228975
の間にノードが存在すれば、ノードuは、決定ノードとならない。
定義4において、|L|=kならば、決定ノード集合Dを計算するコストはO(k・logk)である。これは、Lのノードを並び変えることによってDが得られるからである。また|L|≠kならば、式(21)から、Dを計算しなくてよい。候補ノード集合LとDの定義から、選択ノード集合Sを、以下のように定義する。
Figure 2014228975
定義5は、まず全てのノードに対してノードの類似度の推定値を計算し、ランキングが決定している候補ノードでないノードの推定値を更新しないことを示す。すなわち、定義5は、ノードの類似度の推定値を、候補ノードでかつランキングが決定していない場合のみ更新することを示す。
以下、選択ノードの性質を示すために候補ノード集合Lと、決定ノード集合Dの性質に関する補助定理を示す。まず、候補ノード集合Lについて、以下の補助定理5および補助定理6を示す。
Figure 2014228975
Figure 2014228975
補助定理3から、集合Lを計算するには全てのノードを要するが、繰り返し計算においてより効率的に集合Lを計算できる。i≠0かつ|Li−1|≠kならば、集合Lは、以下のように計算できる。
Figure 2014228975
式(24)は、式(19)において、VをLi−1で置き換えることによって得られる。すなわち、集合Li−1から集合Lを逐次的に計算できる。これは、あるノードが集合Li−1に含まれてなければ、補助定理5から、当該のノードが集合Lに含まれることはないからである。さらに、i≠0かつ|Li−1|=kならば、集合Lは、以下のように計算できる。
Figure 2014228975
そして、決定ノード集合Dの性質にについて、補助定理5および補助定理6に基づいて、以下の補助定理7および補助定理8を示す。
Figure 2014228975
Figure 2014228975
補助定理5および補助定理7から、候補ノード集合Lは単調増加し、決定ノード集合Dは単調減少することが分かる。そして、補助定理6および8から、候補ノード集合Lおよび決定ノード集合Dは、収束後において解ノード集合Aと等しくなることが分かる。そのため、選択ノードSの性質について、以下の補助定理が成り立つ。
Figure 2014228975
定義5のとおり、選択ノードSは、グラフGの更新前のノード集合に初期化されるため、選択ノードSは、V=S⊇S⊇S・・・⊇Si−1⊇S・・・⊇Sである。さらに、S=φということは、更新するべきノードがないことを示している。すなわち、実施形態は、有限の繰り返し回数で、ノードの類似度の推定値の計算が終了することを示す。
(部分グラフの構築)
実施形態は、ノードの類似度の推定値の算出に不必要なノードとエッジを除外し、高速に推定値を更新する。まず、部分グラフの定義およびその性質を説明する。そして、各繰り返し計算において逐次的に部分グラフを更新する方法を説明する。定義1および定義2から、ノードの類似度の推定値の下限値および上限値は、式(2)で与えられるランダムウォークの確率を用いて計算できる。このため、実施形態は、ランダムウォークの確率を高速に計算するために、部分グラフを構築する。実施形態は、部分グラフを構築するために、問い合わせノードからのホップ数がi以内であるノード集合Hを用いる。集合Hは、問い合わせノードからのホップ数がiより大きくなるノードは含まれない。i番目の繰り返し計算における部分グラフGを、ノード集合Hを用いて、以下のように定義する。
Figure 2014228975
定義6は、i番目の繰り返し計算による更新前の部分グラフGにおいて、問い合わせノードからのホップ数がiホップ以内であり、問い合わせノードに到達可能であるノードは、部分グラフGに含まれることを示す。また、定義6は、部分グラフGにおいて2つのノードがエッジで接続されており、当該の2つのノードがともに部分グラフGに含まれるならば、当該のエッジは、部分グラフGに含まれることを示す。部分グラフGの性質について、以下の補助定理10を示す。
Figure 2014228975
補助定理10の証明から、選択ノードSに対して、部分グラフGからランダムウォークの確率p[u]と、ノードの類似度の推定値を計算できることがわかる。部分グラフGを用いて、以下のように、ノードの類似度の下限値および上限値を効率的に計算できる。以下のように、部分グラフGによるランダムウォークの確率p[u]の計算方法を定義する。
Figure 2014228975
式(29)は、式(2)において、C[u]をC[u]へ置き換えることで得ることができる。上位k個のノードを高速に検索するために、式(29)を用いて、部分グラフGからランダムウォークの確率p[u]を計算する。ノードの類似度の推定値の下限値および上限値は、定義1および定義2からそれぞれ計算する。ノードの類似度の推定値の下限値および上限値を単純計算するには、問い合わせ対象のグラフG全体を処理することを要するが、部分グラフGを用いることにより、ノードの類似度の推定値を効率的に計算できる。
しかし、定義6をそのまま適用すると、問い合わせ対象のグラフGの全てのノードを用いて部分グラフGを計算することを要する。このため、効率性の観点から、ノード集合hとエッジ集合eを用いて、繰り返し計算において逐次的に部分グラフを構築する。ここでノード集合hは、問い合わせノードからのホップ数がiであるノードの集合である。そのため、h=H=Qであり、
Figure 2014228975
である。また、eは、ノード集合hとノード集合Hの各ノード間のエッジの集合である。すなわち、H=Hi−1+hであるため、e={(u,v)∈E:u∈h,v∈Hi−1 or u∈Hi−1,v∈h or u∈h,v∈H}である。なお、hとeは、問い合わせ対象のグラフG全体に対して問い合わせノードをルートノードとし、1回だけ幅優先探索をおこなえば得ることができる。そのため、ノード集合hとエッジ集合eは、O(N+M)の計算コストで得られる。ノード集合hとエッジ集合eの性質について、以下の補助定理11を示す。
Figure 2014228975
補助定理11から、繰り返し計算において逐次的に部分グラフを構築することができることが分かる。グラフ
Figure 2014228975
を、
Figure 2014228975
とすると、
Figure 2014228975
であり、
Figure 2014228975
であるため、グラフ
Figure 2014228975
を逐次的に構築することができる。すなわち、グラフ
Figure 2014228975
は、グラフGi−1に、問い合わせノードからiホップだけ離れたノードおよび当該のノードに接続されるエッジを加算することで得られる。
ここで、補助定理11より、
Figure 2014228975
であり、ノード集合Hとエッジ集合eは、選択ノード集合Sへのパスではないノードとエッジを含むため、幅優先探索によりグラフ
Figure 2014228975
における選択ノード集合Sへのパスを幅優先探索で求めることで、部分グラフGを計算できる。
以上から、以下の2つの主張を、定理として示す。
Figure 2014228975
Figure 2014228975
<検索装置の構成および処理>
(検索装置の構成)
図1は、検索装置の構成を示すブロック図である。実施形態にかかる検索装置100は、ノード検索の問い合わせに用いるグラフGと、スケーリングパラメータcと、問い合わせノードQと、解ノードの個数kを入力とし、ノードの類似度の降順でソートされたk個の解ノードAを出力する。問い合わせノードは、検索対象のノードである。図1に示すように、検索装置100は、部分グラフ構築部110、ランダムウォーク確率計算部120、推定値計算部130、候補ノード計算部140、決定ノード計算部150、選択ノード計算部160を有する。
部分グラフ構築部110は、問い合わせに用いるグラフGと、更新前つまり式(1)によるi回目の繰り返し計算前の部分グラフGi−1と、選択ノードSを入力とし、更新後つまり式(1)によるi回目の繰り返し計算後の部分グラフGを出力する。ランダムウォーク確率計算部120は、更新後の部分グラフGを入力とし、部分グラフGにおける各ノードのランダムウォークの確率pを出力する。推定値計算部130は、各ノードのランダムウォークの確率pを入力とし、選択ノードSの推定値を出力する。
候補ノード計算部140は、選択ノードSの推定値と、解ノードの個数kを入力とし、候補ノードLを出力する。決定ノード計算部150は、候補ノードLと、候補ノードLに対応する選択ノードSの推定値と、解ノードの個数kを入力とし、解ノードAを出力する。選択ノード計算部160は、候補ノードLと、候補ノードLに対応する選択ノードSの推定値と、解ノードの個数kと、決定ノードDを入力とし、選択ノードSを出力する。
(部分グラフ構築部の構成)
図2は、部分グラフ構築部を示すブロック図である。実施形態にかかる検索装置100の部分グラフ構築部110は、初期グラフ構築部111、候補グラフ構築部112、部分グラフ構築部113を有する。初期グラフ構築部111は、問い合わせに用いるグラフGと、繰り返し番号i=0と、問い合わせノードQを入力とし、部分グラフGを初期値として出力する。候補グラフ構築部112は、繰り返し番号kと、更新前つまり式(1)によるi回目の繰り返し計算前の部分グラフGi−1と、選択ノードSを入力とし、更新後つまり式(1)によるi回目の繰り返し計算後の部分グラフGの候補を出力する。部分グラフ構築部113は、選択ノードSと、部分グラフGの候補を入力とし、更新後の部分グラフGを出力する。
(検索処理)
図3は、検索処理を示すフローチャートである。図3に示す検索処理における繰り返し計算回数を示すiの初期値は、0である。まず、検索装置100の部分グラフ構築部110は、問い合わせ対象のグラフG、スケーリングパラメータc、解ノード個数k、問い合わせノードQの入力を受け付ける(ステップS11)。続いて、検索装置100の部分グラフ構築部110は、定義6の式(27)、式(28)に基づき、i回目の繰り返し計算における問い合わせ対象のグラフGの部分グラフGを計算する処理をおこなう(ステップS12)。ステップS12の処理の詳細は、図4を参照して後述する。
続いて、検索装置100のランダムウォーク確率計算部120は、定義7の式(29)に基づき、ステップS12で計算された部分グラフGの全てのノードに対して、ランダムウォーク確率を計算する(ステップS13)。続いて、検索装置100の推定値計算部130は、定義5の式(22)に基づき計算される全ての選択ノードSに対して、補助定理1の式(5)に基づき、ノードの類似度の推定値を計算する(ステップS14)。なお、ステップS14が第1回目に実行される場合は、i番目の繰り返し計算回数を示すiが0であるので、ステップS14でのノードの類似度の推定値の算出対象の選択ノードは、定義5の式(22)に基づきS=Vとなる。また、ステップS14が第2回目以降に実行される場合は、ステップS14でのノードの類似度の推定値の算出対象の選択ノードは、後述のステップS19により定義5の式(22)に基づき計算されたi+1番目の繰り返し計算回数についての選択ノードSi+1となる。
続いて、検索装置100の候補ノード計算部140は、定義3の式(19)に基づき、i番目の繰り返し計算において正確な類似度がθより大きくなりうる候補ノード集合Lを計算する(ステップS15)。続いて、検索装置100の決定ノード計算部150は、ステップS15で計算した候補ノード集合Lの要素数|L|が、ステップS11で入力された解ノード個数kと等しいか否かを判定する(ステップS16)。検索装置100の決定ノード計算部150は、要素数|L|=kと判定した場合は(ステップS16Yes)、ステップS17へ処理を移す。一方、検索装置100の決定ノード計算部150は、要素数|L|≠kと判定した場合は(ステップS16No)、ステップS18へ処理を移す。
ステップS17では、決定ノード計算部150は、定義4の式(20)および式(21)に基づき、i番目の繰り返し計算において解ノードとして正確なランキングが決定している決定ノード集合Dを計算する。決定ノード計算部150は、ステップS17の処理が終了すると、ステップS19へ処理を移す。一方、ステップS18では、決定ノード計算部150は、決定ノード集合Dを空集合に設定する。決定ノード計算部150は、ステップS18の処理が終了すると、ステップS19へ処理を移す。
ステップS19では、検索装置100の選択ノード計算部160は、繰り返し計算回数を示すiを+1インクリメントしたi+1について、定義5の式(22)に基づき、選択ノードSi+1を計算する。続いて、検索装置100の選択ノード計算部160は、ステップS19で計算した選択ノードSi+1の要素数|Si+1|が、0であるか否かを判定する(ステップS20)。
検索装置100の選択ノード計算部160は、要素数|Si+1|=0であると判定した場合は(ステップS20Yes)、|Si+1|=0であることを検索装置100の決定ノード計算部150へ通知するとともに、ステップS21へ処理を移す。一方、検索装置100の選択ノード計算部160は、要素数|Si+1|≠0と判定した場合は(ステップS20No)、ステップS19で計算した選択ノードSi+1を検索装置100の部分グラフ構築部110へ通知するとともに、ステップS12へ処理を移す。
ステップS21では、検索装置100の決定ノード計算部150は、ステップS17で決定された決定ノード集合Dのk個の要素を、ステップS14で計算された当該の要素ごとのノードの類似度の推定値の降順で並び替える。続いて、検索装置100の決定ノード計算部150は、ステップS21でノードの類似度の推定値の降順でk個の要素を並び替えた決定ノード集合Dを、解ノードAに設定する(ステップS22)。続いて、検索装置100の決定ノード計算部150は、ステップS22で設定された解ノードAを出力する(ステップS23)。検索装置100は、ステップS23が終了すると、検索処理を終了する。
(部分グラフ計算処理)
図4は、部分グラフ計算処理を示すフローチャートである。部分グラフ計算処理は、図3に示すステップS12の詳細処理を示す。部分グラフ計算処理は、補助定理11に基づき実行される。まず、部分グラフ構築部110の初期グラフ構築部111および候補グラフ構築部112は、繰り返し番号i、変更前の部分グラフGi−1、ノード集合h、エッジ集合e、選択ノードSの入力を受け付ける(ステップS12a)。すなわち、ステップS12aで繰り返し番号i=0である場合は、部分グラフ構築部110の初期グラフ構築部111は、繰り返し番号i=0、ノード集合hとしての問い合わせノード集合Qの入力を受け付ける。一方、ステップS12aで繰り返し番号i≠0である場合は、部分グラフ構築部110の初期グラフ構築部111は、繰り返し番号i、変更前の部分グラフGi−1、ノード集合h、エッジ集合e、選択ノードSの入力を受け付ける。
続いて、部分グラフ構築部110の初期グラフ構築部111および候補グラフ構築部112は、繰り返し番号i=0であるか否かを判定する(ステップS12b)。部分グラフ構築部110の初期グラフ構築部111は、繰り返し番号i=0である場合は(ステップS12bYes)、ステップS12cへ処理を移す。一方、部分グラフ構築部110の候補グラフ構築部112は、繰り返し番号i≠0である場合は(ステップS12bNo)、ステップS12dへ処理を移す。
ステップS12cでは、部分グラフ構築部110の初期グラフ構築部111は、問い合わせノードQから、初期グラフGのノードおよびエッジを計算する。部分グラフ構築部110の初期グラフ構築部111は、ステップS12cが終了すると、ステップS12fへ処理を移し、ステップS12cで計算した初期グラフGのノードおよびエッジから初期グラフGを計算する。続いて、部分グラフ構築部110の初期グラフ構築部111は、ステップS12fで計算した初期グラフGを出力する(ステップS12g)。
一方、ステップS12dでは、部分グラフ構築部110の候補グラフ構築部112は、ステップS12aで受け付けた繰り返し番号i、変更前の部分グラフGi−1、ノード集合h、エッジ集合e、選択ノードSから、候補グラフを計算する。続いて、部分グラフ構築部110の部分グラフ構築部113は、幅優先探索により、ステップS12dで計算した候補グラフから部分グラフGのノードおよびエッジを計算する(ステップS12e)。続いて、部分グラフ構築部110の部分グラフ構築部113は、ステップS12eで計算したノードおよびエッジから部分グラフGを計算する(ステップS12f)。続いて、部分グラフ構築部110の部分グラフ構築部113は、ステップS12fで計算した部分グラフGを出力する(ステップS12g)。部分グラフ構築部110は、ステップS12gの処理が終了すると、部分グラフ計算処理を終了し、図3に示す検索処理へ処理を復帰する。
以上の検索処理および部分グラフ計算処理によれば、繰り返し計算の中で再帰的にノードの類似度の下限値と上限値を推定し、動的に解ノードになり得ないノードを除外することで、問い合わせ対象のグラフG、スケーリングパラメータc、解ノードの個数k、問い合わせノードQを入力とし、ノードの類似度の降順に正確に並び変えられたk個の解ノードを高速に得ることができる。
(検索アルゴリズム)
図5は、検索アルゴリズムを示す図である。図5に示す検索アルゴリズムは、図3に示す検索処理を示すフローチャートに対応する。図5は、部分グラフを用いた検索アルゴリズムを示す。まず、選択ノード集合を初期化し(図5の第2行目)、部分グラフを計算する(図5の第7〜第8行目)。そして、部分グラフに含まれるノードに対してランダムウォークの確率を計算する(図5の第9〜第11行目)。これは、補助定理10のとおり、ランダムウォークの確率が、ノードの類似度の推定値の計算に必要だからである。
そして、選択ノード集合に対してノードの類似度の推定値を計算する(図5の第12〜第15行目)。i=0ならば、定義3から、候補ノード集合Lを計算する(図5の第16〜第17行目)。i≠0ならば、候補ノード集合Li−1を用いて候補ノード集合Lを逐次的に計算する(図5の第18〜第24行目)。式(4)から、|L|≠kならば、D=φであるので、|L|=kの場合のみDを計算する(図5の第25〜第26行目)。そして、選択ノード集合を更新する(図5の第30行目)。
そして、選択ノード集合が空集合ならば、繰返し計算を打ち切る(図5の第31行目)。そして、ノードのランキングを集合Dに含まれるノードを下限値または上限値で並び変えて計算する(図5の第32行目)。最後に、集合Dを解ノードAとして出力する(図5の第33〜第34行目)。
図5に示すアルゴリズムのとおり、実施形態は、検索における事前計算を必要としない。すなわち、実施形態は、アドホックにノード検索を行うことができる。また、実施形態は、ユーザは内部パラメータの設定を要しない。そのため、ユーザは簡易に、PPRによるノード検索をおこなうことができる。
(部分グラフ構築アルゴリズム)
図6は、部分グラフ構築アルゴリズムを示す図である。図6に示す部分グラフ構築アルゴリズムは、図4に示す部分グラフ計算処理を示すフローチャートに対応する。i=0ならば、部分グラフ構築アルゴリズムは、ノードとエッジ集合をそれぞれV=Q and E={(u,v)∈ E:u∈Q,v∈Q}に初期化する(図6の第2〜第3行目)。これは、式(22)および式(27)から、V=H∩R=Q∩V=Qだからである。もし、V=H∩R=Q∩V=Qでなければ、更新前のグラフGからグラフ
Figure 2014228975
を逐次的に計算する(図6の第5〜第7行目)。そして、集合VとEをグラフ
Figure 2014228975
から幅優先探索を用いて計算する(図6の第8〜第9行目)。部分グラフ構築アルゴリズムに見られるように、部分グラフGは、問い合わせ対象のグラフG全体を用いることなく計算できる。
(実施形態による効果)
以上の実施形態によれば、上位k個のノードを高速に求めるため、選択されたノードに対してのみ、式(1)により再帰的にPPRのスコアベクトルの推定値を更新する。すなわち、実施形態は、上位k個のノード検索において、全てのノードについての式(1)による繰り返し計算を回避し、ノードの類似度の推定値を高速に更新するため、高速なノード検索処理が可能になる。
また、実施形態は、ノードの類似度の推定値を高速に更新するために、グラフ全体から不要なノードとエッジを除外するように、動的に部分グラフを構築する。実施形態は、ノードの推定値を計算するために要するランダムウォークの確率が部分グラフから計算できるため、高速に推定値を更新することができる。また、実施形態は、不要なノードとエッジを特定するために、ノードの類似度の下限値と上限値を推定する。また、実施形態は、繰り返し計算の中で得られる部分グラフはグラフ全体より小さいため、高速に解ノードを検索することができる。
すなわち、実施形態は、部分グラフを用いるので、従来技術の手法と比較して、繰り返し計算回数を減少させることができるという利点がある。従来技術の手法は、ノードの類似度を正確に計算するために、ノードの類似度が収束するまで繰り返し計算をおこなうことを要する。その一方、実施形態は、ノードの類似度の下限値と上限値からノードのランキングを決定することができ、ランキングが決定されたノードに対しては類似度算出のための繰り返し計算を行わない。そのため、実施形態は、ノードの類似度の下限値と上限値から全てのノードのランキングが決定された場合に、ノードの類似度算出のための繰り返し計算を打ち切る。つまり、実施形態は、ノードの類似度の収束を待つことなく計算を打ち切り、従来技術の手法より繰り返し計算回数を少なくすることができる。
さらに、実施形態は、ノードの類似度の下限値と上限値の推定値をおこなうことから、部分グラフの構造と繰り返し計算回数を、事前計算を要さず、自動的に決定できる。このため、実施形態は、任意のグラフ、スケーリングパラメータ、解ノードに対して、アドホックに、高速に検索をおこなうことができる。また、実施形態は、内部パラメータを要さないため、ユーザはPPRに基づくノード検索を簡易におこなうことができる。
(実施形態のシステム構成について)
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
また、検索装置100においておこなわれる各処理は、全部または任意の一部が、CPU(Central Processing Unit)およびCPUにより解析実行されるプログラムにて実現されてもよい。また、検索装置100においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
(プログラムについて)
また、実施形態において説明した検索装置100のCPUなどの制御装置が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、制御装置が実行する処理をコンピュータが実行可能な言語で記述した検索プログラムを作成することもできる。この場合、コンピュータが検索プログラムを実行することにより、実施形態と同様の効果を得ることができる。さらに、検索プログラムをコンピュータ読み取り可能な記録媒体に記録して、記録媒体に記録された検索プログラムをコンピュータに読み込ませて実行することにより実施形態と同様の処理を実現できる。以下に、図1および図2に示した検索装置100と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
図7は、検索プログラムを実行するコンピュータ1000を示す図である。コンピュータ1000は、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらは、バス1080によって接続される。
図7に示すように、メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。また、ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。また、ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、磁気ディスクや光ディスクなどの着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。また、ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
ここで、図7に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、検索プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
また、実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出す。そして、CPU1020が、検索プログラムの各手順を実行する。
なお、検索プログラムにかかるプログラムモジュール1093およびプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られない。すなわち、プログラムモジュール1093およびプログラムデータ1094は、着脱可能な記憶媒体に記憶され、ディスクドライブなどを介してCPU1020によって読み出されてもよい。検索プログラムにかかるプログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)など)を介して接続された他のコンピュータに記憶されていてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、ネットワークインタフェース1070を介してCPU1020によって読み出され、実行されてもよい。
100 検索装置
110 部分グラフ構築部
111 初期グラフ構築部
112 候補グラフ構築部
113 部分グラフ構築部
120 ランダムウォーク確率計算部
130 推定値計算部
140 候補ノード計算部
150 決定ノード計算部
160 選択ノード計算部

Claims (5)

  1. コンピュータネットワークを形成する機器をノードとし、前記機器間の接続をエッジとする前記コンピュータネットワークのグラフを、問い合わせノードおよび前記問い合わせノードに対する解ノードの個数を示すk(kは前記ノードの数を超えない正整数)の入力を受け付けて検索し、前記問い合わせノードに対応する前記k個の解ノードを出力する検索装置であって、
    非負整数であるiについて、前記グラフが含むノードおよびエッジのうち、前記問い合わせノードからのホップ数が前記iホップ以内かつ前記問い合わせノードに到達可能なノードおよび当該ノード間を接続するエッジに基づいて前記グラフの前記i番目の部分グラフを構築する部分グラフ構築部と、
    前記部分グラフ構築部が構築した前記部分グラフが含む全てのノードごとに、当該ノードから当該ノードとエッジで接続される隣接ノードへランダムウォークで遷移する確率を計算する確率計算部と、
    選択ノードの集合が含む全てのノードについて、前記確率計算部が算出した当該ノードに対応する前記確率に基づいて前記問い合わせノードとのノードの類似度の推定値を計算する推定値計算部と、
    前記部分グラフ構築部が構築した前記部分グラフが含むノードのうち、前記問い合わせノードとの類似度が所定値より大となる可能性がある候補ノードの集合を計算する候補ノード計算部と、
    前記候補ノード計算部が計算した前記候補ノードの集合の要素数が前記kと等しいか否かを判定し、前記候補ノードの集合の要素数が前記kと等しい場合には前記候補ノードの要素について前記問い合わせノードとの類似度の降順による順序が決定する要素の集合を決定ノードの集合と計算し、前記候補ノードの集合の要素数が前記kと異なる場合に前記決定ノードの集合を空集合と計算する決定ノード計算部と、
    前記候補ノード計算部が計算した前記候補ノードの集合と、前記決定ノード計算部が計算した前記決定ノードの集合とから前記i+1番目の選択ノードの集合を計算する選択ノード計算部と、
    前記選択ノード計算部が計算した前記選択ノードの集合の要素数が0と等しいか否かを判定し、前記選択ノードの集合の要素数が0と等しい場合には前記決定ノード計算部が計算した前記決定ノードの集合の前記k個のノードを当該各ノードに対応する前記推定値算出部が算出した前記推定値の降順に並び替えて前記推定値が上位の前記k個である解ノードに設定し、前記選択ノードの集合の要素数が0と異なる場合には前記iを+1インクリメントした非負整数をあらたな前記iとして前記部分グラフ構築部に前記グラフのあらたな前記i番目の部分グラフを構築させる解ノード設定部と、
    前記解ノード設定部が設定した前記解ノードを出力する出力部と
    を有し、
    前記選択ノードは、前記iが0である場合には前記グラフが含む全てのノードの集合であり、前記iが1以上である場合には前記選択ノード計算部が前記iについて計算した前記i番目の選択ノードの集合であり、
    前記解ノード設定部が前記部分グラフ構築部に前記グラフのあらたな前記i番目の部分グラフを構築させる場合は、あらたな前記iについて、前記部分グラフ構築部、前記確率計算部、前記推定値計算部、前記候補ノード計算部、前記決定ノード計算部、前記選択ノード計算部、前記解ノード設定部が各処理を再度、順次実行する
    ことを特徴とする検索装置。
  2. さらに、
    前記部分グラフ構築部は、
    前記iが0と等しい場合に、前記グラフと、前記問い合わせノードとから、前記i=0に対応する前記部分グラフの初期グラフを構築する初期グラフ構築部と、
    前記iが1以上の非負整数である場合に、前記i−1に対応する更新前の部分グラフと、前記iに対応する前記選択ノードとから構築される前記iに対応する更新後の部分グラフの候補を出力する候補グラフ構築部と、
    前記iに対応する前記選択ノードと、前記候補グラフ構築部が構築した前記iに対応する更新後の部分グラフの候補から、前記iに対応する更新後の部分グラフを構築する部分グラフ構築部と
    を有することを特徴とする請求項1に記載の検索装置。
  3. コンピュータネットワークを形成する機器をノードとし、前記機器間の接続をエッジとする前記コンピュータネットワークのグラフを、問い合わせノードおよび前記問い合わせノードに対する解ノードの個数を示すk(kは前記ノードの数を超えない正整数)の入力を受け付けて検索し、前記問い合わせノードに対応する前記k個の解ノードを出力する検索装置で実行される検索方法であって、
    非負整数であるiについて、前記グラフが含むノードおよびエッジのうち、前記問い合わせノードからのホップ数が前記iホップ以内かつ前記問い合わせノードに到達可能なノードおよび当該ノード間を接続するエッジに基づいて前記グラフの前記i番目の部分グラフを構築する部分グラフ構築工程と、
    前記部分グラフ構築工程が構築した前記部分グラフが含む全てのノードごとに、当該ノードから当該ノードとエッジで接続される隣接ノードへランダムウォークで遷移する確率を計算する確率計算工程と、
    選択ノードの集合が含む全てのノードについて、前記確率計算工程が算出した当該ノードに対応する前記確率に基づいて前記問い合わせノードとのノードの類似度の推定値を計算する推定値計算工程と、
    前記部分グラフ構築工程が構築した前記部分グラフが含むノードのうち、前記問い合わせノードとの類似度が所定値より大となる可能性がある候補ノードの集合を計算する候補ノード計算工程と、
    前記候補ノード計算工程が計算した前記候補ノードの集合の要素数が前記kと等しいか否かを判定し、前記候補ノードの集合の要素数が前記kと等しい場合には前記候補ノードの要素について前記問い合わせノードとの類似度の降順による順序が決定する要素の集合を決定ノードの集合と計算し、前記候補ノードの集合の要素数が前記kと異なる場合に前記決定ノードの集合を空集合と計算する決定ノード計算工程と、
    前記候補ノード計算工程が計算した前記候補ノードの集合と、前記決定ノード計算工程が計算した前記決定ノードの集合とから前記i+1番目の選択ノードの集合を計算する選択ノード計算工程と、
    前記選択ノード計算工程が計算した前記選択ノードの集合の要素数が0と等しいか否かを判定し、前記選択ノードの集合の要素数が0と等しい場合には前記決定ノード計算工程が計算した前記決定ノードの集合の前記k個のノードを当該各ノードに対応する前記推定値算出工程が算出した前記推定値の降順に並び替えて前記推定値が上位の前記k個である解ノードに設定し、前記選択ノードの集合の要素数が0と異なる場合には前記iを+1インクリメントした非負整数をあらたな前記iとして前記部分グラフ構築工程に前記グラフのあらたな前記i番目の部分グラフを構築させる解ノード設定工程と、
    前記解ノード設定工程が設定した前記解ノードを出力する出力工程と
    を含み、
    前記選択ノードは、前記iが0である場合には前記グラフが含む全てのノードの集合であり、前記iが1以上である場合には前記選択ノード計算工程が前記iについて計算した前記i番目の選択ノードの集合であり、
    前記解ノード設定工程が前記部分グラフ構築工程に前記グラフのあらたな前記i番目の部分グラフを構築させる場合は、あらたな前記iについて、前記部分グラフ構築工程、前記確率計算工程、前記推定値計算工程、前記候補ノード計算工程、前記決定ノード計算工程、前記選択ノード計算工程、前記解ノード設定工程が各処理を再度、順次実行する
    ことを特徴とする検索方法。
  4. さらに、
    前記部分グラフ構築工程は、
    前記iが0と等しい場合に、前記グラフと、前記問い合わせノードとから、前記i=0に対応する前記部分グラフの初期グラフを構築する初期グラフ構築工程と、
    前記iが1以上の非負整数である場合に、前記i−1に対応する更新前の部分グラフと、前記iに対応する前記選択ノードとから構築される前記iに対応する更新後の部分グラフの候補を出力する候補グラフ構築工程と、
    前記iに対応する前記選択ノードと、前記候補グラフ構築工程が構築した前記iに対応する更新後の部分グラフの候補から、前記iに対応する更新後の部分グラフを構築する部分グラフ構築工程と
    を含むことを特徴とする請求項3に記載の検索方法。
  5. コンピュータを、
    請求項1または2に記載の検索装置として機能させるための検索プログラム。
JP2013106672A 2013-05-20 2013-05-20 検索装置、検索方法および検索プログラム Expired - Fee Related JP5964781B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013106672A JP5964781B2 (ja) 2013-05-20 2013-05-20 検索装置、検索方法および検索プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013106672A JP5964781B2 (ja) 2013-05-20 2013-05-20 検索装置、検索方法および検索プログラム

Publications (2)

Publication Number Publication Date
JP2014228975A true JP2014228975A (ja) 2014-12-08
JP5964781B2 JP5964781B2 (ja) 2016-08-03

Family

ID=52128790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013106672A Expired - Fee Related JP5964781B2 (ja) 2013-05-20 2013-05-20 検索装置、検索方法および検索プログラム

Country Status (1)

Country Link
JP (1) JP5964781B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388642A (zh) * 2018-02-27 2018-08-10 中南民族大学 一种子图查询方法、装置及计算机可读存储介质
KR20190040863A (ko) * 2017-10-11 2019-04-19 서울대학교산학협력단 네트워크에서의 랭킹 및 연결 예측을 위한 지도식 확장 랜덤 워크를 제공하는 방법 및 장치
JP2019144939A (ja) * 2018-02-22 2019-08-29 Kddi株式会社 情報処理装置、情報処理方法、及びプログラム
CN111079058A (zh) * 2019-12-16 2020-04-28 武汉大学 一种基于节点重要性的网络节点表示方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065855A (ja) * 2004-07-30 2006-03-09 Microsoft Corp 行列インデックス操作および改良型キャッシングによるウェブページの効率的なランク付け
JP2012160015A (ja) * 2011-01-31 2012-08-23 Nippon Telegr & Teleph Corp <Ntt> 類似ノード検索装置及び方法及びプログラム
JP2013025421A (ja) * 2011-07-15 2013-02-04 Kyoto Sangyo Univ 情報検索システム及び情報検索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065855A (ja) * 2004-07-30 2006-03-09 Microsoft Corp 行列インデックス操作および改良型キャッシングによるウェブページの効率的なランク付け
JP2012160015A (ja) * 2011-01-31 2012-08-23 Nippon Telegr & Teleph Corp <Ntt> 類似ノード検索装置及び方法及びプログラム
JP2013025421A (ja) * 2011-07-15 2013-02-04 Kyoto Sangyo Univ 情報検索システム及び情報検索方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190040863A (ko) * 2017-10-11 2019-04-19 서울대학교산학협력단 네트워크에서의 랭킹 및 연결 예측을 위한 지도식 확장 랜덤 워크를 제공하는 방법 및 장치
KR102048442B1 (ko) * 2017-10-11 2019-11-25 서울대학교산학협력단 네트워크에서의 랭킹 및 연결 예측을 위한 지도식 확장 랜덤 워크를 제공하는 방법 및 장치
JP2019144939A (ja) * 2018-02-22 2019-08-29 Kddi株式会社 情報処理装置、情報処理方法、及びプログラム
CN108388642A (zh) * 2018-02-27 2018-08-10 中南民族大学 一种子图查询方法、装置及计算机可读存储介质
CN108388642B (zh) * 2018-02-27 2020-08-18 中南民族大学 一种子图查询方法、装置及计算机可读存储介质
CN111079058A (zh) * 2019-12-16 2020-04-28 武汉大学 一种基于节点重要性的网络节点表示方法及装置
CN111079058B (zh) * 2019-12-16 2023-07-28 武汉大学 一种基于节点重要性的网络节点表示方法及装置

Also Published As

Publication number Publication date
JP5964781B2 (ja) 2016-08-03

Similar Documents

Publication Publication Date Title
JP5995409B2 (ja) コンピュータ解析のためにテキスト文書を表現するためのグラフィカル・モデル
Hayashi et al. Fully dynamic betweenness centrality maintenance on massive networks
WO2017137000A1 (zh) 对描述同一实体的不同实例进行合并的方法、装置及设备
US8903824B2 (en) Vertex-proximity query processing
JP5881048B2 (ja) 情報処理システム、及び、情報処理方法
US11288266B2 (en) Candidate projection enumeration based query response generation
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
CN111651641B (zh) 一种图查询方法、装置及存储介质
US20110145261A1 (en) Efficient calculation of node proximity on graphs with side information
Faerman et al. Lasagne: Locality and structure aware graph node embedding
EP3955256A1 (en) Non-redundant gene clustering method and system, and electronic device
Cao et al. Measuring similarity between graphs based on the levenshtein distance
JP2018092349A (ja) 削減条件特定方法、削減条件特定プログラム及び削減条件特定装置
Durón Heatmap centrality: a new measure to identify super-spreader nodes in scale-free networks
US8392393B2 (en) Graph searching
US9674083B2 (en) Path calculation order deciding method, program and calculating apparatus
CN106599122B (zh) 一种基于垂直分解的并行频繁闭序列挖掘方法
Wan et al. Ranking the spreading capability of nodes in complex networks based on link significance
JP5506711B2 (ja) 類似ノード検索装置及び方法及びプログラム
Garg et al. STIC-D: algorithmic techniques for efficient parallel pagerank computation on real-world graphs
CN107463486B (zh) 系统性能分析方法、装置及服务器
JP6005583B2 (ja) 検索装置、検索方法および検索プログラム
JPWO2011016281A1 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
CN113568987B (zh) 知识图谱嵌入模型的训练方法、装置、计算机设备
CN117332728A (zh) 用于设计逻辑电路的方法、装置和设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150715

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160630

R150 Certificate of patent or registration of utility model

Ref document number: 5964781

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees