使用 lightfm 预测新用户

predict new user using lightfm

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

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

我尝试使用 predict() 或 predict_rank(),但我没弄清楚如何使用。 你能给我一些建议吗?

下面是我的 screenshot 引发了 ValueError..

我遇到了同样的问题, 我所做的是

  1. 使用数据集 class

    创建了一个 user_features 矩阵(根据他们的偏好)
     dataset = Dataset()
     dataset.fit(user_ids,item_ids)
     user_features = build_user_features([[user_id_1,[user_features_1]],..], normalize=True)
    
  2. 在培训期间与互动 CSR 一起提供

    model = LightFM(loss='warp')
    model = model.fit(iteraction_csr,
                  user_features=user_features)
    
  3. 为新用户使用他们的偏好创建 user_feature 矩阵(在 我的案例类型 )

    dataset.fit_partial(users=[user_id],user_features=total_genres)
    new_user_feature = [user_id,new_user_feature]
    new_user_feature = dataset.build_user_features([new_user_feature])
    
  4. 现在使用 new_user 功能预测项目排名

    scores = model.predict(<new-user-index>, np.arange(n_items),user_features=new_user_feature)
    

这为新用户提供了相当不错的结果,但不如纯 CF 模型好。

This 我是这样实现的。