组预测

数据挖掘 深度学习 rnn 预言 顺序 序列到序列
2022-03-04 14:31:56

我每天都有以下类型的数据:

(0)(3,4,5)(6,9,1)(5,35,12,232)

(1)(5,1,4)(6,2)(12,54,12,43)(8,23,65)

(2)(6,7,2)(34,3)

(3)(4323,23,12,4543)

(4)(987,32,324,23,224,12,213,21)(1,2)

(5)(3242,23,23434,34,324,322)(4,342,423,4)(3,1,30)

(6)(1,2,3,4,5)(6,7)(8,9,10)

(0)(1,2)

(1)(54,12)(45,21,5,19)(9,8,6,41)(432,1,431,2)

在每个序列中,第一个数字表示一周中的某一天 (0-6)。所有其他数字表示用户 ID。第一个序列的含义是:周日(0),以下用户遇到了3个不同的组:(3,4,5),(6,9,1),(5,35,12,232)什么是最好的方法用于预测第二天的用户组?我可以使用 RNN 吗?我应该研究的任何具体方法?有没有与此密切相关的经典问题?

2个回答

RNN 可用于此类任务,但还有另一种基于非深度学习的方法可能在此处有所帮助,请参阅关联规则学习

我看到您的问题由两部分组成:

  1. 预测哪些用户将参与。
  2. 预测组的数量以及单个组的组成。

对于第一部分,您可以对每个用户 id 使用隐马尔可夫模型 (HMM),它基本上对概率进行建模,以便在用户参与的先验知识 ('PNNPPPN') 的情况下预测用户下次参与的可能性。[其中“P”代表参与,“N”代表未参与,序列是特定用户的 1 周历史记录。]

对于第二部分,您可以使用Word2vec获取每个用户的向量嵌入。当您可视化这些向量(在二维空间中)时,您可以看到倾向于更频繁地形成组的用户彼此更接近的集群。

因此,通过以上两件事,您现在知道某个特定用户今天是否会参与,以及哪些其他具有相似向量嵌入的用户也可能参与,您可以预测特定日期的组。

(这是一种方法,当然还有其他方法。)