Calculate Cosine Similarity based on SVD
Muhammed_Fatih_
New Altair Community Member
Dear Community,
is it technically or rather mathematically possible to calculate the Cosine Similarity measure based on results derived by SVD Feature Extraction? Or does the distance metric only operate on measures like TF-IDF?
Thank you in advance for your help!
is it technically or rather mathematically possible to calculate the Cosine Similarity measure based on results derived by SVD Feature Extraction? Or does the distance metric only operate on measures like TF-IDF?
Thank you in advance for your help!
0
Best Answer
-
Hallo @Muhammed_Fatih_ ,Doch wie sind die aus der Cosine Similarity resultierenden Informationen zu deuten, wenn diese ebenfalls negative Werte aufweisen?Je näher an 0, je ähnlicher. Ich glaube das ist aber auch was RM spezifisches. Alternativ kannst du wie gesagt den Cross-Distance operator nehmen. Der gibt dir dann auch positive CosinusDistances.Am Rande: Ich denke dass der Operator Extract Topics (LDA) für dich von großer Relevanz wäre.LG,Martin
5
Answers
-
Hi,Of course you can do this. Sounds a bit like you want to build GLOVE?Best,MARtin0
-
Hi Martin,
Hi Community,
thank you for your answer! I have another question in connection to this one:
I've calculated Cosine Similarity based on SVD values and got also negative values as result. The classic literature writes that the range for cosine similarity should normally be between 0 and 1. In my case, SVD values are used as input so that the range or rather angle of Cosine Similarity cannot stay between the defined one.
Hence, negative values were derived. My question goes with regard to the interpretation potential of the cos sim measure. How to interprete negative Cos Sim values? Normally, the closer the cosine value to 1, the smaller the angle and the greater the match between vectors. Is it possible to assume a symmetry for negative values - e.g. to interptete a Cos Sim value of -0,9 as a greater match than 0,6?
Thank you in advance for your answer!
Best regards
0 -
Hi,how did you calculate the distance? Cross Distances operator?Best,Martin0
-
Hi Martin,
I've calculated the Cosine Similarity by using the "Data to Similarity" operator.
Best regards!
0 -
Hi,Similarity is defined, to be maximized to get two very similar item. By definition we add -1* for the distance measures, which would be minimized. It's just the difference between a distance and a similarity which you are seeing.Best,Martin0
-
Hi Martin,
sry - I didn't get your point. Does this mean that negative Cosine Similarity derived by SVD values as e.g. -1 or -0,8 reflect vector points that are completely contrary located and that positive values underline the similarity of objects?
Thank you for your clarification!
Best regards!0 -
Hi,Ignore the - on the number. We just add a -1*value by convention.Maybe german works better here?Die Frage ist, ob man Cosinusähnlichkeit als Ähnlichkeit oder Distanzen definiert. Normalerweise ist Cosinusähnlichkeit eine Distanz, das bedeudet wenn man ähnliche Dinge sucht, sucht man Dinge mit kleiner distanz.Der Begriff der Ähnlichkeit (Similarity) impliziert allerdings, dass man versucht diese zu maximieren um ähnliche Dinge zu bekommen. Aus dem Grund multiplizieren wir im operator Data to Similarity die Werte der Cosinusdistanz mit -1, um dieses Verhalten zu bekommen.Falls du die Werte als Distanz brauchst empfehle ich den Operator Cross Distance. Der gibt dir dann auch immer positive Cosinusähnlichkeiten.Cheers,Martin0
-
Hi Martin,
gerne in Deutsch Es geht mir bei meiner Analyse darum quantifizierte Texteinheiten, welche eine syntaktische Ähnlichkeit aufweisen, in gemeinsame Kategorien zu clustern. Hierfür wird in der Literatur die Cosine Similarity empfohlen. Die Besonderheit in meinem Anwendungsfall lag allerdings darin, dass ich im vorhergehenden Schritt eine Dimensionsreduktion mittels SVD durchgeführt wurde, um die Anzahl an Dimensionen in einer effizienten Art und Weise einzuschränken.
Insofern besteht aktuell die Frage, inwiefern die SVD-Input values, die in den Operator Cosine Similarity integriert wurden, zu deuten sind. Im Falle der von dir vorgeschlagenen Cosinus Distanz würde ein Minimierungsziel vorliegen und bei der Cosine Similarity ein Maximierungsziel. Doch wie sind die aus der Cosine Similarity resultierenden Informationen zu deuten, wenn diese ebenfalls negative Werte aufweisen?
Zur Sicherheit: Habe ich aus deinem vorhergehenden Kommentar richtig entnommen, dass der Cosine Similartiy nichts anderes als folgendes besagt: Cosine Similarity = (-1) * CosineDistance?
Thank you in advance for your answer and the clarification!
Best regards!0 -
Hallo @Muhammed_Fatih_ ,Doch wie sind die aus der Cosine Similarity resultierenden Informationen zu deuten, wenn diese ebenfalls negative Werte aufweisen?Je näher an 0, je ähnlicher. Ich glaube das ist aber auch was RM spezifisches. Alternativ kannst du wie gesagt den Cross-Distance operator nehmen. Der gibt dir dann auch positive CosinusDistances.Am Rande: Ich denke dass der Operator Extract Topics (LDA) für dich von großer Relevanz wäre.LG,Martin
5 -
Hi Martin,
das bedeutet, dass die Winkel-Berechnung nach cos(x) im RM-Operator überhaupt nicht erfolgt, richtig?
Best regards!0 -
Hi @Muhammed_Fatih_ ,ich habe es gerade mal nachgeschaut. Witzigerweiße berechnen wir bei Similarity _keine_ cos. Bei Distanz hingegen schon.LG,Martin0