查找与另一部电影相似的电影
要查找嵌入与特定电影的嵌入相似的电影,请检索该电影并将其嵌入提供给Cypher®过程db.index.vector.queryNodes
。
MATCH (m:Movie {title: 'Despicable Me'})
CALL db.index.vector.queryNodes('moviePlots', 5, m.embedding)
YIELD node, score
RETURN node.title AS title, node.plot AS plot, score
标题 | 剧情 | 得分 |
---|---|---|
“卑鄙的我” |
“当一个犯罪策划大师利用三个孤儿女孩作为一项宏伟计划的棋子时,他发现她们的爱正在深刻地改变他,变得更好。” |
1.0 |
“卑鄙的我 2” |
“当格鲁,世界上最坏的超级坏蛋变成超级爸爸,被一个官员团队招募来阻止致命肌肉和格鲁自己的一群人时,他必须用新的工具、汽车和更多的米尼恩疯狂进行反击。” |
0.940204381942749 |
“小黄人” |
“小黄人斯图尔特、凯文和鲍勃被超级恶棍斯嘉丽·奥弗基尔招募,她与她的发明家丈夫赫伯一起策划了一个接管世界的阴谋。” |
0.9329936504364014 |
“阿拉丁” |
“当一个街头恶棍争夺一位美丽公主的爱时,他利用精灵的魔力让自己冒充王子,以便与她结婚。” |
0.9291699528694153 |
“无敌破坏王” |
“超级恶棍大坏蛋终于击败了他的宿敌,超级英雄都市超人。但没有英雄,他就失去了所有目标,必须为他的生活找到新的意义。” |
0.9292264580726624 |
标题 | 剧情 | 得分 |
---|---|---|
“卑鄙的我” |
“当一个犯罪策划大师利用三个孤儿女孩作为一项宏伟计划的棋子时,他发现她们的爱正在深刻地改变他,变得更好。” |
1.0 |
“爱上艰难之路” |
“一个卑鄙的小偷遇到一个天真年轻的女人,并把她带入他的犯罪世界的故事,而她则教他享受生活和被爱的课程。” |
0.7806928157806396 |
“控制的极限” |
“一个神秘的孤独者,一个正在完成犯罪工作的陌生人的故事。” |
0.7746935486793518 |
“半熟” |
“三个不太聪明的男人想出的一系列疯狂计划,以帮助他们的朋友出狱的故事。” |
0.7708940505981445 |
“无人知晓” |
“一个有着暴力过去的安静典当行老板,为了拯救他唯一的朋友,一个孩子,而与一个贩毒和器官贩卖团伙作斗争。” |
0.7698113918304443 |
当检索与搜索提示匹配的节点时,来自 OpenAI 和 SentenceTransformers 的结果差异不大。另一方面,在上面的示例中,它们的执行方式大不相同:OpenAI 能够关联三部小黄人电影,而卑鄙的我 2
和小黄人
没有出现在 SentenceTransformers 的结果中。
为什么卑鄙的我 2
没有出现在使用 SentenceTransformers 嵌入的卑鄙的我
前五部最接近的电影中?鉴于嵌入是在标题和剧情上生成的,让我们看看这两部电影的剧情是如何相关的。
当一个犯罪策划大师利用三个孤儿女孩作为一项宏伟计划的棋子时,他发现她们的爱正在深刻地改变他,变得更好。 |
当格鲁,世界上最坏的超级坏蛋变成超级爸爸,被一个官员团队招募来阻止致命肌肉和格鲁自己的一群人时,他必须用新的工具、汽车和更多的米尼恩疯狂进行反击。 |
这些读起来像是完全不同的电影:曾经的犯罪策划大师
现在是格鲁,世界上最坏的超级坏蛋
;不再有三个孤儿女孩
;第一部电影的剧情中没有小黄人
。
尽管今天每个人都将卑鄙的我
与小黄人
联系起来,但这并不是这部电影最初上映时对其进行描述和营销的方式。小黄人
在公众文化中非常受欢迎,这使得它们后来成为营销的主要中心。嵌入模型根本没有所有这些上下文——这些上下文来自在世界上生活了十年,日复一日。
即使剧情本身看起来不太相似,OpenAI 似乎也能够关联三部小黄人电影。OpenAI 这样做的原因完全在于其模型的训练方式。如果有什么不同的话,那就是 OpenAI 正确地关联它们比 SentenceTransformers 无法看到它们之间的联系更令人惊讶。