K-significa sulle somiglianze del coseno rispetto alla distanza euclidea (LSA)


10

Sto usando l'analisi semantica latente per rappresentare un corpus di documenti nello spazio dimensionale inferiore. Voglio raggruppare questi documenti in due gruppi usando k-mean.

Diversi anni fa, l'ho fatto usando il gensim di Python e scrivendo il mio algoritmo k-mean. Ho determinato i centroidi del cluster usando la distanza euclidea, ma poi ho raggruppato ogni documento in base alla somiglianza del coseno con il centroide. Sembrava funzionare abbastanza bene.

Ora sto cercando di farlo su un corpus di documenti molto più ampio. K-mean non converge e mi chiedo se sia un bug nel mio codice. Ho letto di recente che non dovresti raggruppare usando la somiglianza del coseno, perché k-mean funziona solo sulla distanza euclidea. Anche se, come ho già detto, sembrava funzionare bene nel mio caso di test più piccolo.

Ora mi imbatto in questo sulla pagina Wikipedia di LSA :

I documenti e le rappresentazioni dei termini vettoriali possono essere raggruppati usando algoritmi di raggruppamento tradizionali come k-medie usando misure di somiglianza come il coseno.

Quindi che cos'è? Posso usare la somiglianza del coseno o no?


Questo argomento indugia davvero a lungo su questo sito. Domanda appena recente: stats.stackexchange.com/q/120085/3277 (vedere ulteriori collegamenti lì). Ciò che è terribilmente interessante è come hai implementato k-significa che elabora i coseni. Se descrivi il tuo algoritmo nella tua domanda, questo aiuterà le persone a rispondere.
ttnphns,

@ttnphns In realtà ho generato i centroidi del cluster usando la distanza euclidea (la media di ogni dimensione). Tuttavia, ho quindi assegnato ciascun documento a un cluster basato sulla somiglianza del coseno, piuttosto che sulla distanza euclidea.
Jeff,

I then assigned each document to a cluster based on cosine similarity- Coseno tra un doc e un centroide? E dopo aver assegnato tutti i documenti, aggiorni i centroidi in un modo usuale (euclideo), perché sono note le coordinate dei documenti nello spazio. È così?
ttnphns,

1
h

1
Quello che sto iniziando a pensare è che potresti cercare i k-significati eseguiti su una sfera, non nello spazio. K-angolari significa, per così dire. Suppongo sia possibile, ma non ho mai letto o usato tale.
ttnphns,

Risposte:


4

Sì, puoi usarlo. Il problema è che la somiglianza del coseno non è una distanza, ecco perché si chiama somiglianza. Tuttavia, può essere convertito in una distanza come spiegato qui .

In effetti, puoi semplicemente usare qualsiasi distanza. Un ottimo studio delle proprietà delle funzioni di distanza in spazi ad alta dimensione (come accade di solito nel recupero delle informazioni) è Il comportamento sorprendente delle metriche di distanza nello spazio dimensionale elevato . Tuttavia, non confronta l'Euclideo con il coseno.

Mi sono imbattuto in questo studio in cui affermano che negli spazi ad alta dimensione, entrambe le distanze tendono a comportarsi in modo simile.


1
Questa risposta potrebbe essere buona se descrive come Yes, you can use it . (L'idea di convertire il coseno in distanza euclidea è simile alla mia risposta ?)
ttnphns

La mia comprensione di k-mean è diversa. Non è necessariamente limitato alla distanza euclidea ( stat.uni-muenchen.de/~leisch/papers/Leisch-2006.pdf ). Vedi anche il mio secondo riferimento o questo pacchetto R ( cran.r-project.org/web/packages/cclust/cclust.pdf ). Intendevo davvero come nel sito di Wikipedia. Basta solo una funzione di distanza. Si riferiscono ad esso come "somiglianza angolare".
jpmuc,

1
Forse (e grazie per aver condiviso il documento!). Ma allora tutte queste "modifiche" di k-medie che differiscono da k-medie in quanto definiscono centroide non come media aritmetica nello spazio euclideo, non dovrebbero essere chiamate k- medie .
ttnphns,

1

La distanza euclidea non è adatta per confrontare documenti o gruppi di documenti. Quando si confrontano i documenti, un problema chiave è la normalizzazione per lunghezza del documento. La somiglianza del coseno raggiunge questo tipo di normalizzazione, ma la distanza euclidea non lo fa. Inoltre, i documenti sono spesso modellati come distribuzioni di probabilità multinomiali (il cosiddetto sacco di parole). La somiglianza del coseno è un'approssimazione della divergenza di JS che è un metodo statisticamente giustificato per la somiglianza. Un problema chiave con documenti e coseno è che si dovrebbe applicare la corretta normalizzazione tf-idf ai conteggi. Se si utilizza gensim per derivare la rappresentazione LSA, gensim lo fa già.

Un'altra utile osservazione per il tuo caso d'uso di 2 cluster è che puoi ottenere una buona inizializzazione non casuale perché LSA è solo SVD. Lo fai nel modo seguente:

  • Prendi solo il primo componente di ciascun documento (supponendo che il primo componente sia il vettore singolare superiore).
  • Ordinare questi valori tenendo traccia degli ID del documento per ciascun valore.
  • cluster 1 = ID documento corrispondenti ai primi valori, ad esempio 1000 (o più) valori
  • cluster 2 = ID documento corrispondenti al valore inferiore, ad esempio 1000 (o più) valori
  • basta fare una media dei vettori per ciascun cluster e normalizzare in base alla lunghezza del vettore.
  • Ora applica k-medie a questa inizializzazione. Questo significa semplicemente ripetere (1) l'assegnazione dei documenti al centroide più vicino corrente e (2) fare la media e normalizzare i nuovi centroidi dopo la riassegnazione

1

Sì, lo stesso aggiornamento del centroide in base alla media vettoriale funziona.

Vedi il caso m = 1 nella Sezione 2.2 di questo documento . w sono i pesi e i pesi sono tutti 1 per gli algoritmi k-mean di base.

Il documento utilizza le proprietà della disuguaglianza di Cauchy-Schwartz per stabilire la condizione che minimizza la funzione di costo per k-mean.

Ricorda inoltre che la similiarità del coseno non è una distanza vettoriale. La dissomiglianza del coseno è. (Questo dovrebbe essere un buon termine di ricerca.) Quindi quando aggiorni la partizione, stai cercando arg maxinvece di arg min.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.