(57)【要約】【課題】グラフ分析におけるノード情報の推定の計算量を削減する。【解決手段】記憶部１１は、ノード１３ａおよびノード情報が対応付けられたノード１３ｂ，１３ｃ，１３ｄを含む複数のノードと、ウェイトをもつエッジ１３ｅ，１３ｆ，１３ｇと、を含むグラフを示すグラフ情報１３を記憶する。処理部１２は、ノード情報に基づいて、ノード１３ｂ，１３ｃを含むノードグループを抽出して統合ノード１４ａに変換する。処理部１２は、統合ノード１４ａとノード１３ａとの間に生じたエッジ１３ｅ，１３ｆを、ウェイトに応じた統合ウェイトをもつ統合エッジ１４ｂに変換する。処理部１２は、統合ノード１４ａと統合エッジ１４ｂとを含む変換後グラフを示す変換後グラフ情報１４に基づいて、ノード１３ａに対応付けるノード情報を推定する。【選択図】図１
2020140452.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
それぞれ第１のノード情報が対応付けられた複数の第１のノードおよび前記複数の第１のノードと異なる第２のノードを含む複数のノードと、それぞれウェイトをもつ前記複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を取得し、
前記第１のノード情報に基づいて、前記複数の第１のノードのうち２以上の第１のノードを含むノードグループを抽出し、前記ノードグループを統合ノードに変換し、
変換により前記統合ノードと前記第２のノードとの間に生じた２以上のエッジを、前記２以上のエッジの前記ウェイトに応じた統合ウェイトをもつ統合エッジに変換し、
前記統合ノードと前記統合エッジとを含む変換後グラフを示す変換後グラフ情報に基づいて、前記第２のノードに対応付ける第２のノード情報を推定する、
ノード情報推定方法。
【請求項２】
前記２以上の第１のノードは、同じ第１のノード情報が対応付けられたノードである、
請求項１記載のノード情報推定方法。
【請求項３】
前記統合ノードには前記同じ第１のノード情報が対応付けられ、
前記第２のノード情報は、前記統合ノードの前記同じ第１のノード情報と、前記統合ノードと前記第２のノードとの間の前記統合ウェイトとを用いて算出される、
請求項２記載のノード情報推定方法。
【請求項４】
前記統合ウェイトは、前記２以上のエッジの前記ウェイトの合計である、
請求項１記載のノード情報推定方法。
【請求項５】
コンピュータが、
それぞれ第１のノード情報が対応付けられた複数の第１のノードおよび前記複数の第１のノードと異なる第２のノードを含む複数のノードと、前記複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を取得し、
前記グラフ情報に基づいて、前記複数の第１のノードのうち、前記第２のノードから他の第１のノードを経由せずに前記複数のエッジのうちの１以上のエッジを介して到達可能な第１のノードを判定し、前記第２のノードを含んでおり前記到達可能な第１のノードを境界とする部分グラフを前記グラフから抽出し、
前記部分グラフを示す部分グラフ情報に基づいて、前記到達可能な第１のノードの前記第１のノード情報から、前記第２のノードに対応付ける第２のノード情報を推定する、
ノード情報推定方法。
【請求項６】
コンピュータに、
それぞれ第１のノード情報が対応付けられた複数の第１のノードおよび前記複数の第１のノードと異なる第２のノードを含む複数のノードと、それぞれウェイトをもつ前記複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を取得し、
前記第１のノード情報に基づいて、前記複数の第１のノードのうち２以上の第１のノードを含むノードグループを抽出し、前記ノードグループを統合ノードに変換し、
変換により前記統合ノードと前記第２のノードとの間に生じた２以上のエッジを、前記２以上のエッジの前記ウェイトに応じた統合ウェイトをもつ統合エッジに変換し、
前記統合ノードと前記統合エッジとを含む変換後グラフを示す変換後グラフ情報に基づいて、前記第２のノードに対応付ける第２のノード情報を推定する、
処理を実行させるノード情報推定プログラム。
【請求項７】
コンピュータに、
それぞれ第１のノード情報が対応付けられた複数の第１のノードおよび前記複数の第１のノードと異なる第２のノードを含む複数のノードと、前記複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を取得し、
前記グラフ情報に基づいて、前記複数の第１のノードのうち、前記第２のノードから他の第１のノードを経由せずに前記複数のエッジのうちの１以上のエッジを介して到達可能な第１のノードを判定し、前記第２のノードを含んでおり前記到達可能な第１のノードを境界とする部分グラフを前記グラフから抽出し、
前記部分グラフを示す部分グラフ情報に基づいて、前記到達可能な第１のノードの前記第１のノード情報から、前記第２のノードに対応付ける第２のノード情報を推定する、
処理を実行させるノード情報推定プログラム。
【請求項８】
それぞれ第１のノード情報が対応付けられた複数の第１のノードおよび前記複数の第１のノードと異なる第２のノードを含む複数のノードと、それぞれウェイトをもつ前記複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を記憶する記憶部と、
前記第１のノード情報に基づいて、前記複数の第１のノードのうち２以上の第１のノードを含むノードグループを抽出し、前記ノードグループを統合ノードに変換し、変換により前記統合ノードと前記第２のノードとの間に生じた２以上のエッジを、前記２以上のエッジの前記ウェイトに応じた統合ウェイトをもつ統合エッジに変換し、前記統合ノードと前記統合エッジとを含む変換後グラフを示す変換後グラフ情報に基づいて、前記第２のノードに対応付ける第２のノード情報を推定する処理部と、
を有する情報処理装置。
【請求項９】
それぞれ第１のノード情報が対応付けられた複数の第１のノードおよび前記複数の第１のノードと異なる第２のノードを含む複数のノードと、前記複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を記憶する記憶部と、
前記グラフ情報に基づいて、前記複数の第１のノードのうち、前記第２のノードから他の第１のノードを経由せずに前記複数のエッジのうちの１以上のエッジを介して到達可能な第１のノードを判定し、前記第２のノードを含んでおり前記到達可能な第１のノードを境界とする部分グラフを前記グラフから抽出し、前記部分グラフを示す部分グラフ情報に基づいて、前記到達可能な第１のノードの前記第１のノード情報から、前記第２のノードに対応付ける第２のノード情報を推定する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はノード情報推定方法、ノード情報推定プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
多数のノードとそれらノードを接続するエッジとを含む大規模グラフを生成し、生成した大規模グラフを用いて様々な分析を行うことがある。グラフ分析の１つとして、一部のノードに分類ラベルなどのノード情報が付与されており他のノードにノード情報が付与されていないグラフから、未知のノード情報を推定するものがある。このようなグラフ分析では、エッジに付与された重み（ウェイト）に従って、一部のノードがもつノード情報をノード間で確率的に伝搬させて、他のノードのノード情報を計算する。例えば、企業などの実体的存在（エンティティ）をノードで表現し、エンティティ間の関係の強さをウェイト付きエッジで表現し、一部のエンティティについての既知情報から、他のエンティティについての未知情報を推定することがある。
【０００３】
なお、一部のノードがもつノード情報を教師情報とみなして、ノード情報が付与されたノードとノード情報が付与されていないノードとが混在したグラフに対して半教師あり機械学習を行うものがある。また、ラベル付けされたサンプルデータおよびラベル付けされていないサンプルデータを複数のクラスタに分類する技術が提案されている。また、ノード間のエッジに基づいて一部のノードの識別情報を他のノードに伝搬させ、伝搬した識別情報に基づいて複数のノードをクラスタリングする技術が提案されている。また、言語ラベルが付与された投稿記事と言語ラベルが付与されていない投稿記事の関係から、後者の投稿記事の言語を推定する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−５９７５４号公報
【特許文献２】国際公開第２０１４／１１３２８１号
【特許文献３】特開２０１５−１１５０６６号公報
【特許文献４】特開２０１６−１８１２５２号公報
【非特許文献】
【０００５】
【非特許文献１】Xiaojin Zhu, Zoubin Ghahramani and John Lafferty, "Semi-Supervised Learning Using Gaussian Fields and Harmonic Functions", Proceedings of the 20th International Conference on Machine Learning, pp. 912-919, 2003-08-21
【発明の概要】
【発明が解決しようとする課題】
【０００６】
未知のノード情報を推定するグラフ分析では、エッジ間で既知のノード情報を伝搬するため、複数のノードがエッジで一繋がりになった連結部分グラフ（連結成分）単位で計算を行うことができる。しかし、グラフの中にノード数の多い巨大な連結部分グラフが存在すると、計算量が大きくなりグラフ分析に長時間を要するという問題がある。
【０００７】
複雑なグラフを簡略化するグラフ簡略化技術として、ウェイトの小さいエッジがグラフから間引かれたｋ近傍グラフに変換するｋ近傍化法もある。しかし、このような一般的なグラフ簡略化技術では、必ずしも巨大な連結部分グラフが規模の小さい非連結な部分グラフに細分化されるとは限らず、計算量が十分に小さくなるとは限らない。
【０００８】
１つの側面では、本発明は、グラフ分析におけるノード情報の推定の計算量を削減できるノード情報推定方法、ノード情報推定プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、コンピュータが実行するノード情報推定方法が提供される。それぞれ第１のノード情報が対応付けられた複数の第１のノードおよび複数の第１のノードと異なる第２のノードを含む複数のノードと、それぞれウェイトをもつ複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を取得する。第１のノード情報に基づいて、複数の第１のノードのうち２以上の第１のノードを含むノードグループを抽出し、ノードグループを統合ノードに変換する。変換により統合ノードと第２のノードとの間に生じた２以上のエッジを、２以上のエッジのウェイトに応じた統合ウェイトをもつ統合エッジに変換する。統合ノードと統合エッジとを含む変換後グラフを示す変換後グラフ情報に基づいて、第２のノードに対応付ける第２のノード情報を推定する。
【００１０】
また、１つの態様では、コンピュータが実行するノード情報推定方法が提供される。それぞれ第１のノード情報が対応付けられた複数の第１のノードおよび複数の第１のノードと異なる第２のノードを含む複数のノードと、複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を取得する。グラフ情報に基づいて、複数の第１のノードのうち、第２のノードから他の第１のノードを経由せずに複数のエッジのうちの１以上のエッジを介して到達可能な第１のノードを判定し、第２のノードを含んでおり到達可能な第１のノードを境界とする部分グラフをグラフから抽出する。部分グラフを示す部分グラフ情報に基づいて、到達可能な第１のノードの第１のノード情報から、第２のノードに対応付ける第２のノード情報を推定する。
【００１１】
また、１つの態様では、コンピュータに実行させるノード情報推定プログラムが提供される。また、１つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【００１２】
１つの側面では、グラフ分析におけるノード情報の推定の計算量を削減できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の情報処理装置の例を説明する図である。
【図２】第２の実施の形態の情報処理装置の例を説明する図である。
【図３】第３の実施の形態の分析装置のハードウェア例を示すブロック図である。
【図４】第３の実施の形態のグラフ例を示す図である。
【図５】第３の実施の形態のグラフ縮約例を示す図である。
【図６】第３の実施の形態の分析装置の機能例を示すブロック図である。
【図７】第３の実施の形態のグラフ情報の例を示す図である。
【図８】第３の実施の形態の縮約グラフ情報の例を示す図である。
【図９】第３の実施の形態のグラフ縮約の手順例を示すフローチャートである。
【図１０】第３の実施の形態のスコア推定の手順例を示すフローチャートである。
【図１１】第４の実施の形態のグラフ例を示す図である。
【図１２】第４の実施の形態のグラフ分割例を示す図である。
【図１３】第４の実施の形態の分析装置の機能例を示すブロック図である。
【図１４】第４の実施の形態のグラフ情報の例を示す図である。
【図１５】第４の実施の形態の分割グラフ情報の例を示す図である。
【図１６】第４の実施の形態のスコア推定要求画面の例を示す図である。
【図１７】第４の実施の形態のスコア推定結果画面の例を示す図である。
【図１８】第４の実施の形態のグラフ分割の手順例を示すフローチャートである。
【図１９】第４の実施の形態の全域木判定の手順例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１５】
図１は、第１の実施の形態の情報処理装置の例を説明する図である。
第１の実施の形態の情報処理装置１０は、複数のノードおよびノード間のエッジを含むグラフを分析する。情報処理装置１０をコンピュータと言うことがある。また、情報処理装置１０は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置１０が分析するグラフは、企業や人や装置などのエンティティをノードで表現し、エンティティ間の関係をエッジで表現した大規模グラフである。例えば、グラフとして、企業間の取引関係を表現した企業ネットワークが挙げられる。
【００１６】
情報処理装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性のストレージでもよい。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリ（記憶部１１でもよい）に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００１７】
記憶部１１は、グラフ情報１３を記憶する。グラフ情報１３が示すグラフは、複数のノードとそれら複数のノードの間の複数のエッジとを含む。複数のノードの中には、それぞれノード情報が対応付けられた複数の第１のノードと、それら複数の第１のノードと異なる第２のノードとが含まれる。第２のノードにはノード情報が対応付けられていなくてよい。ノード情報は、例えば、ノードが示すエンティティの評価を表す数値である。ノード情報として使用可能な数値は、比較的少数の離散的な数値の集合であることが好ましい。複数のエッジはそれぞれウェイト（重み）をもっている。ウェイトは、例えば、大きいほどエッジに接続された２つのノードの関係が強いことを表す数値である。
【００１８】
一例として、グラフ情報１３が示すグラフは、ノード１３ａ，１３ｂ，１３ｃ，１３ｄおよびエッジ１３ｅ，１３ｆ，１３ｇを含む。ノード１３ａは、ノード情報が対応付けられていない第２のノードである。ノード１３ｂ，１３ｃ，１３ｄは、ノード情報が対応付けられた第１のノードである。ノード１３ｂのノード情報は「８」である。ノード１３ｃのノード情報は「８」である。ノード１３ｄのノード情報は「６」である。エッジ１３ｅは、ノード１３ａとノード１３ｂを接続し、ウェイトｗ１２をもつ。エッジ１３ｆは、ノード１３ａとノード１３ｃを接続し、ウェイトｗ１３をもつ。エッジ１３ｇは、ノード１３ａとノード１３ｄを接続し、ウェイトｗ１４をもつ。
【００１９】
処理部１２は、グラフ情報１３から、簡略化された変換後グラフを示す変換後グラフ情報１４を生成する。変換後グラフ情報１４は、例えば、記憶部１１に格納される。
具体的には、処理部１２は、複数の第１のノードに対応付けられたノード情報に基づいて、それら複数の第１のノードのうち２以上の第１のノードを含むノードグループを抽出する。ノードグループに属する第１のノードは、例えば、グラフに含まれる第１のノードの一部である。処理部１２は、同じノード情報が対応付けられた２以上の第１のノードを抽出するようにしてもよい。また、処理部１２は、類似するノード情報が対応付けられた２以上の第１のノードを抽出するようにしてもよい。ノード情報が異なっていても、異なるノード情報の間で算出される類似度が閾値を超えている場合、類似すると判断される。
【００２０】
処理部１２は、ノードグループを単一の統合ノードに変換する。統合ノードに対して、処理部１２は、変換前の第１のノードに対応付けられていたノード情報に応じて決定されるノード情報を対応付けるようにしてもよい。例えば、ノードグループが、同じノード情報が対応付けられた第１のノードの集合である場合、処理部１２は、統合ノードに対して当該同じノード情報を対応付けるようにしてもよい。また、ノードグループが、類似するノード情報が対応付けられた第１のノードの集合である場合、処理部１２は、統合ノードに対してノードグループのノード情報の平均を対応付けるようにしてもよい。
【００２１】
一例として、ノード１３ｂとノード１３ｃには同じノード情報「８」が対応付けられている。そこで、処理部１２は、ノード１３ｂ，１３ｃを抽出し、ノード１３ｂ，１３ｃを単一の統合ノード１４ａに変換する。そして、処理部１２は、統合ノード１４ａに対して、変換前のノード１３ｂ，１３ｃと同じノード情報「８」を対応付ける。
【００２２】
ここで、ノードグループを単一の統合ノードに変換した段階では、ノード間のエッジは維持される。第２のノードがノードグループに属する異なる第１のノードとエッジで接続されていた場合、統合ノードへの変換に伴って、統合ノードと第２のノードとの間に２以上のエッジ（多重エッジ）が生じることになる。そこで、処理部１２は、統合ノードと第２のノードとの間にある２以上のエッジを、単一の統合エッジに変換する。統合エッジは、それら２以上のエッジのウェイトに応じた統合ウェイトをもつようにする。例えば、統合ウェイトは、２以上のエッジのウェイトの合計とする。
【００２３】
一例として、ノード１３ｂ，１３ｃを統合ノード１４ａに変換すると、ノード１３ａと統合ノード１４ａの間にエッジ１３ｅ，１３ｆの多重エッジが存在することになる。そこで、処理部１２は、エッジ１３ｅ，１３ｆを単一の統合エッジ１４ｂに変換する。このとき、処理部１２は、統合エッジ１４ｂのウェイトを、エッジ１３ｅのウェイトｗ１２とエッジ１３ｆのウェイトｗ１３とを合計したウェイトｗ１２＋ｗ１３に設定する。
【００２４】
そして、処理部１２は、統合ノードと統合エッジとを含む変換後グラフを示す変換後グラフ情報１４を生成し、変換後グラフ情報１４に基づいて、第２のノードに対応付けるノード情報を推定する。例えば、処理部１２は、統合ノードに対応付けられたノード情報と統合エッジのウェイトとを用いて、第２のノードのノード情報を算出する。
【００２５】
一例として、変換後グラフ情報１４が示す変換後グラフは、ノード１３ａ，１３ｄ、統合ノード１４ａ、エッジ１３ｇおよび統合エッジ１４ｂを含む。ノード１３ａのノード情報は未知である。ノード１３ｄのノード情報は「６」である。統合ノード１４ａのノード情報は「８」である。エッジ１３ｇは、ノード１３ａとノード１３ｄを接続し、ウェイトｗ１４をもつ。エッジ１４ｂは、ノード１３ａと統合ノード１４ａを接続し、ウェイトｗ１２＋ｗ１３をもつ。処理部１２は、ノード１３ａのノード情報を、既知のノード情報の伝搬により推定する。例えば、処理部１２は、ノード１３ｄのノード情報「６」およびエッジ１３ｇのウェイトｗ１４による伝搬と、統合ノード１４ａのノード情報「８」および統合エッジ１４ｂのウェイトｗ１２＋ｗ１３による伝搬とを考慮し、推定処理を行う。
【００２６】
第１の実施の形態の情報処理装置１０によれば、グラフ情報１３が示すグラフから、既知のノード情報に基づいてノードグループが抽出され、ノードグループが統合ノードに変換される。統合ノードと他のノードとの間に多重エッジが生じた場合、多重エッジが、多重エッジのウェイトに応じた統合ウェイトをもつ統合エッジに変換される。そして、変換後グラフを示す変換後グラフ情報１４に基づいて、未知のノード情報が推定される。
【００２７】
これにより、ノード情報の推定に使用するグラフのノード数を削減することができ、計算量を削減することができる。よって、ノード情報の推定を高速化できる。また、ノード数の削減は、既知のノード情報に応じてグループ化したノードを単一ノードに統合することによって行われると共に、ノード数の削減に伴って生じた多重エッジは、元のウェイトに応じた統合ウェイトをもつ単一エッジに統合される。よって、グラフ変換に伴う推定結果への影響を軽減することができ、推定精度の低下を抑制できる。
【００２８】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理装置の例を説明する図である。
第２の実施の形態の情報処理装置２０は、第１の実施の形態と同様に、複数のノードおよびノード間のエッジを含むグラフを分析する。情報処理装置２０をコンピュータと言うことがある。情報処理装置２０は、クライアント装置でもよいしサーバ装置でもよい。
【００２９】
情報処理装置２０は、記憶部２１および処理部２２を有する。記憶部２１は、ＲＡＭなどの揮発性の半導体メモリでもよいし、ＨＤＤやフラッシュメモリなどの不揮発性のストレージでもよい。処理部２２は、例えば、ＣＰＵ、ＧＰＵ、ＤＳＰなどのプロセッサである。ただし、処理部２２は、ＡＳＩＣやＦＰＧＡなどの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリに記憶されたプログラムを実行する。
【００３０】
記憶部２１は、グラフ情報２３を記憶する。グラフ情報２３が示すグラフは、複数のノードとノード間の複数のエッジとを含む。複数のノードの中には、それぞれノード情報が対応付けられた複数の第１のノードと、それら複数の第１のノードと異なる第２のノードとが含まれる。第２のノードにはノード情報が対応付けられていなくてよい。
【００３１】
一例として、グラフ情報２３が示すグラフは、ノード２３ａ，２３ｂ，２３ｃ，２３ｄ，２３ｅおよびエッジ２３ｆ，２３ｇ，２３ｈ，２３ｉを含む。ノード２３ａは、ノード情報が対応付けられていない第２のノードである。ノード２３ｂ，２３ｃ，２３ｄは、ノード情報が対応付けられた第１のノードである。ノード２３ｅは、ノード情報が対応付けられていないノードである。ノード２３ｂのノード情報は「８」である。ノード２３ｃのノード情報は「７」である。ノード２３ｄのノード情報は「６」である。エッジ２３ｆは、ノード２３ａとノード２３ｂを接続する。エッジ２３ｇは、ノード２３ａとノード２３ｃを接続する。エッジ２３ｈは、ノード２３ｃとノード２３ｄを接続する。エッジ２３ｉは、ノード２３ｄとノード２３ｅを接続する。
【００３２】
処理部２２は、グラフ情報２３から、部分グラフを示す部分グラフ情報２４を生成する。部分グラフ情報２４は、例えば、記憶部２１に格納される。
具体的には、処理部２２は、グラフ情報２３に基づいて、複数の第１のノードのうち第２のノードから到達可能な第１のノードを判定する。ここで言う到達可能な第１のノードは、複数のエッジのうちの１以上のエッジを介して到達可能であって、かつ、他の第１のノードを経由せずに到達可能な第１のノードである。ある第１のノードに第２のノードから至る経路として、他の第１のノードを経由しない経路が存在しない場合には、当該第１のノードは第２のノードから到達不能であるとみなされる。到達可能な第１のノードは２以上検出されることもある。処理部２２は、第２のノードを含んでおり、到達可能な第１のノードを境界とする部分グラフを、グラフ情報２３が示すグラフから抽出する。
【００３３】
処理部２２は、抽出した部分グラフを示す部分グラフ情報２４を生成する。部分グラフ情報２４が示す部分グラフは、グラフ情報２３が示すグラフに含まれるノードおよびエッジのうちの一部のノードおよびエッジを含む。抽出する部分グラフとグラフの他の部分とを分ける分割点として、「到達可能な第１のノード」が使用される。
【００３４】
一例として、ノード２３ａからは、エッジ２３ｆを介してノード２３ｂに到達可能であり、エッジ２３ｇを介してノード２３ｃに到達可能である。これに対して、ノード２３ａとノード２３ｄとの間には、ノード２３ｃを迂回する経路が存在しないため、ノード２３ａからノード２３ｄには到達不能である。また、ノード２３ａとノード２３ｅとの間には、ノード２３ｃ，２３ｄを迂回する経路が存在しないため、ノード２３ａからノード２３ｅには到達不能である。そこで、処理部２２は、ノード２３ａから到達可能なノード２３ｂ，２３ｃを境界として、グラフから部分グラフを抽出する。これにより、ノード２３ａ，２３ｂ，２３ｃおよびエッジ２３ｆ，２３ｇを含む部分グラフが抽出される。
【００３５】
そして、処理部２２は、部分グラフ情報２４に基づいて、到達可能な第１のノードのノード情報から、第２のノードに対応付けるノード情報を推定する。このとき、処理部２２は、部分グラフ情報２４が示す部分グラフの外側のノードやエッジを考慮しなくてよい。
【００３６】
一例として、処理部２２は、ノード２３ａのノード情報を、部分グラフ内の既知のノード情報の伝搬により推定する。例えば、処理部２２は、ノード２３ｂのノード情報「８」およびエッジ２３ｆのウェイトによる伝搬と、ノード２３ｃのノード情報「７」およびエッジ２３ｇのウェイトによる伝搬とを考慮し、推定処理を行う。このとき、処理部２２は、ノード２３ｄ，２３ｅやエッジ２３ｈ，２３ｉを考慮しなくてよい。ノード２３ａのノード情報の推定は、ノード２３ｅのノード情報の推定と独立に実行できる。
【００３７】
第２の実施の形態の情報処理装置２０によれば、グラフ情報２３に基づいて、既知のノード情報をもつノードのうち、ノード情報が未知のノードから既知のノード情報をもつ他のノードを経由せずに到達可能なノードが判定される。グラフから、判定された到達可能なノードを境界として部分グラフが抽出される。そして、抽出された部分グラフを示す部分グラフ情報２４に基づいて、未知のノード情報が推定される。
【００３８】
これにより、ノード情報の推定に使用するグラフの規模を削減することができ、計算量を削減することができる。よって、ノード情報の推定を高速化できる。また、ノード間のノード情報の伝搬では、あるノードのノード情報が、既知のノード情報をもつ他のノードを超えて伝搬することを考慮しなくてよい。そのため、「到達可能なノード」を境界としてグラフを分割しても、推定結果への影響を軽減でき推定精度の低下を抑制できる。
【００３９】
［第３の実施の形態］
次に、第３の実施の形態を説明する。
図３は、第３の実施の形態の分析装置のハードウェア例を示すブロック図である。
【００４０】
第３の実施の形態の分析装置１００は、企業間の関係を表すグラフである企業ネットワークを分析する。分析装置１００は、企業ネットワークと一部の企業の投資格付け情報とを用いて、他の企業の投資格付けを推定する。分析装置１００を、情報処理装置やコンピュータと言うことがある。分析装置１００は、クライアント装置でもよいしサーバ装置でもよい。分析装置１００は、第１の実施の形態の情報処理装置１０に対応する。
【００４１】
分析装置１００は、バスに接続されたＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像インタフェース１０４、入力インタフェース１０５、媒体リーダ１０６および通信インタフェース１０７を有する。ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。
【００４２】
ＣＰＵ１０１は、プログラムの命令を実行する演算回路を含むプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、分析装置１００は複数のプロセッサを備えてもよく、以下の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００４３】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、分析装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００４４】
ＨＤＤ１０３は、ＯＳ（Operating System）やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、分析装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の不揮発性ストレージを備えてもよく、複数の種類の不揮発性ストレージを備えてもよい。
【００４５】
画像インタフェース１０４は、ＣＰＵ１０１からの命令に従って、分析装置１００に接続された表示装置１１１に画像を出力する。表示装置１１１として、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイ、プロジェクタなど、任意の種類の表示装置を用いることができる。
【００４６】
入力インタフェース１０５は、分析装置１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを用いることができる。また、分析装置１００に複数の種類の入力デバイスが接続されてもよい。
【００４７】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００４８】
媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００４９】
通信インタフェース１０７は、ネットワーク１１４を介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース１０７は、スイッチやルータなどの有線通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局やアクセスポイントと無線リンクで接続される無線通信インタフェースでもよい。
【００５０】
次に、分析装置１００が分析する企業ネットワークについて説明する。
図４は、第３の実施の形態のグラフ例を示す図である。
グラフ１３０は、企業を表すノードと、企業間の関係の強さを表すウェイトが付されたエッジとを含む企業ネットワークである。ウェイトは非負実数である。ウェイトが大きいほどエッジ両端の企業の関係が強いことを表し、ウェイトが小さいほどエッジ両端の企業の関係が弱いことを表す。ウェイトには対称性がありエッジは方向をもたないため、グラフ１３０は無向グラフである。２つのノードを直接に接続するエッジがない場合、それら２つのノードの間にはウェイト０のエッジが存在するとみなすこともできる。ウェイトは類似度を表していると言うこともできる。エッジに対して原始的に距離が与えられる場合、距離からウェイトが計算される。距離が小さいほどエッジ両端の企業の関係が強いことを表し、距離が大きいほどエッジ両端の企業の関係が弱いことを表す。
【００５１】
グラフ１３０に含まれるノードのうちの一部のノードに対してスコアが与えられている。スコアは、企業の投資格付けを示すノード情報である。投資格付けは、格付け機関によって判定される企業の信用リスク（デフォルトリスク）を表す指標である。投資格付けは、投資家が投資先の企業を選択する際の判断材料として利用されることがある。スコアが高いほど企業の信用が高く信用リスクが低いことを表し、スコアが低いほど企業の信用が低く信用リスクが高いことを表す。一般に投資格付けはアルファベットで表現されることが多いのに対し、ノードに付されるスコアは非負実数である。格付けＡＡＡはスコア１０、格付けＡＡはスコア９、格付けＡはスコア８、格付けＢＢはスコア７、格付けＢはスコア６、格付けＣはスコア５に対応する。よって、第３の実施の形態で使用されるスコアの候補の集合は、離散的で少数の非負実数の集合である。
【００５２】
投資格付けは格付け機関によって手作業で判定されるものであるため、高コストな情報であり、全ての企業について投資格付け情報を入手できるわけではない。そのため、グラフ１３０には、既知スコアが付されたノード（スコア既知ノード）と既知スコアが付されていないノード（スコア未知ノード）とが混在している。そこで、第３の実施の形態の分析装置１００は、スコア既知ノードに付された既知スコアとノード間のウェイトとに基づいて、スコア未知ノードに対応する未知スコアを推定する。
【００５３】
一例として、グラフ１３０は、ノード１３１〜１３９（ノード＃１〜＃９）の９個のノードを含む。ノード１３１，１３２，１３３のスコアは未知である。ノード１３４，１３７，１３９のスコアは７（格付けＢＢ）である。ノード１３５，１３６，１３８のスコアは１０（格付けＡＡＡ）である。ノード１３１は、ノード１３２との間にウェイトｗ１２のエッジをもち、ノード１３４との間にウェイトｗ１４のエッジをもち、ノード１３５との間にウェイトｗ１５のエッジをもち、ノード１３７との間にウェイトｗ１７のエッジをもつ。ノード１３２は、ノード１３５との間にウェイトｗ２５のエッジをもち、ノード１３８との間にウェイトｗ２８のエッジをもつ。ノード１３３は、ノード１３８との間にウェイトｗ３８のエッジをもち、ノード１３９との間にウェイトｗ３９のエッジをもつ。ノード１３４は、ノード１３６との間にウェイトｗ４６のエッジをもつ。ノード１３７は、ノード１３８との間にウェイトｗ７８のエッジをもつ。
【００５４】
ここで、ノード間のスコア伝搬により未知スコアを推定する方法について説明する。このような未知スコアの推定方法は、半教師学習の一種とみなすことができる。
分析対象のグラフＧに対して、数式（１）のノード集合Ｖが定義される。ノード集合Ｖは、スコア既知ノード集合ＶＬとスコア未知ノード集合ＶＵの集合和であり、ｎ＝ｌ＋ｕ個のノードを含む。スコア既知ノード集合ＶＬは、既知スコアが与えられたｌ個のスコア既知ノードｖ１，…，ｖｌを含む。スコア未知ノード集合ＶＵは、既知スコアが与えられていないｕ個のスコア未知ノードｖｌ＋１，…，ｖｌ＋ｕを含む。
【００５５】
【数１】
2020140452.tif 000003
【００５６】
数式（２）のスコアベクトルΦは、ノード集合Ｖに対応させてスコアを列挙した列ベクトルである。スコアベクトルΦは、既知スコアベクトルΦＬと未知スコアベクトルΦＵを結合したものである。既知スコアベクトルΦＬは、スコア既知ノード集合ＶＬに対応するｌ個のスコアφ１，…，φｌを含む列ベクトルである。これらｌ個のスコアは、予め与えられる既知スコアであり定数である。未知スコアベクトルΦＵは、スコア未知ノード集合ＶＵに対応するｕ個のスコアφｌ＋１，…，φｌ＋ｕを含む列ベクトルである。これらｕ個のスコアは、グラフ分析の開始時に初期値が与えられグラフ分析中に更新される変数である。スコアφｌ＋１，…，φｌ＋ｕの初期値は、例えば、０とする。
【００５７】
【数２】
2020140452.tif 000004
【００５８】
未知スコアの推定は、数式（３）に示すエネルギー関数Ｅ（Φ）の値を最小化するスコアベクトルΦを求めることと定義できる。ただし、スコアベクトルΦに含まれるスコアのうち既知スコアベクトルΦＬのスコアは不変であることが制約条件である。エネルギー関数Ｅ（Φ）は、エッジで接続された２つのノードのスコア差の二乗を、そのエッジのウェイトで重み付けして合算する関数である。エネルギー関数Ｅ（Φ）の値の最小化は、ウェイトの大きいエッジで接続されたノードのスコア差が小さくなり、ウェイトの小さいエッジで接続されているかエッジで接続されていないノードのスコア差が大きくなるように、未知スコアを算出することを意味する。
【００５９】
【数３】
2020140452.tif 000005
【００６０】
数式（３）に含まれるグラフラプラシアンΔは、隣接行列Ｗと次数行列Ｄを用いて数式（４）のように定義される行列である。隣接行列Ｗは、ノード間のエッジのウェイトを示すｎ行ｎ列の正方行列である。隣接行列Ｗのｉ行目およびｉ列目は、ノードｖ１，…，ｖｌ，ｖｌ＋１，…，ｖｌ＋ｕのうちのｉ番目のノードｖｉに対応する。ノードｖｉとノードｖｊとを直接接続するエッジが存在し、そのエッジがウェイトｗｉｊをもつ場合、隣接行列Ｗのｉ行ｊ列の要素はｗｉｊになる。ノードｖｉとノードｖｊとを直接接続するエッジが存在しない場合、隣接行列Ｗのｉ行ｊ列の要素は０になる。隣接行列Ｗは対称行列である。よって、分析装置１００は、隣接行列Ｗの上三角部分行列のみ保持するようにしてもよい。
【００６１】
次数行列Ｄは、ノードｖ１，…，ｖｌ，ｖｌ＋１，…，ｖｌ＋ｕそれぞれについて、接続されたエッジのウェイトを合算した対角行列である。次数行列Ｄのｉ行ｉ列の要素は、ノードｖｉに接続されたエッジのウェイトの合計である。次数行列Ｄの非対角要素は０である。次数行列Ｄは、隣接行列Ｗの要素を行毎に対角要素に集約したものであると言える。グラフラプラシアンΔは、次数行列Ｄと隣接行列Ｗの差である。
【００６２】
【数４】
2020140452.tif 000006
【００６３】
各エッジに対しては、値が小さいほどノード間の結合度が強く、値が大きいほどノード間の結合度が弱いことを示す「距離」が、ユーザにより与えられていることもある。その場合、例えば、数式（５）に示すように、ガウスカーネル関数を用いて距離をウェイトに変換することができる。ウェイトは、値が大きいほどノード間の結合度が強く、値が小さいほどノード間の結合度が弱いことを示す。数式（５）に含まれるｄ（ｖｉ，ｖｊ）は、ノードｖｉとノードｖｊの間のエッジに与えられた距離である。数式（５）に含まれるσ２は、グラフＧに含まれる距離の分散である。
【００６４】
【数５】
2020140452.tif 000007
【００６５】
グラフラプラシアンΔは、実対称行列かつ半正定値行列である。このため、エネルギー関数Ｅ（Φ）の値を最小化する最適化問題は、線形等式制約のみをもつ凸二次計画問題であり、大域的な最適解が存在する。エネルギー関数Ｅ（Φ）は、ΔΦ＝０のラプラス方程式を満たす調和関数になる。具体的には、スコア未知ノードｖｉの未知スコアφｉについて数式（６）が成立する。未知スコアφｉは、スコア未知ノードｖｉとエッジで接続された周辺のノードｖｊがもつスコアφｊの重み付き平均である。ただし、周辺ノードにはスコア未知ノードも含まれ得ることから、直接的には未知スコアφｉは確定しない。
【００６６】
【数６】
2020140452.tif 000008
【００６７】
次に、未知スコアを手続的に求めるアルゴリズムとして、ランダムウォークに基づく吸収マルコフ連鎖について説明する。スコア伝搬の吸収マルコフ過程では、あるスコア未知ノードから開始して、トークンがウェイトに応じた確率でランダムに他のノードに移動する。移動先のノードがスコア未知ノードである場合、トークンは更にランダムに他のノードに遷移する。一方、移動先のノードがスコア既知ノードである場合、当該スコア既知ノードの既知スコアが獲得され、トークンは当該スコア既知ノードに吸収されて消滅する。多数のトークンを同一のスコア未知ノードから出発させてランダムウォークを実行させると、それら多数のトークンが獲得する既知スコアの期待値が得られる。その期待値が、出発点のスコア未知ノードの未知スコアとして推定される。
【００６８】
このような吸収マルコフ連鎖は、スコアベクトルΦの初期値に対して所定の行列を反復的に乗算する行列演算として表現することができる。数式（７）に示すように、ある時刻ｔのスコアベクトルΦ（ｔ）は、推移確率行列Ｐを時刻ｔ−１のスコアベクトルΦ（ｔ−１）に乗算したものである。推移確率行列Ｐは、ノード間の推移確率を示すｎ行ｎ列の正方行列である。推移確率行列Ｐのｉ行目およびｉ列目は、スコアベクトルΦのｉ行目、すなわち、ノードｖ１，…，ｖｌ，ｖｌ＋１，…，ｖｌ＋ｕのうちのｉ番目のノードｖｉに対応する。
【００６９】
【数７】
2020140452.tif 000009
【００７０】
数式（８）に示すように、推移確率行列Ｐのｉ行ｊ列の要素は、ノードｖｉからノードｖｊへの推移確率ｐｉｊである。スコアベクトルΦは、既知スコアベクトルΦＬを上側に配置し、未知スコアベクトルΦＵを下側に配置している。よって、推移確率行列Ｐは、左上の部分行列ＰＬＬ、右上の部分行列ＰＬＵ、左下の部分行列ＰＵＬおよび右下の部分行列ＰＵＵに分割できる。部分行列ＰＬＬは、スコア既知ノードからスコア既知ノードへの遷移確率を示す。部分行列ＰＬＵは、スコア既知ノードからスコア未知ノードへの遷移確率を示す。部分行列ＰＵＬは、スコア未知ノードからスコア既知ノードへの遷移確率を示す。部分行列ＰＵＵは、スコア未知ノードからスコア未知ノードへの遷移確率を示す。
【００７１】
吸収マルコフ過程では、トークンはスコア既知ノードに到達すると、それ以降は他のスコア既知ノードやスコア未知ノードに遷移せず、当該スコア既知ノードに留まる。よって、部分行列ＰＬＬは、対角要素が１で非対角要素が０の単位行列Ｉに置換可能である。また、部分行列ＰＬＵは、全ての要素が０の零行列Ｏに置換可能である。そのため、推移確率行列Ｐは、左上が単位行列Ｉ、右上が零行列Ｏ、左下が部分行列ＰＵＬ、右下が部分行列ＰＵＵである行列に簡略化される。なお、単位行列Ｉはｌ行ｌ列、零行列Ｏはｌ行ｕ列、部分行列ＰＵＬはｕ行ｌ列、部分行列ＰＵＵはｕ行ｕ列の大きさである。簡略化前の推移確率行列Ｐは、数式（９）のように、次数行列の逆行列Ｄ−１と隣接行列Ｗの積である。
【００７２】
【数８】
2020140452.tif 000010
【００７３】
【数９】
2020140452.tif 000011
【００７４】
簡略化した推移確率行列Ｐを用いた反復行列演算では、時刻ｔのスコアベクトルΦ（ｔ）のうち既知スコアベクトルΦＬ（ｔ）の部分は、数式（１０）に示すように、時刻０の既知スコアベクトルΦＬ（０）から変化しない。すなわち、時刻ｔの既知スコアベクトルΦＬ（ｔ）は、スコア伝搬の前に与えられる既知スコアベクトルΦＬと一致する。一方、時刻ｔのスコアベクトルΦ（ｔ）のうち未知スコアベクトルΦＵ（ｔ）の部分は、数式（１１）のように計算される。数式（１１）に含まれる時刻０の未知スコアベクトルΦＵ（０）は、スコア伝搬の開始時に設定される適当な初期値であり、零ベクトルでもよい。
【００７５】
【数１０】
2020140452.tif 000012
【００７６】
【数１１】
2020140452.tif 000013
【００７７】
よって、未知スコアベクトルΦＵの推定値は、数式（１２）のように、時刻ｔのスコアベクトルΦ（ｔ）の極限として定義することができる。なお、数式（１２）において、Ｉ−ＰＵＵの逆行列は存在する。よって、数式（１１）に基づいて反復演算により推定値を求めることもできるし、数式（１２）に基づいて推定値を求めることもできる。
【００７８】
【数１２】
2020140452.tif 000014
【００７９】
しかし、スコア伝搬により未知スコアを求める計算量が問題となる。数式（１２）において、Ｉ−ＰＵＵの逆行列を求める計算量はｕ３のオーダーである。その逆行列に部分行列ＰＵＬを乗算する計算量はｕ２×ｌのオーダーである。部分行列ＰＵＬを乗算した結果に既知スコアベクトルΦＬを乗算する計算量はｕ×ｌのオーダーである。
【００８０】
そこで、第３の実施の形態では、グラフを縮約して未知スコア推定の計算量を削減する。吸収マルコフ連鎖では、トークンが到達したスコア既知ノードの既知スコアが同一であれば、到達したスコア既知ノードの違いは推定結果に影響しない。一方で、第３の実施の形態のスコアは投資格付けを示す少数種類の離散的な数値である。よって、グラフに含まれる複数のスコア既知ノードを既知スコアに基づいてグループ化し、同一グループに属するスコア既知ノードを単一の仮想ノードで代表させることとする。スコア既知ノードのノード数ｌを削減することで、数式（１２）において部分行列ＰＵＬを乗算する計算量と既知スコアベクトルΦＬを乗算する計算量を削減することができる。
【００８１】
図５は、第３の実施の形態のグラフ縮約例を示す図である。
縮約グラフ１４０は、前述のグラフ１３０から変換されたものである。縮約グラフ１４０は、ノード１４１〜１４５を含む。ノード１４１，１４２，１４３はスコア未知ノードであり、グラフ１３０のノード１３１，１３２，１３３に対応する。ノード１４４，１４５はスコア既知ノードである。ノード１４４のスコアは７（格付けＢＢ）である。ノード１４５のスコアは１０（格付けＡＡＡ）である。
【００８２】
グラフ１３０を縮約グラフ１４０に変換するにあたり、分析装置１００は、同一のスコアであるスコア＝７をもつノード１３４，１３７，１３９をグループ化し、ノード１３４，１３７，１３９を単一のノード１４４に置換する。また、分析装置１００は、同一のスコアであるスコア＝１０をもつノード１３５，１３６，１３８をグループ化し、ノード１３５，１３６，１３８を単一のノード１４５に置換する。
【００８３】
スコア既知ノードを統合した段階では、ノード間のエッジは保存される。結果的に、２つのノードの間に２以上のエッジ（多重エッジ）が形成されることがある。ノード１４１は、ノード１４２との間にウェイトｗ１２のエッジをもち、ノード１４４との間にウェイトｗ１４のエッジとウェイトｗ１７のエッジをもち、ノード１４５との間にウェイトｗ１５のエッジをもつ。ノード１４２は、ノード１４５との間にウェイトｗ２５のエッジとウェイトｗ２８のエッジをもつ。ノード１４３は、ノード１４５との間にウェイトｗ３８のエッジをもち、ノード１４４との間にウェイトｗ３９のエッジをもつ。ノード１４４は、ノード１４５との間にウェイトｗ４６のエッジとウェイトｗ７８のエッジをもつ。
【００８４】
多重エッジが存在すると行列計算が複雑になる。一方で、エッジのウェイトを変更すると未知スコアの推定結果がグラフ縮約前と変わってしまう。そこで、未知スコアの推定結果が変わらないよう、ノードペア毎に多重エッジのウェイトを合算してエッジを統合することとする。また、スコア既知ノード間ではトークンの遷移は発生しない。そこで、スコア既知ノード間のエッジを削除することとする。
【００８５】
具体的には、分析装置１００は、ノード１４１に新ノードＩＤ＝＠１を付与し、ノード１４２に新ノードＩＤ＝＠２を付与し、ノード１４３に新ノードＩＤ＝＠３を付与する。また、分析装置１００は、ノード１４４に新ノードＩＤ＝＠４を付与し、ノード１４５に新ノードＩＤ＝＠５を付与する。分析装置１００は、ノード１４１とノード１４４の間の多重エッジを統合してウェイトｗ１４＋ｗ１７のエッジを形成し、ノード１４２とノード１４５の間の多重エッジを統合してウェイトｗ２５＋ｗ２８のエッジを形成する。また、分析装置１００は、ノード１４４とノード１４５の間のエッジを削除する。
【００８６】
この変換により、ノード１４１は、ノード１４２との間にウェイトｗ１２のエッジをもち、ノード１４４との間にウェイトｗ１４＋ｗ１７のエッジをもち、ノード１４５との間にウェイトｗ１５のエッジをもつ。ノード１４２は、ノード１４５との間にウェイトｗ２５＋ｗ２８のエッジをもつ。ノード１４３は、ノード１４５との間にウェイトｗ３８のエッジをもち、ノード１４４との間にウェイトｗ３９のエッジをもつ。
【００８７】
グラフ１３０から縮約グラフ１４０へのグラフ縮約により、ノード数は９個から５個に減少し、エッジ数は１０個から６個に減少する。グラフ１３０に代えて縮約グラフ１４０を用いることで、ノード１３１，１３２，１３３の未知スコアを求める計算量が削減される。また、グラフ１３０と縮約グラフ１４０とで未知スコアの推定結果は変わらない。
【００８８】
次に、分析装置１００の機能について説明する。
図６は、第３の実施の形態の分析装置の機能例を示すブロック図である。
分析装置１００は、グラフ記憶部１２１、グラフ縮約部１２２、縮約グラフ記憶部１２３、スコア推定部１２４および推定結果表示部１２５を有する。グラフ記憶部１２１および縮約グラフ記憶部１２３は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実現される。グラフ縮約部１２２、スコア推定部１２４および推定結果表示部１２５は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実現される。
【００８９】
グラフ記憶部１２１は、縮約前のグラフを示すグラフ情報を記憶する。グラフ情報はユーザにより予め作成される。グラフ情報は、グラフに含まれるノードを識別するノードＩＤと、ノード間のウェイトと、一部のノードに付与された既知スコアとを含む。
【００９０】
グラフ縮約部１２２は、グラフ記憶部１２１に記憶されたグラフ情報から、縮約グラフを示す縮約グラフ情報を生成して縮約グラフ記憶部１２３に格納する。縮約グラフは、同一の既知スコアをもつスコア既知ノードが統合され、ノード間の多重エッジが統合され、スコア既知ノード間のエッジが削除されたものである。縮約グラフ情報は、縮約グラフに含まれるノードを識別する新ノードＩＤと、多重エッジを統合した後のノード間のウェイトと、一部のノードに付与された既知スコアとを含む。
【００９１】
縮約グラフ記憶部１２３は、縮約グラフ情報を記憶する。
スコア推定部１２４は、グラフ記憶部１２１に記憶されたグラフ情報に代えて、縮約グラフ記憶部１２３に記憶された縮約グラフ情報を用いて未知スコアを推定する。具体的には、スコア推定部１２４は、縮約グラフ情報が示すノード間のウェイトを列挙した隣接行列Ｗから推移確率行列Ｐを算出し、推移確率行列ＰをスコアベクトルΦに乗算することを繰り返して、スコア未知ノードの未知スコアを推定する。スコア推定部１２４は、未知スコアの推定結果を推定結果表示部１２５に出力する。
【００９２】
推定結果表示部１２５は、スコア推定要求画面やスコア推定結果画面などの画面を表示装置１１１に表示させ、ユーザに対して視覚的インタフェースを提供する。推定結果表示部１２５は、スコア推定要求画面からスコアを推定するスコア未知ノードの指定を受け付け、スコア推定部１２４にスコア推定を指示する。推定結果表示部１２５は、スコア推定部１２４から推定されたスコアを取得し、スコア推定結果画面を表示する。なお、分析装置１００は、推定されたスコアを不揮発性ストレージに保存してもよいし、表示装置１１１以外の出力デバイスに出力してもよいし、他の情報処理装置に送信してもよい。
【００９３】
図７は、第３の実施の形態のグラフ情報の例を示す図である。
グラフ情報１５１は、グラフ記憶部１２１に記憶される。グラフ情報１５１は、図４のグラフ１３０を表している。グラフ情報１５１は、ノード１３１〜１３９を示すノードＩＤと対応付けてスコアを含んでいる。スコア既知ノードに対応するスコアは、スコア既知ノードが示す企業の投資格付けを表す数値である。スコア未知ノードに対応するスコアは、未知であることを表す数値として「−１」に設定されている。また、グラフ情報１５１は、ノード１３１〜１３９の間の１０個のエッジのウェイトｗ１２，ｗ１４，ｗ１５，ｗ１７，ｗ２５，ｗ２８，ｗ３８，ｗ３９，ｗ４６，ｗ７８を含んでいる。
【００９４】
図８は、第３の実施の形態の縮約グラフ情報の例を示す図である。
グラフ情報１５２は、グラフ情報１５１から変換されたものであり、グラフ縮約の途中経過を示す。グラフ情報１５２は、図５の縮約グラフ１４０の上側の状態を表している。
【００９５】
グラフ縮約部１２２は、「−１」以外のスコアをもつノードＩＤをスコアが同一のもの同士でグループ化する。グラフ縮約部１２２は、同一グループに属するノードＩＤには同一の新ノードＩＤが与えられるように、各ノードＩＤに新ノードＩＤを付与する。次に、グラフ縮約部１２２は、隣接行列を一行ずつ走査し、同一の新ノードＩＤが対応付けられた２以上のウェイトがその行に含まれるか確認する。該当する２以上のウェイトが存在する場合には、それらウェイトを合算する。グラフ縮約部１２２は、隣接行列に含まれる列を、同じ新ノードＩＤが対応付けられた列同士で統合し、隣接行列に含まれる行を、同じ新ノードＩＤが対応付けられた行同士で統合する。最後に、グラフ縮約部１２２は、スコア既知ノード間のウェイトを０に置換する。
【００９６】
これにより、グラフ情報１５２が縮約グラフ情報１５３に変換される。縮約グラフ情報１５３は、縮約グラフ記憶部１２３に記憶される。縮約グラフ情報１５３は、図５の縮約グラフ１４０の下側の状態を表している。縮約グラフ情報１５３では、グラフ情報１５２のウェイトｗ１４とウェイトｗ１７が合算され、グラフ情報１５２のウェイトｗ２５とウェイトｗ２８が合算されている。また、縮約グラフ情報１５３では、グラフ情報１５２のウェイトｗ４６，ｗ７８が削除されている。
【００９７】
次に、分析装置１００の処理手順について説明する。
図９は、第３の実施の形態のグラフ縮約の手順例を示すフローチャートである。
（Ｓ１０）グラフ縮約部１２２は、グラフ記憶部１２１からグラフ情報を読み込む。
【００９８】
（Ｓ１１）グラフ縮約部１２２は、グラフ情報が示すスコア既知ノードの既知スコアを確認し、スコア既知ノードをスコア別にグループ化する。グラフ縮約部１２２は、スコア既知ノードのグループおよびスコア未知ノードに対して一意な新ノードＩＤを付与する。同一グループのスコア既知ノードには同一の新ノードＩＤが付与されることになる。
【００９９】
（Ｓ１２）グラフ縮約部１２２は、グラフ記憶部１２１に含まれる隣接行列の全ての行が抽出されたか判断する。全ての行が抽出された場合はステップＳ１５に進み、未抽出の行がある場合はステップＳ１３に進む。
【０１００】
（Ｓ１３）グラフ縮約部１２２は、隣接行列から行を１つ抽出する。
（Ｓ１４）グラフ縮約部１２２は、抽出した行に含まれるウェイトのうち相手ノードがスコア既知ノードであるウェイトを、スコア既知ノードのグループ別に分類する。グラフ縮約部１２２は、ウェイトをグループ毎に合算する。これにより、その行が示すノードとグループとの間の多重エッジが統合される。そして、ステップＳ１２に進む。
【０１０１】
（Ｓ１５）グラフ縮約部１２２は、隣接行列の列を新ノードＩＤが同一のもの同士で統合する。統合後のウェイトは、ステップＳ１４で合算されたウェイトである。また、グラフ縮約部１２２は、隣接行列の列に合わせて隣接行列の行を統合する。
【０１０２】
（Ｓ１６）グラフ縮約部１２２は、縮約後の隣接行列からスコア既知ノードのグループに対応する行と列を特定し、スコア既知ノードのグループ間のウェイトを０に置換する。
（Ｓ１７）グラフ縮約部１２２は、新ノードＩＤと既知スコアと縮約後の隣接行列とを含む縮約グラフ情報を、縮約グラフ記憶部１２３に保存する。
【０１０３】
図１０は、第３の実施の形態のスコア推定の手順例を示すフローチャートである。
（Ｓ２０）スコア推定部１２４は、縮約グラフ記憶部１２３から縮約グラフ情報を読み込む。縮約グラフ情報は、スコア既知ノードが統合され多重エッジのウェイトが合算された縮約グラフについて、隣接行列Ｗおよび既知スコアベクトルΦＬを含む。
【０１０４】
（Ｓ２１）スコア推定部１２４は、隣接行列Ｗから、ノード毎に当該ノードに接続されたエッジのウェイトの合計を表す次数行列Ｄを算出する。
（Ｓ２２）スコア推定部１２４は、隣接行列Ｗと次数行列Ｄから、ノード毎に他のノードにトークンが移動する確率を表す推移確率行列Ｐを算出する。
【０１０５】
（Ｓ２３）スコア推定部１２４は、スコアベクトルΦを初期化する。スコアベクトルは、既知スコアベクトルΦＬと未知スコアベクトルΦＵを結合したものである。既知スコアベクトルΦＬは、縮約グラフ情報に含まれるものを使用する。未知スコアベクトルΦＵの初期値は、零ベクトルなど所定の初期値である。
【０１０６】
（Ｓ２４）スコア推定部１２４は、推移確率行列ＰとスコアベクトルΦの積を算出し、算出した積を次のスコアベクトルΦとする。
（Ｓ２５）スコア推定部１２４は、ステップＳ２４で更新したスコアベクトルΦのうち既知スコア部分に既知スコアベクトルΦＬを上書きする。
【０１０７】
（Ｓ２６）スコア推定部１２４は、スコアベクトルΦが収束したか判断する。例えば、スコア推定部１２４は、前回と今回でスコアベクトルΦが同一の場合、スコアベクトルΦが収束したと判断する。ただし、スコア推定部１２４は、前回と今回でスコアベクトルΦが異なっても、その差が閾値未満の場合、スコアベクトルΦが収束したと判断してもよい。収束した場合はステップＳ２７に進み、収束していない場合はステップＳ２４に進む。
【０１０８】
（Ｓ２７）スコア推定部１２４は、スコアベクトルΦに含まれるスコアを、１０，９，８，７，６，５などの所定の離散的な数値のうち最も近い数値に近似する。例えば、７．２と算出されたスコアを７（格付けＢＢ）に近似する。推定結果表示部１２５は、推定したスコアを含むスコア推定結果画面を表示装置１１１に表示させる。
【０１０９】
第３の実施の形態の分析装置１００によれば、グラフに含まれるスコア既知ノードがスコア別にグループ化され、同一のスコアをもつ２以上のスコア既知ノードが単一のスコア既知ノードに統合される。また、スコア既知ノードの統合によって生じた多重エッジが、ウェイトが合算された単一のエッジに統合される。そして、このようにして生成された縮約グラフに基づいて、既知スコアから未知スコアを推定するスコア伝搬が実行される。
【０１１０】
これにより、スコア伝搬の計算量が削減される。そのため、一部の企業の投資格付けから他の企業の投資格付けを推定する企業ネットワーク分析を高速化できる。また、既知スコアが同じスコア既知ノードを統合してもランダムウォークの到達点の既知スコアは変化せず、多重エッジのウェイトの合算によりノード間の推移確率が保存されるため、未知スコアの推定結果は不変である。よって、分析精度を維持することができる。
【０１１１】
［第４の実施の形態］
次に、第４の実施の形態を説明する。第３の実施の形態との違いを中心に説明し、第３の実施の形態と同様の事項については説明を省略することがある。
【０１１２】
第４の実施の形態の分析装置は、第３の実施の形態と同様に未知スコア推定の計算量を削減する。ただし、計算量の削減方法が第３の実施の形態と異なる。第４の実施の形態の分析装置は、図３に示した分析装置１００と同様のハードウェアを用いて実現できる。
【０１１３】
図１１は、第４の実施の形態のグラフ例を示す図である。
第４の実施の形態を説明するにあたってグラフ２３０を使用する。グラフ２３０は、第３の実施の形態のグラフ１３０と同様に、企業を表すノードと、企業間の関係の強さを表すウェイトが付されたエッジとを含む企業ネットワークである。また、グラフ２３０に含まれるノードのうちの一部のノードに対して、投資格付けを示すスコアが付与されている。ただし、付与されているスコアが第３の実施の形態のグラフ１３０と異なる。
【０１１４】
グラフ２３０は、ノード２３１〜２３９（ノード＃１〜＃９）を含む。ノード２３１，２３２，２３３のスコアは未知である。ノード２３４のスコアは９（格付けＡＡ）である。ノード２３５のスコアは１０（格付けＡＡＡ）である。ノード２３６のスコアは７．５（格付けＢＢ＋）である。ノード２３７のスコアは８（格付けＡ）である。ノード２３８のスコアは７（格付けＢＢ）である。ノード２３９のスコアは５（格付けＣ）である。
【０１１５】
ノード２３１は、ノード２３２とウェイトｗ１２のエッジをもち、ノード２３４とウェイトｗ１４のエッジをもち、ノード２３５とウェイトｗ１５のエッジをもち、ノード２３７とウェイトｗ１７のエッジをもつ。ノード２３２は、ノード２３５とウェイトｗ２５のエッジをもち、ノード２３８とウェイトｗ２８のエッジをもつ。ノード２３３は、ノード２３８とウェイトｗ３８のエッジをもち、ノード２３９とウェイトｗ３９のエッジをもつ。ノード２３４は、ノード２３６とウェイトｗ４６のエッジをもつ。ノード２３７は、ノード２３８とウェイトｗ７８のエッジをもつ。
【０１１６】
ここで、第４の実施の形態の計算量の削減方法について説明する。
分析対象のグラフは、非連結な複数の部分グラフ（非連結成分）を含むことがある。ある部分グラフに属するノードから１以上のエッジを辿っても、非連結な他の部分グラフに属するノードに到達することはない。これに対して、吸収マルコフ連鎖による未知スコア推定では、トークンが各エッジの推移確率に基づいてノード間を移動して既知スコアを獲得する。ある部分グラフに属するスコア未知ノードから出発したトークンは、非連結な他の部分グラフに属するスコア既知ノードに到達することはない。このため、ある部分グラフの未知スコアの推定値は、非連結な他の部分グラフの既知スコアの影響を受けない。
【０１１７】
よって、グラフが非連結な複数の部分グラフを含む場合、部分グラフ毎に未知スコア推定のアルゴリズムを実行しても、グラフ全体に対して未知スコア推定のアルゴリズムを実行した場合と同じ推定結果が得られる。すなわち、隣接行列を分割することで、未知スコアの推定結果を保存しつつ計算量を削減することができる。グラフから１つの連結部分グラフ（連結成分）を抽出することは、例えば、あるノードを基点としてエッジに沿って深さ優先探索により全域木（スパニングツリー）を求めることで実行できる。
【０１１８】
ただし、グラフの中にノード数の多い巨大な連結部分グラフが存在すると、グラフを連結部分グラフ毎に分割するだけでは十分に計算量が削減されないことがある。特に、企業ネットワークは、金融機関や持株会社や商社などの一部の企業が多数の他の企業と取引関係をもっているため、これら一部の企業を示すノードがハブとなって巨大な連結部分グラフ（コアや巨大クラスタと言うことがある）を形成していることがある。
【０１１９】
そこで、第４の実施の形態では、吸収マルコフ連鎖の特性に着目して、未知スコアの推定結果に影響を与えない範囲で、巨大な連結部分グラフを更に細分化することを考える。吸収マルコフ連鎖では、スコア未知ノードを出発したトークンは、最初に到達したスコア既知ノードに吸収されて以降は他のノードに移動しない。このため、吸収マルコフ連鎖では、あるスコア未知ノードから、同じ連結部分グラフに属する他の全てのノードに到達可能であるとは限らない。グラフを連結部分グラフ毎に分割する場合と同様、未知スコアの推定結果は、到達不能なスコア既知ノードの既知スコアの影響を受けない。
【０１２０】
例えば、ノード２３１〜２３９は１つの連結部分グラフを形成している。ノード２３１からは、ノード２３２，２３４，２３５，２３７，２３８に到達可能である一方、ノード２３３，２３６，２３９には到達不能である。ノード２３２からは、ノード２３１，２３４，２３５，２３７，２３８に到達可能である一方、ノード２３３，２３６，２３９には到達不能である。ノード２３３からは、ノード２３８，２３９に到達可能である一方、ノード２３１，２３２，２３４，２３５，２３６，２３７には到達不能である。
【０１２１】
よって、吸収マルコフ連鎖の特性に着目すると、スコア既知ノードを仮想的に端点として取り扱うことで、巨大な連結部分グラフを更に細分化することができる。このように１つの連結部分グラフを細分化しても、未知スコアの推定結果には影響を与えない。
【０１２２】
図１２は、第４の実施の形態のグラフ分割例を示す図である。
グラフ２３０は、クラスタ２４１，２４２，２４３に分割される。これらのクラスタは、スコア既知ノードを端点とみなした深さ優先探索によって抽出することができる。
【０１２３】
スコア未知ノードであるノード２３３を始点に設定すると、ノード２３３からエッジに沿ってノード２３８に到達する。ノード２３８はスコア既知ノードであるため、ノード２３８から先のエッジは選択されない。ノード２３３に戻り、ノード２３３からエッジに沿ってノード２３９に到達する。ノード２３９はスコア既知ノードであるため、ノード２３９から先のエッジは選択されない。ノード２３３に戻り、選択可能なエッジが残っていないため、ノード２３３を始点とした深さ優先探索は終了する。
【０１２４】
そこで、グラフ２３０から、ノード２３３，２３８，２３９を含むクラスタ２４１を分離する。ただし、ノード２３８はクラスタ２４１の外部のノードと接続されているため、エッジが消滅しないように、ノード２３８をコピーしてグラフ２３０に残しておく。
【０１２５】
次に、残っているスコア未知ノードであるノード２３１を始点に設定すると、ノード２３１からエッジに沿ってノード２３４に到達する。ノード２３４はスコア既知ノードであるため、ノード２３４から先のエッジは選択されない。ノード２３１に戻り、ノード２３１からエッジに沿ってノード２３２に到達する。ノード２３２はスコア未知ノードであるため、更にノード２３２からエッジに沿ってノード２３５に到達する。ノード２３５はスコア既知ノードであるため、ノード２３５から先のエッジは選択されない。
【０１２６】
ノード２３２に戻り、ノード２３２からエッジに沿ってノード２３８に到達する。ノード２３８はスコア既知ノードであるため、ノード２３８から先のエッジは選択されない。ノード２３２に戻り、選択可能なエッジが残っていないためノード２３１に戻り、ノード２３１からエッジに沿ってノード２３５に到達する。ノード２３５は到達済みのノードであるため、ノード２３５から先のエッジは選択されない。ノード２３１に戻り、ノード２３１からエッジに沿ってノード２３７に到達する。ノード２３７はスコア既知ノードであるため、ノード２３７から先のエッジは選択されない。ノード２３１に戻り、選択可能なエッジが残っていないため、ノード２３１を始点とした深さ優先探索は終了する。
【０１２７】
そこで、グラフ２３０から、ノード２３１，２３２，２３４，２３５，２３７，２３８を含むクラスタ２４２を分離する。ただし、ノード２３４はクラスタ２４２の外部のノードと接続されているため、ノード２３４をコピーしてグラフ２３０に残しておく。最後に、残ったノード２３４，２３６を含むクラスタ２４３が形成される。クラスタ２４１，２４２，２４３それぞれについて隣接行列を生成して未知スコア推定のアルゴリズムを実行することで、推定結果に影響を与えずに計算量を削減できる。
【０１２８】
次に、第４の実施の形態の分析装置の機能について説明する。
図１３は、第４の実施の形態の分析装置の機能例を示すブロック図である。
第４の実施の形態の分析装置２００は、グラフ記憶部２２１、連結成分判定部２２２、グラフ分割部２２３、分割グラフ記憶部２２４、スコア推定部２２５および推定結果表示部２２６を有する。グラフ記憶部２２１および分割グラフ記憶部２２４は、例えば、分析装置２００のＲＡＭまたはＨＤＤの記憶領域を用いて実現される。連結成分判定部２２２、グラフ分割部２２３、スコア推定部２２５および推定結果表示部２２６は、例えば、分析装置２００のＣＰＵが実行するプログラムを用いて実現される。分析装置２００は、第２の実施の形態の情報処理装置２０に対応する。
【０１２９】
グラフ記憶部２２１は、グラフ全体を示すグラフ情報を記憶する。グラフ記憶部２２１は、第３の実施の形態のグラフ記憶部１２１に対応する。
連結成分判定部２２２は、グラフ記憶部２２１に記憶されたグラフ情報が示すグラフを、連結部分グラフ（連結成分）毎に分割する。例えば、連結成分判定部２２２は、グラフの中からスコア未知ノードを１つ選択し、選択したスコア未知ノードから開始して深さ優先探索によりエッジに沿って到達可能なノードの集合を判定し、判定したノードの集合を連結部分グラフとしてグラフから分離する。連結成分判定部２２２は、残ったスコア未知ノードが無くなるまでこれを繰り返すことで、１以上の連結部分グラフを抽出する。
【０１３０】
グラフ分割部２２３は、連結成分判定部２２２が抽出した連結部分グラフそれぞれを、スコア伝搬用の１以上の部分グラフに分割する。例えば、グラフ分割部２２３は、連結部分グラフの中からスコア未知ノードを１つ選択し、選択したスコア未知ノードから開始して深さ優先探索によりエッジに沿って到達可能なノードの集合を判定し、判定したノードの集合をスコア伝搬用の部分グラフとして連結部分グラフから分離する。ただし、グラフ分割部２２３は、スコア既知ノードを端点として取り扱い、スコア既知ノードから先のエッジを推移不能であるとみなす。グラフ分割部２２３は、連結成分判定部２２２と同様の探索アルゴリズムを使用可能であるものの、スコア既知ノードを端点とみなす点で連結成分判定部２２２と異なる。すなわち、「到達可能」の定義が異なる。
【０１３１】
グラフ分割部２２３は、分割したスコア伝搬用の部分グラフ毎に、隣接行列を生成して隣接行列を含む分割グラフ情報を分割グラフ記憶部２２４に格納する。
分割グラフ記憶部２２４は、分割された部分グラフ毎の分割グラフ情報を記憶する。
【０１３２】
スコア推定部２２５は、グラフ記憶部２２１に記憶されたグラフ情報に代えて、分割グラフ記憶部２２４に記憶された分割グラフ情報を用いて未知スコアを推定する。スコア推定部２２５は、第３の実施の形態のスコア推定部１２４に対応する。スコア推定部２２５は、複数の部分グラフを互いに独立に処理することができる。ある部分グラフに属するスコア未知ノードの未知スコアは、他の部分グラフの分割グラフ情報を参照せずに推定することが可能である。スコア推定部２２５は、複数のプロセッサまたはプロセッサコアを用いて、複数の部分グラフを並列に処理してもよい。スコア推定部２２５は、未知スコアの推定結果を推定結果表示部２２６に出力する。
【０１３３】
推定結果表示部２２６は、スコア推定要求画面やスコア推定結果画面などの画面を、分析装置２００の表示装置に表示させ、ユーザに対して視覚的インタフェースを提供する。推定結果表示部２２６は、第３の実施の形態の推定結果表示部１２５に対応する。
【０１３４】
図１４は、第４の実施の形態のグラフ情報の例を示す図である。
グラフ情報２５０は、グラフ記憶部２２１に記憶される。グラフ情報２５０は、図１１のグラフ２３０を表している。グラフ情報２５０は、ノード２３１〜２３９を示すノードＩＤと対応付けてスコアを含んでいる。スコア既知ノードに対応するスコアは、スコア既知ノードが示す企業の投資格付けを表す数値である。スコア未知ノードに対応するスコアは、未知であることを表す数値として「−１」に設定されている。また、グラフ情報２５０は、ノード２３１〜２３９の間の１０個のエッジのウェイトｗ１２，ｗ１４，ｗ１５，ｗ１７，ｗ２５，ｗ２８，ｗ３８，ｗ３９，ｗ４６，ｗ７８を含んでいる。
【０１３５】
図１５は、第４の実施の形態の分割グラフ情報の例を示す図である。
分割グラフ情報２５１，２５２，２５３は、分割グラフ記憶部２２４に記憶される。分割グラフ情報２５１，２５２，２５３は、グラフ情報２５０から変換されたものである。グラフ分割部２２３は、クラスタ毎に、グラフ情報２５０から当該クラスタに属するノードに対応する行および列を抽出して分割グラフ情報を生成する。分割グラフ情報２５１は、図１２のクラスタ２４１を表す。分割グラフ情報２５２は、図１２のクラスタ２４２を表す。分割グラフ情報２５３は、図１２のクラスタ２４３を表す。
【０１３６】
よって、分割グラフ情報２５１は、ノード２３３，２３８，２３９のノードＩＤおよびスコアを含む。また、分割グラフ情報２５１は、ノード２３３，２３８，２３９に対応する行および列をもつ隣接行列を含む。この隣接行列は、ノード２３３とノード２３８の間のウェイトｗ３８と、ノード２３３とノード２３９の間のウェイトｗ３９を含む。
【０１３７】
分割グラフ情報２５２は、ノード２３１，２３２，２３４，２３５，２３７，２３８のノードＩＤおよびスコアを含む。また、分割グラフ情報２５２は、ノード２３１，２３２，２３４，２３５，２３７，２３８に対応する行および列をもつ隣接行列を含む。この隣接行列は、ノード２３１とノード２３２の間のウェイトｗ１２と、ノード２３１とノード２３４の間のウェイトｗ１４と、ノード２３１とノード２３５の間のウェイトｗ１５と、ノード２３１とノード２３７の間のウェイトｗ１７を含む。また、この隣接行列は、ノード２３２とノード２３５の間のウェイトｗ２５と、ノード２３２とノード２３８の間のウェイトｗ２８と、ノード２３７とノード２３８の間のウェイトｗ７８を含む。
【０１３８】
分割グラフ情報２５３は、ノード２３４，２３６のノードＩＤおよびスコアを含む。また、分割グラフ情報２５３は、ノード２３４，２３６に対応する行および列をもつ隣接行列を含む。この隣接行列は、ノード２３４とノード２３６の間のウェイトｗ４６を含む。
【０１３９】
図１６は、第４の実施の形態のスコア推定要求画面の例を示す図である。
スコア推定要求画面２６０は、推定結果表示部２２６によって表示される。スコア推定要求画面２６０は、全体グラフビューア２６１、拡大グラフビューア２６２および選択欄２６３を含む。なお、第３の実施の形態の推定結果表示部１２５も、スコア推定要求画面２６０と同様のスコア推定要求画面を表示することができる。
【０１４０】
全体グラフビューア２６１は、グラフ全体のノードおよびエッジを視覚的に表示する。拡大グラフビューア２６２は、グラフに含まれる一部のノードおよびエッジを視覚的に表示する。グラフが巨大である場合、全体グラフビューア２６１に表示されるノードおよびエッジは小さくなる。そこで、ユーザは全体グラフビューア２６１の一部の領域を選択し、選択した領域に含まれるノードおよびエッジを拡大グラフビューア２６２に拡大して表示させることができる。拡大グラフビューア２６２に表示されるノードのうちスコア既知ノードには、ＡＡＡやＢＢなどの投資格付けを示すアルファベットが付加されている。
【０１４１】
選択欄２６３は、ＩＤ、企業名およびスコアの項目を含むテーブルである。選択欄２６３には、拡大グラフビューア２６２に表示されたノードが示す企業の情報が列挙される。すなわち、選択欄２６３には、拡大グラフビューア２６２に表示されたノードのノードＩＤと、当該ノードが示す企業の企業名が表示される。また、スコア既知ノードについては、当該スコア既知ノードの既知スコアが表示される。スコア未知ノードについては、選択欄２６３のスコアの項目は空欄となる。ユーザは、選択欄２６３から、未知スコアを推定したい１以上のスコア未知ノードを選択することができる。
【０１４２】
図１７は、第４の実施の形態のスコア推定結果画面の例を示す図である。
スコア推定結果画面２７０は、推定結果表示部２２６によって表示される。スコア推定結果画面２７０は、全体グラフビューア２７１、拡大グラフビューア２７２および推定結果２７３を含む。なお、第３の実施の形態の推定結果表示部１２５も、スコア推定結果画面２７０と同様のスコア推定結果画面を表示することができる。
【０１４３】
全体グラフビューア２７１は、スコア推定要求画面２６０の全体グラフビューア２６１と同様である。拡大グラフビューア２７２は、スコア推定要求画面２６０の拡大グラフビューア２６２と同様である。ただし、拡大グラフビューア２７２に表示されたスコア未知ノードには、Ａ＋やＢＢ＋などの推定された投資格付けを示すアルファベットが付加されている。推定結果２７３は、スコア推定要求画面２６０の選択欄２６３と同様である。ただし、推定結果２７３のスコア未知ノードのスコアの項目には、推定された投資格付けを示すアルファベットが記載されている。
【０１４４】
次に、分析装置２００の処理手順について説明する。
図１８は、第４の実施の形態のグラフ分割の手順例を示すフローチャートである。
（Ｓ３０）連結成分判定部２２２は、グラフ記憶部２２１からグラフ情報を読み込む。連結成分判定部２２２は、グラフ情報が示すグラフから連結部分グラフを抽出する。連結部分グラフの抽出には、後述するステップＳ３３の全域木判定と同様の探索アルゴリズムを利用できる。ただし、連結部分グラフの抽出は、スコア既知ノードを端点として取り扱わない点でステップＳ３３の全域木判定と異なる。ここで抽出された連結部分グラフそれぞれに対して、以下のステップＳ３１〜Ｓ３６が実行される。
【０１４５】
（Ｓ３１）グラフ分割部２２３は、連結部分グラフにスコア未知ノードが残っているか判断する。スコア未知ノードが残っている場合はステップＳ３２に進み、スコア未知ノードが残っていない場合はステップＳ３７に進む。
【０１４６】
（Ｓ３２）グラフ分割部２２３は、連結部分グラフからスコア未知ノードを選択する。
（Ｓ３３）グラフ分割部２２３は、ステップＳ３２で選択したスコア未知ノードを始点として全域木判定を行う。これにより、連結部分グラフに残っているノードの一部または全部を含む全域木が判定される。全域木判定の詳細は後述する。
【０１４７】
（Ｓ３４）グラフ分割部２２３は、ステップＳ３３で判定された全域木の中に、全域木の外部のノードと接続されたスコア既知ノードがあるか判断する。外部のノードと接続されたスコア既知ノードがある場合はステップＳ３５に進み、外部のノードと接続されたスコア既知ノードがない場合はステップＳ３６に進む。
【０１４８】
（Ｓ３５）グラフ分割部２２３は、全域木に属するノードのうち全域木の外部のノードと接続されたスコア既知ノードをコピーして連結部分グラフに残す。
（Ｓ３６）グラフ分割部２２３は、ステップＳ３３で判定された全域木に属するノードを連結部分グラフから分離してクラスタを生成する。そして、ステップＳ３１に進む。
【０１４９】
（Ｓ３７）グラフ分割部２２３は、ステップＳ３０で読み込まれたグラフ情報から、クラスタ毎の分割グラフ情報を生成する。具体的には、グラフ分割部２２３は、グラフ情報の隣接行列から、クラスタに属するノードに対応する行および列を抽出し、抽出した行および列に基づいてクラスタの隣接行列を生成する。グラフ分割部２２３は、生成した分割グラフ情報を分割グラフ記憶部２２４に保存する。
【０１５０】
図１９は、第４の実施の形態の全域木判定の手順例を示す図である。
全域木判定は、上記のステップＳ３３で実行される。
（Ｓ４０）グラフ分割部２２３は、選択されたスコア未知ノードを始点ノードに設定し、当該スコア未知ノードのフラグをＯＮに設定する。
【０１５１】
（Ｓ４１）グラフ分割部２２３は、現在着目しているノードに接続されたエッジの中に未探索のエッジが残っているか判断する。未探索のエッジがある場合はステップＳ４２に進み、未探索のエッジが無い場合はステップＳ４７に進む。
【０１５２】
（Ｓ４２）グラフ分割部２２３は、何れか１つの未探索のエッジを辿る。
（Ｓ４３）グラフ分割部２２３は、エッジを辿って到達したノードのフラグが既にＯＮになっているか判断する。フラグがＯＮである場合はステップＳ４６に進み、フラグがＯＮでない場合（フラグがＯＦＦである場合）はステップＳ４４に進む。
【０１５３】
（Ｓ４４）グラフ分割部２２３は、到達したノードのフラグをＯＮに設定する。
（Ｓ４５）グラフ分割部２２３は、到達したノードはスコア既知ノードであるか判断する。到達したノードがスコア既知ノードである場合はステップＳ４６に進み、スコア未知ノードである場合はステップＳ４１に進む。
【０１５４】
（Ｓ４６）グラフ分割部２２３は、到達したノードの先のエッジを探索せず、当該ノードに到着したときに使用したエッジを戻る。そして、ステップＳ４１に進む。
（Ｓ４７）グラフ分割部２２３は、始点ノードまで戻ったか判断する。始点ノードまで戻った場合はステップＳ４９に進み、それ以外の場合はステップＳ４８に進む。
【０１５５】
（Ｓ４８）グラフ分割部２２３は、現在着目しているノードに到着したときに使用したエッジを戻る。そして、ステップＳ４１に進む。
（Ｓ４９）グラフ分割部２２３は、連結部分グラフに含まれるノードのうちフラグがＯＮに設定されているノードの集合を全域木と判定する。
【０１５６】
なお、前述のステップＳ３０で連結部分グラフを抽出するアルゴリズムは、ステップＳ４５の判断を行わず、ステップＳ４４の後にステップＳ４１に進むことで実現できる。また、スコア推定部２２５は、分割グラフ情報それぞれに対して第３の実施の形態と同様のスコア推定アルゴリズムを実行することで、未知スコアを推定することができる。
【０１５７】
第４の実施の形態の分析装置２００によれば、グラフが連結部分グラフに分割され、スコア既知ノードを端点とみなすことで連結部分グラフが更に小さな部分グラフに分割される。そして、分割された部分グラフ毎に未知スコア推定が行われる。これにより、隣接行列の行数および列数が減少し、スコア伝搬の計算量が削減される。そのため、一部の企業の投資格付けから他の企業の投資格付けを推定する企業ネットワーク分析を高速化できる。また、連結部分グラフを上記のように分割しても、吸収マルコフ連鎖において各スコア未知ノードから到達可能なスコア既知ノードは変化しないため、未知スコアの推定結果は不変である。よって、分析精度を維持することができる。
【０１５８】
なお、第３の実施の形態の計算量削減方法と第４の実施の形態の計算量削減方法は、組み合わせて使用することが可能である。例えば、第３の実施の形態の方法によってスコア既知ノードを統合した後、第４の実施の形態の方法によってグラフを分割してもよい。また、第４の実施の形態の方法によってグラフを分割した後、第３の実施の形態の方法によって部分グラフ毎にスコア既知ノードを統合するようにしてもよい。また、第３の実施の形態および第４の実施の形態では、ノードに付与されるノード情報として、間隔尺度または比例尺度を示す「スコア」を使用している。これに対して、ノードに付与されるノード情報として、名義尺度や順序尺度などを示す「ラベル」を使用することも可能である。未知ラベルも、スコア伝搬と同様のラベル伝搬により推定することができる。
【符号の説明】
【０１５９】
１０，２０  情報処理装置
１１，２１  記憶部
１２，２２  処理部
１３，２３  グラフ情報
１３ａ，１３ｂ，１３ｃ，１３ｄ，２３ａ，２３ｂ，２３ｃ，２３ｄ，２３ｅ  ノード
１３ｅ，１３ｆ，１３ｇ，２３ｆ，２３ｇ，２３ｈ，２３ｉ  エッジ
１４  変換後グラフ情報
１４ａ  統合ノード
１４ｂ  統合エッジ
２４  部分グラフ情報
【図１】
2020140452.tif 000015
【図２】
2020140452.tif 000016
【図３】
2020140452.tif 000017
【図４】
2020140452.tif 000018
【図５】
2020140452.tif 000019
【図６】
2020140452.tif 000020
【図７】
2020140452.tif 000021
【図８】
2020140452.tif 000022
【図９】
2020140452.tif 000023
【図１０】
2020140452.tif 000024
【図１１】
2020140452.tif 000025
【図１２】
2020140452.tif 000026
【図１３】
2020140452.tif 000027
【図１４】
2020140452.tif 000028
【図１５】
2020140452.tif 000029
【図１６】
2020140452.tif 000030
【図１７】
2020140452.tif 000031
【図１８】
2020140452.tif 000032
【図１９】
2020140452.tif 000033