pVLDB 2020
1 abstract & intro
这篇论文横向比较了12种 time-series imputation的方法。作者声称这是第一篇深入讨论这些模型的准确度、效率和参数化。
由于不同的方法使用的编程语言不同,作者用C++ 重新写了这些方法eXascaleInfolab/bench-vldb20 (github.com)
当然,这篇文章也有自己的一些finding:
- 没有单一的最佳准确算法。
- SoftImpute 和 TRMF ——>表现出重复趋势的数据集上最准确的算法
- CDRec ——>具有相关性 变化较大的时间序列上最准确的算法
- STMVL——> 是高度相关的时间序列上的最准确算法
- DynaMMo——> 适用于不规则波动的数据集。
- 较大的缺失块有时可以产生更高的恢复精度。
- 这是由于某些算法的迭代性质。 大的缺失块需要大量的迭代,这反过来会产生更好的恢复值。
- BlackOut问题在准确性上仍具有挑战。
- BlackOut是指所有传感器同时没有观测值。
- Table 1 种的方法中,没有一种技术能以高精度进行BlackOut补全。【注:这是20年的paper,之后有方法专门进行blackout的补全】论文笔记:Hankel Matrix Factorization for Tagged Time Series to Recover Missing Values during Blackouts_UQI-LIUWJ的博客-CSDN博客
- 只有 CDRec 和 DynaMMo 显示了(一些)可接受的结果。
- 小维度产生最好的结果。
- 依赖于降维的技术可以获得更好的性能。
- 运行时间差距很大。
- 最有效的算法 SVDImpute 和 CDRec 比最慢的 DynaMMo 快三个数量级。
2 Background
作者把imputation算法分成的两类
- matrix-based方法,如上图(b)
- patten-based方法,如上图(c),查看之间几个interval内时间序列的pattern(query pattern)和需要补全的时间序列的相似程度
论文使用RMSE和MSE作为metric
其中T是missing value 的集合,分别是原始数据和补全预测的值
RMSE会比MSE对大误差更敏感
3 比较的模型
基于矩阵的方法 | SVDImpute(2001) | SVD分解,只选取前面k维 |
SoftImpute(2010) | 论文笔记 Spectral Regularization Algorithms for Learning Large IncompleteMatrices (soft-impute)_UQI-LIUWJ的博客-CSDN博客 | |
SVT(2014) | 基于SVD的分解,但是k是自动确定的 | |
CDRec(2014) | 首先利用interpolation和extrapolation进行初步补全 然后迭代进行如下操作,直到收敛
| |
GROUSE(2016)
| 基于PCA的补全(但PCA不就是SVD嘛。。。不清楚有啥区别) | |
SPIRIT(2005) |
| |
ROSL(2014) |
| |
TeNMF(2017) |
| |
TRMF(2016) | 论文笔记:Temporal Regularized Matrix Factorization forHigh-dimensional Time Series Prediction_UQI-LIUWJ的博客-CSDN博客 | |
基于pattern的方法 | TKCM(2017) | 使用过去某些patten,来判断当下缺失值应该怎么选择 |
DynaMMo(2009)
| 基于卡尔曼滤波和EM | |
STMVL(2016) |
在内部,STMVL 将数据平滑技术与协同过滤相结合,从历史数据中导出模型。 然后,这些模型用于根据传感器的接近程度(由衰减率表示)来估计缺失值。 |
4 实验部分
4.1 数据集& 补全效果
eXascaleInfolab/bench-vldb20 (github.com)
4.2 参数的影响
这里只讨论了每个模型最主要的那个参数对CPU和准确度的影响(每张图都根据其最大值进行相应的放缩)
- 大部分算法中,最重要的是维度K
- 大部分基于矩阵(第一排所有,第二排左三)的模型运行时间和k同增长【除了SVT]
- ——>但是增加k并不会保证performance的增加
- ——>k的作用是降维,保持有用且重要的那些信息;如果k太大的话,边缘和不重要的信息也被考虑进来了,这会破坏imputation的效果
- ——>但是增加k并不会保证performance的增加
4.3 丢失率大小的影响
这些数据集中的每一个都呈现出一个特殊的特征。
- Chlorine数据集(参见图 3b)具有重复趋势,TRMF 和 SoftImpute 对此反应特别好。 两种技术分别使用的AR和EM模型可以捕捉数据内部的规律性,准确检测趋势重复。
- Gas 数据集(参见图 3c)呈现混合相关性,CDRec 可以通过使用权重向量来捕获这些相关性。
- Climate(参见图 3d)和电力数据集(参见图 3e)都存在不规则性——分别是波动和偏移的时间序列——DynaMMo 和 SoftImpute 处理得很好,因为它们关注时间序列的共同演化
- temperature数据集(参见图 3f)以其非常高的(地理、空间)相关性而脱颖而出。 这就是为什么通过设计捕获此类模型的 STMVL 表现如此出色的原因。
我们从这个实验中得出结论,目前只能通过专业化、数据特征与算法设计的仔细配对来实现绝对最佳精度。 我们还注意到,专业化可能会牺牲稳定性。 例如,STMVL 在温度数据集上表现良好,但在包含大量时间序列(如 Gas(m = 100))或长时间序列(如 BAFU(n = 50k))的大型数据集中,其准确性尤其差 ,分别参见图 3c 和 3h。
我们还在这个实验中观察到,误差并不总是随着missing rate的大小而增加。 在三个数据集中,Chlorine(参见图 3b)、Gas ((参见图 3c)和Meteo(参见图 3g),趋势相反。 这可能是因为,,missing rate越大,算法可以用来计算恢复的迭代越多。 更多的迭代意味着更多的机会来细化初始化缺失块的值。
4.4 序列数量和长度的影响
图 4 描述了增加时间序列的长度或时间序列的数量时不同数据集的performance。
missing rate 设置为 10%。
当序列长度变化时,时间序列的数量设置为 10。
当序列数量变化时,时间序列长度设置为 1k 。
使用不同数据集的平均 RMSE 和 MAE ,以标准差作为置信区间。
- 4(a) 4(b)——越长的序列效果越好(更多的数据可以更好地捕捉时间序列的pattern)
- 4(d)——时间序列数量越多,MAE越小——同一个数据集中更多的时间序列对算法有帮助(矩阵分解中的降维,STMVL中的时空模型)
- 4(c)——RMSE却没有如MAE一样的特点——RMSE更容易受异常值的影响——增加时间序列后,一些outliner也会被引入进来,这就导致了RMSE可能效果不是很好
4.5 不同丢失数据pattern的影响
这一小节,作者考虑了不同missing pattern情况下时间序列补全的影响
4.5.1 disjoint missing blocks
这里让时间序列的长度和数量都是最大可以取到的值,同时将缺失的时间序列数从1一直递增
- 对于时间序列较多/较少的模型,RMSE会先增后减
- 增加是因为我们增加了不完全的时间序列数量,这导致了missing value数量的增多
- 减少作者的意思是有更多的不完全的时间序列,会避免较早的termination,更好地进行补全(这一点我的理解是,以TRMF为例,可能time-series的某几个片段就是没有autoregression的特点,但其他片段有,所以如果加上带没有autoregression片段的time-series的话,那么反而误差会上去。但之后新加进来的time-series,被遮去的片段可能是包含autoregression特点的,所以又会“向回拉”一点RMSE的值)
- 6(b)——这边随着missing time-series数量的增多,RMSE确实在减少
- STMVL没有什么变化,可能是和他是一个时空模型有关
- 【至于为什么这个没有先增后减的特点,我的猜测是,可能和数据集有关:Chlorine数据集可能一开始就是outliner(这个如果熟悉这个数据集的同学可以帮我check一下】
4.5.2 Overlap missing blocks
每个时间序列的missing block中,一半是overlap在之前的missing block中,一半是新的missing block
可以发现overlap的情况和disjiont 很类似。(如果我disjiont 猜测的是对的话,那么overlap图像的情况也和outliners有关)
4.5.3 missing completely at random MCAR
(如果我disjiont 猜测的是对的话,那么overlap图像的增增减减的情况也和outliners有关,因为哪个时间序列都有一定概率遇到outliner)
- 对于长时间序列,例如 BAFU,DynaMMo 实现了最佳恢复。原因是更长的序列为该技术提供了更好的机会来学习局部相似性并准确地恢复每个时间序列的多个丢失块。
- 对于具有许多时间序列的数据集,例如 Gas),CDRec 脱颖而出。它利用跨多个时间序列的相关性,使得一个序列中缺失块的影响被其他序列中的观察值减弱。
4.5.4 blackout
所有时间序列同时丢失数据。
- 表现都不好
4.4 Efficiency
这里比较了不同条件下的运行时间
4.4.1 时间序列长度和数量的影响
丢失率统一固定在10%
- 随着时间序列长度/时间序列数目的增加,模型被分成两个部分
- 基于MF的方法时间所需时间较少(但是TRMF虽然是MF-based,但是所花时间要比MF大一些,因为自回归极值的存在)
- 非MF的方法运行时间普遍偏长
4.4.2 missing rate的影响
还是两组,慢组和快组
5 模型的比较和总结
作者对模型的性能进行1~5的打分
- 这里比较的几个特征是
- 不同时间序列之间的关联程度(比如temperature数据集,时间序列之间的关联度就很大)
- 混合关联(比如gas数据集中,很多高/低,正/负的关联同时发生)
- 无规律(波动性、异常点、尖峰)
- blackout
- 数据集的大小(时间序列长度/时间序列数量)
- STMVL在高度关联的数据集上效果很好
- CDRec在混合关联的数据集上效果很好
- DynaMMo在不规则数据集上效果很好
6 未来的研究机会
- 时间序列特征的挖掘
- 现有的方法只能提取非常basic的时间序列属性
- 丢失块的初始化问题
- blackout 问题是missing block 初始化的一种体现
- 以前用线性插值或0补全的方法很常见,但是效果一般
- 自动求参
- 最典型的就是rank r的值
- 硬件加速