(57)【要約】【課題】解析目的に適したグラフ構造を推定できるグラフ構造推定システム、グラフ構造推定方法、およびプログラムを提供すること。【解決手段】本発明は、二種類以上のリンクが含まれるグラフにおいて、ノードの解析情報と、ノード間のリンクの種別の特徴量とに基づいて、二種類以上のリンクの重要度を推定するリンク種別重要度推定部と、リンクの重要度を用いて二種類以上のリンクの強度を補正するグラフ補正部と、を備えるグラフ構造推定システムである。【選択図】図２８
2010165166.tif 000002
【特許請求の範囲】
【請求項１】
二種類以上のリンクが含まれるグラフにおいて、ノードの解析情報と、前記ノード間のリンクの種別の特徴量とに基づいて、前記二種類以上のリンクの重要度を推定するリンク種別重要度推定部と、
前記リンクの重要度を用いて前記二種類以上のリンクの強度を補正するグラフ補正部と、
を備えることを特徴とするグラフ構造推定システム。
【請求項２】
前記解析情報は、ノードの特徴量、ノード間の特徴量又はノード間の特徴量の類似度のいずれかであることを特徴とする請求項１に記載のグラフ構造推定システム。
【請求項３】
前記リンク種別重要度推定部は、前記ノード間の特徴量の類似度と、前記ノード間のリンクの種別の特徴量のノード間の類似度との相関係数に基づいて、前記各種リンクの重要度を推定することを特徴とする請求項１又は請求項２に記載のグラフ構造推定システム。
【請求項４】
前記リンク種別重要度推定部は、前記相関係数が高くなるように、前記各種リンクの重要度を推定することを特徴とする請求項３に記載のグラフ構造推定システム。
【請求項５】
前記リンク種別重要度推定部は、前記相関係数が高くなる各種リンクの重要度を、所定の値域内で推定することを特徴とする請求項４に記載のグラフ構造推定システム。
【請求項６】
前記リンク種別重要度推定部は、前記リンクの種別の特徴量に基づく類似度を説明変数とし、前記ノード間の特徴量の類似度を目的変数とすることにより回帰分析を行い、前記各種リンクの重要度を推定することを特徴とする請求項１から請求項５のいずれかに記載のグラフ構造推定システム。
【請求項７】
前記リンク種別重要度推定部は、前記回帰分析により求められる各種リンクの重要度において、統計的に有意でない重要度と推定された種類のリンクの重要度を０とすることを特徴とする請求項６に記載のグラフ構造推定システム。
【請求項８】
前記リンク種別重要度推定部は、ノード間の特徴量の類似度を、リンクの強度に基づいて行ったグラフ解析結果におけるノード間の類似度とすることを特徴とする請求項１から７のいずれかに記載のグラフ構造推定システム。
【請求項９】
前記リンク種別重要度推定部は、ノード間の特徴量又はノード間の特徴量の類似度を、ノードの解析結果の関係性に対する確信度とすることを特徴とする請求項１又は請求項２に記載のグラフ構造推定システム。
【請求項１０】
前記リンク種別重要度推定部は、前記確信度の高いノード間の各種リンクの数により，前記各種リンクの重要度を推定することを特徴とする請求項９に記載のグラフ構造推定システム。
【請求項１１】
前記リンク種別重要度推定部は、ノード間の前記確信度の大きさと、前記ノード間の各種リンクの数との相関係数に基づいて前記各種リンクの重要度を推定することを特徴とする請求項９に記載のグラフ構造推定システム。
【請求項１２】
前記リンク種別重要度推定部は、各種リンクの出現確率に対して、確信度が高いノード間において前記各種リンクが出現する回数の統計的珍しさを推定し、各種リンクの重要度とすることを特徴とする請求項９に記載のグラフ構造推定システム。
【請求項１３】
前記リンク種別重要度推定部は、前記各種リンクの出現回数が確率分布に従うものとして、前記出現回数を上限とする積分区間において前記確率分布の関数を積分した値を各種リンクの重要度とすることを特徴とする請求項１２に記載のグラフ構造推定システム。
【請求項１４】
前記分布関数を正規分布により近似することを特徴とする請求項１３に記載のグラフ構造推定システム
【請求項１５】
前記リンク種別重要度推定部は、各ノードが繋がっている他ノードの個数を前記リンクの特徴量とすることを特徴とする請求項１から１４のいずれかに記載のグラフ構造推定システム。
【請求項１６】
前記リンク種別重要度推定部は、各ノードが有する各種類のリンクにおける隣接行列をつなぎ合わせたものを前記リンクの特徴量とすることを特徴とする請求項１から１５のいずれかに記載のグラフ構造推定システム。
【請求項１７】
前記リンク種別重要度推定部は、各ノードが繋がっている他ノードの個数を入次数と出次数に分けリンクの種類毎にまとめたものを前記リンクの特徴量とすることを特徴とする請求項１から１６のいずれかに記載のグラフ構造推定システム。
【請求項１８】
前記リンク種別重要度推定部は、前記リンクの特徴量に各ノードの特徴量を含めることを特徴とする請求項１から１７のいずれかに記載のグラフ構造推定システム。
【請求項１９】
前記グラフ補正部は、重要度が高いリンクの種類に対するリンクの強度を強める補正を行うことを特徴とする請求項１から１８のいずれかに記載のグラフ構造推定システム。
【請求項２０】
リンクの強度に基づいてグラフ解析を行い、ノード毎の特徴量を出力するグラフ解析部を備えることを特徴とする請求項１から１９のいずれかに記載のグラフ構造推定システム。
【請求項２１】
前記グラフ解析部は、ノード毎の特徴量をノード毎の重要度とすることを特徴とする請求項２０に記載のグラフ構造推定システム。
【請求項２２】
前記グラフ解析部は、ノード毎の特徴量をノード毎の各クラスへの所属度とすることを特徴とする請求項２０に記載のグラフ構造推定システム。
【請求項２３】
解析者が前記解析情報を修正できる修正入力部を備えることを特徴とする請求項１から２２のいずれかに記載のグラフ構造推定システム。
【請求項２４】
前記修正入力部は、重要度で順位付けられたノードの順位を修正した場合に、修正したノードの前後の順位のノードの重要度に基づいて、前記修正したノードの重要度を推定することを特徴とする請求項２３に記載のグラフ構造推定システム。
【請求項２５】
前記修正入力部は、各ノードが所属するクラスを修正した場合に、前記ノードの前記クラスへの所属度を大きくすることを特徴とする請求項２３に記載のグラフ構造推定システム。
【請求項２６】
前記修正入力部は、ノードが２つ以上のクラスに所属していると修正した場合に、前記ノードの各クラスへの所属度を、前記解析者が与えたクラス数の逆数とすることを特徴とする請求項２３に記載のグラフ構造推定システム。
【請求項２７】
各ノードが保有する他ノードへの参照関係もしくは各ノードの特徴量と他ノードの特徴量との類似度に基づいて、ノード間に二種類以上のリンクの強度を求めるグラフ化部を備えることを特徴とする請求項１から２６のいずれかに記載のグラフ構造推定システム。
【請求項２８】
前記グラフ化部は、各ノードの特徴量が名義尺度で与えられている場合、前記名義尺度の１つの項目を１つのリンクの種類とみなすことを特徴とする請求項２７に記載のグラフ構造推定システム。
【請求項２９】
前記グラフ化部は、各ノードの特徴量が名義尺度で与えられている場合、前記名義尺度の複数個の項目を１つのリンクの種類とみなすことを特徴とする請求項２７に記載のグラフ構造推定システム。
【請求項３０】
前記グラフ化部は、各ノードの特徴量が順序尺度で与えられている場合、前記順序尺度を１つ以上に分割しカテゴリカルデータに変換することを特徴とする請求項２７に記載のグラフ構造推定システム。
【請求項３１】
二種類以上のリンクが含まれるグラフにおいて、ノードの解析情報と、前記ノード間のリンクの種別の特徴量とに基づいて、前記二種類以上のリンクの重要度を推定するリンク種別重要度推定ステップと、
前記リンクの重要度を用いて前記二種類以上のリンクの強度を補正するグラフ補正ステップと、を備えることを特徴とするグラフ構造推定方法。
【請求項３２】
コンピュータを、
二種類以上のリンクが含まれるグラフにおいて、ノードの解析情報と、前記ノード間のリンクの種別の特徴量とに基づいて、前記二種類以上のリンクの重要度を推定するリンク種別重要度推定手段と、
前記リンクの重要度を用いて前記二種類以上のリンクの強度を補正するグラフ補正手段として動作させることを特徴とするグラフ構造推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフ構造推定システム、方法、およびプログラムに関する。
【背景技術】
【０００２】
グラフとは頂点（ノード）の集合と辺（リンク）の集合とを有するデータを表す。人間関係をグラフで表すならば、ノードが人、リンクが血縁関係やコミュニケーションの関係などとなる。近年、ＷＷＷのリンク構造やＳＮＳにおける人の関係、生物学におけるタンパク質／遺伝子間の関係などグラフのデータ解析（以降、グラフ解析）が注目されている。グラフ解析には、ノードのランキング／クラスタリング／クラシフィケーション、ノード間のリンクの予測、グラフ中の特徴的な構造の抽出など、様々な種類がある。
【０００３】
グラフの構造は、ノード間に張られるリンクの有無やそのリンクの強度によって決まる。ここでは、ノード間に対するリンクの有無や強度を表現したものをグラフ構造と呼ぶ。
【０００４】
解析者がグラフ解析を行う際には、まず解析対象となるデータのグラフ構造を決める。例えば、Ｗｅｂページを解析するのであれば、Ｗｅｂページをノード、Ｗｅｂページ間のハイパーリンクをリンクとみなしグラフ構造とすることが多い。このとき、内容の類似性やドメインの共通性、作成者の同一性をリンクとしてもよい。また、人のコミュニケーションを解析するのであれば、人をノード、人同士のコミュニケーションツールの使用状況などをリンクとすることなどが多い。このとき、利用回数に応じてリンクの強度を定量化することも多い。情報共有のツールの例としては、ｅ−ｍａｉｌ、電話、ファイル共有システムなどがある。
【０００５】
上記例から分かるように、あるノード集合に対して、リンクの種類は複数存在する。どの種類のリンクが重要であるかは解析者や解析したい内容によって変化し、重視するリンクの種類が変わればグラフ構造も変化する。そのため、グラフ解析技術の解析結果がグラフ構造に依存する場合、グラフ構造をどのように構築するかが極めて重要となる。しかしながら、どのような種類のリンクを重視するかは解析者の主観に委ねられていることが多く明確な基準はない。
【０００６】
そこで、解析目的に適したグラフ構造を推定できる技術が望まれている。
【０００７】
従来、解析目的に適したグラフ構造を推定するための技術は報告されていない。類似する技術として、非特許文献１のように、ノードの特徴量を利用して、該ノード間における潜在的なリンクの有無を推定するリンク推定技術があるが、解析目的に適したグラフ構造を得るために、どのような種類のリンクを重視するかを決定するものではない。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】鹿島久嗣，“ネットワーク構造予測”，人工知能学会論文誌，  Ｖｏｌ．  ２２，  Ｎｏ．  ３，  ｐｐ．３４４‐３４７，２００７
【発明の概要】
【発明が解決しようとする課題】
【０００９】
グラフは潜在的に複数種類のリンクを有する。Ｗｅｂページや人の関係においても、上記例のように複数種類のリンクを付与できることがわかる。ただし、リンクは、ある情報源に基づいて、一定の基準により付与するものであるため、基準が決まれば、一つの種類のリンクで繋げるノードは固定的なものとなる。すなわち、一種類のリンクによって任意のグラフ構造を表現できるわけではない。また、付与できるリンクの種類を全て付与すると、グラフ構造が煩雑になる以外に、余分な種類のリンクのせいでグラフ解析が正しく行えないこともある。そのため、解析目的に適したグラフ構造を推定することが課題となる。
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的は、解析目的に適したグラフ構造を推定できるグラフ構造推定システム、グラフ構造推定方法、およびプログラムを提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決する本発明は、二種類以上のリンクが含まれるグラフにおいて、ノードの解析情報と、前記ノード間のリンクの種別の特徴量とに基づいて、前記二種類以上のリンクの重要度を推定するリンク種別重要度推定部と、前記リンクの重要度を用いて前記二種類以上のリンクの強度を補正するグラフ補正部とを備えることを特徴とするグラフ構造推定システムである。
【００１１】
上記課題を解決する本発明は、二種類以上のリンクが含まれるグラフにおいて、ノードの解析情報と、前記ノード間のリンクの種別の特徴量とに基づいて、前記二種類以上のリンクの重要度を推定するリンク種別重要度推定ステップと、前記リンクの重要度を用いて前記二種類以上のリンクの強度を補正するグラフ補正ステップとを備えることを特徴とするグラフ構造推定方法である。
【００１２】
上記課題を解決する本発明は、二種類以上のリンクが含まれるグラフにおいて、ノードの解析情報と、前記ノード間のリンクの種別の特徴量とに基づいて、前記二種類以上のリンクの重要度を推定するリンク種別重要度推定手段と、前記リンクの重要度を用いて前記二種類以上のリンクの強度を補正するグラフ補正手段として動作させることを特徴とするグラフ構造推定プログラムである。
【発明の効果】
【００１３】
本発明により、解析の目的に合ったグラフ構造を得ることができる。
【図面の簡単な説明】
【００１４】
【図１】複数のリンクの種類の一例を示す説明図である。
【図２】ノード間のリンクの強度の一例を示す説明図である。
【図３】ノード間の別のリンクの強度の別の一例を示す説明図である。
【図４】第１の実施の形態を示すブロック図である。
【図５】人物間のグラフの一例を示す説明図である。
【図６】複数種類のリンクの隣接行列の一例を示す説明図である。
【図７】リンク情報を記録する方法の一例を示す説明図である。
【図８】リンク情報をリンクの強度と共に記録する方法の一例を示す説明図である。
【図９】グラフ管理表の記録方式の一例を示す説明図である。
【図１０】本発明における解析情報の出力形式の一例を示す説明図である。
【図１１】隣接行列を加算したグラフ構造の一例を示す説明図である。
【図１２】ランキング結果の一例を示す説明図である。
【図１３】クラスタリングの入力に用いるデータの一例を示す説明図である。
【図１４】クラスタリング結果の一例をデンドログラムで示す説明図である。
【図１５】クラスタリング結果を示す説明図である。
【図１６】解析情報表の一例を示す説明図である。
【図１７】ランキング結果の出力形式の一例を示す説明図である。
【図１８】クラスタリング結果の出力形式の一例を示す説明図である。
【図１９】クラスタリング結果の別の出力形式の一例を示す説明図である。
【図２０】ランキング結果に対する修正の一例を示す説明図である。
【図２１】クラスタリング結果に対する修正の一例を示す説明図である。
【図２２】クラスタリング結果に対する修正結果を数値化した一例を示す説明図である。
【図２３】ノード相違度行列の一例を示す説明図である。
【図２４】リンク数行列の一例を示す説明図である。
【図２５】リンク相違度行列の一例を示す説明図である。
【図２６】推定したリンクの重要度を反映したランキング結果の一例を示す説明図である。
【図２７】推定したリンクの重要度を反映したクラスタリング結果の一例を示す説明図である。
【図２８】グラフ構造推定部のブロック図を示す説明図である。
【図２９】グラフの解析情報の一例を示す説明図である。
【図３０】推定されたグラフ構造の一例を示す説明図である。
【図３１】推定されたグラフ構造の出力方式の一例を示す説明図である。
【図３２】ノードの特徴ベクトルの一例を示す説明図である。
【図３３】ノードの特徴ベクトルを２値化した一例を示す説明図である。
【図３４】ノードの特徴ベクトルと隣接行列を繋げたリンク数行列の一例を示す説明図である。
【図３５】ノードの選択結果の一例を示す説明図である。
【図３６】２つの隣接行列で構成されるリンク数行列の一例を示す説明図である。
【図３７】各種リンクの重要度を求めた結果の一例を示す説明図である。
【図３８】各リンクの種類が出現する確率を求めた一例を示す説明図である。
【図３９】各種リンクの重要度を求めた結果の一例を示す説明図である。
【発明を実施するための形態】
【００１５】
（実施の形態１）
グラフ解析装置が算出した解析結果の妥当性の判断は解析者にしか行えない。そこで、解析者が妥当と判断する解析情報（ノードの解析情報に相当する）に基づいて、グラフ解析装置が算出した解析結果の各種リンクの重要度を推定し、リンクの強度を補正する。解析者が解析結果の全てを事前に把握していることはありえないが、結果の少なくとも一部については事前に確信を持てることが多い。例えば、企業内の人のコミュニケーションの活発さを解析することを想定しても、企業全体の状況は把握していないが、解析者の身近な人であればその活発さをある程度把握できているものと思われる。このような既知の情報は解析結果に少なからず含まれており、その結果について誤りがあれば、解析者は望ましい解析結果に修正できると考えられる。
【００１６】
解析結果が、解析者の知っている情報と食い違う場合、グラフ解析が正しく行えていないか、解析対象としているグラフ構造が不適切であるかの２つの要因が考えられる。グラフ解析を行うエンジンがパラメタを有し、その調整をしても知っている情報と食い違う結果しか得られない場合、グラフ構造が不適切である可能性は高まる。そこで、複数種類ある各リンクの重要度を修正しグラフ構造を変化させることで、求める結果に近づける。このとき得られるグラフ構造を、解析目的に適した構造とみなす。
【００１７】
以上のように、本発明では、グラフ解析の妥当さの要因をグラフ構造の適切さに求め、各種リンクの重要度を推定する問題に帰着させる。以下に、本発明において各種リンクの重要度を求めるための着想点を述べる。
【００１８】
グラフ解析エンジンは、グラフ構造によって解析結果が変化するものであり、同一種類のリンクが張られているノードは同一の解析結果となりやすいことを前提とする。この前提条件を満たすグラフ解析エンジンを用いる際に、解析目的に適した解析結果を得られるよう各種リンクの重要度を推定する。
【００１９】
処理の要点を以下にまとめる。
【００２０】
まず、妥当な解析結果をノード毎にまとめた解析情報ベクトル（ノードベクトル）を用いて、ノード間の相違度である「ノード相違度行列」を求める。ノード相違度行列は、行数および列数が共にノード数の正方行列であり、ｉ番目のノードとｊ番目のノードとのノードベクトルの相違度をｉ行ｊ列の要素に記録する。ノード相違度行列の要素は、類似するノードベクトルを有するノード間の相違度が小さく、ノードベクトルが似ていないノード間の相違度が高くなる。
【００２１】
次に、各ノードが他のノードとどの種類のリンクで繋がっているかをリンクの種類毎に数える。これにより各ノードが、リンクの種類毎に、何個のノードと繋がっているかを得ることができる。この情報を用いて、ノード間で何個のノードと繋がっているかの相違度をまとめた「リンク相違度行列」をリンクの種類毎に求める。リンク相違度行列はリンクの種類数分生成されることになる。各リンク相違度行列は、行数および列数が共にノード数の正方行列であり、ｉ行ｊ列の要素にｉ番目のノードとｊ番目のノードが有するリンクの数の相違度を記録する。リンク相違度行列の要素は、同一のリンクの種類で他ノードと繋がっているノード間の相違度が小さく、そうでないノード間の相違度が高くなる。このとき上記の解析エンジンの前提に基づくと、ノード相違度行列と重視するリンクのリンク相違度行列とは相関が高くなるはずである。そこで各種リンクのリンク相違度行列の加重和がノード相違度行列との相関が高くなるように、リンク相違度行列に乗ずる各種リンクの重要度を推定する。
【００２２】
図１はＳＮＳのネットワークからピックアップした４名の人に張られた４種類のリンクを示している。図１（ａ）は共通して所属しているコミュニティ数が多い人を表すリンク、（ｂ）はメールをやり取りしている頻度が高い人を表すリンク、（ｃ）は互いのサイトを閲覧し合っている回数が多い人を表すリンク、（ｄ）は互いの日記への書き込み数が多い人を表すリンクであるとする。各人が有しているリンクの種類別のリンクの数は、図1からわかるように、Ａ｛ａ、ｂ、ｃ、ｄ｝＝｛１、３、０、２｝、Ｂ｛ａ、ｂ、ｃ、ｄ｝＝｛１、１、１、２｝、Ｃ｛ａ、ｂ、ｃ、ｄ｝＝｛０、１、１、１｝、Ｄ｛ａ、ｂ、ｃ、ｄ｝＝｛２、１、２、１｝である（ノード間のリンクの種別の特徴量に相当する。）。
【００２３】
このグラフからコミュニケーションのキーパーソンを見つけるタスクを考える。グラフ解析エンジンは、各ノードに繋がっているリンクの強度の総計でコミュニケーション度合いを求めるものとする。このグラフ解析エンジンは、グラフ構造によって解析結果が変化し、同一の種類のリンクが張られている場合に解析結果が類似する特徴を有するため、前記の前提条件に合致する。
【００２４】
まず、解析者が図１の４種のリンクを用いて作ったグラフ構造が図２であるとする。図２中の数字はリンクの強度を表している。ここでは各ノード間に存在するリンクの種類数をリンクの強度としている。この値は、リンクの有無をリンクの強度の１又は０で表し、各種リンクの重要度を１．０とした場合において、ノード間のリンクの強度の加重和に相当する。解析エンジンは各ノード間のリンクの強度から、｛Ａ、Ｂ、Ｃ、Ｄ｝＝｛６、５、３、６｝を出力する。すなわち、ＡとＤとがキーパーソンと判定される。
【００２５】
ここで、解析者が解析対象者ＢとＤとを知っており、Ｂの方がＤよりもキーパーソンであると感じていたとする。この場合、解析者にとってこの解析結果は妥当ではない。そこで、解析者がＤよりもＢがキーパーソンであると入力したとする（ノードの解析情報に相当する。）。本発明では、この入力内容に基づいて、例えば、図１（ｂ）のリンクの重要度と図１（ｄ）のリンクの重要度とが１．０、図１（ａ）のリンクの重要度と図１（ｃ）のリンクの重要度とが０．０というような各種リンクの重要度を推定する。これは、図１（ｂ）と（ｄ）とのリンクを重視し、（ａ）と（ｃ）とを重視しないことを表す。
【００２６】
図１（ｂ）と（ｄ）とを用いて生成されたグラフ構造を図３に示す。図３に示すグラフ構造を同じグラフ解析エンジンで解析すると｛Ａ、Ｂ、Ｃ、Ｄ｝＝｛４、３、２、２｝という解析結果が得られる。この結果は、ＢよりもＤの方がコミュニケーション度合いを表す値が高くなっており、解析者が想定している結果に近づいている。
【００２７】
上述のような、例えば解析者が知りうる少なくとも一部の情報に基づいて各種のリンクの重要度を推定することで、解析の目的に合ったグラフ構造を得る方法について、以下で図面を参照しながら詳細に説明する。
【００２８】
実施の形態１で実現するグラフ構造メンテナンス装置のブロック図を図２８に示す。図２８に示すように、グラフ構造メンテナンス装置は、グラフ補正部１０２とリンク種別重要度推定部１０１とを有するグラフ構造推定部１０を含む。また、推定対象となるグラフ構造を記録するグラフＤＢ３０１がある。グラフ構造推定部１０は、プログラムに従って動作するコンピュータ（例えば、パーソナルコンピュータ等の情報処理装置）によって実現される。
【００２９】
本実施の形態では、解析器や解析者がノードまたはノード間の特徴量の少なくとも一部である解析情報を入力すると、グラフＤＢ３０１に記録されているグラフ構造から抽出できる前記ノード間のリンクの種別の特徴量に基づいて、グラフ構造推定部１０が解析目的に適したグラフ構造を推定する。解析目的に適したグラフ構造を出力できるので、解析者は推定されたグラフを使ってより良い解析を行うことができる。
【００３０】
以下、図５に示すグラフを例に各構成の処理について説明する。図５は、３種類のリンクを有するグラフである。各ノードは人であり、３種類のリンクは、「メッセンジャー」「電話」「ｅ−ｍａｉｌ」の３種類のコミュニケーション手段を表す。リンクで繋がれた人同士は、各種リンクが表すコミュニケーション手段により、頻繁に連絡しているものとする。なお、解析の際、ノード毎に予めユニークなＩＤ（ノードＩＤ）を付与しておく。こうすることで、コミュニケーション手段毎に別々に対話ログが記録されている場合でも同一人物を特定できる。図５の例では、各人にＡ〜ＧのＩＤが割り当てられているものとする。
【００３１】
まず、与えられているデータについて説明する。
【００３２】
グラフＤＢ３０１には、グラフの各種類のリンク情報が記録されている。グラフＤＢ３０１は、グラフ管理表によりグラフを管理する。グラフ管理表の１例を図９に示す。グラフ管理表には、グラフＩＤ、ノードＩＤ、リンクＩＤが記録される。「グラフＩＤ」欄には各々のグラフが特定できるようにユニークな値が記録される。グラフＩＤは人が付与しても良いし、グラフＤＢ３０１に記録する際に自動で採番されるようにしても良い。「ノードＩＤ」欄には前記グラフ中に含まれるノードＩＤを記録する。なお、記録順は後述の隣接行列の要素順とする。「リンクＩＤ」欄には前記グラフ間に含まれるリンクの種類のＩＤを記録する。また、リンクＩＤとリンク情報とを対応付けて記録するテーブルを別途用意しておく。「リンク情報」欄には、隣接行列など、ノード間の繋がりが参照できる情報を記録する。隣接行列とは、ノード数×ノード数の正方行列に、どのノード間が繋がっているかを記録したものである。隣接行列のｉ行ｊ列に格納される値は、ｉ番目のノードからｊ番目のノードに対するリンクの有無を表し、繋がっていれば１、繋がっていなければ０を記録する。なお、隣接行列では、ノード間のリンクの強度を連続値として記録しても良い。隣接行列は、無向グラフである場合に対称行列となり、有向グラフである場合、非対称行列となる。
【００３３】
図５に示すグラフの各種リンクの隣接行列を図６に示す。図６は、３種類のコミュニケーション手段によるリンクの状態を０又は１で表した隣接行列である。通常ｅ−ｍａｉｌ等は一方から他方への情報提供も行えるため、有向のリンクとなるが、ここでは単純化のため、双方向の繋がりとみなしている。この場合、隣接行列が対称行列になるため、図６では、隣接行列の下三角行列部分のデータを記載していない。また、図６の例では、メッセンジャー、電話、ｅ−ｍａｉｌの各隣接行列にそれぞれＬ１、Ｌ２、Ｌ３というＩＤを割り当てている。なお、隣接行列を記録する際、対称行列である場合には、下三角行列部分の情報を記録する必要はない。こうすることでメモリの使用量を抑えることができる。
【００３４】
なお、「リンク情報」欄には、隣接行列以外の記録方法を用いても良い。例えば、図７に示すように各ノードに繋がっているノードのＩＤをノード毎に記録するようにしても良い。
【００３５】
また、各リンク間の強度を記載する場合には、図８のように繋がっているノードのＩＤに加え、そのＩＤとのリンクの強度を記録するようにしても良い。図８では、「繋がっているノード：リンクの強度」というフォーマットで記録する例を示している。図７や図８のフォーマットでは、リンクを有するものに着目しているため、これらの情報を記録する際、記録容量を少なくできる効果がある。特に、隣接行列がスパースである場合、この効果は大きい。
【００３６】
次に、解析情報５０１について説明する。
【００３７】
解析情報５０１は、ノードの特徴量、ノード間の特徴量又はノード間の特徴量の類似度のいずれか又はその一部を表す。この解析情報５０１は、解析者が準備すれば良く、グラフＤＢ３０１のグラフデータを見て、自ら解析を行った結果を用いても良いし、リンクの強度に基づく既存のグラフ解析エンジンなどの解析結果を用いても良い。また、グラフ解析エンジンの解析結果を人が修正したものを用いても良い。また、グラフ解析エンジンの解析結果に対する妥当性を人手で評価し定量化した値を用いても良い。さらに、解析情報５０１は、ノード単位の特徴量以外に、ノード間に対する特徴量であっても良い。この例として妥当と判断できる各ノードの解析結果の関係性に対して、その確信度を［０：１］で付与したものを解析情報５０１とすることが挙げられる。解析結果の関係性とは、ノードのランキングにおける上下関係、クラスタリングにおける所属クラスタの同一性などである。下記の例では、解析情報５０１として、各ノードの重要度が得られているものとする。
【００３８】
各ノードの重要度の一例を図３０に示す。本例では、解析情報がノード毎に一つの定量値となっているが、解析情報５０１が、ノード毎に複数の値を持っても構わない。また、定量値以外に、文字列やカテゴリカルな値であっても良い。
【００３９】
リンク種別重要度推定部１０１は、解析情報５０１とグラフＤＢ３０１とからグラフデータに基づいて、各種類のリンクの重要度を算出し、その結果をグラフ補正部１０２に出力する。
【００４０】
リンク種別重要度推定部１０１では、解析情報５０１の類似度とノード間に付与されている各種リンクの類似度とに基づいて重要なリンクの種類を推定する。以下に処理手順について述べる。
【００４１】
まず、リンク種別重要度推定部１０１は解析情報５０１に基づいて、ノード間のノード相違度行列を求める。解析情報５０１が各ノードに対してベクトル形式で表現されている場合、解析情報５０１はノード数×ベクトルの要素数の行列で表すことができる。これを一般的に記載すると式１のように書ける。
（式１）
2010165166.tif 000003
【００４２】
なお、以降の説明では、ノード数をｎ、解析情報５０１のベクトル（ノードベクトル）の要素数をｍとする。
【００４３】
ノード相違度行列は、ｉ番目のノードとｊ番目のノードのノードベクトル同士のノルムの２乗を、ｉ行ｊ列の要素とする行列である。そのため、式２を用いると、ノード相違度行列は対称行列であり、対角要素は０となる。ノード相違度行列の導出方法を式２に示す。なお、式２から分かるように、ｉ番目とｊ番目のノードのノードベクトルが類似する場合、ｉ行ｊ列の要素の値は小さくなる。
（式２）
2010165166.tif 000004
【００４４】
図３０に示すノードの重要度から得られるノード相違度行列を図２３に示す。本例におけるノード相違度行列は対称行列となるため、下三角行列の記述を省略している。なお、ノード相違度行列を求める際は、必ずしも式２を用いる必要はなく、２つのノードのノードベクトルの類似度を測れれば、任意の関数で構わない。ノードベクトルの中に文字列が含まれる場合は、文字列の一致度を用いてノード相違度行列を求め、また、ノードベクトルの中にカテゴリカルなデータが含まれる場合には、数量化するなどしてその距離を測るようにしても良い。なお、上述したように解析情報５０１としてノードの関係性の確信度が与えられている場合は、それをノード相違度行列としても良い。
【００４５】
次に、リンク種別重要度推定部１０１はリンク相違度行列を求める。グラフＤＢ３０１からグラフの各リンクの種類の隣接行列を受け取る。次に、各種類のリンクの隣接行列から、リンク数行列を生成する。リンク数行列とは、各ノードが他のノードとどの種類のリンクで繋がっているかをリンクの種類毎に数え、まとめたものである。リンクの種類数をｄとするとリンク数行列は、式３に示すｎ×ｄの行列となる。式３の各行は、各ノードがリンクの種類毎に何個のノードと繋がっているかを表し、これをリンクベクトルと呼ぶ。
（式３）
2010165166.tif 000005
【００４６】
図５に示すグラフに対するリンク数行列を図２４に示す。図２４のＬ１、Ｌ２、Ｌ３はリンクＩＤであり、該行列の各要素の値は、図６の各種リンクの隣接行列から求められる。例えば図２４のＬ１列は、Ｌ１の隣接行列である図６のＬ１に対する隣接行列において行毎に横方向の総和を求めた値となる。
【００４７】
次に式３に示すリンク数行列から式４に示すリンク相違度行列を求める。リンクベクトルの各要素は、リンクの種類に対応する。リンク相違度行列は、ｉ番目のノードとｊ番目のノードのリンクベクトルのノルムの２乗を、ｉ行ｊ列の要素とする行列である。そのため、式４を用いるとリンク相違度行列は対称行列であり、対角要素は０となる。また、式４から分かるように、ｉ番目とｊ番目のノードのリンクベクトルが類似する場合、ｉ行ｊ列の要素の値は小さくなる。式４に付与されているｗｋは、ｋ種類目のリンクの重要度を表す。
（式４）
2010165166.tif 000006
【００４８】
本発明では、解析目的に適したｗｋを推定する。図２４に示すリンク数行列のリンク相違度行列を求めると図２５のようになる。図２５では、Ａに対する各ノードとのリンク相違度を記載している。例えば、Ａ＝｛２、０、０｝とＢ＝｛２、２、０｝とが交差するセルでは、式４から（２−２）＾２×ｗ１＋（０−２）＾２×ｗ２＋（０−０）＾２×ｗ３＝４ｗ２となる。なお「＾２」は２乗を表す。また、本例におけるリンク相違度行列は対称行列となるため、下三角行列の記述を省略している。さらに、リンク相違度行列を求める際は、必ずしも式４を用いる必要はなく、２つのノードのリンクベクトルの類似度を測れる式であれば、任意の関数で構わない。
【００４９】
また、リンクベクトルは、他の特徴量を用いても構わない。例えば、ノード毎に各種リンクの隣接行列をつなぎ合わせたものをリンクベクトルとしてもよい。このとき、リンクの種類数がｄ個、ノード数がｎ個の場合、ｍ＝ｄ×ｎとなり、各ノードがどのノードとどの種類のリンクと繋がっているかという詳細な類似度を求めることになる。また、リンク数行列を求める際に各リンクの種類別に出次数と入次数とを分けて数えるようにしても良い。さらに、各ノードが何らかの特徴ベクトルを有する場合、上記のリンクに関する特徴ベクトルと前記ノードの特徴ベクトルとをつなぎ合わせたものをリンクベクトルとしても良い。こうすることで、リンクの特徴量では測れないノードの類似度を考慮することができる。
【００５０】
最後に、リンク種別重要度推定部１０１は、ノード相違度行列と、リンク相違度行列とに基づいて、各リンクの種類の重要度を求める。本発明で前提としている「同一種類のリンクが張られているノードは同一の解析結果となりやすいこと」という性質に基づくと、式２と式４との各要素の相関係数が高くなる。そこで、式５を目的関数として、式５の値が最大となる各種リンクの重要度ｗを推定する。式５のｃｏｒｒｅｌは、引数である２つの行列の各要素を比較して相関係数を求める関数である。
（式５）
2010165166.tif 000007
【００５１】
なお、各種リンクの重要度を示すベクトルの要素数はリンクの種類数ｄに等しい。ｗは、リンクの種類数を要素数とし、グラフＤＢ３０１のリンクＩＤ欄に記載されているリンクＩＤとその要素の順番が対応するものとする。そのため図９のＧ１に対するｗは、要素数が３であり、ｗ＝｛Ｌ１に対する重要度，Ｌ２に対する重要度，Ｌ３に対する重要度｝という値を持つ。
【００５２】
ｗを推定する方法は、既存の最適化方法を用いれば良い。式５をｗについて微分し最急降下法などで最適化しても良い。ただし、ｗについては、各要素の総和が１となる、またノルムが１になる、など制約を加え最適化する。このとき制約は、予め解析者が登録しておいた値域の範囲内で行うようにしても良い。また、回帰分析を用いて解を導出しても良い。線形回帰を用いた場合、ノード相違度行列の各要素を目的変数、ｗを説明変数とすることで、容易にｗを解くことができる。この際には、求められた各リンクの種類に対する重要度の有意性を検定し、有意でないリンクの重要度を０とみなすこともできる。
【００５３】
図３０に示すノードの重要度が与えられている場合の処理について述べる。各種リンクの重要度がｗ＝｛１、１、１｝の場合、式５の目的関数の値は０．１２７となる。これに対してリンク種別重要度推定部１０１により、式５を最大化するｗを求めるとｗ≒｛０．４、０．６、０｝が得られる。このときの目的関数の値は０．４０２をとる。すなわち、図３０のノードの重要度に対しては、Ｌ１：メッセンジャーとＬ２：電話によるリンクとを重視し、Ｌ３：ｅ−ｍａｉｌを無視する方が、前記望ましい解析結果を表すグラフ構造となる。以上のようにして、各種リンクの重要度を推定する。
【００５４】
なお、解析情報がノードの重要性を表すものである場合には、該重要なノードのみでノード相違度行列やリンク相違度行列を生成し、各種リンクの重要度を求めるようにしても良い。
【００５５】
次に、リンクの種類の重要度を求める他の方法として、解析情報５０１として、妥当な解析結果を有するノードに対して確信度が与えられている場合や、ノード間の解析結果の関係性に関する確信度が入力されている場合に適した重要度の推定方法を説明する。該方法では、選択されたノードに対するリンクの類似度を用いて各種リンクの重要度を求める。以下では、妥当な解析結果を有するノードに対して確信度が与えられている場合において各種類のリンクの重要度を求める方法について説明する。
【００５６】
図３５に解析情報の例を示す。図３５はＡからＤの４つのノード毎の解析情報である。表中の０又は１は確信度を表し、１が確信度の高い重要なノード、０がそうでないノードを表す。本例では、確信度を０又は１にしているが、確信度は［０：１］の範囲で連続値としてもよい。各論文（ノード）のリンク数行列の一例を図３６に示す。該リンク数行列は、各論文の参照関係と類似内容の隣接行列をつなぎ合わせたものである。これは、前述したように、リンクベクトルがリンクの種類数（ｄ）×ノード数（ｎ）になるパターンである。このとき、リンクベクトルの要素数（ｍ）はｄ×ｎ個となるため、求める重要度の個数もｍとなる。すなわち、該例においては、各論文が「ある特定の論文を参照（／類似）している」という関係が一つのリンクの種類となる。以下では、リンクの種類に対する重要度（ｍ個）を求める処理について述べる。
【００５７】
まず、単純なものとして、解析情報の０と１と、各々の隣接行列の各列の０と１との相関性が高いリンクの種類を重要とみなす方法を述べる。
【００５８】
リンク種別重要度推定部１０１は、確信度が１である論文のリンクベクトルの各要素の値を加算し、リンクの種類の重要度を求める。該処理により、確信度の高いノードに共通する種類リンクを重視する重要度を求めることができる。
【００５９】
図３６の例に対して該処理を適用した結果を図３７に示す。図３７では、論文ＡとＣとに共通して１が含まれている「参照：Ｄ列」と「類似内容：Ｂ列」に対する重要度の値が高くなっている。これは、各論文において、論文Ｄを参照するリンクを含み、かつ論文Ｂと内容が類似するというリンクを含むことが、解析情報５０１において選択されやすい条件であることを表す。
【００６０】
ただし、この方法では、リンク数行列において、縦方向に１が多く含まれるリンクの種類が重要と判断されやすくなる。例えば、図３６に示す例の「類似内容：Ｂ列」は、要素の全てが１であるため、どの論文が選択されても重要度が高くなる。そのため、解析情報と、リンク数行列の縦方向の各列のベクトルとの相関係数を重要度としてもよい。この場合においては、解析情報のベクトルが｛０、１、０、１｝であり、リンク数行列の「類似内容：Ｂ列」は｛１、１、１、１｝であるため、該リンクの相関係数が０となり類似内容：Ｂの重要度を０と判定することができる。なお、本処理において相関係数が負である場合は、重要度を０とする。
【００６１】
また、各リンクの種類の出現確率を用いて各種類のリンクの重要度を求めることができる。図３８は図３６に示すリンク数行列の縦列（リンクの種類）毎にそのリンクが張られる確率を計算した結果である。例えば、「参照：Ｂ列」であれば、４つのノードのうち１つのノードが１となっているため、出現確率は１／４＝０．２５となる。すなわち、各論文において、論文Ｂを参照するリンクの出現確率は０．２５であることを表す。
【００６２】
このようにして求めた確率を用いて、確信度の高いノードが、各種リンクをどの程度含みやすいかを重要度とする。この指標は、上記の方法と同様、確信度の高いノードにおいて、よく張られている種類のリンクに対する重要度が高くなる。
【００６３】
以下に処理の詳細を述べる。第ｉ列のリンクの種類の出現確率をｐｉとする。解析情報５０１において、選択されているノード数がｒｉ個であるとする。なお、ｒｉを求める際には確信度が連続値である場合を考慮し、各種リンクにおける全ノードの確信度の総和としても良い。さらに、確信度に対して各種リンクに対するリンクベクトルがリンクの強度で与えられている場合には、該リンクの強度と確信度の積和をｒｉとして用いても良い。第ｉ列のリンクの種類において、選択されたノードに該リンクの種類が含まれる平均的個数ｕｉとその分散ｓｉは、二項分布の公式より式６および式７により求められる。
（式６）
2010165166.tif 000008
（式７）
2010165166.tif 000009
【００６４】
リンク種別重要度推定部１０１は、まず、このｕｉおよびｓｉをリンクの種類毎に求める。次に、リンク種別重要度推定部１０１は、選択されたノードのうち、第ｉ列目のリンクの種類において、該リンクの種類を含んでいる数ｘｉを数える。次に、ｘｉを式８により、平均０、分散１に標準化した値であるｚｉを求める。
（式８）
2010165166.tif 000010
【００６５】
二項分布は、ｒｉ×ｐｉおよびｒｉ×（１−ｐｉ）の値が大きい場合、正規分布で近似できることが知られている。そこで、標準正規分布Ｎ（０、１）を−∞からｚｉまで積分した値をリンクの種類の重要度とする。なお、ｒｉが大きくｐｉが小さい場合は、ポアソン分布に従うため、正規分布ではなくポアソン分布を用いる。
【００６６】
図３６に示すリンク数行列に対して、該処理を適用して求めた各種リンクの重要度を図３９に示す。図３９から、Ｄの論文を参照しているリンクの種類（「参照：Ｄ列」）が最大の重要度となっている。これは、選択されている論文がＡとＣであるのに対して、論文Ｄを参照するという種類のリンクがＡとＣとに含まれているためである。上記処理により、選択されている論文と相関性の高いリンクの種類の重要とみなす重要度を導出することができる。また、「参照：Ｂ列」と「類似内容：Ｃ列」とはｘｉの値が同じ１となるが、１の出現確率が低い「参照：Ｂ列」に対する重要度の方が高くなっている。これにより、上記処理が、出現しづらいリンクの種類が選択されているノードに含まれている場合に、該リンクの種類に対する重要度を高める効果があることを確認できる。
【００６７】
なお、上記処理で求めた重みは、総和が１、２乗ノルム１、最小値が０で最大値が１などの補正を行っても良い。
【００６８】
また、解析情報が重要なノードを選択した結果である場合、グラフ補正部１０２は、グラフＤＢ３０１から各種リンク情報を得、また各種リンクの重要度に基づいてグラフ構造を求め、出力部２０１に出力する。
【００６９】
各種類のリンクの有無やリンクの強度の値は同一の基準であるとは限らない。これは、リンクの強度を定量化した場合において、電話のリンクの１．０と、ｅ−ｍａｉｌのリンクにおける１．０とが比較できないことを意味する。そのため、リンクの強度に対する基準を設け、リンクの強度を補正する。これは、リンクの種類毎の重要度を決めることと等価である。
なお、上記処理は、ノード間の解析結果の関係性に関する確信度が与えられている場合においても同様に適用できる。その場合には、確信度の高いノード間に含まれる各種リンクの数とノードとの組み合わせ数の比により前記出現確率をｐｉを計算するようにすればよい。
【００７０】
グラフ補正部１０２は、リンク種別重要度推定部１０１から出力された各リンクの種類に対する重要度をリンクの強度に乗算することにより、該リンクの強度を補正しグラフ構造を求める。本例では、グラフＤＢ３０１から図６に示す隣接行列を得、リンク種別重要度推定部１０１で推定された各リンクの重要度ｗ＝｛０．４，０．６，０｝を乗算することにより、グラフ構造を得る。得られるグラフ構造を図３０に示す。最後に、グラフ補正部１０２は、求められたグラフ構造をグラフＤＢ３０１に出力し、グラフデータを更新する。
【００７１】
（実施の形態２）
実施の形態２は、グラフ構造推定部１０を用いたグラフ解析装置である。グラフ解析装置の構成を図４に示す。図４は図２８の構成に加え、グラフ化部２０２とグラフ解析部２０３と出力部２０１と修正入力部２０４、および元データＤＢ３０２と解析結果ＤＢ３０３とを有する。
【００７２】
本実施の形態では、グラフ解析部２０３や修正入力部２０４をグラフ構造推定部１０と連携させることにより、解析器又は解析者によってノードの特徴量、ノード間の特徴量又はノード間の特徴量のいずれか又はその一部である解析情報が入力されると、解析目的に適したグラフ構造の推定ができる。
【００７３】
元データＤＢ３０２はグラフ解析を行う元データを記録する。
【００７４】
解析データの対象は任意のもので良い。人の対話ログ、Ｗｅｂページや論文、特許など様々な情報源がある。対話ログは人同士のコミュニケーション状態を解析する際に用いることができる。図５に示すようなグラフによってコミュニケーションを分析するのであれば、メッセンジャー、電話、ｅ−ｍａｉｌ、に関するログを記録しておく。メッセンジャーでは、発言日時、発言者、発言内容を記録し、電話では、通話時刻、Ｆｒｏｍ、Ｔｏ、通話時間などを記録しておく。また、ｅ−ｍａｉｌであれば送受信日時、Ｆｒｏｍ、Ｔｏ、内容などをログとする。
【００７５】
グラフ化部２０２は、元データＤＢ３０２から解析対象となるデータを得、任意の基準に従いノードとリンクとを抽出しグラフを生成する。また、得られたグラフをグラフＤＢ３０１に記録する。
【００７６】
グラフ化部２０２は、想定される様々なリンクの種類をデータに付与する。何をノードとし、何をリンクとするかは、事前に人が指定するものとする。ノードは、解析したい内容と直結しているため容易に決定できる。人のコミュニケーションを解析する場合は、人をノードとし、Ｗｅｂページを解析するのであればＷｅｂページをノードとすればよい。
【００７７】
一方、リンクはノード間の何かしらの関係性を表すため、潜在的に複数種類あることが多く、どのようなリンクが解析にとって望ましいものであるかを決めることは容易ではない。そのため、解析に関係しそうなリンクはできる限りノード間に付与しておく。
【００７８】
図５に示す例では、単純化のため、３種類のコミュニケーションツールでリンクを張っている。しかしながら、これ以外にも、掲示板、ブログなど様々な手段があるため、本来はそれらのログを用いてリンクを張っておくことが望ましい。
【００７９】
グラフ化部２０２では、元データから各種類のリンクでどのようにノードが繋がっているかがわかる情報を生成する。その一つに隣接行列の生成がある。グラフ化部２０２は、事前に定められたノードとなる情報間のリンクの有無およびそのリンクの強度を元データから求める。対話ログを用いる場合、人をノードとし、ｅ−ｍａｉｌのログであれば、ＦｒｏｍとＴｏとの人間で、ある一定回数以上のメールのやり取りがあれば、ｅ−ｍａｉｌのリンクがあると判定すればよい。
【００８０】
また、やり取りされているｅ−ｍａｉｌの数に応じてリンクの強度を変化させても良い。このときリンクとみなす回数の閾値や、回数をリンクの強度に変換する関数は、事前に解析者が設定ファイル等に記載し、グラフ化部２０２が処理前にそれを読みこむようにしておく。以上の処理によって、隣接行列が求められる。
【００８１】
また、複数のログ情報に基づいて複数種類のリンクを抽出する以外に、一つの情報源から情報抽出を行い、複数種類のリンクを張っても良い。その代表例としてＷｅｂページが挙げられる。Ｗｅｂページの解析は、ＨＴＭＬ文からハイパーリンクを抽出することによってページ間の直接的なリンクを張ることができる。
【００８２】
また、そのほかにも各ページのＵＲＬからドメインを抽出し、そのドメインの文字列の一致率によって類似度を求め、リンクを張るようにしても良い。この場合には、類似度の大きさをリンクの強度とすることもできる。また、同じ類似度でも、各ページの文字列を抽出し、ページ間における文字列の類似度を判定すれば、内容の類似度を測れる。また、ノードとなる情報が特徴ベクトルを有する際、特徴ベクトルにおける各特徴量の値毎にリンクの種類を変えるようにしても良い。
【００８３】
論文間にリンクを張る例を用いて処理について説明する。ＡからＤの４つの論文が図３２に示す特徴ベクトルを有するとする。図３２の例では、発行年、著者、キーワードが、各論文の特徴ベクトルとして与えられている。このとき、各特徴量の値を一つのリンクの種類とみなし、その値を含む／含まないで論文の特徴量を２値化する。
【００８４】
図３２の例を２値化した結果を図３３に示す。図３３の例では、名義尺度で与えられている著者とキーワードは、各著者名、各キーワードを一つのリンクの種類としている。また順序尺度で与えられている発行年は、２００５年を区切りに特徴量を２値化している。順序尺度の区切り位置に関しては、解析者がグラフ化部２０２の設定ファイルに記載し、グラフ化部２０２が実行時に該設定ファイルを読み込むようにすれば良い。
【００８５】
このようなデータ変換を行った後、リンクの種類毎にリンクを張る。すなわち、「著者」という単位ではなく、図３３の例では、「著者＝山本」という単位を一つのリンクの種類とみなす。著者＝山本という種類のリンクでは、論文Ａと論文Ｂとが結ばれることになる。このようなデータ変換を行うことでリンクの種類を細分化することができるため、グラフの解析において、より詳細な解析を行えるようになる。
【００８６】
なお、名義尺度を分ける際には、図３３のように値毎に一つの分類項目を割り当てるのではなく、複数の値で一つの分類項目にしても良い。例えば、図３３の著者の列において、「山本、細見」を一つの分類項目とするなどである。
【００８７】
また、このようにノードの特徴量ベクトルに基づくリンクと、上記の例のように、ノード間での引用関係や類似度などをさらにリンクの種類として加えても良い。
【００８８】
図３４は、論文間の参照関係や類似度を隣接行列にしたものを前記の２値化後の論文の特徴量に付与したものである。本発明では、図３４のようなデータを前記のリンク数行列としても利用できる。
【００８９】
グラフ化部２０２の出力の一例を図６に示す。図６は、３種類のコミュニケーション手段によるリンクの状態を０又は１で表した隣接行列である。この隣接行列は図５のグラフ構造と対応している。
【００９０】
最後に、グラフ化部２０２は、リンクの種類毎に求めた隣接行列をグラフＤＢ３０１に出力する。なお、どのリンクに対する隣接行列であるかがわかるようにあらかじめ、各隣接行列には、ユニークなＩＤを割り当てて、そのＩＤと共に隣接行列を出力する。図６の例では、メッセンジャー、電話、ｅ−ｍａｉｌの各隣接行列にそれぞれＬ１、Ｌ２、Ｌ３というＩＤを割り当てている。
【００９１】
なお、リンクの情報の出力方法は隣接行列でなくても良い。例えば、実施の形態１でも説明したように図７に示すように各ノードに繋がっているノードのＩＤを出力するようにしても良い。
【００９２】
グラフＤＢ３０１は、グラフ化部２０２から出力された各種類のリンク情報を記録する。グラフＤＢ３０１は、グラフ管理表によりグラフを管理する。グラフ管理表の一例を図９に示す。グラフ管理表には、グラフＩＤ、ノードＩＤ、リンクＩＤを記録する。「グラフＩＤ」欄には各グラフを特定できるようにユニークな値を記録する。グラフＩＤは人が付与しても良いし、グラフＤＢ３０１が自動で割り当てても良い。「ノードＩＤ」欄には前記グラフ中に含まれるノードＩＤを記録する。なお、記録順は後述の隣接行列の要素順とする。「リンクＩＤ」欄には前記グラフ間に含まれるリンクの種類のＩＤを記録する。また、リンクＩＤとリンク情報を対応付けて記録するテーブルを別途用意しておく。「リンク情報」欄には、隣接行列など、ノード間の繋がりが参照できる情報を記録する。なお、隣接行列を記録する際、対称行列である場合には、下三角行列部分の情報を記録する必要はない。こうすることでメモリの使用量を抑えることができる。また、「リンク情報」欄には、グラフ化部２０２で説明したようにノード毎に繋がっているノードを記録するようにしても良い。
【００９３】
なお、予め元データＤＢ３０２に記録されている元データにデータＩＤを付与しておき、データＩＤとグラフＩＤとを対応付けておいても良い。こうすることで、グラフＤＢ３０１から元データを参照することができるようになる。
【００９４】
この他、グラフ管理表には、各種リンクＩＤに割り当てるラベルを記録しても良い。ラベルはグラフの登録者やグラフ解析システムのユーザが登録できるようにしておけば良く、図６の例であれば、Ｌ１、Ｌ２、Ｌ３にそれぞれ「メッセンジャー」、「電話」、「ｅ−ｍａｉｌ」というラベルを割り当てることなどが考えられる。
【００９５】
グラフ補正部１０２は、グラフＤＢ３０１から各種リンク情報を得、また各種リンクの重要度に基づいてグラフ構造を求め、グラフ解析部２０３に出力する。
【００９６】
グラフ補正部１０２の動作は実施の形態１と同様である。本発明では、このリンクの重要度を後述する処理により、解析結果に対する解析者の修正に基づいて推定する。ここで、各種リンクに対する重視度を重みベクトルｗで表す。ｗは、リンクの種類数を要素数とし、グラフＤＢ３０１のリンクＩＤ欄に記載されているリンクＩＤとその要素の順番とが対応するものとする。そのため図９のＧ１に対するｗは、要素数が３であり、ｗ＝｛Ｌ１に対する重要度，Ｌ２に対する重要度，Ｌ３に対する重要度｝という値を持つ。
【００９７】
グラフ補正部１０２は、リンク種別重要度推定部１０１から出力された各リンクの種類に対する重要度をリンクの強度に乗算することにより、その値を補正しグラフ構造を求める。なお、最初の処理では、リンク種別重要度推定部１０１からの出力がないため、事前に解析者によって与えられた重要度を用いる。解析者による重要度は設定ファイルに記載するものとし、グラフ補正部１０２がその値を読み込めば良い。なお、設定ファイル等を用意せず、事前に定めておいた値をグラフ補正部１０２が与えるようにしても良い。
【００９８】
また、リンク種類において解析に対して明らかに重要なものがあることを考慮できるように、リンクの種類毎に重要度の値域を設定できるようにしても良い。この値域はグラフ構造推定部１０が情報を保有することにより、リンク種別重要度推定部１０１が、この値域内で重要度を求められるようになる。
【００９９】
本例では、グラフＤＢ３０１から図６に示す隣接行列を得、事前に定められた各リンクの重要度をｗ＝｛１，１，１｝であるとする。これは、リンクの各種類でリンクの強度の基準は同等であることを表す。上記ｗを用いると、隣接行列とグラフ構造とが同等のものになるため、以後、図６に示す隣接行列をグラフ構造として処理の詳細を述べる。
【０１００】
最後に、グラフ補正部１０２は、求められたグラフ構造をグラフ解析部２０３に出力する。上記例では、図６の情報を出力することになる。
【０１０１】
グラフ解析部２０３は、グラフ補正部１０２から得たグラフ構造を解析し、解析結果を所定の出力形式にて解析結果ＤＢ３０３および出力部２０１に出力する。
【０１０２】
グラフ解析部２０３は、前述のように、グラフ構造によって解析結果が変化するものであり、同一種類のリンクが張られているノードは同一の解析結果となりやすいことを前提とする。また、グラフの各ノードの解析結果が要素数ｍ個のベクトルであるとすると、全ノードｎ個の解析結果はｎ×ｍの行列形式で表せる。
【０１０３】
この出力形式で解析結果を出力できるグラフ解析技術は多い。その例を図１０に示す。例えば、ノードのランキングは、ノード毎の重要度を出力するため、図１０（ａ）に示す出力形式で表現できる。すなわち、ｍ＝１のベクトルが解析結果と考えればよい。また、ノードのクラスタリングやクラシフィケーションであれば、ｍ＝クラス数とし、図１０（ｂ）の出力形式で表現できる。図１０（ｂ）はクラス数を３とした場合の例であり、各ノードの行で１が付与されているクラスに該ノードが所属していることを表す。図１０（ｂ）では、各ノードがどのクラスに所属するかを０又は１で分けているが、ソフトクラスタリングなどの場合は、各ノードが各クラスへ所属する確率である所属度を出力するようにしてもよい。また、ノード間のリンクを推定する問題や類似度を判定する解析であれば、図１０（ｃ）に示すように、ｍ＝ｎとした行列によって出力を表現できる。ｉ行ｊ列の要素に、ｉ番目とｊ番目のノード間にリンクが存在する確率やノードの類似度を出力する。図１０（ｃ）は、その値を０又は１で出力した場合の例を示している。
【０１０４】
グラフ解析部２０３の具体例を挙げる。例えば、解析者は、コミュニケーションのキーパーソンを見つけるために、各ノードの重要度を求めるランキングエンジンを用いたとする。このグラフ解析部２０３は、図６に示すようなコミュニケーションに関するグラフ構造に基づいて、コミュニケーションの各メンバのキーパーソン度合いを求める。
【０１０５】
このランキングエンジンは、様々なコミュニケーション手段で多くの人と連絡をとっている人を重要とするアルゴリズムで動作する。直感的には、図５のグラフにおいて、各ノードに繋がっているリンクをそのリンクの種類の重要度を考慮し、加重和をとるものである。
【０１０６】
下記にランキングエンジンが行う処理の概要を説明する。各ノード間における各種類のリンクの強度の総和を求める。この処理は、図６の３種類のリンクの強度を加算する処理に等しい。加算計算の結果を図１１に示す。
【０１０７】
次に、この行列の縦方向の総和を計算し、求められた値を各列に対応するノードの重要度とする。この処理は各ノードの入次数を数える処理になる。こうして得られる、各ノードの重要度を図１２に示す。図６における各リンクの種類の重要度を等価としているため、図１２の結果では、図５に示すリンクの本数順にキーパーソンとなる結果が得られている。
【０１０８】
次に別のグラフ解析部２０３の具体例について説明する。
【０１０９】
各メンバが形成するコミュニティを発見するために、グラフ解析用のクラスタリングエンジンを用いたことを仮定する。
【０１１０】
ここでクラスタリングエンジンとして、隣接するノードが類似するノードを一つにまとめる方法を用いたとする。このクラスタリング手法は隣接行列を各ノードの特徴ベクトルとみなし、その特徴ベクトルのノード間の距離を測ることで実現できる。
【０１１１】
そこで、図６に示すグラフ構造の和を求め総合的な隣接行列に対してクラスタリングを行う。ただし、図６のグラフ構造をそのまま用いるのではなく、対角要素を１に変えたものを用いる。これは、自分自身とは情報共有が行えていることを表すためである。図６に示すグラフ構造を加算した結果を図１３に示す。
【０１１２】
また、この行列に対してウォード法によりクラスタリングを行うことで得られるデンドログラムを図１４に示す。図１４の左側のＡ〜ＧはノードＩＤを表している。また、図中でマージされているノードは、図中の上部の数字が表す距離で同一クラスタとみなされることを意味する。すなわち、ＦとＧは距離約２．５で一つのクラスタと判定されたことになる。図１４によれば、クラス数を２とした場合には、｛Ａ、Ｂ、Ｃ、Ｄ、Ｅ｝と｛Ｆ、Ｇ｝という２つのクラスタに分かれることになる。グラフ解析部２０３はこの結果を、図１５に示すフォーマットで出力する。
【０１１３】
解析結果ＤＢ３０３は、グラフ解析部２０３から出力される解析結果を入力となるグラフ構造と対応付けて記録する。
【０１１４】
解析結果の記録方法の一例を図１６に示す。図１６に示す解析情報表は、各解析に対するユニークなＩＤ、解析対象となったグラフのグラフＩＤ、グラフを解析した方法、解析の際に用いた各リンクの種類に対する重み、および、解析結果を記録する。該図では、上記ランキング結果を記録した例を示している。解析方法に関しては、解析手法などに予めＩＤを付与しておき、そのＩＤを記録するようにしておけば良い。
【０１１５】
出力部２０１は、グラフ解析部２０３から解析結果を受け、その解析結果を解析者にわかるように表示する。出力部２０１は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現される。
【０１１６】
例えば、グラフ解析部２０３で用いた解析技術がランキングであれば、重要度の高い順にノードＩＤを表示すれば良い。ランキングにおける出力形式の一例を図１７に示す。図１７に示す出力により、Ｅさんが様々な人とコミュニケーションを交わしていることが解析者に伝えられる。なお、出力結果は後に、解析者に修正されることを想定しているため、図１７に示す出力結果であれば、ノードの順位を入れ替えられるようにしておくことや、重要度の数値を変更できるようにしておく。
【０１１７】
次に、グラフ解析部２０３で用いた解析技術がクラスタリングである場合を述べる。クラスタリングにおいては、図１５に示すデータをそのまま出力しても良いし、図１８に示すように、図１５の結果をラジオボタンとして表示しても良い。ラジオボタンとすることで、解析者は結果を容易に修正することができる。
【０１１８】
また、図１９のようにクラスタリング結果がわかりやすいようグラフを表示し視覚的にクラスタ情報を表現しても良い。図１９の例では、枠線に囲まれたノード群が一つのクラスタを表している。このとき、ノードは自由に動かせるようにしておき、解析者が解析結果を見た際、クラスタを自由に変更できるようにしておいても良い。図１９を表示するためには、出力の際、グラフ構造の情報も必要となるため、出力部２０１は、グラフＤＢ３０１から、グラフＩＤをキーとして各リンクの隣接行列を参照する必要がある。
【０１１９】
修正入力部２０４は、出力部２０１によって提示された結果に対する解析者からの修正情報をリンク種別重要度推定部１０１に出力する。
【０１２０】
修正は、キーボードやマウスなど既存の入力デバイスを用いれば良い。
【０１２１】
修正入力部２０４を用いて解析者が行う操作を具体的に説明する。ランキングの解析結果として図１７に示す出力が提示されていることを想定する。解析者がＢとＥとは個人的に知り合いであり、ＥよりもむしろＢの方がコミュニケーションのキーパーソンであると感じていたとする。しかしながら、図１７に示す出力結果では、Ｅの方がＢよりも上位にランクされている。解析者は、自身が思う基準でランキングされていないと判断した場合、解析結果を修正する。修正の一例を図２０に示す。該図ではＥの重要度をＢの重要度より低い３に変えている。
【０１２２】
また、クラスタリングの解析結果として図１８に示す出力が提示されていることを想定する。このとき、解析者がＢ、Ｅ、Ｆとは知り合いであり、ＦとＧ間よりもＢとＦ間の情報交換が密であると感じていたとする。このとき、解析者は、自らが思う基準でクラスタリングされていないと判断した場合、解析結果を修正する。修正の一例を図２１に示す。該図では、クラス１をＢとＦとに変更している。
【０１２３】
このような変更がなされた場合、修正入力部２０４は、この修正情報を解析結果の出力形式に合うようにし、リンク種別重要度推定部１０１に出力する。
【０１２４】
図２０のようにランキングであれば、変更後の重要度を出力する。なお、ランキングの出力に対して、出力順序を変更できるようなＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いた場合は、一意に変更後の重要度が求められない場合がある。
【０１２５】
例えば、図１７において、ＥをＦの下に位置させる操作が行われた場合は、重要度が４であるＦと重要度が３であるＣとの間にＥが来ることになるため、前記２つの重要度の平均値をＥの重要度として、リンク種別重要度推定部１０１に出力するようにする。
【０１２６】
図２１のようにクラスタリングであれば、各クラスタへの所属度をリンク種別重要度推定部１０１に出力する。図２１の修正結果を、本発明の出力形式に合うように、所属度として表現した結果を図２２に示す。図２２を見てわかるように、所属クラスが変更されたＡ及びＣからＦは、変更後のクラスの所属度が大きくなっている。尚、本例では、各クラスタへの所属度を０又は１で表現している。このとき、一つのノードに対して、複数のクラスタを選択できるようにしておき、選択されたクラスタの数の逆数を、選択されたクラスタの所属度にするようにしても良い。また、図１８に示す出力形式ではなく、図１５に示すように、所属度そのものを出力するようにし、その値を解析者自らが変更できるようにしておいても良い。この場合、どのデータとどのデータとが類似しているかという細かい要望をリンク種別重要度推定部１０１に伝えることができる。
【０１２７】
なお、修正入力部２０４では、例えば、解析者が興味あるノードを選択するような出力形式であれば、選択されたノードのＩＤを受け取り、該ノードの値を１、そうでないノードの値を０とする解析結果を生成するようにしても良い。
【０１２８】
最後に、修正入力部２０４は、どのグラフに対する解析結果であるかがわかるように解析ＩＤおよび修正後の解析結果をリンク種別重要度推定部１０１に出力する。このとき、修正結果としては、修正した部分を出力するようにしても良い。こうすることで、出力するデータ量を減らすことができる。
【０１２９】
リンク種別重要度推定部１０１は、修正入力部２０４から入力されるノードの解析情報とグラフＤＢ３０１に格納されているグラフの情報であるノード間のリンクの種別の特徴量、ならびに解析結果ＤＢ３０３に格納されている情報を用いて、各種類のリンクの重要度を算出し、その結果をグラフ補正部１０２に出力する。
【０１３０】
リンク種別重要度推定部１０１の動作は、実施の形態１と同様である。ただし、ノードの解析情報が修正入力部２０４から出力される点が、ノードの解析情報を事前に用意している実施の形態１とは異なる。なお、実施の形態１における式１が、修正入力部２０４の出力に相当する。
【０１３１】
グラフ解析部２０３としてランキングエンジンを用い、この解析結果に対して解析者が、図２０に示す修正を行ったとする。初期状態であるｗ＝｛１、１、１｝の場合、式５の目的関数の値は０．１２７となる。ここでリンク種別重要度推定部１０１により、式５を最大化するｗを求めるとｗ≒｛０．４、０．６、０｝のとなる。このときの目的関数の値は０．４０２をとる。すなわち、図２０に示す修正が行われた場合は、Ｌ１：メッセンジャーやＬ２：電話によるリンクを重視し、Ｌ３：ｅ−ｍａｉｌを無視する方が、解析者が望む解析結果を得やすいことになる。
【０１３２】
この後、リンク種別重要度推定部１０１は、求められた各リンクの種類への重要度をグラフ補正部１０２に出力する。グラフ補正部１０１は各隣接行列に対して前記重要度を掛け合わせ、グラフ構造を決定する。このグラフ構造を、再度、グラフ解析部２０３においてランキングした結果を図２６に示す。該図が示すように、解析者の修正を反映し、Ｅの重要度は小さくなっている。このように、解析目的にあうグラフ構造を推定できる。
【０１３３】
また、図２６をみても分かるように、最適化により得られた重要度を基準とすると、ＢがＤよりもコミュニケーションのキーパーソンであることが出力できるため、解析者に対して新たな気付きを与えることができる。
【０１３４】
また、出力部２０１を用いて、推定されたグラフ構造を図３１のように表示しても良い。図３１では、リンクの強度に応じて線の太さを変化させている。また、リンクの強度がゼロであるｅ−ｍａｉｌに関するリンクは表示していない。このような表示方法をとることで、入力した解析結果の観点からは、人のコミュニケーションにおいて、メッセンジャーや電話が重要であり、ｅ−ｍａｉｌに関しては重要でないことを、解析者に容易に把握させることができる。
【０１３５】
次に、グラフ解析部としてクラスタリングエンジンを用い、この解析結果に対して解析者が、図２１に示す修正を行ったとする。初期状態であるｗ＝｛１、１、１｝の場合、式５の目的関数の値は０．２５６となる。ここで、リンク種別重要度推定部１０１により、式５を最大化する２を求めるとｗ≒｛０、０．６７、０．３３｝となる。このときの目的関数の値は、０．２８３をとる。すなわち、図２１に示す修正が行われた場合は、Ｌ２：電話およびＬ３：メールによるリンクを重視し、Ｌ１：メッセンジャーを無視する方が、解析者が望む解析結果を得やすいことになる。
【０１３６】
この後、リンク種別重要度推定部１０１は求められた各リンクの種類への重要度をグラフ補正部１０２に出力する。グラフ補正部１０２は各隣接行列に対して前記重要度を掛け合わせ、グラフ構造を決定する。このグラフ構造を、再度、グラフ解析部２０３においてクラスタリングした結果を図２７に示す。この図からわかるように、解析者が望むようにＢとＦとが早い段階でマージされていることがわかる。この結果を２クラスで分類すると、｛Ａ、Ｂ、Ｆ、Ｇ｝｛Ｃ、Ｄ、Ｅ｝となる。これは、解析者が修正した後のクラスタそのものではないが、修正した一部の情報を反映した解析結果であり、解析者がクラスタを行いたい基準が、Ｌ２：電話およびＬ３：メールであるという示唆を解析者自身に与えることができる。
【０１３７】
本発明のグラフ構造推定システムを実装することにより、二種類以上のリンクが含まれるグラフにおいて、ノードの解析情報と、前記ノード間のリンクの種別の特徴量とに基づいて、各種のリンクの種類の重要度を推定することで、解析目的に適したグラフ構造を推定することができる。
【符号の説明】
【０１３８】
１０  グラフ構造推定部
１０１  リンク種別重要度推定部
１０２  グラフ補正部
２０１  出力部
２０２  グラフ化部
２０３  グラフ解析部
２０４  修正入力部
３０１  グラフＤＢ
３０２  元データＤＢ
３０３  解析結果ＤＢ
５０１  解析情報
【図１】
2010165166.tif 000011
【図２】
2010165166.tif 000012
【図３】
2010165166.tif 000013
【図４】
2010165166.tif 000014
【図５】
2010165166.tif 000015
【図６】
2010165166.tif 000016
【図７】
2010165166.tif 000017
【図８】
2010165166.tif 000018
【図９】
2010165166.tif 000019
【図１０】
2010165166.tif 000020
【図１１】
2010165166.tif 000021
【図１２】
2010165166.tif 000022
【図１３】
2010165166.tif 000023
【図１４】
2010165166.tif 000024
【図１５】
2010165166.tif 000025
【図１６】
2010165166.tif 000026
【図１７】
2010165166.tif 000027
【図１８】
2010165166.tif 000028
【図１９】
2010165166.tif 000029
【図２０】
2010165166.tif 000030
【図２１】
2010165166.tif 000031
【図２２】
2010165166.tif 000032
【図２３】
2010165166.tif 000033
【図２４】
2010165166.tif 000034
【図２５】
2010165166.tif 000035
【図２６】
2010165166.tif 000036
【図２７】
2010165166.tif 000037
【図２８】
2010165166.tif 000038
【図２９】
2010165166.tif 000039
【図３０】
2010165166.tif 000040
【図３１】
2010165166.tif 000041
【図３２】
2010165166.tif 000042
【図３３】
2010165166.tif 000043
【図３４】
2010165166.tif 000044
【図３５】
2010165166.tif 000045
【図３６】
2010165166.tif 000046
【図３７】
2010165166.tif 000047
【図３８】
2010165166.tif 000048
【図３９】
2010165166.tif 000049