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

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

Info

Publication number
JP2014229110A
JP2014229110A JP2013108843A JP2013108843A JP2014229110A JP 2014229110 A JP2014229110 A JP 2014229110A JP 2013108843 A JP2013108843 A JP 2013108843A JP 2013108843 A JP2013108843 A JP 2013108843A JP 2014229110 A JP2014229110 A JP 2014229110A
Authority
JP
Japan
Prior art keywords
subgraph
calculation
nodes
candidate node
node
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
JP2013108843A
Other languages
English (en)
Other versions
JP6005583B2 (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 JP2013108843A priority Critical patent/JP6005583B2/ja
Publication of JP2014229110A publication Critical patent/JP2014229110A/ja
Application granted granted Critical
Publication of JP6005583B2 publication Critical patent/JP6005583B2/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

【課題】PageRankに基づくノード検索において、高速に検索結果を得る。【解決手段】検索装置10の部分グラフ構築部11は、グラフGと、解ノードの個数を示すkを入力とし、繰り返し計算回数を示すiについての部分グラフGiを計算する。ランダムウォーク確率計算部12は、部分グラフGiに対応するランダムウォークの確率ri[u]を計算する。推定値計算部13は、ランダムウォークの確率ri[u]および候補ノードCiから、候補ノードCiの全てのノードに対してPageRankのスコアの下限値および上限値の推定値を計算する。候補ノード計算部14は、候補ノードCiから、(i+1)回目の繰り返し計算における候補ノードの集合Ci+1を計算し、候補ノードの集合Ci+1の要素数|Ci+1|がkに等しい場合には、候補ノードの集合Ci+1を解ノードとして出力する。【選択図】図1

Description

本発明は、検索装置、検索方法および検索プログラムに関する。
近年、ソーシャルネットワークに代表されるように、大規模なネットワークの利用が進んでいる。そして、大規模なネットワークに対して、データマイニングや検索をおこなうシステムの重要性が増している。ネットワーク構成は、ネットワークを構築するコンピュータをノードとし、各ノード間の接続を示すリンクをエッジとするグラフデータとして表現できる。このため、ネットワーク構成をグラフデータとして取り扱うグラフデータベースに問い合わせをおこない、グラフのノードの検索、分類、解析などをおこなうことへの関心が高まりつつある。
例えば、ノードとしてのコンピュータがウェブサイトである場合に、ウェブページの重要度を決定するためのアルゴリズムとしてPageRankのアルゴリズムがある。このPageRankのアルゴリズムは、ランダムサーファーモデルに基づきノードの重要度を計算する。ランダムサーファーモデルは、ユーザが複数回ウェブページのリンクをクリックした後にランダムなページにジャンプするという行動をモデル化したものである。
PageRankによるノードの重要度は、ランダムウォークの定常状態における確率に対応する。PageRankの各処理ステップでは、現在のノードからリンク先のノードを選択して移動し、また一定の確率でランダムなページへジャンプする。その有効性から、PageRankは、様々なアプリケーションに応用されている。
Lawrence Page、Sergey Brin、Rajeev Motwani、Terry Winograd、"The PageRank Citation Ranking:Bringing Order to the Web"、1999
しかしながら、上述の従来技術では、PageRankの計算コストが高いという問題がある。すなわち、従来技術によるPageRankの計算では、グラフ全体を用いて全てのノードのスコアが収束するまで繰り返し計算を行わなければならないため、大規模なグラフに対しては高速に重要度の高いノードの検索ができない。
本願が開示する実施形態は、上記に鑑みてなされたものであって、PageRankに基づくノード検索において、高速に検索結果を得ることを目的とする。
本願が開示する実施形態の一例は、コンピュータネットワークを形成する機器をノードとし、機器間の接続をエッジとするコンピュータネットワークのグラフを、解ノードの個数を示すk(kは前記ノードの数を超えない正整数)の入力を受け付けて検索し、k個の解ノードを出力する検索装置である。検索装置は、0を初期値とし、+1ずつインクリメントされるiについて、i=0の場合にはグラフを部分グラフとし、i>0の場合にはi回目の繰り返し計算における候補ノードに基づく(i−1)回目の繰り返し計算におけるグラフの部分グラフへ到達可能なノードの集合からi回目の繰り返し計算におけるグラフの部分グラフを構築する部分グラフ構築処理を実行する。また、検索装置は、部分グラフに対応するランダムウォークの確率を計算する。また、検索装置は、ランダムウォークの確率およびi回目の繰り返し計算における候補ノードの全てのノードに対するPageRankのスコアの下限値の推定値および上限値の推定値を計算する。また、検索装置は、i回目の繰り返し計算における候補ノードから(i+1)回目の繰り返し計算における候補ノードを計算し、当該(i+1)回目の繰り返し計算における候補ノードの集合の要素数がkに等しい場合には当該(i+1)回目の繰り返し計算における候補ノードの集合を解ノードとして出力し、当該(i+1)回目の繰り返し計算における候補ノードの集合の要素数がkと異なる場合には、当該(i+1)をさらに+1インクリメントさせたあらたなiについて部分グラフ構築処理を実行させる。そして、検索装置は、あらたなiについて部分グラフ構築処理を実行させる場合は、当該あらたなiについて、上述の各処理を再度、順次実行する。
本願が開示する実施形態によれば、例えば、PageRankに基づくノード検索において、高速に検索結果を得ることができる。
図1は、検索装置の構成を示すブロック図である。 図2は、検索処理を示すフローチャートである。 図3は、検索アルゴリズムを示す図である。 図4は、検索プログラムを実行するコンピュータの一例を示す図である。
以下に、本願が開示する検索装置などの実施形態を図面に基づいて説明する。以下の実施形態は、コンピュータネットワークを形成する機器をノードとし、機器間の接続をエッジとするコンピュータネットワークのグラフを、解ノードの個数を示すk(kはノードの数を超えない正整数)の入力を受け付けて検索する際に、PageRankのスコアが上位kである候補ノードを、解ノードとして出力する。なお、以下の実施形態は、一例を示すに過ぎず、本願が開示する技術を限定するものではない。
[記号の定義]
実施形態の説明で用いる記号を下表に示す。なお、実施形態の説明では、ベクトルをボールド体のラテン小文字、行列をボールド体のラテン大文字で表記する。
Figure 2014229110
(従来技術の概要および問題点)
実施形態の説明に先立ち、従来技術の概要および問題点について説明する。従来技術では、PageRankは、ランダムなノードからランダムウォークを開始し、各処理ステップにおいて再帰的にランダムウォークを確率s(0<s<1)で繰り返す。また、従来技術では、各処理ステップにおいて、一定の確率(1−s)でランダムなノードへジャンプする。
集合Vをグラフ全体のノードとし、集合Eをエッジの集合とすると、問い合わせ対象のグラフGは、G={V,E}と表現できる。ここで、
Figure 2014229110
をu番目の要素p[u]がノードuのPageRankのスコアに対応する列ベクトルとする。また、Nをグラフのノード数とする場合に、
Figure 2014229110
を全ての要素の値が1/Nである列ベクトルとする。また、W[u,v]をノードvからノードuへ移動する確率とする場合に、
Figure 2014229110
を列要素が正規化されたグラフの隣接行列とする。各ノードのPageRankのスコアは、以下の式(1)を再帰的に収束するまで繰り返し計算を行うことで得られる。
Figure 2014229110
ここで、i=0であれば、
Figure 2014229110

Figure 2014229110
に設定される。この繰り返し計算を行う従来技術の手法は、各ノードにおけるPageRankのスコアが収束するまでおこなわれる。Mをグラフのエッジ数とし、Tを収束するまでの繰り返し計算の計算回数とすると、この繰り返し計算は、O((N+M)・T)の計算コストを要する。そのため、従来技術の手法は、大規模なグラフに対して高速に検索が行えないという問題がある。なお、O(*)は、ランダウの記号である。
[実施形態]
(実施形態の概要)
以下に説明する実施形態は、上述の従来技術の問題点を解決するものである。実施形態では、計算コストを低減するために、PageRankのスコアの下限値の推定値および上限値の推定値を計算する。すなわち、実施形態は、従来技術の手法のように検索対象のグラフ全体を用いるのではなく、PageRankのスコアの下限値および上限値の推定値により、不要なノードとエッジを検索対象のグラフから除外した部分グラフに対してPageRankのスコアの繰り返し計算をおこなうことにより、ノード検索をおこなう。
以下の実施形態では、まず、実施形態にかかる計算処理方法および理論的背景を説明し、次に、実施形態にかかる検索装置の構成および処理を説明する。
<計算処理方法および理論的背景>
(PageRankのスコアの下限値および上限値の推定方法)
実施形態では、PageRankのスコアのi(i=0,1,2,・・・、(非負整数))番目の繰り返し計算において、候補ノードの集合に含まれるノードのPageRankのスコアの下限値および上限値の推定値を計算する。以下では、PageRankのスコアの下限値を「下限値」、PageRankのスコアの上限値を「上限値」、PageRankのスコアの下限値の推定値を「下限値の推定値」、PageRankのスコアの上限値の推定値を「上限値の推定値」、PageRankのスコアの下限値の推定値および上限値の推定値を「推定値」と適宜表記する。なお、候補ノードの集合を求める方法については、後述する。
上限値を計算するために、候補ノードの集合Cに到達可能なノードの集合Rを用いる。ここで、ノードuがノードvへ到達可能であるとは、グラフ上にノードuからノードvへのパスが存在するということである。またu番目の要素がエッジの最大の重みから、
Figure 2014229110
となるN×1の列ベクトルを
Figure 2014229110
とする。
また、長さがiのランダムウォークの確率をN×1の列ベクトル
Figure 2014229110
とする。なお、
Figure 2014229110
のu列目の成分をr[u]とする。ここで、グラフの隣接行列
Figure 2014229110
のi乗を用いて、
Figure 2014229110

Figure 2014229110
と計算できる。なお、i=0ならば、
Figure 2014229110
とする。i番目の繰り返し計算における下限値
Figure 2014229110
と、i番目の繰り返し計算における上限値
Figure 2014229110
を以下のように定義する。
Figure 2014229110
Figure 2014229110
これらの推定値の性質を、以下の補助定理1、補助定理2、補助定理3で示す。なお、補助定理3は、実施形態では、推定値が収束することを示す。
Figure 2014229110
Figure 2014229110
Figure 2014229110
実施形態は、再帰的に上位k個のノードを検索するために候補ノードを計算し、候補ノードの数がk個になれば繰り返し計算を終了する。推定値を計算するために、候補ノードの集合に含まれるノードに対して部分グラフを計算する。そして、候補ノードは、繰り返し計算の中で動的に更新される。
(候補ノードについて)
以下に、候補ノードおよび部分グラフの定義、ならびに、候補ノードおよび部分グラフの性質を示す。閾値εi−1を(i−1)番目の繰り返し計算におけるk番目に高い下限値とし、i番目の繰り返し計算における候補ノードの集合Cを以下のように定義する。
Figure 2014229110
集合Cの性質は、以下のとおりである。
Figure 2014229110
補助定理4から、A⊆Cであるため、各繰り返し計算において、候補ノードの集合Ci−1から候補ノードの集合Cを、以下のように逐次的に計算できる。
Figure 2014229110
また、候補ノードの集合C(i=0,1,2,・・・)は、以下のとおり、iについて単調減少する。
Figure 2014229110
(部分グラフについて)
また、実施形態は、部分グラフを用いて、候補ノードに対する推定値を計算する。ここで、i番目の繰り返し計算における部分グラフGを、以下のように定義する。
Figure 2014229110
部分グラフの集合G(i=0,1,2,・・・)について、次が成り立つ。
Figure 2014229110
また、部分グラフの集合G(i=0,1,2,・・・)は、以下のとおり、iについて単調減少する。
Figure 2014229110
(推定値の計算について)
また、i番目の繰り返し計算における下限値および上限値は、部分グラフの集合Gを用いて、逐次的に、以下のように計算する。なお、補助定理7に基づき部分グラフの集合Gを構築する方法は、後述する。
Figure 2014229110
そして、定義6によるi番目の繰り返し計算における下限値および上限値の計算の計算コストは、以下のとおりである。
Figure 2014229110
以上から、以下の2つの主張を、定理として示す。
Figure 2014229110
Figure 2014229110
<検索装置の構成および処理>
(検索装置の構成)
図1は、検索装置の構成を示すブロック図である。実施形態にかかる検索装置10は、ノード検索の問い合わせに用いるグラフGと、解ノードの個数kを入力とし、候補ノードの要素数がkに等しい場合に、PageRankのスコアが上位kである候補ノードを解ノードとして出力する。図1に示すように、検索装置10は、部分グラフ構築部11、ランダムウォーク確率計算部12、推定値計算部13、候補ノード計算部14を有する。
部分グラフ構築部11は、問い合わせに用いるグラフGと、解ノードの個数を示すk(kはノードの数を超えない正整数)を入力とし、繰り返し計算回数を示すi(iは非負整数)について、部分グラフGを計算して出力する。
具体的には、部分グラフ構築部11は、i=0の場合には、候補ノードCの初期集合であるCに関してC=V、部分グラフGの初期集合であるGに関してG=Gをセットする。そして、部分グラフ構築部11は、ランダムウォーク確率計算部12へ、部分グラフGを出力する。
一方、部分グラフ構築部11は、i≠0の場合には、iを+1インクリメントする。この+1インクリメントにより、部分グラフ構築部11が計算した部分グラフGは、部分グラフGi−1となる。そして、部分グラフ構築部11は、定義3の式(5)および定義4の式(6)に基づいて候補ノードCを計算する。そして、部分グラフ構築部11は、補助定理7に基づいて、幅優先探索により、候補ノードCから部分グラフGi−1に到達可能なノードの集合Rを計算する。そして、部分グラフ構築部11は、定義5に基づいて、ノードの集合Rから部分グラフGを計算し、ランダムウォーク確率計算部12へ出力する。
ランダムウォーク確率計算部12は、部分グラフ構築部11が出力した部分グラフGを入力とし、補助定理6および定義6に基づいて、部分グラフGに対応するランダムウォークの確率r[u]を計算し、推定値計算部13へ出力する。
推定値計算部13は、ランダムウォーク確率計算部12が出力したランダムウォークの確率r[u]および部分グラフ構築部11が計算した候補ノードCから、定義6に基づいて、候補ノードCの全てのノードに対してPageRankのスコアの下限値の推定値および上限値の推定値を計算する。そして、推定値計算部13は、計算した推定値を、候補ノード計算部14へ出力する。
候補ノード計算部14は、部分グラフ構築部11が計算した候補ノードCから、i番目の繰り返し計算におけるk番目に高い下限値である閾値εを計算する。そして、候補ノード計算部14は、定義3および定義4、ならびに、計算した閾値εに基づいて、(i+1)回目の繰り返し計算における候補ノードの集合Ci+1を計算する。そして、候補ノード計算部14は、候補ノードの集合Ci+1の要素数|Ci+1|がkに等しいか否かを判定する。そして、候補ノード計算部14は、要素数|Ci+1|がkに等しい場合には、候補ノードの集合Ci+1を解ノードとして出力する。一方、候補ノード計算部14は、要素数|Ci+1|がkと異なる場合には、部分グラフ構築部11に対して、iの+1インクリメント処理以降の処理をおこなわせる。
(検索処理)
図2は、検索処理を示すフローチャートである。まず、検索装置10の部分グラフ構築部11は、問い合わせに用いるグラフGと、解ノードの個数を示すk(kはノードの数を超えない正整数)の入力を受け付ける(ステップS10)。続いて、検索装置10の部分グラフ構築部11は、繰り返し計算回数を示すiに0をセットし、候補ノードの集合Vの初期集合にCをセットし、グラフGの部分グラフの初期集合にGをセットする初期化をおこなう(ステップS12)。
続いて、検索装置10の部分グラフ構築部11は、i≠0であるか否かを判定する(ステップS13)。検索装置10の部分グラフ構築部11は、i≠0である場合に(ステップS13Yes)、ステップS14へ処理を移す。一方、検索装置10の部分グラフ構築部11は、i=0である場合に(ステップS13No)、ステップS17へ処理を移す。
ステップS14では、検索装置10の部分グラフ構築部11は、iを+1インクリメントする。続いて、検索装置10の部分グラフ構築部11は、定義3の式(5)および定義4の式(6)に基づいて候補ノードCを計算し、補助定理7に基づいて、幅優先探索により、候補ノードCから部分グラフGi−1に到達可能なノードの集合Rを計算する(ステップS15)。続いて、検索装置10の部分グラフ構築部11は、定義5に基づいて、ノードの集合Rから部分グラフGを計算する(ステップS16)。
続いて、検索装置10のランダムウォーク確率計算部12は、補助定理6および定義6に基づいて、部分グラフGに対応するランダムウォークの確率r[u]を計算する(ステップS17)。
続いて、検索装置10の推定値計算部13は、ランダムウォークの確率r[u]および候補ノードCから、定義6に基づいて、候補ノードCの全てのノードに対してPageRankのスコアの下限値の推定値および上限値の推定値を計算する(ステップS18)。
続いて、検索装置10の候補ノード計算部14は、候補ノードCから閾値εを計算し、定義3および定義4、ならびに、閾値εに基づいて、(i+1)回目の繰り返し計算における候補ノードの集合Ci+1を計算する(ステップS19)。続いて、検索装置10の候補ノード計算部14は、候補ノードの集合Ci+1の要素数|Ci+1|がkに等しいか否かを判定する(ステップS20)。検索装置10の候補ノード計算部14は、要素数|Ci+1|がkに等しい場合には(ステップS20Yes)、ステップS21へ処理を移す。一方、検索装置10の候補ノード計算部14は、要素数|Ci+1|がkと異なる場合には(ステップS20No)、ステップS14へ処理を移す。ステップS21では、検索装置10の候補ノード計算部14は、候補ノードCi+1を、解ノードとして出力する。ステップS21が終了すると、検索装置10は、検索処理を終了する。
以上の検索処理によれば、検索における事前計算を要さず、アドホックに検索をおこなうことができる。また、以上の検索処理によれば、内部パラメータの設定を要さないため、ユーザは、簡易にPageRankによる検索を行うことができる。
(検索アルゴリズム)
図3は、検索アルゴリズムを示す図である。図3に示す検索アルゴリズムは、図2の検索処理のフローチャートが示す処理に対応する。図3に示すように、検索アルゴリズムは、i=0ならば、定義3および定義5から、集合C、グラフGをそれぞれC=V、G=Gとして初期化する(図3の第2行目〜第3行目)。検索アルゴリズムは、i≠0ならば、グラフGi−1に幅優先探索を用いて集合Cから集合Rを計算する(図3の第7行目)。これは、補助定理7から、部分グラフGに対してG⊆Gi−1という性質があるからである。そして、検索アルゴリズムは、定義5から、集合Rを用いて部分グラフGを計算する(図3の第8行目)。
そして、検索アルゴリズムは、部分グラフGにおける各ノードに対してランダムウォークの確率を計算する(図3の第10行目〜第12行目)。これは、補助定理6から、推定値を計算するためにランダムウォークの確率が必要だからである。そして、検索アルゴリズムは、候補ノードCに対して推定値を計算し(図3の第13行目〜第15行目)、候補ノードCから閾値εを計算する(図3の第16行目)。
また、検索アルゴリズムは、候補ノードを更新し、Ci+1を計算する(図3の第17行目)。検索アルゴリズムは、集合Ci+1の要素数|Ci+1|がkと等しい、すなわち|Ci+1|=kであれば、補助定理4から、候補ノードの集合Ci+1に含まれるノードは全て解ノードである。よって、繰り返し計算を打ち切り(図3の第18行目)、候補ノードの集合Ci+1を解ノードとして出力する(図3の第19行目)。
(実施形態による効果)
以上の実施形態によれば、従来技術の手法と比較して、PageRankのスコアをグラフ全体ではなく部分グラフから計算することにより、高速に検索が可能である。また、以上の実施形態によれば、入力パラメータk(kはノード数を超えない自然数)に対し、PageRankのスコアの正確な上位k個のノードを検索できる。また、以上の実施形態によれば、検索に事前計算を要さず、任意のグラフに対してアドホックに検索をおこなうことができる。また、以上の実施形態によれば、内部パラメータの設定を要さないため、ユーザは、PageRankによる検索を簡易におこなうことができる。
(実施形態のシステム構成について)
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
また、検索装置10においておこなわれる各処理は、全部または任意の一部が、CPU(Central Processing Unit)およびCPUにより解析実行されるプログラムにて実現されてもよい。また、検索装置10においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
(プログラムについて)
また、実施形態において説明した検索装置10のCPUなどの制御装置が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、制御装置が実行する処理をコンピュータが実行可能な言語で記述した検索プログラムを作成することもできる。この場合、コンピュータが検索プログラムを実行することにより、実施形態と同様の効果を得ることができる。さらに、検索プログラムをコンピュータ読み取り可能な記録媒体に記録して、記録媒体に記録された検索プログラムをコンピュータに読み込ませて実行することにより実施形態と同様の処理を実現できる。以下に、図1に示した検索装置10と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
図4は、検索プログラムを実行するコンピュータ1000の一例を示す図である。コンピュータ1000は、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらは、バス1080によって接続される。
図4に示すように、メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。また、ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。また、ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、磁気ディスクや光ディスクなどの着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。また、ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
ここで、図4に例示するように、ハードディスクドライブ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によって読み出され、実行されてもよい。
10 検索装置
11 部分グラフ構築部
12 ランダムウォーク確率計算部
13 推定値計算部
14 候補ノード計算部

Claims (3)

  1. コンピュータネットワークを形成する機器をノードとし、前記機器間の接続をエッジとする前記コンピュータネットワークのグラフを、解ノードの個数を示すk(kは前記ノードの数を超えない正整数)の入力を受け付けて検索し、前記k個の解ノードを出力する検索装置であって、
    0を初期値とし、+1ずつインクリメントされるiについて、i=0の場合には前記グラフを部分グラフとし、i>0の場合にはi回目の繰り返し計算における候補ノードに基づく(i−1)回目の繰り返し計算における前記グラフの部分グラフへ到達可能なノードの集合からi回目の繰り返し計算における前記グラフの部分グラフを構築する部分グラフ構築処理を実行する部分グラフ構築部と、
    前記部分グラフ構築部が構築した部分グラフに対応するランダムウォークの確率を計算するランダムウォーク確率計算部と、
    前記ランダムウォーク確率計算部が計算したランダムウォークの確率およびi回目の繰り返し計算における前記候補ノードの全てのノードに対するPageRankのスコアの下限値の推定値および上限値の推定値を計算する推定値計算部と、
    i回目の繰り返し計算における前記候補ノードから(i+1)回目の繰り返し計算における前記候補ノードを計算し、当該(i+1)回目の繰り返し計算における前記候補ノードの集合の要素数が前記kに等しい場合には当該(i+1)回目の繰り返し計算における前記候補ノードの集合を解ノードとして出力し、当該(i+1)回目の繰り返し計算における前記候補ノードの集合の要素数が前記kと異なる場合には、前記部分グラフ構築部に当該(i+1)をさらに+1インクリメントさせたあらたなiについて前記部分グラフ構築処理を実行させる候補ノード計算部と
    を有し、
    前記候補ノード計算部が前記部分グラフ構築部に前記あらたなiについて前記部分グラフ構築処理を実行させる場合は、当該あらたなiについて、前記部分グラフ構築部、前記ランダムウォーク確率計算部、前記推定値計算部、前記候補ノード計算部が各処理を再度、順次実行する
    ことを特徴とする検索装置。
  2. コンピュータネットワークを形成する機器をノードとし、前記機器間の接続をエッジとする前記コンピュータネットワークのグラフを、解ノードの個数を示すk(kは前記ノードの数を超えない正整数)の入力を受け付けて検索し、前記k個の解ノードを出力する検索装置で実行される検索方法であって、
    0を初期値とし、+1ずつインクリメントされるiについて、i=0の場合には前記グラフを部分グラフとし、i>0の場合にはi回目の繰り返し計算における候補ノードに基づく(i−1)回目の繰り返し計算における前記グラフの部分グラフへ到達可能なノードの集合からi回目の繰り返し計算における前記グラフの部分グラフを構築する部分グラフ構築処理を実行する部分グラフ構築工程と、
    前記部分グラフ構築工程が構築した部分グラフに対応するランダムウォークの確率を計算するランダムウォーク確率計算工程と、
    前記ランダムウォーク確率計算工程が計算したランダムウォークの確率およびi回目の繰り返し計算における前記候補ノードの全てのノードに対するPageRankのスコアの下限値の推定値および上限値の推定値を計算する推定値計算工程と、
    i回目の繰り返し計算における前記候補ノードから(i+1)回目の繰り返し計算における前記候補ノードを計算し、当該(i+1)回目の繰り返し計算における前記候補ノードの集合の要素数が前記kに等しい場合には当該(i+1)回目の繰り返し計算における前記候補ノードの集合を解ノードとして出力し、当該(i+1)回目の繰り返し計算における前記候補ノードの集合の要素数が前記kと異なる場合には、前記部分グラフ構築工程に当該(i+1)をさらに+1インクリメントさせたあらたなiについて前記部分グラフ構築処理を実行させる候補ノード計算工程と
    を含み、
    前記候補ノード計算工程が前記部分グラフ構築工程に前記あらたなiについて前記部分グラフ構築処理を実行させる場合は、当該あらたなiについて、前記部分グラフ構築工程、前記ランダムウォーク確率計算工程、前記推定値計算工程、前記候補ノード計算工程が各処理を再度、順次実行する
    ことを特徴とする検索方法。
  3. コンピュータを、
    請求項1に記載の検索装置として機能させるための検索プログラム。
JP2013108843A 2013-05-23 2013-05-23 検索装置、検索方法および検索プログラム Expired - Fee Related JP6005583B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2014229110A true JP2014229110A (ja) 2014-12-08
JP6005583B2 JP6005583B2 (ja) 2016-10-12

Family

ID=52128898

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP6005583B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991592A (zh) * 2017-03-22 2017-07-28 南京财经大学 一种基于购买用户行为分析的个性化推荐方法
CN111079058A (zh) * 2019-12-16 2020-04-28 武汉大学 一种基于节点重要性的网络节点表示方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012160015A (ja) * 2011-01-31 2012-08-23 Nippon Telegr & Teleph Corp <Ntt> 類似ノード検索装置及び方法及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012160015A (ja) * 2011-01-31 2012-08-23 Nippon Telegr & Teleph Corp <Ntt> 類似ノード検索装置及び方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991592A (zh) * 2017-03-22 2017-07-28 南京财经大学 一种基于购买用户行为分析的个性化推荐方法
CN111079058A (zh) * 2019-12-16 2020-04-28 武汉大学 一种基于节点重要性的网络节点表示方法及装置

Also Published As

Publication number Publication date
JP6005583B2 (ja) 2016-10-12

Similar Documents

Publication Publication Date Title
JP5995409B2 (ja) コンピュータ解析のためにテキスト文書を表現するためのグラフィカル・モデル
KR102170929B1 (ko) 사용자 키워드 추출장치, 방법 및 컴퓨터 판독 가능한 저장매체
Vora et al. Kickstarter: Fast and accurate computations on streaming graphs via trimmed approximations
Pershina et al. Personalized page rank for named entity disambiguation
WO2017137000A1 (zh) 对描述同一实体的不同实例进行合并的方法、装置及设备
WO2016062044A1 (zh) 一种模型参数训练方法、装置及系统
JP6142727B2 (ja) データアクセス分析プログラム、データアクセス分析方法、及びデータアクセス分析装置
JPWO2014136810A1 (ja) 類似データ検索装置、類似データ検索方法、及びプログラム
De Vocht et al. Discovering meaningful connections between resources in the web of data
CN109241243B (zh) 候选文档排序方法及装置
WO2011134141A1 (en) Method of extracting named entity
WO2015192798A1 (zh) 主题挖掘方法和装置
JP2019513245A (ja) ソーシャルネットワークに基づいてグループを探索する方法、デバイス、サーバ及び記憶媒体
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
JP5506711B2 (ja) 類似ノード検索装置及び方法及びプログラム
US20110202511A1 (en) Graph searching
JP6005583B2 (ja) 検索装置、検索方法および検索プログラム
JP5727421B2 (ja) 関連ノード検索装置、関連ノード検索方法、及びプログラム
JP5869948B2 (ja) パッセージ分割方法、装置、及びプログラム
Papai et al. Constraint propagation for efficient inference in markov logic
JP6261669B2 (ja) クエリ校正システムおよび方法
WO2011016281A2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
Patra et al. Motif discovery in biological network using expansion tree
CN113297854A (zh) 文本到知识图谱实体的映射方法、装置、设备及存储介质
Hu et al. Bayesian data cleaning for Web data

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160622

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160907

R150 Certificate of patent or registration of utility model

Ref document number: 6005583

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees