JP6155833B2 - 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム - Google Patents

伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム Download PDF

Info

Publication number
JP6155833B2
JP6155833B2 JP2013103820A JP2013103820A JP6155833B2 JP 6155833 B2 JP6155833 B2 JP 6155833B2 JP 2013103820 A JP2013103820 A JP 2013103820A JP 2013103820 A JP2013103820 A JP 2013103820A JP 6155833 B2 JP6155833 B2 JP 6155833B2
Authority
JP
Japan
Prior art keywords
information
node
nodes
probability
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013103820A
Other languages
English (en)
Other versions
JP2014225117A (ja
Inventor
弘治 丸橋
弘治 丸橋
湯上 伸弘
伸弘 湯上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013103820A priority Critical patent/JP6155833B2/ja
Priority to US14/263,100 priority patent/US9767414B2/en
Publication of JP2014225117A publication Critical patent/JP2014225117A/ja
Application granted granted Critical
Publication of JP6155833B2 publication Critical patent/JP6155833B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Description

本発明は伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラムに関する。
現在、様々な種類のクライアント装置(例えば、コンピュータや携帯端末装置など)がユーザにより使用されている。ユーザは種々のクライアント装置を用いてネットワーク上のサーバ装置にアクセスし、サーバ装置により提供されるサービスを利用できる。例えば、SNS(Social Networking Service)と呼ばれるサービスがある。SNSはネットワークを介して複数のユーザを結び付け、ユーザ相互の交流を支援するサービスである。
SNSでは、ユーザはクライアント装置を操作して既に結び付きのある他のユーザに情報を発信し得る。例えば、ユーザがWebページ上の記事を好評価する旨を、クライアント装置を用いてサーバ装置に送る。すると、サーバ装置は当該ユーザと結び付きのあるユーザに対して、当該ユーザがその記事を好評価している旨を通知する。通知されたユーザも当該記事を好評価すれば、同様にしてその旨を更に他のユーザに伝達できる。こうして、最初の情報発信元のユーザと直接結び付きのないユーザにも情報が伝達され得る。ユーザは他のユーザとの結び付きを増やすことで、情報の発信相手を増やすこともできる。
ここで、SNSにおけるユーザの結び付きを基に情報の伝達を分析することが考えられている。例えば、ユーザの結び付きは、ユーザをノードとし、ユーザ同士の結び付きをエッジ(ノード間を結ぶ線分で表される)としたグラフで表せる。当該グラフを示す隣接行列を用いた所定の演算により、RWR(Random Walk with Restart)と呼ばれる指標を計算することがある。RWRは、始点のノードからエッジに沿ってランダムな経路で情報を伝達させたとき、注目する終点のノードに当該情報が伝達される確率を示す指標である。例えば、時間の経過によりエッジが追加される場合に、ユーザにより指定されたノード間のRWRの概算に用いるデータを、追加された少数のエッジについて高速にアップデートすることで、指定されたノード間のRWRの変化を追跡する提案がある。
Jia-Yu Pan、外3名、"Automatic Multimedia Cross-modal Correlation Discovery"、Proceedings of SIGKDD2004、ACM SIGKDD、2004年 Hanghang Tong、外3名、"Proximity Tracking on Time-Evolving Bipartite Graphs"、Proceedings of SDM2008、SIAM、2008年、p.704-715
情報主体(例えば、ユーザ)の間には時間変化に伴い新たな結び付きが形成され得る。グラフではこれをノード間のエッジの追加として表せる。例えば、第1,第2の情報主体を示す第1,第2のノードの間のエッジの追加は、第1,第2の情報主体の間で情報を直接に伝達可能となったことを意味する。第2の情報主体が更に他の情報主体と既存の結び付きをもっていれば、第1の情報主体から発せられた情報が第2の情報主体を介して他の情報主体およびその周囲へと転々と流通する可能性が高まる。すなわち、少数のエッジの追加により、それまで局所的であった情報の伝達範囲が大きく拡大する可能性がある。
こうした情報の伝達状況の変動を分析することが考えられる。例えば、異なる商品分野を嗜好する2つのグループの間で交流が活発になったことを検出することで、それをマーケティングに利用できる。また、異なる技術分野の研究グループの間で議論が活発になったことを検出することで、技術トレンドの変化を分析できる。分析のために、例えば、全ノードから全ノードへの情報の伝達状況の変化を計算して、変動箇所を特定することが考えられる。ところが、情報主体の間の結び付きは大量に存在し、分析対象のグラフは膨大なノードおよびエッジを含み得る。このため、全ノードから全ノードへの情報の伝達状況の変化を計算しようとすると、演算コストが大きくなるおそれがある。
1つの側面では、本発明は、エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラムを提供することを目的とする。
1つの態様では、コンピュータが実行する伝達情報変動検知方法が提供される。この伝達情報変動検知方法では、情報の送信および受信を行うことが可能な情報主体を示す複数のノードと複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第1のタイミングにおける情報の伝達状況を表した第1のグラフと第2のタイミングにおける情報の伝達状況を表した第2のグラフに基づき、第1のタイミングから第2のタイミングの間に追加されたエッジを検出し、ノードから情報が送信される所定の確率とノードに接続されたエッジの数とに基づいてノードからノードに隣接する隣接ノードに情報が伝達する確率から算出される、各ノードから追加されたエッジに接続されているノードへ情報が伝達する第1の率に基づいて複数のノードのサブセットを選択し、情報の最初の送信元のノードから第1のグラフに従って各ノードへ情報が伝達する第の確率と情報の最初の送信元のノードから第2のグラフに従って各ノードへ情報が伝達する第の確率とを、情報の最初の送信元をサブセットに属するノードに限定して、情報の最初の送信元のノードと伝達先のノードとの組毎に算出し、第の確率と第の確率との組毎の比較結果に基づき、第1および第2のタイミングの間における情報の伝達状況の変動を検知する。
また、1つの態様では、伝達情報変動検知装置が提供される。この伝達情報変動検知装置は記憶部と演算部とを有する。記憶部は、情報の送信および受信を行うことが可能な情報主体を示す複数のノードと複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第1のタイミングにおける情報の伝達状況を表した第1のグラフと第2のタイミングにおける情報の伝達状況を表した第2のグラフとを記憶する。演算部は、第1および第2のグラフに基づいて第1のタイミングから第2のタイミングの間に追加されたエッジを検出し、ノードから情報が送信される所定の確率とノードに接続されたエッジの数とに基づいてノードからノードに隣接する隣接ノードに情報が伝達する確率から算出される、各ノードから追加されたエッジに接続されているノードへ情報が伝達する第1の率に基づいて複数のノードのサブセットを選択し、情報の最初の送信元のノードから第1のグラフに従って各ノードへ情報が伝達する第の確率と情報の最初の送信元のノードから第2のグラフに従って各ノードへ情報が伝達する第の確率とを、情報の最初の送信元をサブセットに属するノードに限定して、情報の最初の送信元のノードと伝達先のノードとの組毎に算出し、第の確率と第の確率との組毎の比較結果に基づき、第1および第2のタイミングの間における情報の伝達状況の変動を検知する。
また、1つの態様では、コンピュータによって実行される伝達情報変動検知プログラムが提供される。この伝達情報変動検知プログラムは、コンピュータに、情報の送信および受信を行うことが可能な情報主体を示す複数のノードと複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第1のタイミングにおける情報の伝達状況を表した第1のグラフと第2のタイミングにおける情報の伝達状況を表した第2のグラフに基づき、第1のタイミングから第2のタイミングの間に追加されたエッジを検出し、ノードから情報が送信される所定の確率とノードに接続されたエッジの数とに基づいてノードからノードに隣接する隣接ノードに情報が伝達する確率から算出される、各ノードから追加されたエッジに接続されているノードへ情報が伝達する第1の率に基づいて複数のノードのサブセットを選択し、情報の最初の送信元のノードから第1のグラフに従って各ノードへ情報が伝達する第の確率と情報の最初の送信元のノードから第2のグラフに従って各ノードへ情報が伝達する第の確率とを、情報の最初の送信元をサブセットに属するノードに限定して、情報の最初の送信元のノードと伝達先のノードとの組毎に算出し、第の確率と第の確率との組毎の比較結果に基づき、第1および第2のタイミングの間における情報の伝達状況の変動を検知する、処理を実行させる。
1つの側面では、エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる。
第1の実施の形態の伝達情報変動検知装置を示す図である。 第1の実施の形態のハードウェア例を示す図である。 第2の実施の形態の情報処理システムを示す図である。 第2の実施の形態のグラフの全体の例を示す図である。 第2の実施の形態の情報の伝達の例を示す図である。 第2の実施の形態のサーバのハードウェア例を示す図である。 第2の実施の形態のサーバの機能例を示す図である。 第2の実施の形態のグラフの一部の例を示す図である。 第2の実施の形態の隣接行列の例を示す図である。 第2の実施の形態の変動検知を示すフローチャートである。 第2の実施の形態の時刻t−1のRWRの例(その1)を示す図である。 第2の実施の形態の時刻t−1のRWRの例(その2)を示す図である。 第2の実施の形態の時刻tのRWRの例を示す図である。 第2の実施の形態の変動検知箇所の例を示す図である。 第2の実施の形態の変動検知の例を示す図である。 第3の実施の形態の追加クリークの例を示す図である。 第3の実施の形態の変動検知を示すフローチャートである。 第3の実施の形態の時刻t−1のRWRの例を示す図である。 第4の実施の形態の変動検知を示すフローチャートである。 第4の実施の形態の時刻t−1のRWRの例を示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の伝達情報変動検知装置を示す図である。伝達情報変動検知装置1は、情報の発信、転送および受信を行うことが可能な情報主体の間での情報の伝達状況の変動を検知する。当該情報主体は人でもよいし装置でもよい。装置であれば、コンピュータなどの情報処理装置や携帯電話機および携帯端末装置などの電子装置でもよい。
伝達情報変動検知装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。演算部1bは、プログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
記憶部1aは、情報主体を示す複数のノードと複数のノード間の情報の送信を示す複数のエッジとを含むグラフ2,3を記憶する。グラフ2(第1のグラフ)は、第1のタイミングにおける情報の伝達状況を表したグラフである。グラフ3(第2のグラフ)は、第2のタイミングにおける情報の伝達状況を表したグラフである。例えば、第2のタイミングは第1のタイミングよりも後のタイミングである。
例えば、グラフ3は、ノードNa,Nb,Nc,Nd,Ne,NfおよびエッジE1,E2,E3,E4を含む。エッジE1は、ノードNa,Nd間の情報の送信を示すエッジである。エッジE2は、ノードNb,Ne間の情報の送信を示すエッジである。エッジE3は、ノードNc,Ne間の情報の送信を示すエッジである。エッジE4は、ノードNc,Nf間の情報の送信を示すエッジである。
演算部1bは、グラフ2,3に基づいて第1のタイミングから第2のタイミングの間に追加されたエッジを検出する。例えば、グラフ2はエッジE1,E2,E3,E4を含まない。この場合、演算部1bは、グラフ2に含まれるエッジとグラフ3に含まれるエッジとを対比することで、追加されたエッジE1,E2,E3,E4を検出する。演算部1bは、2以上の追加されたエッジを検出し得る。
演算部1bは、各ノード(始点のノード)から追加されたエッジに接続されているノード(終点のノード)へ情報が伝達する確率を算出する。グラフ3の例でいえば、追加されたエッジE1,E2,E3,E4に接続されているノードは、ノードNa,Nb,Nc,Nd,Ne,Nfである。例えば、演算部1bは、グラフ2に従って各ノードからノードNa,Nb,Nc,Nd,Ne,Nfに対するRWRを算出する。当該RWRは、各始点のノードから終点のノードNa,Nb,Nc,Nd,Ne,Nfそれぞれへ情報が伝達する確率を示す指標である。
演算部1bは、算出された確率に基づいて複数のノードのサブセットGを選択する。例えば、演算部1bは、始点のノード毎の算出した確率の最大値に基づいてサブセットGを選択してもよい。例えば、当該最大値が所定の閾値よりも大きいノードをサブセットGの要素として選択してもよい。
演算部1bは、グラフ2に従って各ノードへ情報が伝達する第1の確率とグラフ3に従って各ノードへ情報が伝達する第2の確率とを、情報の始点をサブセットGに属するノードに限定して算出する。演算部1bは、第1の確率と第2の確率とを比較することで、第1および第2のタイミングの間における情報の伝達状況の変動を検知する。
例えば、演算部1bは、グラフ2に従って、サブセットGに属するノードを始点とし、各ノードを終点としたRWRを第1の確率として算出する。また、例えば、演算部1bは、グラフ3に従って、サブセットGに属するノードを始点とし、各ノードを終点としたRWRを第2の確率として算出する。例えば、演算部1bは、第1および第2の確率の差が比較的大きなエッジを情報の伝達状況の変動があった箇所として検知することが考えられる。グラフ4は、グラフ3のうち、変動が相対的に大きいと検知されたエッジを他のエッジよりも太い線分で表している。
伝達情報変動検知装置1によれば、演算部1bにより、グラフ2,3に基づいて第1のタイミングから第2のタイミングの間に追加されたエッジE1,E2,E3,E4が検出される。演算部1bにより、各ノードからエッジE1,E2,E3,E4に接続されているノードNa,Nb,Nc,Nd,Ne,Nfへ情報が伝達する確率が算出され、算出された確率に基づいて複数のノードのサブセットGが選択される。演算部1bにより、グラフ2に従って各ノードへ情報が伝達する第1の確率とグラフ3に従って各ノードへ情報が伝達する第2の確率とが、情報の始点をサブセットGに属するノードに限定して算出される。演算部1bにより、第1の確率と第2の確率とが比較されることで、第1および第2のタイミングの間における情報の伝達状況の変動が検知される。
これにより、エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる。ここで、例えば、異なるタイミングで取得されたグラフ全体に対する所定の行列演算によりRWRを算出し対比することで分析を行うことも考えられる。しかし、グラフは膨大な数のノードを含み得る。このため、グラフ全体を演算対象とすると、メモリの使用量が増大して容量が不足し得る。演算量も増大し得る。
ここで、第1のノードから第2のノードに対する情報の伝達を考えるとき、第1および第2のノードの間のホップ数が小さい(経由するノードが少ない)ほど、情報が伝達する確率は大きくなる。また、第1および第2のノード間の冗長経路が多いほど、情報が伝達する確率は大きくなる。一方、第1および第2のノードの間のホップ数が大きいほど、情報が伝達する確率は小さくなる。また、第1および第2のノード間の冗長経路が少ないほど、情報が伝達する確率は小さくなる。すなわち、追加されたエッジの両端のノードへのホップ数が小さく、当該両端のノードへの冗長経路の数が多いノードほど、エッジの追加により情報の伝達範囲が比較的大きく広がる可能性が高い。一方、追加されたエッジの両端のノードへのホップ数が大きく、当該両端のノードへの冗長経路の数が少ないノードほど、エッジが追加されても情報の伝達範囲があまり広がらない可能性が高い。
そして、グラフ全体を演算対象にすると、エッジが追加されても情報の伝達範囲があまり広がらないと推定されるノードに関する演算も網羅的に実行されるので、余計なメモリ使用や演算が生じ得る。例えば、2つの時刻において、全ノード間で情報が伝達する確率を計算すると、その結果を保持するメモリの容量が過大になり得る。具体的には、1つのノード当たりの計算結果を8バイト、グラフ内のノード数を1億とすると、結果を保持するために用いるメモリサイズは80ペタバイトという膨大なサイズとなってしまう。
そこで、伝達情報変動検知装置1は、各ノードから追加されたエッジに接続されているノードへ情報が伝達する確率を算出し、算出した確率に基づいてサブセットGを選択する。そして、情報の始点をサブセットGに属するノードに限定して、各ノードへ情報が伝達する第1および第2の確率を求める。
このように、エッジが追加されたとしても、転送範囲があまり広がらないと推定されるノードについては、情報の伝達確率を再計算しないようにする。このため、第1および第2のグラフの全体を演算対象とするよりも、メモリの使用量や演算量を軽減できる。また、余計なメモリ使用や演算の発生を抑制できる。これにより、エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる。
なお、演算部1bは、2以上の追加されたエッジの中から所定条件を満たす部分グラフに含まれるエッジを抽出し、情報の終点を抽出したエッジに接続されているノードに限定して、各ノードから情報が伝達する確率を算出してもよい。そして、算出した確率に基づいてサブセットGを選択してもよい。
例えば、所定条件として、“n個以上(nは3以上の整数)のノード数を含む部分グラフ”という条件が考えられる。n=3であれば、ノードNa,NdおよびエッジE1で形成される部分グラフは当該条件を満たさないから、当該確率の算出対象から除外される。一方、ノードNb,Nc,Ne,NfおよびエッジE2,E3,E4で形成される部分グラフは当該条件を満たすから、当該確率の算出対象となる。こうすれば、追加されたエッジを、所定の規模の部分グラフを形成するものに絞り込める。このため、一定以上の大きさのノード集合が関係する変動を検知したい場合に、演算を効率化し得る。
部分グラフは、クリークまたは疑似クリークでもよい。クリークは、部分グラフに属する各ノードから当該部分グラフに属する全ての他ノードへのエッジが存在する部分グラフである。疑似クリークは、部分グラフに属する各ノードから当該部分グラフに属する所定の閾値以上の割合の他ノードへのエッジが存在する部分グラフである。クリークおよび疑似クリークは複数のノードが密に結合されている部分グラフといえる。すなわち、クリークや疑似クリークは、それ以外の部分グラフに比べて、エッジ追加による情報の伝達状況の変動が大きい可能性が高い。このため、クリークや疑似クリークに対して情報を伝達する可能性の高いノードをサブセットGの要素の候補とすることで、比較的大きな変動を効率的に検知し得る。
更に、演算部1bは、始点のノード毎に、所定条件を満たす部分グラフに含まれるエッジに接続されている複数のノードへ情報が伝達される確率の合計値を算出し、当該合計値からサブセットGを選択してもよい。例えば、当該部分グラフに属するノードに情報を伝達する可能性の高い始点のノードを絞り込める。サブセットGの要素を絞り込むことで、後続の第1および第2の確率を求める演算でのメモリ使用や演算量を一層抑制し得る。
図2は、第1の実施の形態のハードウェア例を示す図である。伝達情報変動検知装置1は、プロセッサ1c、RAM1d、HDD1e、通信部1f、画像信号処理部1g、入力信号処理部1h、ディスクドライブ1iおよび機器接続部1jを有する。各ユニットが伝達情報変動検知装置1のバスに接続されている。
プロセッサ1cは、伝達情報変動検知装置1の情報処理を制御する。プロセッサ1cは、マルチプロセッサであってもよい。プロセッサ1cは、例えばCPU、DSP、ASIC、FPGA、MPU(Micro Processing Unit)またはPLD(Programmable Logic Device)などである。プロセッサ1cは、CPU、DSP、ASIC、FPGA、MPUおよびPLDのうちの2以上の要素の組み合わせであってもよい。
RAM1dは、伝達情報変動検知装置1の主記憶装置である。RAM1dは、プロセッサ1cに実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM1dは、プロセッサ1cによる処理に用いる各種データを記憶する。
HDD1eは、伝達情報変動検知装置1の補助記憶装置である。HDD1eは、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD1eには、OSのプログラム、アプリケーションプログラム、および各種データが格納される。伝達情報変動検知装置1は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
通信部1fは、ネットワーク5を介して他のコンピュータと通信を行えるインタフェースである。通信部1fは、有線インタフェースでもよいし、無線インタフェースでもよい。
画像信号処理部1gは、プロセッサ1cからの命令に従って、伝達情報変動検知装置1に接続されたディスプレイ5aに画像を出力する。ディスプレイ5aとしては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部1hは、伝達情報変動検知装置1に接続された入力デバイス5bから入力信号を取得し、プロセッサ1cに出力する。入力デバイス5bとしては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
ディスクドライブ1iは、レーザ光などを利用して、光ディスク5cに記録されたプログラムやデータを読み取る駆動装置である。光ディスク5cとして、例えば、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などを使用できる。ディスクドライブ1iは、例えば、プロセッサ1cからの命令に従って、光ディスク5cから読み取ったプログラムやデータをRAM1dまたはHDD1eに格納する。
機器接続部1jは、伝達情報変動検知装置1に周辺機器を接続するための通信インタフェースである。例えば、機器接続部1jにはメモリ装置5dやリーダライタ装置5eを接続できる。メモリ装置5dは、機器接続部1jとの通信機能を搭載した記録媒体である。リーダライタ装置5eは、メモリカード5fへのデータの書き込み、またはメモリカード5fからのデータの読み出しを行う装置である。メモリカード5fは、カード型の記録媒体である。機器接続部1jは、例えば、プロセッサ1cからの命令に従って、メモリ装置5dまたはメモリカード5fから読み取ったプログラムやデータをRAM1dまたはHDD1eに格納する。
このようなハードウェアにより、伝達情報変動検知装置1を実現できる。
[第2の実施の形態]
図3は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、サーバ100、PC(Personal Computer)200,300、携帯電話機400およびタブレット装置500を含む。サーバ100,PC200,300、携帯電話機400およびタブレット装置500は、ネットワーク10に接続されている。例えば、ネットワーク10はインターネットである。ネットワーク10と各装置との間は、有線で接続されてもよいし、無線で接続されてもよい。また、ネットワーク10と各装置との間に、他のネットワークが介在してもよい。ネットワーク10には、図示した以外にも多数のユーザによって使用される種々のクライアントが接続され得る。
ここで、PC200,300、携帯電話機400およびタブレット装置500などのユーザによって使用される装置を総称して、クライアントまたはクライアント装置ということがある。ユーザは、クライアントを操作して、サーバ100またはネットワーク10に接続された他のサーバが提供するSNSを利用できる。
サーバ100は、SNSを利用するユーザの結び付きを分析するサーバコンピュータである。サーバ100は、ユーザの結び付きを示すグラフに基づいて分析を行う。SNSではユーザ間の友人関係が管理される。例えば、ユーザの管理情報に、友人関係にある他のユーザを示す情報が登録されている。サーバ100は、当該管理情報を参照して、分析用のグラフを生成してもよい。あるいは、サーバ100は、当該管理情報を保持してSNSを提供する他のサーバから分析用のグラフを取得してもよい。
PC200は、ユーザ20によって利用されるクライアントコンピュータである。PC300は、ユーザ30によって利用されるクライアントコンピュータである。携帯電話機400は、ユーザ40によって利用される電子装置である。タブレット装置500は、ユーザ50によって利用される電子装置である。例えば、ユーザ20,30,40,50は、各クライアントによって実行される所定のソフトウェアやWebブラウザを用いて、SNSを利用し得る。
例えば、ユーザ20,30,40,50の結び付き(友人関係)は、ユーザ20,30,40,50をノードとし、結び付きをエッジとしたグラフで表せる。SNSを利用するユーザの数が増大するほど、ノードの数も増大し、ユーザ間の結び付きを示すエッジの数も増大する。
図4は、第2の実施の形態のグラフの全体の例を示す図である。全体集合Vは、上記SNSを利用するノードの全体である。1のノードが1のユーザを示す。あるユーザが他のユーザと友人関係である場合、両ユーザを示す2つのノードがエッジで結ばれる。このように、SNSにおけるユーザ間の結び付きを無向グラフで表せる。グラフにおいて、ノードは、丸記号で図示される(例えば、ノードN)。また、エッジは線分で図示される(例えば、エッジE)。エッジを“リンク”ということもある。
全体集合Vは、部分集合V1,V2,V3を含む。部分集合V1,V2,V3は、比較的密なノードの集合である。例えば、異なる部分集合に含まれるユーザ同士の間で新たな結び付きが生まれることで、部分集合間に新たなエッジが形成され得る。すると、当該エッジを介した部分集合間での情報の伝達が行えるようになる。各部分集合には、情報の伝達において影響力のあるユーザあるいはユーザのグループ(例えば、多くの友人をもち、多数の他のユーザから情報を収集し、収集した情報を多数の他のユーザに知らせるようなキーパーソン)が含まれ得る。例えば、影響力のあるユーザあるいはグループ同士が友人関係になることで、部分集合間の情報の伝達状況に大きな変動を及ぼし得る。
なお、このような関係はSNS以外でも見られる。例えば、部分集合V1,V2,V3を、趣味、仕事、研究などの活動対象の分野、興味・関心の対象である分野、居住場所、生まれた年代など、何らかの特定の属性により区別された集合としてもよい。
例えば、論文の共著関係をグラフで表すこともできる。より具体的には、部分集合V1を生物学分野の研究者の集合、部分集合V2を情報科学分野の研究者の集合、部分集合V3を化学分野の研究者の集合などのように区別し得る。例えば、システムバイオロジー(Systems Biology)の興隆により、生物学(部分集合V1)の有力研究者と情報科学(部分集合V2)の有力研究者とが論文を共著することがある。その場合も、多くの生物学者や情報科学者が相互の分野の情報の伝達状況(両分野間で関連論文を伝達し合うなど)に大きな変動を及ぼし得る。このため、以下では、SNSを例示して説明するが、SNSに限らず種々のサービス(例えば、学術論文を蓄積して提供するサービスなど)に第2の実施の形態の処理を利用できる。
図5は、第2の実施の形態の情報の伝達の例を示す図である。図5では、全体集合Vのうちの一部のノードn1,n2,n3,n4,n5,n6,n7,n8を例示している。ノードn1,n2はエッジで接続されている。この場合、当該エッジの両端にノードn1,n2が接続されているともいえる。同様に、ノードn1,n4はエッジで接続されている。ノードn2,n3はエッジで接続されている。ノードn3,n4はエッジで接続されている。ノードn3,n6はエッジで接続されている。ノードn3,n7はエッジで接続されている。ノードn4,n5はエッジで接続されている。ノードn3,n6はエッジで接続されている。ノードn5,n6はエッジで接続されている。ノードn6,n8はエッジで接続されている。ノードn7,n8はエッジで接続されている。同一エッジの両端に接続されたノードを隣接関係にあるということができる。例えば、ノードn1は、ノードn2,n4の隣接ノードである。
第1のユーザから第2のユーザに至るまでのホップ数(すなわち、伝達に要する友人の数)が小さいほど、第1のユーザから第2のユーザに情報が伝達される確率は高い。また、第1のユーザから第2のユーザに至るまでの冗長な経路が多いほど、第1のユーザから第2のユーザに情報が伝達される確率は高い。このように、情報が伝達される確率の大きさに比例したノード間の近さを表す指標として、RWRまたはRWR距離と呼ばれる指標を用いることができる。具体的には、第1のノードで発生した情報がエッジに沿ってランダムに伝達した末に第2のノードに伝わる確率を、第1のノードから第2のノードへのRWR距離とする。第1および第2のノードのホップ数が小さいほどRWR距離は大きくなり、両ノード間で情報が伝わり易いと評価できる。
情報の伝達を次のようにモデル化する。情報はノード間の遷移確率に従って伝達する。具体的には次の(1)〜(3)の通りである。(1)確率c(0<c<1の実数)で、取得された情報が少なくとも1つの隣接ノードに伝達する。(2)確率1−cで、取得された情報が何れの隣接ノードにも伝達しない。モデル上では、元のノード(情報を発信した始点のノード)から伝達をやり直すものとして扱う。(3)1のノードに隣接ノードが複数ある場合、各隣接ノードへは等しい確率で情報が転送される。ここで、確率cは、分析対象とするサービスに応じて変更され得る。第2の実施の形態では、一例としてc=0.8とする。
例えば、ノードn1を始点に発信された情報がノードn3に到達したと仮定して、当該情報がノードn3から隣接ノードに伝達する確率は、次のようになる。ノードn3からノードn2,n4,n6,n7に伝達する確率は、それぞれc/4である。ノードn3からノードn2,n4,n6,n7の何れにも伝達しない確率(ノードn1から伝達し直しになる確率)は、1−cである。
ここで、全体集合Vの全ノード数をN(Nは1より大きな整数)とする。ノードj(jは始点ノードの識別子)から全ノードへのRWR距離を、N行の列ベクトルrjに保持する。rjは式(1)で表せる。
Figure 0006155833
行列WはN行N列の遷移確率行列である。ベクトルejは、ノードjに対応する成分が1であり、他の成分が0の列ベクトルである。行列Wは、グラフを示す隣接行列Mと次数(各ノードに繋がるエッジ数)を対角成分にもつN行N列の対角行列Dを用いて、式(2)で表せる。隣接行列Mは、ノードi,j(iはノードの識別子)間にエッジがある場合、i行j列およびj行i列の要素が“1”である行列である。隣接行列Mのそれ以外の要素は“0”である。
Figure 0006155833
式(1)をrjについて解くと式(3)を得る。
Figure 0006155833
行列IはN行N列の単位行列である。式(3)を用いて、ノードjを始点に、他のノードを終点にしたRWR距離rjを算出できる。
全体集合Vに対して、比較的大きなRWR距離の変動を検知する方法は次のように表せる。x∈Vからy∈Vへの時刻tにおけるRWR距離をd(x,y,t)とする。ノード集合X⊂VとY⊂Vは、全ての(x,y)∈{X×Y}のうち、d(x,y,t)−d(x,y,t−1)>α(αは正の実数)を満たす組合せが割合β(βは正の実数)以上あるノード集合の対(変動ノード集合対)とする。そして、複数の変動ノード集合対のうち、ノード対の数(Xのノード数×Yのノード数)がγ(γは正の整数)以上である変動ノード集合対を検知し通知する。しかし、d(x,y,t)を全ての(x,y)∈Vについて求めるのは非効率的である。RWR距離の変動に対して比較的大きく寄与するのは、追加されたエッジの周囲のノードである可能性が高いからである。そこで、サーバ100はRWR距離を算出する前に、演算対象とするノード対を絞り込む。
図6は、第2の実施の形態のサーバのハードウェア例を示す図である。サーバ100は、プロセッサ101、RAM102、HDD103、通信部104、画像信号処理部105、入力信号処理部106、ディスクドライブ107および機器接続部108を有する。各ユニットがサーバ100のバスに接続されている。
プロセッサ101は、サーバ100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASIC、FPGA、MPUまたはPLDなどである。プロセッサ101は、CPU、DSP、ASIC、FPGA、MPUおよびPLDのうちの2以上の要素の組合せであってもよい。
RAM102は、サーバ100の主記憶装置である。RAM102は、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、サーバ100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。サーバ100は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
通信部104は、ネットワーク10を介して他のコンピュータと通信を行えるインタフェースである。通信部104は、有線インタフェースでもよいし、無線インタフェースでもよい。
画像信号処理部105は、プロセッサ101からの命令に従って、サーバ100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRTディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部106は、サーバ100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
ディスクドライブ107は、レーザ光などを利用して、光ディスク13に記録されたプログラムやデータを読み取る駆動装置である。光ディスク13として、例えば、DVD、DVD−RAM、CD−ROM、CD−R/RWなどを使用できる。ディスクドライブ107は、例えば、プロセッサ101からの命令に従って、光ディスク13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
機器接続部108は、サーバ100に周辺機器を接続するための通信インタフェースである。例えば、機器接続部108にはメモリ装置14やリーダライタ装置15を接続できる。メモリ装置14は、機器接続部108との通信機能を搭載した記録媒体である。リーダライタ装置15は、メモリカード16へのデータの書き込み、またはメモリカード16からのデータの読み出しを行う装置である。メモリカード16は、カード型の記録媒体である。機器接続部108は、例えば、プロセッサ101からの命令に従って、メモリ装置14またはメモリカード16から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
図7は、第2の実施の形態のサーバの機能例を示す図である。サーバ100は、記憶部110、入力部120、近傍ノード算出部130、変動検出部140および出力部150を有する。記憶部110は、RAM102またはHDD103に確保した記憶領域として実現できる。入力部120、近傍ノード算出部130、変動検出部140および出力部150は、プロセッサ101が実行するソフトウェアのモジュールとして実現できる。
記憶部110は、近傍ノード算出部130および変動検出部140による演算に用いられる各種の情報を記憶する。記憶部110は、複数の時刻それぞれにおける全体集合V内のノードおよびエッジを示す隣接行列を予め記憶していてもよい。
入力部120は、複数の時刻それぞれにおける全体集合V内のノードおよびエッジを示す隣接行列を取得して、近傍ノード算出部130に出力する。入力部120は、他のサーバなどから当該隣接行列を取得して、記憶部110に格納しておいてもよい。
近傍ノード算出部130は、入力部120または記憶部110から取得した時刻t−1のグラフを示す隣接行列および時刻tのグラフを示す隣接行列を用いて、時刻t−1から時刻tの間に追加されたエッジ(追加エッジということがある)を検出する。近傍ノード算出部130は、各ノードから追加エッジに接続されているノードへのRWR距離を算出する。近傍ノード算出部130は、算出したRWR距離に基づいて複数のノードのサブセットを選択する。当該サブセットを近傍ノード群ということがある。また、近傍ノード群に含まれるノードを近傍ノードということがある。
変動検出部140は、時刻t−1のグラフを用いて、近傍ノードから各ノードへの第1のRWR距離を算出する。同様に変動検出部140は、時刻tのグラフを用いて、近傍ノードから各ノードへの第2のRWR距離を算出する。変動検出部140は、第1および第2のRWR距離を比較することで、時刻t−1および時刻tの間における情報の伝達状況の変動を検知する。変動検出部140は、検知結果を出力部150に出力する。
出力部150は、変動検出部140による検知結果をユーザに提示する。例えば、出力部150は、検知結果を示す画像をディスプレイ11に表示させる。
図8は、第2の実施の形態のグラフの一部の例を示す図である。全体集合Vは、ノードN1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12を含む。時刻t−1では、次のノード同士がエッジを介して接続されている。ノードN1,N3。ノードN2,N5。ノードN2,N11。ノードN3,N4。ノードN3,N5。ノードN6,N8。ノードN7,N8。ノードN7,N9。ノードN8,N10。ノードN9,N12。
時刻tでは時刻t−1で示したノード対に加えて次のノード同士がエッジを介して接続されている。ノードN4,N5。ノードN4,N6。ノードN4,N7。ノードN5,N6。ノードN5,N7。ノードN6,N7。ノードN11,N12。
以下では、ノードN1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12を対象にした演算を例示する。ただし、全体集合Vに含まれる全ノードを対象にして、以下に説明する方法を適用し得る。
図9は、第2の実施の形態の隣接行列の例を示す図である。隣接行列Mt-1は、図8で例示した時刻t−1のグラフを示す隣接行列である。隣接行列Mtは、図8で例示した時刻tのグラフを示す隣接行列である。なお、隣接行列の行および列に付した値は、ノードを示している。例えば、値“1”はノードN1を示す。値“2”はノードN2を示す。以下、図面において同様の表記を用いることがある。
例えば、近傍ノード算出部130は、隣接行列Mt-1,Mtを対比することで、追加エッジを検出し得る。隣接行列Mt-1で“0”であったノード対に対して、隣接行列Mtで“1”となったものがあれば、それらのノードの間にエッジが追加されたことになる。隣接行列Mt-1,Mtの例でいえば、ノードN4,N5を結ぶエッジ、ノードN4,N6を結ぶエッジ、ノードN4,N7を結ぶエッジ、ノードN5,N6を結ぶエッジ、ノードN5,N7を結ぶエッジ、ノードN6,N7を結ぶエッジ、ノードN11,N12を結ぶエッジが追加エッジである。
ここで、隣接行列Mt-1に対する行列Dt-1 -1は、式(4)で表せる。
Figure 0006155833
また、隣接行列Mtに対する行列Dt -1は、式(5)で表せる。
Figure 0006155833
図10は、第2の実施の形態の変動検知を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
(S11)入力部120は、隣接行列Mt-1,Mtの入力を受け付ける。入力部120は、近傍ノード算出部130に隣接行列Mt-1,Mtを出力する。
(S12)近傍ノード算出部130は、隣接行列Mt-1,Mtを対比することで、追加エッジを検出する。
(S13)近傍ノード算出部130は、全ノードを始点とし、追加エッジの両端の各ノード(端ノードということがある)を終点とし、式(2),(3)を用いて、各始点から各終点へのRWR距離を算出する。隣接行列Mt-1,Mtの例でいえば、端ノードはノードN4,N5,N6,N7,N11,N12である。近傍ノード算出部130は、端ノード以外のノードを終点とするRWR距離を求めなくてよい。すなわち、式(3)の右辺における行列と列ベクトルejとの乗算において、演算する行列の行を端ノードに対応する行に限定できる。
(S14)近傍ノード算出部130は、何れかの端ノードへのRWR距離が所定値よりも大きなノード(近傍ノード)を選択する。近傍ノード算出部130は、選択した近傍ノードを変動検出部140に出力する。
(S15)変動検出部140は、式(2),(3)を用いて、近傍ノードから全ノードへの時刻t−1におけるRWR距離を算出する。同様に、変動検出部140は、近傍ノードから全ノードへの時刻tにおけるRWR距離を算出する。このとき、変動検出部140は、近傍ノード以外のノードを始点としたRWR距離を算出しなくてよい。始点のノードを限定して全ノードへのRWR距離を算出する方法として、次のような技術を利用できる。例えば、文献“Fast Random Walk with Restart and Its Applications”(Hanghang Tong、Christos Faloutsos、Jia-Yu Pan、Proceedings of ICDM2006、IEEE、2006年、p.613-622)に記載された方法を用いて計算し得る。この方法によれば、ノードをグループに分割し、グループ毎の小さい遷移確率行列の逆行列計算と、グループをまたいだ遷移確率行列の上位特異ベクトルによる要約により、少ないメモリ容量でRWR距離を概算できる。また、例えば、文献“Fast and Exact Top-k Search for Random Walk with Restart”(Yasuhiro Fujiwara, Makoto Nakatsuji, Makoto Onizuka, Masaru Kitsuregawa、PVLDB、volume 5、No.5、PVLDB Endowment Inc.、2012年1月、p.442-453)に記載された方法を用いて計算してもよい。この方法によれば、全ノード間のRWR距離を保持するRWR距離行列を2つの疎行列の積として保持する。これにより、2ノード間のRWR距離を、各疎行列の行・列ベクトルの積で計算する。
(S16)変動検出部140は、近傍ノードからのRWR距離の変化がαよりも大きいノード対がβ以上の割合で含まれる変動ノード集合対を検出する。変動ノード集合対の抽出には、次のような技術を利用できる。例えば、文献“疑似クリークを列挙する多項式時間遅延アルゴリズム”(宇野毅明、情報処理学会研究報告.AL アルゴリズム研究会報告、一般社団法人情報処理学会、2007年3月、p.97-104)に記載された方法を利用し得る。変動ノード集合対を、RWR距離の差分がαより大きいノード対が当該変動ノード集合対に含まれる全ノード対に対して割合βで含まれる疑似クリークとみなして当該文献の方法を適用することで、変動ノード集合対を効率的に検出し得る。
(S17)変動検出部140は、検出された変動ノード集合対のうち、γ個以上のノード対を含む変動ノード集合対を検出すると、当該変動ノード集合対を示す情報を出力部150に出力する。出力部150は、当該変動ノード集合対の情報をユーザに通知する。例えば、出力部150は全体集合Vのうち変動箇所を示す画像(図形や文字など)をディスプレイ11に表示させてもよい。
図11は、第2の実施の形態の時刻t−1のRWRの例(その1)を示す図である。図11では、図10のステップS13で得られる時刻t−1のRWR距離を示す行列111を例示している。列番号は始点ノードを表す。行番号は終点ノードを表す。すなわち、行列111の要素(i,j)は、ノードjからノードiへのRWR距離を表す(以下、RWR距離を示す行列については同様である)。
近傍ノード算出部130は、端ノード以外のノードN1,N2,N3,N8,N9,N10を終点とするRWR距離を算出しなくてよい。このため、行数を削減して演算し得る。ここで、当該ステップS14における所定値を0.16としている。この場合、近傍ノード算出部130は、ノードN2,N3,N4,N5,N6,N7,N8,N9,N11,N12を近傍ノードとして選択する。
図12は、第2の実施の形態の時刻t−1のRWRの例(その2)を示す図である。図12では、図10のステップS15で得られる時刻t−1のRWR距離を示す行列112を例示している。変動検出部140は、近傍ノード以外のノードN1,N10を始点とするRWR距離を算出しなくてよい。このため、列数を削減して演算し得る。
図13は、第2の実施の形態の時刻tのRWRの例を示す図である。図13では、図10のステップS15で得られる時刻tのRWR距離を示す行列113を例示している。図12と同様に、変動検出部140は、近傍ノード以外のノードN1,N10を始点とするRWR距離を算出しなくてよい。このため、列数を削減して演算し得る。
図14は、第2の実施の形態の変動検知箇所の例を示す図である。まず、変動検出部140は、行列113(行列R(t)とする)と行列112(行列R(t−1)とする)との差を計算する。すなわち、R(t)−R(t−1)を計算する。次に、値がα以上の要素を抽出する。そして、抽出した要素が密に集まっている矩形領域(当該矩形領域に含まれる全要素数に対して、抽出した要素数の割合がβ以上のもの)を選択する。行列114は、R(t)−R(t−1)を計算したものについて、当該矩形領域を選択した場合を例示している。ここで、α=0.09、β=0.5、γ=22である。
すなわち、変動検出部140は、ノードN3,N4,N5,N6,N7,N8から、ノードN4,N5,N6,N7へ情報が伝達される確率(RWR距離)が他のノード間よりも大きく変動していることを検知する。出力部150は、当該箇所における情報の伝達状況の変動が、他の箇所よりも大きく変動していることをユーザに通知する。
図15は、第2の実施の形態の変動検知の例を示す図である。サーバ100は、全体集合Vに含まれるノードのうち、エッジ追加により伝達状況が変動した箇所を効率的に検知できる。例えば、全体集合Vにおいて、部分集合V1,V2,V3に含まれる要素間で新たなエッジが形成される。上記の方法によれば、始点のノードを近傍ノードに限定してRWR距離を求めて分析することで、情報の伝達状況が比較的大きく変動したノードの部分集合V4を求める。すなわち、RWR距離を求める際に変動への寄与の比較的小さい(エッジが追加されても情報の伝達範囲の広がりが比較的小さい)と考えられるノードを除外して演算を行う。よって、始点のノードを限定せずにRWR距離を算出する場合に比べて、余計なメモリ使用や演算コストの発生を抑制できる。
[第3の実施の形態]
以下、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第2の実施の形態では、追加されたエッジに接続された全ての端ノードを終点として求めたRWR距離に基づいて、近傍ノードを選択するものとした。一方、当該計算において、終点とする端ノードを更に絞り込んでもよい。規模の比較的大きなノード集合を事前に絞り込んでから近傍ノードを選択すれば、演算対象を更に削減して演算の効率化を図れる。第3の実施の形態では、その機能を提供する。
ここで、第3の実施の形態の情報処理システムは、図3で例示した第2の実施の形態の情報処理システムと同様である。また、第3の実施の形態のサーバのハードウェア例および機能例は、図6,7で例示した第2の実施の形態のサーバ100のハードウェア例および機能例と同様である。第3の実施の形態のサーバなどの各要素を、第2の実施の形態と同じ符号を用いて指し示す。
図16は、第3の実施の形態の追加クリークの例を示す図である。クリークとは全てのノード間にエッジがあるノード集合である。ここで、第3の実施の形態で扱うクリークは、特定の条件を満たすものである。具体的には、クリークを形成するエッジが全て追加エッジであるとする。このような特定の条件を満たすクリークを、以下では追加クリークと呼ぶこととする。例えば、N3,N4,N5の集合は、クリークではあるが、追加クリークではない。ただし、クリークのうち、追加エッジの割合が閾値以上であるものを追加クリークとしてもよい。例えば、後述するように追加クリークは疑似クリークでもよい。
図16では、全体集合Vの一部に含まれる追加クリーク61,62を例示している。追加クリーク61は、ノードN4,N5,N6,N7により形成されている。追加クリーク62は、ノードN11,N12により形成されている。
図17は、第3の実施の形態の変動検知を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
(S21)入力部120は、隣接行列Mt-1,Mtの入力を受け付ける。入力部120は、近傍ノード算出部130に隣接行列Mt-1,Mtを出力する。
(S22)近傍ノード算出部130は、隣接行列Mt-1,Mtを対比することで、追加エッジを検出する。
(S23)近傍ノード算出部130は、追加エッジによって形成されるグラフの中から、追加クリークを選択する。追加クリークの選択には、次のような技術を利用できる。例えば、文献“大規模グラフに対する高速クリーク列挙アルゴリズム”(宇野毅明、電子情報通信学会技術研究報告、Vol.103、No.31、電子情報通信学会、コンピュテーション研究会、京都大学、2003年)に記載された方法を利用できる。この方法では、あるグラフに対してクリークを列挙する際に、検出済のクリークと隣接しないノードに関して、当該クリーク内のノードとクリークを形成するか否かのチェックを省略することで、高速にクリークを検出する。この方法を追加エッジによって形成されるグラフに適用することでクリークを効率的に検出し得る。
(S24)近傍ノード算出部130は、所定数以上のノードを含む追加クリークを選択する。例えば、所定数を3とする。この場合、近傍ノード算出部130は追加クリーク61を選択する。追加クリーク61に含まれるノード数は4であり、所定値3以上だからである。近傍ノード算出部130は追加クリーク62を選択しない。追加クリーク62に含まれるノード数は2であり、所定値3に満たないからである。
(S25)近傍ノード算出部130は、全ノードを始点とし、ステップS24で選択された追加クリークを形成する端ノードへのRWR距離を算出する。例えば、近傍ノード算出部130は、全ノードから、追加クリーク61を形成するノードN4,N5,N6,N7へのRWR距離を算出する。具体的な計算は、ステップS13と同様である。
(S26)近傍ノード算出部130は、ステップS25の計算結果のうち、RWR距離が所定値よりも大きなノードを、近傍ノードとして選択する。近傍ノード算出部130は、選択した近傍ノードを変動検出部140に出力する。
(S27)変動検出部140は、式(2),(3)を用いて、近傍ノードから全ノードへの時刻t−1におけるRWR距離を算出する。同様に、変動検出部140は、近傍ノードから全ノードへの時刻tにおけるRWR距離を算出する。このとき、変動検出部140は、近傍ノード以外のノードを始点としたRWR距離を算出しなくてよい。例えば、始点を近傍ノードに限定したRWR距離の算出には、ステップS15と同様の技術を利用できる。
(S28)変動検出部140は、近傍ノードからのRWR距離の変化がαよりも大きいノード対がβ以上の割合で含まれる変動ノード集合対を検出する。例えば、変動ノード集合対の検出には、ステップS16と同様の技術を利用できる。
(S29)変動検出部140は、検出された変動ノード集合対のうち、γ個以上のノード対を含む変動ノード集合対を検出すると、当該変動ノード集合対を示す情報を出力部150に出力する。出力部150は、当該変動ノード集合対の情報をユーザに通知する。例えば、出力部150は全体集合Vのうち変動箇所を示す画像(図形や文字など)をディスプレイ11に表示させてもよい。
図18は、第3の実施の形態の時刻t−1のRWRの例を示す図である。図18では、図17のステップS24で追加クリーク61が選択された場合に、ステップS25で得られる時刻t−1のRWR距離を示す行列111aを例示している。この場合、端ノードはノードN4,N5,N6,N7にまで絞り込まれる。近傍ノード算出部130は、第2の実施の形態で例示した行列111の代わりに、行列111aを得る。行列111aでは、行列111に比べてノードN11,N12についての計算が省略されている。近傍ノード算出部130は、行列111aに基づいて近傍ノードを選択する。ステップS26の所定値を0.16とすれば、近傍ノードは、ノードN2,N3,N4,N5,N6,N7,N8,N9,N11,N12である。
このように、一定以上の規模の追加クリークを事前に選択することで、近傍ノードを選択する際のRWR距離の演算を一層効率的に行えるようになる。また、近傍ノードも絞り込まれ得るので、後段のRWR距離の演算を効率化し得る。第3の実施の形態では追加クリークとして、エッジが全て追加エッジであるクリークを選択するものとしたが、疑似クリークを追加クリークとして選択してもよい。
例えば、追加クリークとして扱える疑似クリークとしては次のようなものが考えられる。第1には、既存エッジと追加エッジとが混在したクリークのうち、追加エッジの割合が閾値以上であるものを疑似クリークとしてもよい。第2には、エッジが全て追加エッジであり、クリークは形成していないが、全ノード対に対する追加エッジの割合が閾値以上のものを疑似クリークとしてもよい。第3には、エッジの中に既存エッジが含まれておりクリークも形成していないが、全ノード対に対する追加エッジの割合が閾値以上のものを疑似クリークとしてもよい。
追加クリークは、他のノード集合に比べて、複数のノードが密に結合されているノード集合といえる。すなわち、追加クリークは、それ以外のノード集合に比べて、情報の伝達状況の変動への寄与が大きい可能性が高い。このため、追加クリークに対して情報を伝達する可能性の高いノードを近傍ノードの候補とすることで、比較的大きな変動を効率的に検知し得る。
[第4の実施の形態]
以下、第4の実施の形態を説明する。前述の第2,第3の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第4の実施の形態では、第3の実施の形態の方法に加えて、近傍ノードを更に絞り込む方法を提供する。ここで、第4の実施の形態の情報処理システムは、図3で例示した第2の実施の形態の情報処理システムと同様である。また、第4の実施の形態のサーバのハードウェア例および機能例は、図6,7で例示した第2の実施の形態のサーバ100のハードウェア例および機能例と同様である。第4の実施の形態のサーバなどの各要素を第2の実施の形態と同じ符号を用いて指し示す。
図19は、第4の実施の形態の変動検知を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。ここで、第4の実施の形態では、図17で示したステップS26の代わりに、ステップS26aを実行する点が異なる。そこで、ステップS26aについて説明し、他のステップの説明を省略する。ステップS26aは、ステップS25の次に実行される。
(S26a)近傍ノード算出部130は、ステップS25の計算結果に基づいて、端ノードへのRWR距離の和が所定値よりも大きなノードを近傍ノードとして選択する。近傍ノード算出部130は、選択した近傍ノードを変動検出部140に出力する。そして、処理がステップS27に進められる。
なお、追加エッジにより形成された追加クリークが複数存在していることもある。その場合、1つのノードに対して、追加クリーク毎に端ノードへのRWR距離の和をとる。1つのノードに対してRWR距離の和が複数算出されることになる。そして、何れかの追加クリークに対するRWR距離の和が所定値以上となれば、当該ノードを近傍ノードとする。
あるいは、1つのノードについて全ての追加クリークに含まれる端ノードへのRWR距離の和をとり、当該和が所定値以上であるノードを近傍ノードとしてもよい。
図20は、第4の実施の形態の時刻t−1のRWRの例を示す図である。図20では、図19のステップS24で追加クリーク61が選択された場合に、ステップS25で得られる時刻t−1のRWR距離を示す行列111bを例示している。端ノードは、行列111aの場合と同様に、ノードN4,N5,N6,N7まで絞り込まれている。近傍ノード算出部130は、第2,第3の実施の形態で例示した行列111,111aの代わりに、行列111bを得る。
そして、近傍ノード算出部130は、始点のノードのうち、端ノードへのRWR距離の和が所定値以上のノードを近傍ノードとして選択する。ここでは、ステップS26aにおける所定値を0.29としている。この場合、近傍ノード算出部130は、ノードN3,N4,N5,N6,N7,N8を近傍ノードとして選択する。
このように、一定以上の規模の追加クリークを事前に選択することで、近傍ノードを選択するための演算を一層効率的に行えるようになる。また、近傍ノードを絞り込むことで、後段のRWR距離の演算を効率的に実行することができる。例えば、第2の実施の形態では近傍ノードの数が10個であるのに対し、第4の実施の形態では6個にまで絞り込んでいる。すなわち、時刻t,t−1におけるRWR距離を求める際に、情報の始点となる近傍ノードを一層絞り込める。このため、余計なメモリ使用や演算コストの発生を一層抑制できる。その結果、情報の伝達状況の変動を一層効率的に検知できる。
第2〜第4の実施の形態で説明したように、サーバ100は、エッジの追加により、情報の伝達範囲が比較的大きく広がったと推定されるノード(近傍ノード)に始点を限定して、RWR距離を計算する。このため、全てのノード間についてRWR距離を計算するよりも少ないメモリ容量および演算コストで、急激に距離が縮まった大規模な情報伝達の変動を効率的に検知できる。
なお、前述のように、第1の実施の形態の情報処理は、前述のように演算部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、光ディスク13、メモリ装置14およびメモリカード16など)に記録できる。
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1 伝達情報変動検知装置
1a 記憶部
1b 演算部
2,3,4 グラフ
E1,E2,E3,E4 エッジ
G サブセット
Na,Nb,Nc,Nd,Ne,Nf ノード

