在推荐系统中,如何避免推荐用户刚刚购买的产品?

数据挖掘 推荐系统
2022-03-08 06:34:20

假设我正在经营一家在线商店,该商店销售许多产品,但只有几个类别,例如:ABC

假设用户购买了 A 类别的产品,并且至少在一段时间内没有向他推荐该类别的产品的感觉。这可能是“您可能还喜欢”面板的形式,或者实际上是对推荐引擎本身的修改。

更好的是:假设我知道之后从类别中重新购买的产品(其他类别相同)。P(Δt|A)ΔtA

我的问题是:如何为每个类别 ,这样一旦给定用户购买了类别中的产品,该类别中的其他产品就不会去推荐给该用户的时间τXX{A,B,C}XτX

不向用户展示该类别产品的主要“好处”是我们可以将推荐位置用于其他类别,从而增加用户购买新产品(来自其他类别)的机会。

这种设置是否类似于任何众所周知的问题?我应该使用哪些关键字来查找更正式的问题陈述和/或可能的解决方案?

1个回答

有趣,所以是的,我假设您可以从您的数据中找出类别内购买之间的时间。一些随机的想法:

我能想到的最简单的答案是找到每个类别的平均时间并将其用作阈值。根据经验,这是客户更有可能再次购买的点。

这是相当二元的,只是从一个类别中删除所有建议。例如,您可以想象,当经过足够时间的累积概率为 20% 时,将 20% 的顶级推荐保留在 A 类中。或将其分解为评分函数,乘以该概率,然后重新排序。(也就是说,有 80% 的机会根本不感兴趣,有 20% 的机会像往常一样感兴趣。)

为此,您可能需要拟合一个分布,而Weibull似乎很有吸引力。作为指数的泛化,可以将其视为诸如购买等事件之间的时间,其中速率是恒定的,它可以适应随时间增加的速率。也就是说,回购率从低位开始,然后增加。

两者都过于悲观,因为您更想评估他们何时愿意再次购买,而不是再次购买,这在您的数据中可能很少见。或许您可以对已经购买和未购买该类别的人的每个类别的购买率进行建模,并凭经验计算出购买率何时会恢复到相似水平。