基于主题的推荐系统的用户配置文件

时间:2012-10-06 20:31:45

标签: python machine-learning recommendation-engine latent-semantic-indexing topic-modeling

我正在努力想出一个基于主题的推荐系统来向用户推荐相关的文本文档。

我在维基百科语料库上使用gensim训练了一个潜在的语义索引模型。这使我可以轻松地将文档转换为LSI主题分发。我现在的想法是以同样的方式代表用户。然而,当然,用户有观看文章的历史,以及文章的评级。

所以我的问题是:如何代表用户?

我的想法如下:将用户表示为所有查看文档的聚合。但是如何考虑评级?

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

我认为这不适用于lsa。

但是你可能会做某种k-NN分类,其中每个用户的坐标都是查看过的文档。每个对象(=用户)发出辐射(强度与距离的平方成反比)。强度根据单个文件的评级计算。

然后你可以在这个超维空间中放置一个对象(用户),看看其他用户给出的最多“光”。

但是:Apache Lucene不能为你做那整件事吗?

答案 1 :(得分:0)

"将用户表示为所查看的所有文档的聚合" :考虑到你处于线性空间,这可能确实有效。您可以轻松地将所有文档向量添加到一个大向量中。

如果您想添加评分,您可以简单地在总和中加上一个系数。

假设您将所有在矢量D2中评级为2的文档分组,在D3等中评定为3等等......然后您只需将用户矢量定义为U = c2 * D2 + c3 * D3 + ... 您可以使用各种形式的c2,c3,但最简单的方法是简单地乘以评级,并除以最大评级以归一化原因。

如果你的最高等级是5,你可以定义例如c2 = 2/5,c3 = 3/5 ......