具有多个特征(属性)的预测

数据挖掘 机器学习 rnn 美国有线电视新闻网 矩阵分解
2022-03-02 10:09:29

我最近使用了一种预测算法来尝试预测用户愿意使用 ALS(矩阵分解)与项目交互的程度,但我必须将多个属性“压缩”为一个,为这些值确定一些任意权重才能能够计算要使用的评级。

它可以工作(有点),但我认为这绝对是错误的,因为手动加权属性是静态的,并且不能动态地适应数据本身。

我正在考虑切换到分布式随机森林算法,但即使它会(随机)使用所有属性,它们也不会一起使用,这使得它不适合我的目的。

在我的研究中,我发现循环神经网络可能适合我想要实现的目标,但在关注它们之前,因为我不是该领域的专家,我想提出一些建议:)

可能我可以利用 RNN 的时间序列特性,但现在我更喜欢专注于支持我拥有的一组属性。

目前,ALS 的“评级”是根据以下属性计算得出的:

  • 用户查看商品页面的次数
  • 用户查看类别页面的次数
  • 用户查看子类别页面的次数
  • 用户从该类别购买了多少次
  • 用户从子类别购买了多少次
  • 用户在多长时间前购买了该商品
  • 用户多久以前从同一类别购买过东西
  • 用户多久以前从同一个子类别购买过东西

(和类似的)

值得尝试使用 RNN 吗?如果是,我应该尝试使用 tensorflow 还是 caffe?

谢谢!

1个回答

对不同的操作进行加权以衡量用户和项目之间的偏好,然后使用 ALS 计算潜在特征空间并没有什么“错误”。这在我的经验中很常见。然而,ALS 的结果是它可以使用单个用户/项目交互来检测类别和子类别。所以,我不明白为什么需要将更高级别的偏好数据添加到用户/项目矩阵中。加权应该仅使用指示特定用户和特定项目之间偏好的行为来完成,而不是用户/类别或用户/子类别交互 - ALS 将检测用户是否自己喜欢一个类别。

如何对偏好行为进行加权有些棘手,但您可以使用启发式方法或数据中的信息。例如,页面浏览量不如产品购买力强,应降低权重。您可能会查看页面浏览量与购买量的分布,以了解一种与另一种的常见程度,从而制定加权方案。

我相信您也可以在分类设置中使用 RNN,在给定用户购买或与之交互的最后 n 件商品的输入序列的情况下,预测用户将购买的下一件商品。您使用的框架取决于您的偏好,对于基于 Python 的 Keras、MXNet、PyTorch 和 Tensorflow 都是值得的。为了便于 Spark 集成和基于 JVM,DL4J 是一个不错的选择。