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

问题描述 投票:0回答:1

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

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

我想知道是否有更好的方法来按比例设计系统,即该系统是否必须处理数百万篇文章和数百万用户的范围?

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

sql database database-design architecture recommendation-engine
1个回答
1
投票
用户自行指定过滤器,并且应该发送与过滤器匹配的新文章?听起来更像是“如果有新文章来,请提醒我”?

自发地提出这个想法:

  • 如果文章数量>>用户,则反逻辑:在每篇新文章上,检查是否有某些用户过滤匹配项,并将其附加到用户的Alertchannel上。(对于新文章,复杂度为O(n),其中n是用户数量)
  • 如果可以轻松地对过滤器评估进行规范化(并划分为过滤器部分),则可以单独存储过滤器,并使用该过滤器将过滤器的参考信息提供给用户。然后,您只需要评估新文章是否与过滤器匹配。(对于新文章,复杂度为O(n),其中n是过滤量)

常规:

    通过异步处理所有这些来减轻峰值。例如。将新文章缓存在队列中,并逐步进行处理。同样对于每个用户的“警报频道”,您可以使用发布/订阅频道
  • [其他想法:

      考虑使用现有的库和工具进行基于项目(或用户项目)的建议
  • 通常,一旦需要,您的评估就变得越来越复杂(可以更简单地开始使用,并且如果适用于您的情况,算法的缩放比例将不完美)
  • © www.soinside.com 2019 - 2024. All rights reserved.