イナズマの日記

こんにちは。

「クラスタリング」のニュアンスの違い

今まで「クラスタリング」と聞くと,「データをいくつかの集合 (クラスタ) に分割すること」をイメージしていました. 実際,scikit-learn の spectral_clustering や Louvain 法などはこのような操作をしているし,私の研究でもこのような操作をするアルゴリズムを考えています.

しかし,

KDD 2020 | Minimizing Localized Ratio Cut Objectives in Hypergraphs

KDD 2020 | Parameterized Correlation Clustering in Hypergraphs and Bipartite Graphs

の論文ではクラスタリングのニュアンスが違っています. これらの論文では「あるデータ集合にとって適切な要素の発見」というようなニュアンスで使われています. 「ユーザーの聞いた音楽集合が与えられたときに,最も適切な新しい音楽をサジェストする」ようなことに応用したい場合は,このニュアンスのクラスタリングアルゴリズムを用いる方が適切だと思います.

この2つのクラスタリングにおいて,前者のニュアンスでは「Modularity」,後者のニュアンスでは「Conductance」を用いてクラスタリングの適切さが測られていることが多いです.

…ニュアンスの違いを適切に言語化できていない気がしますが,このような違いがあることを頭の片隅に置いておくと論文を読んだときに変な混乱を防げる気がします.

ところで,「Clustering」と類似した言葉に「Community Detection」や「Cutting」や「Partitioning」などがありますので,これらの単語がそれぞれ適切に意味付けられればいいなと思ってます. (僕がエアプなだけで実際にはそれぞれ違う意味付けがされているのかも)