K-Mittelwerte für Kosinusähnlichkeiten vs. euklidischen Abstand (LSA)

10

Ich verwende die latente semantische Analyse, um einen Korpus von Dokumenten im Raum niedrigerer Dimensionen darzustellen. Ich möchte diese Dokumente mit k-means in zwei Gruppen zusammenfassen.

Vor einigen Jahren habe ich dies mit Pythons Gensim gemacht und meinen eigenen k-means-Algorithmus geschrieben. Ich habe die Cluster-Schwerpunkte anhand des euklidischen Abstands bestimmt, dann aber jedes Dokument anhand der Kosinus-Ähnlichkeit mit dem Schwerpunkt gruppiert. Es schien ziemlich gut zu funktionieren.

Jetzt versuche ich dies auf einem viel größeren Korpus von Dokumenten zu tun. K-means konvergiert nicht und ich frage mich, ob es ein Fehler in meinem Code ist. Ich habe kürzlich gelesen, dass Sie nicht mit Kosinusähnlichkeit gruppieren sollten , da k-means nur auf euklidischer Entfernung funktioniert. Obwohl es, wie bereits erwähnt, in meinem kleineren Testfall gut zu funktionieren schien.

Jetzt stoße ich auf der LSA-Wikipedia-Seite darauf :

Dokumente und Termvektordarstellungen können mit herkömmlichen Clustering-Algorithmen wie k-means unter Verwendung von Ähnlichkeitsmaßen wie Cosinus geclustert werden.

Also was ist es? Kann ich Kosinusähnlichkeit verwenden oder nicht?

Jeff
quelle
Dieses Thema bleibt in der Tat lange auf dieser Seite. Gerade aktuelle Frage: stats.stackexchange.com/q/120085/3277 (siehe weitere Links dort). Schrecklich interessant ist, wie Sie k-means implementiert haben, das Cosinus verarbeitet. Wenn Sie Ihren Algorithmus in Ihrer Frage beschreiben, hilft er den Leuten, ihn zu beantworten.
ttnphns
@ttnphns Ich habe tatsächlich Cluster-Zentroide mit dem euklidischen Abstand (dem Mittelwert jeder Dimension) generiert. Allerdings habe ich dann jedes Dokument einem Cluster zugewiesen, der auf der Kosinusähnlichkeit und nicht auf der euklidischen Entfernung basiert.
Jeff
I then assigned each document to a cluster based on cosine similarity- Kosinus zwischen einem Arzt und einem Schwerpunkt? Und nachdem alle Dokumente zugewiesen wurden, aktualisieren Sie die Schwerpunkte auf übliche (euklidische) Weise, da die Koordinaten der Dokumente im Bereich bekannt sind. Ist das so?
ttnphns
1
Nur wenn Summe des Quadratwertes für jedes Dokument im Dataset das ist dieselbe , wird Ihr Ansatz arbeitet und wird immer zusammenlaufen. Denn in diesem Fall ( dh alle gleich lang) sind die Kosinusse zwischen Zentroiden und Dokumenten streng monoton mit euklidischen Abständen zwischen Zentroiden und Dokumenten. Dies bedeutet jedoch, dass die Verwendung der Kosinusse für die Zuweisung unnötig ist und Sie dann die Zuweisung des Standard-k-Mittelwert-Algorithmus basierend auf den euklidischen Abständen verwenden können. h
ttnphns
1
Was ich anfange zu denken, ist, dass Sie vielleicht nach k-Mitteln suchen, die auf einer Kugel ausgeführt werden, nicht im Raum. Winkel k bedeutet sozusagen. Ich nehme an, es ist möglich, aber ich habe solche nie gelesen oder benutzt.
ttnphns

Antworten:

4

Ja, du kannst es benutzen. Das Problem ist, dass die Kosinusähnlichkeit keine Distanz ist, deshalb wird sie Ähnlichkeit genannt. Trotzdem kann es wie hier erklärt in eine Entfernung umgewandelt werden .

In der Tat können Sie einfach jede Entfernung verwenden. Eine sehr schöne Studie über die Eigenschaften von Distanzfunktionen in hochdimensionalen Räumen (wie dies normalerweise beim Abrufen von Informationen der Fall ist) befasst sich mit dem überraschenden Verhalten von Distanzmetriken im hochdimensionalen Raum . Es wird jedoch nicht Euklidisch gegen Kosinus verglichen.

