推荐系统:如何处理随时间变化的项目?

数据挖掘 推荐系统
2022-02-15 22:17:39

假设我正在构建一个推荐系统,其中项目随时间而变化。我们假设每笔交易由以下部分组成:

  • 一个物品i在项目列表中(i1,i2,i3,..,im).
  • 用户u在用户列表中(u1,u2,u3,...,un).
  • 一个约会t在日期列表中(t1,t2,...tk).

我们假设物品具有随时间变化的基本特征。例如,如果我们考虑零售产品,基本特征可能是:

  • 客户购买交易时应用于项目的折扣级别(5%、10%、20%、30%、...)。

另一个例子,如果我们考虑金融股,随时间变化的基本特征可能是:

  • 交易时的库存情况(低估或高估)。
  • 交易时股票的中央银行政治(低利率、中利率、高利率)

我们假设这些底层特性对用户有很大的影响。它完全推动了他们购买或不购买物品的决定。如果我们考虑两个项目i1i2, 时t1, 给定用户u1可能更喜欢i1超过i2因为i1的基本特征比i2的。如果我们考虑不同的时间,也许u1可能更感兴趣i2i1.

我的问题是:如何考虑推荐系统中随时间变化的基本特征,例如用户-用户协同过滤、SVD、ALS……?

2个回答

您将寻找经典推荐系统算法的增量、在线或动态版本。这些是与随时间变化相关的术语。

另一种选择是强化学习。强化学习框架还可以对随时间的变化进行建模。大多数工作都是在多臂强盗中完成的,以提供建议。

在协同过滤的情况下,所有事情都是基于评分矩阵完成的,那么产品功能的变化应该首先反映到用户的新评分中,从而反映到最终推荐中。

这与用户及时更改其偏好的方式相同。通常遵循两种方法,创建时间感知模型 (timeSVD++),其中评级漂移是及时建模的,或者通过评级的时间衰减函数建模。可以在此处找到有关第一个 opnes 的良好资源

如果您使用分类方法,即如果用户将使用产品,那么这应该不是问题。