如何在Memgraph MAGE的nxalg中格式化个性化PageRank的个性化向量?
Memgraph MAGE nxalg.pagerank 个性化参数格式说明与示例
核心规则
personalisation 参数需要传入可直接转换为Python字典的字符串,具体要求:
- 字典的键必须是节点ID的字符串形式(无论节点ID是数字还是字符串类型,都要以字符串格式写入)
- 字典的值是数值类型(整数或浮点数),代表对应节点的个性化权重
- 未在字典中指定的节点,个性化权重默认设为0,所有权重会自动归一化处理(无需手动保证总和为1)
示例1:节点ID为数字的场景
假设你想给ID为1和3的节点分配个性化权重,查询写法如下:
CALL nxalg.pagerank( {damping_factor: 0.85, max_iter: 100}, // 可选配置参数 "{'1': 0.6, '3': 0.4}" // 个性化向量字符串 ) YIELD node, rank RETURN node.id, rank ORDER BY rank DESC;
示例2:节点ID为字符串的场景
如果你的节点ID是自定义字符串(比如用户ID),格式逻辑一致:
CALL nxalg.pagerank( {}, "{'user_alice': 0.7, 'user_bob': 0.3}" ) YIELD node, rank RETURN node.id, rank ORDER BY rank DESC;
权重归一化说明
如果传入的权重总和不为1,内部会自动做归一化处理。比如传入 "{'1': 2, '2': 1}",实际会被转换为 {'1': 0.666..., '2': 0.333...} 参与计算。
内容的提问来源于stack exchange,提问作者Juliette Gia
相关产品推荐
相关产品推荐