Ich bin auf diese Studie gestoßen, in der behauptet wird, dass sich in hochdimensionalen Räumen beide Abstände ähnlich verhalten.

jpmuc
quelle
1
Diese Antwort könnte eine gute sein, wenn sie beschreibt, wie Yes, you can use it . (Ist die Idee, Kosinus in euklidischen Abstand umzuwandeln, meiner Antwort ähnlich ?)
ttnphns
Mein Verständnis von k-means ist anders. Es ist nicht unbedingt auf die euklidische Entfernung beschränkt ( stat.uni-muenchen.de/~leisch/papers/Leisch-2006.pdf ). Siehe auch meine zweite Referenz oder dieses R-Paket ( cran.r-project.org/web/packages/cclust/cclust.pdf ). Ich meinte es wirklich wie auf der Wikipedia-Seite. Man braucht nur eine Distanzfunktion. Sie bezeichnen es als "Winkelähnlichkeit".
Jpmuc
1
Vielleicht (und danke, dass du das Papier geteilt hast!). Aber dann sollten alle derartigen "Modifikationen" von k-Mitteln, die sich von k-Mitteln dadurch unterscheiden, dass sie den Schwerpunkt nicht als arithmetisches Mittel im euklidischen Raum definieren, nicht als k-Mittel bezeichnet werden.
ttnphns
1

Der euklidische Abstand eignet sich nicht zum Vergleichen von Dokumenten oder Dokumentenclustern. Beim Vergleich von Dokumenten ist die Normalisierung nach Dokumentlänge ein zentrales Problem. Die Kosinusähnlichkeit erreicht diese Art der Normalisierung, die euklidische Distanz jedoch nicht. Darüber hinaus werden Dokumente häufig als multinomiale Wahrscheinlichkeitsverteilungen (sogenannte Wortsack) modelliert. Die Kosinusähnlichkeit ist eine Annäherung an die JS-Divergenz, die eine statistisch begründete Methode zur Ähnlichkeit darstellt. Ein zentrales Problem bei Dokumenten und Cosinus ist, dass die Zählungen ordnungsgemäß mit tf-idf normalisiert werden sollten. Wenn Sie gensim verwenden, um die LSA-Darstellung abzuleiten, führt gensim dies bereits aus.

Eine weitere nützliche Beobachtung für Ihren Anwendungsfall von 2 Clustern ist, dass Sie eine gute nicht zufällige Initialisierung erhalten können, da LSA nur SVD ist. Sie machen es folgendermaßen:

  • Nehmen Sie nur die erste Komponente jedes Dokuments (vorausgesetzt, die erste Komponente ist der oberste singuläre Vektor).
  • Sortieren Sie diese Werte, indem Sie die Dokument-IDs für jeden Wert verfolgen.
  • Cluster 1 = Dokument-IDs, die den oberen Werten entsprechen, z. B. 1000 (oder mehr) Werten
  • Cluster 2 = Dokument-IDs, die dem unteren Wert entsprechen, z. B. 1000 (oder mehr) Werte
  • mittle einfach die Vektoren für jeden Cluster und normalisiere sie durch die Vektorlänge.
  • Wenden Sie nun k-means auf diese Initialisierung an. Dies bedeutet, dass Sie einfach (1) Dokumente dem aktuell nächstgelegenen Schwerpunkt zuweisen und (2) neue Schwerpunkte nach Neuzuweisung mitteln und normalisieren
Stefan Savev
quelle
1

Ja, das gleiche Schwerpunkt-Update nach Vektordurchschnitt funktioniert.

Siehe m = 1 Fall in Abschnitt 2.2 dieses Dokuments . w sind die Gewichte und die Gewichte sind alle 1 für Basis-k-Mittelwert-Algorithmen.

Das Papier verwendet Eigenschaften der Cauchy-Schwartz-Ungleichung, um die Bedingung zu ermitteln, die die Kostenfunktion für den k-Mittelwert minimiert.

Denken Sie auch daran, dass die Kosinusähnlichkeit keine Vektorentfernung ist. Cosinus-Unähnlichkeit ist. (Dies sollte ein guter Suchbegriff sein.) Wenn Sie also die Partition aktualisieren, suchen Sie arg maxim Gegensatz zu arg min.

Argyll
quelle