(57)【特許請求の範囲】
【請求項１】
複数のノードと該ノード間を繋ぐエッジで構成されるグラフデータを可視化するためのグラフデータ視覚化装置であって、
記憶手段から前記グラフデータを読み込み、該グラフデータの接続しているエッジ数（以下、「次数」と記す）の大きなノードから伸びた各エッジ間の角度及び当該各エッジの長さの分布に基づいて、ノードの集合を分割し、２次元空間にマッピングする可視化手段を有することを特徴とするグラフデータ視覚化装置。
【請求項２】
前記可視化手段は、
前記グラフデータについて、所定の力学モデルに従ってノードの座標の最適化計算を行う最適化計算手段と、
前記最適化計算手段の最適化結果から、各ノードに接続されているエッジ長の平均値と分布を計算し、各ノードと接続関係のあるエッジの長さと当該ノードを中心としたベクトルの角度と長さの分布を計算し、該ベクトルの角度と長さが該平均値から外れるノード集合を分割ノード候補として決定する分割ノード決定手段と、
前記分割ノード候補を前記グラフデータから分割するノード分割手段と、
前記ノード分割手段で分割されたグラフデータについて、前記最適化計算手段を実行する手段と、
を含む請求項１記載のグラフデータ視覚化装置。
【請求項３】
複数のノードと該ノード間を繋ぐエッジで構成されるグラフデータを可視化するためのグラフデータ視覚化方法であって、
記憶手段から前記グラフデータを読み込み、該グラフデータの接続しているエッジ数（以下、「次数」と記す）の大きなノードから伸びた各エッジ間の角度及び当該各エッジの長さの分布に基づいて、ノードの集合を分割し、２次元空間にマッピングする可視化ステップを行うことを特徴とするグラフデータ視覚化方法。
【請求項４】
前記可視化ステップにおいて、
前記グラフデータについて、所定の力学モデルに従ってノードの座標の最適化計算を行う最適化計算ステップと、
前記最適化計算ステップの最適化結果から、各ノードに接続されているエッジ長の平均値と分布を計算し、各ノードと接続関係のあるエッジの長さと当該ノードを中心としたベクトルの角度と長さの分布を計算し、該ベクトルの角度と長さが該平均値から外れるノード集合を分割ノード候補として決定する分割ノード決定ステップと、
前記分割ノード候補を前記グラフデータから分割するノード分割ステップと、
を、前記分割ノード候補がなくなるまで繰り返す、
請求項３記載のグラフデータ視覚化方法。
【請求項５】
コンピュータを、
請求項1または２に記載のグラフデータ視覚化装置の各手段として機能させるためのグラフデータ視覚化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフデータ視覚化装置及び方法及びプログラムに係り特に、複数のノードと当該ノード間をつなぐエッジで構成されるグラフデータを可視化するためのグラフデータ視覚化装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
ネットワークをグラフとして可視化する技術（以下、単に「可視化技術」と記す）は、一般にデータとデータとの関連性によってネットワークを形成したグラフデータを、低次元の位相空間上に射影することによって可視化することを指す。グラフデータでは、当該要素を示すノードとノード間を繋ぐエッジとで表すことにより視覚化することが可能である。例えば、インターネット上のハイパーリンクの張られたWEBページであれば、各WEBページをノードとして、ハイパーリンクをエッジとして表現することにより、グラフ可視化表示することが可能である。また、例えば、金融・通信・交通・社会組織・遺伝子情報などのネットワーク表示、化学・生物学・医学などのデータをグラフ化したものの表示、テキストデータや画像データを関連性をもとにグラフ化したものの表示、関連性のあるモジュール群の組み合わせ表示（例えば、ＩＣチップのLSI設計図）、地図や参考書の図解表示に用いられるラベル表示などのように、種々の用途が考えられる。それゆえ、コンピュータによる力学的アルゴリズムを用いたグラフ可視化表示技術は、非常に幅広い分野での需要のある技術である。
【０００３】
＜条件＞
グラフ可視化表示技術における重要かつ最大の目的は、グラフ可視化表示装置上において、次の２つの条件を可能な限り満たすことが好ましいとされている。
【０００４】
［条件１］ノード同士を重ならないように配置する。
【０００５】
［条件２］関連性のあるノード同士はエッジを介して接続させ、近傍に配置する。
【０００６】
これらの条件を図１に示す。［条件１］は、異なるノード情報が重なって表示されることによる情報の誤読を防ぐためである。［条件２］は、関連性のあるノードを近傍に配置することにより視覚的な情報認識制度を向上させるためである。
【０００７】
上記の２つの条件を満たすべく、ノードのグラフ可視化表示装置上での配置座標を求めることが必要である。
【０００８】
＜関連技術＞
［基本技術］
従来、上記の条件を満たすためのグラフ可視化表示技術には、一般的に力学モデルを用いた手法が広く利用されており、以下の２つが世界中で最も頻繁に利用されている。
【０００９】
バネモデル法：全てのノード間に仮想的なバネを仮定し、座標の更新手法を１ノードずつ逐次的に行う手法である。一般的に、ノード間のグラフ上での最短経路パス数を、ノード間のバネの自然長として計算を行う（例えば、非特許文献１参照）。
【００１０】
Force-directed法：全てのノード間で斥力を与え（例えば、分子間に働くクーロン斥力のように）、接続されているノード間（エッジ）には引力を与え、座標の更新手法をこの引力と斥力の総和を用いてまとめて更新していく（例えば、非特許文献２参照）。
【００１１】
上記の２つのいずれの手法においても、全てのノード間に反発する力が働き［条件１］で要求される、ノード同士の重なりの排除を実施することができる。また、接続するノード同士では引き合う力が働き、［条件２］で要求される、接続ノードを近傍に配置することを実施することができる。
【００１２】
また、上記の２つの手法においては、引力と斥力の関数が一意に決まると、最急降下法やニュートン法などの数値計算法を用いて、目的関数が収束する（最大エントロピーが求まる）ように座標を更新する。
【００１３】
しかしながら、上述したグラフ可視化表示技術において、複雑なネットワーク構造を持つグラフデータを低次元（特に２次元）に埋め込むためには、［条件２］を満たすことが非常に難しいことがしばしば生じる。特に、エッジ接続されているノード（いわゆる次数の高いノード）が多数存在する場合、近傍に全ての接続するノードを配置することは非常に困難になり、長いエッジが生じてしまうという問題が発生する。
【００１４】
この問題に対して、通常はエッジの長さに冗長を持たせ、かつ、全体的には極端に長いエッジが生じないように配置を行うことで解決を行う。しかしながら、エッジの長さに冗長を持たせるのにも限界があり、また、この問題解決のアプローチとして、
［アプローチ1］エッジを切断する（極端に長いエッジを許す）；
［アプローチ２］ノードを分割する；
という解決方法が考えられる。
【００１５】
［アプローチ１］では、代表的な手法として、LGL法を用いたグラフ可視化計算手法がある（例えば、非特許文献3参照）。LGL法は、グラフデータ構造から最小全域木を作成し、エッジを切断することによって全体の構造を階層的にすることによって全体的に接続関係のあるノードを近傍に配置する。しかしながらLGL法を含め、［アプローチ１］では、そもそもネットワーク構造に関して関連性を無視してしまうことになり、上記の［条件２］を満たすことができない。それゆえ、本発明の競合技術として含めない。
【００１６】
［アプローチ２］の、ノードを分割する方法では、［アプローチ１］と異なりエッジの接続情報を保存することができる。本発明では、［アプローチ２］の「ノードを分割する」を効率よく行う手法を提示する。
【先行技術文献】
【非特許文献】
【００１７】
【非特許文献１】Kamada, T., and Kawai, S.: An algorithm for drawing general undirected graphs, Information Processing Letters, 12, 31, 7-15 (1989).
【非特許文献２】Fruchterman, T. M. J., Reingold, E. M.: Graph Drawing by Force-directed Placement, Software - Practice and Experience, 11, 21, 1129-1174 (1991).
【非特許文献３】Adai, LGL: creating a map of protein function with an algorithm for visualizing very large biological networks Lyon, B.: The Opte  Project (2005) http://www.opte.org/
【発明の概要】
【発明が解決しようとする課題】
【００１８】
上述したグラフ可視化表示技術に対して、基本的に求められる要件は「極端に長いエッジを生成せずに、エッジで接続されたノード同士を近傍に配置する」ことである。具体的には、パソコンのディスプレイ装置に表示されたウィンドウ内、もしくは印刷に堪えられる画像データのサイズ内に収まる程度（現実的には数百から数千ノード規模）のグラフデータをウィンドウ内に、十分グラフのデータ構造を理解できるように配置を行う必要性がある。このとき、上記の２つの条件である「ノード同士が重ならず」かつ「関連性のあるものは近傍に配置」を満たすことが要求される。
【００１９】
通常、一つのノードが複数のノードに接続し、かつ、当該ノードが複数のトピックに属する際、当該ノードのために可視化結果が潰れてしまい、可読性を満たすことができない。例えば、図２にように、「サイトＡ」の影響力が大きく、「サイトＡ」と「マタニティ」「ミルク」「玩具」などとの繋がりがわかりにくい。また、「パ・リーグ」と「お茶」が近傍にある理由も直感的に理解することが困難である。
【００２０】
本発明は、上記の点に鑑みなされたもので、グラフ可視化表示技術において、次数の高いノードに対して、接続関連の可読性が十分満たされない可視化結果に対して、ノード同士が重ならず、かつ、関連性のあるものは近傍に配置、という２つの条件を満たし、ノード間の接続関係の可読性を高めることが可能なグラフデータ視覚化装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
上記の課題を解決するため、本発明（請求項１）は、複数のノードと該ノード間を繋ぐエッジで構成されるグラフデータを可視化するためのグラフデータ視覚化装置であって、
記憶手段から前記グラフデータを読み込み、該グラフデータの接続しているエッジ数（以下、「次数」と記す）の大きなノードから伸びた各エッジ間の角度及び当該各エッジの長さの分布に基づいて、ノードの集合を分割し、２次元空間にマッピングする可視化手段を有する。
【００２２】
また、本発明（請求項２）は、前記可視化手段において、
前記グラフデータについて、所定の力学モデルに従ってノードの座標の最適化計算を行う最適化計算手段と、
前記最適化計算手段の最適化結果から、各ノードに接続されているエッジ長の平均値と分布を計算し、各ノードと接続関係のあるエッジの長さと当該ノードを中心としたベクトルの角度と長さの分布を計算し、該ベクトルの角度と長さが該平均値から外れるノード集合を分割ノード候補として決定する分割ノード決定手段と、
前記分割ノード候補を前記グラフデータから分割するノード分割手段と、
前記ノード分割手段で分割されたグラフデータについて、前記最適化計算手段を実行する手段と、を含む。
【発明の効果】
【００２３】
上述のように、本発明によれば、グラフデータのグラフ可視化結果において、長く伸びてしまったエッジが多数存在する場合に、グラフ可視化表示における関連するノード同士を近傍に配置する際の可読性の向上とノードの分割による近接性の保持を両立させることが可能となる。
【図面の簡単な説明】
【００２４】
【図１】グラフ視覚化装置における条件を示す図である。
【図２】グラフデータの例である。
【図３】本発明の一実施の形態におけるグラフデータ視覚化装置の構成図である。
【図４】本発明の一実施の形態における分割ノード決定処理部の分割ノード候補選択の例である。
【図５】本発明の一実施の形態におけるノード分割処理部によるノード分割の例である。
【図６】本発明の一実施の形態における処理装置のフローチャートである。
【図７】本発明の一実施の形態におけるノード分割処理を説明するための図（その１）である。
【図８】本発明の一実施の形態におけるノード分割処理を説明するための図（その２）である。
【図９】本発明の一実施の形態におけるノード分割処理を説明するための図（その３）である。
【発明を実施するための形態】
【００２５】
以下、図面と共に本発明の実施の形態を説明する。
【００２６】
図３は、本発明の一実施の形態におけるグラフデータ視覚化装置の構成を示す。同図に示す構成は、グラフデータ視覚化装置としてのコンピュータシステムの構成を示す。
【００２７】
同図に示すグラフ可視化装置１０は、グラフ可視化表示処理をプログラム制御により実行する処理装置（ＣＰＵ）１１、処理装置１１を制御するプログラムを格納した主メモリ１２と、処理装置１１により生成されたグラフデータの可視化イメージを表示するディスプレイ装置１３と、処理対象であるグラフデータを格納した記憶装置１４とを備える。
【００２８】
処理装置１１は、ノード配置座標最適化処理部２１、分割ノード決定処理部２２、ノード分割処理部２３を有する。なお、同図には、本実施の形態を実現するための構成のみを図示してある。実際には、図示の構成の他に、各種の命令やデータを入力するためのキーボードやマウスなどの入力装置、各種周辺機器、ネットワークに対するインタフェースなどが設けられていることを前提とする。
【００２９】
処理装置１１のノード配置座標最適化処理部２１は、グラフデータに基づいて追加する所定の力学モデルに従い、ノード座標の最適化計算を行う。
【００３０】
処理装置１１の分割ノード決定処理部２２は、分割ノードの候補を抽出する。具体的には、図４に示すように、長く伸びたエッジを持つノードを分割ノード候補（同図の場合、サイトＡ）として抽出する。
【００３１】
処理装置１１のノード分割処理部２３は、分割ノード決定処理部２２で分割ノードの候補が抽出された場合には、ノードとエッジを分割する。例えば、図４の例ではサイトＡを図５に示すように分割する。
【００３２】
なお、上記の構成以外に、グラフ可視化装置１０は、処理装置１１で用いるメモリ（図示せず）を有し、途中の計算結果を格納するものとする。
【００３３】
図６は、本発明の一実施の形態における処理装置のフローチャートである。
【００３４】
ステップ２０１）  ノード配置座標最適化処理部２１は、記憶装置１４からグラフデータを読み込む。
【００３５】
ステップ２０２）  ノード配置座標最適化処理部２１は、所定の力学モデルに従う運動方程式よりノードの最適な配置を算出して更新し、メモリ（図示せず）に格納する。
【００３６】
ステップ２０３）  分割ノード決定処理部２２は、グラフ可視化計算によってノードの配置を行った際に、各ノードに接続されているエッジの長さの分布を求め、平均や分散が大きいノードを候補ノードとして抽出し、メモリ（図示せず）に格納する。
【００３７】
ステップ２０４）  ステップ２０３において抽出された候補ノードがない場合は、当該処理を終了し、候補ノードがある場合はステップ２０５に移行する。
【００３８】
ステップ２０５）  ノード分割処理部２３は、候補ノードが、特に中心性の高いノードが、あらゆる方向から力を受けている場合、そのノードを分割する。具体的な方法としては、任意のノードに対して接続するエッジの長さに偏りがあり、かつ長いエッジが多数存在する場合、それらの同じ方向を向いている長いエッジをまとめることによりノードを分割する。図５の例では、「サイトＡ」のノードを分割することによって、「サイトＡ」と「マタニティ」「ミルク」「玩具」などとの繋がりも分かり易くなり、また、「パ・リーグ」と「お茶」が近傍にある理由も直感的に分かり易くなる。例えば、購買ログデータのように、あらゆるジャンルを扱うようなＥＣ(Electronic Commerce)サイトと、専門的なＥＣサイトの可視化結果を比較するような時には有効な手段となる。
【００３９】
当該処理の後、ステップ２０２に移行し、再度最適な配置の計算を行う。
【００４０】
上記のステップ２０４において、抽出候補がなくなったら、分割結果（イメージデータ）をディスプレイ装置１３に出力する。
【００４１】
以下に上記の処理装置１１の処理を詳細に説明する。
【００４２】
図７〜図９は、本発明の一実施の形態におけるノード分割処理を説明するための図である。
【００４３】
図７（ａ）はグラフデータの構成を示す。グラフデータはＩＤ、次数、接続先の項目を有する。次数とは、接続しているエッジ数である。図７（ｂ）は、図７（ａ）のデータを元に行ったグラフ可視化結果を示す。図７（ｃ）は、図７（ｂ）の可視化結果から、各ノードに接続されているエッジの長さ平均の分布の計算結果の例である。これらの計算結果はメモリ（図示せず）に格納されるものとする。
【００４４】
ノード配置座標最適化処理部２１において、図７（ａ）のグラフデータを元にグラフ可視化計算を行うと、図７（ｂ）のような結果が得られる。これにより、分割ノード決定処理部２２は、各ノードの次数分布や、各ノードに接続しているエッジの平均値や分散などから、分割する候補となるノードを決定する。この場合、図７（ｃ）のように、次数も平均も分散も大きい「ＩＤ：５」を選択する。このとき、単純に次数から決定してもよい。なぜなら、次数（エッジの本数）が少ないものは分散や平均が比較的大きくなるため、単純に分散や平均のみで決定すると、次数が少ないノードを優先的に選んでしまうため好ましくない。
【００４５】
分割ノード決定処理部２２は、図８（ｄ）に示すように、選択した「ＩＤ：５」のノードに対して各エッジの角度Θとエッジの長さの分布を計算する。次に、図８（ｅ）は、求めたエッジの角度Θとエッジの長さを図示したものであり、分割ノード決定処理部２２は、エッジが長く伸びて、かつ、同じ方向に伸びた「ＩＤ：１」「ＩＤ：２」「ＩＤ：３」（点線で囲まれたＩＤ）を選ぶ。図８（ｆ）では、ノード分割処理部２３において、「ＩＤ：５」を、この選択した「ＩＤ：１」「ＩＤ：２」「ＩＤ：３」をエッジで結ぶノード「ＩＤ：５'」と残りのノードを結んだ「ＩＤ：５''」に分割したグラフデータを示している。この「ＩＤ：５」を分割した図８（ｆ）のグラフデータを用いてノード配置座標最適化処理部２１が可視化計算を行った結果を図９（ｇ）の左側に示す。このとき、目的によっては、図９（ｇ）の右側に示すように、「ＩＤ：５'」と「ＩＤ：５''」を接続してグラフ可視化計算を行ってもよい。
【００４６】
なお、上記の処理装置１１のノード配置座標最適化処理部２１、分割ノード決定処理部２２、ノード分割処理部２３の処理をプログラムとして構築し、当該グラフ可視化表示装置の主メモリ１２に格納して実行させる他、グラフ可視化装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００４７】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００４８】
１０  グラフ視覚化装置
１１  処理装置
１２  主メモリ
１３  ディスプレイ装置
２１  ノード配置座標最適化処理部
２２  分割ノード決定処理部
２３  ノード分割処理部
【図１】
0005824412.tif 000002
【図２】
0005824412.tif 000003
【図３】
0005824412.tif 000004
【図４】
0005824412.tif 000005
【図５】
0005824412.tif 000006
【図６】
0005824412.tif 000007
【図７】
0005824412.tif 000008
【図８】
0005824412.tif 000009
【図９】
0005824412.tif 000010