我正在使用Python的隐式库(https://github.com/benfred/implicit),希望为我的用户基础生成一些产品推荐。我有来自用户基础的13,000条产品浏览数据。我已经将这些数据提取到一个如下所示的csv文件中:
user_id, 1, 2, 31, 0, 1, 02, 1, 1, 03, 0, 0, 1
上面的csv文件顶部是产品ID,第一列的左侧是用户ID。每位用户的1或0表示该用户是否浏览过该产品ID。以下是我目前尝试生成推荐的代码:
遗憾的是,当我运行代码时,结果只得到一堆空数组,这让我觉得我肯定做错了什么。我猜可能是导入数据的格式问题,但我很难找到关于读取到该库的示例数据格式的信息。
回答:
像这样加载数据时,您的交互矩阵仍然为每个项目/用户对保留了一个条目——这对于该库来说表示每个用户都喜欢每个项目。推荐调用默认情况下会移除已经喜欢的项目(通过filter_already_liked_items参数),导致结果像您看到的那样为空数组——但这也意味着您训练的模型也不会有任何效果。
您应该在拟合模型之前调用interactions.eliminate_zeros()
来移除零条目。此外,与其使用CSV格式的密集矩阵并转换为coo格式,不如直接列出项目ID/用户ID/值的三元组可能会更简单。