KDD Cup(国际知识发现和数据挖掘竞赛)是 ACM 协会 SIGKDD 分会主办的数据挖掘研究领域的国际顶级赛事,从1997年开始,每年举办一次,有着数据挖掘领域「世界杯」之称,是该领域水平最高、最有影响力的顶级赛事。
KDD Cup 2022 由百度与亚马逊共同主办,其中百度主办的赛题为「风电功率预测」。风电属于可再生且无公害的清洁能源,但同时也具有不稳定、波动性大的特点,而如何使用人工智能技术来提升电网运行的稳定性,为实现全球“碳达峰”和“碳中和”的双碳目标贡献科技力量,是本次赛题的主要目标。自 3月16日开放报名以来,Baidu KDD Cup 2022比赛已有近2000名参赛者报名参加,为了助力选手们获得更好的成绩,百度飞桨(PaddlePaddle)图学习框架(PGL)团队工程师为大家解读赛题,并且开放开源 Baseline 代码。
比赛任务介绍
此次赛题是基于空间的风电动态预测挑战任务。风力发电预测是为了更精准地预估风力,帮助风力发电厂安排不同时间的供应。由于风力具有不稳定性,导致风电的发电功率变化也很大,这种不稳定性对将风电并入电网系统带来了巨大挑战。为了保障电力生产及消耗的平衡,当风力发电波动时,需要使用其他能源来平抑风电的波动性对电网造成的冲击。然而,这种替代的电力并不能短时间获取(例如,通常至少需要 6 个小时才能启动一个燃煤电厂),因此风电预测非常重要,同时也极具挑战性。首先让我们来了解一下本次赛事的一些关键信息。
数据集
基于空间的风电动态预测数据集(SDWPF)包含134个发电机超过半年的历史数据信息。当前,较多竞赛将WPF视为时间序列预测问题,而忽略发电机的位置和上下文信息,SDWPF则提供了以下两个维度的信息:
- 空间分布:提供了不同风力发电机在发电场的相对位置,如下图所示。每台风力发电机可以单独产生风力,风电场的输出功率是所有风力发电机的总和。此项信息有利于选手进行空间相关性建模。
- 动态环境:包括天气状况、发电机内部状态等多种信号,方便选手设计多源输入模型,增加预测增益。如下图所示:
任务
通过历史输入数据,对每个发电机的未来48小时的发电功率进行预测。每个数据之间间隔10分钟,所以选手需预测未来288步的发电功率。
评价指标
- MAE(平均绝对误差)和RMSE(均方根误差)
- 更多详情可访问赛题网站链接:
⭐️点击即可访问⭐
https://aistudio.baidu.com/aistudio/competition/detail/152/0/introduction
赛题解读及
开源Baseline
有大量的研究致力于通过数据挖掘技术来解决风能预测问题,相比于传统的时序预测数据,本届 Baidu KDD Cup 2022 提供的风力发电数据额外提供了各个发电机的空间位置信息,使得选手可以结合时间、空间等多个维度,对未来结果进行预测。而图神经网络技术能够高效建立时间和空间的关系图,并充分利用两者之间的关联关系提升预测效果。为了方便选手实现基于图神经网络的时空预测模型,飞桨图学习框架(PGL)提供了一版基于时序分解的时空图神经网络模型,助力选手获得更好成绩,以下是模型的详情:
数据预处理
- 数据划分:SDWPF数据集中提供了134个发电机对应的245天数据作为训练集,未来采样数据作为隐藏测试集。每个数据之间间隔10分钟。为保证训练预测的一致性,需要对训练数据按照时间切分出训练、验证、测试集。
- 异常值处理:数据对nan数据进行补0处理,并对数据进行归一化处理,降低异常值对模型的影响。
- 特征扩展:针对时序预测任务和时间周期强相关的特点,在原始的输入数据基础上,增加了小时、星期等特征,强化模型的时间特征。
- 数据增强:为提升模型的鲁棒性,利用Spatial Shuffle技术对训练数据进行了扩展。具体可参考:
https://github.com/PaddlePaddle/PGL/blob/main/examples/kddcup2022/wpf_baseline/wpf_dataset.py
时空图构造
利用发电机的时序相关性构建它们之间的边关系。通过统计各个发电机的历史数据,计算不同发电机之间历史发电功率的相关性,以获取发电机的相关性。
基于时空图聚合的GNN模型
- 针对每个路口输入的时序信息,进行时序分解,获得历史的功率趋势特征和周期特征。
- 利用SaptialTemporalGATconv 对相关性邻居进行信息聚合,从而提升模型效果。
- 利用Transformer Encoder-Decoder 对分解后的特征进行编码,并进行多步解码。
通过利用时空GNN模型,在单卡 v100 上,可以在5~10分钟内完成一遍模型训练,极大提升了模型迭代速率。
开源Baseline
- 代码地址:
https://github.com/PaddlePaddle/PGL/tree/main/examples/kddcup2022/wpf_baseline
- 预测结果示例:
经验与建议优化
- 本次任务,需对未来2天风力发电情况进行预测。而风能随时间变化快,致预测真值方差过大,这加大了模型预测难度。
- 时间、空间构图问题:该任务提供了各个涡轮发电机的物理空间位置,帮助选手构建节点的边关系。实践上建议参赛选手利用各个节点的历史数据进行对比计算,构建出更具相关性的边关系。
- 训练、验证集划分:时序任务与时间强相关,如何划分训练验证集,让最新数据尽可能应用至模型训练中,这是选手值得思考的问题。
进一步了解飞桨PGL
以上官方基线由获得 KDD Cup 2021 两项冠军的百度飞桨 PGL 团队提供。飞桨PGL(PaddleGraph Learning)是一个基于飞桨(PaddlePaddle) 的高效易用图学习框架,依托于飞桨核心框架以及自研的高效大规模分布式图引擎,支持十亿节点百亿边的超巨图训练,原生支持异构图MetaPath采样以及Message Passing双模式,预置多种业界主流图学习算法以及自研模型等。同时具备分布式图存储以及一些分布式图学习训练算法,例如,分布式deep walk和分布式graphsage。结合飞桨框架,PGL 能够覆盖大部分的图网络应用,包括图表示学习以及图神经网络。
百度在图神经网络领域的研究、产业实践、工业落地方面,积累了丰富的经验!在实际业务落地应用上,飞桨PGL已经在搜索、信息流、金融风控、智能地图和商业广告等场景全面落地。此外,百度飞桨PGL团队战绩累累,多次刷新图神经网络权威榜单OGB榜单SOTA,在2020年COLING协办比赛取得TextGraph冠军!去年KDDCup 2021最大的图学习比赛OGB-LSC(涵盖节点分类、链接预测以及图分类三个经典场景)中,获得两冠一亚的成绩。
⭐️欢迎STAR收藏⭐
https://github.com/PaddlePaddle/PGL
更多交流可通过 pgl@baidu.com 联系我们,感谢支持!