繁体   English   中英

ArangoDB-基于图的推荐系统

[英]ArangoDB - Graph based recommender system

我正在使用ArangoDB,并且尝试使用它构建基于图形的推荐系统。

数据模型仅包含用户,项目和等级(边)。

因此,要使用katz度量来计算用户对电影的亲和力

最终我想这样做:

Get all (or a certain number of) paths between a user and a item
For all of these paths do the following:
  Multiply each edge's rating with a damping factor (e.g. 0.7)
  Sum up all calculated values within a path
Calculate the average of all calculated path values

其结果是某种用户和项之间的亲和力加权与中间的评分和衰减通过定义的因子。

我试图在AQL中实现类似的功能,但它要么错误,要么太慢。 这样的算法在AQL中如何表现?

从性能的角度来看,基于图的推荐系统可能会有更好的选择。 如果有人提出建议(例如,项目等级或其他算法),那么在这里获得一些建议也将是不错的。

我喜欢这个话题,但有时我会陷入困境。

在下面,@start和@end是代表两个端点的参数; 为简单起见,我假设:

  1. 最大允许路径长度为10000
  2. “比率”是“边”集合的名称
  3. “评级”是赋予边缘权重的属性名称
  4. “阻尼”因数是根据要求
FOR v,e,p IN 0..10000 OUTBOUND @start rates
    OPTIONS {uniqueVertices: "path"}
    FILTER v._id==@end
    LET r = AVERAGE(p.edges[*].rating) * 0.7
    COLLECT AGGREGATE avg = AVERAGE(r)
    RETURN  avg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM