繁体   English   中英

文章个性化推荐系统的系统数据库设计

[英]System database design for article personalized recommendation system

您好我正在设计一个系统,它从 API 中获取文章链接,将文章分类,然后根据用户指定的过滤参数将推荐文章链接列表发送给用户。

我计划的初始方法是使用 SQL 数据库来存储排序的文章以及用户信息。 然后我每天都会在文章数据库上运行 SQL 查询,以获取相关文章链接。 我需要弄清楚的一件事是处理重复的文章/用户,但即使假设存在独特的实例,这种方法似乎效率很低。

我想知道是否有更好的方法来设计系统的规模,即系统是否必须处理数百万文章和数百万用户的 scope?

根据相似的文章过滤参数将用户分组在一起是否会有所帮助(因此,如果两个或多个用户具有相同的文章数据库查询,则可能需要运行的查询更少)? 或者这种努力会不会太复杂,不值得?

用户自己指定过滤器并且应该发送匹配过滤器的新文章? 听起来更像是“如果有新文章到达时提醒我”?

不由自主地产生了这样的想法:

  • 如果文章数量>>用户然后反转逻辑:在每篇新文章上检查是否有一些用户过滤器匹配并将 append 它发送到用户的警报通道。 (对于新文章的复杂度是 O(n) 其中 n 是用户数量)

  • 如果过滤器评估可以很容易地标准化(并拆分为过滤器部分),那么将过滤器单独存储并从过滤器引用到使用该过滤器的用户。 然后您只需要评估新文章是否与过滤器匹配。 (对于新文章的复杂度是 O(n) 其中 n 是过滤器数量)

一般的:

  • 通过异步处理所有这些来卸载峰值。 例如,在队列中缓冲新文章并逐步处理它们。 对于每个用户的“警报频道”,您也可以使用发布/订阅频道

其他想法:

  • 考虑使用现有的库和工具进行基于项目(或用户项目)的推荐

并且通常会在需要时增加评估的复杂性(可以更简单地开始,并且如果算法适用于您的情况,则可以不完美地扩展)

暂无
暂无

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

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