Cosine similarity measures the similarity between vectors by calculating the cosine angle between the two vectors.
TensorFlow
provides tf.keras.losses.cosine_similarity
function to compute cosine
similarity between labels and predictions.
Cosine similarity is a number number between -1 and 1. Cosine values closer to -1 indicate greater similarity and values closer to 1 indicate greater dissimilarity.
Let's understand tf.keras.losses.cosine_similarity
with below examples
import tensorflow as tf
y_true = [[1., 1.], [1., 1.]]
y_pred = [[1., 1.], [-1., -1.]]
consine_sim_tensor = tf.keras.losses.cosine_similarity(y_true, y_pred, axis=1)
print(consine_sim_tensor.numpy())
Output
[-0.99999994 0.99999994]
From the above output we can see as the first element in both y_true
and y_pred
is same hence cosine similarity is approaching to -1, while second element is opposite in y_true
and y_pred
hence cosine similarity value is approaching to 1.
import tensorflow as tf
tensor_1 = [.34, .45, .67, .65]
tensor_list = [[.34, .45, .67, .65], [.14, .35, .67, .65],
[.54, .95, .07, .5], [.64, .75, .81, .05], [.34, .45, .67, .65]]
cosine_sim_values = tf.keras.losses.cosine_similarity(
tensor_1,
tensor_list,
axis=-1)
print(cosine_sim_values.numpy())
Output
[-1. -0.9804376 -0.74875045 -0.8115672 -1. ]
In the above output first and fifth values are -1 because tensor_1 and first and fifth element of tensor_list are identical.
Similar Articles