基本上,这个想法是让用户关注网站上的标签,因此每个用户都有一组他们关注的标签。然后是一个文档集合,其中集合中的每个文档都有一个标题、描述和一组标签,这些标签与作者确定的文档中正在讨论的主题相关。考虑到我们拥有的信息,向用户推荐文档的最佳方式是什么,这还将考虑文档标题和描述与用户标签的语义相关性,无论是词嵌入解决方案还是 tf -idf 解决方案或混合解决方案,请务必说明。我仍然不知道我将如何处理标签同义词,它可能必须像在 stackoverflow 上那样进行协作,但如果有解决方案或伪解决方案,我'
在给定一组用户标签的情况下构建基于标签的推荐引擎?
数据挖掘
nlp
推荐系统
词嵌入
信息检索
2022-01-30 11:43:00
2个回答
如果我的问题描述正确,那么您正在寻找推荐系统,例如 Netflix 或 Amazon 使用的推荐系统。最先进的解决方案是使用潜在狄利克雷分配主题建模来根据主题(在您的情况下,主题将是标签)提出建议。这是一个关于这个主题的非常好的视频教程:https ://youtu.be/3mHy4OSyRf0
对于标准版本的 LDA,您甚至不必定义标签,您只需在所有文档中定义不同标签的值。例如,如果您有 10000 个文档并且您想使用 100 个不同的标签,该方法会将您的单词/文档矩阵转换为主题/文档矩阵。
单词/文档矩阵的条目只是所有文档作为列,所有单词(来自所有文档)作为行,然后对于每个文档,您都有每个单词的计数。
主题/文档矩阵的条目是所有文档作为列,所有可能的主题作为行,然后对于每个文档,每个主题都有 78% topic1、12.5% topic95、0% topic99 等条目。
一旦你有了这些数据,你想根据用户的兴趣(标签)向他推荐一个新文档,或者换句话说,你有一个 user_interests 向量有 100 个条目,其值介于 0 和 1 之间,并且您有主题/文档矩阵你通过多重播放计算一个新矩阵,从这个矩阵计算每一行的总和,并推荐那些总和最高的文档。
如果您只想使用预定义的标签,您可以跳过使用 LDA 方法计算主题/文档矩阵的步骤,只需使用您的数据将您的文档表示为标签/文档矩阵,将您的用户表示为 tag_vectors,从这里开始同上:将矩阵与 user_vector 相乘,计算每一行的总和,并推荐总和最高的文档。
其它你可能感兴趣的问题