我正在使用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中?
从性能的角度来看,基于图的推荐系统可能会有更好的选择。如果有人有建议(例如项目排名或其他算法),也可以在这里获得一些想法。
我喜欢这个话题,但有时我会走到我的边界。