Claims (7)

  1. コンピュータが、
    情報の送信および受信を行うことが可能な情報主体を示す複数のノードと前記複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第1のタイミングにおける情報の伝達状況を表した第1のグラフと第2のタイミングにおける情報の伝達状況を表した第2のグラフに基づき、前記第1のタイミングから前記第2のタイミングの間に追加されたエッジを検出し、
    ノードから情報が送信される所定の確率と前記ノードに接続されたエッジの数とに基づいて前記ノードから前記ノードに隣接する隣接ノードに情報が伝達する確率から算出される、各ノードから前記追加されたエッジに接続されているノードへ情報が伝達する第1の率に基づいて前記複数のノードのサブセットを選択し、
    情報の最初の送信元のノードから前記第1のグラフに従って各ノードへ情報が伝達する第の確率と情報の最初の送信元のノードから前記第2のグラフに従って各ノードへ情報が伝達する第の確率とを、情報の最初の送信元を前記サブセットに属するノードに限定して、情報の最初の送信元のノードと伝達先のノードとの組毎に算出し、
    前記第の確率と前記第の確率との前記組毎の比較結果に基づき、前記第1および第2のタイミングの間における情報の伝達状況の変動を検知する、
    伝達情報変動検知方法。
  2. 前記検出では、2以上の追加されたエッジを検出し、
    前記選択では、情報の最初の送信元の各ノードから前記2以上の追加されたエッジの何れかに接続されている複数のノードそれぞれへ情報が伝達する前記第1の確率を、情報の最初の送信元のノードと伝達先のノードとの組毎に算出し、情報の最初の送信元のノード毎の算出した前記第1の確率の最大値に基づいて前記サブセットを選択する、
    請求項1記載の伝達情報変動検知方法。
  3. 前記検出では、2以上の追加されたエッジを検出し、
    前記選択では、前記2以上の追加されたエッジの中から所定条件を満たす部分グラフに含まれるエッジを抽出し、情報の終点を前記抽出したエッジに接続されているノードに限定して、各ノードから情報が伝達する前記第1の確率を算出する、
    請求項1記載の伝達情報変動検知方法。
  4. 前記選択では、情報の最初の送信元のノード毎に前記抽出したエッジに接続されている複数のノードそれぞれへ情報が伝達される前記第1の確率の合計値を算出し、前記合計値から前記サブセットを選択する、
    請求項3記載の伝達情報変動検知方法。
  5. 前記所定条件を満たす部分グラフは、任意の2つのノードの間に当該2つのノードを接続するエッジが存在するクリークである、
    請求項3または4記載の伝達情報変動検知方法。
  6. 情報の送信および受信を行うことが可能な情報主体を示す複数のノードと前記複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第1のタイミングにおける情報の伝達状況を表した第1のグラフと第2のタイミングにおける情報の伝達状況を表した第2のグラフとを記憶する記憶部と、
    前記第1および第2のグラフに基づいて前記第1のタイミングから前記第2のタイミングの間に追加されたエッジを検出し、
    ノードから情報が送信される所定の確率と前記ノードに接続されたエッジの数とに基づいて前記ノードから前記ノードに隣接する隣接ノードに情報が伝達する確率から算出される、各ノードから前記追加されたエッジに接続されているノードへ情報が伝達する第1の率に基づいて前記複数のノードのサブセットを選択し、
    情報の最初の送信元のノードから前記第1のグラフに従って各ノードへ情報が伝達する第の確率と情報の最初の送信元のノードから前記第2のグラフに従って各ノードへ情報が伝達する第の確率とを、情報の最初の送信元を前記サブセットに属するノードに限定して、情報の最初の送信元のノードと伝達先のノードとの組毎に算出し、前記第の確率と前記第の確率との前記組毎の比較結果に基づき、前記第1および第2のタイミングの間における情報の伝達状況の変動を検知する、演算部と、
    を有する伝達情報変動検知装置。
  7. コンピュータに、
    情報の送信および受信を行うことが可能な情報主体を示す複数のノードと前記複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第1のタイミングにおける情報の伝達状況を表した第1のグラフと第2のタイミングにおける情報の伝達状況を表した第2のグラフに基づき、前記第1のタイミングから前記第2のタイミングの間に追加されたエッジを検出し、
    ノードから情報が送信される所定の確率と前記ノードに接続されたエッジの数とに基づいて前記ノードから前記ノードに隣接する隣接ノードに情報が伝達する確率から算出される、各ノードから前記追加されたエッジに接続されているノードへ情報が伝達する第1の率に基づいて前記複数のノードのサブセットを選択し、
    情報の最初の送信元のノードから前記第1のグラフに従って各ノードへ情報が伝達する第の確率と情報の最初の送信元のノードから前記第2のグラフに従って各ノードへ情報が伝達する第の確率とを、情報の最初の送信元を前記サブセットに属するノードに限定して、情報の最初の送信元のノードと伝達先のノードとの組毎に算出し、
    前記第の確率と前記第の確率との前記組毎の比較結果に基づき、前記第1および第2のタイミングの間における情報の伝達状況の変動を検知する、
    処理を実行させる伝達情報変動検知プログラム。
