如何在项目到项目协同过滤中创建用户和项目配置文件?(非评级案例)

数据挖掘 机器学习 预测建模 推荐系统
2022-02-14 03:39:16

我想为一个优惠券网站建立一个推荐系统,它应该做以下事情:给定用户过去的购买行为,推荐用户可能购买的优惠券。该数据没有用户对优惠券的任何评级。它告诉用户是否购买了某个优惠券,它属于哪个类别,购买这些优惠券的用户的性别和位置等?我正在实施一个项目到项目的协同过滤。根据我通过有关该主题的视频所学到的知识,以下是我的方法:

  1. 建立所有优惠券的项目资料,其中包含优惠券类别、优惠券可用位置以及可以兑换优惠券的日期等属性。
  2. 建立所有注册用户的用户档案,包括年龄、性别和位置等属性。

现在我正在制作一个项目和用户矩阵,我将在其中的行中放置优惠券,在列中放置用户。根据用户 U1 过去是否购买了优惠券 C1,我将填写 0 和 1。在同一个数据集中,对于我要预测的优惠券,我将根据项目之间的余弦相似度计算分数。

我的问题是,如果我只使用 0 和 1(是否购买优惠券)来推荐优惠券,那么商品和用户资料有什么用?如果用户过去从 X 类别购买的优惠券多于向他推荐同一类别的新 Y 优惠券,我如何将智能整合到推荐系统中?我在网上阅读了有关使用随机森林等计算推荐系统中属性的“权重”的信息,它们在这种情况下适合什么?

PS我在R中做所有事情。

非常感谢您的任何建议/建议。

1个回答

您可以使用您的项目和用户配置文件生成预测函数(即预测优惠券与用户的相关程度的函数,也称为您的项目和用户的表示)。用于此目的的典型函数是点积和余弦相似度。此步骤确保推荐中的智能将包含类别信息。

一旦您的分数被预测,您必须使用损失函数将它们与您的历史交互进行比较(一些示例是均方根误差和 Kullback-Leibler 散度)。此步骤将产生一个错误,您可以使用该错误通知您的算法进行学习(例如调整项目和用户的表示函数中的权重)。

有关更多详细信息,我强烈建议您查看 James Kirk 编写的精彩幻灯片,这些幻灯片提供了一个框架来统一对该主题所做的研究。