If you look at the examples for Cosine Similarity in the docs, you'll see an example of using node properties for similarity calculations:
MATCH (c:Cuisine)
WITH {item:id(c), weights: c.embedding} AS userData
WITH collect(userData) AS data
CALL gds.alpha.similarity.cosine.stream({
data: data,
skipValue: null
})
YIELD item1, item2, count1, count2, similarity
RETURN gds.util.asNode(item1).name AS from, gds.util.asNode(item2).name AS to, similarity
ORDER BY similarity DESC
The collect
takes the node properties (c.embedding
) and uses those to calculate similarities between cuisine
nodes.