-2

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

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

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

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

4

1 回答 1

0

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

  1. 使用 Dataset 类创建了一个 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 模型好。

就是我实现它的方式。

于 2021-09-21T10:15:59.117 回答