您如何为一组标签描述的项目实施“相似项目”系统?
在我的数据库中,我有三个表,Article、ArticleTag 和 Tag。每篇文章通过多对多关系与多个标签相关。对于每篇文章,我想找到五篇最相似的文章来实现“如果你喜欢这篇文章,你也会喜欢这些”系统。
我熟悉余弦相似度 ,并且使用该算法效果很好。但这是慢下来的方式。对于每篇文章,我需要遍历所有文章,计算文章对的余弦相似度,然后选择相似度最高的五篇文章。
200k 篇文章和 30k 个标签,我需要半分钟来计算一篇文章的相似文章。所以我需要另一种算法,它可以产生与余弦相似度大致一样好的结果,但它可以实时运行,并且不需要我每次都迭代整个文档语料库。
也许有人可以为此提出现成的解决方案?我查看的大多数搜索引擎都没有启用文档相似性搜索。