(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5824412
(24)【登録日】2015年10月16日
(45)【発行日】2015年11月25日
(54)【発明の名称】グラフデータ視覚化装置及び方法及びプログラム
(51)【国際特許分類】
G06T 11/00 20060101AFI20151105BHJP
【FI】
G06T11/00
【請求項の数】5
【全頁数】11
(21)【出願番号】特願2012-113852(P2012-113852)
(22)【出願日】2012年5月17日
(65)【公開番号】特開2013-242622(P2013-242622A)
(43)【公開日】2013年12月5日
【審査請求日】2014年7月1日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】松林 達史
(72)【発明者】
【氏名】藤村 考
(72)【発明者】
【氏名】星出 高秀
【審査官】
千葉 久博
(56)【参考文献】
【文献】
特開2011−90377(JP,A)
【文献】
特開2009−134520(JP,A)
【文献】
米国特許出願公開第2006/0290697(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 11/00
(57)【特許請求の範囲】
【請求項1】
複数のノードと該ノード間を繋ぐエッジで構成されるグラフデータを可視化するためのグラフデータ視覚化装置であって、
記憶手段から前記グラフデータを読み込み、該グラフデータの接続しているエッジ数(以下、「次数」と記す)の大きなノードから伸びた各エッジ間の角度及び当該各エッジの長さの分布に基づいて、ノードの集合を分割し、2次元空間にマッピングする可視化手段を有することを特徴とするグラフデータ視覚化装置。
【請求項2】
前記可視化手段は、
前記グラフデータについて、所定の力学モデルに従ってノードの座標の最適化計算を行う最適化計算手段と、
前記最適化計算手段の最適化結果から、各ノードに接続されているエッジ長の平均値と分布を計算し、各ノードと接続関係のあるエッジの長さと当該ノードを中心としたベクトルの角度と長さの分布を計算し、該ベクトルの角度と長さが該平均値から外れるノード集合を分割ノード候補として決定する分割ノード決定手段と、
前記分割ノード候補を前記グラフデータから分割するノード分割手段と、
前記ノード分割手段で分割されたグラフデータについて、前記最適化計算手段を実行する手段と、
を含む請求項1記載のグラフデータ視覚化装置。
【請求項3】
複数のノードと該ノード間を繋ぐエッジで構成されるグラフデータを可視化するためのグラフデータ視覚化方法であって、
記憶手段から前記グラフデータを読み込み、該グラフデータの接続しているエッジ数(以下、「次数」と記す)の大きなノードから伸びた各エッジ間の角度及び当該各エッジの長さの分布に基づいて、ノードの集合を分割し、2次元空間にマッピングする可視化ステップを行うことを特徴とするグラフデータ視覚化方法。
【請求項4】
前記可視化ステップにおいて、
前記グラフデータについて、所定の力学モデルに従ってノードの座標の最適化計算を行う最適化計算ステップと、
前記最適化計算ステップの最適化結果から、各ノードに接続されているエッジ長の平均値と分布を計算し、各ノードと接続関係のあるエッジの長さと当該ノードを中心としたベクトルの角度と長さの分布を計算し、該ベクトルの角度と長さが該平均値から外れるノード集合を分割ノード候補として決定する分割ノード決定ステップと、
前記分割ノード候補を前記グラフデータから分割するノード分割ステップと、
を、前記分割ノード候補がなくなるまで繰り返す、
請求項3記載のグラフデータ視覚化方法。
【請求項5】
コンピュータを、
請求項1または2に記載のグラフデータ視覚化装置の各手段として機能させるためのグラフデータ視覚化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラフデータ視覚化装置及び方法及びプログラムに係り特に、複数のノードと当該ノード間をつなぐエッジで構成されるグラフデータを可視化するためのグラフデータ視覚化装置及び方法及びプログラムに関する。
【背景技術】
【0002】
ネットワークをグラフとして可視化する技術(以下、単に「可視化技術」と記す)は、一般にデータとデータとの関連性によってネットワークを形成したグラフデータを、低次元の位相空間上に射影することによって可視化することを指す。グラフデータでは、当該要素を示すノードとノード間を繋ぐエッジとで表すことにより視覚化することが可能である。例えば、インターネット上のハイパーリンクの張られたWEBページであれば、各WEBページをノードとして、ハイパーリンクをエッジとして表現することにより、グラフ可視化表示することが可能である。また、例えば、金融・通信・交通・社会組織・遺伝子情報などのネットワーク表示、化学・生物学・医学などのデータをグラフ化したものの表示、テキストデータや画像データを関連性をもとにグラフ化したものの表示、関連性のあるモジュール群の組み合わせ表示(例えば、ICチップのLSI設計図)、地図や参考書の図解表示に用いられるラベル表示などのように、種々の用途が考えられる。それゆえ、コンピュータによる力学的アルゴリズムを用いたグラフ可視化表示技術は、非常に幅広い分野での需要のある技術である。
【0003】
<条件>
グラフ可視化表示技術における重要かつ最大の目的は、グラフ可視化表示装置上において、次の2つの条件を可能な限り満たすことが好ましいとされている。
【0004】
[条件1]ノード同士を重ならないように配置する。
【0005】
[条件2]関連性のあるノード同士はエッジを介して接続させ、近傍に配置する。
【0006】
これらの条件を
図1に示す。[条件1]は、異なるノード情報が重なって表示されることによる情報の誤読を防ぐためである。[条件2]は、関連性のあるノードを近傍に配置することにより視覚的な情報認識制度を向上させるためである。
【0007】
上記の2つの条件を満たすべく、ノードのグラフ可視化表示装置上での配置座標を求めることが必要である。
【0008】
<関連技術>
[基本技術]
従来、上記の条件を満たすためのグラフ可視化表示技術には、一般的に力学モデルを用いた手法が広く利用されており、以下の2つが世界中で最も頻繁に利用されている。
【0009】
バネモデル法:全てのノード間に仮想的なバネを仮定し、座標の更新手法を1ノードずつ逐次的に行う手法である。一般的に、ノード間のグラフ上での最短経路パス数を、ノード間のバネの自然長として計算を行う(例えば、非特許文献1参照)。
【0010】
Force-directed法:全てのノード間で斥力を与え(例えば、分子間に働くクーロン斥力のように)、接続されているノード間(エッジ)には引力を与え、座標の更新手法をこの引力と斥力の総和を用いてまとめて更新していく(例えば、非特許文献2参照)。
【0011】
上記の2つのいずれの手法においても、全てのノード間に反発する力が働き[条件1]で要求される、ノード同士の重なりの排除を実施することができる。また、接続するノード同士では引き合う力が働き、[条件2]で要求される、接続ノードを近傍に配置することを実施することができる。
【0012】
また、上記の2つの手法においては、引力と斥力の関数が一意に決まると、最急降下法やニュートン法などの数値計算法を用いて、目的関数が収束する(最大エントロピーが求まる)ように座標を更新する。
【0013】
しかしながら、上述したグラフ可視化表示技術において、複雑なネットワーク構造を持つグラフデータを低次元(特に2次元)に埋め込むためには、[条件2]を満たすことが非常に難しいことがしばしば生じる。特に、エッジ接続されているノード(いわゆる次数の高いノード)が多数存在する場合、近傍に全ての接続するノードを配置することは非常に困難になり、長いエッジが生じてしまうという問題が発生する。
【0014】
この問題に対して、通常はエッジの長さに冗長を持たせ、かつ、全体的には極端に長いエッジが生じないように配置を行うことで解決を行う。しかしながら、エッジの長さに冗長を持たせるのにも限界があり、また、この問題解決のアプローチとして、
[アプローチ1]エッジを切断する(極端に長いエッジを許す);
[アプローチ2]ノードを分割する;
という解決方法が考えられる。
【0015】
[アプローチ1]では、代表的な手法として、LGL法を用いたグラフ可視化計算手法がある(例えば、非特許文献3参照)。LGL法は、グラフデータ構造から最小全域木を作成し、エッジを切断することによって全体の構造を階層的にすることによって全体的に接続関係のあるノードを近傍に配置する。しかしながらLGL法を含め、[アプローチ1]では、そもそもネットワーク構造に関して関連性を無視してしまうことになり、上記の[条件2]を満たすことができない。それゆえ、本発明の競合技術として含めない。
【0016】
[アプローチ2]の、ノードを分割する方法では、[アプローチ1]と異なりエッジの接続情報を保存することができる。本発明では、[アプローチ2]の「ノードを分割する」を効率よく行う手法を提示する。
【先行技術文献】
【非特許文献】
【0017】
【非特許文献1】Kamada, T., and Kawai, S.: An algorithm for drawing general undirected graphs, Information Processing Letters, 12, 31, 7-15 (1989).
【非特許文献2】Fruchterman, T. M. J., Reingold, E. M.: Graph Drawing by Force-directed Placement, Software - Practice and Experience, 11, 21, 1129-1174 (1991).
【非特許文献3】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/
【発明の概要】
【発明が解決しようとする課題】
【0018】
上述したグラフ可視化表示技術に対して、基本的に求められる要件は「極端に長いエッジを生成せずに、エッジで接続されたノード同士を近傍に配置する」ことである。具体的には、パソコンのディスプレイ装置に表示されたウィンドウ内、もしくは印刷に堪えられる画像データのサイズ内に収まる程度(現実的には数百から数千ノード規模)のグラフデータをウィンドウ内に、十分グラフのデータ構造を理解できるように配置を行う必要性がある。このとき、上記の2つの条件である「ノード同士が重ならず」かつ「関連性のあるものは近傍に配置」を満たすことが要求される。
【0019】
通常、一つのノードが複数のノードに接続し、かつ、当該ノードが複数のトピックに属する際、当該ノードのために可視化結果が潰れてしまい、可読性を満たすことができない。例えば、
図2にように、「サイトA」の影響力が大きく、「サイトA」と「マタニティ」「ミルク」「玩具」などとの繋がりがわかりにくい。また、「パ・リーグ」と「お茶」が近傍にある理由も直感的に理解することが困難である。
【0020】
本発明は、上記の点に鑑みなされたもので、グラフ可視化表示技術において、次数の高いノードに対して、接続関連の可読性が十分満たされない可視化結果に対して、ノード同士が重ならず、かつ、関連性のあるものは近傍に配置、という2つの条件を満たし、ノード間の接続関係の可読性を高めることが可能なグラフデータ視覚化装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0021】
上記の課題を解決するため、本発明(請求項1)は、複数のノードと該ノード間を繋ぐエッジで構成されるグラフデータを可視化するためのグラフデータ視覚化装置であって、
記憶手段から前記グラフデータを読み込み、該グラフデータの接続しているエッジ数(以下、「次数」と記す)の大きなノードから伸びた
各エッジ
間の角度及び
当該各エッジの長さの分布に基づいて、ノードの集合を分割し、2次元空間にマッピングする可視化手段を有する。
【0022】
また、本発明(請求項2)は、前記可視化手段において、
前記グラフデータについて、所定の力学モデルに従ってノードの座標の最適化計算を行う最適化計算手段と、
前記最適化計算手段の最適化結果から、各ノードに接続されているエッジ長の平均値と分布を計算し、各ノードと接続関係のあるエッジの長さと当該ノードを中心としたベクトルの角度と長さの分布を計算し、該ベクトルの角度と長さが該平均値から外れるノード集合を分割ノード候補として決定する分割ノード決定手段と、
前記分割ノード候補を前記グラフデータから分割するノード分割手段と、
前記ノード分割手段で分割されたグラフデータについて、前記最適化計算手段を実行する手段と、を含む。
【発明の効果】
【0023】
上述のように、本発明によれば、グラフデータのグラフ可視化結果において、長く伸びてしまったエッジが多数存在する場合に、グラフ可視化表示における関連するノード同士を近傍に配置する際の可読性の向上とノードの分割による近接性の保持を両立させることが可能となる。
【図面の簡単な説明】
【0024】
【
図1】グラフ視覚化装置における条件を示す図である。
【
図3】本発明の一実施の形態におけるグラフデータ視覚化装置の構成図である。
【
図4】本発明の一実施の形態における分割ノード決定処理部の分割ノード候補選択の例である。
【
図5】本発明の一実施の形態におけるノード分割処理部によるノード分割の例である。
【
図6】本発明の一実施の形態における処理装置のフローチャートである。
【
図7】本発明の一実施の形態におけるノード分割処理を説明するための図(その1)である。
【
図8】本発明の一実施の形態におけるノード分割処理を説明するための図(その2)である。
【
図9】本発明の一実施の形態におけるノード分割処理を説明するための図(その3)である。
【発明を実施するための形態】
【0025】
以下、図面と共に本発明の実施の形態を説明する。
【0026】
図3は、本発明の一実施の形態におけるグラフデータ視覚化装置の構成を示す。同図に示す構成は、グラフデータ視覚化装置としてのコンピュータシステムの構成を示す。
【0027】
同図に示すグラフ可視化装置10は、グラフ可視化表示処理をプログラム制御により実行する処理装置(CPU)11、処理装置11を制御するプログラムを格納した主メモリ12と、処理装置11により生成されたグラフデータの可視化イメージを表示するディスプレイ装置13と、処理対象であるグラフデータを格納した記憶装置14とを備える。
【0028】
処理装置11は、ノード配置座標最適化処理部21、分割ノード決定処理部22、ノード分割処理部23を有する。なお、同図には、本実施の形態を実現するための構成のみを図示してある。実際には、図示の構成の他に、各種の命令やデータを入力するためのキーボードやマウスなどの入力装置、各種周辺機器、ネットワークに対するインタフェースなどが設けられていることを前提とする。
【0029】
処理装置11のノード配置座標最適化処理部21は、グラフデータに基づいて追加する所定の力学モデルに従い、ノード座標の最適化計算を行う。
【0030】
処理装置11の分割ノード決定処理部22は、分割ノードの候補を抽出する。具体的には、
図4に示すように、長く伸びたエッジを持つノードを分割ノード候補(同図の場合、サイトA)として抽出する。
【0031】
処理装置11のノード分割処理部23は、分割ノード決定処理部22で分割ノードの候補が抽出された場合には、ノードとエッジを分割する。例えば、
図4の例ではサイトAを
図5に示すように分割する。
【0032】
なお、上記の構成以外に、グラフ可視化装置10は、処理装置11で用いるメモリ(図示せず)を有し、途中の計算結果を格納するものとする。
【0033】
図6は、本発明の一実施の形態における処理装置のフローチャートである。
【0034】
ステップ201) ノード配置座標最適化処理部21は、記憶装置14からグラフデータを読み込む。
【0035】
ステップ202) ノード配置座標最適化処理部21は、所定の力学モデルに従う運動方程式よりノードの最適な配置を算出して更新し、メモリ(図示せず)に格納する。
【0036】
ステップ203) 分割ノード決定処理部22は、グラフ可視化計算によってノードの配置を行った際に、各ノードに接続されているエッジの長さの分布を求め、平均や分散が大きいノードを候補ノードとして抽出し、メモリ(図示せず)に格納する。
【0037】
ステップ204) ステップ203において抽出された候補ノードがない場合は、当該処理を終了し、候補ノードがある場合はステップ205に移行する。
【0038】
ステップ205) ノード分割処理部23は、候補ノードが、特に中心性の高いノードが、あらゆる方向から力を受けている場合、そのノードを分割する。具体的な方法としては、任意のノードに対して接続するエッジの長さに偏りがあり、かつ長いエッジが多数存在する場合、それらの同じ方向を向いている長いエッジをまとめることによりノードを分割する。
図5の例では、「サイトA」のノードを分割することによって、「サイトA」と「マタニティ」「ミルク」「玩具」などとの繋がりも分かり易くなり、また、「パ・リーグ」と「お茶」が近傍にある理由も直感的に分かり易くなる。例えば、購買ログデータのように、あらゆるジャンルを扱うようなEC(Electronic Commerce)サイトと、専門的なECサイトの可視化結果を比較するような時には有効な手段となる。
【0039】
当該処理の後、ステップ202に移行し、再度最適な配置の計算を行う。
【0040】
上記のステップ204において、抽出候補がなくなったら、分割結果(イメージデータ)をディスプレイ装置13に出力する。
【0041】
以下に上記の処理装置11の処理を詳細に説明する。
【0042】
図7〜
図9は、本発明の一実施の形態におけるノード分割処理を説明するための図である。
【0043】
図7(a)はグラフデータの構成を示す。グラフデータはID、次数、接続先の項目を有する。次数とは、接続しているエッジ数である。
図7(b)は、
図7(a)のデータを元に行ったグラフ可視化結果を示す。
図7(c)は、
図7(b)の可視化結果から、各ノードに接続されているエッジの長さ平均の分布の計算結果の例である。これらの計算結果はメモリ(図示せず)に格納されるものとする。
【0044】
ノード配置座標最適化処理部21において、
図7(a)のグラフデータを元にグラフ可視化計算を行うと、
図7(b)のような結果が得られる。これにより、分割ノード決定処理部22は、各ノードの次数分布や、各ノードに接続しているエッジの平均値や分散などから、分割する候補となるノードを決定する。この場合、
図7(c)のように、次数も平均も分散も大きい「ID:5」を選択する。このとき、単純に次数から決定してもよい。なぜなら、次数(エッジの本数)が少ないものは分散や平均が比較的大きくなるため、単純に分散や平均のみで決定すると、次数が少ないノードを優先的に選んでしまうため好ましくない。
【0045】
分割ノード決定処理部22は、
図8(d)に示すように、選択した「ID:5」のノードに対して各エッジの角度Θとエッジの長さの分布を計算する。次に、
図8(e)は、求めたエッジの角度Θとエッジの長さを図示したものであり、分割ノード決定処理部22は、エッジが長く伸びて、かつ、同じ方向に伸びた「ID:1」「ID:2」「ID:3」(点線で囲まれたID)を選ぶ。
図8(f)では、ノード分割処理部23において、「ID:5」を、この選択した「ID:1」「ID:2」「ID:3」をエッジで結ぶノード「ID:5'」と残りのノードを結んだ「ID:5''」に分割したグラフデータを示している。この「ID:5」を分割した
図8(f)のグラフデータを用いてノード配置座標最適化処理部21が可視化計算を行った結果を
図9(g)の左側に示す。このとき、目的によっては、
図9(g)の右側に示すように、「ID:5'」と「ID:5''」を接続してグラフ可視化計算を行ってもよい。
【0046】
なお、上記の処理装置11のノード配置座標最適化処理部21、分割ノード決定処理部22、ノード分割処理部23の処理をプログラムとして構築し、当該グラフ可視化表示装置の主メモリ12に格納して実行させる他、グラフ可視化装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【0047】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【0048】
10 グラフ視覚化装置
11 処理装置
12 主メモリ
13 ディスプレイ装置
21 ノード配置座標最適化処理部
22 分割ノード決定処理部
23 ノード分割処理部