[英]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是代表两个端点的参数; 为简单起见,我假设:
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.