以下、本発明の実施の形態について、図面を参照しながら説明する。
図1は、本発明の実施形態に係る情報処理装置1の構成図である。情報処理装置1は、ネットワーク情報10及び解像度12を取得し、入力部11、制御部13、記憶部14、及び表示部15を含む。
記憶部10は、例えばRAM(Random Access Memory)やROM(Read Only Memory)を含む。記憶部10は、制御部12が実行するプログラムを格納するとともに、制御部12のワークメモリとしても機能する。なお、記憶部10に格納される制御部12が実行するプログラムは、電気通信回線を介して提供されるものであってもよいし、半導体記憶素子等のコンピュータで読み取り可能な情報記憶媒体に格納されて提供されるものであってもよい。
ネットワーク情報10は、リンクで結ばれる注目ノード及び隣接ノードを含む。ネットワーク情報10は、複数のノード及び複数のノードを結ぶ複数のリンクを含み、複数のノードのうち1つが注目ノードとなる。ネットワーク情報10は、例えば相互参照を含むHTMLデータ、組織の所属関係のデータ、友人関係のデータ等であってよい。ネットワーク情報10は、少なくともノード間の結び付きの関係(ノードとリンクの関係)を示すものであればよく、ノードが含む具体的な内容(HTMLデータの内容等)を示すものでなくてもよい。
入力部11は、例えばキーボードやマウス等であり、ユーザの指示を制御部12に伝達する。解像度12は、正の実数であって、情報処理装置1によってネットワーク情報10をコミュニティに分類する場合に、コミュニティの大きさを定めるパラメータである。
制御部13は、例えばCPU(Central Processing Unit)を含んでおり、記憶部14に格納されるプログラムを実行することにより、情報処理装置1の全体を制御する。制御部12は、機能的に、ネットワーク情報取得部130、第1種コミュニティ生成部131、第2種コミュニティ生成部132、依存度算出部133、独立部分判定部134及びコミュニティ修正部135を含む。ここで、第1種コミュニティ生成部131は、分類割合算出部131a、重要度算出部131b及び帰属度算出部131cを含む。また、第2種コミュニティ生成部132は、分類割合更新部132a、重要度更新部132b、帰属度更新部132c、重要度変化算出部132d、重要度変化判定部132e、解像度取得部132f及び安定解像度算出部132gを含む。制御部13の行う制御については、後に詳細に説明する。
記憶部14は、例えばRAM(Random Access Memory)やROM(Read Only Memory)を含んで構成される。記憶部10は、制御部13が実行するプログラムを格納するとともに、制御部13のワークメモリとしても機能する。なお、記憶部14に格納される制御部13が実行するプログラムは、電気通信回線を介して提供されるものであってもよいし、半導体記憶素子等のコンピュータで読み取り可能な情報記憶媒体に格納されて提供されるものであってもよい。表示部15は、制御部13により処理された情報をユーザに表示するものであり、例えば液晶表示装置である。
なお、ネットワーク情報10及び解像度12は、入力部11によりユーザによって入力されるものであってもよいし、記憶部14に格納されるものであってもよいし、電気通信回線を介して提供されるものであってもよい。
図2は、本発明の実施形態に係る情報処理装置1に取得されるネットワーク情報10の例を示す図である。本例のネットワーク情報10は、7つのノードと、9つのリンクの情報を含むものである。各ノードには、1から7までのノード番号が付与されており、例えばノード番号1であるノード(以下、ノード[1]と表す)は、ノード[2]及びノード[4]のノードとリンクを有する。本実施形態では、説明を簡明にするため7つのノードを有するネットワークの場合を示すが、ノード数及びリンク数はこれより多くてもよく、例えば10万程度であってもよい。本例のネットワーク情報10では、ノード間を結ぶリンクは方向を持たないこととしているが、リンクは一方通行であってもよい。
行列Tは、ノード間をリンクに沿ってランダムに遷移する場合における遷移確率を表すものである。例えば、ノード[1]を起点としてリンクに沿ってランダムに他のノードに遷移する場合、1/2の確率でノード[2]に遷移し、1/2の確率でノード[4]に遷移する。これらの遷移確率をまとめて表したものが、行列Tの第1列である。他の行列要素についても同様に構成されている。一般に、ノード[n]とノード[m]がリンクで接続されている場合にA
nm=1、ノード[n]とノード[m]がリンクで接続されていない場合にA
nm=0となる行列Aを用いて、ノードの総数をNとする場合に、行列Tは以下の数式(1)で定義される。遷移確率の総和は1であるから、任意のノード[m]について、Σ
nT
nm=1が成り立つ。
図3は、本発明の実施形態に係る情報処理装置1における、第1種コミュニティ生成のフローチャートである。第1種コミュニティを生成する処理では、ネットワーク情報10及び解像度12を入力として、ネットワークに含まれるN個のノードをK個以下の複数のコミュニティに分類する。ここで、N及びKは正の整数である。また、本実施形態に係る情報処理装置1は、1つのノードが複数のコミュニティに分類され得るように、コミュニティを生成する。なお、成分の総数Kはユーザが仮決めすることのできるパラメータであり、例えばK=Nと定めることができるが、後述するように、コミュニティの総数は、第1種コミュニティの生成により自動的に定まる。第1種コミュニティ生成、複数のコミュニティそれぞれについて、複数のノードそれぞれが当該コミュニティに分類される分類割合を求め、複数のコミュニティの重要度を求める。すなわち、コミュニティ[k]について、ノード[n]がコミュニティ[k]に分類される分類割合p(n|k)を求め、コミュニティ[k]の重要度π(k)を求める。分類割合p(n|k)、及び重要度π(k)を求めるにあたって、第d番目の通過情報τ(d)に基づく、複数のコミュニティ全体に対するコミュニティ[k]が占める割合γ(d)(k)を求めることとなる。ここで、第d番目の通過情報τ(d)はN次元のベクトルであり、τ(1)、τ(2)…τ(D)(Dは正の整数)というD個のデータである。
第1種コミュニティ生成処理では、はじめに、ネットワーク情報10が表すネットワークのノード間をランダムに遷移する場合における定常確率分布p
st(n)を算出する(S1)。定常確率分布p
st(n)は、以下の数式(2)で定められる連立N次方程式を解くことにより求められる。定常確率分布p
st(n)は、行列Tの固有ベクトルであって、固有値が1のものである。
いわゆるランクシンク等の問題が懸念され、定常確率分布の値が特定のノードに集中するおそれがある場合、数式(2)を変形し、例えば、pst(n)=(1−r)ΣmTnmpst(m)+rという関係によって定常確率分布pst(n)を求めることとしてもよい。ここで、rは0以上1以下の実数である。rは、ノード間をリンクに沿わずにランダムに遷移する確率を表す。
次に、複数のノード間を複数のリンクに沿ってランダムに遷移する場合に通過するノードを示す複数の通過情報τn (d)を生成する(S2)。本実施形態では、通過情報は、定常確率分布pst(n)に従って選出されたノード[n]についてτn (d)=1、かつ、ノード[n]を起点としてノード[m]に遷移する確率を与えるTmnに従って選出されたノード[m]についてτm (d)=1として生成する。このようなN次元ベクトルを、D回生成する。通過情報τn (d)は、Σnτn (d)=2を満たす量である。通過情報τn (d)は、仮想エージェントがノード間をリンクに沿ってランダムに遷移する場合に、仮想エージェントをノード[n]とノード[m]とを結ぶリンク上に見出す場合を表している。
本実施形態に係る分類割合算出部131a及び重要度算出部131bは、逐次計算により分類割合p(n|k)及び重要度π(k)をそれぞれ算出する。分類割合算出部131aは、ネットワーク情報10の予め定められた数の複数のコミュニティそれぞれに注目ノードが分類される分類割合を、複数のコミュニティそれぞれに、注目ノードとリンクで結ばれる隣接ノードが分類される分類割合と、所与の解像度12に応じた相関を有するようにして算出する。逐次計算を開始するにあたって、p0(n|k)、π0(k)、γ0 (d)(k)を仮決めする(S3)。ここで、Σnp0(n|k)=1、Σkπ0(k)=1を満たす値を与えるものとする。p0(n|k)は、k=1〜Kの成分について、n=1〜Nのノードが分類される割合を示すものであるから、仮決めではK×N−1個の正の実数を与えることになる。また、π0(k)は、k=1〜Kに分類されたネットワークのコミュニティについて、重要度を示すものであるから、仮決めではK−1個の正の実数を与えることになる。γ0 (d)(k)は、複数のコミュニティ全体に対するコミュニティ[k]が占める割合を表す係数であり、d=1〜Dの通過情報τ(d)に対応して定まる係数であるから、仮決めではK×D個の正の実数を与えることになる。
また、本実施形態に係る分類割合算出部131a及び重要度算出部131bは、ネットワークのコミュニティの大きさを定めるパラメータとして、解像度12を第1の値α0に設定する(S4)。ここで、α0はユーザが自由に定めることのできる値であるが、ネットワーク情報10のコミュニティ分類が、十分に細かくなるような値を設定することが望ましい。解像度12の値は0以上であるから、α0として0に近い値を設定することが望ましい。
逐次計算の第1ステップでは、第t回目の逐次計算による分類割合pt(n|k)を計算する(S5)。ここで、tは正の整数であり、逐次計算の回数を表す。pt(n|k)は、1つ前の逐次計算により得られるpt−1(n|k)、πt−1(k)、及びγt−1 (d)(k)より算出される。例えば、仮決め(S3)の後行われる第一回目の逐次計算では、p0(n|k)、π0(k)、及びγ0 (d)(k)を用いてp1(n|k)を求めることになる。
本実施形態に係る分類割合算出部131aは、以下の数式(3)で定められる関係により第t回目の逐次計算による分類割合p
t(n|k)を算出する(S5)。
ここで、α0はS4において設定された解像度12であり、正の実数である。本実施形態では、解像度12は、α0が0に近付くほど分解の粒度が細かくなり、α0が無限大に近付くほど分解の粒度が粗くなるパラメータである。また、Dt−1(k)はγt−1 (d)(k)から定まる係数であり、Dt−1(k)=Σdγt−1 (d)(k)である。
分類割合pt(n|k)は、ノード[n]との間でリンクを有するノード(Tnm≠0であるノード[m])のコミュニティ[k]に関する分類割合pt−1(m|k)が大きいほど大きな値となる第1の寄与(右辺第一項)と、複数のコミュニティ全体に対するコミュニティ[k]が占める割合γt−1 (d)(k)が大きいほど大きな値となる第2の寄与(右辺第二項)とから構成される値により算出される。
また、第1の寄与は、解像度12を粗くすると(α0を無限大に近付けると)1に近付く第1の係数α0/(α0+2Dt−1(k))と、ノード[n]との間でリンクを有するノード(Tnm≠0であるノード[m])に関して直前に算出された分類割合pt−1(m|k)と、から定められる。また、第2の寄与は、解像度12を粗くすると(α0を無限大に近付けると)0に近付く第2の係数1/(α0+2Dt−1(k))と、複数の通過情報τn (d)と、複数のコミュニティ全体に対するコミュニティ[k]が占める割合γt−1 (d)(k)と、から定められる。なお、以下に示すように、複数のコミュニティ全体に対するコミュニティ[k]が占める割合γt−1 (d)(k)は、直前に算出された分類割合pt−1(n|k)及び重要度πt−1(k)から算出される。
次に、直前に算出された分類割合p
t−1(n|k)及び重要度π
t−1(k)、並びに複数の通過情報τ
n (d)から、複数のコミュニティ全体に対するコミュニティ[k]が占める割合γ
t (d)(k)を算出する(S6)。本実施形態では、以下の数式(4)により割合γ
t (d)(k)を算出する。割合γ
t (d)(k)は、コミュニティ全体の中で重要度が相対的に大きいコミュニティについて大きな値をとる。
さらに、ネットワークのコミュニティ[k]の重要度π
t(k)を算出する(S7)。重要度π
t(k)は、複数のコミュニティ全体に対するコミュニティ[k]が占める割合γ
t (d)(k)が大きいほど大きな値となるように算出される。重要度算出部131bは、複数のコミュニティのうち1つのコミュニティ[k]の重要度π
t(k)を、複数のコミュニティ全体に対して当該1つのコミュニティ[k]が占める割合γ
t (d)(k)が大きいほど大きな値となるように、分類割合算出部131aにより算出された分類割合p
t−1(n|k)を用いて算出する。本実施形態では、以下の数式(5)によりコミュニティ[k]の重要度π
t(k)を算出する。
以上の数式(3)、(4)及び(5)により、直前に算出された分類割合pt−1(n|k)、重要度πt−1(k)及び割合γt−1 (d)(k)、並びに通過情報τn (d)から、分類割合pt(n|k)、重要度πt(k)及び割合γt (d)(k)が算出される。
第1コミュニティ生成処理では、逐次計算の前後における評価値Q
tの差の絶対値|Q
t−Q
t−1|が予め定められた基準値εより小さいか否かを判定し、逐次計算を終了するか否かを決定する(S8)。本実施形態において、評価値Q
tは以下の数式(6)で定められる量である。
|Qt−Qt−1|<εが成立しない場合、最新の分類割合pt(n|k)、重要度πt(k)及び割合γt (d)(k)を直前の分類割合、重要度及び割合であるとして更新する(S9)。その後、分類割合pt+1(n|k)を算出する工程(S5)、割合γt+1 (d)(k)を算出する工程(S6)、重要度πt+1(k)を算出する工程(S7)を行い、|Qt+1−Qt|<εが成立するか否かを判定する(S8)、という一連の工程を繰り返す。本実施形態に係る分類割合算出部131a及び重要度算出部131bは、評価値の差の絶対値が予め定められた値より小さくなるまで、以上の工程を繰り返し、逐次計算により分類割合及び重要度を算出する。これにより、ネットワーク情報10のコミュニティ分類が漸近的に行われる。
一方、|Qt−Qt−1|<εが成立する場合、ノード[n]がコミュニティ[k]に分類される分類割合をp(I)(n|k)=pt(n|k)により定め、コミュニティ[k]の重要度をπ(I)(k)=πt(k)により定める(S10)。ここで、添字(I)は、これらの値が第1種コミュニティ生成のために用いられる値であることを示す。本実施形態に係る情報処理装置1によれば、予め定められた値εを調整することで、任意の精度で分類割合p(I)(n|k)及び重要度π(I)(k)を求め、ネットワークのコミュニティ分類を任意の精度で行う。なお、逐次計算の回数を予め定めておき、定められた回数だけ逐次計算を行った場合におけるpt(n|k)及びπt(k)の値を、それぞれ分類割合p(I)(n|k)及び重要度π(I)(k)と決定することとしてもよい。
次に、帰属度算出部131cにより、複数のノードそれぞれについて、ノード[n]がコミュニティ[k]に分類される分類割合p(n|k)が大きいほど、大きな値となるように帰属度を算出する(S11)。本実施形態では、ノード[n]がコミュニティ[k]に帰属する帰属度q
(I)(k|n)は、以下の数式(7)によって求められる。
数式(7)から読み取れるように、帰属度q(k|n)は、Σkq(k|n)=1を満たす量である。すなわち、あるノードが各コミュニティに帰属する帰属度の総和は1となる。帰属度q(k|n)は、あるノード[n]が、コミュニティ[k]に帰属する度合いをコミュニティ全体に関して相対的に測った量である。
第1種コミュニティ生成部131は、解像度12の第1の値α0に応じた相関を有するようにして算出された、注目ノード[n]に関する分類割合p(I)(n|k)から、注目ノード[n]が属する、ネットワーク情報10の1以上の第1種コミュニティを生成する(S12)。第1種コミュニティ生成部131は、注目ノード[n]がコミュニティ[k]に属する割合を、分類割合p(I)(n|k)の値によって定めてよい。また、第1種コミュニティ生成部131は、分類割合p(I)(n|k)及び重要度π(I)(k)から算出される帰属度q(I)(k|n)に基づき、注目ノード[n]が属する第1種コミュニティを生成してもよい。その場合、注目ノード[n]がコミュニティ[k]に属する割合を、帰属度q(I)(k|n)の値によって定める。いずれの場合も、第1種コミュニティ生成部131は、注目ノード[n]が属する2以上の第1種コミュニティを生成する。そのため、本実施形態に係る第1種コミュニティ生成部131によれば、1つのノードが複数の属性を有する場合を表現したコミュニティ分類が行われる。
以上のように、本実施形態に係る第1種コミュニティ生成部131は、逐次計算により第1種コミュニティを生成する。逐次計算の精度は、数式(6)のεで定められる。εを十分に小さく設定しなかった場合、独立した部分を含むコミュニティが生成される場合がある。本実施形態に係る独立部分判断部134は、分類割合更新部132aによる更新の前に、1以上の第1種コミュニティのうち少なくとも1つが、2以上の独立した部分を含むか否かを判定する。ここで、コミュニティに含まれる独立した部分とは、ノードの集合であって、当該集合に含まれるノード間は互いにリンクで直接結ばれているが、当該コミュニティに含まれ、当該集合に含まれないノードとは、リンクで直接結ばれていない集合をいう。
本実施形態に係るコミュニティ修正部135は、独立部分判定部134により、1以上の第1種コミュニティのうち少なくとも1つが、2以上の独立した部分を含むと判定される場合に、当該2以上の独立した部分が2以上の第1種コミュニティとなるように1以上の第1種コミュニティを修正する。これにより、コミュニティの生成を比較的粗い精度で行った場合であっても、より精度良くコミュニティ生成を行った場合と同等の分類結果が得られる。
図4は、本発明の実施形態に係る情報処理装置1における、第2種コミュニティ生成のフローチャートである。第2種コミュニティ生成部132は、第1種コミュニティ生成部131により逐次計算で求められた分類割合p(I)(n|k)及び重要度π(I)(k)を計算の出発点として、解像度12を第1の値α0からわずかに増加させた第2の値α1=α0+Δαとして、解像度12の第2の値α1に応じた相関を有するようにして分類割合、重要度及び帰属度を更新する。また、第2種コミュニティ生成部132は、第2種コミュニティ生成部132により更新された分類割合、重要度及び帰属度を、わずかに増加させた解像度12に応じた相関を有するように更新していく。
第2種コミュニティ生成処理は、第1種コミュニティ生成処理のS1において算出された定常確率分布pst(n)を取得することから始まる(S21)。また、第1種コミュニティ生成処理のS2において生成された通過情報τn (d)を取得する(S22)。さらに、第1種コミュニティ生成処理のS10において算出された分類割合p(I)(n|k)、重要度π(I)(k)及び割合γ(I) (d)(k)を取得する(S23)。ここで、割合γ(I) (d)(k)は、|Qt−Qt−1|<εが成立した場合における割合γt (d)(k)の値である。
本実施形態に係る分類割合更新部132aは、注目ノード[n]に関する分類割合p(I)(n|k)を、複数のコミュニティそれぞれに隣接ノードが分類される分類割合と、解像度12の第2の値α1=α0+Δαに応じた相関を有するようにして更新する。そのため、第2種コミュニティ生成部132は、解像度12として、第1の値α0を増加させた第2の値α1=α0+Δαを設定する(S24)。本実施形態の場合、解像度12を粗くすることは解像度12の値を大きくすることに対応するため、増加量Δαは正の値である。しかし、解像度12を粗くすることが解像度12の値を小さくすることに対応する場合、Δαは負の値であってよい。
本実施形態に係る分類割合更新部132aは、分類割合等の変化が比較的小さくなる程度(準静的な変化となる程度)の変化量Δαによって、解像度12の第2の値α1=α0+Δαを設定する。例えば、分類割合更新部132aは、分類割合等の変化が、数式(6)において逐次計算の収束性の判定に用いた値ε以下となるように解像度12の変化量Δαを定めて、解像度12を第2の値α1に設定してよい。
分類割合更新部132aは、具体的に、以下の数式(8)によって分類割合を更新する(S25)。ここで、分類割合p
(II)(n|k)は、第2種コミュニティを生成するために用いられる更新された分類割合である。また、D
(I)(k)=Σ
kγ
(I) (d)(k)である。
数式(8)は、数式(3)の解像度12の第1の値α0を第2の値α1に置き換え、第t回目の逐次計算による分類割合pt(n|k)及び割合γt (d)(k)を、それぞれ第1種コミュニティ分類処理で算出された分類割合p(I)(n|k)及び割合γ(I) (d)(k)に置き換えたものである。
また、本実施形態に係る重要度更新部132bは、第1種コミュニティ分類処理で算出された重要度π
(I)(k)を、第2種コミュニティを生成するために用いられるπ
(II)(k)に更新する。具体的には、重要度更新部132bは、第1種コミュニティ分類処理で算出された割合γ
(I) (d)(k)を以下の数式(9)で割合γ
(II) (d)(k)に更新する。
数式(9)は、数式(4)における第t−1回目の逐次計算による分類割合p
t−1(n|k)及び重要度π
t−1(k)を、第1種コミュニティ分類処理で算出された分類割合p
(I)(n|k)及び重要度π
(I)(k)に置き換えたものである。重要度更新部132bは、分類割合更新部132aにより更新された分類割合p
(II)(n|k)を用いて重要度算出部131bにより算出された重要度π
(I)(k)を更新する。具体的に、重要度更新部132bは、更新された割合γ
(II) (d)(k)を用いて、以下の数式(10)によって重要度を更新する(S25)。
数式(10)は、数式(5)における第t回目の逐次計算による割合γt (d)(k)を、更新された割合γ(II) (d)(k)に置き換えたものである。
さらに、帰属度更新部132cは、第1種コミュニティ分類処理で算出された帰属度q
(I)(k|n)を、以下の数式(11)によって、第2種コミュニティを生成するために用いられる帰属度q
(II)(k|n)に更新する(S26)。
数式(11)は、数式(7)における第1種コミュニティ分類処理で算出された分類割合p(I)(n|k)及び重要度π(I)(k)を、第2種コミュニティ分類処理で更新された分類割合p(II)(n|k)及び重要度π(II)(k)に置き換えたものである。
第2種コミュニティ生成部132は、分類割合更新部132aにより更新された注目ノード[n]に関する分類割合p(II)(n|k)から、注目ノード[n]が属する、ネットワーク情報10の1以上の第2種コミュニティを生成する(S27)。第2種コミュニティ生成部132は、注目ノード[n]がコミュニティ[k]に属する割合を、分類割合p(II)(n|k)の値によって定めてよい。また、第2種コミュニティ生成部132は、分類割合p(II)(n|k)及び重要度π(II)(k)から算出される帰属度q(II)(k|n)に基づき、注目ノード[n]が属する第2種コミュニティを生成してもよい。その場合、注目ノード[n]がコミュニティ[k]に属する割合を、帰属度q(II)(k|n)の値によって定める。いずれの場合も、第2種コミュニティ生成部132は、注目ノード[n]が属する2以上の第2種コミュニティを生成する。そのため、本実施形態に係る第2種コミュニティ生成部132によれば、1つのノードが複数の属性を有する場合を表現したコミュニティ分類が行われる。
また、本実施形態に係る第1種コミュニティ生成部131及び第2種コミュニティ生成部132によれば、第1種コミュニティ生成処理において算出された分類割合p(I)(n|k)、重要度π(I)(k)及び割合γ(I) (d)(k)を計算の出発点として第2種コミュニティ生成処理が行われ、2以上の解像度(解像度12の第1の値α0と第2の値α1)により得られたコミュニティ間の関係が導かれる。また、第1種コミュニティ生成部131により、逐次計算の収束性の判定を行い、第2種コミュニティ生成部132において第1種コミュニティ生成部131による算出結果を用いることで、十分に精度良く分類されたコミュニティを更新することとなり、2以上の解像度それぞれについて独立してコミュニティの生成を行う場合に比較して、少ない計算量で2以上の解像度それぞれについてコミュニティの生成が行われる。本実施形態では、第2種コミュニティ生成部132は、数式(8)、(9)及び(10)によって一度の計算で分類割合、割合及び重要度を更新することとしたが、これらの値を数回の逐次計算(分類割合算出部131a及び重要度算出部131bによる逐次計算の回数よりも少ない回数の逐次計算)によって更新することとしてもよい。第1種コミュニティ生成部131により十分精度良くコミュニティ生成がされているから、第2種コミュニティ生成部132における逐次計算の回数が第1種コミュニティ生成部131における逐次計算の回数よりも少なくても、第2種コミュニティ生成部132によって、十分な精度でコミュニティ生成が行われる。
以上の説明において、第2種コミュニティ生成部132は、第1種コミュニティ生成処理において算出された分類割合p(I)(n|k)、重要度π(I)(k)及び割合γ(I) (d)(k)並びに解像度12の第2の値α1=α0+Δαを入力として、更新された分類割合p(II)(n|k)、重要度π(II)(k)、割合γ(II) (d)(k)及び帰属度q(II)(k|n)を算出した。第2種コミュニティ生成部132は、さらに、第2種コミュニティ生成処理において算出された分類割合p(II)(n|k)、重要度π(II)(k)及び割合γ(II) (d)(k)並びに解像度12の第3の値α0+2Δαを入力として、更新された分類割合、重要度、割合及び帰属度を算出する。このように、解像度12の値をΔαずつ増加させて、分類割合、重要度、割合及び帰属度を更新していくことで、解像度12の値に対するコミュニティ形成状態の変化が追跡される。次図において、解像度12の値を第1の値α0から増加させた場合における、重要度π(II)(k)の変化の様子を示す。
図5は、本発明の実施形態に係る情報処理装置1によって算出される重要度π(k)と、解像度12の関係を示す図である。同図では、横軸に解像度12の値αを示し、縦軸に重要度π(k)の値を示している。
同図の縦軸に最も近い3つのデータ点は、図2に示すネットワーク情報10について、解像度12の値が第1の値α0である場合において、重要度算出部131bにより算出された重要度π(0)(k)の値を表している。ここで、重要度π(0)(k)は、第1種コミュニティの重要度であるが、添字を(0)に変更し、解像度12の第1の値α0に対応した添字としている。
重要度π(0)(k)は、k=1、2、3について0でない値を有し、それ以外のkについて0である。このことは、ネットワーク情報10を解像度12の第1の値α0に応じた相関を有するようにコミュニティ分類すると、3つの第1種コミュニティに分類されることを表している。
同図には、解像度12を第1の値α0からΔαだけ増加させて第2の値α1とした場合において、重要度更新部132bにより算出された重要度π(1)(k)の値が表されている。ここで、重要度π(1)(k)は、第2種コミュニティの重要度であるが、添字を(1)に変更し、解像度12の第2の値α1に対応した添字としている。重要度π(1)(k)は、k=1、2、3について重要度π(0)(k)とほぼ変わらない値を有する。
本発明の発明者は、解像度12の値を増加させて第2種コミュニティ生成部132による重要度の更新を繰返していくと、重要度π(k)の値が比較的大きく変化する不安定領域が表れ、1以上のコミュニティについて重要度の値が0になることを見出した。同図の場合、解像度12の値を増加させていくと、第1の不安定領域R1が表れ、π(k=2)の値が0に変化している。また、第1の不安定領域R1において、π(k=1)<π(k=2)からπ(k=1)>π(k=2)へ入れ替わりが生じている。これらの変化は、解像度12の値を増加させて解像度12を粗くしていくと、コミュニティ[2]が消滅してコミュニティ[1]に吸収され、相対的にコミュニティ[3]の重要度が減少したために生じていると解釈される。
本実施形態に係る重要度変化算出部132dは、重要度更新部132bにより更新された重要度の、更新前後の変化の量を算出する。すなわち、重要度変化算出部132dは、解像度の値がΔαだけ異なる場合において算出された、2つの重要度の変化の量を、各コミュニティについて算出する。
また、本実施形態に係る重要度変化判定部132eは、重要度変化算出部132dにより算出された変化の量が予め定められた量よりも大きいか否かを判定する。予め定められた量(基準量)としては、安定領域(不安定領域以外の領域)における重要度の変化の量を採用してよい。図5の例の場合、|π(1)(k)−π(0)(k)|のうち最も値が大きいコミュニティ[k]についての変化量を基準量とすることができる。
重要度変化算出部132dは、解像度12の値がΔα増加した場合における、π(1)、π(2)及びπ(3)の変化量を算出する。それぞれの変化量は、第1の不安定領域R1において、基準量より大きいから、重要度変化判定部132eは、π(1)、π(2)及びπ(3)の変化の量が予め定められた量よりも大きいと判定する。
本実施形態に係る解像度取得部132fは、重要度変化判定部132eにより重要度の変化の量が予め定められた量よりも大きいと判定された場合における解像度12の値を取得する。本例の場合、重要度変化判定部132eは、第1の不安定領域R1において、重要度の変化の量が予め定められた量よりも大きいと判定するため、解像度取得部132fは、第1の不安定領域R1に属する解像度12の値を取得する。解像度取得部132fは、第1の不安定領域R1に属する解像度12の値のうち中点の値を取得してもよい。これにより、コミュニティに階層構造が表れる解像度12の値が判別される。
解像度12の値をさらに増加させ、重要度の値の更新を続けると、解像度12の値がα2である場合の重要度の値はπ(2)(k)となる。さらに重要度の更新を続けると、第2の不安定領域R2が表れる。第2の不安定領域R2では、コミュニティ[2]の重要度が0になり、コミュニティ[1]の重要度が1に漸近する。このことは、コミュニティ[2]が消滅してコミュニティ[1]に吸収され、全体として1つのコミュニティになったと解釈される。第2の不安定領域R2を過ぎて、重要度の値の更新を続けると、解像度12の値がα3である場合の重要度の値はπ(3)(k)となる。
本実施形態に係る安定解像度算出部132gは、解像度取得部132fにより取得された2つの解像度12の値の間の値を有する安定解像度を算出する。具体的に、安定解像度算出部132gは、解像度取得部132fにより取得された2つの解像度12の値の中点の値を安定解像度として算出する。図5の例において、安定解像度算出132gは、第1の不安定領域R1の上端と、第2の不安定領域R2の下端との中点の値を安定解像度α2として算出する。算出された安定解像度は、後に詳細に説明する依存度算出部133によるコミュニティ間の依存度の算出を行う場合に用いられる。仮に、コミュニティ間の依存度を不安定領域において算出すると、計算結果が不安定となり、計算時間が長くなったり、計算結果の精度が悪くなったりする場合がある。本実施形態に係る依存度算出部133は、安定解像度を用いて依存度を算出することで、安定的な計算結果を得る。また、本実施形態に係る安定解像度算出部132gは、解像度取得部132fにより取得された2つの解像度12の値の中点の値を安定解像度として用いることで、安定的な計算結果が得られる解像度をより少ない計算量で求めている。
以下の説明において、重要度の値がπ(1)(k)である場合の3つのコミュニティを第1階層コミュニティ、重要度の値がπ(2)(k)である場合の2つのコミュニティを第2階層コミュニティ、重要度の値がπ(3)(k)である場合の1つのコミュニティを第3階層コミュニティと称する。第2階層コミュニティは、第1階層コミュニティに対する上層コミュニティである。逆に、第1階層コミュニティは、第2階層コミュニティに対する下層コミュニティである。同様に、第3階層コミュニティは、第2階層コミュニティに対する上層コミュニティであり、第2階層コミュニティは、第3階層コミュニティに対する下層コミュニティである。
図6は、本発明の実施形態に係る情報処理装置1によって生成されるコミュニティの階層を示す概略図である。同図には、解像度12の値を示す縦軸が示され、解像度12の値がα1、α2、α3の場合におけるネットワーク情報10のコミュニティが破線で示されている。解像度12の値がα1である場合、ノード[2]及び[3]を含む第1の第1階層コミュニティ2aと、ノード[1]及び[4]を含む第2の第1階層コミュニティ2bと、ノード[5]、[6]及び[7]を含む第3の第1階層コミュニティ2cが破線で示されている。また、解像度12の値がα2である場合、ノード[1]、[2]、[3]及び[4]を含む第1の第2階層コミュニティ3aと、ノード[5]、[6]及び[7]を含む第2の第2階層コミュニティ3bが破線で示されている。また、解像度12の値がα3である場合、ノード[1]乃至[7]を含む第3階層コミュニティ4が破線で示されている。
それぞれの階層のコミュニティ間には、破線矢印で、依存度p(C(a) k|C(b) l)が示されている。ここで、C(a) kは、第a階層のコミュニティ[k]を示す記号であり、依存度p(C(a) k|C(b) l)は、第a階層のコミュニティ[k]が、第b階層のコミュニティ[l]に依存する割合を示す。本実施形態に係る依存度算出部133は、1以上の第2種コミュニティのうち1つの上層コミュニティが、1以上の第1種コミュニティのうち1つの下層コミュニティに依存する割合を示す依存度を、上層コミュニティに分類される1以上のノードと、下層コミュニティに分類される1以上のノードとの重複が多いほど大きくなるように算出する。
図7は、本発明の実施形態に係る情報処理装置1における、依存度算出のフローチャートである。本実施形態に係る依存度算出部133は、はじめに第1種コミュニティ生成部131により算出された定常確率分布pst(n)を取得する(S31)。そして、第2種コミュニティ生成部132の帰属度更新部132cにより算出された各階層の帰属度q(a)(k|n)を取得する(S32)。各階層の帰属度q(a)(k|n)は、安定解像度の下で算出された分類割合及び重要度から求められることが望ましい。
その後、依存度算出部133は、第a階層のコミュニティ[k]と第b階層のコミュニティ[l]との間の絶対重みp(C
(a) k、C
(b) l)を算出する(S33)。本実施形態に係る依存度算出部133は、以下の数式(12)によって、絶対重みp(C
(a) k、C
(b) l)を算出する。
ここで、I(n∈C(a) k)は、ノード[n]が第a階層のコミュニティ[k]に属する場合に1、ノード[n]が第a階層のコミュニティ[k]に属さない場合に0となる関数である。ノード[n]が第a階層のコミュニティ[k]に属するか否かは、第a階層の帰属度q(a)(k|n)により判定する。任意のノード[n]について、帰属度q(a)(k|n)はΣkq(a)(k|n)=1を満たすから、帰属度が最も大きいコミュニティが存在する(仮に、複数のコミュニティについて帰属度が同じ値で最大となる場合、当該複数のコミュニティのうちからランダムに1つのコミュニティを選んでよい)。本実施形態に係る依存度算出部133は、第a階層において、ノード[n]は、帰属度q(a)(k|n)の値が最も大きいコミュニティ[k]に属すると判定する。
次に、依存度算出部133は、第a階層のコミュニティ[k]について、固有重みp(C
(a) k)を算出する(S34)。本実施形態に係る依存度算出部133は、以下の数式(13)によって、第a階層のコミュニティ[k]の固有重みp(C
(a) k)を算出する。
以上説明した絶対重みp(C(a) k、C(b) l)及び固有重みp(C(a) k)を算出する第1の方法は、1つの例であり、他にも絶対重み及び固有重みを算出する方法がある。後に絶対重み及び固有重みを算出する第2の方法及び第3の方法を詳細に説明する。
絶対重みp(C
(a) k、C
(b) l)及び固有重みp(C
(a) k)に基づいて、依存度算出部133は、第a階層のコミュニティ[k]と第b階層のコミュニティ[l]との間の相対重み(依存度)p(C
(a) k|C
(b) l)を算出する(S35)。本実施形態に係る依存度算出部133は、以下の数式(14)によって、第a階層のコミュニティ[k]が第b階層のコミュニティ[l]に依存する割合である依存度p(C
(a) k|C
(b) l)を算出する。
図8は、本発明の実施形態に係る情報処理装置1によって算出される、第1階層のコミュニティと第2階層のコミュニティの間の依存度p(C(1) k|C(2) l)を示す表である。また、図9は、本発明の実施形態に係る情報処理装置1によって算出される、第2階層のコミュニティと第3階層のコミュニティの間の依存度p(C(2) k|C(3) l)を示す表である。両図には、絶対重みp(C(1) k、C(2) l)及びp(C(2) k、C(3) l)と、固有重みp(C(2) k)及びp(C(3) k)も示している。
図2に示すネットワーク情報10について、解像度12の値α1でコミュニティ分類を行うと3つの第1階層のコミュニティが検出される。ノード[2]及び[3]について第1階層の帰属度q(1)(k|n)が最も大きいコミュニティはコミュニティ[1]であり、I([2]∈C(1) k)={1(k=1の場合)、0(k=2及び3の場合)}となり、I([3]∈C(1) k)={1(k=1の場合)、0(k=2及び3の場合)}となる。同様に、I([1、4]∈C(1) k)={1(k=2の場合)、0(k=1及び3の場合)}となる。また、I([5〜7]∈C(1) k)={3(k=1の場合)、0(k=1及び2の場合)}となる。
また、第2階層の帰属度q(2)(k|n)から、I([1〜4]∈C(2) k)={1(k=1の場合)、0(k=2の場合)}となり、I([5〜7]∈C(2) k)={1(k=2の場合)、0(k=1の場合)}となる。
これらのI(n∈C(1) k)及びI(n∈C(2) k)と、取得された定常確率分布pst(n)から、数式(12)に従って絶対重みp(C(1) k、C(2) l)を算出すると、図8の左の表に示す値が得られる。絶対重みp(C(1) k、C(2) l)は、Σk、lp(C(1) k、C(2) l)=1を満たす。これらの値から、第1階層のコミュニティ[1]及び[2]は、第2階層のコミュニティ[1]と関係性があるが、第2階層のコミュニティ[2]とは関係性が無いことがわかる。また、第1階層のコミュニティ[3]は、第2階層のコミュニティ[1]と関係性が無く、第2階層のコミュニティ[2]と関係性があることがわかる。
I(n∈C(2) k)と、取得された定常確率分布pst(n)から、数式(13)に従って第2階層のコミュニティの固有重みp(C(2) k)を算出すると、図8の中央の表に示す値が得られる。固有重みp(C(2) k)は、固有重みΣkp(C(2) k)=1を満たす。これらの値から、第2階層では、コミュニティ[1]がコミュニティ[2]より相対的に大きいことが読み取れる。
算出された絶対重みp(C(1) k、C(2) l)と、固有重みp(C(2) k)から、数式(14)に従って第1階層のコミュニティと第2階層のコミュニティの間の依存度p(C(1) k|C(2) l)を算出すると、図8の右の表に示す値が得られる。依存度p(C(1) k|C(2) l)は、第2階層のコミュニティそれぞれについて(任意のlについて)、Σkp(C(1) k|C(2) l)=1を満たす。これらの値から、第1階層のコミュニティ[1]及び[2]は、第2階層のコミュニティ[1]に依存し、第2階層のコミュニティ[2]には依存しないことがわかる。また、第1階層のコミュニティ[1]が第2階層のコミュニティ[1]に依存する割合は0.523であり、第1階層のコミュニティ[2]が第2階層のコミュニティ[1]に依存する割合は0.477であって、第1階層のコミュニティ[1]の方が、依存度が僅かに大きいことがわかる。また、第1階層のコミュニティ[3]は、第2階層のコミュニティ[2]に依存し、第2階層のコミュニティ[1]には依存しない。
同様に、図9には、第2階層の2つのコミュニティと、第3階層の1つのコミュニティについて、絶対重みp(C(2) k、C(3) l)と、固有重みp(C(3) k)と、依存度p(C(2) k|C(3) l)と、をそれぞれ表に示している。第3階層には1つのコミュニティしかないので、第2階層のコミュニティは、それぞれ第3階層のコミュニティ[1]に依存している。ただし、依存の割合は、第2階層のコミュニティ[1]が0.62であり、第2階層のコミュニティ[2]は0.38であり、偏りがあることがわかる。
本実施形態に係る依存度算出部133によれば、ネットワーク情報10の異なる階層のコミュニティについて、コミュニティの吸収を反映した上層コミュニティと下層コミュニティの親子関係が算出される。コミュニティは、必ずしも1対1の親子関係を有するとは限らず、2以上のコミュニティが1つのコミュニティに統合され、親子関係をつくる場合もある。図6に示す例では、第1階層のコミュニティ[1]及び[2]が、第2階層のコミュニティ[1]に統合されており、第2階層のコミュニティ[1]は2つのコミュニティを親に持つといえる。このように、本実施形態に係る依存度算出部133によれば、2以上のコミュニティを親に持つコミュニティが判別され、より詳細なコミュニティの親子関係を導出される。
以下では、第a階層のコミュニティ[k]と第b階層のコミュニティ[l]との間の絶対重みp(C(a) k、C(b) l)と、第a階層のコミュニティ[k]の固有重みp(C(a) k)を算出する第2の方法及び第3の方法について説明する。第2の方法は、ノード[n]が属するコミュニティを1つに定めず、1つのノードが複数のコミュニティに属することを許容しつつ、これらの量を求める方法である。第3の方法は、リンクが向きを有する場合に、これらの量を求める方法である。
第2の方法では、第a階層のコミュニティ[k]と第b階層のコミュニティ[l]との間の絶対重みp(C
(a) k、C
(b) l)は、以下の数式(15)により求められる。
ここで、S
(a)、(b) k、l(n)は、以下の数式(16)により、逐次計算により求められる。ここで、K
aは、第a階層のコミュニティの総数であり、K
bは、第b階層のコミュニティの総数である。
S(a)、(b) k、l(n)を求めるにあたって、はじめにS(a)、(b) k、l(n)の値を仮決めする。その後、仮決めしたS(a)、(b) k、l(n)と、帰属度更新部132cにより算出された第a階層の帰属度q(a)(k|n)及び第b階層の帰属度q(b)(k|n)とを用いて、数式(16)によりρ(a)、(b) k、l(n)を算出する。さらに、算出されたρ(a)、(b) k、l(n)を用いて、数式(16)によりS(a)、(b) k、l(n)の値を更新する。以上の計算をS(a)、(b) k、l(n)の値の変動が十分に小さくなるまで繰返す。S(a)、(b) k、l(n)の値の収束性の判定は、逐次計算前後のS(a)、(b) k、l(n)の値の変化が、数式(6)のε以下となるか否かによって行ってよい。
第2の方法では、第a階層のコミュニティ[k]の固有重みp(C
(a) k)は、以下の数式(17)により求められる。
数式(15)により算出された絶対重みp(C(a) k、C(b) l)及び数式(16)により算出された固有重みp(C(a) k)から、第1の方法においても、数式(14)により第a階層のコミュニティ[k]と第b階層のコミュニティ[l]との間の相対重み(依存度)p(C(a) k|C(b) l)が算出される。第1の方法の特徴は、1つのノードが複数のコミュニティに属する場合に、コミュニティ間の親子関係を導出する点である。そのため、上層コミュニティは、潜在的に全ての下層コミュニティを親として持つこととなる。
次に、依存度を求める第3の方法について説明する。第3の方法は、ネットワーク情報10が向きを持ったリンクを含む場合に適用される。図2に示すネットワーク情報10の例では、リンクは向きを持たないが、全てのリンクそれぞれを、向きが互いに逆である2つのリンクに置き換えることで、第3の方法を適用することができる。図2に示すネットワーク情報10の例では、リンクの総数は9だが、全てのリンクを有向リンクに置き換えると、リンクの総数は18となる。
第3の方法では、第a階層のコミュニティ[k]と第b階層のコミュニティ[k’]との間の絶対重みp(C
(a) k、C
(b) k’)は、以下の数式(18)により求められる。ここで、p
〜(l)は、ネットワーク情報10に含まれるリンクの確率分布であり、数式(19)で与えられる。また、Lはネットワーク情報10に含まれるリンクの総数である。I(l∈C
(a) k)は、リンク[l]が第a階層のコミュニティ[k]に属する場合に1、リンク[l]が第a階層のコミュニティ[k]に属さない場合に0となる関数である。I(l∈C
(a) k)は、リンク[l]がコミュニティ[k]に属するか否かを表す関数といえる。
p
〜(l)の具体的な表式は、以下の数式(19)で与えられる。p
〜(l)は、リンク[l]の出発ノード[n
l]の定常確率分布p
st(n
l)を、ノード[n
l]から発するリンクの数d
out(n
l)で割った値である。ここで、出発ノード[n
l]は、リンク[l]が結ぶ2つのノードのうち出発側のノードを表す。p
〜(l)は、ノードの定常確率分布を、当該ノードに繋がるリンクの数で割ったものであり、Σ
lp
〜(l)=1を満たす。
第3の方法では、第a階層のコミュニティ[k]の固有重みp(C
(a) k)は、以下の数式(20)により求められる。
数式(18)により算出された絶対重みp(C(a) k、C(b) k’)及び数式(20)により算出された固有重みp(C(a) k)から、第3の方法においても、数式(14)により第a階層のコミュニティ[k]と第b階層のコミュニティ[k’]との間の相対重み(依存度)p(C(a) k|C(b) k’)が算出される。第3の方法の特徴は、ネットワーク情報10に含まれる有向リンクに着目し、コミュニティの親子関係を、リンクがいずれのコミュニティに属するかという観点から算出する点である。そのため、ネットワーク情報10を構成するリンクの接続状態に応じて、異なる階層間のコミュニティの親子関係が導出される。