(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143671
(43)【公開日】2024-10-11
(54)【発明の名称】情報処理装置、情報処理システム、および、情報処理方法
(51)【国際特許分類】
G06F 16/28 20190101AFI20241003BHJP
【FI】
G06F16/28
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023056453
(22)【出願日】2023-03-30
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】阿部 祥歩
(72)【発明者】
【氏名】木戸 邦彦
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175KA12
(57)【要約】
【課題】
グラフを用いた処理において、計算時間が長くなることを抑制する技術を提供すること。
【解決手段】
プロセッサが、グラフデータに含まれる注目するノードである注目ノードに対し、前記注目ノードの中心性に関連した指標値を算出するステップと、前記中心性の指標値が条件に適合する場合に、前記プロセッサが、前記注目ノードからエッジを1つ伝ってたどり着いたノード群につながれたエッジを注目ノードに付けくわえ、注目ノードの属性をノード群としてメモリに保存するステップと、前記中心性の指標値が条件に適合しない場合に、前記プロセッサが、ノードの相互作用に関するデータベースから、前記注目ノードを含むグラフを抽出するステップと、前記プロセッサが、前記の抽出したグラフと前記グラフデータを統合するステップと、を含む、情報処理方法。
【選択図】
図4
【特許請求の範囲】
【請求項1】
プロセッサと、メモリと、を備え、
前記プロセッサは、
グラフデータに含まれる注目するノードである注目ノードに対し、前記注目ノードの中心性に関連した指標値を算出し、
前記中心性の指標値が条件に適合する場合に、前記注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存するとともに、前記注目ノードと前記のそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成し、
前記中心性の指標値が条件に適合しない場合に、ノードの相互作用に関するデータベースから抽出した前記注目ノードを含むグラフに基づいて、前記注目ノードと別のノードとの相互作用の検出を行い、
前記相互作用が検出されなかった場合、前記注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存するとともに、前記注目ノードと前記のそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成し、
前記相互作用が検出された場合、前記相互作用を前記グラフデータに統合したうえで、前記注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存するとともに、前記相互作用が統合されたグラフデータにおいて前記注目ノードと前記のそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する、
ことを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記プロセッサは、
検出した相互作用の情報を含むリストを生成する、
ことを特徴とする情報処理装置。
【請求項3】
請求項1に記載の情報処理装置であって、
前記プロセッサは、
グラフデータに含まれる注目ノードの中心性に関連した指標値を算出し、前記注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存するとともに、新たなグラフデータを構成する処理を、所定の回数繰り返す、
ことを特徴とする情報処理装置。
【請求項4】
請求項2に記載の情報処理装置と、
表示装置と、
を備え、
前記プロセッサは、
前記リストに含まれる検出した相互作用の情報を、前記表示装置に出力する、
ことを特徴とする情報処理システム。
【請求項5】
請求項1に記載の情報処理装置と、
表示装置と、
を備え、
前記プロセッサは、
前記相互作用が検出されなかった場合、前記グラフデータに基づくグラフを、前記表示装置に出力し、
前記相互作用が検出された場合、前記相互作用が統合されたグラフデータに基づくグラフを、前記表示装置に出力する、
ことを特徴とする情報処理システム。
【請求項6】
請求項5に記載の情報処理システムであって、
前記プロセッサは、
検出された相互作用が他の相互作用よりも強調された前記グラフを、前記表示装置に出力する、
ことを特徴とする情報処理システム。
【請求項7】
請求項1に記載の情報処理装置であって、
前記プロセッサは、
前記中心性に関連した指標値を、degree、eigenvector、closeness、betweenness、pagerank、のうちの一つまたは複数に基づいて算出する、
ことを特徴とする情報処理装置。
【請求項8】
プロセッサと、メモリと、を備え、
前記プロセッサは、
グラフデータに含まれる注目するノードである第1ノードおよび第2ノードに対して処理Aと処理Bを並行して実行し、
前記処理Aにおいて、
前記第1ノードの中心性に関連した指標値を算出し、
前記中心性の指標値が条件に適合する場合に、前記第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存し、
前記中心性の指標値が条件に適合しない場合に、ノードの相互作用に関するデータベースから抽出した前記第1ノードを含むグラフに基づいて、前記第1ノードと別のノードとの相互作用の検出を行い、
前記相互作用が検出されなかった場合、前記第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存し、
前記相互作用が検出された場合、前記相互作用を前記グラフデータに統合したうえで、前記注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存し、
前記処理Bにおいて、
前記第2ノードの中心性に関連した指標値を算出し、
前記中心性の指標値が条件に適合する場合に、前記第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存し、
前記中心性の指標値が条件に適合しない場合に、ノードの相互作用に関するデータベースから抽出した前記第2ノードを含むグラフに基づいて、前記第2ノードと別のノードとの相互作用の検出を行い、
前記相互作用が検出されなかった場合、前記第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存し、
前記相互作用が検出された場合、前記相互作用を前記グラフデータに統合したうえで、前記第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータを前記メモリに保存し、
前記処理Aおよび前記処理Bにおいて前記相互作用が検出されなかった場合、前記第1ノードと前記第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続され、且つ、前記第2ノードと前記第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成し、
前記処理Aおよび/または前記処理Bにおいて前記相互作用が検出された場合、前記相互作用が統合されたグラフデータにおいて、前記第1ノードと前記第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続され、且つ、前記第2ノードと前記第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する、
ことを特徴とする情報処理装置。
【請求項9】
請求項8に記載の情報処理装置であって、
前記プロセッサは、
検出した相互作用の情報を含むリストを生成する、
ことを特徴とする情報処理装置。
【請求項10】
請求項8に記載の情報処理装置であって、
前記プロセッサは、
前記処理Aおよび前記処理Bと、前記の新たなグラフデータを構成する処理を、所定の回数、および/または、前記の新たなグラフデータにおいて前記第1ノードと前記第2ノードの間にノードが存在しなくなるまで繰り返す、
ことを特徴とする情報処理装置。
【請求項11】
請求項9に記載の情報処理装置と、
表示装置と、
を備え、
前記プロセッサは、
前記リストに含まれる検出した相互作用の情報を、前記表示装置に出力する、
ことを特徴とする情報処理システム。
【請求項12】
請求項8に記載の情報処理装置と、
表示装置と、
を備え、
前記プロセッサは、
前記処理Aおよび前記処理Bにおいて前記相互作用が検出されなかった場合、前記グラフデータに基づくグラフを、前記表示装置に出力し、
前記処理Aおよび/または前記処理Bにおいて前記相互作用が検出された場合、前記相互作用が統合されたグラフデータに基づくグラフを、前記表示装置に出力する、
ことを特徴とする情報処理システム。
【請求項13】
請求項12に記載の情報処理システムであって、
前記プロセッサは、
検出された相互作用が他の相互作用よりも強調された前記グラフを、前記表示装置に出力する、
ことを特徴とする情報処理システム。
【請求項14】
請求項8に記載の情報処理装置であって、
前記プロセッサは、
前記中心性に関連した指標値を、degree、eigenvector、closeness、betweenness、pagerank、のうちの一つまたは複数に基づいて算出する、
ことを特徴とする情報処理装置。
【請求項15】
プロセッサが、グラフデータに含まれる注目するノードである注目ノードに対し、前記注目ノードの中心性に関連した指標値を算出するステップと、
前記中心性の指標値が条件に適合する場合に、前記プロセッサが、前記注目ノードからエッジを1つ伝ってたどり着いたノード群につながれたエッジを注目ノードに付けくわえ、注目ノードの属性をノード群としてメモリに保存するステップと、
前記中心性の指標値が条件に適合しない場合に、前記プロセッサが、ノードの相互作用に関するデータベースから、前記注目ノードを含むグラフを抽出するステップと、
前記プロセッサが、前記の抽出したグラフと前記グラフデータを統合するステップと、を含む、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、および、情報処理方法に関する。
【背景技術】
【0002】
グラフを用いたデータ処理に関する技術が知られている。特許文献1は、単一のデータベースのみからでは調べることができない要素間の関連性を探索可能な技術を開示する。すなわち、特許文献1は、「複数の要素と、前記複数の要素における2つの要素間の直接の関連性を示す関連性情報とをそれぞれに備える複数のデータベースを結合して、結合データベースを作成し、前記結合データベースを用いて、直接に関連性がない2つの要素間の関連性を探索し、前記結合データベースの構造が、前記要素をノードとし、前記関連性情報をエッジとするグラフ構造である関連性探索方法。」を開示する。また、特許文献2は、「前記結合データベースの構造が、前記要素をノードとし、前記関連性情報をエッジとするグラフ構造である。」との記載がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
グラフを用いたデータ処理では、計算する対象のノード数の増加に応じて計算時間が長くなり得る。そこで、計算時間を抑える技術を提供することに課題がある。
【課題を解決するための手段】
【0005】
本発明の第1の態様によれば、下記の情報処理装置が提供される。この情報処理装置は、プロセッサと、メモリと、を備える。プロセッサは、グラフデータに含まれる注目するノードである注目ノードに対し、注目ノードの中心性に関連した指標値を算出し、中心性の指標値が条件に適合する場合に、注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存するとともに、注目ノードと前記のそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する。プロセッサは、中心性の指標値が条件に適合しない場合に、ノードの相互作用に関するデータベースから抽出した前記注目ノードを含むグラフに基づいて、注目ノードと別のノードとの相互作用の検出を行う。ここで、相互作用が検出されなかった場合、プロセッサは、注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存するとともに、注目ノードと前記のそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する。その一方で、相互作用が検出された場合、プロセッサは、相互作用をグラフデータに統合したうえで、注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存するとともに、相互作用が統合されたグラフデータにおいて注目ノードとのそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する。また、表示装置を更に備え、情報を表示可能なシステムが提供される。
【0006】
本発明の第2の態様によれば、下記の情報処理装置が提供される。この情報処理装置は、プロセッサと、メモリと、を備える。プロセッサは、グラフデータに含まれる注目するノードである第1ノードおよび第2ノードに対して処理Aと処理Bを並行して実行する。プロセッサは、処理Aにおいて、第1ノードの中心性に関連した指標値を算出し、中心性の指標値が条件に適合する場合に、第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存し、中心性の指標値が条件に適合しない場合に、ノードの相互作用に関するデータベースから抽出した前記第1ノードを含むグラフに基づいて、第1ノードと別のノードとの相互作用の検出を行う。相互作用が検出されなかった場合、プロセッサは、第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存する。相互作用が検出された場合、プロセッサは、相互作用をグラフデータに統合したうえで、注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存する。プロセッサは、処理Bにおいて、第2ノードの中心性に関連した指標値を算出し、中心性の指標値が条件に適合する場合に、第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存し、中心性の指標値が条件に適合しない場合に、ノードの相互作用に関するデータベースから抽出した前記第2ノードを含むグラフに基づいて、第2ノードと別のノードとの相互作用の検出を行う。相互作用が検出されなかった場合、プロセッサは、第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存する。相互作用が検出された場合、プロセッサは、相互作用を前記グラフデータに統合したうえで、第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリに保存する。また、処理Aおよび処理Bにおいて相互作用が検出されなかった場合、プロセッサは、第1ノードと第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続され、且つ、第2ノードと第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する。その一方で、処理Aおよび/または処理Bにおいて相互作用が検出された場合、プロセッサは、相互作用が統合されたグラフデータにおいて、第1ノードと第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続され、且つ、第2ノードと第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する。
【0007】
本発明の第3の態様によれば、下記の情報処理方法が提供される。この情報処理方法は、プロセッサが、グラフデータに含まれる注目するノードである注目ノードに対し、前記注目ノードの中心性に関連した指標値を算出するステップと、前記中心性の指標値が条件に適合する場合に、前記プロセッサが、前記注目ノードからエッジを1つ伝ってたどり着いたノード群につながれたエッジを注目ノードに付けくわえ、注目ノードの属性をノード群としてメモリに保存するステップと、前記中心性の指標値が条件に適合しない場合に、前記プロセッサが、ノードの相互作用に関するデータベースから、前記注目ノードを含むグラフを抽出するステップと、前記プロセッサが、前記の抽出したグラフと前記グラフデータを統合するステップと、を含む。
【発明の効果】
【0008】
本発明によれば、計算する対象のノード数の増加に応じて計算時間が長くなることを抑制することができる。なお、上記した以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。
【図面の簡単な説明】
【0009】
【
図4】第1実施形態に係り、情報処理装置が実行する処理の一例を示すフローチャート。
【
図5A】
図4におけるS401の状態の一例を示す図。
【
図5B】
図4におけるS406の状態の一例を示す図。
【
図5C】
図4におけるS407の状態の一例を示す図。
【
図8】第2実施形態に係り、情報処理装置が実行する処理の一例を示すフローチャート。
【
図9】
図8におけるS803の処理に関係し、2つの注目したノード間にノードが存在しない状態の一例を示す図。
【
図11】中心性スコアを求めるための数式の一例を示す図。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の実施形態を説明する。実施形態は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
各種情報の例として、「テーブル」、「リスト」、「キュー」等の表現にて説明することがあるが、各種情報はこれら以外のデータ構造で表現されてもよい。例えば、「XXテーブル」、「XXリスト」、「XXキュー」等の各種情報は、「XX情報」としてもよい。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
実施形態において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施形態において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0011】
実施形態では、ノードおよびエッジを含むグラフデータの処理において、計算時間の低減を図ることができる技術を説明する。
【0012】
<第1実施形態>
図1-
図7を参照しながら、第1実施形態について説明する。まず、
図1を参照しながら、システムの構成例について説明する。
図1に示すように、情報処理システム1は、情報処理装置100と、入力部106と、出力部107と、を備える。
【0013】
情報処理装置100は、適宜のコンピュータとして構成され、演算部101と、メモリ102と、記憶部103と、ネットワークアダプタ109と、を備える。また、情報処理装置100は、データの入出力に用いられるインタフェースである入出力インタフェース(不図示)を備える。そして、これらの構成は、バス108を介して接続される。
【0014】
演算部101は、計算処理を実行する主体である。演算部101は、プロセッサを用いて構成され、一例として、CPU(Central Processing Unit)を用いて構成される。なお、演算部101は、所定の計算処理を実行する主体であればよく、例えば、他の半導体デバイスを用いて構成されてもよい。
【0015】
メモリ102は、主記憶装置であり、一例として、RAM(Random Access Memory)とすることができる。演算部101は、所定の処理の実行時に、必要なデータをメモリ102に一時的に保存する。
【0016】
記憶部103は、補助記憶装置であり、一例として、HDD(Hard Disk Drive)とすることができる。なお、記憶部103は、他の種類の装置を用いて構成されてもよい。記憶部103は、処理に用いるプログラム等の適宜のデータを保存する。また、本実施形態では、記憶部103は、グラフデータに関する情報を保存する。すなわち、記憶部103は、例えば、ネットワーク情報104および注目ノードの情報105を保存する。なお、これらの情報(104、105)については、後で詳しく説明する。
【0017】
ネットワークアダプタ109は、外部の機器との通信に用いられる構成であり、本実施形態では、ネットワークアダプタ109およびインターネット110を介して外部のデータベース111と無線通信が可能である。
【0018】
入力部106は、ユーザによるデータ入力に用いる構成であり、キーボード、マウスなどの適宜の入力装置を用いて構成される。表示部107は、ユーザに情報を提示する構成であり、ディスプレイ(表示装置)を用いて適宜に構成される。また、入力部106と表示部107が一体となる構成であってもよく、例えば、タッチパネルによって入力部106と表示部107が構成されてもよい。情報処理装置100とのデータの入出力は、入出力インタフェースを介して行われる。
【0019】
次に、ネットワーク情報104と注目ノードの情報105について説明する。ネットワーク情報104は、データ処理に用いるグラフデータのネットワーク構造を定めるデータである。
図2に示すように、ネットワーク情報104は、一例として、エッジに関するエッジデータと、ノードに関するノードデータと、を含む。エッジデータは、一例として、エッジの始点と終点に接続されたノードの名称を含み、グラフデータ200内の各エッジを示すデータである。ノードデータは、一例として、グラフデータ200内の各ノードの名称を含み、グラフデータ200内の各ノードを示すデータである。
【0020】
なお、グラフデータ200のネットワーク構造が適切に表現されればよく、エッジデータにおいてエッジの種類等の他のデータは省略されてもよい。同様に、グラフデータのネットワーク構造が適切に表現されればよく、ノードデータにおいてノードの種類等の他のデータは省略されてもよい。
図2は一例であり、グラフデータ200を適切に定めることができればよく、データ構造は適宜に変更されてもよい。例えば、
図2では、エッジデータとノードデータによりグラフデータ200が定められるが、単一のテーブルに基づいてグラフデータが定められてもよい。
【0021】
注目ノードの情報105は、グラフデータ200内の重要なノードを示すデータである。注目ノードの情報105には、例えば、ノードの名称に関するデータが含まれてもよい。本実施形態では、情報処理装置100は、後述するように、この重要なノード(注目ノードと呼ぶことがある)に関する計算を実行することができる。
【0022】
なお、記憶部103には、複数の異なるグラフデータが保存され、これら複数のグラフデータによるデータベースが構築されてもよい。すなわち、記憶部103には、それぞれのグラフデータに関するネットワーク情報104と注目ノードの情報105が保存されてもよい。
【0023】
情報処理装置100は、記憶部103に保存されたグラフデータのデータ処理を実行することができる。本実施形態では、ユーザによって選択された重要なノードに関する中心性スコアを算出する例を説明する。まず、
図3を参照しながら、初期設定について説明する。
図3は、設定画面の一例を示す。
【0024】
図3に示すように、情報処理装置100(詳細には、演算部101)は、設定画面300を表示部107に出力する。情報処理装置100のユーザは、この設定画面300を利用して、データを適宜に入力することができる。
【0025】
設定画面300には、欄301および読み込みボタン302が含まれる。欄301は、処理する対象のグラフデータを入力する欄であり、処理する対象のグラフデータがユーザにより入力される。ユーザが読み込みボタン302を押すことで、欄301に入力されたグラフデータが、記憶部103から読み出される。なお、欄301の「参照」を押すことで記憶部103に保存されたグラフデータのリストが出力され、ユーザはこのリストを利用して処理する対象のグラフデータを入力してもよい。
【0026】
設定画面300には、欄303が含まれる。欄303には、処理する対象の注目ノードが記載されたデータが入力され、注目ノードが設定される。また、ユーザが「参照」を押すことで、ローカルフォルダ内のファイルの一覧を表示し、選択できるようにしてもよい。なお、グラフデータが入力され、ユーザが「参照」を押すことで、このグラフデータに基づくグラフが表示されてもよい。そして、ユーザは、表示されたグラフ上の注目ノードを、例えばカーソルを用いて指定することができる。なお、色彩等の適宜の態様に基づいた強調表示により、注目ノードとそうでないノードを区別可能なグラフが表示されてもよい。また、注目ノードにカーソルを合わせた際に、注目ノードであることを示す情報が表示されてもよい。
【0027】
設定画面300には、欄304が含まれる。欄304には、注目ノードを検索するためのキーワードがユーザによって入力される。そして、ユーザが「検索」を押すことで、このキーワードを含む注目ノード(すなわち、キーワードにヒットした注目ノード)が、処理する対象のグラフデータから抽出され、抽出された注目ノードのリストが表示される。そして、ユーザは、表示されたリストを利用して注目ノードを指定することができる。
【0028】
ユーザは、欄303または欄304を利用して注目ノードを指定することができる。また、欄305には、ホップ数がユーザによって入力される。ホップ数は、注目ノードを中心として計算を行うノードの範囲を示す。例えば、ホップ数が3である場合、注目ノードからエッジを3つ伝ってたどり着いたノードまでが計算対象となる。そして、ユーザが、設定ボタン306を押すことで、指定した注目ノードとホップ数が設定される。
【0029】
なお、上記の設定画面300は一例であり、ユーザが、処理対象とするグラフデータの読み出し、このグラフデータ内の注目ノードの設定、および、ホップ数の設定を行うことができればよく、設定画面300の表示態様は、適宜に変更してもよい。設定画面300には、適宜の文字情報が表示されてもよい。
【0030】
次に、
図4を参照しながら、データ処理の一例について説明する。このデータ処理は、注目ノードの中心性スコアを算出し、状況に応じて適宜にグラフデータを補完する操作を、設定したホップ数分繰り返すことにより、グラフデータを拡充する。
【0031】
データ処理が開始し(S400)、情報処理装置100(詳細には、演算部101)は、ユーザにより設定された注目ノードを読み込み、注目ノードの属性に注目ノードの情報を加える(S401)。なお、ノードの属性は、ノードの性質や設定などを示すデータであり、このデータはメモリ102に保存される。また、演算部101は、S402~S408に関する処理を繰り返す回数(ホップ数i)を初期値に設定する。
【0032】
次に、演算部101は、注目ノードに関する中心性スコアを算出する(S402)。ここで、中心性スコアの算出では、グラフの全ノードを用いても良いし、一部のノードを用いても良い。
【0033】
次に、演算部101は、S402で算出した中心性スコアが条件に適合するかについて判定する(S403)。この例では、演算部101は、中心性スコアが所定の閾値を満たすかについて判定する。S403において、S402で算出した中心性スコアが所定の閾値を満たすことを、演算部101が判定した場合、後述するS407へ処理が進む(S403-YES)。その一方で、S402で算出した中心性スコアが所定の閾値を満たさないことを、演算部101が判定した場合、S404へ処理が進む(S403-NO)。
【0034】
演算部101は、注目ノードと、別のノード(すなわち、現在のグラフデータにおいて注目ノードと相互作用がないノードもしくは属性ノードに含まれていないノード)と、の関係について情報補完を行い(S404)、注目ノードに対して相互作用を有する別のノードを検出する(S405)。注目ノードに対して相互作用を有する別のノードが検出された場合にS406へ処理が進み(S405-YES)、注目ノードに対して相互作用を有する別のノードが検出されない場合にS407へ処理が進む(S405-NO)。
【0035】
演算部101は、エッジ(すなわち、検出されたノードと注目ノードを接続するエッジ)を補完し、このエッジが統合されたグラフデータを生成する。また、演算部101は、このエッジのデータを後述する抽出済みリストに追加する(S406)。また、これに併せて、演算部101は、このエッジの情報をネットワーク情報104に格納し、ネットワーク情報104が更新される。
【0036】
演算部101は、注目ノードからエッジを1つ伝ってたどり着いたノード群と、そのたどり着いたノード及び注目ノードのいずれでもない、更にエッジを伝ってたどり着いたノードと、を接続する各エッジに対して、たどり着いたノードに接続された側を注目ノードに付けくわえ、グラフを再構成する。さらに、注目ノードからエッジを1つ伝ってたどり着いたノード群とそのノードにつながれたエッジを削除する。また、演算部101は、注目ノードからエッジを1つ伝ってたどり着いたノードの属性をメモリ102に保存し、注目ノードの属性をノード群とする。すなわち、演算部101は、注目ノードからエッジを1つ伝ってたどり着いたそれぞれのノードのデータをメモリ102に保存するとともに、注目ノードと前記のそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する。また、演算部101は、S401で設定した値のインクリメントを行う(S407)。
【0037】
演算部は、S401で設定した値が所定値よりも大きいかどうかについて判定する(S408)。この所定値は、ユーザが設定したホップ数に関連し、設定したホップ数の回数分の注目ノードの中心性スコアが算出されるように設定される。設定したホップ数までの注目ノードの中心性スコアが算出された場合(S408-YES)、処理が終了する(S409)。設定したホップ数の回数分の注目ノードの中心性スコアが未だ算出されていない場合(S408-NO)、処理がS402へ戻る。
【0038】
次に、
図5を参照しながら、S401、S406、S407におけるグラフデータの状態の一例について詳しく説明する。なお、
図5では、ノードAが注目ノードとして設定された場合である。
【0039】
図5Aに示すように、S401では、注目ノードAの属性に注目ノードAの情報が加えられ、注目ノードAの属性がメモリに保存される。S404で情報補完を行い、S405で相互作用を示すエッジ(A-F)が検出された場合、S406では、
図5Bに示すように、このエッジが統合されたグラフデータが生成される。なお、S404における情報補完の方法は、例えば、公知の方法とすることができ、注目ノードとの関係性を適切に評価する方法であれば特に限定されない。
【0040】
また、演算部101は、例えば、ノードに関する外部のデータベース111から、注目ノードが含まれるグラフデータを取得し、取得したグラフデータを用いて情報補完を行ってもよい。このようにすることで、外部において、注目ノードを含むグラフデータの更新が頻繁に行われる場合であっても、最新のグラフデータに基づくデータベースを記憶部103に構築し易くすることができる。従って、データベースの充実を図ることが可能である。
【0041】
なお、情報処理装置100は、ネットワークアダプタ109を利用して外部のデータベース111からグラフデータを取得し、相互作用を抽出する処理を行ってもよい。また、データベースが構築された記憶デバイス(例えば、USBメモリ)が情報処理装置100に接続され、情報処理装置100は、この記憶デバイスからグラフデータを取得し、相互作用を抽出する処理を行ってもよい。
【0042】
図5Cに示すように、S407では、注目ノードAからたどり着いたノード群(B、C、D、F)に接続されたそれぞれのノード(E、G、H、K、L、M)に対して、注目ノードAを接続した新たなグラフデータが再構成される。また、これに伴って、注目ノードの属性として、探索済みのノードであるノード(B、C、D、F)の情報がメモリ102に保存される。
【0043】
そして、S408の判定により処理を繰り返す場合では、演算部101は、再構成されたグラフに基づいて、注目ノードAからエッジを1つ伝ってたどり着いたノード(E、G、H、K、L、M)との中心性スコアを算出する。また、演算部101は、注目ノードの属性として、ノード群(E、G、H、K、L、M)の情報をメモリ102に保存するとともに、このノード群に接続されたそれぞれのノードを注目ノードAに接続したグラフデータを再構成する。なお、注目ノードAとの新たな相互作用が検出された場合では、この相互作用を介して関係するノードの情報がメモリ102に保存され、この相互作用が統合されたグラフデータが構成される。また、新たな相互作用が検出された場合、記憶部103のネットワーク情報104が更新される。
【0044】
次に、
図6-
図7を参照しながら、情報処理装置100(詳細には、演算部101)が表示部107に表示させることができる出力画面の一例を説明する。
図6に示すように、出力画面600は、S406において抽出したエッジのリストである抽出済みリスト601に関する情報を含む。ユーザは、抽出済みリスト601を確認することで、グラフデータに統合された新たな相互作用を把握することができる。
【0045】
また、出力画面600は、処理対象のグラフデータ(すなわち、処理開始時のグラフデータ)に基づくグラフを表示する。なお、S406において抽出したエッジがある場合、このエッジが統合されたグラフデータに基づくグラフが表示される。ここで、注目ノードは他のノードと比べて強調する態様で表示されてもよい。また、抽出したエッジは他のエッジと比べて強調する態様で表示されてもよい。なお、
図6におけるグラフの表示態様は一例であり、適宜に変更することができる。出力画面600には、適宜の文字情報が表示されてもよい。
【0046】
図7に示すように、出力画面600に表示されたグラフ内のノードは、カーソルにより選択可能であり、ユーザは、グラフ内のノードを選択し、選択したノードの情報を参照することができる。ユーザがノードを選択することで表示される情報700には、例えば、注目ノードからの距離、注目ノードの中心性スコアの情報等が含まれてもよい。
図7の例では、注目ノードの距離として注目ノードからのホップ数、設定したホップ数までの注目ノードの中心性スコアが含まれる。なお、選択したノードの情報(例えば、ノードの名称、ノードの付帯情報等)が含まれてもよい。
【0047】
グラフ処理において、計算する対象のノード数が増加すると、計算時間が長くなることが考えられる。例えば、注目するノードから1つ、2つ、・・・とエッジをたどると、その距離に応じて関連するノード数が指数関数的に増加し、注目するノードに関する計算時間が増大していくと考えられる。このような計算時間が長くなるという課題に対して、本実施形態では、既に探索済みのデータをまとめてグラフを再構成することで、計算時間の低減を図ることができる。従って、例えば、注目するノードから1つ、2つ、・・・とエッジをたどって関連するノードの数が指数関数的に増大する場合であっても、計算時間の増大を抑制することができる。計算時間の増大を抑制する結果として、経済的な観点での貢献が可能である。
【0048】
また、中心性スコアが閾値を満たさない場合、新たな相互作用の検出を行うことで、注目ノードの中心性スコアが良好なデータベースの構築の容易化を図ることができる。
【0049】
また、グラフを再構成することで、中心性に基づく探索をすべきかどうかの判定(S403)がより効率的に行える。また、例えば、不足する相互作用を推定する際に、各ノードについての中心性を評価していては、非常に時間がかかると考えられるが、本実施形態によれば、不足する相互作用を推定する際の時間が長くなることが抑制されている。
【0050】
<第2実施形態>
次に、
図8-
図11を参照しながら、第2実施形態について説明する。なお、第1実施形態と異なる内容を詳しく説明し、第1実施形態と同様の内容の説明を省略することがある。また、図面において、第1実施形態と同様の部分について同じ符号を用いる場合がある。第2実施形態のハードウェア構成は、第1実施形態において説明したハードウェア構成と同様とすることができる。
【0051】
第2実施形態では、複数のノードを注目ノードとして設定可能であり、注目ノードとして、例えば、第1ノードおよび第2ノードが設定される。なお、設定画面は、注目するノードとホップ数を設定することができる態様であればよい。設定画面は、第1実施形態と同様とすることができ、例えば、グラフやリストを用いた形式に基づいて、複数の注目するノードを設定可能とされてもよい。また、設定画面は、注目するノードごとに、ホップ数が入力可能とされてもよい。
【0052】
図8を参照しながら、第2実施形態でのデータ処理の一例について説明する。このデータ処理は、第1ノードおよび第2ノードそれぞれの中心性スコアを算出する。
【0053】
データ処理が開始し(S800)、情報処理装置(詳細には、演算部101)は、ユーザにより設定された第1ノードおよび第2ノードを読み込み、第1ノードの属性に第1ノードの情報を加え、第2ノードの属性に第2ノードの情報を加える(S801)。それぞれのノードの属性はメモリに保存される。また、演算部101は、S802~S803に関する処理を繰り返す回数を初期値に設定する。
【0054】
演算部101は、それぞれの注目ノードに対し、第1ノードおよび第2ノードそれぞれについてS402~S407と同様の処理を並行して行う。すなわち、演算部101は、第1ノードに関する処理Aと、第2ノードに関する処理Bと、を並行して実行する。演算部101は、処理Aにおいて、第1ノードの中心性スコアを算出し、第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードの属性をメモリ102に保存する。ここで、処理Aにおいて新たな相互作用が検出された場合、この相互作用に関係するノードの属性がメモリ102に保存される。また、演算部101は、処理Bにおいて、第2ノードの中心性スコアを算出し、第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードの属性をメモリ102に保存する。ここで、処理Bにおいて新たな相互作用が検出された場合、この相互作用に関係するノードの属性がメモリ102に保存される。
【0055】
また、演算部101は、第1ノードと第1ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続され、且つ、第2ノードと第2ノードからエッジを1つ伝ってたどり着いたそれぞれのノードに接続されていた各ノードが接続された新たなグラフデータを構成する。ここで、新たな相互作用が検出されていた場合、新たな相互作用が統合されたグラフデータが構成される。また、演算部101は、S801で設定した値のインクリメントを行う(S802)。
【0056】
演算部101は、第1実施形態と同様に、(1)S801で設定した値が所定値よりも大きいかどうかを判定する。また、演算部101は、(2)注目ノード(この例では、第1ノードと第2ノード)の間にノードが存在するかどうかについて判定する(S803)。ここで、上記(1)と(2)の両方を満たさない場合(つまり、S801で設定した値が所定値以下であり、且つ、第1ノードと第2ノードの間にノードが存在する場合)、S802へ処理が戻る(S803-NO)。その一方で、上記(1)と(2)の少なくとも一つを満たす場合(つまり、S801で設定した値が所定値よりも大きい、および/または、第1ノードと第2ノードの間にノードが存在しない場合)、S804へ処理が進む(S803-YES)。そして、処理が終了する(S804)。
【0057】
ここで、
図9を参照しながら、S803に関する2つの注目ノード間にノードが存在しない状態の一例について説明する。演算部101がグラフの再構成を行うことで、
図9に示すように、第1ノードRと第2ノードSが接続されたグラフデータが構成され得る。この状態(すなわち、第1ノードRと第2ノードSの間にノードが存在しない状態)のグラフデータが構成された場合、演算部101は再度の処理を行わず、処理が終了する。
【0058】
次に、
図10を参照しながら、情報処理装置(詳細には、演算部101)が表示部107に表示させることができる出力画面の一例を説明する。出力画面600は、第1実施形態の場合と同様に、抽出したエッジ(処理Aおよび処理Bにおいて検出した新たな相互作用)のリストである抽出済みリスト601に関する情報を含む。
【0059】
また、出力画面600は、処理対象のグラフデータ(すなわち、処理開始時のグラフデータ)に基づくグラフを表示する。なお、抽出したエッジがある場合、このエッジが統合されたグラフデータに基づくグラフが表示される。第1実施形態と同様に、注目したノードを強調した態様で表示してもよいし、抽出したエッジを強調した態様で表示してもよい。また、第1実施形態と同様に、選択したノードの情報を表示させることが可能であり、本実施形態では、出力画面600には、例えば、第1ノードおよび第2ノードからの距離、中心性スコアなどの情報900が表示される。なお、この例では、第1ノードまたは第2ノードのうちの1つの中心性スコアが表示されるが、第1ノードおよび第2ノードの中心性スコアが表示されてもよい。
図10におけるグラフの表示態様は一例であり、適宜に変更することができる。
【0060】
以上、実施形態について説明されたが、本発明は前述した実施形態に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、実施形態の構成の一部について、他の構成の追加、削除、置換をしてもよい。
【0061】
演算部101は、中心性に関連した指標値(中心性スコア)を、例えば、degree、eigenvector、closeness、betweenness、pagerank、のうちの一つまたは複数に基づいて算出することができる。なお、上記の実施形態では、
図11の数1に示すように、演算部101は、pagerankに基づいて中心性スコアを算出する。
【0062】
情報処理装置が処理するグラフデータは、有向グラフであってもよいし、無向グラフであってもよい。
【0063】
情報処理装置はネットワークアダプタ109を利用して無線通信を行う例が説明されたが、情報処理装置はネットワークアダプタ109を利用して有線通信を行ってもよい。
【0064】
グラフデータ内のノードが固有表現を示す場合、情報処理装置は、S404の情報補完において、公知の自然言語処理に基づいて、注目ノードと別のノードの関係性を評価する。
【0065】
S403の判定で使用する閾値は、ユーザが適宜に設定可能である。ユーザは、例えば、注目ノードの中心性スコアが良好なデータを格納するデータベースを構築することを目的として、注目ノードの近傍が密になるような中心性の閾値を設定してもよい。
【符号の説明】
【0066】
1 情報処理システム
100 情報処理装置
101 演算部
102 メモリ
107 表示部