特許第6373744号(P6373744)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ パロ・アルト・リサーチ・センター・インコーポレーテッドの特許一覧

特許6373744モードベースのグラフクラスタリングを使用した関心情報の効率的な検出
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6373744
(24)【登録日】2018年7月27日
(45)【発行日】2018年8月15日
(54)【発明の名称】モードベースのグラフクラスタリングを使用した関心情報の効率的な検出
(51)【国際特許分類】
   G06F 17/30 20060101AFI20180806BHJP
【FI】
   G06F17/30 419B
   G06F17/30 210D
【請求項の数】22
【外国語出願】
【全頁数】27
(21)【出願番号】特願2014-247001(P2014-247001)
(22)【出願日】2014年12月5日
(65)【公開番号】特開2015-115066(P2015-115066A)
(43)【公開日】2015年6月22日
【審査請求日】2017年12月4日
(31)【優先権主張番号】14/099,808
(32)【優先日】2013年12月6日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502096543
【氏名又は名称】パロ・アルト・リサーチ・センター・インコーポレーテッド
【氏名又は名称原語表記】Palo Alto Research Center Incorporated
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】ダニエル・デイヴィス
【審査官】 吉田 誠
(56)【参考文献】
【文献】 特開2011−123743(JP,A)
【文献】 特開2013−148987(JP,A)
【文献】 中国特許出願公開第102768670(CN,A)
【文献】 米国特許出願公開第2013/0182931(US,A1)
【文献】 特開2012−003709(JP,A)
【文献】 特開2012−079029(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
コンピュータが、複数のデータ要素を備えるデータセットを、記憶装置に記憶することと、
前記コンピュータが、前記複数のデータ要素の中の第1のデータ要素と第2のデータ要素との間の関係の種類及び強さを決定することと、
グラフにおける前記第1のデータ要素を表す第1の頂点と前記第2のデータ要素を表す第2の頂点との間のエッジとして前記関係の種類及び強さを表すことと、
前記コンピュータが、前記第1の頂点と前記第2の頂点との間の前記エッジに基づいて、グラフにおいて前記第1の頂点の第1の頂点識別子を前記第2の頂点に割り当てることと、
前記コンピュータが、前記第1の頂点及び前記第2の頂点を、前記第1の頂点識別子と関連付けられた、前記データセットにおける関心情報を表す頂点クラスタに割り当てることと、
前記コンピュータが、前記グラフの複数のエッジの複数のエッジ種類を決定することと、
前記コンピュータが、前記コンピュータの連続メモリに、同じ種類及び同じ元識別子と共にエッジを表す情報を記憶することと、
前記コンピュータが、前記複数のエッジ種類に基づいて、前記グラフにおける頂点のセットについての複数のクラスタリングを生成することと、
前記コンピュータが、前記頂点クラスタと関連付けられたモジュール方式に基づいて、前記頂点クラスタを収束することと、
を備えるコンピュータが実行する方法。
【請求項2】
前記コンピュータが、前記グラフにおける頂点のサブセットを、頂点クラスタを形成するために前記コンピュータにおいて実行中の第1のスレッドに割り当てることを更に備え、
前記頂点のサブセットのために前記頂点クラスタを形成することは、前記第1のスレッドの中で、計算される、
請求項1に記載のコンピュータが実行する方法。
【請求項3】
前記コンピュータが、第2のスレッドのために前記第1のスレッドにおいて頂点対クラスタマッピングを維持することと、
前記コンピュータが、前記頂点対クラスタマッピング、前記頂点のサブセット、前記頂点のサブセットにおける元頂点を有するエッジ、及び、前記頂点のサブセットにおける模範を有するクラスタのうちの1つ以上に基づいて、前記第1のスレッドに関連付けられた頂点クラスタについてのモジュール方式を計算することと、
を更に備える、請求項に記載のコンピュータが実行する方法。
【請求項4】
前記コンピュータが、
元及び宛先頂点が頂点のサブセットにある範囲内エッジ、
元及び宛先頂点が頂点のサブセットにあり、宛先頂点が頂点のサブセット外にある範囲間エッジ、及び、
元及び宛先頂点が頂点クラスタに対応し、元及び宛先頂点の一方又は双方が頂点のサブセット外にあるクラスタ内の範囲間エッジ
のうちの1つ以上に基づいて、前記第1のスレッドに関連付けられた頂点クラスタについてのローカルモジュール方式を計算することを更に備える、
請求項に記載のコンピュータが実行する方法。
【請求項5】
前記コンピュータが、ハッシュテーブルを使用することによって前記頂点クラスタにおける頂点の数を計算することを更に備え、
前記ハッシュテーブルのキーが、頂点識別子である、
請求項1に記載のコンピュータが実行する方法。
【請求項6】
前記コンピュータが、配列を使用して、前記頂点クラスタにおける頂点の数を推定することを更に備え、
前記配列におけるエントリは、前記頂点の数に対応し、
前記エントリは、前記第1の頂点識別子の一部に基づいてアドレスされる、
請求項1に記載のコンピュータが実行する方法。
【請求項7】
前記コンピュータが、ハッシュテーブルに基づいてモードを計算することを更に備え、
前記ハッシュテーブルのキーは、前記キーに対応する複数の頂点の頂点識別子を備える、
請求項1に記載のコンピュータが実行する方法。
【請求項8】
前記ハッシュテーブルは、前記複数の頂点の各頂点について再利用可能である、
請求項に記載のコンピュータが実行する方法。
【請求項9】
前記コンピュータが、ランダムビットストリームに基づいて、前記第2の頂点に対する前記第1の頂点識別子の割り当てを防止することを更に備える、
請求項1に記載のコンピュータが実行する方法。
【請求項10】
前記コンピュータが、前記第2の頂点の第2の頂点識別子と前記第1の頂点識別子との比較に基づいて前記第2の頂点に対する前記第1の頂点識別子の割り当てを許容することを更に備え、
前記比較の種類は、現在の反復に基づいて判定される、
請求項1に記載のコンピュータが実行する方法。
【請求項11】
前記コンピュータが、比較の種類が適用された反復回数に基づいて、前記比較の種類を判定することを更に備える、
請求項10に記載のコンピュータが実行する方法。
【請求項12】
前記第1の頂点識別子の現在及び以前の割り当てに基づいて、前記第1の頂点識別子の割り当ての振動を検出することを更に備える、
請求項1に記載のコンピュータが実行する方法。
【請求項13】
前記第1の頂点識別子の現在及び2つの前の割り当てに基づいて、前記第1の頂点識別子の割り当ての振動を検出することを更に備える、
請求項1に記載のコンピュータが実行する方法。
【請求項14】
コンピュータにより実行される時に、前記コンピュータに方法を実行させる命令を記憶するコンピュータが読み取り可能な記憶媒体であって、
前記方法は、
前記コンピュータが、複数のデータ要素を備えるデータセットを、記憶装置に記憶することと、
前記コンピュータが、前記複数のデータ要素の中の第1のデータ要素と第2のデータ要素との間の関係の種類及び強さを決定することと、
グラフにおける前記第1のデータ要素を表す第1の頂点と前記第2のデータ要素を表す第2の頂点との間のエッジとして前記関係の種類及び強さを表すことと、
前記コンピュータが、前記第1の頂点と前記第2の頂点との間の前記エッジに基づいて、グラフにおいて前記第1の頂点の第1の頂点識別子を前記第2の頂点に割り当てることと、
前記コンピュータが、前記第1の頂点及び前記第2の頂点を、前記第1の頂点識別子と関連付けられた、前記データセットにおける関心情報を表す頂点クラスタに割り当てることと、
前記コンピュータが、前記グラフの複数のエッジの複数のエッジ種類を決定することと、
前記コンピュータが、前記コンピュータの連続メモリに、同じ種類及び同じ元識別子と共にエッジを表す情報を記憶することと、
前記コンピュータが、前記複数のエッジ種類に基づいて、前記グラフにおける頂点のセットについての複数のクラスタリングを生成することと、
前記頂点クラスタと関連付けられたモジュール方式に基づいて、前記頂点クラスタを収束することと、
を備える、記憶媒体。
【請求項15】
前記コンピュータが、前記グラフにおける頂点のサブセットを、頂点クラスタを形成するために前記コンピュータにおいて実行中の第1のスレッドに割り当てることを更に備え、
前記頂点のサブセットのために前記頂点クラスタを形成することは、前記第1のスレッドの中で、計算される、
請求項14に記載の記憶媒体。
【請求項16】
前記コンピュータが、第2のスレッドのために前記第1のスレッドにおいて頂点対クラスタマッピングを維持することと、
前記コンピュータが、前記頂点対クラスタマッピング、前記頂点のサブセット、前記頂点のサブセットにおける元頂点を有するエッジ、及び、前記頂点のサブセットにおける模範を有するクラスタのうちの1つ以上に基づいて、前記第1のスレッドに関連付けられた頂点クラスタについてのモジュール方式を計算することと、
を更に備える、
請求項15に記載の記憶媒体。
【請求項17】
前記コンピュータが、
元及び宛先頂点が頂点のサブセットにある範囲内エッジ、
元及び宛先頂点が頂点のサブセットにあり、宛先頂点が頂点のサブセット外にある範囲間エッジ、及び、
元及び宛先頂点が頂点クラスタに対応し、元及び宛先頂点の一方又は双方が頂点のサブセット外にあるクラスタ内の範囲間エッジ
のうちの1つ以上に基づいて、前記第1のスレッドに関連付けられた頂点クラスタについてのローカルモジュール方式を計算することを更に備える、
請求項15に記載の記憶媒体。
【請求項18】
前記コンピュータが、ハッシュテーブルを使用することによって前記頂点クラスタにおける頂点の数を計算することを更に備え、
前記ハッシュテーブルのキーが、頂点識別子である、
請求項14に記載の記憶媒体。
【請求項19】
プロセッサと、
メモリと、
表示モジュールと、
伝播モジュールと、
収束モジュールと、
を備えるコンピューティングシステムであって、
前記表示モジュールは、
複数のデータ要素を備えるデータセットを、記憶装置に記憶し、
前記複数のデータ要素の中の第1のデータ要素と第2のデータ要素との間の関係の種類及び強さを決定し、
グラフにおける前記第1のデータ要素を表す第1の頂点と前記第2のデータ要素を表す第2の頂点との間のエッジとして前記関係の種類及び強さを表し、
前記伝播モジュールは、
前記第1の頂点と前記第2の頂点との間の前記エッジに基づいて、グラフにおいて前記第1の頂点の第1の頂点識別子を前記第2の頂点に割り当て、
前記第1の頂点及び前記第2の頂点を、前記第1の頂点識別子と関連付けられた、前記データセットにおける関心情報を表す頂点クラスタに割り当て、
前記グラフの複数のエッジの複数のエッジ種類を決定し、
前記コンピューティングシステムの連続メモリに、同じ種類及び同じ元識別子と共にエッジを表す情報を記憶し、
前記複数のエッジ種類に基づいて、前記グラフにおける頂点のセットについての複数のクラスタリングを生成し、
収束モジュールは、
前記頂点クラスタと関連付けられたモジュール方式に基づいて、前記頂点クラスタを収束する、
コンピューティングシステム。
【請求項20】
前記伝播モジュールは、さらに、前記グラフにおける頂点のサブセットを、頂点クラスタを形成するために前記コンピューティングシステムにおいて実行中の第1のスレッドに割り当てるように構成され、
前記頂点のサブセットのために前記頂点クラスタを形成することは、前記第1のスレッドの中で、計算される、
請求項19に記載のコンピューティングシステム。
【請求項21】
前記伝播モジュールは、さらに、
第2のスレッドのために前記第1のスレッドにおいて頂点対クラスタマッピングを維持し、
前記頂点対クラスタマッピング、前記頂点のサブセット、前記頂点のサブセットにおける元頂点を有するエッジ、及び、前記頂点のサブセットにおける模範を有するクラスタのうちの1つ以上に基づいて、前記第1のスレッドに関連付けられた頂点クラスタについてのモジュール方式を計算する、
ように構成されている、請求項20に記載のコンピューティングシステム。
【請求項22】
前記伝播モジュールは、さらに、
元及び宛先頂点が頂点のサブセットにある範囲内エッジ、
元及び宛先頂点が頂点のサブセットにあり、宛先頂点が頂点のサブセット外にある範囲間エッジ、及び、
元及び宛先頂点が頂点クラスタに対応し、元及び宛先頂点の一方又は双方が頂点のサブセット外にあるクラスタ内の範囲間エッジ
のうちの1つ以上に基づいて、前記第1のスレッドに関連付けられた頂点クラスタについてのローカルモジュール方式を計算する、
ように構成されている、請求項20に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ分析に関する。より具体的には、本開示は、関心情報を検出するための効率的なデータ分析のための方法及びシステムに関する。
【背景技術】
【0002】
計算能力の急激な増加は、効率的なデータ分析を使用して、買い物の嗜好、ソーシャルメディア活動、医療照会及び電子メールのトラフィックパターンなどの関心情報を抽出することが可能としている。そのようなデータ分析の要件は、それらに効率的な計算需要の増加をもたらしている。その結果、装置ベンダは、効率的に関心情報を計算するためにグラフクラスタリングなどの多目的な機能を備えた大規模で高速なコンピューティングデバイスを競い合って構築している。しかしながら、コンピューティングデバイスの計算能力は、無限に増大することができない。いくつかの要因を指定することは、物理的空間、電力消費及び設計の複雑さによって制限される。さらにまた、より高い能力を有するコンピューティングデバイスは、通常、より複雑で高価である。より重要なことに、過度に大規模で複雑なコンピューティングデバイスは、多くの場合、規模の経済性を提供しないことから、コンピューティングデバイスの能力を単に増加させることは、経済的に実行不可能なことを証明することができる。
【0003】
この課題に対処する1つの方法は、大規模な任意のデータセットから関心情報を抽出するために使用されるデータ分析ツールの効率を高めることである。そのような大規模なデータセットのデータ分析の効率を増加させることは、分析ツールの複雑さを増加させることがあり、大規模な現実の配備には一般的に適していない。したがって、効率的なデータ分析技術は、さらに、実際の配備の実行可能性を必要とする。
【0004】
グラフクラスタリングは、大規模なデータセットを分析するためのツールである。通常、データセットにおける要素は、頂点として表され、要素間の関係は、グラフにおけるエッジとして表される。グラフクラスタリングは、1つのクラスタにおける頂点が他のクラスタにおける頂点よりも互いにより密に相互接続されるように、類似の要素のクラスタ(すなわち、グループ)をみつける。このように、データセットは、より抽象的なレベルで観察されることができ、コンピューティングデバイスが関心情報を判定するのを可能とする。
【発明の概要】
【発明が解決しようとする課題】
【0005】
グラフクラスタリングは、データ分析に対して多くの望ましい特徴をもたらす一方で、いくつかの問題は、大規模な任意のデータセットから関心情報を効率的に得ることにおいて解決されていないままである。
【課題を解決するための手段】
【0006】
本発明の1つの実施形態は、コンピューティングシステムを提供する。コンピューティングシステムは、プロセッサと、コンピュータ読み取り可能な記憶媒体とを含む。コンピュータ読み取り可能な記憶媒体は、プロセッサによって実行されたときにプロセッサに方法を実行させる命令を記憶する。本方法は、第1の頂点と第2の頂点との間のエッジに基づいて、グラフにおける第2の頂点に第1の頂点の頂点識別子を割り当てることを備える。頂点は、データセットにおける要素を表し、エッジは、頂点間の関係の種類及び強さを表している。本方法は、さらに、頂点識別子に関連付けられた頂点クラスタに各頂点を暫定的に割り当てることと、全ての頂点クラスタに関連付けられたクラスタ品質の尺度に基づいて割り当てを収束することとを備える。各頂点クラスタは、データセットにおける関心情報を表している。クラスタリング品質の1つの尺度は、「モジュール方式」と称される。
【0007】
本実施形態における変形例において、本方法は、さらに、複数のエッジ及び複数のエッジ種類を表す情報を記憶することを備える。同じ種類及び元識別子を有するエッジは、コンピュータの連続メモリに記憶される。本方法は、さらに、複数のエッジ種類に基づいて、グラフにおける頂点のセットについての複数のクラスタリングを生成することを備える。
【0008】
本実施形態における変形例において、本方法は、さらに、頂点クラスタを形成するためにコンピュータにおいて実行中の第1のスレッドに対してグラフにおける頂点のサブセットを割り当てることを備える。頂点のサブセットについての頂点クラスタを形成することは、第1のスレッド内で計算される。頂点のサブセットは、頂点の「範囲」と称される。
【0009】
他の変形例において、本方法は、さらに、各範囲についての頂点対クラスタマッピングを導出するために各範囲について第1のスレッドを使用することと、(i)頂点対クラスタマッピング、及び、(ii)頂点の全ての範囲のうちの1つ以上に基づいて、全ての頂点クラスタについてのモジュール方式を計算するために追加のスレッドを使用することとを備える。
【0010】
さらなる変形例において、本方法はまた、(i)元及び宛先頂点が頂点の範囲にある範囲内エッジ、(ii)元及び宛先頂点が頂点の範囲にあり、宛先頂点が頂点の範囲外にある範囲間エッジ、(iii)元頂点が頂点クラスタに対応し、模範が頂点の範囲内にあり、宛先頂点が異なる範囲にあり且つ異なるクラスタに割り当てられているクラスタ間の範囲間エッジ、及び、(iv)元頂点が同じ頂点クラスタに含まれ、宛先頂点が頂点の範囲外にあるクラスタ内の範囲間エッジのうちの1つ以上に基づいて、スレッドに関連付けられた頂点クラスタについてのローカルモジュール方式を計算することを備える。
【0011】
さらなる変形例において、本方法はまた、ハッシュテーブルを使用することによって頂点クラスタにおける頂点の数を計算することを備え、ハッシュテーブルのキーが、頂点識別子である。
【0012】
さらなる変形例において、本方法はまた、配列を使用して各頂点クラスタにおける頂点の数を推定することを備える。配列におけるエントリは、各クラスタにおける頂点の数に対応し、頂点識別子の一部に基づいてアドレスされる。
【0013】
本実施形態における変形例において、本方法は、さらに、ハッシュテーブルに基づいてモードを計算することを備える。ハッシュテーブルのキーは、キーに対応する複数の頂点の頂点識別子を備える。
【0014】
さらなる変形例において、ハッシュテーブルは、複数の頂点の各頂点について再利用可能である。
【0015】
本実施形態における変形例において、本方法は、さらに、ランダムビットストリームに基づいて、第2の頂点に対する頂点識別子の割り当てを防止することを備える。
【0016】
本実施形態における変形例において、本方法は、さらに、第2の頂点の第2の頂点識別子を有する頂点識別子の比較に基づいて第2の頂点に対する頂点識別子の割り当てを許容することを備える。比較の種類は、現在の反復に基づいて判定される。
【0017】
さらなる変形例において、本方法は、さらに、比較の種類が適用された反復回数に基づいて、比較の種類を判定することを備える。
【0018】
本実施形態における変形例において、本方法は、さらに、頂点識別子の現在及び以前の割り当てに基づいて、頂点識別子の割り当ての振動を検出することを備える。
【0019】
本実施形態における変形例において、本方法は、さらに、頂点識別子の現在及び2つの前の割り当てに基づいて、頂点識別子の割り当ての振動を検出することを備える。
【図面の簡単な説明】
【0020】
図1A図1Aは、本発明の実施形態にかかるモードベースのラベル伝播を使用して関心情報を効率的に検出するための例示的なシステムを図示している。この文脈において、「モード」は、「最も一般的に生じる」ことを意味する。平均値及び中央値とともに、それは、値のセットから1つの値を生成するために一般的に使用される。
図1B図1Bは、本発明の実施形態にかかる関心情報を検出するための例示的なモードベースのラベル伝播を図示している。
図2図2は、本発明の実施形態にかかるグラフクラスタリングについての例示的なモードベースのラベル伝播を図示している。
図3図3は、本発明の実施形態にかかるモードベースのラベル伝播の並列実行に基づいて、関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。
図4図4は、本発明の実施形態にかかるモードベースのグラフクラスタリングについての関心情報検出システムのモード計算処理を図示するフローチャートを表している。
図5A図5Aは、本発明の実施形態にかかるランダム更新防止に基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。
図5B図5Bは、本発明の実施形態にかかる周期的バイアスに基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。
図5C図5Cは、本発明の実施形態にかかる振動検出に基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。
図6A図6Aは、本発明の実施形態にかかる埋め込まれたモジュール方式計算によるクエリに基づくモードベースのグラフクラスタリングについての関心情報検出システムの収束検出処理を図示するフローチャートを表している。
図6B図6Bは、本発明の実施形態にかかるモジュール方式のローカル推定に基づくモードベースのグラフクラスタリングについての情報関心検出システムにおけるスレッドの収束検出処理を図示するフローチャートを表している。
図7図7は、本発明の実施形態にかかるグラフクラスタリングについての例示的な貪欲モードベースのラベル伝播を図示している。
図8A図8Aは、本発明の実施形態にかかる貪欲モードベースのラベル伝播に基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。
図8B図8Bは、本発明の実施形態にかかる貪欲モードベース及びモードベースのラベル伝播の組み合わせに基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。
図9A図9Aは、本発明の実施形態にかかる調整可能なモジュール方式の最大化に基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。
図9B図9Bは、本発明の実施形態にかかる頂点及びエッジに対する参照をリネームする関心情報検出システムの処理を図示するフローチャートを表している。
図10図10は、本発明の実施形態にかかる関心情報検出システムの例を図示している。
【発明を実施するための形態】
【0021】
図面において、同様の参照符号は、同じ図要素を指す。
【0022】
以下の説明は、当業者が本発明を作成及び使用することを可能とするように提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更例は、当業者にとって容易に明らかであり、本願明細書において定義された一般的原理は、本発明の精神及び範囲から逸脱することなく他の実施形態及び用途に適用することができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、特許請求の範囲と一致する最も広い範囲を与えられるべきである。
【0023】
本発明の実施形態において、大規模な及び/又は任意のデータセットから関心情報を効率的に収集するという問題は、モードベースのラベル伝播を使用した効率的なグラフクラスタリングによって解決される。大規模なデータセットは、多くの場合、意味のある情報を提示しない。例えば、小売店における買い物履歴は、顧客の買い物の嗜好又は類似した買い物嗜好を有する顧客などの関心情報を直接示すことなく、任意のデータセットを提示することができる。関心情報を得る1つの方法は、データセットにおける要素及びそれらの相互関係を、それぞれ、グラフにおける頂点及びエッジとして表現し、それに応じて頂点をクラスタリングすることである。既存のツールを使用すると、グラフのクラスタリングは、多くの場合、効率的ではなく、利用可能な計算資源及び/又は所望の時間的要件内の関心情報を得ることができず、それにより、実行可能な方法で関心情報を得ることができない場合がある。
【0024】
この問題を解決するために、頂点間のエッジは、頂点間の関係の種類と強さに関連しており、関心情報を表すクラスタを形成するために効率的なグラフモードベースのラベルの伝播のために使用される。各頂点は、固有の頂点識別子(すなわち、ラベル)と関連している。頂点は、頂点がエッジを有する他の頂点(隣接頂点と称されることができる)の識別子を調べる。その隣接頂点の全てを有するエッジによって示される関係の種類と強さとに基づいて、頂点には、隣接頂点の識別子が割り当てられることができる(すなわち、隣接頂点のラベルが頂点に伝播されることができる)。このようにして、ラベルの伝播の1回以上の反復により、頂点のグループには、同じ識別子が割り当てられる。同じ識別子を有するこれらの頂点は、クラスタを形成する。十分に小さい頂点の数がラベル伝播反復においてクラスタを変更したり、又は、クラスタリングのグローバル尺度が所望の値(例えば、最大値)に到達した場合には、クラスタリングは収束する。このように、関心情報を表すクラスタは、効率的に形成される。
【0025】
しかしながら、ラベルを伝播する間、2つの隣接頂点は、各反復においてラベルを交換し、振動の影響を有することがある。いくつかの実施形態において、振動減衰は、振動の影響を緩和するためにモード計算に適用される。振動減衰の例としては、これらに限定されるものではないが、ラベル伝播のランダム化、周期的バイアス及び振動検出を含む。さらにまた、効率的且つ正確に収束を検出することは、効率的な計算のために必須である。いくつかの実施形態において、頂点は、並列実行のために複数のスレッドに分散している。クラスタリングは、各頂点とその隣接頂点とに依存することから、頂点のセットは、並列処理のために複数のスレッド間で分散することができる。各スレッドは、ローカル及びグローバルな視点のいずれか又はローカル推定に基づいて、クラスタリングの品質の測定値を算出し、それに応じてクラスタリング処理を収束する。測定値の例としては、これらに限定されるものではないが、モジュール方式を含む。
【0026】
各クラスタにおいて、あらゆる頂点は、同一の識別子に関連付けられる。その識別子を有する元の頂点は、シード頂点又はクラスタの模範と称されることができる。いくつかの実施形態において、モードベースのラベル伝播から得られたクラスタは、新たなクラスタを形成するために使用される。これらの頂点は、クラスタ形成への寄与が高い傾向があることから、シード頂点である頂点のみに識別子が割り当てられる。識別子を有していない頂点は、モードベースのラベル伝播に基づいて、識別子を有する隣接から対応する識別子を取得する。いくつかの実施形態において、識別子を有する頂点は、識別子を変更することが許容されない。その結果、他の頂点は、振動の影響を有しないそれらの隣接頂点との関連を評価することができ、より分散したグラフクラスタリングを達成することができる。
【0027】
本開示において、用語「頂点識別子」は、グラフにおける頂点を識別するために使用されることができる任意の値をいう。用語「ラベル」及び「識別子」は、互換的に使用されている。
【0028】
図1Aは、本発明の実施形態にかかるモードベースのラベル伝播を使用して関心情報を効率的に検出するための例示的なシステムを図示している。図1に示されるように、関心情報検出システム130は、ネットワーク132に接続されている。ネットワーク132の例としては、これらに限定されるものではないが、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)又はインターネットを含む。動作中、システム130は、関心情報を含む入力データを受信する。いくつかの実施形態において、システム管理者は、システム130に入力データを提供する。関心情報の例としては、これらに限定されるものではないが、買い物の嗜好、ソーシャルメディア活動、照会(例えば、医療照会)及び電子メールのトラフィックパターンを含む。
【0029】
この例において、入力データは、2人の人物110及び120に関する情報を含む。人物110に関する情報は、属性112、114及び116を含み、人物120に関する情報は、属性122、124及び126を含む。いくつかの実施形態において、システム130は、ネットワーク132を介して、人物110がコンピューティングデバイス102を使用するときの属性112、114及び116と、人物120がコンピューティングデバイス104を使用するときの属性122、124及び126とを収集する。収集された属性に基づいて、システム130は、データセット100を生成する。なお、これらの属性は、コンピューティングデバイス102及び104又は人物110及び120に関連していないことがあることに留意すべきである(すなわち、データセットにおける属性は、人物又はデバイスに対応することなく任意とすることができる)。
【0030】
そして、システム130は、人物110の属性を表す頂点162と、人物120の属性を表す頂点164とを形成する。頂点162及び164の間の関係の種類及び強さに基づいて、システム130は、頂点162及び164の間のエッジ142及び144を形成する。このようにして、システム130は、任意の属性を有する任意のデータセット100を使用することができ、これらの属性を対応する頂点及びエッジと関連付ける。いくつかの実施形態において、データセット100は、構造化されたデータセットであり、データセット100は、頂点162及び164と、頂点162及び164の間のエッジ142及び144とを備える。システム130は、属性に基づいて、既に前処理された構造化されたデータセットを同様に直接受信することができ、頂点及びエッジが既に構築されていることから、頂点及びエッジに対応する属性を関連付ける必要がない。例えば、異なる物理又は仮想システムは、構造化されたデータセット100を生成するように属性を処理することができ、この構造化されたデータセット100をシステム130に提供することができる。システム130は、メモリ転送を介して(例えば、光学ドライブ、フラッシュドライブを介して)又はネットワーク132を介して、入力データ(及び/又はデータセット100)を受信することができる。
【0031】
頂点に関連付けられた属性を有することとは異なり、システム130は、頂点をクラスタリングするためにエッジを使用する。属性間の各関係は、頂点間のエッジにマッピングされる。例えば、エッジは、「の友人である」、「の親である」、「元頂点は宛先の頂点を購入した」及び「発信元は、2月に宛先に電子メールを送った」などの様々な種類の頂点間の関係を表すことができる。このように、2つの頂点は、それらの間における1つ以上の所望の関係に基づいてクラスタリングされることができる。さらにまた、2つの頂点間のエッジは、頂点間の関係の強さを表す重みと関連付けることができる。図1Aの例において、エッジ142は、属性112及び124に基づいて、それぞれ、頂点162及び164の間の関係を表している。同様に、エッジ144は、属性114及び126に基づいて、それぞれ、頂点162及び164の間の関係を表している。エッジ142によって表される関係がエッジ144によって表される関係よりも強い場合には、エッジ142の重みは、エッジ144の重みよりも多くすることができる。なお、エッジ142の重みは、より少ない重みがより強い関係を示す場合には、エッジ144の重みよりも少なくすることができることに留意すべきである。
【0032】
エッジ142及び144の種類及び重みに基づいて、システム130は、頂点162及び164をグループにクラスタリングすることができる。このグループ化は、データセット100に対して解釈可能な抽象化を提供し、所望の関心情報を表すことができる。データセット100が小売店における買い物履歴を含むとする。そして、頂点162は、人物110の買い物の嗜好を表す一方で、頂点164は、人物120の買い物の嗜好を表している。エッジ142及び144は、人物110及び人物120の買い物の嗜好間の関係を表すことができる。例えば、エッジ142及び144は、嗜好の類似性(例えば、類似する色、衣類の種類、ブランドなど)の程度及び購入の頻度(例えば、どの程度、頻繁に、その年のセールイベントの出席時に)を表すことができる。頂点162及び164をクラスタリングすることにより、システム130は、特定の年時において特定の種類の衣類をどの程度多くの人々が購入しているのか、又は、販売価格は販売イベントにおいてどの程度効果的であったのかなどの関心情報を提供することができる。
【0033】
いくつかの実施形態において、システム130は、関心情報を検出するためにモードベースのラベル伝播を使用する。図1Bは、本発明の実施形態にかかる関心情報を検出するための例示的なモードベースのラベル伝播を図示している。この例において、データセット100は、さらに、人物150に関する情報を含む。人物150に関する情報は、属性152、154及び156を含み、頂点166によって表される。頂点162及び166の間の関係の種類及び強さに基づいて、システム130は、頂点162及び166の間のエッジ146を形成する。同様に、頂点164及び166の間の関係の種類及び強さに基づいて、システム130は、頂点164及び166の間のエッジ148を形成する。
【0034】
属性が、人物110、120及び150の買い物履歴を表すと仮定する。例えば、属性112、114及び116は、それぞれ、人物110が、1足の赤色の靴、青色のシャツ及び黒色の帽子を購入したことを示している。同様に、属性122、124及び126は、それぞれ、人物120が、金色の指輪、1足の赤色の靴及び緑色のシャツを購入したことを示しており、属性152、154及び156は、それぞれ、人物150が、電子書籍、スポーツ用品及び緑色のシャツを購入したことを示している。システム130は、これらの属性を分析し、頂点162、164及び166によって人物110、120及び150の買い物履歴をそれぞれ表す。そして、システム130は、頂点識別子172、174及び176を、頂点162、164及び166にそれぞれ割り当てる。頂点識別子172、174及び176は、グラフクラスタリング処理中に、それぞれ、頂点162、164及び166をそれぞれ固有に識別する。
【0035】
関心情報が類似する買い物の嗜好を有する顧客である場合には、システム130は、人物110、120及び150の買い物の嗜好の間の類似性を表す頂点162、164及び166の間のエッジを形成する。例えば、人物110及び120は、双方とも、靴を購入していることから、システム130は、対応する頂点162及び164の間にエッジ142を形成する。同様に、人物110及び120は、双方とも、シャツを購入していることから、システム130は、対応する頂点162及び164の間にエッジ144を形成する。いくつかの実施形態において、システム130は、関係の強さに基づいて、各エッジに重みを割り当てる。
【0036】
この例において、人物110及び120は、双方とも、同じ色(例えば、赤色)の靴及び異なる色(例えば、青色及び緑色)のシャツを購入している。したがって、靴の購入の類似性を表すエッジ142は、シャツの購入の類似性を表すエッジ144よりも高い重みを有することができる。いくつかの実施形態において、頂点162及び166の間のエッジ142及び144など、2つの頂点間の複数のエッジは、単一の複合エッジとマージされることができる。この複合エッジの重みは、エッジ142及び144の重みの和とすることができる。
【0037】
さらにまた、人物110及び150は、双方とも、シャツを購入していることから、システム130は、対応する頂点162及び166の間にエッジ146を形成する。同様に、人物120及び150は、双方とも、シャツを購入していることから、システム130は、対応する頂点164及び166の間にエッジ148を形成する。この例において、人物120及び150は、同じ色(例えば、緑色)のシャツを購入しており、人物110及び150は、異なる色(例えば、青色及び緑色)のシャツを購入している。したがって、エッジ148は、エッジ146よりも高い重みを有することができる。
【0038】
頂点及びエッジを形成した後、システム130は、モードベースのラベル伝播のためにエッジの重みを使用する。いくつかの実施形態において、システム130は、頂点に関連付けられた特性を使用せず、クラスタ形成のためのエッジをあてにする。このように、システム130は、クラスタ形成のために異なる種類の頂点間の関係を使用することができる。動作中、システム130は、モードベースのラベル伝播を開始し、ラベル伝播を決定するために各頂点の隣接頂点を確認する。
【0039】
例えば、システム130は、頂点162の隣接頂点164及び166を確認し、頂点162が最も強く頂点164に関連していると判定する。したがって、システム130は、頂点164のラベル(すなわち、識別子)を頂点162に伝播し、頂点識別子174を頂点162に割り当てる。同様に、システム130は、頂点166が最も強く頂点164に関連していると判定し、頂点164のラベルを頂点166に伝播し、頂点識別子174を頂点166に割り当てる。エッジは、双方向であることから、頂点162は、頂点162に最もよく接続され、システム130は、頂点識別子172を頂点164に割り当てる。この反復の後、頂点162、164及び166は、それぞれ、同じ頂点識別子174、172及び174を有する。他の反復の後、頂点162、164及び166は、それぞれ、頂点識別子172、174及び172を有する。このように、システム130は、人物110、120及び150が類似する買い物履歴を有すると判定する。
【0040】
頂点162、164及び166のうちの各対の頂点間のエッジが等しい重みを有すると仮定する(例えば、エッジ142及び144の重みの合計は、エッジ146の重みと等しい)。頂点重みが等しいことから、いくつかの実施形態において、各頂点は、対応するラベル伝播を決定するために最低(又は最高)の識別子の値を使用する。そのようなシナリオの下では、頂点162、164及び166は、まず、それぞれ、識別子172、174及び176を有する。他の反復の後、頂点162、164及び166は、それぞれ、識別子174、172及び172を有する。さらに他の反復の後、頂点162、164及び166のそれぞれは、識別子172を有する。このように、識別子の値は、等しい重みを有するエッジ間の結合を破るために使用されることができる。
【0041】
このクラスタにおいて、頂点164は、シード頂点又はクラスタの模範と称されることができる。この例において、頂点162及び166は、双方とも、頂点間の関係の強さが異なっていたとしても、シード頂点164の頂点識別子174を受ける(例えば、頂点162は、頂点166よりも強く頂点164に関連している)。頂点166は、より顕著にシャツの購入を表す他のクラスタにとってより適していることができる。いくつかの実施形態において、システム130は、「貪欲」モードベースのラベル伝播についてのシードとしてモードベースのラベル伝播によって形成されたクラスタからのシード頂点を使用する。システム130は、頂点識別子174をシード頂点164に割り当てるのみであり、頂点162及び166は、識別子を有しないままである。頂点166は、いかなる識別子にも関連付けられていないことから、頂点166についてのラベル伝播の実行中において、システム130は、頂点を形成するためのより多くのオプションを探索することができ、より貪欲にラベルを頂点166に伝播する。貪欲モードベースの伝播は、既にラベルを有する頂点のラベルを変更しないことから、貪欲モードベースの伝播は、振動を回避し、一貫性のある収束を提供することができる。この貪欲モードベースのラベル伝播は、新たなクラスタを形成するために使用される。
【0042】
ラベル伝播中に、頂点164の確認中に、システム130は、最も強く頂点162に関連している頂点164を観察することができ、頂点162の識別子172を頂点164に割り当てる。このように、頂点162及び164は、各反復においてラベルを交換することができ、振動の影響を有することができる。いくつかの実施形態において、システム130は、振動の影響を緩和するためにモード計算に振動減衰を適用する。振動減衰の例としては、これらに限定されるものではないが、ラベル伝播のランダム化、周期的バイアス及び振動検出を含む。各反復の後、システム130は、ローカル及びグローバルな視点のいずれか若しくは双方又はローカル推定に基づいてモジュール方式を計算し、それに応じてクラスタリング処理を収束する。
【0043】
図1Bの例において、システム130は、グラフクラスタリングについてのモードベースのラベル伝播を使用し、それにより、データセット100から関心情報を取得する。図2は、本発明の実施形態にかかるグラフクラスタリングについての例示的なモードベースのラベル伝播を図示している。動作中、関心情報検出システムは、データセットから頂点202、204、206及び208を形成(又は受信)し、それぞれ、ラベル212、214、216及び218をこれらの頂点に割り当てる。システムは、モードベースのラベル伝播のためにこれらの頂点間において双方向のエッジの重みを使用する。いくつかの実施形態において、双方向のエッジは、反対の方向を有する等しい重みの一対のエッジによって表されることができる。各頂点対間の各エッジが同じ重みを有すると仮定する。いくつかの実施形態において、システムは、等しい重みを有するエッジについての対応するラベル伝播を決定するために最低(又は最高)の識別子の値を使用する。そのようなシナリオの下では、システムは、頂点202の隣接頂点を確認し、頂点204が頂点202の隣接のうち最低の頂点識別子214を有することから、頂点204が最も強く頂点204に関連していると判定する。したがって、システムは、頂点204のラベル214を頂点202に伝播し、ラベル214を頂点202に割り当てる。同様に、システムは、頂点202が最低の頂点識別子212を有することから、頂点204、206及び208が最も強く頂点202に関連していると判定し、頂点202のラベル212を頂点204、206及び208に伝播し、ラベル212を頂点204、206及び208に割り当てる。
【0044】
この反復の後、頂点204、206及び208は、同じラベル212を有するとともに、頂点202は、ラベル214を有する。システムは、頂点204、206及び208を有するクラスタを形成し、クラスタを識別するためにラベル212を使用する。そして、システムは、ラベル伝播の収束(例えば、所望のモードに到達したかどうか)を確認する。そうでない場合、システムは、他の反復を実行する。この反復において、システムは、再度、頂点202の隣接頂点を確認し、頂点202が最も強く頂点204に関連していると判定する。したがって、システムは、頂点204のラベル212を頂点202に伝播し、ラベル212を頂点202に割り当て、ラベル212に関連付けられたクラスタに頂点202を追加する。そして、システムは、ラベル伝播の収束を確認し、全ての頂点が同じクラスタの一部であり、モードがさらに改善されることができないと判定する。したがって、システムは、212とラベル付けされた全ての頂点を有するクラスタを形成する。このクラスタにおいて、頂点202は、シード頂点又はクラスタの模範と称されることができ、ラベル212は、クラスタ識別子と称されることができる。
【0045】
頂点202と206との間のエッジなどのエッジの1つが、頂点202及び206が最も強い関係を有する隣接頂点として互いに有する(すなわち、エッジは、他のエッジに比べて高い重みを有する)ことを示していると仮定する。その結果、各反復において、頂点202及び206は、ラベル212及び216を交換し、振動の影響をもたらすことができる。いくつかの実施形態において、システムは、振動の影響を緩和するためにモード計算に振動減衰を適用する。例えば、システムは、少なくとも3回の反復からなるラベル割り当ての追跡を維持することができる。頂点202がラベル212を受信し返したとき(すなわち、頂点202がラベル212からラベル216に切り替え、ラベル216からラベル212に戻したとき)、システムは、頂点202が以前の2回の反復においてラベル212に関連付けられていることを検出し、頂点202が振動していると判定する。そして、システムは、クラスタの現在のモードに基づいて、振動減衰を適用してクラスタリングを収束する。
【0046】
ラベル212などのラベル又は識別子は、数字(整数又は浮動小数点)、1つ以上の文字を含む文字列又は双方によって表されることができる。いくつかの実施形態において、グラフにおけるラベルは、符号なし整数の連続範囲である。例えば、ラベル212、214、216及び218は、連続範囲内の整数とすることができる。範囲内の各識別子は、グラフにおける頂点に対応している。
【0047】
グラフにおけるエッジは、指向性又は無指向性とすることができる。エッジが指向性である場合、方向エッジは、反対方向のエッジとすることができる。いくつかの実施形態において、方向エッジは、元と宛先の頂点のラベルによって表される。例えば、元頂点202と宛先頂点206との間のエッジは、元頂点206と宛先頂点202との間のエッジとは異なることができる。いくつかの実施形態において、エッジは、さらに、頂点間の関係及び重みを指定し、関係の強さを指定する種類に関連付けることができる。エッジの種類及び重みは、数字、1つ以上の文字を含む文字列又は双方によって表されることができる。なお、2つの頂点間において反対方向にある2つのエッジは、同一又は異なる重みとすることができることに留意すべきである。いくつかの実施形態において、2つの頂点間において同じ種類及び方向を有する複数のエッジは、複合エッジとすることができる。複合エッジの重みは、マージされたエッジの重みの和とすることができる。
【0048】
システムは、頂点202、204、206及び208と、それらの対応するエッジとをメモリに記憶する。いくつかの実施形態において、エッジは、まず、元頂点のラベルに基づいて、その後エッジの種類に基づいてソートされる。これは、システムが連続したメモリ位置に共通の元ラベル及び種類のエッジを配置するのを可能とする。いくつかの実施形態において、頂点202などの各頂点は、元頂点としての頂点202を有する各種類の最初と最後のエッジを示す種類テーブルを有する。連続した付番がエッジを識別するために使用される場合、最初と最後のエッジは、元頂点としての頂点202を有する全てのエッジを識別するのに十分である。頂点202のラベル212及び種類は、頂点202のエッジを識別することができることから、システムは、元頂点としての頂点202を有するエッジを表すためにラベル214、216及び218を記憶するのみである。システムは、同様にこれらのエッジの重みを記憶することができる。システムはまた、頂点202の種類テーブルに頂点202のラベル212をマッピングするテーブルを維持することができる。これは、システムが頂点202に関連付けられたエッジを迅速に得るのを可能とする。
【0049】
いくつかの実施形態において、頂点は、並列実行のために複数のスレッドにわたって分散させることができる。クラスタリングは、各頂点とその隣接頂点に依存することから、頂点のセットは、並列処理のために複数のスレッドにわたって分散させることができる。図3は、本発明の実施形態にかかるモードベースのラベル伝播の並列実行に基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。動作中、システムは、複数のスレッドを作成し、スレッドにわたるセットであっても頂点識別子を分割する(動作302)。
【0050】
そして、システムは、対応する元セットに各スレッドに関連付けられた元頂点識別子を有する全てのエッジを割り当てる(動作304)。換言すれば、エッジの元頂点識別子がスレッドに関連付けられている場合、エッジは、スレッドに対応するセットに割り当てられる。そして、システムは、それぞれ割り当てられたエッジのエッジ種類を識別し(動作306)、各元頂点識別子についての所望のエッジ種類を有するエッジを識別する(動作308)。図1Bの例において、所望のエッジ種類がシャツの購入履歴である場合には、システムは、元頂点162についてのエッジ144及び146を識別し、エッジ142を識別しない。
【0051】
そして、システムは、各スレッドにおいて識別されたエッジについてのラベル伝播の反復を実行する(動作310)。システムは、前の反復において識別されたエッジの宛先頂点のモードを計算し、計算されたモード及びラベルを元頂点に関連付ける(動作312)。システムは、振動の影響を緩和するために振動減衰を適用する(動作314)。そして、システムは、各スレッドから各頂点についての計算されたモード及びラベルを収集し(動作316)、収束が検出されたかどうかを確認する(動作318)。そうでない場合、システムは、識別されたエッジについてのラベル伝播の他の反復を実行する(動作310)。システムが収束を検出した場合、システムは、クラスタ形成をレポートする(動作320)。このレポートにより、システムは、顧客に対して関心情報を提供する。
【0052】
モードは、頂点にわたる各固有のラベルの出現回数を示す。いくつかの実施形態において、関心情報検出システムは、頂点についての次のラベルとして最も高い重みを有するラベルを選択するように頂点の到来エッジを介して頂点に提示された各固有のラベルに関連付けられたエッジの重みを合計する。モードベースのラベル伝播の効率(例えば、収束のために消費される時間)は、どのように迅速に各頂点についての潜在的に多くのエッジから到達するラベルのモードが計算されることができるかに依存する。いくつかの実施形態において、システムは、効率的なモードの計算のためにハッシュテーブルを使用する。これは、システムが各ラベルを含む1つの長鎖を探索する代わりにハッシュキーに関連付けられた小さな探索空間にわたって探索するのを可能とする。システムは、ラベルとして連続した整数を使用することから、ラベルの最下位ビットは、ハッシュキーとして使用されることができる。最下位ビットを使用することは、システムがハッシュキーを迅速に生成するのを可能とする。
【0053】
さらにまた、システムが頂点についてのラベルのモードを確認しているとき、ハッシュテーブルは、各頂点について再初期化されなければならない。そのような動作は、計算集約的とすることができる。いくつかの実施形態において、頂点についてのラベルのモードを計算しながら、システムは、ハッシュキーがハッシュテーブルにおいて参照されるたびに、到来したラベル(すなわち、その隣接頂点から頂点に伝播されたラベル)のそれぞれの選択されたビットを確認する。ハッシュテーブルにおけるラベルビットが現在のラベルのビットと一致しない場合、ハッシュテーブル・エントリは、空であると仮定される。
【0054】
図4は、本発明の実施形態にかかるモードベースのグラフクラスタリングについての関心情報検出システムのモード計算処理を図示するフローチャートを表している。動作中、システムは、現在の頂点の頂点識別子から選択されたビット(すなわち、システムが到来したラベルのモードを計算している頂点)を取得する(動作402)。いくつかの実施形態において、選択されたビットは、最下位ビットである。そして、システムは、ハッシュテーブルが再初期化を必要とするかどうかを確認する(動作404)。いくつかの実施形態において、選択された数のビットが最低値に戻るとき、ハッシュテーブルは、再初期化を必要とする。ハッシュテーブルが再初期化を必要とする場合、システムは、ハッシュテーブル・エントリを再初期化する(動作406)。システムは、現在の頂点の隣接頂点に暫定的に割り当てられたクラスタの識別子から各ビットを抽出することによってハッシュキーを生成し(動作408)、生成されたハッシュキーによって索引付けされたハッシュテーブル・エントリを識別する(動作410)。
【0055】
そして、システムは、ハッシュテーブルにおけるエントリが存在し、現在の頂点の頂点識別子から選択されたビットを含むかどうかを確認する(動作412)。エントリが存在しないか又は選択されたビットを含まない場合、システムは、識別されたエントリにおける隣接頂点から重み及びクラスタ識別子を記録し、現在の頂点の頂点識別子から選択されたビットを更新する(動作414)。そうでない場合、システムは、識別されたエントリにおける重みに対して隣接頂点からの重みを追加する(動作416)。そして、システムは、頂点に関連付けられている全てのエントリが確認されているかどうかを確認する(動作418)。これは、システムがハッシュテーブルにおいて対応するエントリにおける到来するエッジのそれぞれからラベルの重みを記録することを可能とする。
【0056】
頂点に関連付けられている全てのエントリが確認されていない場合、システムは、現在の頂点の他の隣接頂点に暫定的に割り当てられたクラスタ識別子から各ビットを抽出することによってハッシュキーを生成し続け(動作408)、生成されたハッシュキーによって索引付けられたハッシュテーブル・エントリを識別する(動作410)。頂点に関連付けられている全てのエントリが確認された場合、システムは、重みに基づいてモードを計算する(動作420)。いくつかの実施形態において、システムは、モードを計算するために重みを合計する。そして、システムは、全ての頂点が確認されたかどうかを確認する(動作422)。そうでない場合、システムは、次の頂点に対して反復し(動作424)、その頂点の頂点識別子から選択されたビットを取得する(動作402)。そうでない場合、システムは、モード計算を終了する。
【0057】
図2における例において、頂点202及び206が最も強い関係(すなわち、最高の重みを有するエッジ)を有する隣接頂点として互いに有すると仮定する。その結果、頂点202及び206は、振動の影響をもたらす各反復においてラベル212及び216を交換することができる。実際には、頂点202及び206は、メンバーが一対の異なるクラスタ間において振動するサブクラスタを表す。振動減衰は、そのようなサブクラスタの頂点が同じクラスタに割り当てられるのを可能とする。いくつかの実施形態において、関心情報検出システムは、振動の影響を緩和するためにモード計算に振動減衰を適用する。振動減衰の例としては、これらに限定されるものではないが、ラベル伝播のランダム化、周期的バイアス及び振動検出を含む。図5Aは、本発明の実施形態にかかるランダム更新予防に基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。動作中、システムは、ランダム更新予防のために使用されるランダムビットストリームを生成する(動作502)。
【0058】
そして、システムは、そのクラスタを変更している各頂点を識別し(動作504)、ランダムビットストリームにおける次のビットを考慮する(動作506)。システムは、考慮に基づいて、クラスタの遷移が頂点について許容されるかどうかを確認する(動作508)。いくつかの実施形態において、ビットストリームにおける「1」は、遷移の許容を示し、ビットストリームにおける「0」は、遷移の防止を示す(又はその逆)。遷移が許容される場合、システムは、頂点がクラスタを変更するのを許容する(動作512)。そうでない場合、システムは、頂点についてのクラスタの関係を保持する(動作514)(すなわち、クラスタの遷移を防止する)。このように、システムは、振動に関与する頂点のサブクラスタの大部分が最終的には同じクラスタに加わるように、振動クラスタの対称性をランダムに防止する。これは、そのクラスタに向けてサブクラスタにおける残りの頂点を引っ張る。
【0059】
図5Bは、本発明の実施形態にかかる周期的なバイアスに基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。頂点についての現在の反復を判定することにより(動作532)、システムは、現在の反復において頂点の現在の及び遷移するクラスタ識別子間の関係を取得する(動作534)。いくつかの実施形態において、システムは、クラスタ識別子間の関係「よりも大きい」及び/又は「よりも小さい」を使用する。そして、システムは、現在の反復について許容された関係を判定し(動作536)、取得された関係が許容された関係に準拠しているかどうかを判定する(動作538)。
【0060】
いくつかの実施形態において、システムは、3回の反復毎における関係「よりも大きい」(又はよりも小さい)について任意の関係のバイアスなしで(すなわち、取得された関係は、「何の関係」も示していない)1回の反復を許容する。換言すれば、全ての4回の反復において、バイアスは、3回の反復に適用され、4回目の反復には適用されない。そのようなシナリオの下では、許容された関係との一致を確認するために、許容された関係が「よりも大きい」(又は「よりも小さい」)関係である場合には、システムは、取得された関係が「よりも大きい」(又は「よりも小さい」)関係であるかどうかを判定する。許容された関係が、バイアスなしを示す「何の関係」もない場合には、システムは、取得された関係が許容された関係に一致していると単に判定する。判定に基づいて、システムは、遷移が許容されているかどうかを確認する(動作540)。遷移が許容されている場合、システムは、頂点がクラスタを変更するのを許容する(動作542)。そうでない場合、システムは、頂点についてのクラスタの関係を保持する(動作544)(すなわち、クラスタの遷移を防止する)。このように、システムは、振動減衰を適用するために周期的バイアスを使用して収束をもたらす。
【0061】
図5Cは、本発明の実施形態にかかる振動検出に基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。動作中、各頂点について、システムは、現在のクラスタの割り当てと、2つの前の反復とを保持する(動作552)。そして、システムは、図2に関連して説明したように、2回の反復しなおしのクラスタ識別子と現在のクラスタ識別子を比較し(動作554)、クラスタ識別子が同じであるかどうかを確認する(動作556)。そうでない場合、システムは、いかなる振動も検出せず、頂点がクラスタを変更するのを許容しない(動作558)。そうでない場合、システムは、現在及び以前のクラスタ識別子の最小(又は最大)を識別し(動作562)、頂点に対して識別されたクラスタ識別子を割り当てる(動作564)。これは、振動するサブクラスタの頂点にバイアスを供給し、頂点に同じクラスタに対して崩壊させる。
【0062】
所望のクラスタ形成に基づいて収束を検出することは、効率的なグラフクラスタリングのために必須である。図6Aは、本発明の実施形態にかかる埋め込まれたモジュール方式計算を使用したクエリに基づくモードベースのグラフクラスタリングの関心情報検出システムの収束検出処理を図示するフローチャートを表している。図3に関連して説明したように、各スレッドを作成することにより(動作602)、システムは、図2に関連して説明したように、各スレッドにおいてラベル伝播の反復を実行する(動作604)。各スレッドにおいて、システムは、1つのクラスタ内の元及び宛先頂点により、スレッドに関連付けられた元頂点を有するエッジの重みを計数する(すなわち、頂点のスレッドの範囲に対応する元頂点識別子)(動作606)。
【0063】
そして、各スレッドについて、システムは、頂点と他の全てのスレッドの頂点−クラスタのマッピングを調べ(動作608)、模範の識別子が頂点のスレッドの範囲に対応するこれらの他のスレッドにおけるクラスタを識別する(動作610)。そして、システムは、各識別されたクラスタ内の頂点の数と、元及び宛先の頂点が同じクラスタにあるエッジの数とを合計する(動作612)。特権のあるスレッドは、モジュール方式のための他の全てのスレッドを調べることができる。システムは、この特権のあるスレッドが計算に基づいてモジュール方式を計算するのを可能とし(動作614)、モジュール方式がピークに到達したかどうかを確認することによって収束に到達したかどうかを確認するのを可能とする(動作616)。収束に到達していない場合、システムは、各スレッドにおいてラベル伝播の他の反復を実行する(動作604)。そうでない場合、システムは、クラスタの割り当てをレポートし、スレッドを削除する(動作618)。
【0064】
いくつかの実施形態において、各スレッドは、独立してグローバルモジュール方式を推定することができる。これは、スレッドがクエリの反復中に停止される時間数を低減し、それにより、メモリ帯域幅要件を低減する。さらにまた、これは、グラフクラスタリングの効率的な並列実行を容易とすることができる。図6Bは、本発明の実施形態にかかるモジュール方式のローカル推定に基づくモードベースのグラフクラスタリングについての関心情報検出システムにおけるスレッドの収束検出処理を図示するフローチャートを表している。動作中、スレッドは、図2に関連して説明したように、頂点のスレッドの範囲に対応する頂点識別子についてのラベル伝播の反復を実行する(動作652)。そして、スレッドは、各クラスタに含まれるエッジの数を推定する(動作654)。
【0065】
そして、スレッドは、元及び宛先の頂点識別子が頂点のスレッドの範囲に対応する範囲内エッジを識別する(動作656)。スレッドはまた、元及び宛先頂点識別子が頂点のスレッドの範囲に対応する範囲間エッジを識別し、宛先の頂点識別子は、頂点のスレッドの範囲の外側にある(動作658)。そして、スレッドは、元及び宛先の頂点識別子がクラスタ及び頂点のスレッドの範囲に対応するクラスタ内の範囲内エッジを識別する(動作660)。識別されたエッジに基づいて、スレッドは、元及び宛先の頂点識別子がクラスタに対応し、元頂点識別子が頂点のスレッドの範囲に対応し、宛先の頂点識別子が対応しないクラスタ内の範囲間エッジの数を推定する(動作662)。いくつかの実施形態において、スレッドは、以下のようにクラスタ内の範囲間エッジの数を推定する:(1+範囲間エッジの数/範囲内エッジの数)*クラスタ内の範囲内エッジ数。そして、スレッドは、クラスタ間の範囲内及びクラスタ内の範囲間エッジに基づいて、各クラスタについてのクラスタ内のエッジを推定する(動作664)。いくつかの実施形態において、スレッドは、以下のようにクラスタ内のエッジを計算する:クラスタ内の範囲内エッジの数+クラスタ内の範囲間エッジ。
【0066】
そして、スレッドは、各頂点の現在のクラスタの割り当てを計算する(動作666)。しかしながら、クラスタは、多くの場合、頂点のスレッドの範囲外の識別子を有する模範を有する。いくつかの実施形態において、スレッドは、頂点のスレッドの範囲において参照される各クラスタに割り当てられた頂点数の追跡を維持するためにハッシュテーブルを使用する。いくつかのさらなる実施形態において、システムは、各クラスタにおける頂点数を推定する。そうするために、システムは、頂点のスレッドの範囲についてのメモリブロックを割り当てる。このメモリブロックは、頂点のスレッドの範囲において参照されるクラスタにおける頂点の推定数を含むことができる。このように、スレッドは、各クラスタに割り当てられた頂点数に容易にアクセスすることができる。計算を容易とするために、いくつかの実施形態において、メモリブロックにおける頂点数は、2のべき乗に切り上げられる。一旦全ての頂点数が計算されると、各計数の二乗が合計される。メモリブロックにおける頂点数の推定は、頂点のスレッドの範囲に対応する頂点に割り当てられたクラスタ識別子の最下位ビット(すなわち、対応するクラスタを示す頂点識別子)を使用して対処されることができる。
【0067】
推定に基づいて、システムの各スレッドは、独立して、収束を検出するためにローカルモジュール方式を計算し(動作668)、ローカルモジュール方式がスレッドについてのピークに到達したかどうかを判定することによって収束に到達したかどうかを確認する(動作670)。いくつかの実施形態において、スレッドは、モジュール方式が所望の速度で増加が停止したかどうかを確認することによって収束について確認する。収束に到達していない場合、スレッドは、頂点のスレッドの範囲に対応する頂点識別子についてのラベル伝播の他の反復を実行し(動作652)、各クラスタに含まれるエッジの数を推定し続け、範囲内及び範囲間エッジを識別し続ける(動作654、656及び658)。収束に到達している場合、スレッドは、クラスタ割り当てをレポートする(動作672)。いくつかの実施形態において、スレッドは、共通の配列(すなわち、各スレッドにアクセス可能な配列)にクラスタの割り当てを書き込み、クラスタの割り当てを報告する。
【0068】
図2における例において、頂点202は、シード頂点又はクラスタの模範と称されることができる。システムは、貪欲モードベースのラベル伝播のためにシード頂点202のラベル212(すなわち、頂点識別子212)を使用し、新たなクラスタを形成する。図7は、本発明の実施形態にかかるグラフクラスタリングについての例示的な貪欲モードベースのラベル伝播を図示している。動作中、システムは、データセットから頂点202、204、206及び208を形成(又は受信)し、シード頂点202にラベル212を割り当てる一方で、頂点204、206及び208は、識別子を有しないままである。このように、システムは、他の考慮なしに単調に収束する頂点204、206及び208にラベルを割り当てることができる。
【0069】
いくつかの実施形態において、システムは、他の頂点によって無視することができる「ダミー」識別子を頂点204、206及び208に割り当てる。システムは、モードベースのラベル伝播のためにこれらの頂点間においてエッジの重みを使用する。システムは、頂点202が既にラベルを有しており、そのため新たなラベルを計算しないと判定する。したがって、頂点202は、頂点204、206及び208からの任意の入力を無視する。一方、システムは、頂点204、206及び208がラベルを有しておらず、最も強く頂点202に関連していると判定し、頂点202のラベル212を頂点204、206及び208に伝播し、ラベル212を頂点204、206及び208に割り当てる。この反復の後、頂点202、204、206及び208は、同じラベル212を有する。そして、システムは、ラベル伝播の収束を確認し、全ての頂点がラベルを有すると判定し、収束が達成されたと判定する。この貪欲モードベースのラベル伝播により、1つのクラスタが形成され、その全ての頂点が、ラベル212に関連付けられる。このクラスタにおいて、頂点202は、シード頂点又はクラスタの模範と称されることができる。いくつかの実施形態において、一旦、頂点204、206及び208がクラスタに割り当てられると、頂点204、206及び208は、クラスタを変更することができない。これは、割り当てられていない頂点からの入力が無視されることから、貪欲モードベースのラベル伝播が速く動作するのを可能とする。さらにまた、貪欲モードベースのラベル伝播を使用したグラフクラスタリングは、振動なしで動作することができ、その結果、迅速に終了する。
【0070】
図8Aは、本発明の実施形態にかかる貪欲モードベースのラベル伝播に基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。シード頂点のサブセットを識別することにより(動作802)、システムは、識別された頂点に固有の識別子を割り当てる(動作804)一方で、割り当てられていない頂点の残りを維持する(すなわち、識別子を割り当てない)。システムは、ラベル伝播の反復を実行し(動作806)、モードを計算するとともに、割り当てられていない頂点からの入力を無視し、ラベルを有する頂点が異なるラベルを取得するのを可能とする(動作808)。そして、システムは、収束が検出されたかどうかを確認する(動作810)。そうでない場合、システムは、ラベル伝播の他の反復を実行する(動作806)。そうでない場合、システムは、クラスタ割り当てを確定する(動作812)。なお、貪欲モードベースのラベル伝播を使用したグラフクラスタリングにおいて、頂点についてのクラスタ割り当ては、変更されないことに留意すべきである。
【0071】
一方、システムが貪欲モードベースのラベル伝播を使用するのみである場合、いくつかの頂点は、それらの自然なクラスタメンバーからよりも別個のクラスタにすることができる(すなわち、これらの頂点は、頂点についての所望のクラスタ以外のクラスタにある)。同じクラスタ内にあることが望まれている頂点のグループにおいて、1つの頂点は、1つのシード頂点に関連付けることができる一方で、他のものは、他のシード頂点に関連付けることができる。換言すれば、頂点は、他のクラスタにおける頂点よりも、そのクラスタにおける他の頂点と弱い関係を有することができる。この影響を緩和するために、システムは、貪欲モードベースのラベル伝播の結果についてモードベースのラベル伝播を実行することができる。その組み合わせは、個々の頂点がより適切なクラスタに引っ張られるのを可能とする。
【0072】
図8Bは、本発明の実施形態にかかる貪欲モードベース及びモードベースのラベル伝播の組み合わせに基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。システムは、まず、図8Aに関連して説明したように、貪欲モードベースのラベル伝播に基づいて形成されたクラスタを取得する(動作852)。システムは、図3に関連して説明したように、貪欲モードベースのラベル伝播から得られたクラスタにおいてモードベースのラベル伝播を適用する(動作854)。そして、システムは、図6Aに関連して説明したように、埋め込まれたモジュール方式の計算によるクエリに基づいて、モードベースのグラフクラスタリングの収束を計算する(動作856)。システムは、モジュール方式がピークに到達したかどうかを確認することによって収束に到達したかどうかを確認する(動作858)。収束に到達していない場合、システムは、モードベースのラベル伝播を実行し続ける(動作854)。そうでない場合、システムは、クラスタの割り当てをレポートする(動作860)。
【0073】
図9Aは、本発明の実施形態にかかる調整可能なモジュール方式の最大化に基づく関心情報検出システムについてのグラフクラスタリング処理を図示するフローチャートを表している。動作中、システムは、(動作902)。コミュニティグラフは、頂点としてクラスタを表し、エッジのスコクラスタのコミュニティグラフ内の各クラスタにおける頂点数に基づいて、各エッジを有するスコアと他のスコアとを関連付けるアは、2つのクラスタ間の関係の強さを示す。システムは、対応するスコアに基づいて各対のクラスタについてのマージナルモジュール方式を計算し(動作904)、そのマージャがモジュール方式を最大化する1つ以上の候補クラスタを識別する(動作906)。いくつかの実施形態において、コミュニティグラフにおけるエッジのセットについての元頂点として現れるクラスタと、同じエッジのセットについての宛先頂点として現れるクラスタのセットとの間の最高のマージナルモジュール方式が正数である場合、対応するクラスタは、すぐにマージされる。
【0074】
システムは、2つのクラスタ間のエッジの重みと2つのクラスタの重みのみからマージナルモジュール方式を計算する(すなわち、2つのクラスタにおいて重み付けされた頂点の合計)。いくつかの実施形態において、マージナルモジュール方式は、以下のように計算される:(候補クラスタ間のエッジの重み/グラフにおける全てのエッジの重み)−(((第1の候補クラスタの重み)*(第2の候補クラスタの重み))/(2*(全てのエッジの重み)))。システムは、nの値が調整されるのを可能とする。例えば、nが2未満である場合、マージナルモジュール方式は小さくなる。これは、クラスタのマージにおいて知覚モジュール方式の改善を低減し、非常に少ないクラスタがマージされる。同様に、nが2よりも大きい場合には、より多くのクラスタがマージされる。
【0075】
そして、システムは、候補クラスタ対が識別されているかどうかを確認する(動作908)。そうである場合、システムは、識別されたクラスタのうち吸収関係規則を調べ(動作910)、吸収関係規則が違反されているかどうかを確認する(動作912)。いくつかの実施形態において、吸収関係規則は、単一の反復において、残っているクラスタがその反復において吸収されない場合には、単一のクラスタが複数のクラスタを吸収することができることを示している。他の実施形態において、2つのクラスタは、いずれか一方が吸収した場合又は現在の反復中に吸収された場合にはマージされることができない。吸収関係規則が違反された場合、システムは、そのマージャがモジュール方式を増加する他のクラスタのセットを識別する(動作906)。そうでない場合、システムは、識別されたクラスタをマージする(動作914)。
【0076】
いくつかの実施形態において、コミュニティグラフを表すために、システムは、エッジを記憶するための配列を維持する。システムはまた、他の配列を維持することができ、各配列エントリは、クラスタ特性のリストに対応する。システムは、元及び宛先頂点に基づいてそれぞれエッジを二重ソートすることができる(動作916)。この二重のソートにおいて、システムは、最初は元頂点に基づいて、その後は宛先頂点に基づいてエッジをソートする。システムは、ソート順序に基づいてエッジを統合する(動作918)。これは、システムが、エッジ及び頂点配列の双方とも統合し、統合されたエッジを削除し、クラスタを吸収するのを可能とする。このように、配列は、数回の反復のみにおいてシステムのプロセッサキャッシュに適合することができる。そして、システムは、対応するスコアに基づいて、各対のクラスタについてのマージナルモジュール方式を計算し(動作904)、そのマージャがモジュール方式を最大化する1つ以上のクラスタを識別し続ける(動作906)。候補クラスタ対が識別されていない場合(動作908)、システムは、クラスタの割り当てをレポートする(動作920)。
【0077】
データ構造を圧縮し、迅速にデータ構造にアクセスするために、全ての頂点及びエッジの参照は、各反復の終了時にリネームされるべきである。図9Bは、本発明の実施形態にかかる頂点及びエッジに対する参照をリネームする関心情報検出システムの処理を図示するフローチャートを表している。動作中、システムは、現在のクラスタを備える第1の配列を初期化する(動作952)。
【0078】
システムは、図9Aに関連して説明したように、吸収されたクラスタに対応する第1の配列のエントリを識別する(動作954)。システムは、第1の配列の吸収されたクラスタについての識別されたエントリへの吸収クラスタの識別子を設定する(動作956)。そして、システムは、第2の配列を初期化し(動作958)、第1の配列を介して反復し、反復の第1の段階における第1の配列の各エントリを調べる(動作960)。この反復の第1の段階において、システムは、第1の配列のk番目のエントリがkであるかを識別する(動作962)。そして、システムは、第2の配列の識別されたk番目のエントリ(すなわち、動作962に対応する)に次の利用可能な新たな識別子を割り当てる(動作964)。いくつかの実施形態において、システムは、リネーム処理のためのカウンタを初期化し、新たな識別子を割り当てるためにこのカウンタを使用し、各割り当て後にカウンタをインクリメントする。このように、システムは、生存しているクラスタに新たな識別子を割り当てる。
【0079】
そして、システムは、第2の段階において再度第2の配列の識別されたk番目のエントリ(すなわち、動作962に対応する)に次の利用可能な新たな識別子を割り当てる(動作966)。この反復の第2の段階において、システムは、第1の配列のk番目のエントリがjであるかを識別する(動作968)。ここで、jは、kと等しくない。そして、システムは、第2の配列の対応するk番目のエントリ(すなわち、動作968に対応する)を第1の配列の識別されたj番目のエントリを割り当てる(動作970)。反復の第2の段階後、システムは、エッジによって参照される頂点をリネームするように第2の配列を使用する(動作972)。
【0080】
図10は、本発明の実施形態にかかる関心情報検出システムの例を図示している。1つの実施形態において、コンピュータ及び通信システム1000は、関心情報検出システムとして動作する。コンピュータ及び通信システム1000は、プロセッサ1002と、メモリ1004と、記憶装置1006とを含む。記憶装置1006は、関心情報検出アプリケーション1008と、アプリケーション1010及び1012などの他のアプリケーションとを記憶する。動作中、関心情報検出アプリケーション1008は、記憶装置1006からメモリ1004にロードされた後、プロセッサ1002によって実行される。プログラムの実行中に、プロセッサ1002は、上述した機能を実行する。コンピュータ及び通信システム1000は、任意のディスプレイ1014、キーボード1016及びポインティングデバイス1018に接続されている。いくつかの実施形態において、関心検出アプリケーション1008は、複数のコンピュータ及び通信システムにおいて実行され、関心検出アプリケーション1008に関連付けられた動作状態を記載したデータを交換することができる。
【0081】
なお、上述したモジュールは、ハードウェア及びソフトウェアで実装されることができることに留意すべきである。1つの実施形態において、これらのモジュールは、コンピュータ及び通信システム1000における1つ以上のプロセッサに接続されたメモリに記憶されたコンピュータ実行可能な命令で具現化されることができる。実行されると、これらの命令は、プロセッサ(複数可)に上述した機能を実行させる。
【0082】
要約すると、本発明の実施形態は、関心情報を検出するためのコンピュータシステム及び方法を提供する。1つの実施形態において、コンピューティングシステムは、プロセッサと、コンピュータ読み取り可能な記憶媒体とを含む。コンピュータ読み取り可能な記憶媒体は、プロセッサによって実行されたとき、プロセッサに方法を実行させる命令を記憶する。本方法は、第1の頂点と第2の頂点との間のエッジに基づいて、グラフにおける第2の頂点に第1の頂点の頂点識別子を割り当てることを備える。頂点は、データセットにおける要素を表し、エッジは、頂点間の関係の種類及び強さを表す。本方法は、さらに、頂点識別子に関連付けられた頂点クラスタに第1の頂点及び第2の頂点を割り当ることと、頂点クラスタに関連付けられたモジュール方式に基づいて、頂点クラスタを収束することとを備える。頂点クラスタは、データセットにおける関心情報を表している。
【0083】
本願明細書に記載された方法及びプロセスは、コンピュータ読み取り可能な持続性記憶媒体に記憶されることができるコード及び/又はデータとして具現化されることができる。コンピュータシステムは、コンピュータ読み取り可能な持続性記憶媒体に記憶されたコード及び/又はデータを読み取って実行すると、コンピュータシステムは、媒体内に記憶されたデータ構造及びコードとして具現化されて方法及びプロセスを実行する。
【0084】
本願明細書に記載された方法及びプロセスは、ハードウェアモジュール又は装置によって実行される及び/又はそれに含まれることができる。これらのモジュール又は装置は、それらに限定されるものではないが、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定時間において特定のソフトウェアモジュール又はコードの一部を実行する専用又は共有プロセッサ、及び/又は、現在公知であるか又は今後開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動されると、それらは、それらの内部に含まれる方法及びプロセスを実行する。
【0085】
本発明の実施形態の上記説明は、図示及び説明のみを目的として提示されている。それらは、網羅的であるように又は本開示を限定するように意図されたものではない。したがって、多くの変更例及び変形例が当業者にとって明らかであろう。本発明の範囲は、添付された特許請求の範囲によって定義される。
図1A
図1B
図2
図3
図4
図5A
図5B
図5C
図6A
図6B
図7
図8A
図8B
図9A
図9B
図10