JP5727421B2 - 関連ノード検索装置、関連ノード検索方法、及びプログラム - Google Patents

関連ノード検索装置、関連ノード検索方法、及びプログラム Download PDF

Info

Publication number
JP5727421B2
JP5727421B2 JP2012161986A JP2012161986A JP5727421B2 JP 5727421 B2 JP5727421 B2 JP 5727421B2 JP 2012161986 A JP2012161986 A JP 2012161986A JP 2012161986 A JP2012161986 A JP 2012161986A JP 5727421 B2 JP5727421 B2 JP 5727421B2
Authority
JP
Japan
Prior art keywords
relevance
nodes
matrix
node
search
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.)
Active
Application number
JP2012161986A
Other languages
English (en)
Other versions
JP2014021862A (ja
Inventor
靖宏 藤原
靖宏 藤原
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 JP2012161986A priority Critical patent/JP5727421B2/ja
Publication of JP2014021862A publication Critical patent/JP2014021862A/ja
Application granted granted Critical
Publication of JP5727421B2 publication Critical patent/JP5727421B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明はPersonalized PageRank に基づき関連度を計算し検索を行う技術に関するものである。
グラフはデータをノードとエッジで表現するデータ構造であり、様々な分野で用いられている。近年グラフを用いたパーソナライズドサーチに関心が高まっている。パーソナライズドサーチの例としては個人の購入履歴から個別にレコメンドを行うサービスなどがあげられる。
グラフ理論においてノードの関連度は重要な性質の一つであり、ノードの関連度として今まで様々な手法が提案されてきた。その中でもPersonalized PageRank(PPR)はノードの関連度として最も注目を集めているもののひとつである。PPRは今までグラフ理論でよく用いられてきたノード間の最短距離などと異なり、グラフの構造的な特徴に基づいて関連度が計算できるからである(非特許文献1、2)。
PPRは概念的に以下のように説明できる。問い合わせ分布に基づいた各ノードの存在確率からランダムウォークを開始し、隣接するノードにエッジの重みに比例した確率でランダムに移動する。さらにノードに到達するたびに一定の確率で問い合わせ分布に基づいた確率でノードに戻る。この操作を再帰的に繰り返した結果として各ノードにおける定常状態確率が得られるが、PPRはこの得られた定常状態確率を関連度とする方法である。
Glen Jeh and Jennifer Widom, Scaling personalized web search, WWW, 2003 Hanghang Tong and Christos Faloutsos, Center-piece subgraphs: problem definition and fast solutions,KDD, 2006 D′aniel Fogaras and Bal′azs R′acz and K′aroly Csalog′any and Tam′as Sarl′os, Towards Scaling Fully Hanghang Tong and Christos Faloutsos and Jia-Yu Pan, Fast Random Walk with Restart and Its Applications, ICDM, 2006 Jimeng Sun and Huiming Qu and Deepayan Chakrabarti and Christos Faloutsos, Neighborhood Formation and Anomaly Detection in Bipartite Graphs, ICDM, 2005 Thomas H. Cormen and Charles E. Leiserson and Ronald L. Rivest and Clifford Stein, Introduction to Algorithms, The MIT Press, 2001 David A. Harville, Matrix Algebra From a Statistician's Perspective. Springer, 2008
PPRは様々な分野のアプリケーションに応用されている関連度であるが、計算量が高いという問題がある。そのため今まで様々な高速化手法が提案されてきた(非特許文献3、4、5)が、それらは精度を犠牲にするものであった。しかし、アプリケーションに対する応用を考えた場合、精度が犠牲になるのは好ましくない。また実際のアプリケーションにおいては問い合わせ分布からほかのすべてのノードの関連度を計算するのではなく、関連度の高いノードの処理が行われている(非特許文献5)。
本発明は上記の点に鑑みてなされたものであり、問い合わせ分布と検索個数もしくは閾値が与えられたときに、問い合わせ分布に対して、PPRに基づく関連度の高い個数のノードもしくは閾値内のノードを高速かつ正確に検索することを可能とした技術を提供することを目的とする。
上記の課題を解決するために、本発明は、複数のノードからなるグラフデータと問い合わせ分布からPPR(Personalized PageRank)に基づき関連度を計算し、関連度が高い順にK 個のノードを検索する、又は所定の閾値よりも大きい関連度を持つノードを検索する関連ノード検索装置であって、
前記グラフデータから、PPRに基づく特定のノードの関連度を算出するために用いるユニタリ行列と上三角行列の逆行列を計算し、記憶手段に格納する事前計算手段と、
前記問い合わせ分布、及び前記事前計算手段により求めたユニタリ行列と上三角行列の逆行列を用いて、関連度が高い順にK 個のノードを検索、又は所定の閾値よりも大きい関連度を持つノードを検索し、出力する検索手段とを備えることを特徴とする関連ノード検索装置として構成される。
前記事前計算手段は、前記ユニタリ行列と前記上三角行列の逆行列とがそれぞれ疎になるように、前記グラフデータにおけるノードを並び替え、ノードを並び替えたグラフデータを記憶手段に格納するノード並び替え手段と、前記ノード並び替え手段によりノードが並び替えられたグラフデータを用いて、前記ユニタリ行列と前記上三角行列の逆行列を計算する逆行列計算手段と、を備え、
前記検索手段は、グラフの隣接行列及び前記問い合わせ分布に基づいて全てのノードについての関連度の下限値を推定し、当該下限値に基づいて関連度の上限値を推定する関連度推定手段と、前記関連度推定手段により推定された前記上限値に基づいて選択された関連度が高いことが期待されるノードについて、前記ユニタリ行列と前記上三角行列の逆行列を用いて関連度を計算する関連度計算手段と、を備えるように構成することができる。
また、前記検索手段において、前記関連度推定手段により、下限値の降順に、関連度の上限値が前記K番目の関連度未満又は前記所定の閾値未満となるまでノードを探索し、関連度の上限値が前記K番目の関連度未満又は前記所定の閾値未満にならない間は、前記関連度計算手段により正確な関連度を計算することにより、関連度が高い順にK 個のノードを検索、又は前記所定の閾値よりも大きい関連度を持つノードを検索するようにしてもよい。
また、本発明は、上記関連ノード検索装置が実行する関連ノード検索方法として構成することもできる。更に、本発明は、コンピュータを、上記関連ノード検索装置における各手段として機能させるためのプログラムとして構成することもできる。
本発明によれば、特定のノードの関連度を疎行列を用いて計算するとともに、不必要な関連度の計算を探索において省略することとしたので、従来手法より大幅に高速に関連ノードを検索できる。また、本発明による検索結果は正確であり、更に、本発明に対してユーザはパラメータ調整する必要がないという効果も奏する。
本発明の実施の形態に係る関連ノード検索装置1の機能構成図である。 本発明の実施の形態に係る事前計算部10の機能構成図である。 本発明の実施の形態に係る検索部20の機能構成図である。 ノードの置換のアルゴリズムであるアルゴリズム1を示す図である。 ノードの置換のフローチャートである。 上位K個検索のアルゴリズムであるアルゴリズム2を示す図である。 上位K個検索のフローチャートである。 範囲検索のアルゴリズムであるアルゴリズム3を示す図である。 範囲検索のフローチャートである。
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
(装置の基本構成)
本実施の形態に係る関連ノード検索装置1の構成、及び機能の概要を図1〜図3を参照して説明する。
図1は、本実施の形態に係る関連ノード検索装置1の機能構成図である。図1に示すように、本実施の形態に係る関連ノード検索装置1は、事前計算部10と検索部20を有する。事前計算部10はグラフデータを外部入力とし、ユニタリ行列と上三角行列の逆行列を出力する。検索部20には、事前計算部10からユニタリ行列と上三角行列の逆行列が入力され、外部から問い合わせ分布と検索個数等が入力される。検索部20は、これらの入力に基づいて、検索結果である関連ノードを出力する。
図2に、事前計算部10の機能構成を示す。図2に示すとおり、事前計算部10は、ノード並び替え部11と逆行列計算部12を有する。ノード並び替え部11は、グラフを入力とし、グラフのノードを並び替えて出力する。出力された並び替え後のグラフのデータは、メモリ等の記憶手段に格納される。逆行列計算部12はノードが並び替えられたグラフを入力としユニタリ行列と上三角行列の逆行列を出力する。出力されたユニタリ行列と上三角行列の逆行列のデータは、後述するデータ保存部23(記憶手段)に格納される。
図3に、検索部20の機能構成を示す。図3に示すとおり、検索部20は、関連度推定部21、関連度計算部22、データ保存部23、検索処理制御部24を有する。
関連度推定部21には、問い合わせ分布と検索個数等が外部から入力され、関連度計算部22から計算された関連度が入力され、更に、データ保存部23から検索対象のノードが入力される。関連度推定部21は、これらの入力に基づいて、ノードの関連度を推定し、推定した関連度をデータ保存部23に格納する。
関連度計算部22には、事前計算部10からユニタリ行列と上三角行列の逆行列が入力され、データ保存部23から検索対象のノードが入力される。関連度計算部22は、これらの入力に基づいて、ノードの関連度を計算し、計算した関連度をデータ保存部23に出力する。
検索処理制御部24は、後述するアルゴリズムに従って処理が行われるように検索対象のノードを決定するなどの制御を実施するとともに、検索結果を外部に出力する。
本実施の形態における関連ノード検索装置1は、例えば、CPU、メモリやハードディスク等の記憶手段を備えるコンピュータに、本実施の形態で説明する機能部の処理に対応するプログラムを実行させることにより実現可能である。当該プログラムは、可搬メモリ等の記憶媒体に格納して配布し、上記コンピュータにインストールして用いてもよいし、ネットワーク上のサーバからダウンロードして上記コンピュータにインストールしてもよい。本実施の形態で説明する各計算処理は、メモリ等の記憶手段に格納されたデータをCPUが読み出して処理し、処理された結果を記憶手段に格納する処理を繰り返しながら実行されるものである。
(関連ノード検索装置1の処理動作)
以下、本発明の実施の形態における関連ノード検索装置1が実行する処理内容について、その原理や処理手順などを詳細に説明する。実施の形態の説明にあたり、まずは本明細書で用いる記号を定義し、必要となる背景知識を説明する。
<PPRについて>
PPRはグラフのノードの関連度を計算するひとつの方法である。PPRでは問い合わせ分布から各ノードの存在確率を決定し、決定されたノードからランダムウォークを行う。そしてランダムウォークでノードに到達するたびに一定の確率cで問い合わせ分布に基づき各ノードに戻る。ここで、グラフのノード数をnとする。sをn×1行列とし、su要素をノードuにランダムウォークする確率を表すとする。またdを問い合わせ分布で決定されるn×1行列とする。またAを列が正規化されたグラフの隣接行列とする(すなわちAu,v要素はノードvからノードuへランダムウォークする確率を表す)。定常状態における各ノードにおける存在確率は以下の式を再帰的に収束するまで繰り返すことで計算することができる。
s = (1-c)As + cd (1)
PPR は定常状態における確率を関連度とする方法である。すなわちs行列のsu要素はノードuの分布dに対する関連度となる。
定義から繰り返し回数をtとしたときPPRの計算コストはO(mt)となる。そのためグラフが大規模である場合PPRの値を計算するのは非常に時間がかかる。
<本実施の形態に係る技術の原理>
本実施の形態に係る技術は、大きく以下の2つの手法(疎行列計算と関連度の推定)で構成される。
(1)疎行列計算
上記のように、問い合わせ分布に対する関連度は繰り返し計算によって定常状態における確率を計算することで求めることができる。この方法はグラフの全てのノードの関連度を再帰的に計算するため計算コストが高い。そこで本実施の形態に係る手法では全てのノードの関連度を計算せずに、選んだノードの関連度のみを計算し高速な検索を可能にする。
選んだノードの関連度は式(1)から直接求められる逆行列を用いることで計算できる。そのためこの逆行列を事前に計算しておけば関連度を高速に計算できる。しかし逆行列を保持するには一般的にO(n2) のメモリが必要になるのが問題になる。
そこで本実施の形態に係る手法では、この逆行列を疎行列として保持するために、検索の事前処理でまずノードを並び替えてからQR分解を計算し、得られたユニタリ行列と上三角行列の逆行列を計算する。このユニタリ行列と上三角行列の逆行列は疎行列なため、隣接リスト表現(非特許文献6)を用いることにより選んだノードの関連度を疎行列から計算できる。
(2)関連度の推定
上記の疎行列計算の手法により、選んだノードの関連度を高速に計算することができる。しかし、上位K個のノードを検索するためには全てのノードの関連度を計算しなければならない。そこで、本実施の形態に係る技術では、高速に検索を行うために関連度の推定を行う。具体的には各ノードに対して関連度の推定を行い、関連度が高いことが期待されるノードに対してのみ疎行列を用いて正確な関連度を計算する。ノードの推定値はO(1)で計算することができるため、少ない計算コストで関連度の計算を省略することができる。後述するように、本実施の形態で用いる関連度の推定値は正確な関連度の上限値になることが保証されているため、推定を用いても検索結果が正確になるという利点がある。
<疎行列による関連度計算、疎行列計算について>
以下、疎行列を用いて選択したノードの関連度を計算する処理について詳細に説明する。まず選択したノードの関連度は逆行列から計算できることを説明し、その逆行列を疎行列から計算する手法について説明する。
行列Pをノードの置換行列とすると、グラフの隣接行列AはA′= PAPTという計算を経て行列A′に変換される。ここで行列PTは行列Pの転置行列である。また、ここでn×nの大きさの置換行列Pは直交行列であり、各行と列においてただ一つの値が1である要素と、それ以外は値が0である要素を持つ。またPij= 1はj番目の行がi番目の行に置換されることを表す。
ここで、I = PTIP、P-1 = PT、A = PTAPであるため(P-1 はPの逆行列)、式(1)は以下のように書き換えられる。
s=c{I- (1-c)A}-1d=c{PTIP- (1-c)PTA′P}-1d =cPT{I- (1-c)A′}-1Pd (2)
特定のノードの関連度を計算するため、本実施の形態では行列I - (1 - c)A′ のQR分解を計算する。すなわちQR = I - (1 - c)A′となるが、ここで行列Qは直交行列(ユニタリ行列)であり、行列Rは上三角行列である。形式的には特定のノードxの関連度は以下のように計算する。
定義1:n × nの行列F = cPTR-1とし、n × 1のベクトルg = QTPd とし、1 × nのベクトルfiを行列Fのi番目の行ベクトルとすると、ノードxの分布dに対する関連度sxは以下のように計算できる。
sx = fx・g (3)
式(3)からノードxの関連度はベクトルfxとgを用いれば繰り返し計算なしに求めることができる。またベクトルdはユーザから与えられるため、関連度を計算するためまずベクトルgを計算する必要がある。
定義1に対して以下の定理が成り立つ。
定理1:|fx|と|Q|をそれぞれfx and Qにおける非零要素の数とすると、特定のノードの関連度を計算するために必要な計算量はO(|fx| + |Q|) となる。
定理1の証明:本実施の形態では関連度を計算するため、まずベクトルgを分布dから計算する。ベクトルPdは分布dのノードを置換すれば得られるため、ベクトルg = QTPd を計算するために必要な計算量はO(|Q|) となる。ベクトルfxとgの内積を計算するための計算コストはO(|fx| + |Q|) であるため、関連度を計算するために必要な計算量はO(|fx| + |Q|) となる。
ここでF = cPTR-1でありg = QTPdであるため、定理1から関連度を高速に計算するためには行列R-1とQの非零要素を減らす必要があることがわかる。そのため本実施の形態では非零要素を減らすための後述する手法を用いる。
当該手法を詳しく説明する前に行列R-1とQの計算方法について説明する。ベクトルqi を行列Qのi 番目の列ベクトル、wiを行列W = I - (1 - c)A′のi番目の列ベクトルとすると、行列QとRはグラム・シュミットの正規直交化法(非特許文献7参照)から以下のように計算できる。
Figure 0005727421
Figure 0005727421
ここで||q′i||はq′iのノルムである。行列R-1の要素は後退代入(非特許文献7参照)を用いることで以下のように計算できる。
Figure 0005727421
式(4)と(5)から行列QとRの列ベクトルは左から右の列へそれぞれ直交な列ベクトルと行列Wとの内積を計算することで求められることがわかる。式(6)から行列R-1 の列ベクトルは右から左の列へ、また各列ベクトルの要素は下から上の要素の順番で求められることがわかる。また式(4)と(5)と(6)から行列QとRは行列Wから計算できることがわかる。
行列Qの非零要素を減らすために、本実施の形態では以下の知見を用いる。「もし列ベクトルwiが行列Wにおいて全ての左の要素がすべて零である一つの非零要素をもつならば、その列ベクトルwiは行列Qのすべての左の列ベクトルに対して直交となる。」。これは列ベクトルwiが線形独立になるためである。よって行列Qは疎なデータ構造となる。
また行列R-1 を疎にするため以下の2つの知見を用いる。「もし行列R の右と下の要素が疎であれば、行列R-1の右と下の要素も疎になる。」。「もし行列Wの右と下の要素が疎であれば、行列R の右と下の要素も疎になる。」。
図4に、疎な行列を得るためのノードの置換方法についてのアルゴリズム1を示す。また図5に、このアルゴリズム1に対応して、事前計算部10のノード並び替え部11が実行する処理のフローチャートを示す。
図4に示すアルゴリズムは行列QとR-1に対する知見に基づいている。このアルゴリズムにおいてVはグラフにおけるノードの集合とし、集合"P"は置換されたノードの集合とする。deg(u) はノードu に入るエッジの数とし、e(u)はノードuから集合"P"へ出ていないエッジの数とする。まずノード並び替え部11は、置換行列Pを零行列に初期化し、集合"P"を空集合とする(1〜2行目、図5のステップ11)。
置換されていないノードの集合V\Pからエッジの数がmin{e(u)|u ∈ V\P}になるノード集合Uを計算する(4行目、ステップ12)。この処理は行列Qに対する知見に基づいている。もし行列A′の右と下の要素が疎であれば行列R-1も疎になるため、行列A′の左と上の要素を密にするためにエッジの数が最大になるノードを選択する(5行目、ステップ13)。そして選択されたノードから行列P の要素を決定し、置換の順番を決定する(6〜7行目、ステップ14、15)。
<関連度の推定について>
次に、関連度の推定について説明する。これは、上位K個のノードを検索するために、検索の途中において正確な関連度を計算していないノードの関連度の上限値を高速に推定するものである。関連度の上限値を計算するために、本実施の形態ではまず関連度の下限値を推定する。関連度の下限値は与えられた分布の値が零にならないシードノードからの最小ホップ数を用いて計算する。シードノードからの最小ホップ数は幅優先探索を用いて計算する。huをノードuに対するシードノードからの最小ホップ数とし、H(i)をシードノードからの最小ホップ数がiとなるノードの集合とする。すなわちH(i)はi番目のレイヤを構成し、H(0)はシードノードの集合となる。本実施の形態では以下のように関連度の下限値を計算する。
定義2:ノードuの分布d に対する関連度の下限値s uは以下のように定義される。
Figure 0005727421
幅優先探索を用いることにより、すべてのノードに対して下限値を計算するには、O(n+m) の計算コストが必要になる。この下限値の性質を示すために以下の補助定理を示す。
補助定理1 :H(i)に含まれる全てのノードに対してs u ≦ suが成り立つ。
補助定理1の証明:証明には数学的帰納法を用いる。まずH(0)に含まれるノードに対して成り立つことを示す。PPRにおいてランダムウォークがシードノードに至るのは、(1)ランダムウォークが確率cでシードノードにジャンプするか、(2)ランダムウォークがその過程でシードノードに至るかの2つの場合である。(1)の場合、ランダムウォークはあるシードノードuに確率cduでジャンプする。そのためシードノードuの定常状態における確率はcduより小さくなることはない。よってH(0)に含まれるノードに対して成り立つ。
次に、H(i-1)に含まれるノードに対してs v ≦ sv が成り立つ場合、H(i) に含まれるノードに対してs v ≦ svが成り立つことを示す。H(i - 1) に含まれるノードはグラフ全体のノードの部分集合でありc、du ≧ 0であるため、式(1)において以下が成り立つ。
Figure 0005727421
よって補助定理1 が成り立つ。
上位K個のノードを検索するために本実施の形態では一つ一つノードをたどり上限値と正確な関連度を計算する。関連度の上限値は関連度の下限値を用いて計算するが、uiをi番目にたどるノードとしたときに関連度の上限値は以下のように計算する。
定義3:ノードui
Figure 0005727421
は以下のように定義される。
Figure 0005727421
上限値を計算する計算コストはもしi = 1であればO(n) になる。またもしそうでなければ上限値はすでに計算した
Figure 0005727421
を用いて逐次的に計算できるため、その計算コストはO(1)になる。
本実施の形態ではノードは関連度の下限値の降順でたどられる。これには2つの理由がある。はじめの理由は下限値が大きいほど正確な下限値も大きくなることが期待されるからである。そのため効率的に上位K個のノードを検索できる。2つめの理由は以下に示す補助定理により検索の途中で処理を停止し、より高速に検索を行うためである。
補助定理2:ノードを関連度の下限値の降順にたどった場合、
Figure 0005727421
が成り立つ。
証明:まず
Figure 0005727421
になることを示す。式(8)と補助定理1 から以下の式が成り立つ。
Figure 0005727421
つぎに、
Figure 0005727421
が成り立つことを示す。式(8)から
Figure 0005727421
となる。よって成り立つ。
図6に、上位K個のノードを検索するアルゴリズム2を示す。このアルゴリズムに従って検索部20において実行される処理のフローチャートを図7に示す。アルゴリズム2 においてθは解候補のノード集合におけるK番目の関連度であり、Vaは解候補のノード集合であり、Veは探索済みのノード集合とする。この処理において、検索部20における関連度推定部21が、関連度の下限値及び上限値の計算を行い、関連度計算部22が正確な関連度の計算を行う。また、データ保存部23には、計算結果のデータ、計算途中のデータ、計算に必要な行列のデータや、その他の計算に必要なデータが格納される。検索処理制御部24は、アルゴリズム2の通りに処理が行われるように処理制御を行い、最終結果(K個の関連ノード)を出力する制御を行う。
アルゴリズム2において、初期化の後、関連度推定部21はデータ保存部23に格納するデータとして、関連度が0であるK個のダミーノードをVaに追加する(4行目、図7のステップ22)。そして関連度推定部21はすべてのノードに対して関連度の下限値を計算する(5行目、ステップ23)。そして最も関連度の下限値が高いノードを、データ保存部23に保存された探索していないノードの集合V\Veから選択し、選択されたノードの関連度の上限値を計算する(7〜8行目、ステップ24、25)。補助定理2から選択されたノードの関連度の上限値がθより小さい場合、そのノードおよび探索されていないノードは解ノードになり得ない。そのため、その場合に関連度推定部21は処理を停止する(9〜10行目、ステップ26、27)。
もしそうでなければ、選択されたノードは解になり得る。そのため、そのノードの正確な関連度を関連度計算部22が計算する(12行目、ステップ28)。もし計算した関連度がθ より大きければ、関連度計算部22はデータ保存部23において解候補の集合VaとK番目の関連度θを更新する(13〜18行目、ステップ29〜33)。
このアルゴリズムが正確に解ノードを検索できることを示すために以下の定理を示す。
定理2:アルゴリズム2は上位K個のノードを正確に検索する。
定理2の証明:θKを解ノードにおけるK番目の関連度とした場合、解ノードの関連度の上限値はθKより小さくなることはない(補助定理2)。もし関連度の上限値がθより小さければ、アルゴリズム2はノードを枝刈りする。解候補のノード集合におけるK番目の関連度θはθKより大きくなることはないため、解ノードがアルゴリズム2により枝刈りされることはない。またもしあるノードがθより小さければ、そのノードはアルゴリズム2 により枝刈りされる。よって定理2が成り立つ。
上位K個のノードを検索するために必要な計算コストは以下のようになる。
定理3:アルゴリズム2 はO(n log n + m + |F| + |Q|)の計算コストを要する。
定理3の証明:アルゴリズム2 はまずすべてのノードに対して関連度の下限値を計算するが、下限値はO(n + m)の計算コストを要する幅優先探索で計算できる。そして関連度の下限値が最も大きいノードを選択しその関連度の上限値を計算するが、もしどのノードも枝刈りされなければ、これらはそれぞれO(n log n) とO(n)の計算コストを要する。
Figure 0005727421
であるため、定理1からすべてのノードの関連度を計算するにはO(|F| + |Q|)の計算コストを要する。そのため上位K 個のノードを検索をするためには、O(n log n +m+ |F| + |Q|) の計算コストを要する。
<閾値εより大きい関連度を持つノードの範囲検索>
これまで上位K個のノードを検索する方法について説明したが、本実施の形態に係る関連ノード検索装置1により、閾値εより大きい関連度を持つノードを検索することもできる。すなわち本実施の形態に係る関連ノード検索装置1により、閾値εより大きい関連度を持つノードの範囲検索が可能である。以下にその詳細を説明する。
閾値εより大きい関連度を持つノードを検索するために関連度の下限値を用いる。具体的には、もしあるノードの関連度の下限値が閾値εより大きい場合、明らかにそのノードの正確な関連度は閾値εより大きくなる。そのためそのようなノードに対して正確な関連度の計算を省略する。上位K個のノードを検索する場合と同様に、下限値の降順にノードを探索する。そして関連度の上限値を計算し、不要な関連度の計算を省略する。しかしもし正確な関連度の計算を行わない場合、定義3 を用いて上限値を計算することができない。そのためもし正確な関連度の計算を省略した場合、以下のように関連度の上限値を計算する。
定義4 :もしノードui-1の正確な関連度の計算を省略した場合、ノードui
Figure 0005727421
を以下のように計算する。
Figure 0005727421
この定義について以下の補助定理を示す。
補助定理3 :定義4に対してi番目に探索したノードuiに対して
Figure 0005727421
が成り立つ。また上限値を計算する計算コストはi ≠ 1であればO(1) になる。
補助定理3の証明:まず
Figure 0005727421
になることを示す。Vi-1をi - 1番目までに探索したノードの集合、Veをi - 1番目までに探索したノードの集合のうち、正確な関連度を計算したノードとすると、式(8)と補助定理1から以下の式が成り立つ。
Figure 0005727421
つぎに
Figure 0005727421
が成り立つことを示す。式(9)から
Figure 0005727421
となる。
次に、計算コストがi ≠ 1 であればO(1) になることを示す。これは
Figure 0005727421
を計算する前にすでに
Figure 0005727421
が計算済みであることから明らかである。よって成り立つ。
図8に、範囲検索のアルゴリズム3を示す。また、検索部20が、アルゴリズム3に従って実行する範囲検索のフローチャートを図9に示す。この処理において、検索部20における関連度推定部21が、アルゴリズム3に基づく関連度の下限値及び上限値の計算を行い、関連度計算部22が正確な関連度の計算を行う。また、データ保存部23には、計算結果のデータ、計算途中のデータ、計算に必要な行列のデータや、その他の計算に必要なデータが格納される。検索処理制御部24は、アルゴリズム3の通りに処理が行われるように処理制御を行い、最終結果(条件を満たす関連ノード)を出力する制御を行う。
このアルゴリズム3において、初期化の後、すべてのノードに対して関連度推定部21が関連度の下限値を計算する(3行目、図9のステップ41)。そして最も関連度の下限値が高いノードを、データ保存部23に格納された探索していないノードの集合から選択し、選択されたノードの関連度の上限値を関連度推定部21が計算する(5〜6行目、ステップ43、44)。もしその上限値がεより大きくなければ、そのノードおよび探索されていないノードは解ノードになり得ない。そのためその場合、関連度推定部21は処理を停止する(7〜8行目、ステップ45、46)。
もし選択されたノードの下限値がεより大きければ、そのノードは解ノードとなる。そのため、関連度推定部21は、データ保存部23においてそのノードを解ノードの集合に追加する(9〜10行目、ステップ47、48)。そうでなければ、関連度計算部22が正確な関連度を計算し、選択されたノードが解ノードか否かの確認を行う(11〜16行目、ステップ49〜51)。
アルゴリズム3 により正確に範囲検索を実施できることを以下に示す。
定理4 :アルゴリズム3 は範囲検索を正確にO(n log n + m + |F| + |Q|) の計算コストで行う。
まずアルゴリズム3は範囲検索を正確に行うことを示す。アルゴリズム3は選択されたノードの上限値がεより小さければ、そのノードとそれ以外の探索されていないノードを枝刈りする。またアルゴリズム3は選択されたノードの正確な関連度がεより小さければ、そのノードを枝刈りする。探索されていないノードの上限値は選択されたノードの上限値より小さくなることはないので、これらのノードが解ノードの集合に含まれることはない。
またアルゴリズム3は選択されたノードの下限値及び正確な関連度がεより大きい場合、そのノードを解ノードとする。よってアルゴリズム3 は範囲検索を正確に行う。
次にアルゴリズム3は範囲検索をO(n log n+m+|F|+|Q|)の計算コストで行うことを示す。アルゴリズム3はまずすべてのノードに対して関連度の下限値を計算するが、下限値はO(n+m)の計算コストを要する幅優先探索で計算できる。そして関連度の下限値が最も大きいノードを選択しその関連度の上限値を計算するが、もしどのノードも枝刈りされなければこれらはそれぞれO(n log n) とO(n) の計算コストを要する。
Figure 0005727421
であるため、定理1からすべてのノードの関連度を計算するにはO(|F| + |Q|)の計算コストを要する。そのため上位K個のノードを検索をするためにはO(n log n + m + |F| + |Q|) の計算コストを要する。よって定理4が成り立つ。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
1 関連ノード検索装置
10 事前計算部
11 ノード並び替え部
12 逆行列計算部
20 検索部
21 関連度推定部
22 関連度計算部
23 データ保存部
24 検索処理制御部

Claims (7)

  1. 複数のノードからなるグラフデータと問い合わせ分布からPPR(Personalized PageRank)に基づき関連度を計算し、関連度が高い順にK 個のノードを検索する、又は所定の閾値よりも大きい関連度を持つノードを検索する関連ノード検索装置であって、
    前記グラフデータから、PPRに基づく特定のノードの関連度を算出するために用いるユニタリ行列と上三角行列の逆行列を計算し、記憶手段に格納する事前計算手段と、
    前記問い合わせ分布、及び前記事前計算手段により求めたユニタリ行列と上三角行列の逆行列を用いて、関連度が高い順にK 個のノードを検索、又は所定の閾値よりも大きい関連度を持つノードを検索し、出力する検索手段と
    を備えることを特徴とする関連ノード検索装置。
  2. 前記事前計算手段は、
    前記ユニタリ行列と前記上三角行列の逆行列とがそれぞれ疎になるように、前記グラフデータにおけるノードを並び替え、ノードを並び替えたグラフデータを記憶手段に格納するノード並び替え手段と、
    前記ノード並び替え手段によりノードが並び替えられたグラフデータを用いて、前記ユニタリ行列と前記上三角行列の逆行列を計算する逆行列計算手段と、を備え、
    前記検索手段は、
    グラフの隣接行列及び前記問い合わせ分布に基づいて全てのノードについての関連度の下限値を推定し、当該下限値に基づいて関連度の上限値を推定する関連度推定手段と、
    前記関連度推定手段により推定された前記上限値に基づいて選択された関連度が高いことが期待されるノードについて、前記ユニタリ行列と前記上三角行列の逆行列を用いて関連度を計算する関連度計算手段と、を備える
    ことを特徴とする請求項1に記載の関連ノード検索装置。
  3. 前記検索手段において、
    前記関連度推定手段により、下限値の降順に、関連度の上限値が前記K番目の関連度未満又は前記所定の閾値未満となるまでノードを探索し、関連度の上限値が前記K番目の関連度未満又は前記所定の閾値未満にならない間は、前記関連度計算手段により正確な関連度を計算することにより、関連度が高い順にK 個のノードを検索、又は前記所定の閾値よりも大きい関連度を持つノードを検索する
    ことを特徴とする請求項2に記載の関連ノード検索装置。
  4. 複数のノードからなるグラフデータと問い合わせ分布からPPR(Personalized PageRank)に基づき関連度を計算し、関連度が高い順にK 個のノードを検索する、又は所定の閾値よりも大きい関連度を持つノードを検索する関連ノード検索装置が実行する関連ノード検索方法であって、
    前記グラフデータから、PPRに基づく特定のノードの関連度を算出するために用いるユニタリ行列と上三角行列の逆行列を計算し、記憶手段に格納する事前計算ステップと、
    前記問い合わせ分布、及び前記事前計算ステップにより求めたユニタリ行列と上三角行列の逆行列を用いて、関連度が高い順にK 個のノードを検索、又は所定の閾値よりも大きい関連度を持つノードを検索し、出力する検索ステップと
    を備えることを特徴とする関連ノード検索方法。
  5. 前記事前計算ステップは、
    前記ユニタリ行列と前記上三角行列の逆行列とがそれぞれ疎になるように、前記グラフデータにおけるノードを並び替え、ノードを並び替えたグラフデータを記憶手段に格納するノード並び替えステップと、
    前記ノード並び替えステップによりノードが並び替えられたグラフデータを用いて、前記ユニタリ行列と前記上三角行列の逆行列を計算する逆行列計算ステップと、を備え、
    前記検索ステップは、
    グラフの隣接行列及び前記問い合わせ分布に基づいて全てのノードについての関連度の下限値を推定し、当該下限値に基づいて関連度の上限値を推定する関連度推定ステップと、
    前記関連度推定ステップにより推定された前記上限値に基づいて選択された関連度が高いことが期待されるノードについて、前記ユニタリ行列と前記上三角行列の逆行列を用いて関連度を計算する関連度計算ステップと、を備える
    ことを特徴とする請求項4に記載の関連ノード検索方法。
  6. 前記検索ステップにおいて、
    前記関連度推定ステップにより、下限値の降順に、関連度の上限値が前記K番目の関連度未満又は前記所定の閾値未満となるまでノードを探索し、関連度の上限値が前記K番目の関連度未満又は前記所定の閾値未満にならない間は、前記関連度計算ステップにおいて正確な関連度を計算することにより、関連度が高い順にK 個のノードを検索、又は前記所定の閾値よりも大きい関連度を持つノードを検索する
    ことを特徴とする請求項5に記載の関連ノード検索方法。
  7. コンピュータを、請求項1ないし3のうちいずれか1項に記載の関連ノード検索装置における各手段として機能させるためのプログラム。
JP2012161986A 2012-07-20 2012-07-20 関連ノード検索装置、関連ノード検索方法、及びプログラム Active JP5727421B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012161986A JP5727421B2 (ja) 2012-07-20 2012-07-20 関連ノード検索装置、関連ノード検索方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012161986A JP5727421B2 (ja) 2012-07-20 2012-07-20 関連ノード検索装置、関連ノード検索方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2014021862A JP2014021862A (ja) 2014-02-03
JP5727421B2 true JP5727421B2 (ja) 2015-06-03

Family

ID=50196634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012161986A Active JP5727421B2 (ja) 2012-07-20 2012-07-20 関連ノード検索装置、関連ノード検索方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5727421B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106952166A (zh) * 2016-01-07 2017-07-14 腾讯科技(深圳)有限公司 一种社交平台的用户影响力估算方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6190324B2 (ja) * 2014-06-09 2017-08-30 日本電信電話株式会社 検索装置、検索方法および検索プログラム
CN104933621A (zh) * 2015-06-19 2015-09-23 天睿信科技术(北京)有限公司 一种担保圈的大数据分析系统和方法
JP6974248B2 (ja) * 2018-05-02 2021-12-01 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106952166A (zh) * 2016-01-07 2017-07-14 腾讯科技(深圳)有限公司 一种社交平台的用户影响力估算方法及装置

Also Published As

Publication number Publication date
JP2014021862A (ja) 2014-02-03

Similar Documents

Publication Publication Date Title
Heimann et al. Regal: Representation learning-based graph alignment
Hayashi et al. Fully dynamic betweenness centrality maintenance on massive networks
Qi et al. Computing the nearest Euclidean distance matrix with low embedding dimensions
JP5727421B2 (ja) 関連ノード検索装置、関連ノード検索方法、及びプログラム
US10191998B1 (en) Methods of data reduction for parallel breadth-first search over graphs of connected data elements
JP5506711B2 (ja) 類似ノード検索装置及び方法及びプログラム
US20210034928A1 (en) Combinatorial bayesian optimization using a graph cartesian product
WO2015192798A1 (zh) 主题挖掘方法和装置
Avron et al. Community detection using time-dependent personalized pagerank
Rising et al. An efficient algorithm for the symmetric principal minor assignment problem
Coşkun et al. Indexed fast network proximity querying
Yu et al. Apple: Approximate path for penalized likelihood estimators
JP2014228975A (ja) 検索装置、検索方法および検索プログラム
CN111177190B (zh) 数据处理方法、装置、电子设备及可读存储介质
JP6721535B2 (ja) Lle計算装置、lle計算方法及びlle計算プログラム
Reinecke et al. Phase-type distributions
JP5647166B2 (ja) 類似ノード検索装置及び方法及びプログラム
Liao et al. Efficient Resistance Distance Computation: the Power of Landmark-based Approaches
JP6005583B2 (ja) 検索装置、検索方法および検索プログラム
Lu et al. A matrix sampling approach for efficient SimRank computation
Kahou et al. A partitioning algorithm for block-diagonal matrices with overlap
Bergamaschi et al. Efficiently preconditioned inexact Newton methods for large symmetric eigenvalue problems
Tunzi et al. Determining the connectedness of an undirected graph
Yang et al. Efficient Estimation of Pairwise Effective Resistance
Huang et al. Efficient algorithms for ‘universally’constrained matrix and tensor factorization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141114

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: 20150331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150402

R150 Certificate of patent or registration of utility model

Ref document number: 5727421

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150