首先,假设输入的时序维度为[B, T, N],作者便做了2种采样:
-
连续采样:侧重于捕获短期局部模式。
-
间隔采样:侧重于捕获长期依赖性。
如下图所示,很好理解,新的数据维度为[B, C, T/C, N],N代表时序的数量。
注意:论文上IEBlockC是直接出预测结果,但代码上,如上图红色标注补充,会有个从输入端过来的预测highway结果,然后和IEBlockCx相加后,作为最终预测输出。
之后经过一个Information Exchange Block (IEBlock)模块,这个模块很简单,就是对每条时序[B,C,T/C,1]分别做temporal projection (C维度上经过MLP) 和channel projection (T/C维度上经过MLP),然后两个结果[B, F’, T/C]相加后,喂入MLP,得到最终输出,维度为[B,F,T/C,1]。
注意:论文上是temporal projection结果串联喂入channel projection,而代码实际上这两个projection是并行处理输入的,然后在相加后喂入output projection。
两种采样结果分别经过各自的IEBlock后,再经过线性层转换,合并结果ÿ