(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023138916
(43)【公開日】2023-10-03
(54)【発明の名称】コスト均等化スペクトルクラスタリング
(51)【国際特許分類】
G06F 16/906 20190101AFI20230926BHJP
G06F 18/2323 20230101ALI20230926BHJP
G06Q 50/00 20120101ALI20230926BHJP
G06F 16/28 20190101ALI20230926BHJP
G06N 20/00 20190101ALI20230926BHJP
【FI】
G06F16/906
G06F18/2323
G06Q50/00 300
G06F16/28
G06N20/00 160
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023040197
(22)【出願日】2023-03-15
(31)【優先権主張番号】17/699,399
(32)【優先日】2022-03-21
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】メータ・ヒマンシ
(72)【発明者】
【氏名】ウパデアーエ・サルバギア
【テーマコード(参考)】
5B175
5L049
【Fターム(参考)】
5B175FA03
5B175KA12
5L049CC11
(57)【要約】 (修正有)
【課題】過剰表現されたデータを考慮する、ノードのクラスタの生成を容易にし、クラスタの全て又はほとんどが同じ又は類似のコストを有する結果をもたらすコスト均等化スペクトルクラスタリングを実行する方法を提供する。
【解決手段】方法は、複数のノードを含むグラフデータセットを取得し、複数のノードの各ノードがソートされるべき2つ以上のクラスタを指定し、グラフデータセットの複数のノードの各ノード夫々を、夫々のクラスタ各々に夫々関連づけられている夫々のコストに従って、コストの全てが互いの閾値の範囲内であるように、2つ以上のクラスタの夫々に割り当てる。その夫々のクラスタに関連づけられた夫々のコストは、夫々のクラスタ内の夫々のノードを他の各々のクラスタ内のノードに接続する対外エッジの数に基づいて決定してもよい。方法はまた、複数のノードを、夫々のノードの各々が割り当てられている夫々のクラスタに関して分析する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数のノードを含むグラフデータセットを取得するステップと、
前記複数のノードの各ノードがソートされるべき2つ以上のクラスタを指定するステップと、
前記グラフデータセットの前記複数のノードの各それぞれのノードを、それぞれのクラスタの各々に各々関連づけられているそれぞれのコストに従って、前記コストの全てが互いの閾値の範囲内であるように、前記2つ以上のクラスタのそれぞれのクラスタに割り当てるステップであり、それぞれのクラスタに関連づけられたそれぞれのコストは、前記それぞれのクラスタ内のそれぞれのノードを各々の他のクラスタ内のノードに接続する対外エッジに基づいて決定される、ステップと、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析するステップと、
を含む方法。
【請求項2】
各それぞれのノードを、前記それぞれのクラスタの各々に関連づけられている前記それぞれのコストに従って、前記それぞれのクラスタに割り当てることは、
複数の固有ベクトルの各それぞれの固有ベクトルが複数の固有値のそれぞれの固有値に対応する、前記複数の固有値及び前記複数の固有ベクトルを識別することであり、前記複数の固有値及び前記複数の固有ベクトルは、前記複数のノードの各ノード間の接続性度合い及び隣接性度合いに基づいて識別される、ことと、
前記複数の固有値のそれぞれの固有値を、前記それぞれの固有値に対応する前記複数の固有ベクトルのそれぞれの固有ベクトルとペアリングして、複数の固有値・固有ベクトルのペアを形成することと、
それぞれのクラスタにソートされたそれぞれの固有値に基づいて決定される、各それぞれのクラスタに関連づけられたコストが、各々の他のクラスタに関連づけられたコストの閾値の範囲内であるように、前記固有値・固有ベクトルペアの各々を前記クラスタにソートすることと、
前記それぞれのクラスタに対応する前記それぞれの固有ベクトルを含むそれぞれの行列に対してk平均クラスタリングアルゴリズムを実行することと、
を含む、請求項1に記載の方法。
【請求項3】
前記識別された複数の固有値及び前記識別された複数の固有ベクトルに含まれる固有値の数及び固有ベクトルの数は、前記複数のノードがソートされるべきクラスタの数に対応する、請求項2に記載の方法。
【請求項4】
前記クラスタの各々に関連づけられた前記コストは、前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することにより決定される、請求項2に記載の方法。
【請求項5】
前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することは、レシオカットアルゴリズムに従って決定される、請求項4に記載の方法。
【請求項6】
前記レシオカットアルゴリズムは、前記クラスタの各々に関連づけられた前記固有ベクトルの行列の転置行列「Hj
T」と、ラプラシアン行列「L」と、前記クラスタの各々に関連づけられた前記固有ベクトルの行列「Hj」との積のトレース関数を計算することを含む、請求項5に記載の方法。
【請求項7】
前記グラフデータセットの前記複数のノードの前記それぞれのノードの各々は、ソーシャルメディアネットワークのそれぞれのメンバを記述し、
前記クラスタの各々は、前記ソーシャルメディアネットワークの前記メンバが含まれるコミュニティを表し、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析することは、前記ソーシャルメディアネットワーク内の1つ以上のコミュニティの検出を含む、
請求項1に記載の方法。
【請求項8】
システムに動作を実行させるコンピュータプログラムであって、前記動作は、
複数のノードを含むグラフデータセットを取得することと、
前記複数のノードの各ノードがソートされるべき2つ以上のクラスタを指定することと、
前記グラフデータセットの前記複数のノードの各それぞれのノードを、それぞれのクラスタの各々に各々関連づけられているそれぞれのコストに従って、前記コストの全てが互いの閾値の範囲内であるように、前記2つ以上のクラスタのそれぞれのクラスタに割り当てることであり、それぞれのクラスタに関連づけられたそれぞれのコストは、前記それぞれのクラスタ内のそれぞれのノードを各々の他のクラスタ内のノードに接続する対外エッジに基づいて決定される、ことと、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析することと、
を含む、コンピュータプログラム。
【請求項9】
各それぞれのノードを、前記それぞれのクラスタの各々に関連づけられている前記それぞれのコストに従って、前記それぞれのクラスタに割り当てることは、
複数の固有ベクトルの各それぞれの固有ベクトルが複数の固有値のそれぞれの固有値に対応する、前記複数の固有値及び前記複数の固有ベクトルを識別することであり、前記複数の固有値及び前記複数の固有ベクトルは、前記複数のノードの各ノード間の接続性度合い及び隣接性度合いに基づいて識別される、ことと、
前記複数の固有値のそれぞれの固有値を、前記それぞれの固有値に対応する前記複数の固有ベクトルのそれぞれの固有ベクトルとペアリングして、複数の固有値・固有ベクトルのペアを形成することと、
それぞれのクラスタにソートされたそれぞれの固有値に基づいて決定される、各それぞれのクラスタに関連づけられたコストが、各々の他のクラスタに関連づけられたコストの閾値の範囲内であるように、前記固有値・固有ベクトルペアの各々を前記クラスタにソートすることと、
前記それぞれのクラスタに対応する前記それぞれの固有ベクトルを含むそれぞれの行列に対してk平均クラスタリングアルゴリズムを実行することと、
を含む、請求項8に記載のコンピュータプログラム。
【請求項10】
前記識別された複数の固有値及び前記識別された複数の固有ベクトルに含まれる固有値の数及び固有ベクトルの数は、前記複数のノードがソートされるべきクラスタの数に対応する、請求項9に記載のコンピュータプログラム。
【請求項11】
前記クラスタの各々に関連づけられた前記コストは、前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することにより決定される、請求項9に記載のコンピュータプログラム。
【請求項12】
前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することは、レシオカットアルゴリズムに従って決定される、請求項11に記載のコンピュータプログラム。
【請求項13】
前記レシオカットアルゴリズムは、前記クラスタの各々に関連づけられた前記固有ベクトルの行列の転置行列「Hj
T」と、ラプラシアン行列「L」と、前記クラスタの各々に関連づけられた前記固有ベクトルの行列「Hj」との積のトレース関数を計算することを含む、請求項12に記載のコンピュータプログラム。
【請求項14】
前記グラフデータセットの前記複数のノードの前記それぞれのノードの各々は、ソーシャルメディアネットワークのそれぞれのメンバを記述し、
前記クラスタの各々は、前記ソーシャルメディアネットワークの前記メンバが含まれるコミュニティを表し、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析することは、前記ソーシャルメディアネットワーク内の1つ以上のコミュニティの検出を含む、
請求項8に記載のコンピュータプログラム。
【請求項15】
システムであって、
1つ以上のプロセッサと、
実行されることに応答して当該システムに動作を実行させる命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体と、を含み、
前記動作は、
複数のノードを含むグラフデータセットを取得することと、
前記複数のノードの各ノードがソートされるべき2つ以上のクラスタを指定することと、
前記グラフデータセットの前記複数のノードの各それぞれのノードを、それぞれのクラスタの各々に各々関連づけられているそれぞれのコストに従って、前記コストの全てが互いの閾値の範囲内であるように、前記2つ以上のクラスタのそれぞれのクラスタに割り当てることであり、それぞれのクラスタに関連づけられたそれぞれのコストは、前記それぞれのクラスタ内のそれぞれのノードを各々の他のクラスタ内のノードに接続する対外エッジに基づいて決定される、ことと、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析することと、
を含む、システム。
【請求項16】
各それぞれのノードを、前記それぞれのクラスタの各々に関連づけられている前記それぞれのコストに従って、前記それぞれのクラスタに割り当てることは、
複数の固有ベクトルの各それぞれの固有ベクトルが複数の固有値のそれぞれの固有値に対応する、前記複数の固有値及び前記複数の固有ベクトルを識別することであり、前記複数の固有値及び前記複数の固有ベクトルは、前記複数のノードの各ノード間の接続性度合い及び隣接性度合いに基づいて識別される、ことと、
前記複数の固有値のそれぞれの固有値を、前記それぞれの固有値に対応する前記複数の固有ベクトルのそれぞれの固有ベクトルとペアリングして、複数の固有値・固有ベクトルのペアを形成することと、
それぞれのクラスタにソートされたそれぞれの固有値に基づいて決定される、各それぞれのクラスタに関連づけられたコストが、各々の他のクラスタに関連づけられたコストの閾値の範囲内であるように、前記固有値・固有ベクトルペアの各々を前記クラスタにソートすることと、
前記それぞれのクラスタに対応する前記それぞれの固有ベクトルを含むそれぞれの行列に対してk平均クラスタリングアルゴリズムを実行することと、
を含む、請求項15に記載のシステム。
【請求項17】
前記クラスタの各々に関連づけられた前記コストは、前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することにより決定される、請求項16に記載のシステム。
【請求項18】
前記クラスタの各々に関連づけられた前記コストは、前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することにより決定される、請求項16に記載のシステム。
【請求項19】
前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することは、レシオカットアルゴリズムに従って決定される、請求項18に記載のシステム。
【請求項20】
前記レシオカットアルゴリズムは、前記クラスタの各々に関連づけられた前記固有ベクトルの行列の転置行列「Hj
T」と、ラプラシアン行列「L」と、前記クラスタの各々に関連づけられた前記固有ベクトルの行列「Hj」との積のトレース関数を計算することを含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にコスト均等化スペクトルクラスタリングに関する。
【背景技術】
【0002】
データ点は、グラフとして参照されるデータセットに含まれる複数のノードとして提示されることがある。グラフデータセットに含まれるノードは、ノード間の類似度及び差に従って一緒にグループ化されることがある。機械学習モデルは、所与のデータ分析タスク又は目標に従ってノードを1つ以上のグループに分類するように訓練される場合がある。
【0003】
本開示で請求される対象事項は、いずれかの欠点を解決し又は上記のような環境でのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示で説明されるいくつかの実施形態が実施され得る一例示的な技術分野を示すために単に提供されている。
【発明の概要】
【0004】
一実施形態の態様によれば、方法は、複数のノードを含むグラフデータセットを取得するステップを含むことができる。この方法は、複数のノードの各ノードがソートされるべき2つ以上のクラスタを指定するステップを含むことができる。この方法は、さらに、グラフデータセットの複数のノードの各それぞれのノードを、それぞれのクラスタの各々に各々関連づけられているそれぞれのコストに従って、コストの全てが互いの閾値の範囲内であるように、2つ以上のクラスタのそれぞれのクラスタに割り当てるステップを含むことができる。そのそれぞれのクラスタに関連づけられたそれぞれのコストは、それぞれのクラスタ内のそれぞれのノードを各々の他のクラスタ内のノードに接続する対外エッジの数に基づいて決定されてもよい。この方法は、さらに、複数のノードを、それぞれのノードの各々が割り当てられているそれぞれのクラスタに関して分析するステップを含むことができる。
【0005】
実施形態の目的及び利点は、少なくとも特許請求の範囲で特に指し示される要素、特徴、及び組み合わせにより実現され、達成される。前述の一般的な説明及び以下の詳細な説明の双方が説明的であり、請求される発明を制限するものではないことを理解すべきである。
【図面の簡単な説明】
【0006】
例示的な実施形態について、添付の図面を通じてさらなる特定性及び詳細とともに記載し、説明する。
【
図1】本開示の少なくとも1つの実施形態による、コスト均等化スペクトルクラスタリングの例示的なシステムを表す図である。
【
図2】本開示の少なくとも1つの実施形態による、コスト均等化スペクトルクラスタリングを使用してグラフデータセットのノードがクラスタリングされているグラフデータセットの例を示す。
【
図3】本開示の少なくとも1つの実施形態による、コスト均等化スペクトルクラスタリングを実行する例示的な方法のフローチャートである。
【
図4】本開示の少なくとも1つの実施形態による、グラフデータセットのノードを1つ以上のクラスタに割り当てる例示的な方法のフローチャートである。
【
図5】一例示的なコンピューティングシステムである。
【発明を実施するための形態】
【0007】
教師なし学習モデルは、所与のデータセットのデータ点がソートされ得る複数のクラスタを識別し、識別されたクラスタにデータ点を入れる(bucket)ために、訓練され、構成されることがある。このようなデータカテゴライズ処理は、データ点間の関係及び類似度の識別を容易にすることができる。例えば、遺伝子配列に関連するデータ点は、遺伝子発現の類似度に基づいてクラスタリングされる場合がある。別の例として、顧客プロフィールに関連するデータ点は、マーケティング選好間の類似度に基づいてクラスタリングされる場合がある。データ点は、リンケージベースのクラスタリングアルゴリズム(データ点間の距離の分析)、コスト最小化クラスタリングアルゴリズム(例えば、k平均(k-means)クラスタリング)、又は類似度ベースのスペクトルクラスタリング(spectral clustering)アルゴリズムなどの様々なクラスタリング方法を使用してソートされることがある。
【0008】
しかしながら、既存のクラスタリングアルゴリズムに従ってデータ点をソートすると、クラスタリングがターゲット結果を正確に提供しない、意図しない結果につながることがある。例えば、そのようなクラスタリングアルゴリズムは、特定のタイプのデータを、異なるグループの人々を公平に表現しない方法でソートする場合がある。例えば、既存のクラスタリングアルゴリズムは、1つ以上のソート基準に従ってデータ点を最適にクラスタリングすることに焦点を合わせている場合があるため、クラスタリングされたデータ点のグループ間に、不均衡が存在することがある。例えば、所与のデータセットのデータ点の大部分が、第1のクラスタにグループ化される場合があり、所与のデータセットの残りのデータ点が、第2のクラスタ及び第3のクラスタの間でグループ化される場合がある。これら及び他の例において、第1のクラスタは、データ点がソートされるアルゴリズムに基づいて不釣り合いに表現される可能性があり、所与のデータセットのクラスタリングされたデータ点に基づいて訓練された学習モデル(例えば、機械学習モデル)は、第1のクラスタに向かって不釣り合いなバイアスを学習する可能性がある。別の例として、所与のグラフデータセットのいくつかのデータ点が、第1のクラスタにおいてグラフの中心に向かってクラスタリングされる場合があり、一方、他のクラスタは、グラフのエッジの周りに分散される。これら及び他の例において、第1のクラスタは、グラフのエッジの周りに分散された他のクラスタと比較して、不釣り合いにより低いコスト(グラフデータセットの中心への距離として測定される)を有するものとして表現される可能性がある。
【0009】
結果的に、過度に表現されたデータを考慮するクラスタリング処理は、グループ化されたデータ点の1つ以上の特性の最適化に焦点を合わせた既存のクラスタリング処理よりも、より現実的及び/又は実際的なクラスタリング結果を提供する可能性がある。さらに又は代わりに、そのようなクラスタリング処理は、既存のクラスタリング処理を設計及び/又は実装する際の人間のオペレータのバイアスの影響を緩和することにより、既存のクラスタリング処理を改善する可能性がある。したがって、改善されたクラスタリング処理は、少数派グループに対して不公平である可能性があるモデルなどのモデルにおけるバイアスを低減させるのに役立つ可能性のある、より良い訓練データを生成することにより、機械学習モデルの訓練を改善する可能性がある。
【0010】
本開示は、とりわけ、グラフデータセットのノードのスペクトルクラスタリングに関する。いくつかの実施形態において、本開示の少なくとも1つの実施形態によるグラフデータセットのスペクトルクラスタリングは、過剰表現されたデータを考慮する、ノードのクラスタの生成を容易にすることができる。これら及び他の実施形態において、クラスタの各々に関連づけられたコストは、クラスタの各々が過剰表現されたデータをどれほど良く考慮しているかを判断するために定量化することができ、本開示によるグラフデータセットのスペクトルクラスタリングは、クラスタの全て又はほとんどが同じ又は類似のコストを有する結果をもたらすことができる。いくつかの実施形態において、コストは、所与のクラスタ内のノードを他のクラスタに含まれるノードと接続する対外エッジ(external edges)の数に基づいて決定されてもよい。そのため、本開示によるスペクトルクラスタリングは、上述した既存のクラスタリング方法に対する改善を提供し得る。
【0011】
本開示の実施形態を、添付の図を参照して説明する。
【0012】
図1は、本開示の少なくとも1つの実施形態による、スペクトルクラスタリングの例示的なシステム100を表す図である。システム100は、グラフデータセット110とクラスタの数120とを取得するように構成されたクラスタリングモジュール130を含むことができる。グラフデータセット110は、グラフデータセット110内のノードとしてデータ点を表すことができ、グラフデータセット110内のノードの各ペアは、ペアの2つのノード間の接続(「エッジ」と呼ばれる)を含むことができる。そのため、グラフデータセット110は、データ点のセットと、データ点間の関係を表すことができる。
【0013】
グラフデータセット110は、データ点の関係ビューを含むことができ、これは、データ点及び/又はデータ点間の関係を1つ以上の行列としてモデル化することによってなどで、データ点及び/又は全体的なデータセット自体の定量的分析を容易にすることができる。例えば、クラスタリングモジュール130は、所与のノードに接続している他のノードの数を示す整数要素を含む接続性行列として表されたデータ点間の接続性度合い(degree of connectivity)(すなわち、所与のノードがいくつの他のノードに接続されているか)を決定することができる。別の例として、クラスタリングモジュール130は、所与のノードがどの他のノードに接続されているかを示す二値(binary)要素を含む隣接性行列として表されたデータ点間の隣接性度合い(degree of adjacency)(すなわち、エッジにより、どのデータ点がどの他のデータ点に接続されているか)を決定することができる。そのため、グラフデータセット110は、データ点のネットワーク化された表現を提供することができ、クラスタリングモジュール130などの1つ以上のコンピューティングシステムは、線形代数及び/又は行列に関連する他の定量的演算に基づいて、グラフデータセット110に対して1つ以上のデータ分析アプローチを実行するように構成されてもよい。
【0014】
いくつかの実施形態において、クラスタリングモジュール130は、クラスタリングされたノードを含む各クラスタ140が、クラスタ140の各々から伸びる対外エッジの数に基づいて同じ又はほぼ同じコストを有するように、クラスタの数120に基づいてグラフデータセット110のノードをクラスタリングする方法を決定することができる。換言すれば、クラスタリングモジュール130は、ノードがクラスタの数120に対応する数のクラスタにグループ化されるように、各それぞれのノードをそれぞれのクラスタ140にグループ化することができる。これら及び他の実施形態において、グラフデータセット110のノードは、グラフデータセット110のノードの各々がクラスタ140に割り当てられた後、クラスタ140の各々がほぼ同じコストを含むように、クラスタ140にグループ化することができる。各クラスタ140が同じ又は類似のコストを含むように、グラフデータセット110のノードをクラスタリングすることにより、クラスタリングモジュール130は、他のスペクトルクラスタリング方法が対処しないであろう過度に表現されたデータ点を考慮することができる。さらに、上述したように、このような方法でのクラスタリングは、過小表現されたグループ(例えば、少数派グループ)に関連づけられたデータをより良く表すことにより、よりコスト均等化された(cost equalized)クラスタリングを結果としてもたらす可能性がある。
【0015】
いくつかの実施形態において、クラスタの数120は、実行されるデータ分析のパラメータに基づいてデータを分析するユーザにより設定されてもよい。例えば、ユーザは、ニューヨーク市に関連する所与のグラフデータセットのノードが、クラスタの各々が市内の区を表す5つのクラスタに分類され得ることを、指定することができる。
【0016】
さらに又は代わりに、クラスタの数120は、機械学習モデル又は任意の他のデータ分析ソフトウェアにより自動的に設定され、又はユーザに推奨されてもよい。機械学習モデルは、グラフデータセット110に関連づけられたデータ分析タスクを分析し、ユーザがノードをクラスタリングしたい可能性のある1つ以上の方法と、ノードをクラスタリングする各方法に対応するクラスタの数120を提案することができる。例えば、機械学習モデルは、ソーシャルメディアネットワークに関連するコミュニティ検出分析のためのクラスタの数120を提案することができる。ソーシャルメディアネットワークは、グラフデータセット110の一例を表すことができ、ソーシャルメディアネットワークの各ユーザは、グラフデータセット110に含まれるノードとして表されてもよい。友人である、メッセージを共有している、又は所与のユーザに関連づけられたソーシャルメディアコンテンツと対話しているなどのユーザ間の関係は、ノード間のエッジとして表されてもよい。機械学習モデルは、民族性(例えば、各クラスタが異なる民族性を表す、x個のクラスタ)、性別(例えば、各クラスタが異なる性別を表す、x個のクラスタ)、宗教的所属(例えば、各クラスタが異なる宗教的所属を表す、x個のクラスタ)、地理的近隣(例えば、各クラスタが所与の都市の異なる近隣を表す、x個のクラスタ)、又はソーシャルメディアネットワークに含まれるユーザの任意の他の特性に対応するクラスタの数120を提案することができる。
【0017】
いくつかの実施形態において、クラスタリングモジュール130は、グラフデータセット110に含まれるノード間の接続性度合いを表す接続性行列と、グラフデータセット110に含まれるノード間の隣接性度合いを表す隣接性行列に基づいて、ラプラシアン行列を生成することができる。ラプラシアン行列のスペクトル分解に基づいて(例えば、以下でさらに詳細に説明するトレース関数(trace function)に従って)、1つ以上の固有値及び固有ベクトルを算出することができる。いくつかの実施形態において、クラスタリングモジュール130は、グラフデータセット110のノードの各々を、クラスタの数120、固有値、及び固有ベクトルに従って識別された2つ以上のクラスタに基づいてそれぞれのクラスタにソートすることにより、クラスタ140を生成することができる。
【0018】
クラスタリングモジュール130は、コンピューティングシステムが1つ以上の動作を実行することを可能にするように構成されたコード及びルーチンを含むことができる。さらに又は代わりに、クラスタリングモジュール130は、プロセッサ、マイクロプロセッサ(例えば、1つ以上の動作を実行し又は該動作の実行を制御するため)、フィールドプログラマブルゲートアレイ(FPGA)、又は特定用途向け集積回路(ASIC)を含むハードウェアを使用して実装されてもよい。いくつかの他の例において、クラスタリングモジュール130は、ハードウェアとソフトウェアの組み合わせを使用して実装されてもよい。本開示において、クラスタリングモジュール130により実行されるものとして記載される動作は、クラスタリングモジュール130が対応するシステムに実行するよう指示し得る動作を含むことができる。いくつかの実施形態において、クラスタリングモジュール130は、少なくとも
図3の方法300及び
図4の方法400に関連して以下でさらに詳細に説明するように、グラフデータセット110、固有値、固有ベクトル、クラスタ、及び/又はラプラシアン行列に関して一連の動作を実行するように構成されてもよい。
【0019】
いくつかの実施形態において、所与のクラスタ140に含まれる対外エッジに関連づけられたコストは、式(1)に従って数学的に測定することができる。
【数1】
式(1)で算出されるレシオカット量(ratio cut quantity)は、所与のグラフデータセットP
jについての、所与のクラスタC
iから他のクラスタに渡る対外エッジの数及び/又は重み、Cut(C
i,V\C
i)の合計を表すことができる。いくつかの実施形態において、クラスタ140の全ての間で同じ又は類似のコストを維持することは、クラスタリング処理の社会的公平性を表すことができ、任意の特定のノードの過剰表現を回避することにより、グラフデータセット110のデータ点の各々は、全体的により均等に表現され得る。これら及び他の実施形態において、クラスタ140の各々のレシオカット結果の総和が、以下の関係に従って、所与のグラフデータセットのレシオカット結果に等しい場合がある。
【数2】
【0020】
いくつかの実施形態において、グラフデータセット110のノードをクラスタ140に編成する方法を決定することは、グラフデータセット110をグラフデータセット110に含まれるノード間の類似度の観点で表すことにより、容易にされる場合がある。上述したように、例えば、ノードの各々の間の隣接性度合い及び/又は接続性度合いは、それぞれ、隣接性行列及び/又は接続性行列に従って表すことができる。さらに又は代わりに、ノード間の類似度が、ラプラシアン行列などのグラフデータセット110の行列表現としてモデル化されてもよい。
【0021】
いくつかの実施形態において、レシオカット量を決定するために、ラプラシアン行列のスペクトル分解を使用することができる。これら及び他の実施形態において、式(2)に関連して説明されたレシオカット量は、以下の式に従ってラプラシアン行列に関連してもよい。
【数3】
式(3)に示すように、レシオカット量は、所与のクラスタ内の1つ以上のノードのメンバシップを示す行列H
j(「メンバシップ行列」)の転置行列と、ラプラシアン行列と、メンバシップ行列との積として算出することができる。
【0022】
メンバシップ行列のエントリは、以下のように表すことができる。
【数4】
式(4)に示すように、メンバシップ行列H
jは、nがグラフデータセット110に含まれるノードの数を表し、kがクラスタの数を表す、n×k行列でもよい。所与のクラスタlに属する所与のノードiについて(例えば、i∈P
j∩C
l)、メンバシップ行列のエントリには、
【数5】
の重みを割り当てることができる。メンバシップ行列のエントリには、さもなければ、0の値を割り当てることができる。メンバシップ行列が、式(4)で定義されるエントリを含むと仮定すると、レシオカット量は、組み合わせ最適化問題として計算することができる。
【0023】
レシオカット量について解くことは、式(3)及び(4)に以下の恒等式のセットを適用することにより、組み合わせ最適化問題からラプラシアン行列のスペクトル分解に簡素化することができる。
【数6】
式(5)~(7)で定義された恒等式のセットを式(3)に適用することは、組み合わせ最適化問題をラプラシアン行列のトレースについて解くことに簡素化し、これはその結果、所与のクラスタ140に関連づけられたコストを決定するために、ラプラシアン行列をスペクトル分解することと同等である。
【0024】
ラプラシアン行列のスペクトル分解に基づいて、ラプラシアン行列は、その固有値及び固有ベクトルの観点で表すことができる。いくつかの実施形態において、ラプラシアン行列に関連づけられた複数の固有値及びそれらの対応する固有ベクトルを選択することができ、ユーザは、グラフデータセット110のノードがカテゴライズされ得るクラスタの数120を識別することができる。各固有値・固有ベクトルペア(eigenvalue-eigenvector pair)は、各クラスタ140内の固有値の合計が同じか又は所与の許容範囲内であるように、クラスタ140に分離することができる。これら及び他の実施形態において、クラスタ140の各々に分離された固有値に対応する固有ベクトルは、それぞれのクラスタ140に対するメンバシップ行列の列として扱うことができる。さらに、各それぞれのクラスタ140に対する固有値の合計は、式(3)で定義されたように、及び式(5)~(7)の恒等式に基づいて、トレース関数及びレシオカット量に対応することができる。
【0025】
いくつかの実施形態において、グラフデータセット110の各ノードをそれぞれのクラスタに関連づけるために、メンバシップ行列Hにクラスタリングアルゴリズムを適用することができる。例えば、k平均クラスタリングアルゴリズム(又は、任意の他のベクトル量子化クラスタリングアルゴリズム)をグラフデータセット110に適用して、それぞれのクラスタ140の各々の中心を識別し、最も近いクラスタ中心に対してノードをソートしてもよい。
【0026】
例えば、
図2は、本開示の少なくとも1つの実施形態による、グラフデータセットのノード220がコスト均等化スペクトルクラスタリングを使用して様々なクラスタ210a~210kにクラスタリングされている、クラスタリングされたグラフデータセット200の例を示す。クラスタの数をユーザにより決定することができ、ノード220をクラスタ210の各々にソートすることができる。クラスタ210にソートされる前に、ノード220の各々は、ノード220の各々を他のノードに接続する1つ以上のエッジ230を含むことができる。ノード220をクラスタ210にソートした後、ノード220間のエッジ230はソートする前と同じである場合があり、そのため、所与のクラスタの内部のエッジ230が形成される可能性があり、かつ/あるいは、ノード220の各々を他のクラスタ内のノードに接続する1つ以上の対外エッジ235が形成される可能性もある。例えば、第1のクラスタ210aに含まれる所与のノードは、第1のクラスタ210a内の他のノードに接続する複数のエッジ230を含むことがある。
【0027】
さらに又は代わりに、この所与のノードは、第2のクラスタ210b、第3のクラスタ210c、第4のクラスタ210d、及び/又はグラフデータセット200で識別された任意の他のクラスタ内のノードに接続する1つ以上の対外エッジ235を含むことがある。クラスタリングされたグラフデータセット200に示すように、クラスタ210の各々は、クラスタ210の各々に関連づけられたコストが同じか又は所定の許容限界の範囲内(例えば、絶対閾値の範囲内、クラスタの最高コスト又は最低コストの閾値パーセンテージ値の範囲内、又は所定のコスト範囲内)であるように、ほぼ同数の対外エッジ235を含む。
【0028】
図1の説明に戻り、本開示に従ってクラスタ140にソートされたグラフデータセット110のノードは、データ分析処理の入力として使用することができる。例えば、所与のグラフデータセットは、ソーシャルメディアネットワークの登録ユーザ間の関係を記述することができる。所与のグラフデータセットのノードの各々は、ソーシャルメディアネットワークのそれぞれのユーザを表すことができ、ノード間のエッジは、2以上の登録ユーザ間の接続を表すことができる。分析するユーザにより設定された1つ以上のクラスタは、ソーシャルメディアネットワークに含まれるコミュニティを表すことができ、本開示に従ってグラフデータセット110のノードをクラスタリングすることは、任意の1つ以上の所与のコミュニティを過度に表さないことにより(すなわち、クラスタ140のいずれか1つのクラスタの過剰表現を防止する)、よりコスト均等化されたコミュニティ検出を容易にすることができる。特に、クラスタ140におけるノードのコスト均等化された分布は、隔離コミュニティ及び/又はより少ないメンバを含むコミュニティの検出を改善する場合がある。
【0029】
さらに又は代わりに、本開示に従ってクラスタリングされたグラフデータセット110は、機械学習モデルを訓練するためのデータセットに含まれてもよい。本開示に従うグラフデータセット110のノードのクラスタリングは、他の類似度関数ベースのクラスタリングモデルよりコスト均等化されるため、クラスタリングされたグラフデータセット110を使用して訓練された機械学習モデルは、コスト均等化データ分析方法を適用するために訓練され得る。
【0030】
本開示の範囲から逸脱することなく、システム100に対して修正、追加、又は省略がなされ得る。例えば、記載される方法での異なる要素の指定は、本明細書に記載される概念を説明するのに役立つことを意図しており、制限するものではない。例えば、いくつかの実施形態において、クラスタリングモジュール130は、本明細書に記載される概念を説明するのに役立つように記載された特定の方法で描写されているが、そのような描写は制限することを意図していない。さらに、システム100は、任意の数の他の要素を含んでもよく、あるいは記載されるもの以外のシステム又は文脈内で実施されてもよい。
【0031】
図3は、本開示の少なくとも1つの実施形態による、コスト均等化スペクトルクラスタリングを実行する例示的な方法300のフローチャートである。方法300は、任意の適切なシステム、装置、又はデバイスにより実行することができる。例えば、クラスタリングモジュール130が、方法300に関連づけられた1つ以上の動作を実行してもよい。離散的なブロックで示されているが、方法300のブロックの1つ以上に関連づけられたステップ及び動作は、特定の実装に応じてさらなるブロックに分割されてもよく、より少ないブロックに結合されてもよく、あるいは削除されてもよい。
【0032】
方法300はブロック310で開始でき、ブロック310において、複数のノードを含むグラフデータセットが取得される。グラフデータセットのノードの各々は、データ点を表すことができ、ノードを接続するエッジは、グラフデータセットに含まれる2つ以上のデータ点間の関係を表すことができる。
【0033】
ブロック320において、グラフデータセットのノードがソートされ得るクラスタの数が指定され得る。いくつかの実施形態において、クラスタの数は、
図1に関連して説明されているように、ユーザ及び/又はデータ分析ソフトウェア(例えば、機械学習モデル)により設定することができる。
【0034】
ブロック330において、ノードの各々がそれぞれのクラスタに割り当てられ得る。各それぞれのノードは、それぞれのクラスタの各々に各々関連づけられているそれぞれのコストに従って、コストの全てが互いの閾値の範囲内であるように、それぞれのクラスタに割り当てることができる。いくつかの実施形態において、そのそれぞれのクラスタに関連づけられたそれぞれのコストは、上述したように、それぞれのクラスタ内のそれぞれのノードを各々の他のクラスタ内のノードに接続する対外エッジに基づいて決定されてもよい。いくつかの実施形態において、それぞれのクラスタの各々に関連づけられたコストに従って、ノードをそれらのそれぞれのクラスタに割り当てることは、
図1に関連して説明されているように、及び
図4に関して以下でさらに詳細に説明するように、グラフデータセットに対応するラプラシアン行列、固有値、及び固有ベクトルを計算することと、k平均クラスタリングアルゴリズムを実行することにより、容易にされ得る。
【0035】
ブロック340において、グラフデータセットのノード、クラスタ、及び/又はグラフデータセットが、それぞれのクラスタに割り当てられたノードに関して分析され得る。いくつかの実施形態において、ノード、クラスタ、及び/又はグラフデータセットの分析は、
図1に関連して説明されたコミュニティ検出などのデータ分析タスクを含んでもよい。さらに又は代わりに、データ分析タスクは、グラフデータセットの1つ以上のサブセットを過度に表現するのを回避する方法でクラスタリングされたノードに基づいて、機械学習モデルなどの自動化データ分析モデルを訓練することを含んでもよい。
【0036】
本開示の範囲から逸脱することなく、方法300に対して修正、追加、又は省略がなされ得る。例えば、記載される方法での異なる要素の指定は、本明細書に記載される概念を説明するのに役立つことを意図しており、制限するものではない。さらに、方法300は、任意の数の他の要素を含んでもよく、あるいは記載されるもの以外のシステム又は文脈内で実施されてもよい。
【0037】
図4は、本開示の少なくとも1つの実施形態による、グラフデータセットのノードを1つ以上のクラスタに割り当てる例示的な方法400のフローチャートである。方法400は、任意の適切なシステム、装置、又はデバイスにより実行することができる。例えば、クラスタリングモジュール130が、方法400に関連づけられた1つ以上の動作を実行してもよい。いくつかの実施形態において、方法400の1つ以上の動作は、方法300のブロック330の一部として実行することができる。離散的なブロックで示されているが、方法400のブロックの1つ以上に関連づけられたステップ及び動作は、特定の実装に応じてさらなるブロックに分割されてもよく、より少ないブロックに結合されてもよく、あるいは削除されてもよい。
【0038】
方法400はブロック410で開始でき、ブロック410において、グラフデータセットに関連する1つ以上の固有値及び1つ以上の固有ベクトルが識別され得る。いくつかの実施形態において、グラフデータセットは、ノードの1つ以上の側面を記述する1つ以上の行列としてモデル化することができる。例えば、隣接性行列は、ノード間の隣接性度合いを表すことができ、接続性行列は、ノードの対応するエッジを介したノード間の接続を表すことができる。別の例として、ラプラシアン行列は、グラフデータセットの特徴を表すことができる。行列のスペクトル分解に基づいて、固有値及び固有ベクトルを識別することができる。例えば、
図1に関連して説明されているラプラシアン行列のスペクトル分解は、ラプラシアン行列及びグラフデータセットに対応する複数の固有値及び固有ベクトルを生成することができる。
【0039】
ブロック420において、各それぞれの固有値が、固有値・固有ベクトルペアを形成するために、それぞれの固有ベクトルとペアリングされ得る。ブロック410で(例えば、ラプラシアン行列のスペクトル分解を介して)識別された各固有値は、関連づけられた固有ベクトルに対応することができる。いくつかの実施形態において、固有値をそれらの対応する固有ベクトルとペアリングすることは、上述したように、対応する固有値及び固有ベクトルを同じクラスタにソートすることを容易にし得る。
【0040】
ブロック430において、固有値・固有ベクトルペアの各々がクラスタにソートされ得る。いくつかの実施形態において、固有値・固有ベクトルペアをクラスタにソートすることは、
図1に関連して説明されているように生じてもよい。さらに又は代わりに、クラスタにソートされる固有値・固有ベクトルペアの数は、方法300のブロック320で指定されるクラスタの数に比例してもよい。例えば、ブロック430でソートするために選択される固有値・固有ベクトルペアの数は、方法300のブロック320で指定されるクラスタの数に等しくてもよく、該クラスタの数の2倍、3倍、4倍、又は任意の他のスカラー倍でもよい。
【0041】
ブロック440において、それぞれのクラスタに対応するそれぞれの固有ベクトルを含むそれぞれの行列に対して、k平均クラスタリングアルゴリズムが実行され得る。いくつかの実施形態において、ブロック440でk平均クラスタリングアルゴリズムを実行することは、方法300のブロック330でノードの各々をそれぞれのクラスタに割り当てる一方法でもよい。
【0042】
本開示の範囲から逸脱することなく、方法400に対して修正、追加、又は省略がなされ得る。例えば、いくつかの実施形態において、方法400の1つ以上の動作は、方法300のブロック320でノードの各々がソートされるべきクラスタを指定した後に実行することができる。さらに又は代わりに、方法400の1つ以上の動作は、グラフデータセットの各それぞれのノードをそれぞれのクラスタに割り当てる前に実行することができる。さらに、方法400は、任意の数の他の要素を含んでもよく、あるいは記載されるもの以外のシステム又は文脈内で実施されてもよい。
【0043】
図5は、本開示に記載される少なくとも1つの実施形態による、例示的なコンピューティングシステム500を示す。コンピューティングシステム500は、プロセッサ510、メモリ520、データストレージ530、及び/又は通信ユニット540を含むことができ、これらは全て、通信上結合することができる。クラスタリングモジュール130などの、
図1のシステム100のいずれか又は全てを、コンピューティングシステム500と整合するコンピューティングシステムとして実装することができる。
【0044】
一般に、プロセッサ510は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用のコンピュータ、コンピューティングエンティティ、又は処理デバイスを含むことができ、任意の適用可能なコンピュータ読取可能記憶媒体に記憶された命令を実行するように構成することができる。例えば、プロセッサ510は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラム命令を解釈及び/又は実行し、及び/又はデータを処理するように構成された任意の他のデジタル又はアナログ回路を含んでもよい。
【0045】
図5では単一のプロセッサとして示されているが、プロセッサ510は、本開示に記載される任意の数の動作を個々に又は集合的に実行するように構成された任意の数のネットワーク又は物理的位置にわたり分散された任意の数のプロセッサを含んでもよいことが理解される。いくつかの実施形態において、プロセッサ510は、メモリ520、データストレージ530、又はメモリ520及びデータストレージ530に記憶されたプログラム命令を解釈及び/又は実行し、及び/又はデータを処理することができる。いくつかの実施形態において、プロセッサ510は、データストレージ530からプログラム命令をフェッチし、プログラム命令をメモリ520にロードすることができる。
【0046】
プログラム命令がメモリ520にロードされた後、プロセッサ510は、コンピューティングシステム500に
図3の方法300及び/又は
図4の方法400の動作を実行させる命令などのプログラム命令を実行することができる。例えば、プロセッサ510による命令の実行に応答して、システム500は、グラフデータセットを取得し、グラフデータセットのノードがソートされ得る2つ以上のクラスタを指定し、各ノードをそれぞれのクラスタに割り当て、及び/又は、それぞれのノードの各々が割り当てられているそれぞれのクラスタに関してノード、クラスタ、及び/又はグラフデータセットを分析することができる。別の例として、システム500は、プロセッサ510による命令の実行に応答して、グラフデータセットの行列表現に対応する固有値及び固有ベクトルを識別し、固有値・固有ベクトルペアを識別し、固有値・固有ベクトルペアをクラスタの各々にソートし、及び/又は、それぞれのクラスタに対応するそれぞれの固有ベクトルを含むそれぞれの行列に対してk平均クラスタリングアルゴリズムを実行することができる。
【0047】
メモリ520及びデータストレージ530は、コンピュータ実行可能命令又はデータ構造を記憶させたコンピュータ読取可能記憶媒体又は1つ以上のコンピュータ読取可能記憶媒体を含むことができる。このようなコンピュータ読取可能記憶媒体は、プロセッサ510などの汎用又は専用コンピュータによりアクセスできる任意の利用可能な媒体でもよい。例えば、メモリ520及び/又はデータストレージ530は、グラフデータセット110のノード、ユーザにより決定されたクラスタ、及び/又はグラフデータセット110のクラスタリングされたノードを記憶することができる。いくつかの実施形態において、コンピューティングシステム500は、メモリ520とデータストレージ530のいずれかを含んでもよく、あるいは含まなくてもよい。
【0048】
限定でなく例として、そのようなコンピュータ読取可能記憶媒体は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、コンパクトディスク読取専用メモリ(CD-ROM)又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、又は、コンピュータ実行可能命令又はデータ構造の形で所望のプログラムコードを記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、非一時的コンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能記憶媒体の範囲に含まれてもよい。コンピュータ実行可能命令は、例えば、プロセッサ510に特定の動作又は動作のグループを実行させるように構成された命令及びデータを含んでもよい。
【0049】
通信ユニット540は、ネットワークを介して情報を送信又は受信するように構成された任意のコンポーネント、デバイス、システム、又はこれらの組み合わせを含むことができる。いくつかの実施形態において、通信ユニット540は、他の場所、同じ場所における他のデバイス、又はさらには同じシステム内の他のコンポーネントと通信することができる。例えば、通信ユニット540は、モデム、ネットワークカード(無線又は有線)、光通信デバイス、赤外線通信デバイス、無線通信デバイス(アンテナなど)、及び/又はチップセット(Bluetooth(登録商標)デバイス、802.6デバイス(例えば、メトロポリタンエリアネットワーク(MAN))、WiFiデバイス、WiMaxデバイス、セルラー通信設備など)などを含んでもよい。通信ユニット540は、ネットワーク及び/又は本開示に記載される任意の他のデバイス又はシステムとの間でデータを交換することを可能にし得る。例えば、通信ユニット540は、システム500がコンピューティングデバイス及び/又は他のネットワークなどの他のシステムと通信できるようにしてもよい。
【0050】
当業者は、本開示を検討した後、本開示の範囲から逸脱することなくシステム500に対して修正、追加、又は省略がなされ得ることを認識し得る。例えば、システム500は、明示的に例示及び記載されているものより多くの又は少ないコンポーネントを含んでもよい。
【0051】
前述の開示は、本開示を開示された正確な形態又は特定の使用分野に限定することを意図するものではない。そのため、本開示に対する様々な代替的な実施形態及び/又は修正が、本明細書に明示的に記載されているか又は暗に示されているかに関わらず、本開示に照らして可能であることが考えられる。このように本開示の実施形態を記載したので、本開示の範囲から逸脱することなく形態及び詳細において変更がなされ得ることが認識され得る。したがって、本開示は特許請求の範囲によってのみ制限される。
【0052】
いくつかの実施形態において、本明細書に記載される異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステム上で(例えば、別個のスレッドとして)実行されるオブジェクト又はプロセスとして実装することができる。本明細書に記載されるシステム及びプロセスのいくつかは、ソフトウェア(汎用ハードウェアに記憶され、及び/又は汎用ハードウェアにより実行される)で実装されるものとして一般に記載されているが、特定のハードウェア実装、又はソフトウェアと特定のハードウェア実装の組み合わせも可能であり、考えられる。
【0053】
本開示で、特に添付の特許請求の範囲(例えば、添付の請求項の本文)で用いられる用語は、一般に「開放的な語」を意図している(例えば、用語「含む」は、「含むがこれらに限定されない」と解釈されるべきである。)。
【0054】
さらに、特定の数の導入された請求項の記載が意図されている場合、そのような意図は請求項において明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、以下の添付された請求項は、請求項の記載を導入するための導入句「少なくとも1つの」及び「1つ以上の」の使用を含むことがある。しかしながら、そのような句の使用は、同じ請求項が導入句「1つ以上の」又は「少なくとも1つの」と「a」又は「an」などの不定冠詞とを含むときでも、不定冠詞「a」又は「an」による請求項の記載の導入がそのような導入の請求項記載を含む特定の請求項を1つのそのような記載のみを含む実施形態に限定することを示すものと解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味すると解釈されるべきである)。請求項の記載を導入するために使用される定冠詞の使用についても同様である。
【0055】
さらに、特定の数の導入の請求項記載が明示的に記載されている場合でも、当業者は、そのような記載が少なくとも記載された数を意味すると解釈されるべきであることを認識するであろう(例えば、他の修飾語のない「2つの記載」というただそれだけの記載は、少なくとも2つの記載、又は2つ以上の記載を意味する)。さらに、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」に類似した規定が用いられる例においては、一般に、そのような構成は、A単独で、B単独で、C単独で、AとBを一緒に、AとCを一緒に、BとCを一緒に、又はAとBとCを一緒に、などを含むことを意図している。
【0056】
さらに、2つ以上の代替的な用語の前にある選言的な単語又は句は、明細書か、特許請求の範囲か、又は図面かに関わらず、用語の1つ、用語のいずれか、又は用語の双方を含む可能性を考慮するものと理解されるべきである。例えば、句「A又はB」は、「A」又は「B」又は「AとB」の可能性を含むものと理解されるべきである。
【0057】
本開示に記載されている全ての例及び条件付き言語は、本開示及び発明者が当該分野を促進するために貢献した概念を理解する際に読者を助けるための教育的目的を意図しており、このような具体的に記載されている例及び条件に限定されないものとして解釈されるべきである。本開示の実施形態が詳細に説明されたが、本開示の主旨及び範囲から逸脱することなく様々な変更、置換、及び改変をこれらに行うことができる。
【0058】
上記の実施形態につき以下の付記を残しておく。
(付記1)
複数のノードを含むグラフデータセットを取得するステップと、
前記複数のノードの各ノードがソートされるべき2つ以上のクラスタを指定するステップと、
前記グラフデータセットの前記複数のノードの各それぞれのノードを、それぞれのクラスタの各々に各々関連づけられているそれぞれのコストに従って、前記コストの全てが互いの閾値の範囲内であるように、前記2つ以上のクラスタのそれぞれのクラスタに割り当てるステップであり、それぞれのクラスタに関連づけられたそれぞれのコストは、前記それぞれのクラスタ内のそれぞれのノードを各々の他のクラスタ(each other cluster)内のノードに接続する対外エッジに基づいて決定される、ステップと、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析するステップと、
を含む方法。
(付記2)
各それぞれのノードを、前記それぞれのクラスタの各々に関連づけられている前記それぞれのコストに従って、前記それぞれのクラスタに割り当てることは、
複数の固有ベクトルの各それぞれの固有ベクトルが複数の固有値のそれぞれの固有値に対応する、前記複数の固有値及び前記複数の固有ベクトルを識別することであり、前記複数の固有値及び前記複数の固有ベクトルは、前記複数のノードの各ノード間の接続性度合い及び隣接性度合いに基づいて識別される、ことと、
前記複数の固有値のそれぞれの固有値を、前記それぞれの固有値に対応する前記複数の固有ベクトルのそれぞれの固有ベクトルとペアリングして、複数の固有値・固有ベクトルのペアを形成することと、
それぞれのクラスタにソートされたそれぞれの固有値に基づいて決定される、各それぞれのクラスタに関連づけられたコストが、各々の他のクラスタ(each other cluster)に関連づけられたコストの閾値の範囲内であるように、前記固有値・固有ベクトルペアの各々を前記クラスタにソートすることと、
前記それぞれのクラスタに対応する前記それぞれの固有ベクトルを含むそれぞれの行列に対してk平均クラスタリングアルゴリズムを実行することと、
を含む、付記1に記載の方法。
(付記3)
前記識別された複数の固有値及び前記識別された複数の固有ベクトルに含まれる固有値の数及び固有ベクトルの数は、前記複数のノードがソートされるべきクラスタの数に対応する、付記2に記載の方法。
(付記4)
前記クラスタの各々に関連づけられた前記コストは、前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することにより決定される、付記2に記載の方法。
(付記5)
前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することは、レシオカットアルゴリズム(ratio cut algorithm)に従って決定される、付記4に記載の方法。
(付記6)
前記レシオカットアルゴリズムは、前記クラスタの各々に関連づけられた前記固有ベクトルの行列の転置行列「Hj
T」と、ラプラシアン行列「L」と、前記クラスタの各々に関連づけられた前記固有ベクトルの行列「Hj」との積のトレース関数を計算することを含む、付記5に記載の方法。
(付記7)
前記グラフデータセットの前記複数のノードの前記それぞれのノードの各々は、ソーシャルメディアネットワークのそれぞれのメンバを記述し、
前記クラスタの各々は、前記ソーシャルメディアネットワークの前記メンバが含まれるコミュニティを表し、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析することは、前記ソーシャルメディアネットワーク内の1つ以上のコミュニティの検出を含む、
付記1に記載の方法。
(付記8)
実行されることに応答してシステムに動作を実行させる命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体であって、前記動作は、
複数のノードを含むグラフデータセットを取得することと、
前記複数のノードの各ノードがソートされるべき2つ以上のクラスタを指定することと、
前記グラフデータセットの前記複数のノードの各それぞれのノードを、それぞれのクラスタの各々に各々関連づけられているそれぞれのコストに従って、前記コストの全てが互いの閾値の範囲内であるように、前記2つ以上のクラスタのそれぞれのクラスタに割り当てることであり、それぞれのクラスタに関連づけられたそれぞれのコストは、前記それぞれのクラスタ内のそれぞれのノードを各々の他のクラスタ内のノードに接続する対外エッジに基づいて決定される、ことと、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析することと、
を含む、1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記9)
各それぞれのノードを、前記それぞれのクラスタの各々に関連づけられている前記それぞれのコストに従って、前記それぞれのクラスタに割り当てることは、
複数の固有ベクトルの各それぞれの固有ベクトルが複数の固有値のそれぞれの固有値に対応する、前記複数の固有値及び前記複数の固有ベクトルを識別することであり、前記複数の固有値及び前記複数の固有ベクトルは、前記複数のノードの各ノード間の接続性度合い及び隣接性度合いに基づいて識別される、ことと、
前記複数の固有値のそれぞれの固有値を、前記それぞれの固有値に対応する前記複数の固有ベクトルのそれぞれの固有ベクトルとペアリングして、複数の固有値・固有ベクトルのペアを形成することと、
それぞれのクラスタにソートされたそれぞれの固有値に基づいて決定される、各それぞれのクラスタに関連づけられたコストが、各々の他のクラスタに関連づけられたコストの閾値の範囲内であるように、前記固有値・固有ベクトルペアの各々を前記クラスタにソートすることと、
前記それぞれのクラスタに対応する前記それぞれの固有ベクトルを含むそれぞれの行列に対してk平均クラスタリングアルゴリズムを実行することと、
を含む、付記8に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記10)
前記識別された複数の固有値及び前記識別された複数の固有ベクトルに含まれる固有値の数及び固有ベクトルの数は、前記複数のノードがソートされるべきクラスタの数に対応する、付記9に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記11)
前記クラスタの各々に関連づけられた前記コストは、前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することにより決定される、付記9に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記12)
前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することは、レシオカットアルゴリズムに従って決定される、付記11に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記13)
前記レシオカットアルゴリズムは、前記クラスタの各々に関連づけられた前記固有ベクトルの行列の転置行列「Hj
T」と、ラプラシアン行列「L」と、前記クラスタの各々に関連づけられた前記固有ベクトルの行列「Hj」との積のトレース関数を計算することを含む、付記12に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記14)
前記グラフデータセットの前記複数のノードの前記それぞれのノードの各々は、ソーシャルメディアネットワークのそれぞれのメンバを記述し、
前記クラスタの各々は、前記ソーシャルメディアネットワークの前記メンバが含まれるコミュニティを表し、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析することは、前記ソーシャルメディアネットワーク内の1つ以上のコミュニティの検出を含む、
付記8に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記15)
システムであって、
1つ以上のプロセッサと、
実行されることに応答して当該システムに動作を実行させる命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体と、を含み、
前記動作は、
複数のノードを含むグラフデータセットを取得することと、
前記複数のノードの各ノードがソートされるべき2つ以上のクラスタを指定することと、
前記グラフデータセットの前記複数のノードの各それぞれのノードを、それぞれのクラスタの各々に各々関連づけられているそれぞれのコストに従って、前記コストの全てが互いの閾値の範囲内であるように、前記2つ以上のクラスタのそれぞれのクラスタに割り当てることであり、それぞれのクラスタに関連づけられたそれぞれのコストは、前記それぞれのクラスタ内のそれぞれのノードを各々の他のクラスタ内のノードに接続する対外エッジに基づいて決定される、ことと、
前記複数のノードを、前記それぞれのノードの各々が割り当てられている前記それぞれのクラスタに関して分析することと、
を含む、システム。
(付記16)
各それぞれのノードを、前記それぞれのクラスタの各々に関連づけられている前記それぞれのコストに従って、前記それぞれのクラスタに割り当てることは、
複数の固有ベクトルの各それぞれの固有ベクトルが複数の固有値のそれぞれの固有値に対応する、前記複数の固有値及び前記複数の固有ベクトルを識別することであり、前記複数の固有値及び前記複数の固有ベクトルは、前記複数のノードの各ノード間の接続性度合い及び隣接性度合いに基づいて識別される、ことと、
前記複数の固有値のそれぞれの固有値を、前記それぞれの固有値に対応する前記複数の固有ベクトルのそれぞれの固有ベクトルとペアリングして、複数の固有値・固有ベクトルのペアを形成することと、
それぞれのクラスタにソートされたそれぞれの固有値に基づいて決定される、各それぞれのクラスタに関連づけられたコストが、各々の他のクラスタに関連づけられたコストの閾値の範囲内であるように、前記固有値・固有ベクトルペアの各々を前記クラスタにソートすることと、
前記それぞれのクラスタに対応する前記それぞれの固有ベクトルを含むそれぞれの行列に対してk平均クラスタリングアルゴリズムを実行することと、
を含む、付記15に記載のシステム。
(付記17)
前記クラスタの各々に関連づけられた前記コストは、前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することにより決定される、付記16に記載のシステム。
(付記18)
前記クラスタの各々に関連づけられた前記コストは、前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することにより決定される、付記16に記載のシステム。
(付記19)
前記それぞれのクラスタの各々にソートされた前記それぞれの固有値を合計することは、レシオカットアルゴリズムに従って決定される、付記18に記載のシステム。
(付記20)
前記レシオカットアルゴリズムは、前記クラスタの各々に関連づけられた前記固有ベクトルの行列の転置行列「Hj
T」と、ラプラシアン行列「L」と、前記クラスタの各々に関連づけられた前記固有ベクトルの行列「Hj」との積のトレース関数を計算することを含む、付記19に記載のシステム。