关于多元时间序列中的公平性问题
今天给大家介绍一篇2023.1发在arixv的多元时序预测文章,出发点比较有趣:如何提升多变量时间序列的公平性。文中采用的建模方法都是之前在时空预测、Domain Adaptation等中使用过的常规操作,但是对于多变量公平性这个点的提出比较新颖。
- 论文标题:Learning Informative Representation for Fairness-aware Multivariate Time-series Forecasting: A Group-based Perspective
- 下载地址:https://arxiv.org/pdf/2301.11535.pdf
1.多元时间序列的公平性
公平性问题,在机器学习领域中是一个宏观的概念。机器学习中公平性的一种理解是,一个模型对于不同的样本的拟合效果的一致程度。如果一个模型在某些样本上效果很好,另一些样本上效果不好,那么这个模型的公平性就比较差。例如,一个常见的场景是推荐系统中,模型对于头部样本的预测效果优于尾部样本,这就体现了模型对于不同样本的预测效果存在不公平性。
回到多元时间序列预测问题中,公平性指的是模型是否对各个变量的预测效果都比较好。如果模型对于不同变量的预测效果差异很大,那么这个多元时间序列预测模型是不公平的。例如下图中的例子,第一行表格是各种模型在各个变量上预测效果MAE的方差,可以看到不同模型多存在一定程度的不公平性。下图的序列是一个例子,一些序列的预测效果比较好,而另一些序列的预测效果较差。
2.不公平现象的成因和解法
为什么会造成不公平性呢?无论是在多元时间序列中,还是在其他机器学习领域,造成不同样本预测效果差异较大的一大原因是,不同样本的特点不同,模型在训练过程中可能被某些样本的特点主导,导致模型对主导训练的样本预测效果好,而对于非主导样本的预测效果差。
在多元时间序列中,不同的变量,其序列pattern可能存在很大的差异。例如上面图的例子,大部分序列都是平稳的,主导了模型的训练过程。而少数序列呈现出了和其他序列不同的波动性,导致模型在这部分序列上预测效果较差。
如何解决多元时间序列中的不公平现象呢?一种思路是,既然造成不公平现象的原因是不同序列的特点不同,如果能将各个序列之间的共性,以及各个序列之间的差异性分解开,独立进行建模,就能缓解上述问题。
这篇文章就建立在这个思路之上,整体架构是利用聚类的方法将多变量序列分组,并得到每组的共性特征;进一步使用对抗学习的方法,从原始表示中剥离掉各个组特有的信息,得到公共的信息。通过上述过程,实现来了公共信息和序列特有信息的剥离,再基于这两个部分信息进行最终预测。
3、实现细节
整体的模型结构主要包括4个模块:多变量序列关系学习、时空关系网络、序列聚类、分解学习。
多变量序列关系学习
多元时间序列的一个重点是学习各个序列之间的关系。本文采用的是Spatial-Temporal的方法学习这个关系。由于多元时间序列不像很多时空预测任务,各个变量之间的关系可以预先定义好,因此这里使用了邻接矩阵的自动学习方法。具体的计算逻辑为,为每个变量生成一个随机初始化的embedding,然后使用embedding的内积,以及一些后处理,计算两两变量之间的关系,作为邻接矩阵对应位置上的元素,公式如下:
这种自动学习邻接矩阵的方法,在时空预测中很常用,在Connecting the Dots: Multivariate Time Series Forecasting with Graph Neural Networks(KDD 2020)、REST: Reciprocal Framework for Spatiotemporal-coupled Prediction(WWW 2021)等文章中,都采用了这种方式。我在星球文章KDD2020经典时空预测模型MTGNN代码解析中详细介绍过相关模型的原理实现,感兴趣的同学可以进一步阅读。
时空关系网络
有了邻接矩阵后,文中采用了图时序预测模型,对多变量时间序列进行时空编码,得到每个变量序列的表示。具体的模型结构很类似于DCRNN,在GRU基础上,每个单元的计算引入了GCN模块。可以理解为,在正常GRU的每个单元的计算过程中,引入了邻居节点的向量做一次GCN,得到更新后的表示。关于DCRNN的实现代码原理,可以参考DCRNN模型源码解析这篇文章。
序列聚类
在得到每个变量时间序列的表示后,下一步是将这些表示聚类,以此得到各个变量序列的分组,进而提取每组变量特有的信息。文中引入下面的损失函数来指导聚类过程,其中H表示每个变量序列的表示,F表示每个变量的序列跟K个类别的从属关系。
这个损失函数的更新过程需要采用EM算法,即固定序列表示H,优化F,以及固定F,优化H。文中采用的方法是,训练几轮模型得到表示H后,使用SVD更新一次矩阵F。
分解学习
分解学习模块的核心是将各个类别变量的公共表示和私有表示区分开,公共表示指的是各个类簇变量的序列共有的特点,私有表示指的是每个类簇内变量序列独有的特点。为了实现这个目的,文中采用了分解学习和对抗学习的思路,将各个类簇的表示,从原始的序列表示中剥离开。类簇表示代表每个类的特性,剥离后的表示代表所有序列的共性,利用这个共性的表示进行预测,可以实现对各个变量预测的公平性。
文中利用对抗学习的思路,直接计算公共表示和私有表示(也就是聚类得到的每个类簇的表示)的L2距离,以此作为loss反向优化,让公共部分表示和私有表示的差距尽可能拉大。此外,还会增加一个正交约束,让公共表示和私有表示的内积接近0。
4、实验结果
文中的实验主要从公平性和预测效果两个方面进行了对比,对比的模型包括基础时序预测模型(LSTNet、Informer)、图时序预测模型等。在公平性上,采用的是不同变量预测结果的方差,通过对比,本文的方法公平性相比其他模型要有比较明显的提升(如下表)。
在预测效果上,本文提出的模型也基本能够取得和SOTA相当的效果:
5、总结
如何保证模型的公平性,是机器学习很多场景都面临的问题。本文将这一维度的问题引入到了多元时间序列预测中,并利用时空预测、对抗学习的方法进行了比较好的解决。
相关文章
- EasyCVR对接华为iVS订阅摄像机和用户变更请求接口介绍
- 精选 | 腾讯云CDN内容加速场景有哪些?
- 模块化网络防止基于模型的多任务强化学习中的灾难性干扰
- 用搜索和注意力学习稳健的调度方法
- 用于多变量时间序列异常检测的学习图神经网络
- 助力政企自动化自然生长,华为WeAutomate RPA是怎么做到的?
- 使用腾讯轻量云搭建Fiora聊天室
- TSRC安全测试规范
- 云计算“功守道”
- 助力成本优化,腾讯全场景在离线混部系统Caelus正式开源
- Flink 利器:开源平台 StreamX 简介
- 腾讯云实践 | 一图揭秘腾讯碳中和?解决方案
- 深度学习中的轻量级网络架构总结与代码实现
- 信息系统项目管理师(高项复习笔记三)
- Adobe国际认证让科技赋能时尚
- c++该怎么学习(面试吃土记)
- 面试官问发布订阅模式是在问什么?
- 面试官:请实现一个通用函数把 callback 转成 promise
- 空中悬停、翻滚转身、成功着陆,我用强化学习「回收」了SpaceX的火箭
- 中山大学林倞解读视觉语义理解新趋势:从表达学习到知识及因果融合