如何在高维空间中编码时间?

数据挖掘 机器学习 时间序列 特征工程 词嵌入
2022-02-27 17:37:04

我有一个表单数据集,text, text, category, category, time, text我想将注意力机制应用于它。这要求所有输入都在同一个向量空间中。我正在对 -type 数据使用特定的编码方法(来自 BERT),我可以为这些特征text构建一个自定义的可训练嵌入。category但是,我没有嵌入时间数据的好方法。

目前,我的时间特征在 上进行了标准化[0,1],并表示在一段时间(一年)内创建帖子的时间。天真地,我会将其拆分为monthday of weektime of dayfeatures 来进行特征工程,但我没有一个很好的方法可以将它嵌入到非常高维空间(比如 500+ 维空间)中。

这里最好的选择是什么?我想避免平铺或重复相同的功能集以达到必要的维度——有没有更好的方法?我也可以在这三个特征之上放置一个可训练的嵌入层,但这似乎不是最理想的。

2个回答

我不知道这是否是一种好技术,但我去年看到这篇论文提出了一个 time2vec,类似于 doc2vec 等:

SM Kazemi 等人,“Time2Vec:学习时间的向量表示”,arXiv:1907.05321 [cs],2019 年 7 月。

这取决于您要捕获的信息:

  • 如果您想捕捉时间的流逝,将您的日期编码为自参考日期以来的天数可能是一个好主意。

  • 如果你想编码时间的周期性(一年中的几个月),你可以在一个圆圈上编码你的月份变量。