(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-15
(45)【発行日】2022-03-24
(54)【発明の名称】複雑なグラフ検索のための局所的な視覚グラフ・フィルタ
(51)【国際特許分類】
G06F 16/28 20190101AFI20220316BHJP
【FI】
G06F16/28
(21)【出願番号】P 2017099481
(22)【出願日】2017-05-19
【審査請求日】2020-05-12
(32)【優先日】2016-06-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504407000
【氏名又は名称】パロ アルト リサーチ センター インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100088694
【氏名又は名称】弟子丸 健
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ライアン・エイ・ロッシ
(72)【発明者】
【氏名】ロン・チョウ
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2011-164830(JP,A)
【文献】特開2015-036930(JP,A)
【文献】特開2012-113614(JP,A)
【文献】特開2010-140275(JP,A)
【文献】国際公開第2012/176317(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
グラフを検索するためのコンピュータ実装方法であって、
一連のプロセッサを含むコンピュータシステムにより、頂点と辺を含むグラフを表すデータ構造を取得するステップと、
前記グラフの視覚表現をユーザのために表示するステップと、
ローカル・グラフ・フィルタを規定するコマンドを前記ユーザから受け取るステップであって、前記ローカル・グラフ・フィルタが、前記グラフの視覚表現内の領域を含む、ステップと、
前記グラフの前記視覚表現内に付加的な領域を含む付加的なローカル・グラフ・フィルタを前記ユーザから受け取るステップと、
前記グラフの前記視覚表現内の組み合せた領域を前記領域と前記付加的な領域との結合部または交差部と判定するステップと、
前記グラフの表現をフィルタリングして、前記
組み合せた領域内で視覚的に示される頂点の
組み合せた集合、および前記
組み合せた集合内で頂点間を接続する辺を選択するステップと、
前記グラフのうちの前記フィルタリングされる表現の前記選択される頂点と辺を非一時的な記憶媒体に格納するステップと、を含む方法。
【請求項2】
前記ローカル・グラフ・フィルタを規定する前記コマンドを受け取るステップには、ポインティングディバイスを介して、前記グラフの前記視覚表現内の前記領域の範囲を定める境界を前記ユーザから受け取ること、がさらに含まれる、請求項1に記載の方法。
【請求項3】
前記受け取られるローカル・グラフ・フィルタにより一連の制約がさらに指定され、前記グラフの前記表現をフィルタリングするステップには、前記領域内で視覚的に示される前記頂点の部分集合をフィルタリングして、前記制約を満たす頂点、および前記選択される頂点間を接続する辺を選択することがさらに含まれる、請求項1に記載の方法。
【請求項4】
前記ローカル・グラフ・フィルタを規定する前記コマンドを受け取るステップには、
前記ローカル・グラフ・フィルタに関連するスライダ制御を前記ユーザのために表示し、前記グラフ内の頂点の特性を表すことと、
前記特性に関する値を前記ユーザからポインティングディバイスを介して受け取り、前記スライダ制御の位置に配置することと、
前記受け取った前記特性に関する値に基づいて、各制約を設定することと、がさらに含まれる、請求項3に記載の方法。
【請求項5】
コンピュータにより実行されると、前記コンピュータがグラフを検索する方法を行う命令を格納する非一時的なコンピュータ可読記憶媒体であって、前記方法が、
前記コンピュータにより、頂点と辺を含むグラフを表すデータ構造を取得するステップと、
前記グラフの視覚表現をユーザのために表示するステップと、
ローカル・グラフ・フィルタを規定するコマンドを前記ユーザから受け取るステップであって、前記ローカル・グラフ・フィルタが、前記グラフの前記視覚表現内の領域を含む、ステップと、
前記グラフの視覚表現内に付加的な領域を含む付加的なローカル・グラフ・フィルタを前記ユーザから受け取るステップと、
前記グラフの視覚表現内の組み合せた領域を前記領域と前記付加的な領域との結合部または交差部と判定するステップと、
前記グラフの表現をフィルタリングして、前記
組み合せた領域内で視覚的に示される頂点の
組み合せた集合、および前記
組み合せた集合内で頂点間を接続する辺を選択するステップと、
前記グラフのうちの前記フィルタリングされる表現の前記選択される頂点と辺を非一時的な記憶媒体に格納するステップとを含む、コンピュータ可読記憶媒体。
【請求項6】
前記受け取られるローカル・グラフ・フィルタにより一連の制約がさらに指定され、前記グラフの表現をフィルタリングするステップには、前記領域内で視覚的に示される前記頂点の部分集合をフィルタリングして、前記制約を満たす頂点、および前記選択される頂点間を接続する辺を選択することがさらに含まれる、請求項
5に記載のコンピュータ可読記憶媒体。
【請求項7】
前記ローカル・グラフ・フィルタを規定する前記コマンドを受け取るステップには、
前記ローカル・グラフ・フィルタに関連するスライダ制御を前記ユーザのために表示し、前記グラフ内の頂点の特性を表すことと、
ポインティングディバイスを介して前記特性に関する値を前記ユーザから受け取り、前記スライダ制御の位置に配置することと、
前記受け取った前記特性に関する値に基づいて、各制約を設定することとがさらに含まれる、請求項
6に記載のコンピュータ可読記憶媒体。
【請求項8】
グラフを検索するためのコンピュータシステムであって、
複数のプロセッサの集合と、
前記プロセッサの集合により実行されると、前記プロセッサの集合が、グラフを検索する方法を行う命令が格納される、前記プロセッサの集合に接続する非一時的なコンピュータ可読媒体であって、前記方法が、
頂点と辺を含むグラフを表すデータ構造を取得するステップと、
前記グラフの視覚表現をユーザのために表示するステップと、
ローカル・グラフ・フィルタを規定するコマンドを前記ユーザから受け取るステップであって、前記ローカル・グラフ・フィルタが、前記グラフの視覚表現内の領域を含むステップと、
前記グラフの前記視覚表現内に付加的な領域を含む付加的なローカル・グラフ・フィルタを前記ユーザから受け取るステップと、
前記グラフの前記視覚表現内の組み合せた領域を前記領域と前記付加的な領域との結合部または交差部と判定するステップと、
前記グラフの表現をフィルタリングして、前記
組み合わせた領域内で視覚的に示される頂点の
組み合わせた集合、および前記
組み合わせた集合内で頂点間を接続する辺を選択するステップと、
前記グラフのうちの前記フィルタリングされる表現の前記選択される頂点と辺を非一時的な記憶媒体に格納するステップとを含む、コンピュータ可読媒体とを含むコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、グラフ検索に関する。より具体的には、本開示は、グラフの視覚表現にフィルタを適用することにより、グラフを検索する方法およびシステムに関する。
【0002】
グラフとは、一連の頂点間(ノードとしても知られる)を接続する辺(リンクすなわち接続としても知られる)の表現形式である。ソーシャルネットワークや消費者と製品の関係などの大規模なデータセットの分析を含む数多くのアプリケーション、および生物学およびコンピュータ科学のアプリケーションにとってグラフは重要である。関係を予測したり、推薦を行ったりするような様々な目的で数多くのグラフ演算方法が行われている。しかしながら、大規模なグラフでは、分析を行い、それを理解し、モデリングを行う際、分かりにくく時間がかかりすぎてしまう。
【発明の概要】
【発明が解決しようとする課題】
【0003】
グラフの重要のために、グラフを可視化し、あるいは表示し、グラフ上で探索を行うための様々な方法を用いられている。グラフを検索するという課題は、低いレベルのプログラミング言語と高いレベルのプログラミング言語、ならびに従来のグラフアルゴリズムに基づいた、複雑なグラフとネットワークのパッケージを用いることで解決できている。ユーザやデータ科学者は、特定の対象の特性を用いてノードと辺を選択するスクリプトを頻繁に書かなければならない。以前の方法によっては、ノードを視覚的に選択することができるものもある。しかしながら、従来のアプローチでは、時間がかかりすぎ、使用が容易/直観的ではなく、複雑な検索を柔軟に実行することができない可能性がある。
【課題を解決するための手段】
【0004】
本発明の一実施形態により、グラフ検索のシステムおよび方法が提供される。動作中、このシステムは、グラフの頂点と辺を示すデータ構造を取得する。このシステムは、ユーザのために、グラフの視覚表現を表示することができる。次いで、このシステムは、グラフの視覚表現内の領域を含むローカル・グラフ・フィルタを規定するコマンドをユーザから受け取ることができる。次いで、このシステムは、グラフの表現をフィルタリングして、領域内で視覚的に表される頂点の部分集合とその部分集合内の頂点間を接続する辺を選択することができる。次いで、このシステムは、フィルタリングされるグラフの表現内で選択される頂点と辺を非一時的な記憶媒体に格納することができる。
【0005】
本実施形態の変更形態では、このシステムは、付加的なグラフの視覚表現内の領域を含む付加的なローカル・グラフ・フィルタをユーザから受け取ることができる。次いで、このシステムは、グラフの視覚表現内の組み合せた領域を、領域と付加的な領域の結合部または交差部と判定することができる。次いで、このシステムは、グラフの表現をフィルタリングして、組み合せた領域内で視覚的に表される頂点の組み合せ集合、および組み合せ集合内で頂点間を接続する辺を選択することができる。
【0006】
本実施形態の変更形態では、ローカル・グラフ・フィルタを規定するために、このシステムは、ポインティングディバイスを介して、グラフの視覚表現内の領域の範囲を定める境界をユーザから受け取ることができる。
【0007】
本実施形態の変更形態では、ローカル・グラフ・フィルタにより、一連の制約を指定することができる。次いで、このシステムは、領域内で視覚的に表される頂点の部分集合をさらにフィルタリングして、制約を満たす頂点と、選択される頂点間を接続する辺とを選択することができる。
【0008】
本実施形態の変更形態では、このシステムは、グラフ内の頂点の特性を表すローカル・グラフ・フィルタに関連するスライダ制御をユーザのために表示することができる。次いで、このシステムは、スライダ制御の位置に応じて、ポインティングディバイスを介して、この特性に関する値をユーザから受け取ることができる。次いで、このシステムは、受け取った特性に関する値に基づいて、各制約を設定することができる。
【0009】
本実施形態の変更形態では、グラフ内の各頂点の度合、グラフ内の各頂点に関連する複数の三角、グラフ内の各頂点に関連する複数のクリーク、グラフ内の各頂点に関連する複数のグラフレット、グラフ内の各頂点のkコア数、グラフ内の各辺のグラフ距離の測定値、およびグラフ内の各頂点のグラフ接続度の測定値のうちの1つ以上に関する値の範囲が、各制約により規定される。
【0010】
本実施形態の変更形態では、グラフ内の各頂点は補助特性に関連し、各制約により各頂点の補助特性に関する値の範囲が規定される。
【0011】
本実施形態の変更形態では、グラフ内の各頂点は補助特性に関連する。グラフ内の各頂点は人を表し得、補助特性には、その人の年齢、その人の政見、その人の性別、その人の教育レベル、その人の貧富レベルまたは収入レベル、その人の所在地、その人に関連する世帯規模、その人の購買履歴のうちの1つ以上が含まれ得る。
【図面の簡単な説明】
【0012】
【
図1B】
図1Bは、本発明の実施形態に従った、ローカル・グラフ・フィルタすなわち空間領域により、
図1Aのグラフをフィルタリングする例を示す図である。
【
図2】
図2は、本発明の実施形態に従った、グラフ検索およびフィルタリングの方法を利用するグラフ計算システムの例示的なアーキテクチャを示すブロック図である。
【
図3】
図3は、本発明の実施形態に従った、グラフを検索する方法を示すブロック図である。
【
図4A】
図4Aは、本発明の実施形態に従った、2つの空間領域の交差部に関与する組み合わせにより、
図1Aのグラフのフィルタリングする例を示す図である。
【
図4B】
図4Bは、本発明の実施形態に従った、2つの空間領域の結合部に関与する組み合わせにより、
図1Aのグラフをフィルタリングする例を示す図である。
【
図5A】
図5Aは、本発明の実施形態に従った、頂点の特性上の制約も組み込んだ、
図4Bによるグラフ・フィルタの一例を示す図である。
【
図5B】
図5Bは、本発明の実施形態に従った、
図5Aのフィルタリングされたグラフの視覚表現を示す図である。
【
図6A】
図6Aは、本発明の実施形態に従った、スライダ制御を介して制約を規定して、グラフをフィルタリングする様子を示す図である。
【
図6B】
図6Bは、本発明の実施形態に従った、グラフをフィルタリングするために、
図6Aのスライダ制御を変更した結果を示す図である。
【
図7】
図7は、本発明の実施形態に従った、多次元の空間領域による多次元のグラフのフィルタリングの一例を示す図である。
【
図8】
図8は、本発明の実施形態に従った、グラフ検索を行うための例示的な装置を示すブロック図である。
【
図9】
図9は、本発明の実施形態に従った、グラフ検索を行うための例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0013】
これらの図面では、同様の参照符号により同じ数字の要素が示される。
【0014】
以下の説明は、全ての当業者が本実施形態を実行し使用することができるよう提示され、特定の用途および要求事項に関連して提供されている。当業者にとっては、開示される実施形態の種々の修正形態は容易に明らかであり、本開示の趣旨と範囲を逸脱することなく、本明細書に規定される一般原理を他の実施形態および用途に適用することも可能である。したがって、本発明は例示される実施形態に限定されるものではなく、本明細書に開示される趣旨および特徴と整合性のある、最も広い範囲に及ぶものとする。
【0015】
概要
本発明の実施形態により、局所的なフィルタをグラフの視覚表現に適用するにより、複雑なグラフ検索を容易にするという課題が解決される。したがって、このシステムにより、複雑なグラフ検索動作が視覚的に簡単に実行され、グラフの可視化、理解、および探索をより簡単にすることができる。例えば、このシステムにより、グラフ自体の全体に渡って規定される代わりに、グラフの部分集合すなわち領域に局所化される、複雑で非直観的なグラフ検索をユーザが構築することができる。動作中、このシステムは、グラフの頂点と辺を示すデータを取得することができる。次いで、このシステムは、グラフの視覚表現をユーザのために表示し、この視覚表現内の領域を含むローカル・グラフ・フィルタを規定するコマンドをユーザから受け取ることができる。次いで、このシステムは、このグラフ表現をフィルタリングし、フィルタリングされた表現を格納することができる。
【0016】
図1Aには、グラフの視覚表現の一例が示されている。
図1Aに示される通り、グラフ100は、頂点102などの頂点(ノードとも呼ばれる)、および辺104などの辺(リンクすなわち接続とも呼ばれる)を含むことができる。
図1Aなどのグラフの視覚表現では、例えば、
図1Aの通り、点または円で頂点を示し、頂点間を接続する曲線または線で辺を示すことにより、これらの特徴を正確に再生するものとする。通常、グラフは主に位相関係に関連し、辺は本来の長さを持ち得ないため、同じグラフを視覚的に表現する方法は幾通りも存在してよい。
図1Aでは、視覚表現により異なる空間領域に集まる頂点が示されている場合もある。この空間領域では、クラスター内の接続の高い度合が反映されている場合もあれば、反映されていない場合もある。
【0017】
なお、いくつかの実施形態では、グラフが頂点間の位相接続を超える付加的な情報を含み、指すことができる。例えば、グラフは様々なタイプの頂点と辺を含むことができる(一般に、異種混合グラフ、またはマルチタイプグラフと呼ばれる)。グラフは、補助的な情報を有する任意の数の頂点の属性と辺の属性も含むことができる(属性グラフ、または時には多次元のグラフと呼ばれる)。例えば、これらの属性は、人、対象、販売する製品、その人の友達、取引のタイムスタンプ、チェックイン場所またはその他の場所、その人の年齢などに関し得る。またグラフは、空間情報および時間情報も含むことができる(ノードと辺の両方で)。
【0018】
いくつかの実施形態では、フィルタまたは制約として使用される属性/特性は、システム自体から派生する特性でよい。例えば、いくつかの実施形態では、システムが、グラフまたは属性の行列因数分解を実行することができる。次いで、各固有ベクトルは、それ自体を属性と見なし、フィルタリングに関する基として用いることができる。また、いくつかの実施形態では、このシステムを予測のための分類法または回帰法と共に用いることができる。次いで、このシステムは、予測の不確定性に基づいて、あるいは、他の可能性の中でも、正確に/不正確に分類されたノード/辺を表す属性に基づいて、属性を作成することができる。
【0019】
図1Bには、本発明の実施形態に従った、ローカル・グラフ・フィルタすなわち空間領域により、
図1Aのグラフのフィルタリングする例が示されている。
図1Bに示される通り、グラフ100の一部を選択するために用いることができる空間領域の範囲の境界がボックス106により定められている。なお、このボックスの使用は一例であり、他の形状の空間領域を使用することもできる。空間領域を含む選択基準すなわちフィルタリング基準を、本明細書では、ローカル・グラフ・フィルタ、フィルタ、セレクタ、または制御点と呼ぶ。制御点という用語は、特定のローカル・グラフ・フィルタに関連する別のオプションをユーザに提供するために表示される単一点または単一円などの、視覚ショートカットのことも指し得る。空間領域を含むローカル・グラフ・フィルタは、ポインティングディバイスを用いて、ユーザにより視覚的に指定可能である、あるいは、ファイルベースまたはテキストベースの座標入力などのその他の手段で入力可能である。
図1Bに示される通り、本発明の実施形態により、ボックス106に囲まれる領域内で視覚的に表される頂点108などのグラフの一部をフィルタリングする、あるいは選択することができる。太い線でこれらの部分を示すことにより、選択される部分を表す。
【0020】
異なる実施形態では、グラフのフィルタリングされる部分または選択される部分が異なって決定され得る。例えば、
図1Bで示される通り、ユーザは、指定される領域内に含まれる頂点を有する頂点に誘導される部分グラフを選択することができる。頂点に誘導される部分グラフには、部分グラフに含まれる頂点間を接続する辺だけが含まれるため、ボックス106内に部分的に含まれる何本かの辺は、選択されていないものとして示されている。他の実施形態では、領域内の辺により誘導される部分グラフ、または領域内の頂点と辺の両方により誘導される部分グラフを選択することができる。さらに別の実施形態では、単純に領域内の頂点または辺の集合を選択することができる、すなわち、誘導される部分グラフ以外のグラフの部分を選択することもできる。いくつかの実施形態では、より複雑でユーザが構成可能なグラフの選択オプションを提供することができる。
【0021】
構成可能なオプション
いくつかの実施形態では、システムは、ユーザが指定する制約(具体的には、制御点との組み合わせ)を用いて、グラフをフィルタリングする。このシステムは、スライダ制御などの視覚ツールを提供して、これらの制約、ならびに、3次元グラフまたは高い次元のグラフおよび空間領域の視覚表現を設定することができる。
【0022】
いくつかの実施形態では、このシステムにより、ユーザは2つ以上の制御点またはフィルタを構築して、グラフをフィルタリングすることができる。このように、制御点および/または制約を視覚的に指定することにより、ユーザは、非常に複雑で繊細なグラフ検索を簡単に表現することができる。具体的には、2つの制御点を作成することで、両方の制御点を満たすグラフの部分のみ、すなわち2つの空間領域の交差部のグラフの部分のみを選択することができる。あるいは、本発明のいくつかの実施形態では、2つの空間領域の結合部のグラフの部分をユーザが選択することもできる。
【0023】
グラフの一部を選択する、あるいはフィルタリングした後、このシステムは、メモリまたは非一時的な記憶装置にフィルタリングされた部分を格納することができる。いくつかの実施形態では、システムは、例えば、グラフのフィルタリングされた部分だけを表示する、あるいは、フィルタリングされた部分を強調するなどのその他のオプションを提供することができる。制御点を作成した後、このシステムは、さらに別のフィルタリングオプションを提供することができる。例えば、グラフの異なる部分が空間領域により囲まれるよう、制御点を動かすことができ、これにより、フィルタリングされるグラフの部分を変更することができる。あるいは、制御点を動かすことにより、視覚表現内の選択されるグラフの部分を動かすことができる。いくつかの実施形態では、このシステムは、制御点を設定後のフィルタリングされるグラフの部分、または、選択されるグラフの部分に関連するグラフ統計値を表示することができる。例えば、このシステムは、頂点の数、辺の数、密集度、頂点の度合の平均または範囲、頂点ごとのクリークの三角の数の平均または範囲、クラスター化、kコア数、グラフ距離の測定値などを表示することができる。このシステムにより、ユーザは、例えば、制御点が設定された後に、制御点をクリックすることにより、あるいは、スライダ制御を調整することにより、制約を追加したり修正したりすることもできる。
【0024】
システムのアーキテクチャ
図2には、本発明の実施形態に従った、グラフ検索法を用いるグラフ計算システム200の例示的なアーキテクチャのブロック図が示されている。複数のプロセッサと並列に接続するグラフ計算システム200は、グラフの頂点を分割し、グラフ上で検索を行うことができる。従来のシステムでは、システム200を使用する際、ユーザがスクリプトを書きこんで、グラフ検索を行わなければならない。しかしながら、本明細書で開示される方法を用いると、システム200を使用して、ユーザは複雑なグラフ検索動作を容易に視覚的に行うことができる。
【0025】
グラフ計算システム200は、サーバ206に接続する記憶装置204にインストールされるグラフ管理モジュール202を含むことができる。なお、本発明の種々の実装形態では、サーバおよび記憶装置の数は任意でよい。種々の実装形態では、グラフ管理モジュール202は、本明細書に記載される技術を実行するためのグラフ・フィルタリング・モジュール、またはグラフ計算システム200のその他の構成要素を含むことができる。システム200は、頂点と辺が記述されるデータを受け取り、そのデータを記憶装置204に格納することができる。システム200は、グラフ管理モジュール202に関するコード、および頂点と辺208に関するデータを記憶装置204から読み取ることができる。システム200は、グラフまたは部分グラフを分割し、分割したグラフをプロセッサ210A~210Hなどのプロセッサに割り当てることができ、これらのプロセッサが割り当てられたグラフまたは部分グラフ上で動作する。
【0026】
局所化されたフィルタを用いてグラフを検索する方法
図3には、本発明の実施形態に従った、局所的なフィルタに基づいて、グラフを検索する方法のフローチャート300が示されている。動作中、このシステムは、グラフの頂点と辺を示すデータを取得する(動作302)。次いで、このシステムは、グラフの視覚表現をユーザのために表示する(動作304)。次いで、このシステムは、制御点または視覚表現内の領域を含むローカル・グラフ・フィルタを規定するコマンドをユーザから受け取ることができる(動作306)。
【0027】
次に、このシステムは、グラフの表現をフィルタリングして、制御点により指定される領域内に表示される頂点により誘導される部分グラフを含むことができる(動作308)。いくつかの実施形態では、フィルタリングされた表現には、領域内に表示される辺により誘導される部分グラフが含まれ得る。他の実施形態では、フィルタリングされた表現には部分グラフではなく領域内で表示される頂点または辺が単純に含まれ得る。
【0028】
最後に、このシステムは、フィルタリングされた表現を格納することができる(動作310)。いくつかの実施形態では、このシステムは、フィルタリングされたグラフの部分を強調することができる、あるいは、フィルタリングされた部分だけを表示することができる。このシステムにより、ユーザは制御点を動かすこともでき、これにより、フィルタリングされるグラフの部分を変更することができる。さらに、このシステムは、制御点の設定後に、フィルタリングされるグラフの部分、または、選択される部分に関連するグラフ統計値を表示することもできる。このシステムにより、ユーザは、例えば、制御点の設定後に、制御点をクリックする、あるいは、スライダ制御を調整することにより、制約を追加したり修正したりすることもできる。
【0029】
局所化フィルタの組み合せ
本発明の実施形態により、ユーザは同時に複数の局所的なフィルタを規定することができ、これに伴い、グラフの視覚表現内で複数の領域を指定することもできる。これらの複数の領域では、サイズ、形状、位置、および制約の基準が互いに異なる可能性がある。このシステムは、「制御点を追加する」視覚ボタン制御、ショートカット、音声コマンド、または、局所化される新しいグラフ・フィルタをユーザが手際よく作成することができるその他の制御を提供することができる。
【0030】
干渉することなしに、複数の局所的なフィルタを単一のグラフ内に提示することができる。いくつかの実施形態では、例えば、クリックすることにより、あるいは、ポインティングディバイスで指すことにより、ローカル・グラフ・フィルタ(またはその制御点)がユーザにより動的に選択されると、局所化されるグラフ・フィルタに関連する領域が強調されて示され得る。いくつかの実施形態では、例えば、制御点を再度クリックすることにより、あるいは、ポインティングディバイスで領域の外側を指すことにより、この視覚表現内の領域を隠すことができる。さらに、視覚の散乱を避けるために、動的に使用しないとき、統計値、制約、またはその他の局所的なフィルタまたはグラフの関連部分に関する関連情報を隠すことができる。例えば、各ローカル・グラフ・フィルタ(および、その視覚表現、GUI制御など)を単一の点(制御点と呼ばれる)に縮小することができ、その点を領域の中心に配置することができる(かつ、そのように表示することができる)。次いで、例えば、ユーザが制御点をクリックする、あるいは、ポインティングディバイスで指すことにより、その情報を表示することができる。
【0031】
いくつかの実施形態では、このシステムにより、いくつかの局所的なフィルタのフィルタリング機能が相互作用するよう、すなわち、単一のフィルタとして共に動作するよう、ユーザが局所的なフィルタを組み合せることができる。例えば、このシステムにより、ユーザは2つ以上の制御点を組み合せたり、作成したり、あるいはフィルタリングしたりして、グラフのフィルタリングを行うことができる。フィルタを組み合わせたり、作成したりすることにより、ユーザは制御点および/または制約を視覚的に指定することにより、非常に複雑で繊細なグラフ検索を簡単に表現することができる。
【0032】
図4Aには、本発明の実施形態に従った、関連する2つの空間領域の交差部に関与する組み合わせにより、グラフ100をフィルタリングする例が示されている。
図4Aに示される通り、2つの局所化されるグラフ・フィルタを作成することにより、両方の局所的なフィルタを満たす、すなわち、2つの空間領域の交差部内に存在するグラフの部分だけを選択することができる。この図面で示される通り、領域402と領域404は異なる形状でよく、グラフの異なる部分に中心を有してよい。これらの交差部を介する領域402および404を作成することにより、領域402と領域404の両方に含まれる唯一の頂点である頂点406だけを選択することができる。これとは対照的に、領域404内に表示されるが、領域402にはない頂点408は、選択されない。さらに、
図4Aには両方とも領域の交差部内に存在する2つの頂点を接続する辺が存在しないため、この図の中の辺は選択されない。例えば、図示される通り、頂点406と頂点408を接続する辺は選択されない。
【0033】
あるいは、
図4Bに示される通り、このシステムにより、ユーザは2つの空間領域の結合部内のグラフの部分を選択することができる。
図4Bには、本発明の実施形態に従った、関連する2つの空間領域の結合部の組み合わせにより、グラフ100をフィルタリングする例が示されている。
図4Bには、
図4Aと同じグラフおよび同じ空間領域が示されている。しかしながら、この場合、領域402または領域404のどちらかに表示される全ての頂点が選択される。例えば、領域402内に含まれるが領域404内には含まれない、頂点410と頂点412は選択される。同様に、頂点410と頂点412を接続する辺414も選択される。
【0034】
なお、
図4Aおよび
図4Bには、フィルタリングの結果が組み合せられる空間領域内の頂点により誘導される部分グラフとして示されている。これは、空間領域とその他のフィルタ基準に基づいて頂点が選択され、選択された頂点を辺が接続する場合、およびその場合に限って、辺が選択される。しかしながら、いくつかの実施形態では、このシステムはその他の選択基準を使用することができる。例えば、このシステムは、辺に誘導される部分グラフをフィルタリングの結果として使用することができる。他の実施形態では、このシステムは、例えば、少なくとも1つの選択された頂点が、隣接する選択された頂点を要求することにより、もっと複雑な選択規則を使用することができる。
【0035】
制約を有する局所的なグラフ・フィルタ
空間領域内で表示されるグラフの部分に基づく、グラフのフィルタリングに加え、いくつかの本発明の実施形態では、ユーザがフィルタリングされたグラフ上で制約{fi}を指定することができる。制約では、関数がfi=0などの数値とることを要求され得る。なお、fiはある特性、すなわちグラフ、部分グラフ、またはグラフの一部の頂点、および/または辺の特性の関数でよく、概略的に、fi=fi(V,E)と表す。例えば、fi=deg(V)-6(deg(V)は空間領域内に表示される頂点の度合を示す)の場合、制約fi=0では、6の度合を有する領域内の頂点が選択される。あるいは、制約により最大値または最小値(例えば、fi>3かつfi≦5)を設定することができる。
【0036】
空間領域と同様に、例えば、ANDやORのような論理演算子を用いて、制約を作成することもできる。次いで、例えば、制約の集合F={f1,...,fj}のANDを介する構成(f1AND...ANDfi...ANDfj)により、集合F内の全ての制約が同時に満たされなければならない。あるいは、ANDとORが織り込まれた組合せを用いて、より繊細で柔軟性のある制約の構成を構築することもできる。
【0037】
制約を数式の形態で、あるいは文字列で特定することができる。メニューなどの事前に設定されたオプションから変数パラメータを用いて制約を選択することができる、あるいは、特別な入力言語などにより、より柔軟に指定することができる。制約とそれに関連する変数は、スライダ制御、ドロップダウンメニュー、またはボタンなどの視覚ユーザツールによっても設定することができる。
【0038】
図5Aには、本発明の実施形態に従った、
図4Bの空間領域の結合部によってフィルタリングされ、さらに頂点の特性に制約を組み込んだ、グラフ100の例が示されている。グラフの表現内の制御点の近くに制約を視覚的に表示することができる(例えば、テキストおよび/または数式により)。例えば、
図5Aに示される通り、ユーザは最小許容度合2と最大許容度合3の両方を指定することができる。これにより、度合2または3が選択された頂点だけがフィルタにより選択される。
図5Aに示される通り、度合4の頂点502は、最小度合の制約を満たすが、最大度合の制約を満たさないため選択されない。頂点502と頂点506を接続する辺504は、頂点506が選択されているが、頂点502が選択されないため選択されない。なお、
図5Aでは、隣接する頂点が空間領域内にあるかどうか、その頂点自体がフィルタリングの制約を満たしているかどうかに関わらず、度合を標準的な方法で規定することができる。しかしながら、実施形態によっては、このシステムは、度合またはその他のグラフ特性を首尾一貫した方法で判定し得る、例えば、それ自体がフィルタの制約を満たしている頂点だけに隣接する頂点として見なす方法により判定するものもある。
【0039】
図5Bには、
図5Aのグラフに制約を適用してフィルタリングしたグラフ508が示されている。この図面に示される通り、いくつかの本発明の実施形態では、フィルタリングされたグラフの部分すなわち部分グラフだけを表示することができる。局所的なグラフ・フィルタを適用した後、このシステムは、フィルタリングされた部分すなわち部分グラフを非一時的な記憶装置に格納することができる。システムは、フィルタリングされた部分すなわち部分グラフを検索結果としても提供し、グラフ計算またはその他の分析への入力としてこの検索結果を使用することができる。
【0040】
制約の基準になる例示的な位相グラフ特性には、頂点の度合、頂点が属する三角の数、頂点が属するkクリーク(すなわち、k個の要素を有するクリーク)の数、頂点が属するクリークの総数、クラスタリング、kコア数、グラフ距離の測定値などが含まれる。いくつかの実施形態では、グラフは位相的な情報以外に付加的な情報を含んだり、指したりすることができる。例えば、グラフは、複数のタイプの頂点と辺を含むことができる(一般に、異種混合グラフ、またはマルチタイプグラフと呼ばれる)。その他の特性には、時間と空間の従属物(グラフのノードと辺の両方に関する)、および2部グラフ特性、あるいは、より一般的には、kグラフ特性が含まれ得る。
【0041】
いくつかの実施形態では、グラフは、付加的な情報を有するために、あるいは、示すために、頂点または辺に関する補助特性を指定することができる。例えば、グラフの頂点は、人、対象、販売する製品、取引などを表すことができ、そして、グラフは、人の友達、取引のタイムスタンプ、人のチェックイン場所またはその他の場所、人の年齢や政見などの補助特性を指定することができる。このような補助特性は属性とも呼ばれ、グラフは属性グラフまたは多変数グラフとして補助特性を指定する。
【0042】
このシステムは、頂点または辺の補助特性に関する制約を指定することができる。例えば、選択される頂点は18才から27才までの年齢の人を表すものとすることを制約により指定することができる。また、頂点または辺の位相特性と補助特性の組み合わせなどの構築された特徴にも制約は関連し得る。例えば、同様の政見を有する人達の4クリークに頂点が属するものとすることを制約により指定することができる。このように制約をフィルタリングすることにより、繊細な検索を簡単に行い、重要な用途を表す、ネットワーク内の有用な関係をユーザが見つけることができる。
【0043】
一般に、フィルタとして使用可能な特性および/または属性は、グラフに関連してよい。あるいは、フィルタとして使用可能な特性および/または属性は、グラフのノードと辺に直接関連しない特性および/または属性でよい。例えば、特性および/または属性は、「最後の取引のタイムスタンプ」、「個人がチェックインした/居た最後の場所」、または「個人の年齢」などの外部のノードおよび辺の属性でもよい。いくつかの実施形態では、フィルタまたは制約として使用する属性は、システム自体により引き出される特性でもよい。例えば、グラフまたは属性の行列因数分解では、固有ベクトルを属性と見なし、フィルタリングに関する基として使用することができる。いくつかの実施形態では、このシステムは、予測のための分類法または回帰法と共に使用することができる。次いで、このシステムは、予測の不確定性に基づいて、あるいは、他の可能性の中でも、正確に/不正確に分類されたノード/辺を表す属性に基づいて、属性を作成することができる。
【0044】
いくつかの実施形態では、属性は関係を有することができ、制約は関係のある属性を指すことができる。他の実施形態では、属性に関係がなくてよい。
【0045】
フィルタ制約のための視覚制御
本発明のいくつかの実施形態では、制約を設定するための、スライダ制御、ドロップダウンメニュー、またはボタンなどの視覚ツールが提供することができる。いくつかの実施形態では、例えば、既存のローカル・グラフ・フィルタ上に表示される制御点をクリックすることにより、ユーザが制約を追加することができる。
図6Aには、本発明の実施形態に従って、視覚スライダ制御で特定される制約により、グラフをフィルタリングする様子が示されている。
図6Aには、
図1Bのグラフ100と局所的なグラフ・フィルタが示されている。しかしながら、
図1Bに示される空間領域106に加えて、
図6Aのグラフはまた、最小の数の三角での制約によりフィルタリングされる。三角とは、クリーク、すなわち3つの頂点で完全に接続される部分グラフである。したがって、
図6Aに示されている制約により、選択されるためには、頂点は少なくとも最小の数の三角の要素であることが必要である。
【0046】
図6Aに示される通り、いくつかの実施形態では、このシステムにより、ユーザはスライダ制御などの視覚ツールを介して最小数の三角などの制約のパラメータを指定することができる。図示される通り、スライダ602は値0に設定され、最小0個の三角を示している。このことは、これらの頂点に関する付加的な制約がないことと同じである。したがって、このグラフは空間領域によってのみフィルタリングされ、図示される通り、
図1Bと同じ部分グラフが選択される。
【0047】
図6Bには、スライダ制御が異なる値に調整された状態の、同じグラフと制約が示されている。この場合、スライダ604は値1に設定されている。したがって、選択されるためには、頂点は少なくとも1つの三角の要素であることが
図6Bに示される制約により必要となる。スライダの値をこのように変更した結果、頂点606は、どの三角にも属さないため
図6Aでは選択されるが、
図6Bでは選択されない。同様に、辺608は、頂点606に接続するため選択されない。しかしながら、同じ三角に属する頂点610と頂点612は選択される。
【0048】
なお、頂点610と頂点612は、2つの三角に属し、これらの三角のうちの一方は完全に空間領域106の内側にある。頂点610と頂点612とともに第2の三角を形成する頂点614は、領域106の外側にあるため選択されない。いくつかの実施形態では、制約に関連する頂点または辺の特性は、グラフ全体に対して計算されるため、例えば、頂点610は2つの三角に属する。しかしながら、他の実施形態では、特性は空間領域内のグラフの部分に対して計算され得るため、例えば、頂点610は1の三角の数を有する。いくつかの実施形態では、特性は、制約を含む局所的なグラフ・フィルタに対して、自己整合的に計算され得る。
【0049】
高次元のグラフおよび局所フィルタの可視化
いくつかの実施形態では、グラフの表現は、3次元以上の高次元で表される。グラフの3次元以上の可視表現を表示することにより、本発明の実施形態では、複雑なグラフに関する詳細な情報を厳密な2次元の可視表現よりもより明瞭に、かつより深く示すことができる。
図7には、本発明の実施形態に従った、多次元空間領域により、多次元グラフをフィルタリングする例が示されている。この例では、グラフの3次元の表現700が局所的なグラフ・フィルタの作成に用いられる3次元の領域702と共に示されている。この図で見られる通り、頂点704は3次元の領域702内に表示され、したがって、フィルタリングされたグラフの表現内で選択される。領域702は立方体として示されているが、球体、長球体、多角体などの別の3次元体も使用可能である。
【0050】
このシステムは、グラフの視覚表現を2次元のディスプレイすなわちスクリーン上に表示するが、それでも、このシステムは、透視図または斜視図あるいは投影図を用いて、
図7のような3次元または高次元のグラフの表現を示すことができる。これらの図により、ユーザは、視覚の検査により、グラフの一部がローカル・グラフ・フィルタの空間領域内に位置するかどうか判定することができる。このシステムにより、グラフの一部をより明瞭に可視化するために(具体的には、多次元の可視表現)、ユーザは、視覚表現内の図を回転させたり、水平移動させたり、ズームさせたりすることができる。このシステムは、その他のタイプの表示技術、または3次元以上のグラフを可視化するための関連技術、例えば、ホログラフィック投影、ステレオグラム、またはその他の3次元表示を用いることもできる。動画を用いて1次元以上の可視表現をステップスルーし、これにより、フレームごとに可視化されるために必要な次元の数を減らすことができる。さらに、例えば、高次元の可視表現の2次元の投影画像または3次元の投影画像を表示することにより、3次元より高い次元を用いるグラフ可視表現も示すことができる。
【0051】
例示的な装置
図8には、いくつかの実施形態に従って、視覚グラフ検索および局所的なフィルタリングを容易にする例示的な装置800のブロック図が示されている。装置800は、有線や無線の通信チャネルを介して互いに通信可能な複数のモジュールを含むことができる。装置800は1つ以上の集積回路を用いて実現され得、含まれるモジュールの数は
図8に示されるモジュールより少なくても多くてよい。さらに、装置800はコンピュータシステム内に統合される、あるいは、他のコンピュータシステム、および/または装置と通信可能な分離装置として実現され得る。具体的には、装置800は、グラフデータ受信モジュール802、グラフ表示モジュール804、制御点受信モジュール806、およびグラフ・フィルタリング・モジュール808を含むことができる。なお、装置800は、
図8には図示されない付加的なモジュールも含むことができる。
【0052】
いくつかの実施形態では、グラフデータ受信モジュール802が、グラフの頂点と辺の表現を含むデータを受け取ることができる。グラフ表示モジュール804は、2次元以上のグラフの視覚表現を表示することができる。制御点受信モジュール806は、グラフの可視表現内の空間領域、および任意の制約を含むローカル・グラフ・フィルタを規定するユーザコマンドを受け取ることができる。グラフ・フィルタリング・モジュール808は、制御点受信モジュール806により受け取られたローカル・グラフ・フィルタに従って、かつ指定された任意の制約により、グラフをフィルタリングすることができ、フィルタリングされたグラフ表現を表示することができる、あるいは格納することができる。なお、
図2に示されるグラフ管理モジュール202は、
図8に示される様々なモジュールの任意のかつ全ての機能を提供することができる。
【0053】
例示的なシステム
図9には、いくつかの実施形態に従った、例示的なグラフ検索およびフィルタリングを行うためのコンピュータシステム900が示されている。いくつかの実施形態では、コンピュータシステム900はサーバでよい。いくつかの実施形態では、システム900は、プロセッサ902、メモリ904、および記憶装置906を含む。いくつかの実施形態では、プロセッサ902には、一連のプロセッサが含まれ得る。記憶装置906は、アプリケーション914および916などの複数のアプリケーション、およびオペレーティングシステム922を格納することができ、これらのアプリケーションにより、本発明の実施形態に従ったグラフ検索や関連する検索結果が用いられ得る。記憶装置906は、グラフデータ受信モジュール802、グラフ表示モジュール804、制御点受信モジュール806、およびグラフ・フィルタリング・モジュール808を含むグラフ・フィルタリング・システム908も格納する。システム900および/またはグラフデータ受信モジュール802は、頂点と辺のデータを含むグラフデータ930を受け取ったり、生成したりすることができ、グラフデータをグラフ・フィルタリング・システム908にアクセス可能なメモリ部にコピーすることもできる。動作中、グラフ・フィルタリング・システム908などの1つ以上のアプリケーションは、記憶装置906からメモリ904に読み込まれ、次いで、プロセッサセット902により実行される。プログラムが実行されると、プロセッサセット902は上述の機能を行う。システム900は、ディスプレイ910、キーボード918、およびポインティングディバイス920に接続することができ、このディスプレイ910が、グラフ912などのグラフの可視化表現を表示することができる。
【0054】
いくつかの実施形態では、グラフデータ受信モジュール802が、グラフの頂点と辺の表現を含むデータを受け取ることができる。グラフ表示モジュール804は、2次元以上のグラフの視覚表現を表示することができる。制御点受信モジュール806は、グラフの可視表現内の空間領域、および任意の制約を含むローカル・グラフ・フィルタを規定するユーザコマンドを受け取ることができる。グラフ・フィルタリング・モジュール808は、制御点受信モジュール806により受け取られたローカル・グラフ・フィルタに従って、かつ指定された任意の制約により、グラフをフィルタリングすることができ、フィルタリングされたグラフ表現を表示することができる、あるいは格納することができる。なお、
図2に示されるグラフ管理モジュール202は、
図9に示される様々なモジュールの任意のかつ全ての機能を提供することができる。
【0055】
この詳細な説明で記載されたデータ構造とコードは、通常、コンピュータ可読記憶媒体に格納され、このコンピュータ可読媒体は、コンピュータシステムが使用するコード、および/またはデータを格納可能な任意の装置または媒体でよい。コンピュータ可読記憶媒体には、揮発性メモリ、不揮発性メモリ、およびディスク・ドライブ、磁気テープ、CD(コンパクトディスク)、DVD(デジタル多機能ディスクまたはデジタルビデオディスク)、または、今現在知られている、あるいは、今後開発されるその他のコンピュータ可読媒体を格納可能な媒体などの、磁気記憶装置や光記憶装置が含まれるが、これらには限定されない。
【0056】
この詳細な説明で記載された方法および処理は、コードおよび/またはデータとして具現化することができ、これらは上記のコンピュータ可読記憶媒体に格納することができる。コンピュータシステムが、コンピュータ可読記憶媒体に格納されたコード、および/またはデータを読み込み実行すると、そのコンピュータシステムは、データ構造およびコードとして具現化され、コンピュータ可読記憶媒体内に格納された方法および処理を実行する。
【0057】
さらに、本明細書に記載された方法および処理は、ハードウェア・モジュールまたは装置内に含まれ得る。これらのモジュールまたは装置には、特定用途向け集積回路(ASIC)チップ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定の時間に特定のソフトウェアモジュールまたはコードの一部を実行する専用または共有のプロセッサ、および/または、今現在知られている、あるいは、今後開発されるその他のプログラム可能論理回路が含まれ得るがこれらには限定されない。ハードウェア・モジュールまたは装置が起動すると、その中に含まれる方法および処理が実行される。