【问题标题】:predict new user using lightfm使用 lightfm 预测新用户
【发布时间】:2021-10-21 17:03:32
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您好,欢迎来到 StackOverflow。请花点时间阅读这篇关于如何提问的文章stackoverflow.com/help/how-to-ask 也阅读这篇关于如何以最低要求提出一个好问题的文章stackoverflow.com/help/minimal-reproducible-example
  • 请与我们分享您的锻炼、代码 sn-ps、错误日志或任何有用的信息,以帮助回答您的问题。
  • @novonimothansk 我添加了屏幕截图,但不知道如何将其直接放入我的帖子中...
  • 感谢您的责任。最好在问题中使用纯文本而不是图像。如果可以,请编辑您的帖子并删除屏幕截图并在此处复制/粘贴您的代码/错误日志。祝你好运

标签: python data-science recommendation-engine lightfm


【解决方案1】:

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

  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 模型。

This 是我实现它的方式。

【讨论】:

  • 感谢您,抱歉迟到了!希望你最好
猜你喜欢
  • 2017-03-12
  • 2017-04-19
  • 2018-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多