JP6005583B2 - SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM - Google Patents
SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM Download PDFInfo
- Publication number
- JP6005583B2 JP6005583B2 JP2013108843A JP2013108843A JP6005583B2 JP 6005583 B2 JP6005583 B2 JP 6005583B2 JP 2013108843 A JP2013108843 A JP 2013108843A JP 2013108843 A JP2013108843 A JP 2013108843A JP 6005583 B2 JP6005583 B2 JP 6005583B2
- Authority
- JP
- Japan
- Prior art keywords
- subgraph
- calculation
- nodes
- candidate 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 35
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 238000004364 calculation method Methods 0.000 claims description 86
- 238000010276 construction Methods 0.000 claims description 35
- 238000005295 random walk Methods 0.000 claims description 29
- 238000010845 search algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- JTJMJGYZQZDUJJ-UHFFFAOYSA-N phencyclidine Chemical compound C1CCCCN1C1(C=2C=CC=CC=2)CCCCC1 JTJMJGYZQZDUJJ-UHFFFAOYSA-N 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、検索装置、検索方法および検索プログラムに関する。 The present invention relates to a search device, a search method, and a search program.
近年、ソーシャルネットワークに代表されるように、大規模なネットワークの利用が進んでいる。そして、大規模なネットワークに対して、データマイニングや検索をおこなうシステムの重要性が増している。ネットワーク構成は、ネットワークを構築するコンピュータをノードとし、各ノード間の接続を示すリンクをエッジとするグラフデータとして表現できる。このため、ネットワーク構成をグラフデータとして取り扱うグラフデータベースに問い合わせをおこない、グラフのノードの検索、分類、解析などをおこなうことへの関心が高まりつつある。 In recent years, as represented by social networks, the use of large-scale networks is progressing. And, the importance of data mining and retrieval systems for large-scale networks is increasing. The network configuration can be expressed as graph data in which a computer constituting the network is a node and a link indicating a connection between the nodes is an edge. For this reason, there is a growing interest in inquiring a graph database that handles network configuration as graph data and performing search, classification, analysis, etc. of graph nodes.
例えば、ノードとしてのコンピュータがウェブサイトである場合に、ウェブページの重要度を決定するためのアルゴリズムとしてPageRankのアルゴリズムがある。このPageRankのアルゴリズムは、ランダムサーファーモデルに基づきノードの重要度を計算する。ランダムサーファーモデルは、ユーザが複数回ウェブページのリンクをクリックした後にランダムなページにジャンプするという行動をモデル化したものである。 For example, when a computer as a node is a website, there is a PageRank algorithm as an algorithm for determining the importance of a web page. The PageRank algorithm calculates the importance of a node based on a random surfer model. The random surfer model models a behavior in which a user jumps to a random page after clicking a web page link a plurality of times.
PageRankによるノードの重要度は、ランダムウォークの定常状態における確率に対応する。PageRankの各処理ステップでは、現在のノードからリンク先のノードを選択して移動し、また一定の確率でランダムなページへジャンプする。その有効性から、PageRankは、様々なアプリケーションに応用されている。 The importance of the node by PageRank corresponds to the probability in the steady state of the random walk. In each processing step of PageRank, a link destination node is selected and moved from the current node, and jumps to a random page with a certain probability. Due to its effectiveness, PageRank is applied to various applications.
しかしながら、上述の従来技術では、PageRankの計算コストが高いという問題がある。すなわち、従来技術によるPageRankの計算では、グラフ全体を用いて全てのノードのスコアが収束するまで繰り返し計算を行わなければならないため、大規模なグラフに対しては高速に重要度の高いノードの検索ができない。 However, the above-described conventional technique has a problem that the calculation cost of PageRank is high. In other words, in the conventional PageRank calculation, the entire graph must be used repeatedly until the scores of all the nodes converge. Therefore, for large-scale graphs, high-priority nodes are searched at high speed. I can't.
本願が開示する実施形態は、上記に鑑みてなされたものであって、PageRankに基づくノード検索において、高速に検索結果を得ることを目的とする。 An embodiment disclosed in the present application has been made in view of the above, and an object thereof is to obtain a search result at high speed in a node search based on 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インクリメントさせたあらたなiについて部分グラフ構築処理を実行させる。そして、検索装置は、あらたなiについて部分グラフ構築処理を実行させる場合は、当該あらたなiについて、上述の各処理を再度、順次実行する。 An example of an embodiment disclosed in the present application is a graph of a computer network in which a device forming a computer network is a node and a connection between devices is an edge, and k (k is greater than the number of nodes) indicating the number of solution nodes. This is a search device that accepts and searches for (no positive integer) input and outputs k solution nodes. The search device sets 0 as an initial value, i is incremented by +1, and if i = 0, the graph is a partial graph, and if i> 0, it is based on the candidate node in the i-th iteration (i -1) A subgraph construction process for constructing a subgraph of the graph in the i-th iterative calculation is executed from a set of nodes that can reach the subgraph of the graph in the iterative calculation of the first time. The search device also calculates the probability of random walk corresponding to the subgraph. Further, the search device calculates the probability of random walk and the estimated value of the lower limit value and the estimated upper limit value of the PageRank score for all the candidate nodes in the i-th iterative calculation. Further, the search device calculates a candidate node in the (i + 1) -th iteration calculation from a candidate node in the i-th iteration calculation, and the number of elements in the candidate node set in the (i + 1) -th iteration calculation is equal to k. Output a set of candidate nodes in the (i + 1) -th iteration calculation as a solution node, and if the number of elements in the candidate node set in the (i + 1) -th iteration calculation is different from k, i The subgraph construction process is executed for the new i incremented by +1. Then, when the subgraph construction process is executed for the new i, the search device sequentially executes the above-described processes again for the new i.
本願が開示する実施形態によれば、例えば、PageRankに基づくノード検索において、高速に検索結果を得ることができる。 According to the embodiment disclosed in the present application, for example, a search result can be obtained at high speed in a node search based on PageRank.
以下に、本願が開示する検索装置などの実施形態を図面に基づいて説明する。以下の実施形態は、コンピュータネットワークを形成する機器をノードとし、機器間の接続をエッジとするコンピュータネットワークのグラフを、解ノードの個数を示すk(kはノードの数を超えない正整数)の入力を受け付けて検索する際に、PageRankのスコアが上位kである候補ノードを、解ノードとして出力する。なお、以下の実施形態は、一例を示すに過ぎず、本願が開示する技術を限定するものではない。 Hereinafter, embodiments of a search device and the like disclosed in the present application will be described with reference to the drawings. In the following embodiment, a graph of a computer network in which devices forming a computer network are nodes and connections between devices are edges is represented by k indicating the number of solution nodes (k is a positive integer not exceeding the number of nodes). When an input is received and a search is performed, a candidate node having a PageRank score of higher k is output as a solution node. The following embodiments are merely examples, and do not limit the technology disclosed by the present application.
[記号の定義]
実施形態の説明で用いる記号を下表に示す。なお、実施形態の説明では、ベクトルをボールド体のラテン小文字、行列をボールド体のラテン大文字で表記する。
[Definition of symbols]
The symbols used in the description of the embodiment are shown in the following table. In the description of the embodiment, the vector is expressed in bold Latin small letters, and the matrix is expressed in bold Latin capital letters.
(従来技術の概要および問題点)
実施形態の説明に先立ち、従来技術の概要および問題点について説明する。従来技術では、PageRankは、ランダムなノードからランダムウォークを開始し、各処理ステップにおいて再帰的にランダムウォークを確率s(0<s<1)で繰り返す。また、従来技術では、各処理ステップにおいて、一定の確率(1−s)でランダムなノードへジャンプする。
(Overview of conventional technology and problems)
Prior to the description of the embodiments, the outline and problems of the prior art will be described. In the prior art, PageRank starts a random walk from a random node, and recursively repeats the random walk with probability s (0 <s <1) in each processing step. In the prior art, each processing step jumps to a random node with a certain probability (1-s).
集合Vをグラフ全体のノードとし、集合Eをエッジの集合とすると、問い合わせ対象のグラフGは、G={V,E}と表現できる。ここで、
をu番目の要素p[u]がノードuのPageRankのスコアに対応する列ベクトルとする。また、Nをグラフのノード数とする場合に、
を全ての要素の値が1/Nである列ベクトルとする。また、W[u,v]をノードvからノードuへ移動する確率とする場合に、
を列要素が正規化されたグラフの隣接行列とする。各ノードのPageRankのスコアは、以下の式(1)を再帰的に収束するまで繰り返し計算を行うことで得られる。
If the set V is a node of the whole graph and the set E is a set of edges, the graph G to be queried can be expressed as G = {V, E}. here,
Is a column vector in which the u-th element p [u] corresponds to the PageRank score of the node u. If N is the number of nodes in the graph,
Is a column vector in which the values of all elements are 1 / N. When W [u, v] is a probability of moving from node v to node u,
Let be the adjacency matrix of a graph with normalized column elements. The PageRank score of each node is obtained by repeatedly calculating the following expression (1) until it converges recursively.
ここで、i=0であれば、
は
に設定される。この繰り返し計算を行う従来技術の手法は、各ノードにおけるPageRankのスコアが収束するまでおこなわれる。Mをグラフのエッジ数とし、Tを収束するまでの繰り返し計算の計算回数とすると、この繰り返し計算は、O((N+M)・T)の計算コストを要する。そのため、従来技術の手法は、大規模なグラフに対して高速に検索が行えないという問題がある。なお、O(*)は、ランダウの記号である。
Here, if i = 0,
Is
Set to The conventional technique for performing this iterative calculation is performed until the PageRank score at each node converges. Assuming that M is the number of edges in the graph and T is the number of calculation times until convergence, this iterative calculation requires a calculation cost of O ((N + M) · T). For this reason, the conventional technique has a problem that a large-scale graph cannot be searched at high speed. O (*) is a Landau symbol.
[実施形態]
(実施形態の概要)
以下に説明する実施形態は、上述の従来技術の問題点を解決するものである。実施形態では、計算コストを低減するために、PageRankのスコアの下限値の推定値および上限値の推定値を計算する。すなわち、実施形態は、従来技術の手法のように検索対象のグラフ全体を用いるのではなく、PageRankのスコアの下限値および上限値の推定値により、不要なノードとエッジを検索対象のグラフから除外した部分グラフに対してPageRankのスコアの繰り返し計算をおこなうことにより、ノード検索をおこなう。
[Embodiment]
(Outline of the embodiment)
Embodiment described below solves the problem of the above-mentioned prior art. In the embodiment, in order to reduce the calculation cost, the estimated value of the lower limit value and the estimated value of the upper limit value of the PageRank score are calculated. That is, the embodiment excludes unnecessary nodes and edges from the search target graph based on the estimated lower and upper limit values of the PageRank score instead of using the entire search target graph as in the conventional technique. Node search is performed by repeatedly calculating the PageRank score for the subgraph.
以下の実施形態では、まず、実施形態にかかる計算処理方法および理論的背景を説明し、次に、実施形態にかかる検索装置の構成および処理を説明する。 In the following embodiments, first, the calculation processing method and theoretical background according to the embodiment will be described, and then the configuration and processing of the search device according to the embodiment will be described.
<計算処理方法および理論的背景>
(PageRankのスコアの下限値および上限値の推定方法)
実施形態では、PageRankのスコアのi(i=0,1,2,・・・、(非負整数))番目の繰り返し計算において、候補ノードの集合に含まれるノードのPageRankのスコアの下限値および上限値の推定値を計算する。以下では、PageRankのスコアの下限値を「下限値」、PageRankのスコアの上限値を「上限値」、PageRankのスコアの下限値の推定値を「下限値の推定値」、PageRankのスコアの上限値の推定値を「上限値の推定値」、PageRankのスコアの下限値の推定値および上限値の推定値を「推定値」と適宜表記する。なお、候補ノードの集合を求める方法については、後述する。
<Calculation processing method and theoretical background>
(Method for estimating the lower and upper limits of PageRank score)
In the embodiment, in the i (i = 0, 1, 2,..., (Non-negative integer)) iteration of the PageRank score, the lower limit value and the upper limit value of the PageRank score of the nodes included in the set of candidate nodes Calculate an estimate of the value. Below, the lower limit of the PageRank score is "Lower limit", the upper limit of the PageRank score is "Upper limit", the estimated lower limit of the PageRank score is "Lower limit estimate", and the upper limit of the PageRank score The estimated value is appropriately expressed as “estimated value of the upper limit value”, the estimated value of the lower limit value of the PageRank score, and the estimated value of the upper limit value as “estimated value” as appropriate. A method for obtaining a set of candidate nodes will be described later.
上限値を計算するために、候補ノードの集合Ciに到達可能なノードの集合Riを用いる。ここで、ノードuがノードvへ到達可能であるとは、グラフ上にノードuからノードvへのパスが存在するということである。またu番目の要素がエッジの最大の重みから、
となるN×1の列ベクトルを
とする。
In order to calculate the upper limit value, a set R i of nodes that can reach the set C i of candidate nodes is used. Here, the fact that the node u can reach the node v means that a path from the node u to the node v exists on the graph. The u th element is the maximum weight of the edge,
N × 1 column vector
And
また、長さがiのランダムウォークの確率をN×1の列ベクトル
とする。なお、
のu列目の成分をri[u]とする。ここで、グラフの隣接行列
のi乗を用いて、
は
と計算できる。なお、i=0ならば、
とする。i番目の繰り返し計算における下限値
と、i番目の繰り返し計算における上限値
を以下のように定義する。
Also, the probability of a random walk of length i is the N × 1 column vector
And In addition,
Let the component in the u-th column of r be r i [u]. Where the adjacency matrix of the graph
Using the i power of
Is
Can be calculated. If i = 0,
And Lower limit for i-th iteration
And the upper limit in the i th iterative calculation
Is defined as follows.
これらの推定値の性質を、以下の補助定理1、補助定理2、補助定理3で示す。なお、補助定理3は、実施形態では、推定値が収束することを示す。
The properties of these estimated values are shown by the following
実施形態は、再帰的に上位k個のノードを検索するために候補ノードを計算し、候補ノードの数がk個になれば繰り返し計算を終了する。推定値を計算するために、候補ノードの集合に含まれるノードに対して部分グラフを計算する。そして、候補ノードは、繰り返し計算の中で動的に更新される。 In the embodiment, candidate nodes are calculated in order to recursively search for the top k nodes, and the iterative calculation ends when the number of candidate nodes reaches k. In order to calculate the estimated value, a subgraph is calculated for the nodes included in the set of candidate nodes. Then, the candidate node is dynamically updated in the repeated calculation.
(候補ノードについて)
以下に、候補ノードおよび部分グラフの定義、ならびに、候補ノードおよび部分グラフの性質を示す。閾値εi−1を(i−1)番目の繰り返し計算におけるk番目に高い下限値とし、i番目の繰り返し計算における候補ノードの集合Ciを以下のように定義する。
(About candidate nodes)
Below, the definition of a candidate node and a subgraph, and the property of a candidate node and a subgraph are shown. The threshold value ε i−1 is set to the kth highest lower limit value in the (i−1) -th iterative calculation, and a set C i of candidate nodes in the i-th iterative calculation is defined as follows.
集合Ciの性質は、以下のとおりである。 The properties of the set C i are as follows.
補助定理4から、A⊆Ciであるため、各繰り返し計算において、候補ノードの集合Ci−1から候補ノードの集合Ciを、以下のように逐次的に計算できる。
From
また、候補ノードの集合Ci(i=0,1,2,・・・)は、以下のとおり、iについて単調減少する。 Further, the set C i (i = 0, 1, 2,...) Of candidate nodes monotonously decreases for i as follows.
(部分グラフについて)
また、実施形態は、部分グラフを用いて、候補ノードに対する推定値を計算する。ここで、i番目の繰り返し計算における部分グラフGiを、以下のように定義する。
(About partial graphs)
In addition, the embodiment calculates an estimated value for a candidate node using a subgraph. Here, the subgraph G i at the i-th iteration, is defined as follows.
部分グラフの集合Gi(i=0,1,2,・・・)について、次が成り立つ。 The following holds for the set of subgraphs G i (i = 0, 1, 2,...).
また、部分グラフの集合Gi(i=0,1,2,・・・)は、以下のとおり、iについて単調減少する。 The subgraph set G i (i = 0, 1, 2,...) Monotonously decreases for i as follows.
(推定値の計算について)
また、i番目の繰り返し計算における下限値および上限値は、部分グラフの集合Giを用いて、逐次的に、以下のように計算する。なお、補助定理7に基づき部分グラフの集合Giを構築する方法は、後述する。
(About calculation of estimated values)
In addition, the lower limit value and the upper limit value in the i-th iterative calculation are sequentially calculated as follows using a set G i of subgraphs. A method for constructing a set G i subgraph based on the
そして、定義6によるi番目の繰り返し計算における下限値および上限値の計算の計算コストは、以下のとおりである。
And the calculation cost of the calculation of the lower limit value and the upper limit value in the i-th iterative calculation according to
以上から、以下の2つの主張を、定理として示す。 From the above, the following two assertions are shown as theorems.
<検索装置の構成および処理>
(検索装置の構成)
図1は、検索装置の構成を示すブロック図である。実施形態にかかる検索装置10は、ノード検索の問い合わせに用いるグラフGと、解ノードの個数kを入力とし、候補ノードの要素数がkに等しい場合に、PageRankのスコアが上位kである候補ノードを解ノードとして出力する。図1に示すように、検索装置10は、部分グラフ構築部11、ランダムウォーク確率計算部12、推定値計算部13、候補ノード計算部14を有する。
<Configuration and processing of search device>
(Configuration of search device)
FIG. 1 is a block diagram showing the configuration of the search device. The
部分グラフ構築部11は、問い合わせに用いるグラフGと、解ノードの個数を示すk(kはノードの数を超えない正整数)を入力とし、繰り返し計算回数を示すi(iは非負整数)について、部分グラフGiを計算して出力する。
The
具体的には、部分グラフ構築部11は、i=0の場合には、候補ノードCiの初期集合であるC0に関してC0=V、部分グラフGiの初期集合であるG0に関してG0=Gをセットする。そして、部分グラフ構築部11は、ランダムウォーク確率計算部12へ、部分グラフG0を出力する。
G Specifically,
一方、部分グラフ構築部11は、i≠0の場合には、iを+1インクリメントする。この+1インクリメントにより、部分グラフ構築部11が計算した部分グラフGiは、部分グラフGi−1となる。そして、部分グラフ構築部11は、定義3の式(5)および定義4の式(6)に基づいて候補ノードCiを計算する。そして、部分グラフ構築部11は、補助定理7に基づいて、幅優先探索により、候補ノードCiから部分グラフGi−1に到達可能なノードの集合Riを計算する。そして、部分グラフ構築部11は、定義5に基づいて、ノードの集合Riから部分グラフGiを計算し、ランダムウォーク確率計算部12へ出力する。
On the other hand, if i ≠ 0, the
ランダムウォーク確率計算部12は、部分グラフ構築部11が出力した部分グラフGiを入力とし、補助定理6および定義6に基づいて、部分グラフGiに対応するランダムウォークの確率ri[u]を計算し、推定値計算部13へ出力する。
The random walk
推定値計算部13は、ランダムウォーク確率計算部12が出力したランダムウォークの確率ri[u]および部分グラフ構築部11が計算した候補ノードCiから、定義6に基づいて、候補ノードCiの全てのノードに対してPageRankのスコアの下限値の推定値および上限値の推定値を計算する。そして、推定値計算部13は、計算した推定値を、候補ノード計算部14へ出力する。
Estimated
候補ノード計算部14は、部分グラフ構築部11が計算した候補ノードCiから、i番目の繰り返し計算におけるk番目に高い下限値である閾値εiを計算する。そして、候補ノード計算部14は、定義3および定義4、ならびに、計算した閾値εiに基づいて、(i+1)回目の繰り返し計算における候補ノードの集合Ci+1を計算する。そして、候補ノード計算部14は、候補ノードの集合Ci+1の要素数|Ci+1|がkに等しいか否かを判定する。そして、候補ノード計算部14は、要素数|Ci+1|がkに等しい場合には、候補ノードの集合Ci+1を解ノードとして出力する。一方、候補ノード計算部14は、要素数|Ci+1|がkと異なる場合には、部分グラフ構築部11に対して、iの+1インクリメント処理以降の処理をおこなわせる。
The candidate
(検索処理)
図2は、検索処理を示すフローチャートである。まず、検索装置10の部分グラフ構築部11は、問い合わせに用いるグラフGと、解ノードの個数を示すk(kはノードの数を超えない正整数)の入力を受け付ける(ステップS10)。続いて、検索装置10の部分グラフ構築部11は、繰り返し計算回数を示すiに0をセットし、候補ノードの集合Vの初期集合にC0をセットし、グラフGの部分グラフの初期集合にG0をセットする初期化をおこなう(ステップS12)。
(Search process)
FIG. 2 is a flowchart showing the search process. First, the
続いて、検索装置10の部分グラフ構築部11は、i≠0であるか否かを判定する(ステップS13)。検索装置10の部分グラフ構築部11は、i≠0である場合に(ステップS13Yes)、ステップS14へ処理を移す。一方、検索装置10の部分グラフ構築部11は、i=0である場合に(ステップS13No)、ステップS17へ処理を移す。
Subsequently, the
ステップS14では、検索装置10の部分グラフ構築部11は、iを+1インクリメントする。続いて、検索装置10の部分グラフ構築部11は、定義3の式(5)および定義4の式(6)に基づいて候補ノードCiを計算し、補助定理7に基づいて、幅優先探索により、候補ノードCiから部分グラフGi−1に到達可能なノードの集合Riを計算する(ステップS15)。続いて、検索装置10の部分グラフ構築部11は、定義5に基づいて、ノードの集合Riから部分グラフGiを計算する(ステップS16)。
In step S14, the
続いて、検索装置10のランダムウォーク確率計算部12は、補助定理6および定義6に基づいて、部分グラフGiに対応するランダムウォークの確率ri[u]を計算する(ステップS17)。
Subsequently, the random walk
続いて、検索装置10の推定値計算部13は、ランダムウォークの確率ri[u]および候補ノードCiから、定義6に基づいて、候補ノードCiの全てのノードに対してPageRankのスコアの下限値の推定値および上限値の推定値を計算する(ステップS18)。
Subsequently, the estimated
続いて、検索装置10の候補ノード計算部14は、候補ノードCiから閾値εiを計算し、定義3および定義4、ならびに、閾値εiに基づいて、(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は、検索処理を終了する。
Subsequently, the
以上の検索処理によれば、検索における事前計算を要さず、アドホックに検索をおこなうことができる。また、以上の検索処理によれば、内部パラメータの設定を要さないため、ユーザは、簡易にPageRankによる検索を行うことができる。 According to the above search processing, it is possible to perform an ad hoc search without requiring a prior calculation in the search. Further, according to the above search processing, setting of internal parameters is not required, so that the user can easily perform a search by PageRank.
(検索アルゴリズム)
図3は、検索アルゴリズムを示す図である。図3に示す検索アルゴリズムは、図2の検索処理のフローチャートが示す処理に対応する。図3に示すように、検索アルゴリズムは、i=0ならば、定義3および定義5から、集合C0、グラフG0をそれぞれC0=V、G0=Gとして初期化する(図3の第2行目〜第3行目)。検索アルゴリズムは、i≠0ならば、グラフGi−1に幅優先探索を用いて集合Ciから集合Riを計算する(図3の第7行目)。これは、補助定理7から、部分グラフGiに対してGi⊆Gi−1という性質があるからである。そして、検索アルゴリズムは、定義5から、集合Riを用いて部分グラフGiを計算する(図3の第8行目)。
(Search algorithm)
FIG. 3 is a diagram showing a search algorithm. The search algorithm shown in FIG. 3 corresponds to the process shown in the flowchart of the search process in FIG. As shown in FIG. 3, if i = 0, the search algorithm initializes the set C 0 and the graph G 0 from
そして、検索アルゴリズムは、部分グラフGiにおける各ノードに対してランダムウォークの確率を計算する(図3の第10行目〜第12行目)。これは、補助定理6から、推定値を計算するためにランダムウォークの確率が必要だからである。そして、検索アルゴリズムは、候補ノードCiに対して推定値を計算し(図3の第13行目〜第15行目)、候補ノードCiから閾値εiを計算する(図3の第16行目)。
Then, the search algorithm calculates the probability of random walk for each node in the subgraph G i (
また、検索アルゴリズムは、候補ノードを更新し、Ci+1を計算する(図3の第17行目)。検索アルゴリズムは、集合Ci+1の要素数|Ci+1|がkと等しい、すなわち|Ci+1|=kであれば、補助定理4から、候補ノードの集合Ci+1に含まれるノードは全て解ノードである。よって、繰り返し計算を打ち切り(図3の第18行目)、候補ノードの集合Ci+1を解ノードとして出力する(図3の第19行目)。
Further, the search algorithm updates the candidate node and calculates C i + 1 (the 17th line in FIG. 3). In the search algorithm, if the number of elements | C i + 1 | of the set C i + 1 is equal to k, that is, if | C i + 1 | = k, all the nodes included in the set C i + 1 of candidate nodes are solution nodes from the
(実施形態による効果)
以上の実施形態によれば、従来技術の手法と比較して、PageRankのスコアをグラフ全体ではなく部分グラフから計算することにより、高速に検索が可能である。また、以上の実施形態によれば、入力パラメータk(kはノード数を超えない自然数)に対し、PageRankのスコアの正確な上位k個のノードを検索できる。また、以上の実施形態によれば、検索に事前計算を要さず、任意のグラフに対してアドホックに検索をおこなうことができる。また、以上の実施形態によれば、内部パラメータの設定を要さないため、ユーザは、PageRankによる検索を簡易におこなうことができる。
(Effect by embodiment)
According to the above embodiment, compared to the conventional technique, the PageRank score is calculated not from the entire graph but from the partial graph, thereby enabling high-speed search. Further, according to the above-described embodiment, it is possible to search the top k nodes with the correct PageRank score for the input parameter k (k is a natural number not exceeding the number of nodes). Moreover, according to the above embodiment, it is possible to perform an ad hoc search on an arbitrary graph without requiring a prior calculation for the search. Further, according to the above embodiment, since setting of an internal parameter is not required, the user can easily perform a search by PageRank.
(実施形態のシステム構成について)
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
(System configuration of the embodiment)
Each component of each illustrated apparatus is functionally conceptual and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution and integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.
また、検索装置10においておこなわれる各処理は、全部または任意の一部が、CPU(Central Processing Unit)およびCPUにより解析実行されるプログラムにて実現されてもよい。また、検索装置10においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
Each process performed in the
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。 In addition, among the processes described in the embodiment, all or a part of the processes described as being automatically performed can be manually performed. Alternatively, all or part of the processing described as being performed manually can be automatically performed by a known method. In addition, the above-described and illustrated processing procedures, control procedures, specific names, and information including various data and parameters can be changed as appropriate unless otherwise specified.
(プログラムについて)
また、実施形態において説明した検索装置10のCPUなどの制御装置が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、制御装置が実行する処理をコンピュータが実行可能な言語で記述した検索プログラムを作成することもできる。この場合、コンピュータが検索プログラムを実行することにより、実施形態と同様の効果を得ることができる。さらに、検索プログラムをコンピュータ読み取り可能な記録媒体に記録して、記録媒体に記録された検索プログラムをコンピュータに読み込ませて実行することにより実施形態と同様の処理を実現できる。以下に、図1に示した検索装置10と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
(About the program)
It is also possible to create a program in which processing executed by a control device such as the CPU of the
図4は、検索プログラムを実行するコンピュータ1000の一例を示す図である。コンピュータ1000は、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらは、バス1080によって接続される。
FIG. 4 is a diagram illustrating an example of a
図4に示すように、メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。また、ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。また、ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、磁気ディスクや光ディスクなどの着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。また、ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
As shown in FIG. 4, the
ここで、図4に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、検索プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
Here, as illustrated in FIG. 4, the hard disk drive 1031 stores, for example, an
また、実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出す。そして、CPU1020が、検索プログラムの各手順を実行する。
The various data described in the embodiment is stored as program data, for example, in the
なお、検索プログラムにかかるプログラムモジュール1093およびプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られない。すなわち、プログラムモジュール1093およびプログラムデータ1094は、着脱可能な記憶媒体に記憶され、ディスクドライブなどを介してCPU1020によって読み出されてもよい。検索プログラムにかかるプログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)など)を介して接続された他のコンピュータに記憶されていてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、ネットワークインタフェース1070を介してCPU1020によって読み出され、実行されてもよい。
Note that the
10 検索装置
11 部分グラフ構築部
12 ランダムウォーク確率計算部
13 推定値計算部
14 候補ノード計算部
DESCRIPTION OF
Claims (3)
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インクリメントさせたあらたなiについて前記部分グラフ構築処理を実行させる候補ノード計算部と
を有し、
前記候補ノード計算部が前記部分グラフ構築部に前記あらたなiについて前記部分グラフ構築処理を実行させる場合は、当該あらたなiについて、前記部分グラフ構築部、前記ランダムウォーク確率計算部、前記推定値計算部、前記候補ノード計算部が各処理を再度、順次実行する
ことを特徴とする検索装置。 Accepts an input of k (k is a positive integer not exceeding the number of nodes) indicating the number of solution nodes in the computer network graph in which the devices forming the computer network are nodes and the connections between the devices are edges. A search device for searching and outputting the k solution nodes,
For i that is incremented by +1 with 0 as an initial value, if i = 0, the graph is a partial graph, and if i> 0, it is based on a candidate node in the i-th iteration (i−1). A subgraph construction unit for executing a subgraph construction process for constructing a subgraph of the graph in the i-th iterative calculation from a set of nodes that can reach the subgraph of the graph in the iterative calculation of the first time;
A random walk probability calculation unit for calculating a probability of a random walk corresponding to the subgraph constructed by the subgraph construction unit;
Random walk probability calculated by the random walk probability calculation unit and an estimated value calculation unit for calculating an estimated lower limit value and an estimated upper limit value of PageRank scores for all of the candidate nodes in the i-th iterative calculation When,
When the candidate node in the (i + 1) -th iteration calculation is calculated from the candidate node in the i-th iteration calculation, and the number of elements in the candidate node set in the (i + 1) -th iteration calculation is equal to the k When the set of candidate nodes in the (i + 1) -th iteration calculation is output as a solution node, and the number of elements of the candidate node set in the (i + 1) -th iteration calculation is different from k, the subgraph A candidate node calculation unit that causes the construction unit to execute the subgraph construction process for a new i obtained by further incrementing i by +1,
When the candidate node calculation unit causes the subgraph building unit to execute the subgraph building process for the new i, the subgraph building unit, the random walk probability calculating unit, and the estimated value for the new i A search device, wherein the calculation unit and the candidate node calculation unit sequentially execute each process again.
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インクリメントさせたあらたなiについて前記部分グラフ構築処理を実行させる候補ノード計算工程と
を含み、
前記候補ノード計算工程が前記部分グラフ構築工程に前記あらたなiについて前記部分グラフ構築処理を実行させる場合は、当該あらたなiについて、前記部分グラフ構築工程、前記ランダムウォーク確率計算工程、前記推定値計算工程、前記候補ノード計算工程が各処理を再度、順次実行する
ことを特徴とする検索方法。 Accepts an input of k (k is a positive integer not exceeding the number of nodes) indicating the number of solution nodes in the computer network graph in which the devices forming the computer network are nodes and the connections between the devices are edges. And a search method executed by a search device that outputs the k solution nodes,
For i that is incremented by +1 with 0 as an initial value, if i = 0, the graph is a partial graph, and if i> 0, it is based on a candidate node in the i-th iteration (i−1). A subgraph construction step of executing a subgraph construction process for constructing a subgraph of the graph in the i-th iteration calculation from a set of nodes that can reach the subgraph of the graph in the iteration computation;
A random walk probability calculation step of calculating a probability of a random walk corresponding to the subgraph constructed by the subgraph construction step;
Estimated value calculating step of calculating the estimated value of the lower limit value and the upper limit value of the PageRank score for all nodes of the candidate node in the random walk probability calculated by the random walk probability calculating step and the i-th iterative calculation When,
When the candidate node in the (i + 1) -th iteration calculation is calculated from the candidate node in the i-th iteration calculation, and the number of elements in the candidate node set in the (i + 1) -th iteration calculation is equal to the k When the set of candidate nodes in the (i + 1) -th iteration calculation is output as a solution node, and the number of elements of the candidate node set in the (i + 1) -th iteration calculation is different from k, the subgraph A candidate node calculation step of executing the subgraph construction processing for a new i obtained by further incrementing the i by +1 in the construction step;
When the candidate node calculation step causes the subgraph construction step to execute the subgraph construction processing for the new i, for the new i, the subgraph construction step, the random walk probability calculation step, and the estimated value A search method, wherein the calculation step and the candidate node calculation step sequentially execute each process again.
請求項1に記載の検索装置として機能させるための検索プログラム。 Computer
The search program for functioning as a search device of Claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013108843A JP6005583B2 (en) | 2013-05-23 | 2013-05-23 | SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013108843A JP6005583B2 (en) | 2013-05-23 | 2013-05-23 | SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014229110A JP2014229110A (en) | 2014-12-08 |
JP6005583B2 true JP6005583B2 (en) | 2016-10-12 |
Family
ID=52128898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013108843A Expired - Fee Related JP6005583B2 (en) | 2013-05-23 | 2013-05-23 | SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6005583B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991592B (en) * | 2017-03-22 | 2021-01-01 | 南京财经大学 | Personalized recommendation method based on purchasing user behavior analysis |
CN111079058B (en) * | 2019-12-16 | 2023-07-28 | 武汉大学 | Network node representation method and device based on node importance |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5506711B2 (en) * | 2011-01-31 | 2014-05-28 | 日本電信電話株式会社 | Similar node search apparatus, method and program |
-
2013
- 2013-05-23 JP JP2013108843A patent/JP6005583B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014229110A (en) | 2014-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5995409B2 (en) | Graphical model for representing text documents for computer analysis | |
KR102170929B1 (en) | User keyword extraction device, method, and computer-readable storage medium | |
Vora et al. | Kickstarter: Fast and accurate computations on streaming graphs via trimmed approximations | |
US9262484B2 (en) | Method for identifying network similarity by matching neighborhood topology | |
JP6332264B2 (en) | Similar data search device, similar data search method, and program | |
WO2016062044A1 (en) | Model parameter training method, device and system | |
De Vocht et al. | Discovering meaningful connections between resources in the web of data | |
WO2011134141A1 (en) | Method of extracting named entity | |
WO2015192798A1 (en) | Topic mining method and device | |
US8392393B2 (en) | Graph searching | |
JP5964781B2 (en) | SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM | |
JP5506711B2 (en) | Similar node search apparatus, method and program | |
CN106599122B (en) | Parallel frequent closed sequence mining method based on vertical decomposition | |
JP6005583B2 (en) | SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM | |
Garg et al. | STIC-D: algorithmic techniques for efficient parallel pagerank computation on real-world graphs | |
JP6365274B2 (en) | Common operation information generation program, common operation information generation method, and common operation information generation device | |
JP2014146280A (en) | Association calculation device, association calculation system, association calculation method, and association calculation program | |
JP5727421B2 (en) | Related node search device, related node search method, and program | |
JP5869948B2 (en) | Passage dividing method, apparatus, and program | |
CN109952742B (en) | Graph structure processing method, system, network device and storage medium | |
JP6261669B2 (en) | Query calibration system and method | |
JP6034240B2 (en) | Analysis method, analysis apparatus, and analysis program | |
JP4959032B1 (en) | Web page analysis apparatus and web page analysis program | |
JP6577922B2 (en) | Search apparatus, method, and program | |
CN110968668A (en) | Method and device for calculating similarity of network public sentiment subjects based on hyper-network |
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 |