IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7428927ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置
<>
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図1
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図2
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図3
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図4
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図5
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図6
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図7
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図8
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図9
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図10
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図11
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図12
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図13
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図14
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図15
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図16
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図17
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図18
  • 特許-ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-30
(45)【発行日】2024-02-07
(54)【発明の名称】ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置
(51)【国際特許分類】
   G06N 5/022 20230101AFI20240131BHJP
【FI】
G06N5/022
【請求項の数】 3
(21)【出願番号】P 2022184625
(22)【出願日】2022-11-18
(62)【分割の表示】P 2019035642の分割
【原出願日】2019-02-28
(65)【公開番号】P2023015340
(43)【公開日】2023-01-31
【審査請求日】2022-11-18
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】北島 弘伸
【審査官】和田 財太
(56)【参考文献】
【文献】特開2018-025903(JP,A)
【文献】国際公開第2018/135515(WO,A1)
【文献】特開2017-004097(JP,A)
【文献】特開2013-003669(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00
G06F 16/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
数値を示すスコアがそれぞれ付与された複数の第1のノードおよび前記スコアが未知である複数の第2のノードを含む複数のノードと、前記複数のノードの間のエッジであってウェイトがそれぞれ付与された複数のエッジと、を含むグラフを示すグラフ情報を取得し、
前記複数の第2のノードの中から1つの第2のノードを選択し、前記複数のノードのうち、前記選択した第2のノードから前記複数のエッジのうちの1以上のエッジを介して到達可能なノードの集合を、前記複数の第1のノードのうちの何れかの第1のノードに到達した場合に前記到達した第1のノードより先のエッジを探索しない深さ優先探索によって判定し、前記選択した第2のノードおよび前記判定したノードの集合を示す部分グラフを前記グラフから抽出し、
前記複数のエッジのうちの前記部分グラフに含まれるノードの間のエッジの前記ウェイトを示す隣接行列と、前記部分グラフに含まれるノードそれぞれに対して当該ノードに接続されたエッジの前記ウェイトの合計を示す次数行列とを生成し、前記隣接行列および前記次数行列から、前記部分グラフに含まれるノードの間の遷移確率を示す推移確率行列であって、前記複数の第1のノードのうちの前記部分グラフに含まれる第1のノードから他のノードへの前記遷移確率がゼロに設定された推移確率行列を生成し、
前記部分グラフに含まれる第1のノードの前記スコアと前記複数の第2のノードのうちの前記部分グラフに含まれる第2のノードの前記スコアを示す変数の初期値とを列挙したスコアベクトルに対して、前記推移確率行列を反復的に乗算することで、前記変数が示す第2のノードの前記スコアを推定する、
ノード情報推定方法。
【請求項2】
コンピュータに、
数値を示すスコアがそれぞれ付与された複数の第1のノードおよび前記スコアが未知である複数の第2のノードを含む複数のノードと、前記複数のノードの間のエッジであってウェイトがそれぞれ付与された複数のエッジと、を含むグラフを示すグラフ情報を取得し、
前記複数の第2のノードの中から1つの第2のノードを選択し、前記複数のノードのうち、前記選択した第2のノードから前記複数のエッジのうちの1以上のエッジを介して到達可能なノードの集合を、前記複数の第1のノードのうちの何れかの第1のノードに到達した場合に前記到達した第1のノードより先のエッジを探索しない深さ優先探索によって判定し、前記選択した第2のノードおよび前記判定したノードの集合を示す部分グラフを前記グラフから抽出し、
前記複数のエッジのうちの前記部分グラフに含まれるノードの間のエッジの前記ウェイトを示す隣接行列と、前記部分グラフに含まれるノードそれぞれに対して当該ノードに接続されたエッジの前記ウェイトの合計を示す次数行列とを生成し、前記隣接行列および前記次数行列から、前記部分グラフに含まれるノードの間の遷移確率を示す推移確率行列であって、前記複数の第1のノードのうちの前記部分グラフに含まれる第1のノードから他のノードへの前記遷移確率がゼロに設定された推移確率行列を生成し、
前記部分グラフに含まれる第1のノードの前記スコアと前記複数の第2のノードのうちの前記部分グラフに含まれる第2のノードの前記スコアを示す変数の初期値とを列挙したスコアベクトルに対して、前記推移確率行列を反復的に乗算することで、前記変数が示す第2のノードの前記スコアを推定する、
処理を実行させるノード情報推定プログラム。
【請求項3】
数値を示すスコアがそれぞれ付与された複数の第1のノードおよび前記スコアが未知である複数の第2のノードを含む複数のノードと、前記複数のノードの間のエッジであってウェイトがそれぞれ付与された複数のエッジと、を含むグラフを示すグラフ情報を記憶する記憶部と、
前記複数の第2のノードの中から1つの第2のノードを選択し、前記複数のノードのうち、前記選択した第2のノードから前記複数のエッジのうちの1以上のエッジを介して到達可能なノードの集合を、前記複数の第1のノードのうちの何れかの第1のノードに到達した場合に前記到達した第1のノードより先のエッジを探索しない深さ優先探索によって判定し、前記選択した第2のノードおよび前記判定したノードの集合を示す部分グラフを前記グラフから抽出し、前記複数のエッジのうちの前記部分グラフに含まれるノードの間のエッジの前記ウェイトを示す隣接行列と、前記部分グラフに含まれるノードそれぞれに対して当該ノードに接続されたエッジの前記ウェイトの合計を示す次数行列とを生成し、前記隣接行列および前記次数行列から、前記部分グラフに含まれるノードの間の遷移確率を示す推移確率行列であって、前記複数の第1のノードのうちの前記部分グラフに含まれる第1のノードから他のノードへの前記遷移確率がゼロに設定された推移確率行列を生成し、前記部分グラフに含まれる第1のノードの前記スコアと前記複数の第2のノードのうちの前記部分グラフに含まれる第2のノードの前記スコアを示す変数の初期値とを列挙したスコアベクトルに対して、前記推移確率行列を反復的に乗算することで、前記変数が示す第2のノードの前記スコアを推定する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はノード情報推定方法、ノード情報推定プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
多数のノードとそれらノードを接続するエッジとを含む大規模グラフを生成し、生成した大規模グラフを用いて様々な分析を行うことがある。グラフ分析の1つとして、一部のノードに分類ラベルなどのノード情報が付与されており他のノードにノード情報が付与されていないグラフから、未知のノード情報を推定するものがある。このようなグラフ分析では、エッジに付与された重み(ウェイト)に従って、一部のノードがもつノード情報をノード間で確率的に伝搬させて、他のノードのノード情報を計算する。例えば、企業などの実体的存在(エンティティ)をノードで表現し、エンティティ間の関係の強さをウェイト付きエッジで表現し、一部のエンティティについての既知情報から、他のエンティティについての未知情報を推定することがある。
【0003】
なお、一部のノードがもつノード情報を教師情報とみなして、ノード情報が付与されたノードとノード情報が付与されていないノードとが混在したグラフに対して半教師あり機械学習を行うものがある。また、ラベル付けされたサンプルデータおよびラベル付けされていないサンプルデータを複数のクラスタに分類する技術が提案されている。また、ノード間のエッジに基づいて一部のノードの識別情報を他のノードに伝搬させ、伝搬した識別情報に基づいて複数のノードをクラスタリングする技術が提案されている。また、言語ラベルが付与された投稿記事と言語ラベルが付与されていない投稿記事の関係から、後者の投稿記事の言語を推定する技術が提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2014-59754号公報
【文献】国際公開第2014/113281号
【文献】特開2015-115066号公報
【文献】特開2016-181252号公報
【非特許文献】
【0005】
【文献】Xiaojin Zhu, Zoubin Ghahramaniand 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
【発明の概要】
【発明が解決しようとする課題】
【0006】
未知のノード情報を推定するグラフ分析では、エッジ間で既知のノード情報を伝搬するため、複数のノードがエッジで一繋がりになった連結部分グラフ(連結成分)単位で計算を行うことができる。しかし、グラフの中にノード数の多い巨大な連結部分グラフが存在すると、計算量が大きくなりグラフ分析に長時間を要するという問題がある。
【0007】
複雑なグラフを簡略化するグラフ簡略化技術として、ウェイトの小さいエッジがグラフから間引かれたk近傍グラフに変換するk近傍化法もある。しかし、このような一般的なグラフ簡略化技術では、必ずしも巨大な連結部分グラフが規模の小さい非連結な部分グラフに細分化されるとは限らず、計算量が十分に小さくなるとは限らない。
【0008】
1つの側面では、本発明は、グラフ分析におけるノード情報の推定の計算量を削減できるノード情報推定方法、ノード情報推定プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、コンピュータが実行するノード情報推定方法が提供される。それぞれ第1のノード情報が対応付けられた複数の第1のノードおよび複数の第1のノードと異なる第2のノードを含む複数のノードと、複数のノードの間の複数のエッジと、を含むグラフを示すグラフ情報を取得する。グラフ情報に基づいて、複数の第1のノードのうち、第2のノードから他の第1のノードを経由せずに複数のエッジのうちの1以上のエッジを介して到達可能な第1のノードを判定し、第2のノードを含んでおり到達可能な第1のノードを境界とする部分グラフをグラフから抽出する。部分グラフを示す部分グラフ情報に基づいて、到達可能な第1のノードの第1のノード情報から、第2のノードに対応付ける第2のノード情報を推定する。
【0010】
また、1つの態様では、コンピュータに実行させるノード情報推定プログラムが提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0011】
1つの側面では、グラフ分析におけるノード情報の推定の計算量を削減できる。
【図面の簡単な説明】
【0012】
図1】第1の実施の形態の情報処理装置の例を説明する図である。
図2】第2の実施の形態の情報処理装置の例を説明する図である。
図3】第3の実施の形態の分析装置のハードウェア例を示すブロック図である。
図4】第3の実施の形態のグラフ例を示す図である。
図5】第3の実施の形態のグラフ縮約例を示す図である。
図6】第3の実施の形態の分析装置の機能例を示すブロック図である。
図7】第3の実施の形態のグラフ情報の例を示す図である。
図8】第3の実施の形態の縮約グラフ情報の例を示す図である。
図9】第3の実施の形態のグラフ縮約の手順例を示すフローチャートである。
図10】第3の実施の形態のスコア推定の手順例を示すフローチャートである。
図11】第4の実施の形態のグラフ例を示す図である。
図12】第4の実施の形態のグラフ分割例を示す図である。
図13】第4の実施の形態の分析装置の機能例を示すブロック図である。
図14】第4の実施の形態のグラフ情報の例を示す図である。
図15】第4の実施の形態の分割グラフ情報の例を示す図である。
図16】第4の実施の形態のスコア推定要求画面の例を示す図である。
図17】第4の実施の形態のスコア推定結果画面の例を示す図である。
図18】第4の実施の形態のグラフ分割の手順例を示すフローチャートである。
図19】第4の実施の形態の全域木判定の手順例を示す図である。
【発明を実施するための形態】
【0013】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0014】
図1は、第1の実施の形態の情報処理装置の例を説明する図である。
第1の実施の形態の情報処理装置10は、複数のノードおよびノード間のエッジを含むグラフを分析する。情報処理装置10をコンピュータと言うことがある。また、情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が分析するグラフは、企業や人や装置などのエンティティをノードで表現し、エンティティ間の関係をエッジで表現した大規模グラフである。例えば、グラフとして、企業間の取引関係を表現した企業ネットワークが挙げられる。
【0015】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性のストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0016】
記憶部11は、グラフ情報13を記憶する。グラフ情報13が示すグラフは、複数のノードとそれら複数のノードの間の複数のエッジとを含む。複数のノードの中には、それぞれノード情報が対応付けられた複数の第1のノードと、それら複数の第1のノードと異なる第2のノードとが含まれる。第2のノードにはノード情報が対応付けられていなくてよい。ノード情報は、例えば、ノードが示すエンティティの評価を表す数値である。ノード情報として使用可能な数値は、比較的少数の離散的な数値の集合であることが好ましい。複数のエッジはそれぞれウェイト(重み)をもっている。ウェイトは、例えば、大きいほどエッジに接続された2つのノードの関係が強いことを表す数値である。
【0017】
一例として、グラフ情報13が示すグラフは、ノード13a,13b,13c,13dおよびエッジ13e,13f,13gを含む。ノード13aは、ノード情報が対応付けられていない第2のノードである。ノード13b,13c,13dは、ノード情報が対応付けられた第1のノードである。ノード13bのノード情報は「8」である。ノード13cのノード情報は「8」である。ノード13dのノード情報は「6」である。エッジ13eは、ノード13aとノード13bを接続し、ウェイトw12をもつ。エッジ13fは、ノード13aとノード13cを接続し、ウェイトw13をもつ。エッジ13gは、ノード13aとノード13dを接続し、ウェイトw14をもつ。
【0018】
処理部12は、グラフ情報13から、簡略化された変換後グラフを示す変換後グラフ情報14を生成する。変換後グラフ情報14は、例えば、記憶部11に格納される。
具体的には、処理部12は、複数の第1のノードに対応付けられたノード情報に基づいて、それら複数の第1のノードのうち2以上の第1のノードを含むノードグループを抽出する。ノードグループに属する第1のノードは、例えば、グラフに含まれる第1のノードの一部である。処理部12は、同じノード情報が対応付けられた2以上の第1のノードを抽出するようにしてもよい。また、処理部12は、類似するノード情報が対応付けられた2以上の第1のノードを抽出するようにしてもよい。ノード情報が異なっていても、異なるノード情報の間で算出される類似度が閾値を超えている場合、類似すると判断される。
【0019】
処理部12は、ノードグループを単一の統合ノードに変換する。統合ノードに対して、処理部12は、変換前の第1のノードに対応付けられていたノード情報に応じて決定されるノード情報を対応付けるようにしてもよい。例えば、ノードグループが、同じノード情報が対応付けられた第1のノードの集合である場合、処理部12は、統合ノードに対して当該同じノード情報を対応付けるようにしてもよい。また、ノードグループが、類似するノード情報が対応付けられた第1のノードの集合である場合、処理部12は、統合ノードに対してノードグループのノード情報の平均を対応付けるようにしてもよい。
【0020】
一例として、ノード13bとノード13cには同じノード情報「8」が対応付けられている。そこで、処理部12は、ノード13b,13cを抽出し、ノード13b,13cを単一の統合ノード14aに変換する。そして、処理部12は、統合ノード14aに対して、変換前のノード13b,13cと同じノード情報「8」を対応付ける。
【0021】
ここで、ノードグループを単一の統合ノードに変換した段階では、ノード間のエッジは維持される。第2のノードがノードグループに属する異なる第1のノードとエッジで接続されていた場合、統合ノードへの変換に伴って、統合ノードと第2のノードとの間に2以上のエッジ(多重エッジ)が生じることになる。そこで、処理部12は、統合ノードと第2のノードとの間にある2以上のエッジを、単一の統合エッジに変換する。統合エッジは、それら2以上のエッジのウェイトに応じた統合ウェイトをもつようにする。例えば、統合ウェイトは、2以上のエッジのウェイトの合計とする。
【0022】
一例として、ノード13b,13cを統合ノード14aに変換すると、ノード13aと統合ノード14aの間にエッジ13e,13fの多重エッジが存在することになる。そこで、処理部12は、エッジ13e,13fを単一の統合エッジ14bに変換する。このとき、処理部12は、統合エッジ14bのウェイトを、エッジ13eのウェイトw12とエッジ13fのウェイトw13とを合計したウェイトw12+w13に設定する。
【0023】
そして、処理部12は、統合ノードと統合エッジとを含む変換後グラフを示す変換後グラフ情報14を生成し、変換後グラフ情報14に基づいて、第2のノードに対応付けるノード情報を推定する。例えば、処理部12は、統合ノードに対応付けられたノード情報と統合エッジのウェイトとを用いて、第2のノードのノード情報を算出する。
【0024】
一例として、変換後グラフ情報14が示す変換後グラフは、ノード13a,13d、統合ノード14a、エッジ13gおよび統合エッジ14bを含む。ノード13aのノード情報は未知である。ノード13dのノード情報は「6」である。統合ノード14aのノード情報は「8」である。エッジ13gは、ノード13aとノード13dを接続し、ウェイトw14をもつ。エッジ14bは、ノード13aと統合ノード14aを接続し、ウェイトw12+w13をもつ。処理部12は、ノード13aのノード情報を、既知のノード情報の伝搬により推定する。例えば、処理部12は、ノード13dのノード情報「6」およびエッジ13gのウェイトw14による伝搬と、統合ノード14aのノード情報「8」および統合エッジ14bのウェイトw12+w13による伝搬とを考慮し、推定処理を行う。
【0025】
第1の実施の形態の情報処理装置10によれば、グラフ情報13が示すグラフから、既知のノード情報に基づいてノードグループが抽出され、ノードグループが統合ノードに変換される。統合ノードと他のノードとの間に多重エッジが生じた場合、多重エッジが、多重エッジのウェイトに応じた統合ウェイトをもつ統合エッジに変換される。そして、変換後グラフを示す変換後グラフ情報14に基づいて、未知のノード情報が推定される。
【0026】
これにより、ノード情報の推定に使用するグラフのノード数を削減することができ、計算量を削減することができる。よって、ノード情報の推定を高速化できる。また、ノード数の削減は、既知のノード情報に応じてグループ化したノードを単一ノードに統合することによって行われると共に、ノード数の削減に伴って生じた多重エッジは、元のウェイトに応じた統合ウェイトをもつ単一エッジに統合される。よって、グラフ変換に伴う推定結果への影響を軽減することができ、推定精度の低下を抑制できる。
【0027】
[第2の実施の形態]
図2は、第2の実施の形態の情報処理装置の例を説明する図である。
第2の実施の形態の情報処理装置20は、第1の実施の形態と同様に、複数のノードおよびノード間のエッジを含むグラフを分析する。情報処理装置20をコンピュータと言うことがある。情報処理装置20は、クライアント装置でもよいしサーバ装置でもよい。
【0028】
情報処理装置20は、記憶部21および処理部22を有する。記憶部21は、RAMなどの揮発性の半導体メモリでもよいし、HDDやフラッシュメモリなどの不揮発性のストレージでもよい。処理部22は、例えば、CPU、GPU、DSPなどのプロセッサである。ただし、処理部22は、ASICやFPGAなどの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリに記憶されたプログラムを実行する。
【0029】
記憶部21は、グラフ情報23を記憶する。グラフ情報23が示すグラフは、複数のノードとノード間の複数のエッジとを含む。複数のノードの中には、それぞれノード情報が対応付けられた複数の第1のノードと、それら複数の第1のノードと異なる第2のノードとが含まれる。第2のノードにはノード情報が対応付けられていなくてよい。
【0030】
一例として、グラフ情報23が示すグラフは、ノード23a,23b,23c,23d,23eおよびエッジ23f,23g,23h,23iを含む。ノード23aは、ノード情報が対応付けられていない第2のノードである。ノード23b,23c,23dは、ノード情報が対応付けられた第1のノードである。ノード23eは、ノード情報が対応付けられていないノードである。ノード23bのノード情報は「8」である。ノード23cのノード情報は「7」である。ノード23dのノード情報は「6」である。エッジ23fは、ノード23aとノード23bを接続する。エッジ23gは、ノード23aとノード23cを接続する。エッジ23hは、ノード23cとノード23dを接続する。エッジ23iは、ノード23dとノード23eを接続する。
【0031】
処理部22は、グラフ情報23から、部分グラフを示す部分グラフ情報24を生成する。部分グラフ情報24は、例えば、記憶部21に格納される。
具体的には、処理部22は、グラフ情報23に基づいて、複数の第1のノードのうち第2のノードから到達可能な第1のノードを判定する。ここで言う到達可能な第1のノードは、複数のエッジのうちの1以上のエッジを介して到達可能であって、かつ、他の第1のノードを経由せずに到達可能な第1のノードである。ある第1のノードに第2のノードから至る経路として、他の第1のノードを経由しない経路が存在しない場合には、当該第1のノードは第2のノードから到達不能であるとみなされる。到達可能な第1のノードは2以上検出されることもある。処理部22は、第2のノードを含んでおり、到達可能な第1のノードを境界とする部分グラフを、グラフ情報23が示すグラフから抽出する。
【0032】
処理部22は、抽出した部分グラフを示す部分グラフ情報24を生成する。部分グラフ情報24が示す部分グラフは、グラフ情報23が示すグラフに含まれるノードおよびエッジのうちの一部のノードおよびエッジを含む。抽出する部分グラフとグラフの他の部分とを分ける分割点として、「到達可能な第1のノード」が使用される。
【0033】
一例として、ノード23aからは、エッジ23fを介してノード23bに到達可能であり、エッジ23gを介してノード23cに到達可能である。これに対して、ノード23aとノード23dとの間には、ノード23cを迂回する経路が存在しないため、ノード23aからノード23dには到達不能である。また、ノード23aとノード23eとの間には、ノード23c,23dを迂回する経路が存在しないため、ノード23aからノード23eには到達不能である。そこで、処理部22は、ノード23aから到達可能なノード23b,23cを境界として、グラフから部分グラフを抽出する。これにより、ノード23a,23b,23cおよびエッジ23f,23gを含む部分グラフが抽出される。
【0034】
そして、処理部22は、部分グラフ情報24に基づいて、到達可能な第1のノードのノード情報から、第2のノードに対応付けるノード情報を推定する。このとき、処理部22は、部分グラフ情報24が示す部分グラフの外側のノードやエッジを考慮しなくてよい。
【0035】
一例として、処理部22は、ノード23aのノード情報を、部分グラフ内の既知のノード情報の伝搬により推定する。例えば、処理部22は、ノード23bのノード情報「8」およびエッジ23fのウェイトによる伝搬と、ノード23cのノード情報「7」およびエッジ23gのウェイトによる伝搬とを考慮し、推定処理を行う。このとき、処理部22は、ノード23d,23eやエッジ23h,23iを考慮しなくてよい。ノード23aのノード情報の推定は、ノード23eのノード情報の推定と独立に実行できる。
【0036】
第2の実施の形態の情報処理装置20によれば、グラフ情報23に基づいて、既知のノード情報をもつノードのうち、ノード情報が未知のノードから既知のノード情報をもつ他のノードを経由せずに到達可能なノードが判定される。グラフから、判定された到達可能なノードを境界として部分グラフが抽出される。そして、抽出された部分グラフを示す部分グラフ情報24に基づいて、未知のノード情報が推定される。
【0037】
これにより、ノード情報の推定に使用するグラフの規模を削減することができ、計算量を削減することができる。よって、ノード情報の推定を高速化できる。また、ノード間のノード情報の伝搬では、あるノードのノード情報が、既知のノード情報をもつ他のノードを超えて伝搬することを考慮しなくてよい。そのため、「到達可能なノード」を境界としてグラフを分割しても、推定結果への影響を軽減でき推定精度の低下を抑制できる。
【0038】
[第3の実施の形態]
次に、第3の実施の形態を説明する。
図3は、第3の実施の形態の分析装置のハードウェア例を示すブロック図である。
【0039】
第3の実施の形態の分析装置100は、企業間の関係を表すグラフである企業ネットワークを分析する。分析装置100は、企業ネットワークと一部の企業の投資格付け情報とを用いて、他の企業の投資格付けを推定する。分析装置100を、情報処理装置やコンピュータと言うことがある。分析装置100は、クライアント装置でもよいしサーバ装置でもよい。分析装置100は、第1の実施の形態の情報処理装置10に対応する。
【0040】
分析装置100は、バスに接続されたCPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0041】
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、分析装置100は複数のプロセッサを備えてもよく、以下の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0042】
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、分析装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0043】
HDD103は、OS(Operating System)やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、分析装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを備えてもよく、複数の種類の不揮発性ストレージを備えてもよい。
【0044】
画像インタフェース104は、CPU101からの命令に従って、分析装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を用いることができる。
【0045】
入力インタフェース105は、分析装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを用いることができる。また、分析装置100に複数の種類の入力デバイスが接続されてもよい。
【0046】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0047】
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0048】
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース107は、スイッチやルータなどの有線通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局やアクセスポイントと無線リンクで接続される無線通信インタフェースでもよい。
【0049】
次に、分析装置100が分析する企業ネットワークについて説明する。
図4は、第3の実施の形態のグラフ例を示す図である。
グラフ130は、企業を表すノードと、企業間の関係の強さを表すウェイトが付されたエッジとを含む企業ネットワークである。ウェイトは非負実数である。ウェイトが大きいほどエッジ両端の企業の関係が強いことを表し、ウェイトが小さいほどエッジ両端の企業の関係が弱いことを表す。ウェイトには対称性がありエッジは方向をもたないため、グラフ130は無向グラフである。2つのノードを直接に接続するエッジがない場合、それら2つのノードの間にはウェイト0のエッジが存在するとみなすこともできる。ウェイトは類似度を表していると言うこともできる。エッジに対して原始的に距離が与えられる場合、距離からウェイトが計算される。距離が小さいほどエッジ両端の企業の関係が強いことを表し、距離が大きいほどエッジ両端の企業の関係が弱いことを表す。
【0050】
グラフ130に含まれるノードのうちの一部のノードに対してスコアが与えられている。スコアは、企業の投資格付けを示すノード情報である。投資格付けは、格付け機関によって判定される企業の信用リスク(デフォルトリスク)を表す指標である。投資格付けは、投資家が投資先の企業を選択する際の判断材料として利用されることがある。スコアが高いほど企業の信用が高く信用リスクが低いことを表し、スコアが低いほど企業の信用が低く信用リスクが高いことを表す。一般に投資格付けはアルファベットで表現されることが多いのに対し、ノードに付されるスコアは非負実数である。格付けAAAはスコア10、格付けAAはスコア9、格付けAはスコア8、格付けBBはスコア7、格付けBはスコア6、格付けCはスコア5に対応する。よって、第3の実施の形態で使用されるスコアの候補の集合は、離散的で少数の非負実数の集合である。
【0051】
投資格付けは格付け機関によって手作業で判定されるものであるため、高コストな情報であり、全ての企業について投資格付け情報を入手できるわけではない。そのため、グラフ130には、既知スコアが付されたノード(スコア既知ノード)と既知スコアが付されていないノード(スコア未知ノード)とが混在している。そこで、第3の実施の形態の分析装置100は、スコア既知ノードに付された既知スコアとノード間のウェイトとに基づいて、スコア未知ノードに対応する未知スコアを推定する。
【0052】
一例として、グラフ130は、ノード131~139(ノード#1~#9)の9個のノードを含む。ノード131,132,133のスコアは未知である。ノード134,137,139のスコアは7(格付けBB)である。ノード135,136,138のスコアは10(格付けAAA)である。ノード131は、ノード132との間にウェイトw12のエッジをもち、ノード134との間にウェイトw14のエッジをもち、ノード135との間にウェイトw15のエッジをもち、ノード137との間にウェイトw17のエッジをもつ。ノード132は、ノード135との間にウェイトw25のエッジをもち、ノード138との間にウェイトw28のエッジをもつ。ノード133は、ノード138との間にウェイトw38のエッジをもち、ノード139との間にウェイトw39のエッジをもつ。ノード134は、ノード136との間にウェイトw46のエッジをもつ。ノード137は、ノード138との間にウェイトw78のエッジをもつ。
【0053】
ここで、ノード間のスコア伝搬により未知スコアを推定する方法について説明する。このような未知スコアの推定方法は、半教師学習の一種とみなすことができる。
分析対象のグラフGに対して、数式(1)のノード集合Vが定義される。ノード集合Vは、スコア既知ノード集合Vとスコア未知ノード集合Vの集合和であり、n=l+u個のノードを含む。スコア既知ノード集合Vは、既知スコアが与えられたl個のスコア既知ノードv,…,vを含む。スコア未知ノード集合Vは、既知スコアが与えられていないu個のスコア未知ノードvl+1,…,vl+uを含む。
【0054】
【数1】
【0055】
数式(2)のスコアベクトルΦは、ノード集合Vに対応させてスコアを列挙した列ベクトルである。スコアベクトルΦは、既知スコアベクトルΦと未知スコアベクトルΦを結合したものである。既知スコアベクトルΦは、スコア既知ノード集合Vに対応するl個のスコアφ,…,φを含む列ベクトルである。これらl個のスコアは、予め与えられる既知スコアであり定数である。未知スコアベクトルΦは、スコア未知ノード集合Vに対応するu個のスコアφl+1,…,φl+uを含む列ベクトルである。これらu個のスコアは、グラフ分析の開始時に初期値が与えられグラフ分析中に更新される変数である。スコアφl+1,…,φl+uの初期値は、例えば、0とする。
【0056】
【数2】
【0057】
未知スコアの推定は、数式(3)に示すエネルギー関数E(Φ)の値を最小化するスコアベクトルΦを求めることと定義できる。ただし、スコアベクトルΦに含まれるスコアのうち既知スコアベクトルΦのスコアは不変であることが制約条件である。エネルギー関数E(Φ)は、エッジで接続された2つのノードのスコア差の二乗を、そのエッジのウェイトで重み付けして合算する関数である。エネルギー関数E(Φ)の値の最小化は、ウェイトの大きいエッジで接続されたノードのスコア差が小さくなり、ウェイトの小さいエッジで接続されているかエッジで接続されていないノードのスコア差が大きくなるように、未知スコアを算出することを意味する。
【0058】
【数3】
【0059】
数式(3)に含まれるグラフラプラシアンΔは、隣接行列Wと次数行列Dを用いて数式(4)のように定義される行列である。隣接行列Wは、ノード間のエッジのウェイトを示すn行n列の正方行列である。隣接行列Wのi行目およびi列目は、ノードv,…,v,vl+1,…,vl+uのうちのi番目のノードvに対応する。ノードvとノードvとを直接接続するエッジが存在し、そのエッジがウェイトwijをもつ場合、隣接行列Wのi行j列の要素はwijになる。ノードvとノードvとを直接接続するエッジが存在しない場合、隣接行列Wのi行j列の要素は0になる。隣接行列Wは対称行列である。よって、分析装置100は、隣接行列Wの上三角部分行列のみ保持するようにしてもよい。
【0060】
次数行列Dは、ノードv,…,v,vl+1,…,vl+uそれぞれについて、接続されたエッジのウェイトを合算した対角行列である。次数行列Dのi行i列の要素は、ノードvに接続されたエッジのウェイトの合計である。次数行列Dの非対角要素は0である。次数行列Dは、隣接行列Wの要素を行毎に対角要素に集約したものであると言える。グラフラプラシアンΔは、次数行列Dと隣接行列Wの差である。
【0061】
【数4】
【0062】
各エッジに対しては、値が小さいほどノード間の結合度が強く、値が大きいほどノード間の結合度が弱いことを示す「距離」が、ユーザにより与えられていることもある。その場合、例えば、数式(5)に示すように、ガウスカーネル関数を用いて距離をウェイトに変換することができる。ウェイトは、値が大きいほどノード間の結合度が強く、値が小さいほどノード間の結合度が弱いことを示す。数式(5)に含まれるd(v,v)は、ノードvとノードvの間のエッジに与えられた距離である。数式(5)に含まれるσは、グラフGに含まれる距離の分散である。
【0063】
【数5】
【0064】
グラフラプラシアンΔは、実対称行列かつ半正定値行列である。このため、エネルギー関数E(Φ)の値を最小化する最適化問題は、線形等式制約のみをもつ凸二次計画問題であり、大域的な最適解が存在する。エネルギー関数E(Φ)は、ΔΦ=0のラプラス方程式を満たす調和関数になる。具体的には、スコア未知ノードvの未知スコアφについて数式(6)が成立する。未知スコアφは、スコア未知ノードvとエッジで接続された周辺のノードvがもつスコアφの重み付き平均である。ただし、周辺ノードにはスコア未知ノードも含まれ得ることから、直接的には未知スコアφは確定しない。
【0065】
【数6】
【0066】
次に、未知スコアを手続的に求めるアルゴリズムとして、ランダムウォークに基づく吸収マルコフ連鎖について説明する。スコア伝搬の吸収マルコフ過程では、あるスコア未知ノードから開始して、トークンがウェイトに応じた確率でランダムに他のノードに移動する。移動先のノードがスコア未知ノードである場合、トークンは更にランダムに他のノードに遷移する。一方、移動先のノードがスコア既知ノードである場合、当該スコア既知ノードの既知スコアが獲得され、トークンは当該スコア既知ノードに吸収されて消滅する。多数のトークンを同一のスコア未知ノードから出発させてランダムウォークを実行させると、それら多数のトークンが獲得する既知スコアの期待値が得られる。その期待値が、出発点のスコア未知ノードの未知スコアとして推定される。
【0067】
このような吸収マルコフ連鎖は、スコアベクトルΦの初期値に対して所定の行列を反復的に乗算する行列演算として表現することができる。数式(7)に示すように、ある時刻tのスコアベクトルΦ(t)は、推移確率行列Pを時刻t-1のスコアベクトルΦ(t-1)に乗算したものである。推移確率行列Pは、ノード間の推移確率を示すn行n列の正方行列である。推移確率行列Pのi行目およびi列目は、スコアベクトルΦのi行目、すなわち、ノードv,…,v,vl+1,…,vl+uのうちのi番目のノードvに対応する。
【0068】
【数7】
【0069】
数式(8)に示すように、推移確率行列Pのi行j列の要素は、ノードvからノードvへの推移確率pijである。スコアベクトルΦは、既知スコアベクトルΦを上側に配置し、未知スコアベクトルΦを下側に配置している。よって、推移確率行列Pは、左上の部分行列PLL、右上の部分行列PLU、左下の部分行列PULおよび右下の部分行列PUUに分割できる。部分行列PLLは、スコア既知ノードからスコア既知ノードへの遷移確率を示す。部分行列PLUは、スコア既知ノードからスコア未知ノードへの遷移確率を示す。部分行列PULは、スコア未知ノードからスコア既知ノードへの遷移確率を示す。部分行列PUUは、スコア未知ノードからスコア未知ノードへの遷移確率を示す。
【0070】
吸収マルコフ過程では、トークンはスコア既知ノードに到達すると、それ以降は他のスコア既知ノードやスコア未知ノードに遷移せず、当該スコア既知ノードに留まる。よって、部分行列PLLは、対角要素が1で非対角要素が0の単位行列Iに置換可能である。また、部分行列PLUは、全ての要素が0の零行列Oに置換可能である。そのため、推移確率行列Pは、左上が単位行列I、右上が零行列O、左下が部分行列PUL、右下が部分行列PUUである行列に簡略化される。なお、単位行列Iはl行l列、零行列Oはl行u列、部分行列PULはu行l列、部分行列PUUはu行u列の大きさである。簡略化前の推移確率行列Pは、数式(9)のように、次数行列の逆行列D-1と隣接行列Wの積である。
【0071】
【数8】
【0072】
【数9】
【0073】
簡略化した推移確率行列Pを用いた反復行列演算では、時刻tのスコアベクトルΦ(t)のうち既知スコアベクトルΦ (t)の部分は、数式(10)に示すように、時刻0の既知スコアベクトルΦ (0)から変化しない。すなわち、時刻tの既知スコアベクトルΦ (t)は、スコア伝搬の前に与えられる既知スコアベクトルΦと一致する。一方、時刻tのスコアベクトルΦ(t)のうち未知スコアベクトルΦ (t)の部分は、数式(11)のように計算される。数式(11)に含まれる時刻0の未知スコアベクトルΦ (0)は、スコア伝搬の開始時に設定される適当な初期値であり、零ベクトルでもよい。
【0074】
【数10】
【0075】
【数11】
【0076】
よって、未知スコアベクトルΦの推定値は、数式(12)のように、時刻tのスコアベクトルΦ(t)の極限として定義することができる。なお、数式(12)において、I-PUUの逆行列は存在する。よって、数式(11)に基づいて反復演算により推定値を求めることもできるし、数式(12)に基づいて推定値を求めることもできる。
【0077】
【数12】
【0078】
しかし、スコア伝搬により未知スコアを求める計算量が問題となる。数式(12)において、I-PUUの逆行列を求める計算量はuのオーダーである。その逆行列に部分行列PULを乗算する計算量はu×lのオーダーである。部分行列PULを乗算した結果に既知スコアベクトルΦを乗算する計算量はu×lのオーダーである。
【0079】
そこで、第3の実施の形態では、グラフを縮約して未知スコア推定の計算量を削減する。吸収マルコフ連鎖では、トークンが到達したスコア既知ノードの既知スコアが同一であれば、到達したスコア既知ノードの違いは推定結果に影響しない。一方で、第3の実施の形態のスコアは投資格付けを示す少数種類の離散的な数値である。よって、グラフに含まれる複数のスコア既知ノードを既知スコアに基づいてグループ化し、同一グループに属するスコア既知ノードを単一の仮想ノードで代表させることとする。スコア既知ノードのノード数lを削減することで、数式(12)において部分行列PULを乗算する計算量と既知スコアベクトルΦを乗算する計算量を削減することができる。
【0080】
図5は、第3の実施の形態のグラフ縮約例を示す図である。
縮約グラフ140は、前述のグラフ130から変換されたものである。縮約グラフ140は、ノード141~145を含む。ノード141,142,143はスコア未知ノードであり、グラフ130のノード131,132,133に対応する。ノード144,145はスコア既知ノードである。ノード144のスコアは7(格付けBB)である。ノード145のスコアは10(格付けAAA)である。
【0081】
グラフ130を縮約グラフ140に変換するにあたり、分析装置100は、同一のスコアであるスコア=7をもつノード134,137,139をグループ化し、ノード134,137,139を単一のノード144に置換する。また、分析装置100は、同一のスコアであるスコア=10をもつノード135,136,138をグループ化し、ノード135,136,138を単一のノード145に置換する。
【0082】
スコア既知ノードを統合した段階では、ノード間のエッジは保存される。結果的に、2つのノードの間に2以上のエッジ(多重エッジ)が形成されることがある。ノード141は、ノード142との間にウェイトw12のエッジをもち、ノード144との間にウェイトw14のエッジとウェイトw17のエッジをもち、ノード145との間にウェイトw15のエッジをもつ。ノード142は、ノード145との間にウェイトw25のエッジとウェイトw28のエッジをもつ。ノード143は、ノード145との間にウェイトw38のエッジをもち、ノード144との間にウェイトw39のエッジをもつ。ノード144は、ノード145との間にウェイトw46のエッジとウェイトw78のエッジをもつ。
【0083】
多重エッジが存在すると行列計算が複雑になる。一方で、エッジのウェイトを変更すると未知スコアの推定結果がグラフ縮約前と変わってしまう。そこで、未知スコアの推定結果が変わらないよう、ノードペア毎に多重エッジのウェイトを合算してエッジを統合することとする。また、スコア既知ノード間ではトークンの遷移は発生しない。そこで、スコア既知ノード間のエッジを削除することとする。
【0084】
具体的には、分析装置100は、ノード141に新ノードID=@1を付与し、ノード142に新ノードID=@2を付与し、ノード143に新ノードID=@3を付与する。また、分析装置100は、ノード144に新ノードID=@4を付与し、ノード145に新ノードID=@5を付与する。分析装置100は、ノード141とノード144の間の多重エッジを統合してウェイトw14+w17のエッジを形成し、ノード142とノード145の間の多重エッジを統合してウェイトw25+w28のエッジを形成する。また、分析装置100は、ノード144とノード145の間のエッジを削除する。
【0085】
この変換により、ノード141は、ノード142との間にウェイトw12のエッジをもち、ノード144との間にウェイトw14+w17のエッジをもち、ノード145との間にウェイトw15のエッジをもつ。ノード142は、ノード145との間にウェイトw25+w28のエッジをもつ。ノード143は、ノード145との間にウェイトw38のエッジをもち、ノード144との間にウェイトw39のエッジをもつ。
【0086】
グラフ130から縮約グラフ140へのグラフ縮約により、ノード数は9個から5個に減少し、エッジ数は10個から6個に減少する。グラフ130に代えて縮約グラフ140を用いることで、ノード131,132,133の未知スコアを求める計算量が削減される。また、グラフ130と縮約グラフ140とで未知スコアの推定結果は変わらない。
【0087】
次に、分析装置100の機能について説明する。
図6は、第3の実施の形態の分析装置の機能例を示すブロック図である。
分析装置100は、グラフ記憶部121、グラフ縮約部122、縮約グラフ記憶部123、スコア推定部124および推定結果表示部125を有する。グラフ記憶部121および縮約グラフ記憶部123は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。グラフ縮約部122、スコア推定部124および推定結果表示部125は、例えば、CPU101が実行するプログラムを用いて実現される。
【0088】
グラフ記憶部121は、縮約前のグラフを示すグラフ情報を記憶する。グラフ情報はユーザにより予め作成される。グラフ情報は、グラフに含まれるノードを識別するノードIDと、ノード間のウェイトと、一部のノードに付与された既知スコアとを含む。
【0089】
グラフ縮約部122は、グラフ記憶部121に記憶されたグラフ情報から、縮約グラフを示す縮約グラフ情報を生成して縮約グラフ記憶部123に格納する。縮約グラフは、同一の既知スコアをもつスコア既知ノードが統合され、ノード間の多重エッジが統合され、スコア既知ノード間のエッジが削除されたものである。縮約グラフ情報は、縮約グラフに含まれるノードを識別する新ノードIDと、多重エッジを統合した後のノード間のウェイトと、一部のノードに付与された既知スコアとを含む。
【0090】
縮約グラフ記憶部123は、縮約グラフ情報を記憶する。
スコア推定部124は、グラフ記憶部121に記憶されたグラフ情報に代えて、縮約グラフ記憶部123に記憶された縮約グラフ情報を用いて未知スコアを推定する。具体的には、スコア推定部124は、縮約グラフ情報が示すノード間のウェイトを列挙した隣接行列Wから推移確率行列Pを算出し、推移確率行列PをスコアベクトルΦに乗算することを繰り返して、スコア未知ノードの未知スコアを推定する。スコア推定部124は、未知スコアの推定結果を推定結果表示部125に出力する。
【0091】
推定結果表示部125は、スコア推定要求画面やスコア推定結果画面などの画面を表示装置111に表示させ、ユーザに対して視覚的インタフェースを提供する。推定結果表示部125は、スコア推定要求画面からスコアを推定するスコア未知ノードの指定を受け付け、スコア推定部124にスコア推定を指示する。推定結果表示部125は、スコア推定部124から推定されたスコアを取得し、スコア推定結果画面を表示する。なお、分析装置100は、推定されたスコアを不揮発性ストレージに保存してもよいし、表示装置111以外の出力デバイスに出力してもよいし、他の情報処理装置に送信してもよい。
【0092】
図7は、第3の実施の形態のグラフ情報の例を示す図である。
グラフ情報151は、グラフ記憶部121に記憶される。グラフ情報151は、図4のグラフ130を表している。グラフ情報151は、ノード131~139を示すノードIDと対応付けてスコアを含んでいる。スコア既知ノードに対応するスコアは、スコア既知ノードが示す企業の投資格付けを表す数値である。スコア未知ノードに対応するスコアは、未知であることを表す数値として「-1」に設定されている。また、グラフ情報151は、ノード131~139の間の10個のエッジのウェイトw12,w14,w15,w17,w25,w28,w38,w39,w46,w78を含んでいる。
【0093】
図8は、第3の実施の形態の縮約グラフ情報の例を示す図である。
グラフ情報152は、グラフ情報151から変換されたものであり、グラフ縮約の途中経過を示す。グラフ情報152は、図5の縮約グラフ140の上側の状態を表している。
【0094】
グラフ縮約部122は、「-1」以外のスコアをもつノードIDをスコアが同一のもの同士でグループ化する。グラフ縮約部122は、同一グループに属するノードIDには同一の新ノードIDが与えられるように、各ノードIDに新ノードIDを付与する。次に、グラフ縮約部122は、隣接行列を一行ずつ走査し、同一の新ノードIDが対応付けられた2以上のウェイトがその行に含まれるか確認する。該当する2以上のウェイトが存在する場合には、それらウェイトを合算する。グラフ縮約部122は、隣接行列に含まれる列を、同じ新ノードIDが対応付けられた列同士で統合し、隣接行列に含まれる行を、同じ新ノードIDが対応付けられた行同士で統合する。最後に、グラフ縮約部122は、スコア既知ノード間のウェイトを0に置換する。
【0095】
これにより、グラフ情報152が縮約グラフ情報153に変換される。縮約グラフ情報153は、縮約グラフ記憶部123に記憶される。縮約グラフ情報153は、図5の縮約グラフ140の下側の状態を表している。縮約グラフ情報153では、グラフ情報152のウェイトw14とウェイトw17が合算され、グラフ情報152のウェイトw25とウェイトw28が合算されている。また、縮約グラフ情報153では、グラフ情報152のウェイトw46,w78が削除されている。
【0096】
次に、分析装置100の処理手順について説明する。
図9は、第3の実施の形態のグラフ縮約の手順例を示すフローチャートである。
(S10)グラフ縮約部122は、グラフ記憶部121からグラフ情報を読み込む。
【0097】
(S11)グラフ縮約部122は、グラフ情報が示すスコア既知ノードの既知スコアを確認し、スコア既知ノードをスコア別にグループ化する。グラフ縮約部122は、スコア既知ノードのグループおよびスコア未知ノードに対して一意な新ノードIDを付与する。同一グループのスコア既知ノードには同一の新ノードIDが付与されることになる。
【0098】
(S12)グラフ縮約部122は、グラフ記憶部121に含まれる隣接行列の全ての行が抽出されたか判断する。全ての行が抽出された場合はステップS15に進み、未抽出の行がある場合はステップS13に進む。
【0099】
(S13)グラフ縮約部122は、隣接行列から行を1つ抽出する。
(S14)グラフ縮約部122は、抽出した行に含まれるウェイトのうち相手ノードがスコア既知ノードであるウェイトを、スコア既知ノードのグループ別に分類する。グラフ縮約部122は、ウェイトをグループ毎に合算する。これにより、その行が示すノードとグループとの間の多重エッジが統合される。そして、ステップS12に進む。
【0100】
(S15)グラフ縮約部122は、隣接行列の列を新ノードIDが同一のもの同士で統合する。統合後のウェイトは、ステップS14で合算されたウェイトである。また、グラフ縮約部122は、隣接行列の列に合わせて隣接行列の行を統合する。
【0101】
(S16)グラフ縮約部122は、縮約後の隣接行列からスコア既知ノードのグループに対応する行と列を特定し、スコア既知ノードのグループ間のウェイトを0に置換する。
(S17)グラフ縮約部122は、新ノードIDと既知スコアと縮約後の隣接行列とを含む縮約グラフ情報を、縮約グラフ記憶部123に保存する。
【0102】
図10は、第3の実施の形態のスコア推定の手順例を示すフローチャートである。
(S20)スコア推定部124は、縮約グラフ記憶部123から縮約グラフ情報を読み込む。縮約グラフ情報は、スコア既知ノードが統合され多重エッジのウェイトが合算された縮約グラフについて、隣接行列Wおよび既知スコアベクトルΦを含む。
【0103】
(S21)スコア推定部124は、隣接行列Wから、ノード毎に当該ノードに接続されたエッジのウェイトの合計を表す次数行列Dを算出する。
(S22)スコア推定部124は、隣接行列Wと次数行列Dから、ノード毎に他のノードにトークンが移動する確率を表す推移確率行列Pを算出する。
【0104】
(S23)スコア推定部124は、スコアベクトルΦを初期化する。スコアベクトルは、既知スコアベクトルΦと未知スコアベクトルΦを結合したものである。既知スコアベクトルΦは、縮約グラフ情報に含まれるものを使用する。未知スコアベクトルΦの初期値は、零ベクトルなど所定の初期値である。
【0105】
(S24)スコア推定部124は、推移確率行列PとスコアベクトルΦの積を算出し、算出した積を次のスコアベクトルΦとする。
(S25)スコア推定部124は、ステップS24で更新したスコアベクトルΦのうち既知スコア部分に既知スコアベクトルΦを上書きする。
【0106】
(S26)スコア推定部124は、スコアベクトルΦが収束したか判断する。例えば、スコア推定部124は、前回と今回でスコアベクトルΦが同一の場合、スコアベクトルΦが収束したと判断する。ただし、スコア推定部124は、前回と今回でスコアベクトルΦが異なっても、その差が閾値未満の場合、スコアベクトルΦが収束したと判断してもよい。収束した場合はステップS27に進み、収束していない場合はステップS24に進む。
【0107】
(S27)スコア推定部124は、スコアベクトルΦに含まれるスコアを、10,9,8,7,6,5などの所定の離散的な数値のうち最も近い数値に近似する。例えば、7.2と算出されたスコアを7(格付けBB)に近似する。推定結果表示部125は、推定したスコアを含むスコア推定結果画面を表示装置111に表示させる。
【0108】
第3の実施の形態の分析装置100によれば、グラフに含まれるスコア既知ノードがスコア別にグループ化され、同一のスコアをもつ2以上のスコア既知ノードが単一のスコア既知ノードに統合される。また、スコア既知ノードの統合によって生じた多重エッジが、ウェイトが合算された単一のエッジに統合される。そして、このようにして生成された縮約グラフに基づいて、既知スコアから未知スコアを推定するスコア伝搬が実行される。
【0109】
これにより、スコア伝搬の計算量が削減される。そのため、一部の企業の投資格付けから他の企業の投資格付けを推定する企業ネットワーク分析を高速化できる。また、既知スコアが同じスコア既知ノードを統合してもランダムウォークの到達点の既知スコアは変化せず、多重エッジのウェイトの合算によりノード間の推移確率が保存されるため、未知スコアの推定結果は不変である。よって、分析精度を維持することができる。
【0110】
[第4の実施の形態]
次に、第4の実施の形態を説明する。第3の実施の形態との違いを中心に説明し、第3の実施の形態と同様の事項については説明を省略することがある。
【0111】
第4の実施の形態の分析装置は、第3の実施の形態と同様に未知スコア推定の計算量を削減する。ただし、計算量の削減方法が第3の実施の形態と異なる。第4の実施の形態の分析装置は、図3に示した分析装置100と同様のハードウェアを用いて実現できる。
【0112】
図11は、第4の実施の形態のグラフ例を示す図である。
第4の実施の形態を説明するにあたってグラフ230を使用する。グラフ230は、第3の実施の形態のグラフ130と同様に、企業を表すノードと、企業間の関係の強さを表すウェイトが付されたエッジとを含む企業ネットワークである。また、グラフ230に含まれるノードのうちの一部のノードに対して、投資格付けを示すスコアが付与されている。ただし、付与されているスコアが第3の実施の形態のグラフ130と異なる。
【0113】
グラフ230は、ノード231~239(ノード#1~#9)を含む。ノード231,232,233のスコアは未知である。ノード234のスコアは9(格付けAA)である。ノード235のスコアは10(格付けAAA)である。ノード236のスコアは7.5(格付けBB+)である。ノード237のスコアは8(格付けA)である。ノード238のスコアは7(格付けBB)である。ノード239のスコアは5(格付けC)である。
【0114】
ノード231は、ノード232とウェイトw12のエッジをもち、ノード234とウェイトw14のエッジをもち、ノード235とウェイトw15のエッジをもち、ノード237とウェイトw17のエッジをもつ。ノード232は、ノード235とウェイトw25のエッジをもち、ノード238とウェイトw28のエッジをもつ。ノード233は、ノード238とウェイトw38のエッジをもち、ノード239とウェイトw39のエッジをもつ。ノード234は、ノード236とウェイトw46のエッジをもつ。ノード237は、ノード238とウェイトw78のエッジをもつ。
【0115】
ここで、第4の実施の形態の計算量の削減方法について説明する。
分析対象のグラフは、非連結な複数の部分グラフ(非連結成分)を含むことがある。ある部分グラフに属するノードから1以上のエッジを辿っても、非連結な他の部分グラフに属するノードに到達することはない。これに対して、吸収マルコフ連鎖による未知スコア推定では、トークンが各エッジの推移確率に基づいてノード間を移動して既知スコアを獲得する。ある部分グラフに属するスコア未知ノードから出発したトークンは、非連結な他の部分グラフに属するスコア既知ノードに到達することはない。このため、ある部分グラフの未知スコアの推定値は、非連結な他の部分グラフの既知スコアの影響を受けない。
【0116】
よって、グラフが非連結な複数の部分グラフを含む場合、部分グラフ毎に未知スコア推定のアルゴリズムを実行しても、グラフ全体に対して未知スコア推定のアルゴリズムを実行した場合と同じ推定結果が得られる。すなわち、隣接行列を分割することで、未知スコアの推定結果を保存しつつ計算量を削減することができる。グラフから1つの連結部分グラフ(連結成分)を抽出することは、例えば、あるノードを基点としてエッジに沿って深さ優先探索により全域木(スパニングツリー)を求めることで実行できる。
【0117】
ただし、グラフの中にノード数の多い巨大な連結部分グラフが存在すると、グラフを連結部分グラフ毎に分割するだけでは十分に計算量が削減されないことがある。特に、企業ネットワークは、金融機関や持株会社や商社などの一部の企業が多数の他の企業と取引関係をもっているため、これら一部の企業を示すノードがハブとなって巨大な連結部分グラフ(コアや巨大クラスタと言うことがある)を形成していることがある。
【0118】
そこで、第4の実施の形態では、吸収マルコフ連鎖の特性に着目して、未知スコアの推定結果に影響を与えない範囲で、巨大な連結部分グラフを更に細分化することを考える。吸収マルコフ連鎖では、スコア未知ノードを出発したトークンは、最初に到達したスコア既知ノードに吸収されて以降は他のノードに移動しない。このため、吸収マルコフ連鎖では、あるスコア未知ノードから、同じ連結部分グラフに属する他の全てのノードに到達可能であるとは限らない。グラフを連結部分グラフ毎に分割する場合と同様、未知スコアの推定結果は、到達不能なスコア既知ノードの既知スコアの影響を受けない。
【0119】
例えば、ノード231~239は1つの連結部分グラフを形成している。ノード231からは、ノード232,234,235,237,238に到達可能である一方、ノード233,236,239には到達不能である。ノード232からは、ノード231,234,235,237,238に到達可能である一方、ノード233,236,239には到達不能である。ノード233からは、ノード238,239に到達可能である一方、ノード231,232,234,235,236,237には到達不能である。
【0120】
よって、吸収マルコフ連鎖の特性に着目すると、スコア既知ノードを仮想的に端点として取り扱うことで、巨大な連結部分グラフを更に細分化することができる。このように1つの連結部分グラフを細分化しても、未知スコアの推定結果には影響を与えない。
【0121】
図12は、第4の実施の形態のグラフ分割例を示す図である。
グラフ230は、クラスタ241,242,243に分割される。これらのクラスタは、スコア既知ノードを端点とみなした深さ優先探索によって抽出することができる。
【0122】
スコア未知ノードであるノード233を始点に設定すると、ノード233からエッジに沿ってノード238に到達する。ノード238はスコア既知ノードであるため、ノード238から先のエッジは選択されない。ノード233に戻り、ノード233からエッジに沿ってノード239に到達する。ノード239はスコア既知ノードであるため、ノード239から先のエッジは選択されない。ノード233に戻り、選択可能なエッジが残っていないため、ノード233を始点とした深さ優先探索は終了する。
【0123】
そこで、グラフ230から、ノード233,238,239を含むクラスタ241を分離する。ただし、ノード238はクラスタ241の外部のノードと接続されているため、エッジが消滅しないように、ノード238をコピーしてグラフ230に残しておく。
【0124】
次に、残っているスコア未知ノードであるノード231を始点に設定すると、ノード231からエッジに沿ってノード234に到達する。ノード234はスコア既知ノードであるため、ノード234から先のエッジは選択されない。ノード231に戻り、ノード231からエッジに沿ってノード232に到達する。ノード232はスコア未知ノードであるため、更にノード232からエッジに沿ってノード235に到達する。ノード235はスコア既知ノードであるため、ノード235から先のエッジは選択されない。
【0125】
ノード232に戻り、ノード232からエッジに沿ってノード238に到達する。ノード238はスコア既知ノードであるため、ノード238から先のエッジは選択されない。ノード232に戻り、選択可能なエッジが残っていないためノード231に戻り、ノード231からエッジに沿ってノード235に到達する。ノード235は到達済みのノードであるため、ノード235から先のエッジは選択されない。ノード231に戻り、ノード231からエッジに沿ってノード237に到達する。ノード237はスコア既知ノードであるため、ノード237から先のエッジは選択されない。ノード231に戻り、選択可能なエッジが残っていないため、ノード231を始点とした深さ優先探索は終了する。
【0126】
そこで、グラフ230から、ノード231,232,234,235,237,238を含むクラスタ242を分離する。ただし、ノード234はクラスタ242の外部のノードと接続されているため、ノード234をコピーしてグラフ230に残しておく。最後に、残ったノード234,236を含むクラスタ243が形成される。クラスタ241,242,243それぞれについて隣接行列を生成して未知スコア推定のアルゴリズムを実行することで、推定結果に影響を与えずに計算量を削減できる。
【0127】
次に、第4の実施の形態の分析装置の機能について説明する。
図13は、第4の実施の形態の分析装置の機能例を示すブロック図である。
第4の実施の形態の分析装置200は、グラフ記憶部221、連結成分判定部222、グラフ分割部223、分割グラフ記憶部224、スコア推定部225および推定結果表示部226を有する。グラフ記憶部221および分割グラフ記憶部224は、例えば、分析装置200のRAMまたはHDDの記憶領域を用いて実現される。連結成分判定部222、グラフ分割部223、スコア推定部225および推定結果表示部226は、例えば、分析装置200のCPUが実行するプログラムを用いて実現される。分析装置200は、第2の実施の形態の情報処理装置20に対応する。
【0128】
グラフ記憶部221は、グラフ全体を示すグラフ情報を記憶する。グラフ記憶部221は、第3の実施の形態のグラフ記憶部121に対応する。
連結成分判定部222は、グラフ記憶部221に記憶されたグラフ情報が示すグラフを、連結部分グラフ(連結成分)毎に分割する。例えば、連結成分判定部222は、グラフの中からスコア未知ノードを1つ選択し、選択したスコア未知ノードから開始して深さ優先探索によりエッジに沿って到達可能なノードの集合を判定し、判定したノードの集合を連結部分グラフとしてグラフから分離する。連結成分判定部222は、残ったスコア未知ノードが無くなるまでこれを繰り返すことで、1以上の連結部分グラフを抽出する。
【0129】
グラフ分割部223は、連結成分判定部222が抽出した連結部分グラフそれぞれを、スコア伝搬用の1以上の部分グラフに分割する。例えば、グラフ分割部223は、連結部分グラフの中からスコア未知ノードを1つ選択し、選択したスコア未知ノードから開始して深さ優先探索によりエッジに沿って到達可能なノードの集合を判定し、判定したノードの集合をスコア伝搬用の部分グラフとして連結部分グラフから分離する。ただし、グラフ分割部223は、スコア既知ノードを端点として取り扱い、スコア既知ノードから先のエッジを推移不能であるとみなす。グラフ分割部223は、連結成分判定部222と同様の探索アルゴリズムを使用可能であるものの、スコア既知ノードを端点とみなす点で連結成分判定部222と異なる。すなわち、「到達可能」の定義が異なる。
【0130】
グラフ分割部223は、分割したスコア伝搬用の部分グラフ毎に、隣接行列を生成して隣接行列を含む分割グラフ情報を分割グラフ記憶部224に格納する。
分割グラフ記憶部224は、分割された部分グラフ毎の分割グラフ情報を記憶する。
【0131】
スコア推定部225は、グラフ記憶部221に記憶されたグラフ情報に代えて、分割グラフ記憶部224に記憶された分割グラフ情報を用いて未知スコアを推定する。スコア推定部225は、第3の実施の形態のスコア推定部124に対応する。スコア推定部225は、複数の部分グラフを互いに独立に処理することができる。ある部分グラフに属するスコア未知ノードの未知スコアは、他の部分グラフの分割グラフ情報を参照せずに推定することが可能である。スコア推定部225は、複数のプロセッサまたはプロセッサコアを用いて、複数の部分グラフを並列に処理してもよい。スコア推定部225は、未知スコアの推定結果を推定結果表示部226に出力する。
【0132】
推定結果表示部226は、スコア推定要求画面やスコア推定結果画面などの画面を、分析装置200の表示装置に表示させ、ユーザに対して視覚的インタフェースを提供する。推定結果表示部226は、第3の実施の形態の推定結果表示部125に対応する。
【0133】
図14は、第4の実施の形態のグラフ情報の例を示す図である。
グラフ情報250は、グラフ記憶部221に記憶される。グラフ情報250は、図11のグラフ230を表している。グラフ情報250は、ノード231~239を示すノードIDと対応付けてスコアを含んでいる。スコア既知ノードに対応するスコアは、スコア既知ノードが示す企業の投資格付けを表す数値である。スコア未知ノードに対応するスコアは、未知であることを表す数値として「-1」に設定されている。また、グラフ情報250は、ノード231~239の間の10個のエッジのウェイトw12,w14,w15,w17,w25,w28,w38,w39,w46,w78を含んでいる。
【0134】
図15は、第4の実施の形態の分割グラフ情報の例を示す図である。
分割グラフ情報251,252,253は、分割グラフ記憶部224に記憶される。分割グラフ情報251,252,253は、グラフ情報250から変換されたものである。グラフ分割部223は、クラスタ毎に、グラフ情報250から当該クラスタに属するノードに対応する行および列を抽出して分割グラフ情報を生成する。分割グラフ情報251は、図12のクラスタ241を表す。分割グラフ情報252は、図12のクラスタ242を表す。分割グラフ情報253は、図12のクラスタ243を表す。
【0135】
よって、分割グラフ情報251は、ノード233,238,239のノードIDおよびスコアを含む。また、分割グラフ情報251は、ノード233,238,239に対応する行および列をもつ隣接行列を含む。この隣接行列は、ノード233とノード238の間のウェイトw38と、ノード233とノード239の間のウェイトw39を含む。
【0136】
分割グラフ情報252は、ノード231,232,234,235,237,238のノードIDおよびスコアを含む。また、分割グラフ情報252は、ノード231,232,234,235,237,238に対応する行および列をもつ隣接行列を含む。この隣接行列は、ノード231とノード232の間のウェイトw12と、ノード231とノード234の間のウェイトw14と、ノード231とノード235の間のウェイトw15と、ノード231とノード237の間のウェイトw17を含む。また、この隣接行列は、ノード232とノード235の間のウェイトw25と、ノード232とノード238の間のウェイトw28と、ノード237とノード238の間のウェイトw78を含む。
【0137】
分割グラフ情報253は、ノード234,236のノードIDおよびスコアを含む。また、分割グラフ情報253は、ノード234,236に対応する行および列をもつ隣接行列を含む。この隣接行列は、ノード234とノード236の間のウェイトw46を含む。
【0138】
図16は、第4の実施の形態のスコア推定要求画面の例を示す図である。
スコア推定要求画面260は、推定結果表示部226によって表示される。スコア推定要求画面260は、全体グラフビューア261、拡大グラフビューア262および選択欄263を含む。なお、第3の実施の形態の推定結果表示部125も、スコア推定要求画面260と同様のスコア推定要求画面を表示することができる。
【0139】
全体グラフビューア261は、グラフ全体のノードおよびエッジを視覚的に表示する。拡大グラフビューア262は、グラフに含まれる一部のノードおよびエッジを視覚的に表示する。グラフが巨大である場合、全体グラフビューア261に表示されるノードおよびエッジは小さくなる。そこで、ユーザは全体グラフビューア261の一部の領域を選択し、選択した領域に含まれるノードおよびエッジを拡大グラフビューア262に拡大して表示させることができる。拡大グラフビューア262に表示されるノードのうちスコア既知ノードには、AAAやBBなどの投資格付けを示すアルファベットが付加されている。
【0140】
選択欄263は、ID、企業名およびスコアの項目を含むテーブルである。選択欄263には、拡大グラフビューア262に表示されたノードが示す企業の情報が列挙される。すなわち、選択欄263には、拡大グラフビューア262に表示されたノードのノードIDと、当該ノードが示す企業の企業名が表示される。また、スコア既知ノードについては、当該スコア既知ノードの既知スコアが表示される。スコア未知ノードについては、選択欄263のスコアの項目は空欄となる。ユーザは、選択欄263から、未知スコアを推定したい1以上のスコア未知ノードを選択することができる。
【0141】
図17は、第4の実施の形態のスコア推定結果画面の例を示す図である。
スコア推定結果画面270は、推定結果表示部226によって表示される。スコア推定結果画面270は、全体グラフビューア271、拡大グラフビューア272および推定結果273を含む。なお、第3の実施の形態の推定結果表示部125も、スコア推定結果画面270と同様のスコア推定結果画面を表示することができる。
【0142】
全体グラフビューア271は、スコア推定要求画面260の全体グラフビューア261と同様である。拡大グラフビューア272は、スコア推定要求画面260の拡大グラフビューア262と同様である。ただし、拡大グラフビューア272に表示されたスコア未知ノードには、A+やBB+などの推定された投資格付けを示すアルファベットが付加されている。推定結果273は、スコア推定要求画面260の選択欄263と同様である。ただし、推定結果273のスコア未知ノードのスコアの項目には、推定された投資格付けを示すアルファベットが記載されている。
【0143】
次に、分析装置200の処理手順について説明する。
図18は、第4の実施の形態のグラフ分割の手順例を示すフローチャートである。
(S30)連結成分判定部222は、グラフ記憶部221からグラフ情報を読み込む。連結成分判定部222は、グラフ情報が示すグラフから連結部分グラフを抽出する。連結部分グラフの抽出には、後述するステップS33の全域木判定と同様の探索アルゴリズムを利用できる。ただし、連結部分グラフの抽出は、スコア既知ノードを端点として取り扱わない点でステップS33の全域木判定と異なる。ここで抽出された連結部分グラフそれぞれに対して、以下のステップS31~S36が実行される。
【0144】
(S31)グラフ分割部223は、連結部分グラフにスコア未知ノードが残っているか判断する。スコア未知ノードが残っている場合はステップS32に進み、スコア未知ノードが残っていない場合はステップS37に進む。
【0145】
(S32)グラフ分割部223は、連結部分グラフからスコア未知ノードを選択する。
(S33)グラフ分割部223は、ステップS32で選択したスコア未知ノードを始点として全域木判定を行う。これにより、連結部分グラフに残っているノードの一部または全部を含む全域木が判定される。全域木判定の詳細は後述する。
【0146】
(S34)グラフ分割部223は、ステップS33で判定された全域木の中に、全域木の外部のノードと接続されたスコア既知ノードがあるか判断する。外部のノードと接続されたスコア既知ノードがある場合はステップS35に進み、外部のノードと接続されたスコア既知ノードがない場合はステップS36に進む。
【0147】
(S35)グラフ分割部223は、全域木に属するノードのうち全域木の外部のノードと接続されたスコア既知ノードをコピーして連結部分グラフに残す。
(S36)グラフ分割部223は、ステップS33で判定された全域木に属するノードを連結部分グラフから分離してクラスタを生成する。そして、ステップS31に進む。
【0148】
(S37)グラフ分割部223は、ステップS30で読み込まれたグラフ情報から、クラスタ毎の分割グラフ情報を生成する。具体的には、グラフ分割部223は、グラフ情報の隣接行列から、クラスタに属するノードに対応する行および列を抽出し、抽出した行および列に基づいてクラスタの隣接行列を生成する。グラフ分割部223は、生成した分割グラフ情報を分割グラフ記憶部224に保存する。
【0149】
図19は、第4の実施の形態の全域木判定の手順例を示す図である。
全域木判定は、上記のステップS33で実行される。
(S40)グラフ分割部223は、選択されたスコア未知ノードを始点ノードに設定し、当該スコア未知ノードのフラグをONに設定する。
【0150】
(S41)グラフ分割部223は、現在着目しているノードに接続されたエッジの中に未探索のエッジが残っているか判断する。未探索のエッジがある場合はステップS42に進み、未探索のエッジが無い場合はステップS47に進む。
【0151】
(S42)グラフ分割部223は、何れか1つの未探索のエッジを辿る。
(S43)グラフ分割部223は、エッジを辿って到達したノードのフラグが既にONになっているか判断する。フラグがONである場合はステップS46に進み、フラグがONでない場合(フラグがOFFである場合)はステップS44に進む。
【0152】
(S44)グラフ分割部223は、到達したノードのフラグをONに設定する。
(S45)グラフ分割部223は、到達したノードはスコア既知ノードであるか判断する。到達したノードがスコア既知ノードである場合はステップS46に進み、スコア未知ノードである場合はステップS41に進む。
【0153】
(S46)グラフ分割部223は、到達したノードの先のエッジを探索せず、当該ノードに到着したときに使用したエッジを戻る。そして、ステップS41に進む。
(S47)グラフ分割部223は、始点ノードまで戻ったか判断する。始点ノードまで戻った場合はステップS49に進み、それ以外の場合はステップS48に進む。
【0154】
(S48)グラフ分割部223は、現在着目しているノードに到着したときに使用したエッジを戻る。そして、ステップS41に進む。
(S49)グラフ分割部223は、連結部分グラフに含まれるノードのうちフラグがONに設定されているノードの集合を全域木と判定する。
【0155】
なお、前述のステップS30で連結部分グラフを抽出するアルゴリズムは、ステップS45の判断を行わず、ステップS44の後にステップS41に進むことで実現できる。また、スコア推定部225は、分割グラフ情報それぞれに対して第3の実施の形態と同様のスコア推定アルゴリズムを実行することで、未知スコアを推定することができる。
【0156】
第4の実施の形態の分析装置200によれば、グラフが連結部分グラフに分割され、スコア既知ノードを端点とみなすことで連結部分グラフが更に小さな部分グラフに分割される。そして、分割された部分グラフ毎に未知スコア推定が行われる。これにより、隣接行列の行数および列数が減少し、スコア伝搬の計算量が削減される。そのため、一部の企業の投資格付けから他の企業の投資格付けを推定する企業ネットワーク分析を高速化できる。また、連結部分グラフを上記のように分割しても、吸収マルコフ連鎖において各スコア未知ノードから到達可能なスコア既知ノードは変化しないため、未知スコアの推定結果は不変である。よって、分析精度を維持することができる。
【0157】
なお、第3の実施の形態の計算量削減方法と第4の実施の形態の計算量削減方法は、組み合わせて使用することが可能である。例えば、第3の実施の形態の方法によってスコア既知ノードを統合した後、第4の実施の形態の方法によってグラフを分割してもよい。また、第4の実施の形態の方法によってグラフを分割した後、第3の実施の形態の方法によって部分グラフ毎にスコア既知ノードを統合するようにしてもよい。また、第3の実施の形態および第4の実施の形態では、ノードに付与されるノード情報として、間隔尺度または比例尺度を示す「スコア」を使用している。これに対して、ノードに付与されるノード情報として、名義尺度や順序尺度などを示す「ラベル」を使用することも可能である。未知ラベルも、スコア伝搬と同様のラベル伝搬により推定することができる。
【符号の説明】
【0158】
10,20 情報処理装置
11,21 記憶部
12,22 処理部
13,23 グラフ情報
13a,13b,13c,13d,23a,23b,23c,23d,23e ノード
13e,13f,13g,23f,23g,23h,23i エッジ
14 変換後グラフ情報
14a 統合ノード
14b 統合エッジ
24 部分グラフ情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19