(57)【要約】      （修正有）【課題】グラフクラスタリングのために、グラフにおける頂点の第１及び第２のセットを識別するコンピューティングシステムを提供する。【解決手段】グラフにおける頂点の第１のセットにおける各頂点は模範である。頂点の第２のセットにおける各頂点は、模範ではなく、頂点識別子に関連付けられていない。システムは、頂点間の関係の種類及び強さに基づいて、第１のセットにおける第１の頂点の頂点識別子を第２のセットにおける第２の頂点に割り当てる。頂点は、データセットにおける要素を表している。第１及び第２の頂点の頂点識別子は、収束する前には変更しない。システムは、第１の頂点及び第２の頂点を、頂点識別子に関連付けられた第１の頂点クラスタに割り当て、データセットにおける関心情報を表す頂点クラスタに関連付けられたモジュール方式に基づいて収束を検出する。【選択図】図１Ｂ
2015115075.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムにおいて、
プロセッサと、
メモリと、
第１のグラフクラスタリングのためにグラフにおける頂点の第１のセットを識別し、頂点の第１のセットにおける各頂点が各頂点クラスタの模範であり、頂点の頂点識別子が対応する頂点クラスタを識別し、
グラフにおける頂点の第２のセットを識別し、頂点の第２のセットにおける各頂点が頂点クラスタの模範ではなく、頂点が頂点識別子に関連付けられておらず、
頂点の第１のセットにおける第１の頂点の頂点識別子を、第１の頂点と第２の頂点との間のエッジに基づいて頂点の第２のセットにおける第２の頂点に割り当て、第１の頂点及び第２の頂点がデータセットにおける要素を表し、エッジが第１の頂点と第２の頂点との間の関係の種類及び強さを表しており、
第１の頂点及び第２の頂点の頂点識別子が収束する前には変更せず、
第１の頂点及び第２の頂点を、頂点識別子に関連付けられた第１の頂点クラスタに割り当て、頂点クラスタがデータセットにおける関心情報を表すように構成されたクラスタリング機構と、
頂点の第２のセットにおける各頂点に対する頂点識別子の割り当てに基づいて、第１のグラフクラスタリングの収束を検出するように構成された収束機構とを備える、コンピューティングシステム。
【請求項２】
収束システムが、さらに、グラフにおける各頂点の各頂点識別子の割り当てのために使用されるモードの計算のために、頂点識別子を有しない各頂点からの入力を無視するように構成されている、請求項１に記載のコンピューティングシステム。
【請求項３】
望ましくないクラスタ形成に対する応答において、クラスタリング機構が、さらに、第２のグラフクラスタリングへの入力として第１のグラフクラスタリングを使用するように構成されており、
第２のグラフクラスタリングについて、クラスタリング機構が、さらに、
第２の頂点の隣接頂点に割り当てられた頂点識別子のモードに基づいて、第２の頂点識別子を第２の頂点に割り当て、
第２の頂点を、第２の頂点識別子に関連付けられた第２の頂点クラスタに割り当て、第２の頂点クラスタがデータセットにおける関心情報を表すように構成されており、
第２のグラフクラスタリングについて、収束機構が、さらに、グラフの更新された頂点クラスタに関連付けられたモジュール方式に基づいて、第２のグラフクラスタリングの収束を検出するように構成されており、グラフの更新された頂点クラスタが第２の頂点クラスタを含む、請求項１に記載のコンピューティングシステム。
【請求項４】
さらに、頂点クラスタを形成するために、グラフにおける頂点のサブセットを、コンピュータにおいて実行中のスレッドに割り当てるように構成されたスレッド管理機構を備え、頂点のサブセットについての頂点クラスタの形成がスレッド内で計算される、請求項１に記載のコンピューティングシステム。
【請求項５】
クラスタリング機構が、さらに、
コミュニティグラフにおける頂点として複数の頂点クラスタを表し、
コミュニティグラフにおける各候補頂点クラスタ対についてのマージナルモジュール方式を計算し、
マージナルモジュール方式に基づいて２つ以上の頂点クラスタをマージするように構成されている、請求項１に記載のコンピューティングシステム。
【請求項６】
クラスタリング機構が、
候補クラスタ間のエッジの重み、
コミュニティグラフにおける全てのエッジの重み、及び、
各候補クラスタの重み
のうちの１つ以上に基づいて、マージナルモジュール方式を計算するように構成されている、請求項５に記載のコンピューティングシステム。
【請求項７】
クラスタリング機構が、さらに、マージナルモジュール方式におけるコミュニティグラフにおける全てのエッジの重みの影響を調整するように構成されており、影響が、大きいクラスタの形成又は小さいクラスタの形成を含む、請求項６に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ分析に関する。より具体的には、本開示は、関心情報を検出するための効率的なデータ分析のための方法及びシステムに関する。
【背景技術】
【０００２】
計算能力の急激な増加は、効率的なデータ分析を使用して、買い物の嗜好、ソーシャルメディア活動、医療照会及び電子メールのトラフィックパターンなどの関心情報を抽出することが可能としている。そのようなデータ分析の要件は、それらに効率的な計算需要の増加をもたらしている。その結果、装置ベンダは、効率的に関心情報を計算するためにグラフクラスタリングなどの多目的な機能を備えた大規模で高速なコンピューティングデバイスを競い合って構築している。しかしながら、コンピューティングデバイスの計算能力は、無限に増大することができない。いくつかの要因を指定することは、物理的空間、電力消費及び設計の複雑さによって制限される。さらにまた、より高い能力を有するコンピューティングデバイスは、通常、より複雑で高価である。より重要なことに、過度に大規模で複雑なコンピューティングデバイスは、多くの場合、規模の経済性を提供しないことから、コンピューティングデバイスの能力を単に増加させることは、経済的に実行不可能なことを証明することができる。
【０００３】
この課題に対処する１つの方法は、大規模な任意のデータセットから関心情報を抽出するために使用されるデータ分析ツールの効率を高めることである。そのような大規模なデータセットのデータ分析の効率を増加させることは、分析ツールの複雑さを増加させることがあり、大規模な現実の配備には一般的に適していない。したがって、効率的なデータ分析技術は、さらに、実際の配備の実行可能性を必要とする。
【０００４】
グラフクラスタリングは、大規模なデータセットを分析するためのツールである。通常、データセットにおける要素は、頂点として表され、要素間の関係は、グラフにおけるエッジとして表される。グラフクラスタリングは、１つのクラスタにおける頂点が他のクラスタにおける頂点よりも互いにより密に相互接続されるように、類似の要素のクラスタ（すなわち、グループ）をみつける。このように、データセットは、より抽象的なレベルで観察されることができ、コンピューティングデバイスが関心情報を判定するのを可能とする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
グラフクラスタリングは、データ分析に対して多くの望ましい特徴をもたらす一方で、いくつかの問題は、大規模な任意のデータセットから関心情報を効率的に得ることにおいて解決されていないままである。
【課題を解決するための手段】
【０００６】
本発明の１つの実施形態は、コンピューティングシステムを提供する。コンピューティングシステムは、プロセッサと、コンピュータ読み取り可能な記憶媒体とを含む。コンピュータ読み取り可能な記憶媒体は、プロセッサによって実行されたときにプロセッサに方法を実行させる命令を格納する。本方法は、第１のグラフクラスタリングについて、グラフにおける頂点の第１のセットを識別することを備える。頂点の第１のセットにおける各頂点は、頂点の頂点識別子によって識別される各頂点クラスタの模範である。本方法は、さらに、グラフにおける頂点の第２のセットを識別することを備える。頂点の第２のセットにおける各頂点は、グラフにおける頂点クラスタの模範ではなく、頂点識別子に関連付けられていない。本方法は、さらに、頂点の第１のセットにおける第１の頂点の頂点識別子を、第１の頂点と第２の頂点との間のエッジに基づいて頂点の第２のセットにおける第２の頂点に割り当てることを備える。第１及び第２の頂点は、データセットにおける要素を表し、エッジは、頂点間の関係の種類及び強さを表している。第１の頂点及び第２の頂点の頂点識別子は、収束する前には変更しない。本方法は、さらに、第１の頂点及び第２の頂点を頂点識別子に関連付けられた第１の頂点クラスタに割り当てることと、頂点の第２のセットにおける各頂点に対する頂点識別子の割り当てに基づいて、第１のグラフクラスタリングの収束を検出することとを含む。頂点クラスタは、データセットにおける関心情報を表している。
【０００７】
本実施形態における変形例において、本方法は、さらに、グラフにおける各頂点を各頂点識別子に割り当てるために使用されるモードの計算のための頂点識別子を有しない各頂点からの入力を無視することを備える。
【０００８】
本実施形態における変形例において、望ましくないクラスタ形成に応答して、本方法は、さらに、第２のグラフクラスタリングへの入力として第１のグラフクラスタリングを使用することを備える。第２のグラフクラスタリングは、第２の頂点の隣接頂点に割り当てられた頂点識別子のモードに基づいて、第２の頂点識別子を第２の頂点に再割り当てすることを備える。第２のグラフのクラスタリングは、さらに、第２の頂点を第２の頂点識別子に関連付けられた第２の頂点クラスタに割り当てることと、グラフの第２の頂点クラスタを含む更新された頂点クラスタに関連付けられたモジュール方式に基づいて、第２のグラフクラスタリングの収束を検出することとを備える。第２の頂点クラスタは、データセットにおける関心情報を表している。
【０００９】
本実施形態における変形例において、本方法は、さらに、頂点クラスタを形成するためにコンピュータにおいて実行中のスレッドに対してグラフにおける頂点のサブセットを割り当てることを備える。頂点のサブセットについての頂点クラスタを形成することは、スレッド内で計算される。
【００１０】
本実施形態における変形例において、本方法は、さらに、コミュニティグラフにおける頂点として複数の頂点クラスタを表すことと、コミュニティグラフにおける各候補頂点クラスタ対のマージナルモジュール方式を計算することと、マージナルモジュール方式に基づいて２つ以上の頂点クラスタをマージすることとを備える。
【００１１】
さらなる変形例において、マージナルモジュール方式の計算は、（ｉ）候補クラスタ間のエッジの重み、（ｉｉ）コミュニティグラフにおける全てのエッジの重み、及び、（ｉｉｉ）個々の各候補クラスタの重みのうちの１つ以上に基づいている。
【００１２】
さらなる変形例において、本方法は、さらに、マージナルモジュール方式のコミュニティグラフにおける全てのエッジの重みの影響を調整することを備える。影響は、大規模なクラスタの形成又は小さなクラスタの形成を含む。
【００１３】
さらなる変形例において、本方法は、さらに、統合したエッジ及びマージされたクラスタを除去することを含む。
【００１４】
さらなる変形例において、本方法は、さらに、頂点及びエッジ参照をコミュニティグラフにおける頂点にリネームすることを備える。
【００１５】
本実施形態における変形例において、頂点クラスタの収束は、さらに、振動減衰効果を適用することを備える。
【図面の簡単な説明】
【００１６】
【図１Ａ】図１Ａは、本発明の実施形態にかかるモードベースのラベル伝播を使用して関心情報を効率的に検出するための例示的なシステムを図示している。この文脈において、「モード」は、「最も一般的に生じる」ことを意味する。平均値及び中央値とともに、それは、値のセットから１つの値を生成するために一般的に使用される。
【図１Ｂ】図１Ｂは、本発明の実施形態にかかる関心情報を検出するための例示的なモードベースのラベル伝播を図示している。
【図２】図２は、本発明の実施形態にかかるグラフクラスタリングについての例示的なモードベースのラベル伝播を図示している。
【図３】図３は、本発明の実施形態にかかるモードベースのラベル伝播の並列実行に基づいて、関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。
【図４】図４は、本発明の実施形態にかかるモードベースのグラフクラスタリングについての関心情報検出システムのモード計算処理を図示するフローチャートを表している。
【図５Ａ】図５Ａは、本発明の実施形態にかかるランダム更新防止に基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。
【図５Ｂ】図５Ｂは、本発明の実施形態にかかる周期的バイアスに基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。
【図５Ｃ】図５Ｃは、本発明の実施形態にかかる振動検出に基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。
【図６Ａ】図６Ａは、本発明の実施形態にかかる埋め込まれたモジュール方式計算によるクエリに基づくモードベースのグラフクラスタリングについての関心情報検出システムの収束検出処理を図示するフローチャートを表している。
【図６Ｂ】図６Ｂは、本発明の実施形態にかかるモジュール方式のローカル推定に基づくモードベースのグラフクラスタリングについての情報関心検出システムにおけるスレッドの収束検出処理を図示するフローチャートを表している。
【図７】図７は、本発明の実施形態にかかるグラフクラスタリングについての例示的な貪欲モードベースのラベル伝播を図示している。
【図８Ａ】図８Ａは、本発明の実施形態にかかる貪欲モードベースのラベル伝播に基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。
【図８Ｂ】図８Ｂは、本発明の実施形態にかかる貪欲モードベース及びモードベースのラベル伝播の組み合わせに基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。
【図９Ａ】図９Ａは、本発明の実施形態にかかる調整可能なモジュール方式の最大化に基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。
【図９Ｂ】図９Ｂは、本発明の実施形態にかかる頂点及びエッジに対する参照をリネームする関心情報検出システムの処理を図示するフローチャートを表している。
【図１０】図１０は、本発明の実施形態にかかる関心情報検出システムの例を図示している。
【発明を実施するための形態】
【００１７】
図面において、同様の参照符号は、同じ図要素を指す。
【００１８】
以下の説明は、当業者が本発明を作成及び使用することを可能とするように提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更例は、当業者にとって容易に明らかであり、本願明細書において定義された一般的原理は、本発明の精神及び範囲から逸脱することなく他の実施形態及び用途に適用することができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、特許請求の範囲と一致する最も広い範囲を与えられるべきである。
【００１９】
本発明の実施形態において、大規模な及び／又は任意のデータセットから関心情報を効率的に収集するという問題は、モードベースのラベル伝播を使用した効率的なグラフクラスタリングによって解決される。大規模なデータセットは、多くの場合、意味のある情報を提示しない。例えば、小売店における買い物履歴は、顧客の買い物の嗜好又は類似した買い物嗜好を有する顧客などの関心情報を直接示すことなく、任意のデータセットを提示することができる。関心情報を得る１つの方法は、データセットにおける要素及びそれらの相互関係を、それぞれ、グラフにおける頂点及びエッジとして表現し、それに応じて頂点をクラスタリングすることである。既存のツールを使用すると、グラフのクラスタリングは、多くの場合、効率的ではなく、利用可能な計算資源及び／又は所望の時間的要件内の関心情報を得ることができず、それにより、実行可能な方法で関心情報を得ることができない場合がある。
【００２０】
この問題を解決するために、頂点間のエッジは、頂点間の関係の種類と強さに関連しており、関心情報を表すクラスタを形成するために効率的なグラフモードベースのラベルの伝播のために使用される。各頂点は、固有の頂点識別子（すなわち、ラベル）と関連している。頂点は、頂点がエッジを有する他の頂点（隣接頂点と称されることができる）の識別子を調べる。その隣接頂点の全てを有するエッジによって示される関係の種類と強さとに基づいて、頂点には、隣接頂点の識別子が割り当てられることができる（すなわち、隣接頂点のラベルが頂点に伝播されることができる）。このようにして、ラベルの伝播の１回以上の反復により、頂点のグループには、同じ識別子が割り当てられる。同じ識別子を有するこれらの頂点は、クラスタを形成する。十分に小さい頂点の数がラベル伝播反復においてクラスタを変更したり、又は、クラスタリングのグローバル尺度が所望の値（例えば、最大値）に到達した場合には、クラスタリングは収束する。このように、関心情報を表すクラスタは、効率的に形成される。
【００２１】
しかしながら、ラベルを伝播する間、２つの隣接頂点は、各反復においてラベルを交換し、振動の影響を有することがある。いくつかの実施形態において、振動減衰は、振動の影響を緩和するためにモード計算に適用される。振動減衰の例としては、これらに限定されるものではないが、ラベル伝播のランダム化、周期的バイアス及び振動検出を含む。さらにまた、効率的且つ正確に収束を検出することは、効率的な計算のために必須である。いくつかの実施形態において、頂点は、並列実行のために複数のスレッドに分散している。クラスタリングは、各頂点とその隣接頂点とに依存することから、頂点のセットは、並列処理のために複数のスレッド間で分散することができる。各スレッドは、ローカル及びグローバルな視点のいずれか又はローカル推定に基づいて、クラスタリングの品質の測定値を算出し、それに応じてクラスタリング処理を収束する。測定値の例としては、これらに限定されるものではないが、モジュール方式を含む。
【００２２】
各クラスタにおいて、あらゆる頂点は、同一の識別子に関連付けられる。その識別子を有する元の頂点は、シード頂点又はクラスタの模範と称されることができる。いくつかの実施形態において、モードベースのラベル伝播から得られたクラスタは、新たなクラスタを形成するために使用される。これらの頂点は、クラスタ形成への寄与が高い傾向があることから、シード頂点である頂点のみに識別子が割り当てられる。識別子を有していない頂点は、モードベースのラベル伝播に基づいて、識別子を有する隣接から対応する識別子を取得する。いくつかの実施形態において、識別子を有する頂点は、識別子を変更することが許容されない。その結果、他の頂点は、振動の影響を有しないそれらの隣接頂点との関連を評価することができ、より分散したグラフクラスタリングを達成することができる。
【００２３】
本開示において、用語「頂点識別子」は、グラフにおける頂点を識別するために使用されることができる任意の値をいう。用語「ラベル」及び「識別子」は、互換的に使用されている。
【００２４】
図１Ａは、本発明の実施形態にかかるモードベースのラベル伝播を使用して関心情報を効率的に検出するための例示的なシステムを図示している。図１に示されるように、関心情報検出システム１３０は、ネットワーク１３２に接続されている。ネットワーク１３２の例としては、これらに限定されるものではないが、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）又はインターネットを含む。動作中、システム１３０は、関心情報を含む入力データを受信する。いくつかの実施形態において、システム管理者は、システム１３０に入力データを提供する。関心情報の例としては、これらに限定されるものではないが、買い物の嗜好、ソーシャルメディア活動、照会（例えば、医療照会）及び電子メールのトラフィックパターンを含む。
【００２５】
この例において、入力データは、２人の人物１１０及び１２０に関する情報を含む。人物１１０に関する情報は、属性１１２、１１４及び１１６を含み、人物１２０に関する情報は、属性１２２、１２４及び１２６を含む。いくつかの実施形態において、システム１３０は、ネットワーク１３２を介して、人物１１０がコンピューティングデバイス１０２を使用するときの属性１１２、１１４及び１１６と、人物１２０がコンピューティングデバイス１０４を使用するときの属性１２２、１２４及び１２６とを収集する。収集された属性に基づいて、システム１３０は、データセット１００を生成する。なお、これらの属性は、コンピューティングデバイス１０２及び１０４又は人物１１０及び１２０に関連していないことがあることに留意すべきである（すなわち、データセットにおける属性は、人物又はデバイスに対応することなく任意とすることができる）。
【００２６】
そして、システム１３０は、人物１１０の属性を表す頂点１６２と、人物１２０の属性を表す頂点１６４とを形成する。頂点１６２及び１６４の間の関係の種類及び強さに基づいて、システム１３０は、頂点１６２及び１６４の間のエッジ１４２及び１４４を形成する。このようにして、システム１３０は、任意の属性を有する任意のデータセット１００を使用することができ、これらの属性を対応する頂点及びエッジと関連付ける。いくつかの実施形態において、データセット１００は、構造化されたデータセットであり、データセット１００は、頂点１６２及び１６４と、頂点１６２及び１６４の間のエッジ１４２及び１４４とを備える。システム１３０は、属性に基づいて、既に前処理された構造化されたデータセットを同様に直接受信することができ、頂点及びエッジが既に構築されていることから、頂点及びエッジに対応する属性を関連付ける必要がない。例えば、異なる物理又は仮想システムは、構造化されたデータセット１００を生成するように属性を処理することができ、この構造化されたデータセット１００をシステム１３０に提供することができる。システム１３０は、メモリ転送を介して（例えば、光学ドライブ、フラッシュドライブを介して）又はネットワーク１３２を介して、入力データ（及び／又はデータセット１００）を受信することができる。
【００２７】
頂点に関連付けられた属性を有することとは異なり、システム１３０は、頂点をクラスタリングするためにエッジを使用する。属性間の各関係は、頂点間のエッジにマッピングされる。例えば、エッジは、「の友人である」、「の親である」、「元頂点は宛先の頂点を購入した」及び「発信元は、２月に宛先に電子メールを送った」などの様々な種類の頂点間の関係を表すことができる。このように、２つの頂点は、それらの間における１つ以上の所望の関係に基づいてクラスタリングされることができる。さらにまた、２つの頂点間のエッジは、頂点間の関係の強さを表す重みと関連付けることができる。図１Ａの例において、エッジ１４２は、属性１１２及び１２４に基づいて、それぞれ、頂点１６２及び１６４の間の関係を表している。同様に、エッジ１４４は、属性１１４及び１２６に基づいて、それぞれ、頂点１６２及び１６４の間の関係を表している。エッジ１４２によって表される関係がエッジ１４４によって表される関係よりも強い場合には、エッジ１４２の重みは、エッジ１４４の重みよりも多くすることができる。なお、エッジ１４２の重みは、より少ない重みがより強い関係を示す場合には、エッジ１４４の重みよりも少なくすることができることに留意すべきである。
【００２８】
エッジ１４２及び１４４の種類及び重みに基づいて、システム１３０は、頂点１６２及び１６４をグループにクラスタリングすることができる。このグループ化は、データセット１００に対して解釈可能な抽象化を提供し、所望の関心情報を表すことができる。データセット１００が小売店における買い物履歴を含むとする。そして、頂点１６２は、人物１１０の買い物の嗜好を表す一方で、頂点１６４は、人物１２０の買い物の嗜好を表している。エッジ１４２及び１４４は、人物１１０及び人物１２０の買い物の嗜好間の関係を表すことができる。例えば、エッジ１４２及び１４４は、嗜好の類似性（例えば、類似する色、衣類の種類、ブランドなど）の程度及び購入の頻度（例えば、どの程度、頻繁に、その年のセールイベントの出席時に）を表すことができる。頂点１６２及び１６４をクラスタリングすることにより、システム１３０は、特定の年時において特定の種類の衣類をどの程度多くの人々が購入しているのか、又は、販売価格は販売イベントにおいてどの程度効果的であったのかなどの関心情報を提供することができる。
【００２９】
いくつかの実施形態において、システム１３０は、関心情報を検出するためにモードベースのラベル伝播を使用する。図１Ｂは、本発明の実施形態にかかる関心情報を検出するための例示的なモードベースのラベル伝播を図示している。この例において、データセット１００は、さらに、人物１５０に関する情報を含む。人物１５０に関する情報は、属性１５２、１５４及び１５６を含み、頂点１６６によって表される。頂点１６２及び１６６の間の関係の種類及び強さに基づいて、システム１３０は、頂点１６２及び１６６の間のエッジ１４６を形成する。同様に、頂点１６４及び１６６の間の関係の種類及び強さに基づいて、システム１３０は、頂点１６４及び１６６の間のエッジ１４８を形成する。
【００３０】
属性が、人物１１０、１２０及び１５０の買い物履歴を表すと仮定する。例えば、属性１１２、１１４及び１１６は、それぞれ、人物１１０が、１足の赤色の靴、青色のシャツ及び黒色の帽子を購入したことを示している。同様に、属性１２２、１２４及び１２６は、それぞれ、人物１２０が、金色の指輪、１足の赤色の靴及び緑色のシャツを購入したことを示しており、属性１５２、１５４及び１５６は、それぞれ、人物１５０が、電子書籍、スポーツ用品及び緑色のシャツを購入したことを示している。システム１３０は、これらの属性を分析し、頂点１６２、１６４及び１６６によって人物１１０、１２０及び１５０の買い物履歴をそれぞれ表す。そして、システム１３０は、頂点識別子１７２、１７４及び１７６を、頂点１６２、１６４及び１６６にそれぞれ割り当てる。頂点識別子１７２、１７４及び１７６は、グラフクラスタリング処理中に、それぞれ、頂点１６２、１６４及び１６６をそれぞれ固有に識別する。
【００３１】
関心情報が類似する買い物の嗜好を有する顧客である場合には、システム１３０は、人物１１０、１２０及び１５０の買い物の嗜好の間の類似性を表す頂点１６２、１６４及び１６６の間のエッジを形成する。例えば、人物１１０及び１２０は、双方とも、靴を購入していることから、システム１３０は、対応する頂点１６２及び１６４の間にエッジ１４２を形成する。同様に、人物１１０及び１２０は、双方とも、シャツを購入していることから、システム１３０は、対応する頂点１６２及び１６４の間にエッジ１４４を形成する。いくつかの実施形態において、システム１３０は、関係の強さに基づいて、各エッジに重みを割り当てる。
【００３２】
この例において、人物１１０及び１２０は、双方とも、同じ色（例えば、赤色）の靴及び異なる色（例えば、青色及び緑色）のシャツを購入している。したがって、靴の購入の類似性を表すエッジ１４２は、シャツの購入の類似性を表すエッジ１４４よりも高い重みを有することができる。いくつかの実施形態において、頂点１６２及び１６６の間のエッジ１４２及び１４４など、２つの頂点間の複数のエッジは、単一の複合エッジとマージされることができる。この複合エッジの重みは、エッジ１４２及び１４４の重みの和とすることができる。
【００３３】
さらにまた、人物１１０及び１５０は、双方とも、シャツを購入していることから、システム１３０は、対応する頂点１６２及び１６６の間にエッジ１４６を形成する。同様に、人物１２０及び１５０は、双方とも、シャツを購入していることから、システム１３０は、対応する頂点１６４及び１６６の間にエッジ１４８を形成する。この例において、人物１２０及び１５０は、同じ色（例えば、緑色）のシャツを購入しており、人物１１０及び１５０は、異なる色（例えば、青色及び緑色）のシャツを購入している。したがって、エッジ１４８は、エッジ１４６よりも高い重みを有することができる。
【００３４】
頂点及びエッジを形成した後、システム１３０は、モードベースのラベル伝播のためにエッジの重みを使用する。いくつかの実施形態において、システム１３０は、頂点に関連付けられた特性を使用せず、クラスタ形成のためのエッジをあてにする。このように、システム１３０は、クラスタ形成のために異なる種類の頂点間の関係を使用することができる。動作中、システム１３０は、モードベースのラベル伝播を開始し、ラベル伝播を決定するために各頂点の隣接頂点を確認する。
【００３５】
例えば、システム１３０は、頂点１６２の隣接頂点１６４及び１６６を確認し、頂点１６２が最も強く頂点１６４に関連していると判定する。したがって、システム１３０は、頂点１６４のラベル（すなわち、識別子）を頂点１６２に伝播し、頂点識別子１７４を頂点１６２に割り当てる。同様に、システム１３０は、頂点１６６が最も強く頂点１６４に関連していると判定し、頂点１６４のラベルを頂点１６６に伝播し、頂点識別子１７４を頂点１６６に割り当てる。エッジは、双方向であることから、頂点１６２は、頂点１６２に最もよく接続され、システム１３０は、頂点識別子１７２を頂点１６４に割り当てる。この反復の後、頂点１６２、１６４及び１６６は、それぞれ、同じ頂点識別子１７４、１７２及び１７４を有する。他の反復の後、頂点１６２、１６４及び１６６は、それぞれ、頂点識別子１７２、１７４及び１７２を有する。このように、システム１３０は、人物１１０、１２０及び１５０が類似する買い物履歴を有すると判定する。
【００３６】
頂点１６２、１６４及び１６６のうちの各対の頂点間のエッジが等しい重みを有すると仮定する（例えば、エッジ１４２及び１４４の重みの合計は、エッジ１４６の重みと等しい）。頂点重みが等しいことから、いくつかの実施形態において、各頂点は、対応するラベル伝播を決定するために最低（又は最高）の識別子の値を使用する。そのようなシナリオの下では、頂点１６２、１６４及び１６６は、まず、それぞれ、識別子１７２、１７４及び１７６を有する。他の反復の後、頂点１６２、１６４及び１６６は、それぞれ、識別子１７４、１７２及び１７２を有する。さらに他の反復の後、頂点１６２、１６４及び１６６のそれぞれは、識別子１７２を有する。このように、識別子の値は、等しい重みを有するエッジ間の結合を破るために使用されることができる。
【００３７】
このクラスタにおいて、頂点１６４は、シード頂点又はクラスタの模範と称されることができる。この例において、頂点１６２及び１６６は、双方とも、頂点間の関係の強さが異なっていたとしても、シード頂点１６４の頂点識別子１７４を受ける（例えば、頂点１６２は、頂点１６６よりも強く頂点１６４に関連している）。頂点１６６は、より顕著にシャツの購入を表す他のクラスタにとってより適していることができる。いくつかの実施形態において、システム１３０は、「貪欲」モードベースのラベル伝播についてのシードとしてモードベースのラベル伝播によって形成されたクラスタからのシード頂点を使用する。システム１３０は、頂点識別子１７４をシード頂点１６４に割り当てるのみであり、頂点１６２及び１６６は、識別子を有しないままである。頂点１６６は、いかなる識別子にも関連付けられていないことから、頂点１６６についてのラベル伝播の実行中において、システム１３０は、頂点を形成するためのより多くのオプションを探索することができ、より貪欲にラベルを頂点１６６に伝播する。貪欲モードベースの伝播は、既にラベルを有する頂点のラベルを変更しないことから、貪欲モードベースの伝播は、振動を回避し、一貫性のある収束を提供することができる。この貪欲モードベースのラベル伝播は、新たなクラスタを形成するために使用される。
【００３８】
ラベル伝播中に、頂点１６４の確認中に、システム１３０は、最も強く頂点１６２に関連している頂点１６４を観察することができ、頂点１６２の識別子１７２を頂点１６４に割り当てる。このように、頂点１６２及び１６４は、各反復においてラベルを交換することができ、振動の影響を有することができる。いくつかの実施形態において、システム１３０は、振動の影響を緩和するためにモード計算に振動減衰を適用する。振動減衰の例としては、これらに限定されるものではないが、ラベル伝播のランダム化、周期的バイアス及び振動検出を含む。各反復の後、システム１３０は、ローカル及びグローバルな視点のいずれか若しくは双方又はローカル推定に基づいてモジュール方式を計算し、それに応じてクラスタリング処理を収束する。
【００３９】
図１Ｂの例において、システム１３０は、グラフクラスタリングについてのモードベースのラベル伝播を使用し、それにより、データセット１００から関心情報を取得する。図２は、本発明の実施形態にかかるグラフクラスタリングについての例示的なモードベースのラベル伝播を図示している。動作中、関心情報検出システムは、データセットから頂点２０２、２０４、２０６及び２０８を形成（又は受信）し、それぞれ、ラベル２１２、２１４、２１６及び２１８をこれらの頂点に割り当てる。システムは、モードベースのラベル伝播のためにこれらの頂点間において双方向のエッジの重みを使用する。いくつかの実施形態において、双方向のエッジは、反対の方向を有する等しい重みの一対のエッジによって表されることができる。各頂点対間の各エッジが同じ重みを有すると仮定する。いくつかの実施形態において、システムは、等しい重みを有するエッジについての対応するラベル伝播を決定するために最低（又は最高）の識別子の値を使用する。そのようなシナリオの下では、システムは、頂点２０２の隣接頂点を確認し、頂点２０４が頂点２０２の隣接のうち最低の頂点識別子２１４を有することから、頂点２０４が最も強く頂点２０４に関連していると判定する。したがって、システムは、頂点２０４のラベル２１４を頂点２０２に伝播し、ラベル２１４を頂点２０２に割り当てる。同様に、システムは、頂点２０２が最低の頂点識別子２１２を有することから、頂点２０４、２０６及び２０８が最も強く頂点２０２に関連していると判定し、頂点２０２のラベル２１２を頂点２０４、２０６及び２０８に伝播し、ラベル２１２を頂点２０４、２０６及び２０８に割り当てる。
【００４０】
この反復の後、頂点２０４、２０６及び２０８は、同じラベル２１２を有するとともに、頂点２０２は、ラベル２１４を有する。システムは、頂点２０４、２０６及び２０８を有するクラスタを形成し、クラスタを識別するためにラベル２１２を使用する。そして、システムは、ラベル伝播の収束（例えば、所望のモードに到達したかどうか）を確認する。そうでない場合、システムは、他の反復を実行する。この反復において、システムは、再度、頂点２０２の隣接頂点を確認し、頂点２０２が最も強く頂点２０４に関連していると判定する。したがって、システムは、頂点２０４のラベル２１２を頂点２０２に伝播し、ラベル２１２を頂点２０２に割り当て、ラベル２１２に関連付けられたクラスタに頂点２０２を追加する。そして、システムは、ラベル伝播の収束を確認し、全ての頂点が同じクラスタの一部であり、モードがさらに改善されることができないと判定する。したがって、システムは、２１２とラベル付けされた全ての頂点を有するクラスタを形成する。このクラスタにおいて、頂点２０２は、シード頂点又はクラスタの模範と称されることができ、ラベル２１２は、クラスタ識別子と称されることができる。
【００４１】
頂点２０２と２０６との間のエッジなどのエッジの１つが、頂点２０２及び２０６が最も強い関係を有する隣接頂点として互いに有する（すなわち、エッジは、他のエッジに比べて高い重みを有する）ことを示していると仮定する。その結果、各反復において、頂点２０２及び２０６は、ラベル２１２及び２１６を交換し、振動の影響をもたらすことができる。いくつかの実施形態において、システムは、振動の影響を緩和するためにモード計算に振動減衰を適用する。例えば、システムは、少なくとも３回の反復からなるラベル割り当ての追跡を維持することができる。頂点２０２がラベル２１２を受信し返したとき（すなわち、頂点２０２がラベル２１２からラベル２１６に切り替え、ラベル２１６からラベル２１２に戻したとき）、システムは、頂点２０２が以前の２回の反復においてラベル２１２に関連付けられていることを検出し、頂点２０２が振動していると判定する。そして、システムは、クラスタの現在のモードに基づいて、振動減衰を適用してクラスタリングを収束する。
【００４２】
ラベル２１２などのラベル又は識別子は、数字（整数又は浮動小数点）、１つ以上の文字を含む文字列又は双方によって表されることができる。いくつかの実施形態において、グラフにおけるラベルは、符号なし整数の連続範囲である。例えば、ラベル２１２、２１４、２１６及び２１８は、連続範囲内の整数とすることができる。範囲内の各識別子は、グラフにおける頂点に対応している。
【００４３】
グラフにおけるエッジは、指向性又は無指向性とすることができる。エッジが指向性である場合、方向エッジは、反対方向のエッジとすることができる。いくつかの実施形態において、方向エッジは、元と宛先の頂点のラベルによって表される。例えば、元頂点２０２と宛先頂点２０６との間のエッジは、元頂点２０６と宛先頂点２０２との間のエッジとは異なることができる。いくつかの実施形態において、エッジは、さらに、頂点間の関係及び重みを指定し、関係の強さを指定する種類に関連付けることができる。エッジの種類及び重みは、数字、１つ以上の文字を含む文字列又は双方によって表されることができる。なお、２つの頂点間において反対方向にある２つのエッジは、同一又は異なる重みとすることができることに留意すべきである。いくつかの実施形態において、２つの頂点間において同じ種類及び方向を有する複数のエッジは、複合エッジとすることができる。複合エッジの重みは、マージされたエッジの重みの和とすることができる。
【００４４】
システムは、頂点２０２、２０４、２０６及び２０８と、それらの対応するエッジとをメモリに記憶する。いくつかの実施形態において、エッジは、まず、元頂点のラベルに基づいて、その後エッジの種類に基づいてソートされる。これは、システムが連続したメモリ位置に共通の元ラベル及び種類のエッジを配置するのを可能とする。いくつかの実施形態において、頂点２０２などの各頂点は、元頂点としての頂点２０２を有する各種類の最初と最後のエッジを示す種類テーブルを有する。連続した付番がエッジを識別するために使用される場合、最初と最後のエッジは、元頂点としての頂点２０２を有する全てのエッジを識別するのに十分である。頂点２０２のラベル２１２及び種類は、頂点２０２のエッジを識別することができることから、システムは、元頂点としての頂点２０２を有するエッジを表すためにラベル２１４、２１６及び２１８を記憶するのみである。システムは、同様にこれらのエッジの重みを記憶することができる。システムはまた、頂点２０２の種類テーブルに頂点２０２のラベル２１２をマッピングするテーブルを維持することができる。これは、システムが頂点２０２に関連付けられたエッジを迅速に得るのを可能とする。
【００４５】
いくつかの実施形態において、頂点は、並列実行のために複数のスレッドにわたって分散させることができる。クラスタリングは、各頂点とその隣接頂点に依存することから、頂点のセットは、並列処理のために複数のスレッドにわたって分散させることができる。図３は、本発明の実施形態にかかるモードベースのラベル伝播の並列実行に基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。動作中、システムは、複数のスレッドを作成し、スレッドにわたるセットであっても頂点識別子を分割する（動作３０２）。
【００４６】
そして、システムは、対応する元セットに各スレッドに関連付けられた元頂点識別子を有する全てのエッジを割り当てる（動作３０４）。換言すれば、エッジの元頂点識別子がスレッドに関連付けられている場合、エッジは、スレッドに対応するセットに割り当てられる。そして、システムは、それぞれ割り当てられたエッジのエッジ種類を識別し（動作３０６）、各元頂点識別子についての所望のエッジ種類を有するエッジを識別する（動作３０８）。図１Ｂの例において、所望のエッジ種類がシャツの購入履歴である場合には、システムは、元頂点１６２についてのエッジ１４４及び１４６を識別し、エッジ１４２を識別しない。
【００４７】
そして、システムは、各スレッドにおいて識別されたエッジについてのラベル伝播の反復を実行する（動作３１０）。システムは、前の反復において識別されたエッジの宛先頂点のモードを計算し、計算されたモード及びラベルを元頂点に関連付ける（動作３１２）。システムは、振動の影響を緩和するために振動減衰を適用する（動作３１４）。そして、システムは、各スレッドから各頂点についての計算されたモード及びラベルを収集し（動作３１６）、収束が検出されたかどうかを確認する（動作３１８）。そうでない場合、システムは、識別されたエッジについてのラベル伝播の他の反復を実行する（動作３１０）。システムが収束を検出した場合、システムは、クラスタ形成をレポートする（動作３２０）。このレポートにより、システムは、顧客に対して関心情報を提供する。
【００４８】
モードは、頂点にわたる各固有のラベルの出現回数を示す。いくつかの実施形態において、関心情報検出システムは、頂点についての次のラベルとして最も高い重みを有するラベルを選択するように頂点の到来エッジを介して頂点に提示された各固有のラベルに関連付けられたエッジの重みを合計する。モードベースのラベル伝播の効率（例えば、収束のために消費される時間）は、どのように迅速に各頂点についての潜在的に多くのエッジから到達するラベルのモードが計算されることができるかに依存する。いくつかの実施形態において、システムは、効率的なモードの計算のためにハッシュテーブルを使用する。これは、システムが各ラベルを含む１つの長鎖を探索する代わりにハッシュキーに関連付けられた小さな探索空間にわたって探索するのを可能とする。システムは、ラベルとして連続した整数を使用することから、ラベルの最下位ビットは、ハッシュキーとして使用されることができる。最下位ビットを使用することは、システムがハッシュキーを迅速に生成するのを可能とする。
【００４９】
さらにまた、システムが頂点についてのラベルのモードを確認しているとき、ハッシュテーブルは、各頂点について再初期化されなければならない。そのような動作は、計算集約的とすることができる。いくつかの実施形態において、頂点についてのラベルのモードを計算しながら、システムは、ハッシュキーがハッシュテーブルにおいて参照されるたびに、到来したラベル（すなわち、その隣接頂点から頂点に伝播されたラベル）のそれぞれの選択されたビットを確認する。ハッシュテーブルにおけるラベルビットが現在のラベルのビットと一致しない場合、ハッシュテーブル・エントリは、空であると仮定される。
【００５０】
図４は、本発明の実施形態にかかるモードベースのグラフクラスタリングについての関心情報検出システムのモード計算処理を図示するフローチャートを表している。動作中、システムは、現在の頂点の頂点識別子から選択されたビット（すなわち、システムが到来したラベルのモードを計算している頂点）を取得する（動作４０２）。いくつかの実施形態において、選択されたビットは、最下位ビットである。そして、システムは、ハッシュテーブルが再初期化を必要とするかどうかを確認する（動作４０６）。いくつかの実施形態において、選択された数のビットが最低値に戻るとき、ハッシュテーブルは、再初期化を必要とする。ハッシュテーブルが再初期化を必要とする場合、システムは、ハッシュテーブル・エントリを再初期化する（動作４１４）。システムは、現在の頂点の隣接頂点に暫定的に割り当てられたクラスタの識別子から各ビットを抽出することによってハッシュキーを生成し（動作４０８）、生成されたハッシュキーによって索引付けされたハッシュテーブル・エントリを識別する（動作４０６）。
【００５１】
そして、システムは、ハッシュテーブルにおけるエントリが存在し、現在の頂点の頂点識別子から選択されたビットを含むかどうかを確認する（動作４１２）。エントリが存在しないか又は選択されたビットを含まない場合、システムは、識別されたエントリにおける隣接頂点から重み及びクラスタ識別子を記録し、現在の頂点の頂点識別子から選択されたビットを更新する（動作４１４）。そうでない場合、システムは、識別されたエントリにおける重みに対して隣接頂点からの重みを追加する（動作４１６）。そして、システムは、頂点に関連付けられている全てのエントリがを確認されているかどうかを確認する（動作４１８）。これは、システムがハッシュテーブルにおいて対応するエントリにおける到来するエッジのそれぞれからラベルの重みを記録することを可能とする。
【００５２】
頂点に関連付けられている全てのエントリが確認されていない場合、システムは、現在の頂点の他の隣接頂点に暫定的に割り当てられたクラスタ識別子から各ビットを抽出することによってハッシュキーを生成し続け（動作４０８）、生成されたハッシュキーによって索引付けられたハッシュテーブル・エントリを識別する（動作４１０）。頂点に関連付けられている全てのエントリが確認された場合、システムは、重みに基づいてモードを計算する（動作４１０）。いくつかの実施形態において、システムは、モードを計算するために重みを合計する。そして、システムは、全ての頂点が確認されたかどうかを確認する（動作４１６）。そうでない場合、システムは、次の頂点に対して反復し（動作４１８）、その頂点の頂点識別子から選択されたビットを取得する（動作４０２）。そうでない場合、システムは、モード計算を終了する。
【００５３】
図２における例において、頂点２０２及び２０６が最も強い関係（すなわち、最高の重みを有するエッジ）を有する隣接頂点として互いに有すると仮定する。その結果、頂点２０２及び２０６は、振動の影響をもたらす各反復においてラベル２１２及び２１６を交換することができる。実際には、頂点２０２及び２０６は、メンバーが一対の異なるクラスタ間において振動するサブクラスタを表す。振動減衰は、そのようなサブクラスタの頂点が同じクラスタに割り当てられるのを可能とする。いくつかの実施形態において、関心情報検出システムは、振動の影響を緩和するためにモード計算に振動減衰を適用する。振動減衰の例としては、これらに限定されるものではないが、ラベル伝播のランダム化、周期的バイアス及び振動検出を含む。図５Ａは、本発明の実施形態にかかるランダム更新予防に基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。動作中、システムは、ランダム更新予防のために使用されるランダムビットストリームを生成する（動作５０２）。
【００５４】
そして、システムは、そのクラスタを変更している各頂点を識別し（動作５０４）、ランダムビットストリームにおける次のビットを考慮する（動作５０６）。システムは、考慮に基づいて、クラスタの遷移が頂点について許容されるかどうかを確認する（動作５０８）。いくつかの実施形態において、ビットストリームにおける「１」は、遷移の許容を示し、ビットストリームにおける「０」は、遷移の防止を示す（又はその逆）。遷移が許容される場合、システムは、頂点がクラスタを変更するのを許容する（動作５１２）。そうでない場合、システムは、頂点についてのクラスタの関係を保持する（動作５１４）（すなわち、クラスタの遷移を防止する）。このように、システムは、振動に関与する頂点のサブクラスタの大部分が最終的には同じクラスタに加わるように、振動クラスタの対称性をランダムに防止する。これは、そのクラスタに向けてサブクラスタにおける残りの頂点を引っ張る。
【００５５】
図５Ｂは、本発明の実施形態にかかる周期的なバイアスに基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。頂点についての現在の反復を判定することにより（動作５３２）、システムは、現在の反復において頂点の現在の及び遷移するクラスタ識別子間の関係を取得する（動作５３４）。いくつかの実施形態において、システムは、クラスタ識別子間の関係「よりも大きい」及び／又は「よりも小さい」を使用する。そして、システムは、現在の反復について許容された関係を判定し（動作５３６）、取得された関係が許容された関係に準拠しているかどうかを判定する（動作５３８）。
【００５６】
いくつかの実施形態において、システムは、３回の反復毎における関係「よりも大きい」（又はよりも小さい）について任意の関係のバイアスなしで（すなわち、取得された関係は、「何の関係」も示していない）１回の反復を許容する。換言すれば、全ての４回の反復において、バイアスは、３回の反復に適用され、４回目の反復には適用されない。そのようなシナリオの下では、許容された関係との一致を確認するために、許容された関係が「よりも大きい」（又は「よりも小さい」）関係である場合には、システムは、取得された関係が「よりも大きい」（又は「よりも小さい」）関係であるかどうかを判定する。許容された関係が、バイアスなしを示す「何の関係」もない場合には、システムは、取得された関係が許容された関係に一致していると単に判定する。判定に基づいて、システムは、遷移が許容されているかどうかを確認する（動作５４０）。遷移が許容されている場合、システムは、頂点がクラスタを変更するのを許容する（動作５４２）。そうでない場合、システムは、頂点についてのクラスタの関係を保持する（動作５４４）（すなわち、クラスタの遷移を防止する）。このように、システムは、振動減衰を適用するために周期的バイアスを使用して収束をもたらす。
【００５７】
図５Ｃは、本発明の実施形態にかかる振動検出に基づくモードベースのグラフクラスタリングについての関心情報検出システムの振動減衰処理を図示するフローチャートを表している。動作中、各頂点について、システムは、現在のクラスタの割り当てと、２つの前の反復とを保持する（動作５５２）。そして、システムは、図２に関連して説明したように、２回の反復しなおしのクラスタ識別子と現在のクラスタ識別子を比較し（動作５５４）、クラスタ識別子が同じであるかどうかを確認する（動作５５６）。そうでない場合、システムは、いかなる振動も検出せず、頂点がクラスタを変更するのを許容しない（動作５５８）。そうでない場合、システムは、現在及び以前のクラスタ識別子の最小（又は最大）を識別し（動作５６２）、頂点に対して識別されたクラスタ識別子を割り当てる（動作５６４）。これは、振動するサブクラスタの頂点にバイアスを供給し、頂点に同じクラスタに対して崩壊させる。
【００５８】
所望のクラスタ形成に基づいて収束を検出することは、効率的なグラフクラスタリングのために必須である。図６Ａは、本発明の実施形態にかかる埋め込まれたモジュール方式計算を使用したクエリに基づくモードベースのグラフクラスタリングの関心情報検出システムの収束検出処理を図示するフローチャートを表している。図３に関連して説明したように、各スレッドを作成することにより（動作６０２）、システムは、図２に関連して説明したように、各スレッドにおいてラベル伝播の反復を実行する（動作６０４）。各スレッドにおいて、システムは、１つのクラスタ内の元及び宛先頂点により、スレッドに関連付けられた元頂点を有するエッジの重みを計数する（すなわち、頂点のスレッドの範囲に対応する元頂点識別子）（動作６０６）。
【００５９】
そして、各スレッドについて、システムは、頂点と他の全てのスレッドの頂点−クラスタのマッピングを調べ（動作６０８）、模範の識別子が頂点のスレッドの範囲に対応するこれらの他のスレッドにおけるクラスタを識別する（動作６１０）。そして、システムは、各識別されたクラスタ内の頂点の数と、元及び宛先の頂点が同じクラスタにあるエッジの数とを合計する（動作６１２）。特権のあるスレッドは、モジュール方式のための他の全てのスレッドを調べることができる。システムは、この特権のあるスレッドが計算に基づいてモジュール方式を計算するのを可能とし（動作６１４）、モジュール方式がピークに到達したかどうかを確認することによって収束に到達したかどうかを確認するのを可能とする（動作６１６）。収束に到達していない場合、システムは、各スレッドにおいてラベル伝播の他の反復を実行する（動作６０４）。そうでない場合、システムは、クラスタの割り当てをレポートし、スレッドを削除する（動作６１８）。
【００６０】
いくつかの実施形態において、各スレッドは、独立してグローバルモジュール方式を推定することができる。これは、スレッドがクエリの反復中に停止される時間数を低減し、それにより、メモリ帯域幅要件を低減する。さらにまた、これは、グラフクラスタリングの効率的な並列実行を容易とすることができる。図６Ｂは、本発明の実施形態にかかるモジュール方式のローカル推定に基づくモードベースのグラフクラスタリングについての関心情報検出システムにおけるスレッドの収束検出処理を図示するフローチャートを表している。動作中、スレッドは、図２に関連して説明したように、頂点のスレッドの範囲に対応する頂点識別子についてのラベル伝播の反復を実行する（動作６５２）。そして、スレッドは、各クラスタに含まれるエッジの数を推定する（動作６５４）。
【００６１】
そして、スレッドは、元及び宛先の頂点識別子が頂点のスレッドの範囲に対応する範囲内エッジを識別する（動作６５４）。スレッドはまた、元及び宛先頂点識別子が頂点のスレッドの範囲に対応する範囲間エッジを識別し、宛先の頂点識別子は、頂点のスレッドの範囲の外側にある（動作６５６）。そして、スレッドは、元及び宛先の頂点識別子がクラスタ及び頂点のスレッドの範囲に対応するクラスタ内の範囲内エッジを識別する（動作６５８）。識別されたエッジに基づいて、スレッドは、元及び宛先の頂点識別子がクラスタに対応し、元頂点識別子が頂点のスレッドの範囲に対応し、宛先の頂点識別子が対応しないクラスタ内の範囲間エッジの数を推定する（動作６６０）。いくつかの実施形態において、スレッドは、以下のようにクラスタ内の範囲間エッジの数を推定する：（１＋範囲間エッジの数／範囲内エッジの数）＊クラスタ内の範囲内エッジ数。そして、スレッドは、クラスタ間の範囲内及びクラスタ内の範囲間エッジに基づいて、各クラスタについてのクラスタ内のエッジを計算する（動作６６２）。いくつかの実施形態において、スレッドは、以下のようにクラスタ内のエッジを計算する：クラスタ内の範囲内エッジの数＋クラスタ内の範囲間エッジ。
【００６２】
そして、スレッドは、各頂点の現在のクラスタの割り当てを計算する（動作６６４）。しかしながら、クラスタは、多くの場合、頂点のスレッドの範囲外の識別子を有する模範を有する。いくつかの実施形態において、スレッドは、頂点のスレッドの範囲において参照される各クラスタに割り当てられた頂点数の追跡を維持するためにハッシュテーブルを使用する。いくつかのさらなる実施形態において、システムは、各クラスタにおける頂点数を推定する。そうするために、システムは、頂点のスレッドの範囲についてのメモリのブロックを割り当てる。このメモリブロックは、頂点のスレッドの範囲において参照されるクラスタにおける頂点の推定数を含むことができる。このように、スレッドは、各クラスタに割り当てられた頂点数に容易にアクセスすることができる。計算を容易とするために、いくつかの実施形態において、メモリブロックにおける頂点数は、２のべき乗に切り上げられる。一旦全ての頂点数が計算されると、各計数の二乗が合計される。メモリブロックにおける頂点数の推定は、頂点のスレッドの範囲に対応する頂点に割り当てられたクラスタ識別子の最下位ビット（すなわち、対応するクラスタを示す頂点識別子）を使用して対処されることができる。
【００６３】
推定に基づいて、システムの各スレッドは、独立して、収束を検出するためにローカルモジュール方式を計算し（動作６６６）、ローカルモジュール方式がスレッドについてのピークに到達したかどうかを判定することによって収束に到達したかどうかを確認する（動作６６８）。いくつかの実施形態において、スレッドは、モジュール方式が所望の速度で増加が停止したかどうかを確認することによって収束について確認する。収束に到達していない場合、スレッドは、頂点のスレッドの範囲に対応する頂点識別子についてのラベル伝播の他の反復を実行し（動作６５２）、各クラスタに含まれるエッジの数を推定し続け、範囲内及び範囲間エッジを識別し続ける（動作６５４、６５６及び６５８）。収束に到達している場合、スレッドは、クラスタ割り当てをレポートする（動作６７０）。いくつかの実施形態において、スレッドは、共通の配列（すなわち、各スレッドにアクセス可能な配列）にクラスタの割り当てを書き込み、クラスタの割り当てを報告する。
【００６４】
図２における例において、頂点２０２は、シード頂点又はクラスタの模範と称されることができる。システムは、貪欲モードベースのラベル伝播のためにシード頂点２０２のラベル２１２（すなわち、頂点識別子２１２）を使用し、新たなクラスタを形成する。図７は、本発明の実施形態にかかるグラフクラスタリングについての例示的な貪欲モードベースのラベル伝播を図示している。動作中、システムは、データセットから頂点２０２、２０４、２０６及び２０８を形成（又は受信）し、シード頂点２０２にラベル２１２を割り当てる一方で、頂点２０４、２０６及び２０８は、識別子を有しないままである。このように、システムは、他の考慮なしに単調に収束する頂点２０４、２０６及び２０８にラベルを割り当てることができる。
【００６５】
いくつかの実施形態において、システムは、他の頂点によって無視することができる「ダミー」識別子を頂点２０４、２０６及び２０８に割り当てる。システムは、モードベースのラベル伝播のためにこれらの頂点間においてエッジの重みを使用する。システムは、頂点２０２が既にラベルを有しており、そのため新たなラベルを計算しないと判定する。したがって、頂点２０２は、頂点２０４、２０６及び２０８からの任意の入力を無視する。一方、システムは、頂点２０４、２０６及び２０８がラベルを有しておらず、最も強く頂点２０２に関連していると判定し、頂点２０２のラベル２１２を頂点２０４、２０６及び２０８に伝播し、ラベル２１２を頂点２０４、２０６及び２０８に割り当てる。この反復の後、頂点２０２、２０４、２０６及び２０８は、同じラベル２１２を有する。そして、システムは、ラベル伝播の収束を確認し、全ての頂点がラベルを有すると判定し、収束が達成されたと判定する。この貪欲モードベースのラベル伝播により、１つのクラスタが形成され、その全ての頂点が、ラベル２１２に関連付けられる。このクラスタにおいて、頂点２０２は、シード頂点又はクラスタの模範と称されることができる。いくつかの実施形態において、一旦、頂点２０４、２０６及び２０８がクラスタに割り当てられると、頂点２０４、２０６及び２０８は、クラスタを変更することができない。これは、割り当てられていない頂点からの入力が無視されることから、貪欲モードベースのラベル伝播が速く動作するのを可能とする。さらにまた、貪欲モードベースのラベル伝播を使用したグラフクラスタリングは、振動なしで動作することができ、その結果、迅速に終了する。
【００６６】
図８Ａは、本発明の実施形態にかかる貪欲モードベースのラベル伝播に基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。シード頂点のサブセットを識別することにより（動作８０２）、システムは、識別された頂点に固有の識別子を割り当てる（動作８０４）一方で、割り当てられていない頂点の残りを維持する（すなわち、識別子を割り当てない）。システムは、ラベル伝播の反復を実行し（動作８０６）、モードを計算するとともに、割り当てられていない頂点からの入力を無視し、ラベルを有する頂点が異なるラベルを取得するのを可能とする（動作８０８）。そして、システムは、収束が検出されたかどうかを確認する（動作８１０）。そうでない場合、システムは、ラベル伝播の他の反復を実行する（動作８０６）。そうでない場合、システムは、クラスタ割り当てを確定する（動作８１２）。なお、貪欲モードベースのラベル伝播を使用したグラフクラスタリングにおいて、頂点についてのクラスタ割り当ては、変更されないことに留意すべきである。
【００６７】
一方、システムが貪欲モードベースのラベル伝播を使用するのみである場合、いくつかの頂点は、それらの自然なクラスタメンバーからよりも別個のクラスタにすることができ（すなわち、これらの頂点は、頂点についての所望のクラスタ以外のクラスタにある）、望ましくないクラスタ形成をもたらす。同じクラスタ内にあることが望まれている頂点のグループにおいて、１つの頂点は、１つのシード頂点に関連付けることができる一方で、他のものは、他のシード頂点に関連付けることができる。換言すれば、頂点は、他のクラスタにおける頂点よりも、そのクラスタにおける他の頂点と弱い関係を有することができる。この影響を緩和するために、システムは、貪欲モードベースのラベル伝播の結果についてモードベースのラベル伝播を実行することができる。その組み合わせは、個々の頂点がより適切なクラスタに引っ張られるのを可能とする。
【００６８】
図８Ｂは、本発明の実施形態にかかる貪欲モードベース及びモードベースのラベル伝播の組み合わせに基づく関心情報検出システムのグラフクラスタリング処理を図示するフローチャートを表している。システムは、まず、図８Ａに関連して説明したように、貪欲モードベースのラベル伝播に基づいて形成されたクラスタを取得する（動作８５２）。システムは、図３に関連して説明したように、貪欲モードベースのラベル伝播から得られたクラスタにおいてモードベースのラベル伝播を適用する（動作８５４）。そして、システムは、図６Ａに関連して説明したように、埋め込まれたモジュール方式の計算によるクエリに基づいて、モードベースのグラフクラスタリングの収束を計算する（動作８５６）。システムは、モジュール方式がピークに到達したかどうかを確認することによって収束に到達したかどうかを確認する（動作８５８）。収束に到達していない場合、システムは、モードベースのラベル伝播を実行し続ける（動作８５４）。そうでない場合、システムは、クラスタの割り当てをレポートする（動作８６０）。
【００６９】
図９Ａは、本発明の実施形態にかかる調整可能なモジュール方式の最大化に基づく関心情報検出システムについてのグラフクラスタリング処理を図示するフローチャートを表している。動作中、システムは、クラスタのコミュニティグラフ内の各クラスタにおける頂点数に基づいて、各エッジを有するスコアと他のスコアとを関連付ける（動作９０２）。コミュニティグラフは、頂点としてクラスタを表し、エッジのスコアは、２つのクラスタ間の関係の強さを示す。システムは、対応するスコアに基づいて各対のクラスタについてのマージナルモジュール方式を計算し（動作９０４）、そのマージャがモジュール方式を増加させる１つ以上の候補クラスタを識別する（動作９０６）。いくつかの実施形態において、コミュニティグラフにおけるエッジのセットについての元頂点として現れるクラスタと、同じエッジのセットについての宛先頂点として現れるクラスタのセットとの間の最高のマージナルモジュール方式が正数である場合、対応するクラスタは、すぐにマージされる。
【００７０】
システムは、２つのクラスタ間のエッジの重みと２つのクラスタの重みのみからマージナルモジュール方式を計算する（すなわち、２つのクラスタにおいて重み付けされた頂点の合計）。いくつかの実施形態において、マージナルモジュール方式は、以下のように計算される：（候補クラスタ間のエッジの重み／グラフにおける全てのエッジの重み）−（（（第１の候補クラスタの重み）＊（第２の候補クラスタの重み））／（２＊（全てのエッジの重み）ｎ））。システムは、ｎの値が調整されるのを可能とする。例えば、ｎが２未満である場合、マージナルモジュール方式は小さくなる。これは、クラスタのマージにおいて知覚モジュール方式の改善を低減し、非常に少ないクラスタがマージされる。同様に、ｎが２よりも大きい場合には、より多くのクラスタがマージされる。
【００７１】
そして、システムは、候補クラスタ対が識別されているかどうかを確認する（動作９０８）。そうである場合、システムは、識別されたクラスタのうち吸収関係規則を調べ（動作９１０）、吸収関係規則が違反されているかどうかを確認する（動作９１０）。いくつかの実施形態において、吸収関係規則は、単一の反復において、残っているクラスタがその反復において吸収されない場合には、単一のクラスタが複数のクラスタを吸収することができることを示している。他の実施形態において、２つのクラスタは、いずれか一方が吸収した場合又は現在の反復中に吸収された場合にはマージされることができない。吸収関係規則が違反された場合、システムは、そのマージャがマージナルモジュール方式を最大化する他のクラスタのセットを識別する（動作９０６）。そうでない場合、システムは、識別されたクラスタをマージする（動作９１２）。
【００７２】
いくつかの実施形態において、コミュニティグラフを表すために、システムは、エッジを記憶するための配列を維持する。システムはまた、他の配列を維持することができ、各配列エントリは、クラスタ特性のリストに対応する。システムは、元及び宛先頂点に基づいてそれぞれエッジを二重ソートすることができる（動作９１４）。この二重のソートにおいて、システムは、最初は元頂点に基づいて、その後は宛先頂点に基づいてエッジをソートする。システムは、ソート順序に基づいてエッジを統合する（動作９１６）。これは、システムが、エッジ及び頂点配列の双方とも統合し、統合されたエッジを削除し、クラスタを吸収するのを可能とする。このように、配列は、数回の反復のみにおいてシステムのプロセッサキャッシュに適合することができる。そして、システムは、対応するスコアに基づいて、各対のクラスタについてのマージナルモジュール方式を計算し（動作９０４）、そのマージャがモジュール方式を最大化する１つ以上のクラスタを識別し続ける（動作９０６）。候補クラスタ対が識別されていない場合（動作９０８）、システムは、クラスタの割り当てをレポートする（動作９２０）。
【００７３】
データ構造を圧縮し、迅速にデータ構造にアクセスするために、全ての頂点及びエッジの参照は、各反復の終了時にリネームされるべきである。図９Ｂは、本発明の実施形態にかかる頂点及びエッジに対する参照をリネームする関心情報検出システムの処理を図示するフローチャートを表している。動作中、システムは、現在のクラスタを備える第１の配列を初期化する（動作９５２）。
【００７４】
システムは、図９Ａに関連して説明したように、吸収されたクラスタに対応する第１の配列のエントリを識別する（動作９５４）。システムは、第１の配列の吸収されたクラスタについての識別されたエントリへの吸収クラスタの識別子を設定する（動作９５６）。そして、システムは、第２の配列を初期化し（動作９５８）、第１の配列を介して反復し、反復の第１の段階における第１の配列の各エントリを調べる（動作９６０）。この反復の第１の段階において、システムは、第１の配列のｋ番目のエントリがｋであるかを識別する（動作９６２）。そして、システムは、第２の配列の識別されたｋ番目のエントリ（すなわち、動作９６２に対応する）に次の利用可能な新たな識別子を割り当てる（動作９６４）。いくつかの実施形態において、システムは、リネーム処理のためのカウンタを初期化し、新たな識別子を割り当てるためにこのカウンタを使用し、各割り当て後にカウンタをインクリメントする。このように、システムは、生存しているクラスタに新たな識別子を割り当てる。
【００７５】
そして、システムは、第２の段階において再度第１の配列を反復し、反復の第２の段階における第１の配列の各エントリを調べる（動作９６０）。この反復の第２の段階において、システムは、第１の配列のｋ番目のエントリがｊであるかを識別する（動作９６２）。ここで、ｊは、ｋと等しくない。そして、システムは、第２の配列の対応するｋ番目のエントリ（すなわち、動作９６４に対応する）を第１の配列の識別されたｊ番目のエントリを割り当てる（動作９６４）。反復の第２の段階後、システムは、エッジによって参照される頂点をリネームするように第２の配列を使用する（動作９６８）。
【００７６】
図１０は、本発明の実施形態にかかる関心情報検出システムの例を図示している。１つの実施形態において、コンピュータ及び通信システム１０００は、関心情報検出システムとして動作する。コンピュータ及び通信システム１０００は、プロセッサ１００２と、メモリ１００４と、記憶装置１００６とを含む。記憶装置１００６は、関心情報検出アプリケーション１００８と、アプリケーション１０１０及び１０１２などの他のアプリケーションとを記憶する。動作中、関心情報検出アプリケーション１００８は、記憶装置１００６からメモリ１００４にロードされた後、プロセッサ１００２によって実行される。プログラムの実行中に、プロセッサ１００２は、上述した機能を実行する。コンピュータ及び通信システム１０００は、任意のディスプレイ１０１４、キーボード１０１６及びポインティングデバイス１０１８に接続されている。いくつかの実施形態において、関心検出アプリケーション１００８は、複数のコンピュータ及び通信システムにおいて実行され、関心検出アプリケーション１００８に関連付けられた動作状態を記載したデータを交換することができる。
【００７７】
なお、上述したモジュールは、ハードウェア及びソフトウェアで実装されることができることに留意すべきである。１つの実施形態において、これらのモジュールは、コンピュータ及び通信システム１０００における１つ以上のプロセッサに接続されたメモリに記憶されたコンピュータ実行可能な命令で具現化されることができる。実行されると、これらの命令は、プロセッサ（複数可）に上述した機能を実行させる。
【００７８】
要約すると、本発明の実施形態は、関心情報を検出するためのコンピュータシステム及び方法を提供する。１つの実施形態において、コンピューティングシステムは、プロセッサと、コンピュータ読み取り可能な記憶媒体とを含む。コンピュータ読み取り可能な記憶媒体は、プロセッサによって実行されたとき、プロセッサに方法を実行させる命令を記憶する。本方法は、第１の頂点と第２の頂点との間のエッジに基づいて、グラフにおける第２の頂点に第１の頂点の頂点識別子を割り当てることを備える。頂点は、データセットにおける要素を表し、エッジは、頂点間の関係の種類及び強さを表す。本方法は、さらに、頂点識別子に関連付けられた頂点クラスタに第１の頂点及び第２の頂点を割り当ることと、頂点クラスタに関連付けられたモジュール方式に基づいて、頂点クラスタを収束することとを備える。頂点クラスタは、データセットにおける関心情報を表している。
【００７９】
本願明細書に記載された方法及びプロセスは、コンピュータ読み取り可能な持続性記憶媒体に記憶されることができるコード及び／又はデータとして具現化されることができる。コンピュータシステムは、コンピュータ読み取り可能な持続性記憶媒体に記憶されたコード及び／又はデータを読み取って実行すると、コンピュータシステムは、媒体内に記憶されたデータ構造及びコードとして具現化されて方法及びプロセスを実行する。
【００８０】
本願明細書に記載された方法及びプロセスは、ハードウェアモジュール又は装置によって実行される及び／又はそれに含まれることができる。これらのモジュール又は装置は、それらに限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定時間において特定のソフトウェアモジュール又はコードの一部を実行する専用又は共有プロセッサ、及び／又は、現在公知であるか又は今後開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動されると、それらは、それらの内部に含まれる方法及びプロセスを実行する。
【図１Ａ】
2015115075.tif 000003
【図１Ｂ】
2015115075.tif 000004
【図２】
2015115075.tif 000005
【図３】
2015115075.tif 000006
【図４】
2015115075.tif 000007
【図５Ａ】
2015115075.tif 000008
【図５Ｂ】
2015115075.tif 000009
【図５Ｃ】
2015115075.tif 000010
【図６Ａ】
2015115075.tif 000011
【図６Ｂ】
2015115075.tif 000012
【図７】
2015115075.tif 000013
【図８Ａ】
2015115075.tif 000014
【図８Ｂ】
2015115075.tif 000015
【図９Ａ】
2015115075.tif 000016
【図９Ｂ】
2015115075.tif 000017
【図１０】
2015115075.tif 000018