计算嵌入相似度
一旦嵌入存入数据库,您可以使用 Cypher 函数 vector.similarity.cosine() 计算它们之间的相似度。
示例 1:比较两部相关电影的嵌入
查询
MATCH (a:Movie {title: "Despicable Me"})
MATCH (b:Movie {title: "Despicable Me 2"})
RETURN vector.similarity.cosine(a.embedding, b.embedding)
| vector.similarity.cosine(a.embedding, b.embedding) |
|---|
|
示例 2:比较两部不相关电影的嵌入
查询
MATCH (a:Movie {title: "Despicable Me"})
MATCH (b:Movie {title: "Emperor's New Groove, The"})
RETURN vector.similarity.cosine(a.embedding, b.embedding)
| vector.similarity.cosine(a.embedding, b.embedding) |
|---|
|
两个节点的相似度数值在实际用途上并不是非常重要。您通常感兴趣的是根据某些标准检索最相关的节点,因此最关键的是目标节点相对于其他节点得分最高。例如,Despicable Me 与 Despicable Me 2 的相似度分数本身并不重要,重要的是它在所有电影节点中得分最高。 |
此方法在比较两部电影时可以正常工作,但无法用于查找与 Despicable Me 最相似的节点。若要基于嵌入快速检索节点,请继续在电影嵌入上创建向量索引并基于该索引查询数据库。