(57)【要約】【課題】エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる。【解決手段】演算部１ｂは、グラフ２，３に基づいて第１のタイミングから第２のタイミングの間に追加されたエッジＥ１，Ｅ２，Ｅ３，Ｅ４を検出する。演算部１ｂは、各ノードからエッジＥ１，Ｅ２，Ｅ３，Ｅ４に接続されているノードＮａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅ，Ｎｆへ情報が伝達する確率を算出し、算出した確率に基づいて複数のノードのサブセットＧを選択する。演算部１ｂは、グラフ２に従って各ノードへ情報が伝達する第１の確率とグラフ３に従って各ノードへ情報が伝達する第２の確率とを、情報の始点をサブセットＧに属するノードに限定して算出する。演算部１ｂは、第１の確率と第２の確率とを比較することで、第１および第２のタイミングの間における情報の伝達状況の変動を検知する。【選択図】図１
2014225117.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する伝達情報変動検知方法であって、
情報の発信、転送および受信を行うことが可能な情報主体を示す複数のノードと前記複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第１のタイミングにおける情報の伝達状況を表した第１のグラフと第２のタイミングにおける情報の伝達状況を表した第２のグラフとを取得し、前記第１のタイミングから前記第２のタイミングの間に追加されたエッジを検出し、
各ノードから前記追加されたエッジに接続されているノードへ情報が伝達する確率を算出し、算出した確率に基づいて前記複数のノードのサブセットを選択し、
前記第１のグラフに従って各ノードへ情報が伝達する第１の確率と前記第２のグラフに従って各ノードへ情報が伝達する第２の確率とを、情報の始点を前記サブセットに属するノードに限定して算出し、前記第１の確率と前記第２の確率とを比較することで、前記第１および第２のタイミングの間における情報の伝達状況の変動を検知する、
伝達情報変動検知方法。
【請求項２】
前記検出では、２以上の追加されたエッジを検出し、
前記選択では、各ノードから前記２以上の追加されたエッジの何れかに接続されている複数のノードへ情報が伝達する確率を算出し、始点のノード毎の算出した確率の最大値に基づいて前記サブセットを選択する、
請求項１記載の伝達情報変動検知方法。
【請求項３】
前記検出では、２以上の追加されたエッジを検出し、
前記選択では、前記２以上の追加されたエッジの中から所定条件を満たす部分グラフに含まれるエッジを抽出し、情報の終点を前記抽出したエッジに接続されているノードに限定して、各ノードから情報が伝達する確率を算出する、
請求項１記載の伝達情報変動検知方法。
【請求項４】
前記選択では、始点のノード毎に前記抽出したエッジに接続されている複数のノードへ情報が伝達される確率の合計値を算出し、前記合計値から前記サブセットを選択する、
請求項３記載の伝達情報変動検知方法。
【請求項５】
前記所定条件を満たす部分グラフは、任意の２つのノードの間に当該２つのノードを接続するエッジが存在するクリークである、
請求項３または４記載の伝達情報変動検知方法。
【請求項６】
情報の発信、転送および受信を行うことが可能な情報主体を示す複数のノードと前記複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第１のタイミングにおける情報の伝達状況を表した第１のグラフと第２のタイミングにおける情報の伝達状況を表した第２のグラフとを記憶する記憶部と、
前記第１および第２のグラフに基づいて前記第１のタイミングから前記第２のタイミングの間に追加されたエッジを検出し、
各ノードから前記追加されたエッジに接続されているノードへ情報が伝達する確率を算出し、算出した確率に基づいて前記複数のノードのサブセットを選択し、
前記第１のグラフに従って各ノードへ情報が伝達する第１の確率と前記第２のグラフに従って各ノードへ情報が伝達する第２の確率とを、情報の始点を前記サブセットに属するノードに限定して算出し、前記第１の確率と前記第２の確率とを比較することで、前記第１および第２のタイミングの間における情報の伝達状況の変動を検知する、演算部と、
を有する伝達情報変動検知装置。
【請求項７】
コンピュータに、
情報の発信、転送および受信を行うことが可能な情報主体を示す複数のノードと前記複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第１のタイミングにおける情報の伝達状況を表した第１のグラフと第２のタイミングにおける情報の伝達状況を表した第２のグラフとを取得し、前記第１のタイミングから前記第２のタイミングの間に追加されたエッジを検出し、
各ノードから前記追加されたエッジに接続されているノードへ情報が伝達する確率を算出し、算出した確率に基づいて前記複数のノードのサブセットを選択し、
前記第１のグラフに従って各ノードへ情報が伝達する第１の確率と前記第２のグラフに従って各ノードへ情報が伝達する第２の確率とを、情報の始点を前記サブセットに属するノードに限定して算出し、前記第１の確率と前記第２の確率とを比較することで、前記第１および第２のタイミングの間における情報の伝達状況の変動を検知する、
処理を実行させる伝達情報変動検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラムに関する。
【背景技術】
【０００２】
現在、様々な種類のクライアント装置（例えば、コンピュータや携帯端末装置など）がユーザにより使用されている。ユーザは種々のクライアント装置を用いてネットワーク上のサーバ装置にアクセスし、サーバ装置により提供されるサービスを利用できる。例えば、ＳＮＳ（Social Networking Service）と呼ばれるサービスがある。ＳＮＳはネットワークを介して複数のユーザを結び付け、ユーザ相互の交流を支援するサービスである。
【０００３】
ＳＮＳでは、ユーザはクライアント装置を操作して既に結び付きのある他のユーザに情報を発信し得る。例えば、ユーザがＷｅｂページ上の記事を好評価する旨を、クライアント装置を用いてサーバ装置に送る。すると、サーバ装置は当該ユーザと結び付きのあるユーザに対して、当該ユーザがその記事を好評価している旨を通知する。通知されたユーザも当該記事を好評価すれば、同様にしてその旨を更に他のユーザに伝達できる。こうして、最初の情報発信元のユーザと直接結び付きのないユーザにも情報が伝達され得る。ユーザは他のユーザとの結び付きを増やすことで、情報の発信相手を増やすこともできる。
【０００４】
ここで、ＳＮＳにおけるユーザの結び付きを基に情報の伝達を分析することが考えられている。例えば、ユーザの結び付きは、ユーザをノードとし、ユーザ同士の結び付きをエッジ（ノード間を結ぶ線分で表される）としたグラフで表せる。当該グラフを示す隣接行列を用いた所定の演算により、ＲＷＲ（Random Walk with Restart）と呼ばれる指標を計算することがある。ＲＷＲは、始点のノードからエッジに沿ってランダムな経路で情報を伝達させたとき、注目する終点のノードに当該情報が伝達される確率を示す指標である。例えば、時間の経過によりエッジが追加される場合に、ユーザにより指定されたノード間のＲＷＲの概算に用いるデータを、追加された少数のエッジについて高速にアップデートすることで、指定されたノード間のＲＷＲの変化を追跡する提案がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Jia-Yu Pan、外３名、“Automatic Multimedia Cross-modal Correlation Discovery”、Proceedings of SIGKDD2004、ACM SIGKDD、2004年
【非特許文献２】Hanghang Tong、外２名、“Proximity Tracking on Time-Evolving Bipartite Graphs”、Proceedings of SDM2008、SIAM、2008年、p.704-715
【発明の概要】
【発明が解決しようとする課題】
【０００６】
情報主体（例えば、ユーザ）の間には時間変化に伴い新たな結び付きが形成され得る。グラフではこれをノード間のエッジの追加として表せる。例えば、第１，第２の情報主体を示す第１，第２のノードの間のエッジの追加は、第１，第２の情報主体の間で情報を直接に伝達可能となったことを意味する。第２の情報主体が更に他の情報主体と既存の結び付きをもっていれば、第１の情報主体から発せられた情報が第２の情報主体を介して他の情報主体およびその周囲へと転々と流通する可能性が高まる。すなわち、少数のエッジの追加により、それまで局所的であった情報の伝達範囲が大きく拡大する可能性がある。
【０００７】
こうした情報の伝達状況の変動を分析することが考えられる。例えば、異なる商品分野を嗜好する２つのグループの間で交流が活発になったことを検出することで、それをマーケティングに利用できる。また、異なる技術分野の研究グループの間で議論が活発になったことを検出することで、技術トレンドの変化を分析できる。分析のために、例えば、全ノードから全ノードへの情報の伝達状況の変化を計算して、変動箇所を特定することが考えられる。ところが、情報主体の間の結び付きは大量に存在し、分析対象のグラフは膨大なノードおよびエッジを含み得る。このため、全ノードから全ノードへの情報の伝達状況の変化を計算しようとすると、演算コストが大きくなるおそれがある。
【０００８】
１つの側面では、本発明は、エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、コンピュータが実行する伝達情報変動検知方法が提供される。この伝達情報変動検知方法では、情報の発信、転送および受信を行うことが可能な情報主体を示す複数のノードと複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第１のタイミングにおける情報の伝達状況を表した第１のグラフと第２のタイミングにおける情報の伝達状況を表した第２のグラフとを取得し、第１のタイミングから第２のタイミングの間に追加されたエッジを検出し、各ノードから追加されたエッジに接続されているノードへ情報が伝達する確率を算出し、算出した確率に基づいて複数のノードのサブセットを選択し、第１のグラフに従って各ノードへ情報が伝達する第１の確率と第２のグラフに従って各ノードへ情報が伝達する第２の確率とを、情報の始点をサブセットに属するノードに限定して算出し、第１の確率と第２の確率とを比較することで、第１および第２のタイミングの間における情報の伝達状況の変動を検知する。
【００１０】
また、１つの態様では、伝達情報変動検知装置が提供される。この伝達情報変動検知装置は記憶部と演算部とを有する。記憶部は、情報の発信、転送および受信を行うことが可能な情報主体を示す複数のノードと複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第１のタイミングにおける情報の伝達状況を表した第１のグラフと第２のタイミングにおける情報の伝達状況を表した第２のグラフとを記憶する。演算部は、第１および第２のグラフに基づいて第１のタイミングから第２のタイミングの間に追加されたエッジを検出し、各ノードから追加されたエッジに接続されているノードへ情報が伝達する確率を算出し、算出した確率に基づいて複数のノードのサブセットを選択し、第１のグラフに従って各ノードへ情報が伝達する第１の確率と第２のグラフに従って各ノードへ情報が伝達する第２の確率とを、情報の始点をサブセットに属するノードに限定して算出し、第１の確率と第２の確率とを比較することで、第１および第２のタイミングの間における情報の伝達状況の変動を検知する。
【００１１】
また、１つの態様では、コンピュータによって実行される伝達情報変動検知プログラムが提供される。この伝達情報変動検知プログラムは、コンピュータに、情報の発信、転送および受信を行うことが可能な情報主体を示す複数のノードと複数のノード間の情報の送信を示す複数のエッジとを含むグラフであって、第１のタイミングにおける情報の伝達状況を表した第１のグラフと第２のタイミングにおける情報の伝達状況を表した第２のグラフとを取得し、第１のタイミングから第２のタイミングの間に追加されたエッジを検出し、各ノードから追加されたエッジに接続されているノードへ情報が伝達する確率を算出し、算出した確率に基づいて複数のノードのサブセットを選択し、第１のグラフに従って各ノードへ情報が伝達する第１の確率と第２のグラフに従って各ノードへ情報が伝達する第２の確率とを、情報の始点をサブセットに属するノードに限定して算出し、第１の確率と第２の確率とを比較することで、第１および第２のタイミングの間における情報の伝達状況の変動を検知する、処理を実行させる。
【発明の効果】
【００１２】
１つの側面では、エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の伝達情報変動検知装置を示す図である。
【図２】第１の実施の形態のハードウェア例を示す図である。
【図３】第２の実施の形態の情報処理システムを示す図である。
【図４】第２の実施の形態のグラフの全体の例を示す図である。
【図５】第２の実施の形態の情報の伝達の例を示す図である。
【図６】第２の実施の形態のサーバのハードウェア例を示す図である。
【図７】第２の実施の形態のサーバの機能例を示す図である。
【図８】第２の実施の形態のグラフの一部の例を示す図である。
【図９】第２の実施の形態の隣接行列の例を示す図である。
【図１０】第２の実施の形態の変動検知を示すフローチャートである。
【図１１】第２の実施の形態の時刻ｔ−１のＲＷＲの例（その１）を示す図である。
【図１２】第２の実施の形態の時刻ｔ−１のＲＷＲの例（その２）を示す図である。
【図１３】第２の実施の形態の時刻ｔのＲＷＲの例を示す図である。
【図１４】第２の実施の形態の変動検知箇所の例を示す図である。
【図１５】第２の実施の形態の変動検知の例を示す図である。
【図１６】第３の実施の形態の追加クリークの例を示す図である。
【図１７】第３の実施の形態の変動検知を示すフローチャートである。
【図１８】第３の実施の形態の時刻ｔ−１のＲＷＲの例を示す図である。
【図１９】第４の実施の形態の変動検知を示すフローチャートである。
【図２０】第４の実施の形態の時刻ｔ−１のＲＷＲの例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の伝達情報変動検知装置を示す図である。伝達情報変動検知装置１は、情報の発信、転送および受信を行うことが可能な情報主体の間での情報の伝達状況の変動を検知する。当該情報主体は人でもよいし装置でもよい。装置であれば、コンピュータなどの情報処理装置や携帯電話機および携帯端末装置などの電子装置でもよい。
【００１５】
伝達情報変動検知装置１は、記憶部１ａおよび演算部１ｂを有する。記憶部１ａは、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部１ｂは、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。演算部１ｂは、プログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００１６】
記憶部１ａは、情報主体を示す複数のノードと複数のノード間の情報の送信を示す複数のエッジとを含むグラフ２，３を記憶する。グラフ２（第１のグラフ）は、第１のタイミングにおける情報の伝達状況を表したグラフである。グラフ３（第２のグラフ）は、第２のタイミングにおける情報の伝達状況を表したグラフである。例えば、第２のタイミングは第１のタイミングよりも後のタイミングである。
【００１７】
例えば、グラフ３は、ノードＮａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅ，ＮｆおよびエッジＥ１，Ｅ２，Ｅ３，Ｅ４を含む。エッジＥ１は、ノードＮａ，Ｎｄ間の情報の送信を示すエッジである。エッジＥ２は、ノードＮｂ，Ｎｅ間の情報の送信を示すエッジである。エッジＥ３は、ノードＮｃ，Ｎｅ間の情報の送信を示すエッジである。エッジＥ４は、ノードＮｃ，Ｎｆ間の情報の送信を示すエッジである。
【００１８】
演算部１ｂは、グラフ２，３に基づいて第１のタイミングから第２のタイミングの間に追加されたエッジを検出する。例えば、グラフ２はエッジＥ１，Ｅ２，Ｅ３，Ｅ４を含まない。この場合、演算部１ｂは、グラフ２に含まれるエッジとグラフ３に含まれるエッジとを対比することで、追加されたエッジＥ１，Ｅ２，Ｅ３，Ｅ４を検出する。演算部１ｂは、２以上の追加されたエッジを検出し得る。
【００１９】
演算部１ｂは、各ノード（始点のノード）から追加されたエッジに接続されているノード（終点のノード）へ情報が伝達する確率を算出する。グラフ３の例でいえば、追加されたエッジＥ１，Ｅ２，Ｅ３，Ｅ４に接続されているノードは、ノードＮａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅ，Ｎｆである。例えば、演算部１ｂは、グラフ２に従って各ノードからノードＮａ，Ｎｂ，Ｎｄ，Ｎｅ，Ｎｆに対するＲＷＲを算出する。当該ＲＷＲは、各始点のノードから終点のノードＮａ，Ｎｂ，Ｎｄ，Ｎｅ，Ｎｆそれぞれへ情報が伝達する確率を示す指標である。
【００２０】
演算部１ｂは、算出された確率に基づいて複数のノードのサブセットＧを選択する。例えば、演算部１ｂは、始点のノード毎の算出した確率の最大値に基づいてサブセットＧを選択してもよい。例えば、当該最大値が所定の閾値よりも大きいノードをサブセットＧの要素として選択してもよい。
【００２１】
演算部１ｂは、グラフ２に従って各ノードへ情報が伝達する第１の確率とグラフ３に従って各ノードへ情報が伝達する第２の確率とを、情報の始点をサブセットＧに属するノードに限定して算出する。演算部１ｂは、第１の確率と第２の確率とを比較することで、第１および第２のタイミングの間における情報の伝達状況の変動を検知する。
【００２２】
例えば、演算部１ｂは、グラフ２に従って、サブセットＧに属するノードを始点とし、各ノードを終点としたＲＷＲを第１の確率として算出する。また、例えば、演算部１ｂは、グラフ３に従って、サブセットＧに属するノードを始点とし、各ノードを終点としたＲＷＲを第２の確率として算出する。例えば、演算部１ｂは、第１および第２の確率の差が比較的大きなエッジを情報の伝達状況の変動があった箇所として検知することが考えられる。グラフ４は、グラフ３のうち、変動が相対的に大きいと検知されたエッジを他のエッジよりも太い線分で表している。
【００２３】
伝達情報変動検知装置１によれば、演算部１ｂにより、グラフ２，３に基づいて第１のタイミングから第２のタイミングの間に追加されたエッジＥ１，Ｅ２，Ｅ３，Ｅ４が検出される。演算部１ｂにより、各ノードからエッジＥ１，Ｅ２，Ｅ３，Ｅ４に接続されているノードＮａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅ，Ｎｆへ情報が伝達する確率が算出され、算出された確率に基づいて複数のノードのサブセットＧが選択される。演算部１ｂにより、グラフ２に従って各ノードへ情報が伝達する第１の確率とグラフ３に従って各ノードへ情報が伝達する第２の確率とが、情報の始点をサブセットＧに属するノードに限定して算出される。演算部１ｂにより、第１の確率と第２の確率とが比較されることで、第１および第２のタイミングの間における情報の伝達状況の変動が検知される。
【００２４】
これにより、エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる。ここで、例えば、異なるタイミングで取得されたグラフ全体に対する所定の行列演算によりＲＷＲを算出し対比することで分析を行うことも考えられる。しかし、グラフは膨大な数のノードを含み得る。このため、グラフ全体を演算対象とすると、メモリの使用量が増大して容量が不足し得る。演算量も増大し得る。
【００２５】
ここで、第１のノードから第２のノードに対する情報の伝達を考えるとき、第１および第２のノードの間のホップ数が小さい（経由するノードが少ない）ほど、情報が伝達する確率は大きくなる。また、第１および第２のノード間の冗長経路が多いほど、情報が伝達する確率は大きくなる。一方、第１および第２のノードの間のホップ数が大きいほど、情報が伝達する確率は小さくなる。また、第１および第２のノード間の冗長経路が少ないほど、情報が伝達する確率は小さくなる。すなわち、追加されたエッジの両端のノードへのホップ数が小さく、当該両端のノードへの冗長経路の数が多いノードほど、エッジの追加により情報の伝達範囲が比較的大きく広がる可能性が高い。一方、追加されたエッジの両端のノードへのホップ数が大きく、当該両端のノードへの冗長経路の数が少ないノードほど、エッジが追加されても情報の伝達範囲があまり広がらない可能性が高い。
【００２６】
そして、グラフ全体を演算対象にすると、エッジが追加されても情報の伝達範囲があまり広がらないと推定されるノードに関する演算も網羅的に実行されるので、余計なメモリ使用や演算が生じ得る。例えば、２つの時刻において、全ノード間で情報が伝達する確率を計算すると、その結果を保持するメモリの容量が過大になり得る。具体的には、１つのノード当たりの計算結果を８バイト、グラフ内のノード数を１億とすると、結果を保持するために用いるメモリサイズは８０ペタバイトという膨大なサイズとなってしまう。
【００２７】
そこで、伝達情報変動検知装置１は、各ノードから追加されたエッジに接続されているノードへ情報が伝達する確率を算出し、算出した確率に基づいてサブセットＧを選択する。そして、情報の始点をサブセットＧに属するノードに限定して、各ノードへ情報が伝達する第１および第２の確率を求める。
【００２８】
このように、エッジが追加されたとしても、転送範囲があまり広がらないと推定されるノードについては、情報の伝達確率を再計算しないようにする。このため、第１および第２のグラフの全体を演算対象とするよりも、メモリの使用量や演算量を軽減できる。また、余計なメモリ使用や演算の発生を抑制できる。これにより、エッジ追加により伝達状況が大きく変動した箇所を効率的に検知できる。
【００２９】
なお、演算部１ｂは、２以上の追加されたエッジの中から所定条件を満たす部分グラフに含まれるエッジを抽出し、情報の終点を抽出したエッジに接続されているノードに限定して、各ノードから情報が伝達する確率を算出してもよい。そして、算出した確率に基づいてサブセットＧを選択してもよい。
【００３０】
例えば、所定条件として、“ｎ個以上（ｎは３以上の整数）のノード数を含む部分グラフ”という条件が考えられる。ｎ＝３であれば、ノードＮａ，ＮｄおよびエッジＥ１で形成される部分グラフは当該条件を満たさないから、当該確率の算出対象から除外される。一方、ノードＮｂ，Ｎｃ，Ｎｅ，ＮｆおよびエッジＥ２，Ｅ３，Ｅ４で形成される部分グラフは当該条件を満たすから、当該確率の算出対象となる。こうすれば、追加されたエッジを、所定の規模の部分グラフを形成するものに絞り込める。このため、一定以上の大きさのノード集合が関係する変動を検知したい場合に、演算を効率化し得る。
【００３１】
部分グラフは、クリークまたは疑似クリークでもよい。クリークは、部分グラフに属する各ノードから当該部分グラフに属する全ての他ノードへのエッジが存在する部分グラフである。疑似クリークは、部分グラフに属する各ノードから当該部分グラフに属する所定の閾値以上の割合の他ノードへのエッジが存在する部分グラフである。クリークおよび疑似クリークは複数のノードが密に結合されている部分グラフといえる。すなわち、クリークや疑似クリークは、それ以外の部分グラフに比べて、エッジ追加による情報の伝達状況の変動が大きい可能性が高い。このため、クリークや疑似クリークに対して情報を伝達する可能性の高いノードをサブセットＧの要素の候補とすることで、比較的大きな変動を効率的に検知し得る。
【００３２】
更に、演算部１ｂは、始点のノード毎に、所定条件を満たす部分グラフに含まれるエッジに接続されている複数のノードへ情報が伝達される確率の合計値を算出し、当該合計値からサブセットＧを選択してもよい。例えば、当該部分グラフに属するノードに情報を伝達する可能性の高い始点のノードを絞り込める。サブセットＧの要素を絞り込むことで、後続の第１および第２の確率を求める演算でのメモリ使用や演算量を一層抑制し得る。
【００３３】
図２は、第１の実施の形態のハードウェア例を示す図である。伝達情報変動検知装置１は、プロセッサ１ｃ、ＲＡＭ１ｄ、ＨＤＤ１ｅ、通信部１ｆ、画像信号処理部１ｇ、入力信号処理部１ｈ、ディスクドライブ１ｉおよび機器接続部１ｊを有する。各ユニットが伝達情報変動検知装置１のバスに接続されている。
【００３４】
プロセッサ１ｃは、伝達情報変動検知装置１の情報処理を制御する。プロセッサ１ｃは、マルチプロセッサであってもよい。プロセッサ１ｃは、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＭＰＵ（Micro Processing Unit）またはＰＬＤ（Programmable Logic Device）などである。プロセッサ１ｃは、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＭＰＵおよびＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３５】
ＲＡＭ１ｄは、伝達情報変動検知装置１の主記憶装置である。ＲＡＭ１ｄは、プロセッサ１ｃに実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１ｄは、プロセッサ１ｃによる処理に用いる各種データを記憶する。
【００３６】
ＨＤＤ１ｅは、伝達情報変動検知装置１の補助記憶装置である。ＨＤＤ１ｅは、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１ｅには、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。伝達情報変動検知装置１は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００３７】
通信部１ｆは、ネットワーク５を介して他のコンピュータと通信を行えるインタフェースである。通信部１ｆは、有線インタフェースでもよいし、無線インタフェースでもよい。
【００３８】
画像信号処理部１ｇは、プロセッサ１ｃからの命令に従って、伝達情報変動検知装置１に接続されたディスプレイ５ａに画像を出力する。ディスプレイ５ａとしては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００３９】
入力信号処理部１ｈは、伝達情報変動検知装置１に接続された入力デバイス５ｂから入力信号を取得し、プロセッサ１ｃに出力する。入力デバイス５ｂとしては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００４０】
ディスクドライブ１ｉは、レーザ光などを利用して、光ディスク５ｃに記録されたプログラムやデータを読み取る駆動装置である。光ディスク５ｃとして、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などを使用できる。ディスクドライブ１ｉは、例えば、プロセッサ１ｃからの命令に従って、光ディスク５ｃから読み取ったプログラムやデータをＲＡＭ１ｄまたはＨＤＤ１ｅに格納する。
【００４１】
機器接続部１ｊは、伝達情報変動検知装置１に周辺機器を接続するための通信インタフェースである。例えば、機器接続部１ｊにはメモリ装置５ｄやリーダライタ装置５ｅを接続できる。メモリ装置５ｄは、機器接続部１ｊとの通信機能を搭載した記録媒体である。リーダライタ装置５ｅは、メモリカード５ｆへのデータの書き込み、またはメモリカード５ｆからのデータの読み出しを行う装置である。メモリカード５ｆは、カード型の記録媒体である。機器接続部１ｊは、例えば、プロセッサ１ｃからの命令に従って、メモリ装置５ｄまたはメモリカード５ｆから読み取ったプログラムやデータをＲＡＭ１ｄまたはＨＤＤ１ｅに格納する。
【００４２】
このようなハードウェアにより、伝達情報変動検知装置１を実現できる。
［第２の実施の形態］
図３は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、サーバ１００、ＰＣ（Personal Computer）２００，３００、携帯電話機４００およびタブレット装置５００を含む。サーバ１００，ＰＣ２００，３００、携帯電話機４００およびタブレット装置５００は、ネットワーク１０に接続されている。例えば、ネットワーク１０はインターネットである。ネットワーク１０と各装置との間は、有線で接続されてもよいし、無線で接続されてもよい。また、ネットワーク１０と各装置との間に、他のネットワークが介在してもよい。ネットワーク１０には、図示した以外にも多数のユーザによって使用される種々のクライアントが接続され得る。
【００４３】
ここで、ＰＣ２００，３００、携帯電話機４００およびタブレット装置５００などのユーザによって使用される装置を総称して、クライアントまたはクライアント装置ということがある。ユーザは、クライアントを操作して、サーバ１００またはネットワーク１０に接続された他のサーバが提供するＳＮＳを利用できる。
【００４４】
サーバ１００は、ＳＮＳを利用するユーザの結び付きを分析するサーバコンピュータである。サーバ１００は、ユーザの結び付きを示すグラフに基づいて分析を行う。ＳＮＳではユーザ間の友人関係が管理される。例えば、ユーザの管理情報に、友人関係にある他のユーザを示す情報が登録されている。サーバ１００は、当該管理情報を参照して、分析用のグラフを生成してもよい。あるいは、サーバ１００は、当該管理情報を保持してＳＮＳを提供する他のサーバから分析用のグラフを取得してもよい。
【００４５】
ＰＣ２００は、ユーザ２０によって利用されるクライアントコンピュータである。ＰＣ３００は、ユーザ３０によって利用されるクライアントコンピュータである。携帯電話機４００は、ユーザ４０によって利用される電子装置である。タブレット装置５００は、ユーザ５０によって利用される電子装置である。例えば、ユーザ２０，３０，４０，５０は、各クライアントによって実行される所定のソフトウェアやＷｅｂブラウザを用いて、ＳＮＳを利用し得る。
【００４６】
例えば、ユーザ２０，３０，４０，５０の結び付き（友人関係）は、ユーザ２０，３０，４０，５０をノードとし、結び付きをエッジとしたグラフで表せる。ＳＮＳを利用するユーザの数が増大するほど、ノードの数も増大し、ユーザ間の結び付きを示すエッジの数も増大する。
【００４７】
図４は、第２の実施の形態のグラフの全体の例を示す図である。全体集合Ｖは、上記ＳＮＳを利用するノードの全体である。１のノードが１のユーザを示す。あるユーザが他のユーザと友人関係である場合、両ユーザを示す２つのノードがエッジで結ばれる。このように、ＳＮＳにおけるユーザ間の結び付きを無向グラフで表せる。グラフにおいて、ノードは、丸記号で図示される（例えば、ノードＮ）。また、エッジは線分で図示される（例えば、エッジＥ）。エッジを“リンク”ということもある。
【００４８】
全体集合Ｖは、部分集合Ｖ１，Ｖ２，Ｖ３を含む。部分集合Ｖ１，Ｖ２，Ｖ３は、比較的密なノードの集合である。例えば、異なる部分集合に含まれるユーザ同士の間で新たな結び付きが生まれることで、部分集合間に新たなエッジが形成され得る。すると、当該エッジを介した部分集合間での情報の伝達が行えるようになる。各部分集合には、情報の伝達において影響力のあるユーザあるいはユーザのグループ（例えば、多くの友人をもち、多数の他のユーザから情報を収集し、収集した情報を多数の他のユーザに知らせるようなキーパーソン）が含まれ得る。例えば、影響力のあるユーザあるいはグループ同士が友人関係になることで、部分集合間の情報の伝達状況に大きな変動を及ぼし得る。
【００４９】
なお、このような関係はＳＮＳ以外でも見られる。例えば、部分集合Ｖ１，Ｖ２，Ｖ３を、趣味、仕事、研究などの活動対象の分野、興味・関心の対象である分野、居住場所、生まれた年代など、何らかの特定の属性により区別された集合としてもよい。
【００５０】
例えば、論文の共著関係をグラフで表すこともできる。より具体的には、部分集合Ｖ１を生物学分野の研究者の集合、部分集合Ｖ２を情報科学分野の研究者の集合、部分集合Ｖ３を化学分野の研究者の集合などのように区別し得る。例えば、システムバイオロジー（Systems Biology）の興隆により、生物学（部分集合Ｖ１）の有力研究者と情報科学（部分集合Ｖ２）の有力研究者とが論文を共著することがある。その場合も、多くの生物学者や情報科学者が相互の分野の情報の伝達状況（両分野間で関連論文を伝達し合うなど）に大きな変動を及ぼし得る。このため、以下では、ＳＮＳを例示して説明するが、ＳＮＳに限らず種々のサービス（例えば、学術論文を蓄積して提供するサービスなど）に第２の実施の形態の処理を利用できる。
【００５１】
図５は、第２の実施の形態の情報の伝達の例を示す図である。図５では、全体集合Ｖのうちの一部のノードｎ１，ｎ２，ｎ３，ｎ４，ｎ５，ｎ６，ｎ７，ｎ８を例示している。ノードｎ１，ｎ２はエッジで接続されている。この場合、当該エッジの両端にノードｎ１，ｎ２が接続されているともいえる。同様に、ノードｎ１，ｎ４はエッジで接続されている。ノードｎ２，ｎ３はエッジで接続されている。ノードｎ３，ｎ４はエッジで接続されている。ノードｎ３，ｎ６はエッジで接続されている。ノードｎ３，ｎ７はエッジで接続されている。ノードｎ４，ｎ５はエッジで接続されている。ノードｎ３，ｎ６はエッジで接続されている。ノードｎ５，ｎ６はエッジで接続されている。ノードｎ６，ｎ８はエッジで接続されている。ノードｎ７，ｎ８はエッジで接続されている。同一エッジの両端に接続されたノードを隣接関係にあるということができる。例えば、ノードｎ１は、ノードｎ２，ｎ４の隣接ノードである。
【００５２】
第１のユーザから第２のユーザに至るまでのホップ数（すなわち、伝達に要する友人の数）が小さいほど、第１のユーザから第２のユーザに情報が伝達される確率は高い。また、第１のユーザから第２のユーザに至るまでの冗長な経路が多いほど、第１のユーザから第２のユーザに情報が伝達される確率は高い。このように、情報が伝達される確率の大きさに比例したノード間の近さを表す指標として、ＲＷＲまたはＲＷＲ距離と呼ばれる指標を用いることができる。具体的には、第１のノードで発生した情報がエッジに沿ってランダムに伝達した末に第２のノードに伝わる確率を、第１のノードから第２のノードへのＲＷＲ距離とする。第１および第２のノードのホップ数が小さいほどＲＷＲ距離は大きくなり、両ノード間で情報が伝わり易いと評価できる。
【００５３】
情報の伝達を次のようにモデル化する。情報はノード間の遷移確率に従って伝達する。具体的には次の（１）〜（３）の通りである。（１）確率ｃ（０＜ｃ＜１の実数）で、取得された情報が少なくとも１つの隣接ノードに伝達する。（２）確率１−ｃで、取得された情報が何れの隣接ノードにも伝達しない。モデル上では、元のノード（情報を発信した始点のノード）から伝達をやり直すものとして扱う。（３）１のノードに隣接ノードが複数ある場合、各隣接ノードへは等しい確率で情報が転送される。ここで、確率ｃは、分析対象とするサービスに応じて変更され得る。第２の実施の形態では、一例としてｃ＝０．８とする。
【００５４】
例えば、ノードｎ１を始点に発信された情報がノードｎ３に到達したと仮定して、当該情報がノードｎ３から隣接ノードに伝達する確率は、次のようになる。ノードｎ３からノードｎ２，ｎ４，ｎ６，ｎ７に伝達する確率は、それぞれｃ／４である。ノードｎ３からノードｎ２，ｎ４，ｎ６，ｎ７の何れにも伝達しない確率（ノードｎ１から伝達し直しになる確率）は、１−ｃである。
【００５５】
ここで、全体集合Ｖの全ノード数をＮ（Ｎは１より大きな整数）とする。ノードｊ（ｊは始点ノードの識別子）から全ノードへのＲＷＲ距離を、Ｎ行の列ベクトルｒjに保持する。ｒjは式（１）で表せる。
【００５６】
【数１】
2014225117.tif 000003
【００５７】
行列ＷはＮ行Ｎ列の遷移確率行列である。ベクトルｅjは、ノードｊに対応する成分が１であり、他の成分が０の列ベクトルである。行列Ｗは、グラフを示す隣接行列Ｍと次数（各ノードに繋がるエッジ数）を対角成分にもつＮ行Ｎ列の対角行列Ｄを用いて、式（２）で表せる。隣接行列Ｍは、ノードｉ，ｊ（ｉはノードの識別子）間にエッジがある場合、ｉ行ｊ列およびｊ行ｉ列の要素が“１”である行列である。隣接行列Ｍのそれ以外の要素は“０”である。
【００５８】
【数２】
2014225117.tif 000004
【００５９】
式（１）をｒjについて解くと式（３）を得る。
【００６０】
【数３】
2014225117.tif 000005
【００６１】
行列ＩはＮ行Ｎ列の単位行列である。式（３）を用いて、ノードｊを始点に、他のノードを終点にしたＲＷＲ距離ｒjを算出できる。
全体集合Ｖに対して、比較的大きなＲＷＲ距離の変動を検知する方法は次のように表せる。ｘ∈Ｖからｙ∈Ｖへの時刻ｔにおけるＲＷＲ距離をｄ（ｘ，ｙ，ｔ）とする。ノード集合Ｘ⊂ＶとＹ⊂Ｖは、全ての（ｘ，ｙ）∈｛Ｘ×Ｙ｝のうち、ｄ（ｘ，ｙ，ｔ）−ｄ（ｘ，ｙ，ｔ−１）＞α（αは正の実数）を満たす組合せが割合β（βは正の実数）以上あるノード集合の対（変動ノード集合対）とする。そして、複数の変動ノード集合対のうち、ノード対の数（Ｘのノード数×Ｙのノード数）がγ（γは正の整数）以上である変動ノード集合対を検知し通知する。しかし、ｄ（ｘ，ｙ，ｔ）を全ての（ｘ，ｙ）∈Ｖについて求めるのは非効率的である。ＲＷＲ距離の変動に対して比較的大きく寄与するのは、追加されたエッジの周囲のノードである可能性が高いからである。そこで、サーバ１００はＲＷＲ距離を算出する前に、演算対象とするノード対を絞り込む。
【００６２】
図６は、第２の実施の形態のサーバのハードウェア例を示す図である。サーバ１００は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３、通信部１０４、画像信号処理部１０５、入力信号処理部１０６、ディスクドライブ１０７および機器接続部１０８を有する。各ユニットがサーバ１００のバスに接続されている。
【００６３】
プロセッサ１０１は、サーバ１００の情報処理を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＭＰＵまたはＰＬＤなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＭＰＵおよびＰＬＤのうちの２以上の要素の組合せであってもよい。
【００６４】
ＲＡＭ１０２は、サーバ１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００６５】
ＨＤＤ１０３は、サーバ１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。サーバ１００は、フラッシュメモリやＳＳＤなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００６６】
通信部１０４は、ネットワーク１０を介して他のコンピュータと通信を行えるインタフェースである。通信部１０４は、有線インタフェースでもよいし、無線インタフェースでもよい。
【００６７】
画像信号処理部１０５は、プロセッサ１０１からの命令に従って、サーバ１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、ＣＲＴディスプレイや液晶ディスプレイなどを用いることができる。
【００６８】
入力信号処理部１０６は、サーバ１００に接続された入力デバイス１２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１２としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００６９】
ディスクドライブ１０７は、レーザ光などを利用して、光ディスク１３に記録されたプログラムやデータを読み取る駆動装置である。光ディスク１３として、例えば、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷなどを使用できる。ディスクドライブ１０７は、例えば、プロセッサ１０１からの命令に従って、光ディスク１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００７０】
機器接続部１０８は、サーバ１００に周辺機器を接続するための通信インタフェースである。例えば、機器接続部１０８にはメモリ装置１４やリーダライタ装置１５を接続できる。メモリ装置１４は、機器接続部１０８との通信機能を搭載した記録媒体である。リーダライタ装置１５は、メモリカード１６へのデータの書き込み、またはメモリカード１６からのデータの読み出しを行う装置である。メモリカード１６は、カード型の記録媒体である。機器接続部１０８は、例えば、プロセッサ１０１からの命令に従って、メモリ装置１４またはメモリカード１６から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００７１】
図７は、第２の実施の形態のサーバの機能例を示す図である。サーバ１００は、記憶部１１０、入力部１２０、近傍ノード算出部１３０、変動検出部１４０および出力部１５０を有する。記憶部１１０は、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域として実現できる。入力部１２０、近傍ノード算出部１３０、変動検出部１４０および出力部１５０は、プロセッサ１０１が実行するソフトウェアのモジュールとして実現できる。
【００７２】
記憶部１１０は、近傍ノード算出部１３０および変動検出部１４０による演算に用いられる各種の情報を記憶する。記憶部１１０は、複数の時刻それぞれにおける全体集合Ｖ内のノードおよびエッジを示す隣接行列を予め記憶していてもよい。
【００７３】
入力部１２０は、複数の時刻それぞれにおける全体集合Ｖ内のノードおよびエッジを示す隣接行列を取得して、近傍ノード算出部１３０に出力する。入力部１２０は、他のサーバなどから当該隣接行列を取得して、記憶部１１０に格納しておいてもよい。
【００７４】
近傍ノード算出部１３０は、入力部１２０または記憶部１１０から取得した時刻ｔ−１のグラフを示す隣接行列および時刻ｔのグラフを示す隣接行列を用いて、時刻ｔ−１から時刻ｔの間に追加されたエッジ（追加エッジということがある）を検出する。近傍ノード算出部１３０は、各ノードから追加エッジに接続されているノードへのＲＷＲ距離を算出する。近傍ノード算出部１３０は、算出したＲＷＲ距離に基づいて複数のノードのサブセットを選択する。当該サブセットを近傍ノード群ということがある。また、近傍ノード群に含まれるノードを近傍ノードということがある。
【００７５】
変動検出部１４０は、時刻ｔ−１のグラフを用いて、近傍ノードから各ノードへの第１のＲＷＲ距離を算出する。同様に変動検出部１４０は、時刻ｔのグラフを用いて、近傍ノードから各ノードへの第２のＲＷＲ距離を算出する。変動検出部１４０は、第１および第２のＲＷＲ距離を比較することで、時刻ｔ−１および時刻ｔの間における情報の伝達状況の変動を検知する。変動検出部１４０は、検知結果を出力部１５０に出力する。
【００７６】
出力部１５０は、変動検出部１４０による検知結果をユーザに提示する。例えば、出力部１５０は、検知結果を示す画像をディスプレイ１１に表示させる。
図８は、第２の実施の形態のグラフの一部の例を示す図である。全体集合Ｖは、ノードＮ１，Ｎ２，Ｎ３，Ｎ４，Ｎ５，Ｎ６，Ｎ７，Ｎ８，Ｎ９，Ｎ１０，Ｎ１１，Ｎ１２を含む。時刻ｔ−１では、次のノード同士がエッジを介して接続されている。ノードＮ１，Ｎ３。ノードＮ２，Ｎ５。ノードＮ２，Ｎ１１。ノードＮ３，Ｎ４。ノードＮ３，Ｎ５。ノードＮ６，Ｎ８。ノードＮ７，Ｎ８。ノードＮ７，Ｎ９。ノードＮ８，Ｎ１０。ノードＮ９，Ｎ１２。
【００７７】
時刻ｔでは時刻ｔ−１で示したノード対に加えて次のノード同士がエッジを介して接続されている。ノードＮ４，Ｎ５。ノードＮ４，Ｎ６。ノードＮ４，Ｎ７。ノードＮ５，Ｎ６。ノードＮ６，Ｎ７。ノードＮ１１，Ｎ１２。
【００７８】
以下では、ノードＮ１，Ｎ２，Ｎ３，Ｎ４，Ｎ５，Ｎ６，Ｎ７，Ｎ８，Ｎ９，Ｎ１０，Ｎ１１，Ｎ１２を対象にした演算を例示する。ただし、全体集合Ｖに含まれる全ノードを対象にして、以下に説明する方法を適用し得る。
【００７９】
図９は、第２の実施の形態の隣接行列の例を示す図である。隣接行列Ｍt-1は、図８で例示した時刻ｔ−１のグラフを示す隣接行列である。隣接行列Ｍtは、図８で例示した時刻ｔのグラフを示す隣接行列である。なお、隣接行列の行および列に付した値は、ノードを示している。例えば、値“１”はノードＮ１を示す。値“２”はノードＮ２を示す。以下、図面において同様の表記を用いることがある。
【００８０】
例えば、近傍ノード算出部１３０は、隣接行列Ｍt-1，Ｍtを対比することで、追加エッジを検出し得る。隣接行列Ｍt-1で“０”であったノード対に対して、隣接行列Ｍtで“１”となったものがあれば、それらのノードの間にエッジが追加されたことになる。隣接行列Ｍt-1，Ｍtの例でいえば、ノードＮ４，Ｎ５を結ぶエッジ、ノードＮ４，Ｎ６を結ぶエッジ、ノードＮ４，Ｎ７を結ぶエッジ、ノードＮ５，Ｎ６を結ぶエッジ、ノードＮ６，Ｎ７を結ぶエッジ、ノードＮ１１，Ｎ１２を結ぶエッジが追加エッジである。
【００８１】
ここで、隣接行列Ｍt-1に対する行列Ｄt-1-1は、式（４）で表せる。
【００８２】
【数４】
2014225117.tif 000006
【００８３】
また、隣接行列Ｍtに対する行列Ｄt-1は、式（５）で表せる。
【００８４】
【数５】
2014225117.tif 000007
【００８５】
図１０は、第２の実施の形態の変動検知を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
（Ｓ１１）入力部１２０は、隣接行列Ｍt-1，Ｍtの入力を受け付ける。入力部１２０は、近傍ノード算出部１３０に隣接行列Ｍt-1，Ｍtを出力する。
【００８６】
（Ｓ１２）近傍ノード算出部１３０は、隣接行列Ｍt-1，Ｍtを対比することで、追加エッジを検出する。
（Ｓ１３）近傍ノード算出部１３０は、全ノードを始点とし、追加エッジの両端の各ノード（端ノードということがある）を終点とし、式（２），（３）を用いて、各始点から各終点へのＲＷＲ距離を算出する。隣接行列Ｍt-1，Ｍtの例でいえば、端ノードはノードＮ４，Ｎ５，Ｎ６，Ｎ７，Ｎ１１，Ｎ１２である。近傍ノード算出部１３０は、端ノード以外のノードを終点とするＲＷＲ距離を求めなくてよい。すなわち、式（３）の右辺における行列と列ベクトルｅjとの乗算において、演算する行列の行を端ノードに対応する行に限定できる。
【００８７】
（Ｓ１４）近傍ノード算出部１３０は、何れかの端ノードへのＲＷＲ距離が所定値よりも大きなノード（近傍ノード）を選択する。近傍ノード算出部１３０は、選択した近傍ノードを変動検出部１４０に出力する。
【００８８】
（Ｓ１５）変動検出部１４０は、式（２），（３）を用いて、近傍ノードから全ノードへの時刻ｔ−１におけるＲＷＲ距離を算出する。同様に、変動検出部１４０は、近傍ノードから全ノードへの時刻ｔにおけるＲＷＲ距離を算出する。このとき、変動検出部１４０は、近傍ノード以外のノードを始点としたＲＷＲ距離を算出しなくてよい。始点のノードを限定して全ノードへのＲＷＲ距離を算出する方法として、次のような技術を利用できる。例えば、文献“Fast Random Walk with Restart and Its Applications”（Hanghang Tong、Christos Floutsos、Jia-Yu Pan、Proceedings of ICDM2006、IEEE、2006年、p.613-622）に記載された方法を用いて計算し得る。この方法によれば、ノードをグループに分割し、グループ毎の小さい遷移確率行列の逆行列計算と、グループをまたいだ遷移確率行列の上位特異ベクトルによる要約により、少ないメモリ容量でＲＷＲ距離を概算できる。また、例えば、文献“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）に記載された方法を用いて計算してもよい。この方法によれば、全ノード間のＲＷＲ距離を保持するＲＷＲ距離行列を２つの疎行列の積として保持する。これにより、２ノード間のＲＷＲ距離を、各疎行列の行・列ベクトルの積で計算する。
【００８９】
（Ｓ１６）変動検出部１４０は、近傍ノードからのＲＷＲ距離の変化がαよりも大きいノード対がβ以上の割合で含まれる変動ノード集合対を検出する。変動ノード集合対の抽出には、次のような技術を利用できる。例えば、文献“疑似クリークを列挙する多項式時間遅延アルゴリズム”（宇野毅明、情報処理学会研究報告．ＡＬ  アルゴリズム研究会報告、一般社団法人情報処理学会、2007年3月、p.97-104）に記載された方法を利用し得る。変動ノード集合対を、ＲＷＲ距離の差分がαより大きいノード対が当該変動ノード集合対に含まれる全ノード対に対して割合βで含まれる疑似クリークとみなして当該文献の方法を適用することで、変動ノード集合対を効率的に検出し得る。
【００９０】
（Ｓ１７）変動検出部１４０は、検出された変動ノード集合対のうち、γ個以上のノード対を含む変動ノード集合対を検出すると、当該変動ノード集合対を示す情報を出力部１５０に出力する。出力部１５０は、当該変動ノード集合対の情報をユーザに通知する。例えば、出力部１５０は全体集合Ｖのうち変動箇所を示す画像（図形や文字など）をディスプレイ１１に表示させてもよい。
【００９１】
図１１は、第２の実施の形態の時刻ｔ−１のＲＷＲの例（その１）を示す図である。図１１では、図１０のステップＳ１３で得られる時刻ｔ−１のＲＷＲ距離を示す行列１１１を例示している。列番号は始点ノードを表す。行番号は終点ノードを表す。すなわち、行列１１１の要素（ｉ，ｊ）は、ノードｊからノードｉへのＲＷＲ距離を表す（以下、ＲＷＲ距離を示す行列については同様である）。
【００９２】
近傍ノード算出部１３０は、端ノード以外のノードＮ１，Ｎ２，Ｎ３，Ｎ８，Ｎ９，Ｎ１０を終点とするＲＷＲ距離を算出しなくてよい。このため、行数を削減して演算し得る。ここで、当該ステップＳ１４における所定値を０．１６としている。この場合、近傍ノード算出部１３０は、ノードＮ２，Ｎ３，Ｎ４，Ｎ５，Ｎ６，Ｎ７，Ｎ８，Ｎ９，Ｎ１１，Ｎ１２を近傍ノードとして選択する。
【００９３】
図１２は、第２の実施の形態の時刻ｔ−１のＲＷＲの例（その２）を示す図である。図１２では、図１０のステップＳ１５で得られる時刻ｔ−１のＲＷＲ距離を示す行列１１２を例示している。変動検出部１４０は、近傍ノード以外のノードＮ１，Ｎ１０を始点とするＲＷＲ距離を算出しなくてよい。このため、列数を削減して演算し得る。
【００９４】
図１３は、第２の実施の形態の時刻ｔのＲＷＲの例を示す図である。図１３では、図１０のステップＳ１５で得られる時刻ｔのＲＷＲ距離を示す行列１１３を例示している。図１２と同様に、変動検出部１４０は、近傍ノード以外のノードＮ１，Ｎ１０を始点とするＲＷＲ距離を算出しなくてよい。このため、列数を削減して演算し得る。
【００９５】
図１４は、第２の実施の形態の変動検知箇所の例を示す図である。まず、変動検出部１４０は、行列１１３（行列Ｒ（ｔ）とする）と行列１１２（行列Ｒ（ｔ−１）とする）との差を計算する。すなわち、Ｒ（ｔ）−Ｒ（ｔ−１）を計算する。次に、値がα以上の要素を抽出する。そして、抽出した要素が密に集まっている矩形領域（当該矩形領域に含まれる全要素数に対して、抽出した要素数の割合がβ以上のもの）を選択する。行列１１４は、Ｒ（ｔ）−Ｒ（ｔ−１）を計算したものについて、当該矩形領域を選択した場合を例示している。ここで、α＝０．０９、β＝０．５、γ＝２２である。
【００９６】
すなわち、変動検出部１４０は、変動検出部１４０は、ノードＮ３，Ｎ４，Ｎ５，Ｎ６，Ｎ７，Ｎ８から、ノードＮ４，Ｎ５，Ｎ６，Ｎ７へ情報が伝達される確率（ＲＷＲ距離）が他のノード間よりも大きく変動していることを検知する。出力部１５０は、当該箇所における情報の伝達状況の変動が、他の箇所よりも大きく変動していることをユーザに通知する。
【００９７】
図１５は、第２の実施の形態の変動検知の例を示す図である。サーバ１００は、全体集合Ｖに含まれるノードのうち、エッジ追加により伝達状況が変動した箇所を効率的に検知できる。例えば、全体集合Ｖにおいて、部分集合Ｖ１，Ｖ２，Ｖ３に含まれる要素間で新たなエッジが形成される。上記の方法によれば、始点のノードを近傍ノードに限定してＲＷＲ距離を求めて分析することで、情報の伝達状況が比較的大きく変動したノードの部分集合Ｖ４を求める。すなわち、ＲＷＲ距離を求める際に変動への寄与の比較的小さい（エッジが追加されても情報の伝達範囲の広がりが比較的小さい）と考えられるノードを除外して演算を行う。よって、始点のノードを限定せずにＲＷＲ距離を算出する場合に比べて、余計なメモリ使用や演算コストの発生を抑制できる。
【００９８】
［第３の実施の形態］
以下、第３の実施の形態を説明する。前述の第２の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
【００９９】
第２の実施の形態では、追加されたエッジに接続された全ての端ノードを終点として求めたＲＷＲ距離に基づいて、近傍ノードを選択するものとした。一方、当該計算において、終点とする端ノードを更に絞り込んでもよい。規模の比較的大きなノード集合を事前に絞り込んでから近傍ノードを選択すれば、演算対象を更に削減して演算の効率化を図れる。第３の実施の形態では、その機能を提供する。
【０１００】
ここで、第３の実施の形態の情報処理システムは、図３で例示した第２の実施の形態の情報処理システムと同様である。また、第３の実施の形態のサーバのハードウェア例および機能例は、図６，７で例示した第２の実施の形態のサーバ１００のハードウェア例および機能例と同様である。第３の実施の形態のサーバなどの各要素を、第２の実施の形態と同じ符号を用いて指し示す。
【０１０１】
図１６は、第３の実施の形態の追加クリークの例を示す図である。クリークとは全てのノード間にエッジがあるノード集合である。ここで、第３の実施の形態で扱うクリークは、特定の条件を満たすものである。具体的には、クリークを形成するエッジが全て追加エッジであるとする。このような特定の条件を満たすクリークを、以下では追加クリークと呼ぶこととする。例えば、Ｎ３，Ｎ４，Ｎ５の集合は、クリークではあるが、追加クリークではない。ただし、クリークのうち、追加エッジの割合が閾値以上であるものを追加クリークとしてもよい。例えば、後述するように追加クリークは疑似クリークでもよい。
【０１０２】
図１６では、全体集合Ｖの一部に含まれる追加クリーク６１，６２を例示している。追加クリーク６１は、ノードＮ４，Ｎ５，Ｎ６，Ｎ７により形成されている。追加クリーク６２は、ノードＮ１１，Ｎ１２により形成されている。
【０１０３】
図１７は、第３の実施の形態の変動検知を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
（Ｓ２１）入力部１２０は、隣接行列Ｍt-1，Ｍtの入力を受け付ける。入力部１２０は、近傍ノード算出部１３０に隣接行列Ｍt-1，Ｍtを出力する。
【０１０４】
（Ｓ２２）近傍ノード算出部１３０は、隣接行列Ｍt-1，Ｍtを対比することで、追加エッジを検出する。
（Ｓ２３）近傍ノード算出部１３０は、追加エッジによって形成されるグラフの中から、追加クリークを選択する。追加クリークの選択には、次のような技術を利用できる。例えば、文献“大規模グラフに対する高速クリーク列挙アルゴリズム”（宇野毅明、電気通信学会コンピュテーション研究会、京都大学、2003年）に記載された方法を利用できる。この方法では、あるグラフに対してクリークを列挙する際に、検出済のクリークと隣接しないノードに関して、当該クリーク内のノードとクリークを形成するか否かのチェックを省略することで、高速にクリークを検出する。この方法を追加エッジによって形成されるグラフに適用することでクリークを効率的に検出し得る。
【０１０５】
（Ｓ２４）近傍ノード算出部１３０は、所定数以上のノードを含む追加クリークを選択する。例えば、所定数を３とする。この場合、近傍ノード算出部１３０は追加クリーク６１を選択する。追加クリーク６１に含まれるノード数は４であり、所定値３以上だからである。近傍ノード算出部１３０は追加クリーク６２を選択しない。追加クリーク６２に含まれるノード数は２であり、所定値３に満たないからである。
【０１０６】
（Ｓ２５）近傍ノード算出部１３０は、全ノードを始点とし、ステップＳ２４で選択された追加クリークを形成する端ノードへのＲＷＲ距離を算出する。例えば、近傍ノード算出部１３０は、全ノードから、追加クリーク６１を形成するノードＮ４，Ｎ５，Ｎ６，Ｎ７へのＲＷＲ距離を算出する。具体的な計算は、ステップＳ１３と同様である。
【０１０７】
（Ｓ２６）近傍ノード算出部１３０は、ステップＳ２５の計算結果のうち、ＲＷＲ距離が所定値よりも大きなノードを、近傍ノードとして選択する。近傍ノード算出部１３０は、選択した近傍ノードを変動検出部１４０に出力する。
【０１０８】
（Ｓ２７）変動検出部１４０は、式（２），（３）を用いて、近傍ノードから全ノードへの時刻ｔ−１におけるＲＷＲ距離を算出する。同様に、変動検出部１４０は、近傍ノードから全ノードへの時刻ｔにおけるＲＷＲ距離を算出する。このとき、変動検出部１４０は、近傍ノード以外のノードを始点としたＲＷＲ距離を算出しなくてよい。例えば、始点を近傍ノードに限定したＲＷＲ距離の算出には、ステップＳ１５と同様の技術を利用できる。
【０１０９】
（Ｓ２８）変動検出部１４０は、近傍ノードからのＲＷＲ距離の変化がαよりも大きいノード対がβ以上の割合で含まれる変動ノード集合対を検出する。例えば、変動ノード集合対の検出には、ステップＳ１６と同様の技術を利用できる。
【０１１０】
（Ｓ２９）変動検出部１４０は、検出された変動ノード集合対のうち、γ個以上のノード対を含む変動ノード集合対を検出すると、当該変動ノード集合対を示す情報を出力部１５０に出力する。出力部１５０は、当該変動ノード集合対の情報をユーザに通知する。例えば、出力部１５０は全体集合Ｖのうち変動箇所を示す画像（図形や文字など）をディスプレイ１１に表示させてもよい。
【０１１１】
図１８は、第３の実施の形態の時刻ｔ−１のＲＷＲの例を示す図である。図１８では、図１７のステップＳ２４で追加クリーク６１が選択された場合に、ステップＳ２５で得られる時刻ｔ−１のＲＷＲ距離を示す行列１１１ａを例示している。この場合、端ノードはノードＮ４，Ｎ５，Ｎ６，Ｎ７にまで絞り込まれる。近傍ノード算出部１３０は、第２の実施の形態で例示した行列１１１の代わりに、行列１１１ａを得る。行列１１１ａでは、行列１１１に比べてノードＮ１１，Ｎ１２についての計算が省略されている。近傍ノード算出部１３０は、行列１１１ａに基づいて近傍ノードを選択する。ステップＳ２６の所定値を０．１６とすれば、近傍ノードは、ノードＮ２，Ｎ３，Ｎ４，Ｎ５，Ｎ６，Ｎ７，Ｎ８，Ｎ９，Ｎ１１，Ｎ１２である。
【０１１２】
このように、一定以上の規模の追加クリークを事前に選択することで、近傍ノードを選択する際のＲＷＲ距離の演算を一層効率的に行えるようになる。また、近傍ノードも絞り込まれ得るので、後段のＲＷＲ距離の演算を効率化し得る。第３の実施の形態では追加クリークとして、エッジが全て追加エッジであるクリークを選択するものとしたが、疑似クリークを追加クリークとして選択してもよい。
【０１１３】
例えば、追加クリークとして扱える疑似クリークとしては次のようなものが考えられる。第１には、既存エッジと追加エッジとが混在したクリークのうち、追加エッジの割合が閾値以上であるものを疑似クリークとしてもよい。第２には、エッジが全て追加エッジであり、クリークは形成していないが、全ノード対に対する追加エッジの割合が閾値以上のものを疑似クリークとしてもよい。第３には、エッジの中に既存エッジが含まれておりクリークも形成していないが、全ノード対に対する追加エッジの割合が閾値以上のものを疑似クリークとしてもよい。
【０１１４】
追加クリークは、他のノード集合に比べて、複数のノードが密に結合されているノード集合といえる。すなわち、追加クリークは、それ以外のノード集合に比べて、情報の伝達状況の変動への寄与が大きい可能性が高い。このため、追加クリークに対して情報を伝達する可能性の高いノードを近傍ノードの候補とすることで、比較的大きな変動を効率的に検知し得る。
【０１１５】
［第４の実施の形態］
以下、第４の実施の形態を説明する。前述の第２，第３の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
【０１１６】
第４の実施の形態では、第３の実施の形態の方法に加えて、近傍ノードを更に絞り込む方法を提供する。ここで、第４の実施の形態の情報処理システムは、図３で例示した第２の実施の形態の情報処理システムと同様である。また、第４の実施の形態のサーバのハードウェア例および機能例は、図６，７で例示した第２の実施の形態のサーバ１００のハードウェア例および機能例と同様である。第４の実施の形態のサーバなどの各要素を第２の実施の形態と同じ符号を用いて指し示す。
【０１１７】
図１９は、第４の実施の形態の変動検知を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。ここで、第４の実施の形態では、図１７で示したステップＳ２６の代わりに、ステップＳ２６ａを実行する点が異なる。そこで、ステップＳ２６ａについて説明し、他のステップの説明を省略する。ステップＳ２６ａは、ステップＳ２５の次に実行される。
【０１１８】
（Ｓ２６ａ）近傍ノード算出部１３０は、ステップＳ２５の計算結果に基づいて、端ノードへのＲＷＲ距離の和が所定値よりも大きなノードを近傍ノードとして選択する。近傍ノード算出部１３０は、選択した近傍ノードを変動検出部１４０に出力する。そして、処理がステップＳ２７に進められる。
【０１１９】
なお、追加エッジにより形成された追加クリークが複数存在していることもある。その場合、１つのノードに対して、追加クリーク毎に端ノードへのＲＷＲ距離の和をとる。１つのノードに対してＲＷＲ距離の和が複数算出されることになる。そして、何れかの追加クリークに対するＲＷＲ距離の和が所定値以上となれば、当該ノードを近傍ノードとする。
【０１２０】
あるいは、１つのノードについて全ての追加クリークに含まれる端ノードへのＲＷＲ距離の和をとり、当該和が所定値以上であるノードを近傍ノードとしてもよい。
図２０は、第４の実施の形態の時刻ｔ−１のＲＷＲの例を示す図である。図２０では、図１９のステップＳ２４で追加クリーク６１が選択された場合に、ステップＳ２５で得られる時刻ｔ−１のＲＷＲ距離を示す行列１１１ｂを例示している。端ノードは、行列１１１ａの場合と同様に、ノードＮ４，Ｎ５，Ｎ６，Ｎ７まで絞り込まれている。近傍ノード算出部１３０は、第２，第３の実施の形態で例示した行列１１１，１１１ａの代わりに、行列１１１ｂを得る。
【０１２１】
そして、近傍ノード算出部１３０は、始点のノードのうち、端ノードへのＲＷＲ距離の和が所定値以上のノードを近傍ノードとして選択する。ここでは、ステップＳ２６ａにおける所定値を０．２９としている。この場合、近傍ノード算出部１３０は、ノードＮ３，Ｎ４，Ｎ５，Ｎ６，Ｎ７，Ｎ８を近傍ノードとして選択する。
【０１２２】
このように、一定以上の規模の追加クリークを事前に選択することで、近傍ノードを選択するための演算を一層効率的に行えるようになる。また、近傍ノードを絞り込むことで、後段のＲＷＲ距離の演算を効率的に実行することができる。例えば、第２の実施の形態では近傍ノードの数が１０個であるのに対し、第４の実施の形態では６個にまで絞り込んでいる。すなわち、時刻ｔ，ｔ−１におけるＲＷＲ距離を求める際に、情報の始点となる近傍ノードを一層絞り込める。このため、余計なメモリ使用や演算コストの発生を一層抑制できる。その結果、情報の伝達状況の変動を一層効率的に検知できる。
【０１２３】
第２〜第４の実施の形態で説明したように、サーバ１００は、エッジの追加により、情報の伝達範囲が比較的大きく広がったと推定されるノード（近傍ノード）に始点を限定して、ＲＷＲ距離を計算する。このため、全てのノード間についてＲＷＲ距離を計算するよりも少ないメモリ容量および演算コストで、急激に距離が縮まった大規模な情報伝達の変動を効率的に検知できる。
【０１２４】
なお、前述のように、第１の実施の形態の情報処理は、前述のように演算部１ｂにプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体（例えば、光ディスク１３、メモリ装置１４およびメモリカード１６など）に記録できる。
【０１２５】
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１２６】
１  伝達情報変動検知装置
１ａ  記憶部
１ｂ  演算部
２，３，４  グラフ
Ｅ１，Ｅ２，Ｅ３，Ｅ４  エッジ
Ｇ  サブセット
Ｎａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅ，Ｎｆ  ノード
【図１】
2014225117.tif 000008
【図２】
2014225117.tif 000009
【図３】
2014225117.tif 000010
【図４】
2014225117.tif 000011
【図５】
2014225117.tif 000012
【図６】
2014225117.tif 000013
【図７】
2014225117.tif 000014
【図８】
2014225117.tif 000015
【図９】
2014225117.tif 000016
【図１０】
2014225117.tif 000017
【図１１】
2014225117.tif 000018
【図１２】
2014225117.tif 000019
【図１３】
2014225117.tif 000020
【図１４】
2014225117.tif 000021
【図１５】
2014225117.tif 000022
【図１６】
2014225117.tif 000023
【図１７】
2014225117.tif 000024
【図１８】
2014225117.tif 000025
【図１９】
2014225117.tif 000026
【図２０】
2014225117.tif 000027