与顺序无关的深度学习模型



我有一个并行时间序列的数据集。列"A"取决于列"B"和"C"。依赖列的顺序(和数量)可以更改。例如:

A   B    C
2022-07-23  1  10  100
2022-07-24  2  20  200
2022-07-25  3  30  300

我应该如何转换这些数据,或者我应该如何构建模型,以便列"B"和"C"("A"、"B"、"C"与"A"、"C"、"B")的顺序不会改变结果?我知道GCN,但我不知道如何实现它。也许还有其他方法可以实现它。

更新:

我想概括一下我的问题,再举一个例子。假设我们有一个矩阵作为单一观察(没有时间序列数据):

col1 col2  target
0     1    a      20
1     2    a      30
2     3    b      30
3     4    b      40

我想预测每行/实例一个值"目标"。每个实例都依赖于其他实例。行的顺序无关紧要,每个观察中的行数可能会更改。

您正在寻找对列的排列不变操作。

实现此目的的一种方法是应用按列操作,然后应用全局池化操作.
如何实现您的目标:

  • 按列操作是排列等变的;也就是说,对列应用操作并排列输出与排列列然后应用操作相同。
  • 跨列的
  • 全局池化操作(例如,max-pool、avg-pool)是排列不变的:平均池的结果不依赖于列的顺序。
  • 在置换
  • 等变运算之上应用置换不变运算会产生整体置换不变函数。

此外,您应该查看自我注意层,它们也是排列等变的。

我会尝试的是:

  1. 学习单个时间序列的表示(RNN/转换器)。将此表示应用于ABC
  2. 学习A表示与BC之间的转换:也就是说,使用A表示为"查询",将BC表示为"键"和"值"。

这将为您提供A的表示形式,该表示BC中的排列不变。


更新(2022 年 8 月 3)

对于具有不同行数和固定列数的"观察"的情况:
我认为您可以将每一行视为"标记"(具有固定维度 = 列数),并应用转换器编码器从编码的标记中预测每个"标记"的目标。

最新更新