我有一个关于 LightFM 使用的基本问题,如果这不是合适的论坛,请原谅。我正在构建一个推荐系统,它将向用户推荐文档。目前还没有互动...
我有一个关于使用 LightFM ,如果这不是合适的论坛,请原谅。
我正在构建一个推荐系统,用于向用户推荐文档。目前还没有交互,我们对用户的了解仅限于他们感兴趣的关键字集。
我构建了一个原型,使用 TF-IDF 转换每个文档。然后,我使用相同的转换器转换用户的关键字,并使用余弦相似度来查找最相关的文档。效果相当不错。
我现在正在将其移植到 LightFM,以便我们可以包含交互,但首先我需要系统的性能与 TF-IDF 解决方案一样好,但我很难让它发挥作用。这是当前的方法:
首先,我在语料库中的所有项目上构建一个 LightFM Dataset
对象,使用 TF-IDF 来构建项目特征。(因此,每个项目都由一个约 3300 个元素的稀疏向量表示,其中每个条目对应于一个词干和该词的 TF-IDF 权重。)
当收到针对新用户的推荐请求时:
item_features
由语料库的项目特征和伪文档的特征连接而成
在我的单元测试中,我有 52 个文档,它们被转换为约 3300 列的 TF-IDF 向量。用户的伪文档被转换为一个向量,其中包含与该关键字相对应的单个 1.0 条目。
因此,我期望预测结果会给那些与关键词对应的 TF-IDF 条目也较高的文档打出高分。但结果却是,分数差不多,大约为 -0.5。
我在这里做错什么了吗?