コサイン類似度とユークリッド距離(LSA)のK平均


10

潜在的意味解析を使用して、低次元空間でドキュメントのコーパスを表現しています。これらのドキュメントをk-meansを使用して2つのグループにクラスター化したいと思います。

数年前、私はPythonのgensimを使用してこれを行い、独自のk-meansアルゴリズムを作成しました。ユークリッド距離を使用してクラスターの重心を決定しましたが、重心とのコサイン類似性に基づいて各ドキュメントをクラスター化しました。かなりうまくいったようです。

今、私はこれをはるかに大きなドキュメントのコーパスで実行しようとしています。K-meansは収束しておらず、コードのバグかどうか疑問に思っています。最近読んだのは、コサイン類似度を使用してクラスター化しないことです。k平均はユークリッド距離でのみ機能するためです。私が述べたように、それでも私の小さなテストケースではうまく機能するように見えました。

LSA Wikipediaページでこれに遭遇しました:

ドキュメントと用語ベクトル表現は、コサインのような類似性測定を使用するk-meansのような従来のクラスタリングアルゴリズムを使用してクラスター化できます。

どっち?コサイン類似度を使用できますか?


そのトピックは確かにこのサイトに長く残っています。ちょうど最近の質問:stats.stackexchange.com/q/120085/3277(そこでのリンクを参照)。非常に興味深いのは、余弦を処理するk-meansをどのように実装したかです。あなたの質問であなたのアルゴリズムを説明するならば、それは人々がそれを答えるのを助けるでしょう。
ttnphns 2014年

@ttnphns実際にユークリッド距離(各次元の平均)を使用してクラスターの重心を生成しました。ただし、ユークリッド距離ではなく、コサイン類似度に基づいて各ドキュメントをクラスターに割り当てました。
ジェフ

I then assigned each document to a cluster based on cosine similarity-ドキュメントと重心の間のコサイン?すべてのドキュメントが割り当てられた後、空間内のドキュメントの座標がわかっているため、通常の(ユークリッド)方法で図心を更新します。そうですか?
ttnphns 2014年

1
h

1
私が考え始めているのは、空間ではなく球で実行されるk平均法を探しているのではないかということです。角度k平均、いわば 私はそれが可能だと思いますが、私はそのようなものを読んだり使用したりはしていません。
ttnphns 2014年

回答:


4

はい、使用できます。問題は、コサイン類似度が距離ではないことです。これが、類似度と呼ばれる理由です。それでも、ここで説明するように、距離に変換できます

実際、どんな距離でも使用できます。高次元空間における距離関数の特性に関する非常に優れた研究(通常、情報検索の場合に当てはまります)は、高次元空間における距離メトリックの驚くべき動作です。ただし、ユークリッドとコサインを比較するものではありません。

私はこの研究に出くわし、彼らは高次元の空間では両方の距離が同じように振る舞う傾向があると主張しています。


1
この答えは、その方法を 説明している場合は良い答えかもしれませんYes, you can use it。(コサインをユークリッド距離に変換するという考えは私の答えと似ていますか?)
ttnphns 2014年

k-meansに対する私の理解は異なります。必ずしもユークリッド距離に限定されません(stat.uni-muenchen.de/~leisch/papers/Leisch-2006.pdf)。また、私の2番目のリファレンスまたはこのRパッケージ(cran.r-project.org/web/packages/cclust/cclust.pdf)も参照してください。私はそれがウィキペディアのサイトで本当に好きだったことを意味しました。距離関数が必要なだけです。彼らはそれを「角度類似性」と呼んでいます。
jpmuc 2014年

1
おそらく(そして、紙を共有してくれてありがとう!)。しかし、ユークリッド空間での算術平均ではなく重心を定義するという点でk平均とは異なるk平均のすべての「変更」は、k平均と呼ばれるべきではありませ
ttnphns 2014年

1

ユークリッド距離は、ドキュメントまたはドキュメントのクラスターの比較には適していません。ドキュメントを比較するときの重要な問題の1つは、ドキュメントの長さによる正規化です。コサイン類似度はこの種の正規化を実現しますが、ユークリッド距離は実現しません。さらに、ドキュメントは多くの場合、多項確率分布(いわゆるバッグオブワード)としてモデル化されます。コサイン類似度は、類似性を統計的に正当化する方法であるJSダイバージェンスの近似値です。ドキュメントとコサインに関する重要な問題の1つは、カウントに適切なtf-idf正規化を適用する必要があることです。LSA表現を導出するためにgensimを使用している場合、gensimはすでにそれを実行しています。

LSAは単なるSVDであるため、2つのクラスターを使用する場合のもう1つの有用な観察は、ランダムでない初期化が適切に行われることです。次の方法で行います。

  • 各ドキュメントの最初のコンポーネントのみを取ります(最初のコンポーネントが一番上の特異ベクトルであると仮定します)。
  • 各値のドキュメントIDを追跡して、これらの値を並べ替えます。
  • クラスター1 =上位に対応するドキュメントID、たとえば1000(以上)の値
  • クラスター2 =下部に対応するドキュメントID、たとえば1000(以上)の値
  • 各クラスターのベクトルを平均し、ベクトルの長さで正規化します。
  • 次に、この初期化にk-meansを適用します。つまり、(1)ドキュメントを現在最も近い重心に割り当て、(2)再割り当て後に新しい重心を平均化して正規化するだけです。

1

はい、ベクトル平均による同じ重心更新が機能します。

このペーパーのセクション2.2のm = 1ケースを参照してください。wは重みで、基本k平均アルゴリズムの場合、重みはすべて1です。

この論文では、コーシーシュワルツ不等式の特性を使用して、k平均のコスト関数を最小化する条件を確立します。

また、余弦の類似性はベクトル距離ではないことも覚えておいてください。コサインの非類似性です。(これは適切な検索用語である必要があります。)したがって、パーティションを更新するときは、arg maxではなくを探しますarg min

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.