问题标签 [lightfm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
279 浏览

python - 无法安装 Lightfm

这是我尝试安装某些库时遇到的错误。我已经尝试将我的 pip 更新到最新版本。我正在使用 python 3.8.5

0 投票
0 回答
97 浏览

python - 如何为 LightFM fit 建立交互?

我想用如下所示的 Dataframe 训练 LightFM。

FromUserID 标题 邮政编号 意见 喜欢
1 蟋蟀 34 12 8
6 移动的 37 11 6
3 电视 34 8 5
5 世贸中心决赛 30 6 5

我已经用 Views 列训练了模型(工作正常),但还想添加 Likes 列。我已经看过很多例子,但是我仍然无法理解如何根据我拥有的数据框训练模型。

以下是我到目前为止尝试过的代码片段,

如何使用 Views 和 Likes 列训练模型?

任何有助于我理解的建议或代码片段都将不胜感激。谢谢你

0 投票
0 回答
96 浏览

python - 预测 LightFM 的负分

我正在尝试将 LightFM 用于餐厅推荐系统。所以这是预测结果: 在此处输入图像描述

结果是从最高到最低,由评分确定,从交互矩阵评分等。但是正如你所看到的,评分结果都是负数,到目前为止我没有从输入其他餐厅得到正分进行推理/预测。

由于 LightFM 评分没有任何规模/范围,那么负分数是坏的还是什么?并且像 Apriori/Association 规则一样有支持度、置信度等参数。那么 LightFM 有什么衡量标准让我可以相信这个结果?除了来自模型训练的 AUC 分数。

0 投票
0 回答
74 浏览

python - 拟合“LightFM”推荐器后如何获取项目特征的权重?

我真正需要的是 feature_importance 之类的东西。最后我明白了如何得到它:


要手动从 Light FM 获得分数,我们必须乘以以下矩阵:
user_features_matrix * item_features_matrix * item_embedings * user_embedings = Light FM 的分数

因此,要获得用户特征权重,我想我们应该这样做:
user_features_matrix * item_features_matrix * user_embedings = item_weights


我们懂了。权重有助于对每个项目的重要特征进行排序。

要获取嵌入,请使用以下函数:
user_embedings = model.get_user_representations
item_embedings = model.get_item_representations
user_features_matrix = the matrix we used to fit the model
item_features_matrix = the matrix we used to fit the model

0 投票
2 回答
67 浏览

python - 如何制作与字符串值对应的整数索引?

我目前正在使用 Goodreads 数据构建推荐系统。

我想将字符串用户 ID 更改为整数。当前的用户ID是这样的:'0d688fe079530ee1fe6fa85eab10ec5c'

我想将其更改为整数(例如,,,1... 23,以具有共享相同字符串 ID 的相同整数 ID。我考虑过使用 function df.groupby('user_id'),但我不知道如何做到这一点。

如果有人让我知道如何更改,我将非常感激。

截屏

0 投票
0 回答
13 浏览

python - 如何从传递到稀疏矩阵的 id 中获取索引?

尝试使用 LightFM 的预测,但是它需要行/用户的内部 id 和列/项目的内部 id。一个 coo 矩阵被传递到 lightfm 中。

我将 3 个 numpy 数组传递给了 COO 矩阵。但是我不能获取该数组中的索引,因为它与 coo 矩阵的索引不同。

因此,如果我想对用户/行进行预测,如何获取其 db id 并将其与内部 coo 矩阵行索引相关联?

例如model.predict(internal_user_ix)

0 投票
1 回答
306 浏览

python - 使用 lightfm 预测新用户

我想向使用 lightfm 的新用户推荐。

嗨,我有模型、交互、item_features。新用户不在交互中,新用户的唯一信息是他们的评分。(book_id 和评分对列表)

我尝试使用 predict() 或 predict_rank(),但我不知道如何使用。你能给我一些建议吗?

下面是我的截图,它引发了 ValueError ..

0 投票
0 回答
100 浏览

machine-learning - 具有项目特征的 LightFM 不学习

我正在尝试使用我在数据集中拥有的功能来训练 LightFM 推荐器模型。我的数据如下所示: 训练和测试交互数据:shape = (730799, 115552) 我负责删除测试数据中的交互,因为我正在尝试检查关于看不见的项目的建议。我从数据中的两个特征构建了一个特征矩阵,并将 itemId 添加为虚拟特征,这样我的项目特征矩阵的形状变为(115552、115659)。

我正在这样定义我的模型:

我运行了不同数量的组件,一次运行了 50 个 epoch,并计算了验证 AUC,如下所示。如您所见,在所有情况下,验证 AUC 仅在几次迭代 (2-3) 后达到峰值并下降。

具有特征的 AUCAUC 50 个时代

作为交叉检查,我也只运行了虚拟特征,即项目的单位矩阵。由于我试图预测看不见的项目,AUC 性能很糟糕,但至少它是有意义的,并且会随着迭代次数的增加而增加,如下所示。

AUC 虚拟 50 epochs

为什么具有附加功能的模型不学习任何东西,即。两三次迭代后下降?有没有其他的把手可以用来解决这个问题?

0 投票
0 回答
186 浏览

python - 如何为 LightFM 推荐模型构建 dataset.build_item_features?

我正在使用 LightFM 对推荐系统进行建模,并尝试在 Steam 数据上构建数据集。我最初的部分代码如下:

当我运行 dataset.builf_item_features 时,我收到以下错误,即 app_name 不适合数据集,即使我之前在该功能上调用了 fit_partial。

有人可以帮我吗?

0 投票
1 回答
95 浏览

python - 对于任何用户 lightfm 的新交互,在 fit_partial 之前和之后的建议都是相同的

对于任何用户,假设出现了一些新的交互,然后我使用 partial_fit 仅使用新的交互数据来拟合数据集和模型,并且在部分拟合该用户之前和之后我得到相同的结果。