gpt4 book ai didi

Graph DB 在 Neo4j cypher 中获得下一个最佳推荐节点

转载 作者:行者123 更新时间:2023-12-04 21:11:52 24 4
gpt4 key购买 nike

我有一个使用 NEO4j 的图表,目前正在尝试构建一个比基于文本的搜索更好的简单推荐系统。

创建节点,例如:相册、人物、类型、图表

创建关系,例如:
People - [:role] -> Album其中角色是:艺术家、制作人、词曲作者
Album-[:is_a_type_of]->Type (类型基本上是流行、摇滚、迪斯科……)
People -[:POPULAR_ON]->Chart (图表是他们可能是哪个广告牌)
People -[:SIMILAR_TO]->People (预定的相似连接)

我写了以下密码:

    MATCH (a:Album { id: { id } })-[:is_a_type_of]->(t)<-[:is_a_type_of]-(recommend)    
WITH recommend, t, a
MATCH (recommend)<-[:ARTIST_OF]-(p)
OPTIONAL MATCH (p)-[:POPULAR_ON]->()
RETURN recommend, count(DISTINCT t) AS type
ORDER BY type DESC
LIMIT 25;

然而,它可以工作,如果它只有一种类型的音乐与之相连,它很容易重复,因此具有相同的邻居。

有没有建议的方式说:
  • 找到下一张与起始专辑的关联关系最相似的最佳专辑。
  • 对决胜局场景有什么建议吗?现在是按类型排序(所以如果一张专辑有不止一种类型的音乐,它的值(value)会更高,但如果每个人都有相同的数量,就没有更多了
    重要)
  • -我创建了 [:SIMILAR_TO] 链接以强制优先考虑这种关系的重要性,但我没有使用它的有效密码
  • - [:Popular_On] 也一样(也许放弃这种关系?)
  • 最佳答案

    您可以使用 4 种配置并按此顺序中的较高值订购相册。将配置保持在 0 到 1 之间(例如 0.6)

    a. People Popular on Chart and People are similar
    b. People Popular on Chart and People are Not similar
    c. People Not Popular on Chart and People are similar
    d. People Not Popular on Chart and People are Not similar

    对每张专辑计算并求和这 4 个值。值越高,推荐相册越高。

    我暂时将配置设为 a = 1, b =0.8, c=0.6, d = 0.4。并假设存在一些关系,这表明有些人喜欢专辑。如果您仅基于图表制作逻辑,则仅使用 a & b。
    MATCH (me:People)
    where id(me) = 123
    MATCH (a:Album { id: 456 })-[:is_a_type_of]->(t:Type)<-[:is_a_type_of]-(recommend)
    OPTIONAL MATCH (recommend)<-[:ARTIST_OF]-(a:People)-[:POPULAR_ON]->(:Chart)
    WHERE exists((me)-[:SIMILAR_TO]->(a))
    OPTIONAL MATCH (recommend)<-[:ARTIST_OF]-(b:People)-[:POPULAR_ON]->(:Chart)
    WHERE NOT exists((me)-[:SIMILAR_TO]->(b))
    OPTIONAL MATCH (recommend)<-[:LIKES]-(c:People)
    WHERE exists((me)-[:SIMILAR_TO]->(a))
    OPTIONAL MATCH (recommend)<-[:LIKES]-(d:People)
    WHERE NOT exists((me)-[:SIMILAR_TO]->(a))
    RETURN recommend, (count(a)*1 + count(b)*0.8 + count(c)* 0.6+count(d)*0.4) as rec_order
    ORDER BY rec_order DESC
    LIMIT 10;

    关于Graph DB 在 Neo4j cypher 中获得下一个最佳推荐节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32917448/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com