Hank0626 / CALF

An official implementation of "CALF: Aligning LLMs for Time Series Forecasting via Cross-modal Fine-Tuning"
Apache License 2.0
46 stars 7 forks source link

input time Series Embedding 如何实现 #4

Open JuergenZhang opened 2 days ago

JuergenZhang commented 2 days ago

在原文图中说的是会对time series进行embedding操作,但是似乎代码当中直接用的是linear层,没有用Embed.py脚本当中的内容

Hank0626 commented 2 days ago

您好,time series的embedding操作是参考iTransformer进行的。对每个channel进行编码成一个独立的token,这一步骤实际的实现就是一个Linear层(对应其Value Embedding)。iTransformer还加上了Position Embedding和Temporal Embedding。对于Position Embedding,由于LLMs里会有,因此无需在embedding层加入。对于Temporal Embedding,因为是对于每个channel进行编码,我们认为无需考虑t维度的embedding,所以没有加入。最终在Encoder_PCA里就体现为一个Linear层。

JuergenZhang commented 2 days ago

好的明白,确实在pytorch当中如果是对三维的数据进行linear操作是默认对每一个维度单独处理,对应你说的每个channel进行单独编码把维度变成hidden_size(原文的768),但是这样的话对应Embed.py里面的内容不就没有被用到了吗,比如我看到里面有class TimeFeatureEmbedding这个类,但是并没有被import使用,是因为后续的论文工作过程当中其实有过调整,原先是打算用的,但是最后没有使用,可以这样理解嘛

Hank0626 commented 2 days ago

我们认为Time Feature Embedding是当对time维度进行编码才有效果。而我们是channel-wise的编码,因此只采用value embedding(即linear层)和LLMs中的positional embedding。

JuergenZhang commented 1 day ago

理解,目前我看论文包括代码层面都有表示当前的输出只选取了时间模态作为最后的输出(for inference),请问团队当中有没有新的idea,来进一步对齐textual prediction和temporal prediction之间的关系(或者我们可以邮件交流这个问题吗?)