2

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

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

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

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

有任何想法吗?

谢谢

4

2 回答 2

1

我认为这不适用于 lsa。

但是您也许可以进行某种 k-NN 分类,其中每个用户的坐标是查看的文档。每个物体(=用户)发出辐射(强度与距离的平方成反比)。强度是根据单个文档的评级计算的。

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

但是:Apache Lucene 不能为你做所有的事情吗?

于 2012-10-06T21:29:44.407 回答
0

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

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

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

如果您的最高评分为 5,您可以定义例如 c2=2/5, c3=3/5 ...

于 2013-01-29T13:08:48.700 回答