我正在尝试使用我在数据集中拥有的功能来训练 LightFM 推荐器模型。我的数据如下所示: 训练和测试交互数据:shape = (730799, 115552) 我负责删除测试数据中的交互,因为我正在尝试检查关于看不见的项目的建议。我从数据中的两个特征构建了一个特征矩阵,并将 itemId 添加为虚拟特征,这样我的项目特征矩阵的形状变为(115552、115659)。
我正在这样定义我的模型:
model = LightFM(loss='warp',
item_alpha=1e-6,
no_components=200,
learning_rate=0.005)
我运行了不同数量的组件,一次运行了 50 个 epoch,并计算了验证 AUC,如下所示。如您所见,在所有情况下,验证 AUC 仅在几次迭代 (2-3) 后达到峰值并下降。
作为交叉检查,我也只运行了虚拟特征,即项目的单位矩阵。由于我试图预测看不见的项目,AUC 性能很糟糕,但至少它是有意义的,并且会随着迭代次数的增加而增加,如下所示。
为什么具有附加功能的模型不学习任何东西,即。两三次迭代后下降?有没有其他的把手可以用来解决这个问题?