JP2013103820A 2013-05-16 2013-05-16 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム Active JP6155833B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013103820A JP6155833B2 (ja) 2013-05-16 2013-05-16 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム
US14/263,100 US9767414B2 (en) 2013-05-16 2014-04-28 Communication condition between entities detection displaying at least partial graphs indicating a location where a detected change occurred

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013103820A JP6155833B2 (ja) 2013-05-16 2013-05-16 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム

Publications (2)

Publication Number Publication Date
JP2014225117A JP2014225117A (ja) 2014-12-04
JP6155833B2 true JP6155833B2 (ja) 2017-07-05

Family

ID=51896597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013103820A Active JP6155833B2 (ja) 2013-05-16 2013-05-16 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム

Country Status (2)

Country Link
US (1) US9767414B2 (ja)
JP (1) JP6155833B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6389808B2 (ja) * 2015-07-10 2018-09-12 日本電信電話株式会社 計算式生成装置、計算式生成方法、及びプログラム
JP6582922B2 (ja) 2015-11-26 2019-10-02 富士通株式会社 グラフ処理プログラム、グラフ処理方法、および情報処理装置
JP6773972B2 (ja) * 2016-09-30 2020-10-21 富士通株式会社 データ変換プログラム、データ変換方法、およびデータ変換装置
JP6751235B2 (ja) * 2016-09-30 2020-09-02 富士通株式会社 機械学習プログラム、機械学習方法、および機械学習装置
US10990763B2 (en) 2019-03-01 2021-04-27 Oracle International Corporation Bias parameters for topic modeling
JP7154454B1 (ja) * 2021-04-26 2022-10-17 三菱電機株式会社 情報処理装置、制御方法、及び制御プログラム
US11729080B2 (en) * 2021-05-12 2023-08-15 Vmware, Inc. Agentless method to automatically detect low latency groups in containerized infrastructures

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244689A (ja) 1994-03-03 1995-09-19 Toshiba Corp 経路決定装置及び方法
JP2006091971A (ja) 2004-09-21 2006-04-06 Hewlett-Packard Development Co Lp ネットワークデータ表示方法・装置・プログラム
WO2009107416A1 (ja) * 2008-02-27 2009-09-03 日本電気株式会社 グラフ構造変化検出装置、グラフ構造変化検出方法およびプログラム
JP4720853B2 (ja) * 2008-05-19 2011-07-13 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP5506711B2 (ja) 2011-01-31 2014-05-28 日本電信電話株式会社 類似ノード検索装置及び方法及びプログラム
JP2013041530A (ja) * 2011-08-19 2013-02-28 Fuji Xerox Co Ltd 経路算出のためのプログラム及び経路算出装置

