The Altair Community is migrating to a new platform to provide a better experience for you. The RapidMiner Community will merge with the Altair Community at the same time. In preparation for the migration, both communities are on read-only mode from July 15th - July 24th, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here.
Options

# Calculate Cosine Similarity based on SVD

Member Posts: 93 Maven
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?

• Options
Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,525 RM Data Scientist
Hi,
Of course you can do this. Sounds a bit like you want to build GLOVE?

Best,
MARtin
- Sr. Director Data Solutions, Altair RapidMiner -
Dortmund, Germany
• Options
Member Posts: 93 Maven
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?

Best regards
• Options
Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,525 RM Data Scientist
Hi,
how did you calculate the distance? Cross Distances operator?

Best,
Martin
- Sr. Director Data Solutions, Altair RapidMiner -
Dortmund, Germany
• Options
Member Posts: 93 Maven
Hi Martin,

I've calculated the Cosine Similarity by using the "Data to Similarity" operator.

Best regards!
• Options
Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,525 RM Data Scientist
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,
Martin
- Sr. Director Data Solutions, Altair RapidMiner -
Dortmund, Germany
• Options
Member Posts: 93 Maven
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?

Best regards!
• Options
Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,525 RM Data Scientist
edited April 2020
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,
Martin
- Sr. Director Data Solutions, Altair RapidMiner -
Dortmund, Germany
• Options
Member Posts: 93 Maven
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?

Best regards!
• Options
Member Posts: 93 Maven
Hi Martin,

das bedeutet, dass die Winkel-Berechnung nach cos(x) im RM-Operator überhaupt nicht erfolgt, richtig?

Best regards!
• Options
Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, University Professor Posts: 3,525 RM Data Scientist

ich habe es gerade mal nachgeschaut. Witzigerweiße berechnen wir bei Similarity _keine_ cos. Bei Distanz hingegen schon.

LG,
Martin
- Sr. Director Data Solutions, Altair RapidMiner -
Dortmund, Germany