Also Published As

Publication number Publication date
US20140344207A1 (en) 2014-11-20
US9767414B2 (en) 2017-09-19
JP2014225117A (ja) 2014-12-04

Similar Documents

Publication Publication Date Title
JP6155833B2 (ja) 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム
Alshahrani et al. Efficient algorithms based on centrality measures for identification of top-k influential users in social networks
Chen et al. Discovering missing links in networks using vertex similarity measures
Ahmed et al. Network sampling: From static to streaming graphs
US9218630B2 (en) Identifying influential users of a social networking service
Yun et al. Mining maximal frequent patterns by considering weight conditions over data streams
Alvari et al. Community detection in dynamic social networks: A game-theoretic approach
JP2019204499A (ja) データ処理方法および電子機器
KR20110131094A (ko) 정보 네트워크 내의 커뮤니티를 식별하는 방법 및 시스템
US9910821B2 (en) Data processing method, distributed processing system, and program
Aliyu et al. Coverage enhancement algorithms for distributed mobile sensors deployment in wireless sensor networks
Tasgin et al. Community detection using boundary nodes in complex networks
Mo et al. Choosing a heuristic and root node for edge ordering in BDD-based network reliability analysis
JP2019513245A (ja) ソーシャルネットワークに基づいてグループを探索する方法、デバイス、サーバ及び記憶媒体
Beham et al. Instance-based algorithm selection on quadratic assignment problem landscapes
Liu et al. Curvdrop: A ricci curvature based approach to prevent graph neural networks from over-smoothing and over-squashing
Mahabadi et al. SLPA-based parallel overlapping community detection approach in large complex social networks
Shakibian et al. Multi-kernel one class link prediction in heterogeneous complex networks
JP6077984B2 (ja) アイテム推薦装置、アイテム推薦方法、およびアイテム推薦プログラム
US10331787B2 (en) Distributed storytelling framework for intelligence analysis
Djeddi et al. An extension of adaptive multi-start tabu search for the maximum quasi-clique problem
CN110889029B (zh) 城市目标推荐方法和装置
JP2014115911A (ja) 情報推薦装置、情報推薦方法、及び情報推薦プログラム
US9824028B2 (en) Cache method and cache apparatus
JPWO2011016281A1 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170329

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170522

R150 Certificate of patent or registration of utility model

Ref document number: 6155833

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150