ICLR 2025 | 知识数据双驱动的开放系统空气质量预测

图片

来源:时序人
本文约3400字,建议阅读7分钟本文介绍一个华东师范大学决策智能实验室被 ICLR2025 录用的知识数据双驱动的最新工作。

本文介绍一个华东师范大学决策智能实验室被 ICLR2025 录用的知识数据双驱动的最新工作,该工作与香港科技大学(广州)、华为诺亚方舟实验室研究团队合作完成。

空气污染严重威胁着人类健康和生态系统,因此迫切需要有效的空气质量预测来指导公共政策。传统方法通常分为基于物理的模型和基于数据驱动的模型。基于物理的模型通常面临高计算成本和封闭系统假设的限制,而数据驱动的模型可能忽略已知的物理动力学,使得时空相关性的建模变得困难。尽管一些物理引导的方法尝试结合两类模型的优势,但往往存在显式物理方程与隐式学习表示之间的不匹配问题。

为了解决这些挑战,我们提出 Air-DualODE,一种新颖的物理引导方法,它利用了双分支的神经微分方程(Neural ODE)进行空气质量预测。分支一采用开放空气系统的物理方程,捕捉时空依赖关系以学习物理动态系统;分支二则采用纯数据驱动的方式,补充物理分支中未能涉及的依赖关系。最后,这两个分支的深度表征在时间上进行对齐并融合,以提高预测精度。实验结果表明,Air-DualODE 在不同空间尺度的污染物浓度预测中达到了 SOTA,为解决实际空气质量预测问题提供了一种有前景的解决方案。

图片

【论文标题】

Air Quality Prediction with Physics-Guided Dual Neural ODEs in Open Systems

【论文链接】

https://openreview.net/pdf?id=kOJf7Dklyv

【论文代码】

https://github.com/decisionintelligence/Air-DualODE

【作者】

田锦东,梁宇轩,徐榕荟,陈鹏,郭晨娟,周傲英,潘璐珈,饶仲文,杨彬

【关键词】

时空序列预测,知识数据双驱动,开放空气系统

研究动机

空气污染对人类健康和生态环境构成了严重威胁,精准的空气质量预测对于公共政策制定至关重要。现有的空气质量预测方法主要分为基于物理模型的方法和数据驱动的方法。然而,这两类方法各自存在明显的局限性。

基于物理模型的方法:依赖常微分方程(ODEs)或偏微分方程(PDEs)来模拟污染物的扩散和输运过程。这些方法虽然具备较强的理论解释能力,但在大规模计算时往往面临高昂的计算成本。此外,传统物理模型通常假设空气污染是封闭系统,即污染物总量随时间保持不变,而这与真实世界的空气流动情况不符(如图1所示)。

数据驱动的方法:通过深度学习模型从历史数据中挖掘污染物浓度的时空依赖关系。这类方法能够很好地发现数据之间的关系,但由于其缺乏物理约束导致模型捕捉到不完整甚至错误的时空依赖深度表征。

图片

(a)污染物随着浓度扩散传播

图片

(b)污染物随着风场对流传播

图1:站点污染物浓度随时间变化的热力图

现存挑战

因此,很有必要提出一种知识数据双驱动的深度学习模型,结合物理模型和纯数据驱动模型的优势。但目前开发这种模型还面临着两个重大挑战:

  1. 物理方程在开放空气系统中的不现实假设:现有的空气质量预测通常采用连续性方程(Continuity Equation)模拟污染物传播,但该方程基于封闭系统假设,即污染物总量随时间保持不变。尽管这一假设在交通流建模、流行病传播等领域有效,但在空气质量预测中并不适用。在真实世界中,污染物传播是一个复杂的开放系统,污染物能够随风飘入/飘出研究区域(如图1中的A、D、E)。此外,污染物也会因为工业排放、交通污染而产生(图1中的B、C、D、E);还会因为森林和湖泊作用而消散(图1.a中的A、F)。正是由于开放空气系统的复杂性,导致封闭系统假设的传统物理方程在开放系统中的适用性受到严重限制,甚至会引入错误的归纳偏置(Inductive Bias),影响模型的预测精度。

  2. 显式物理方程与隐式深度学习表征的不匹配:物理方程提供了一种可解释的建模方式,能够精确描述污染物浓度的变化,并确保每个变量都有清晰的物理含义。然而,深度学习方法采用隐式表征来学习污染物的时空依赖关系,这些表征由物理变量的非线性变换得到,难以直接映射到现实的物理量。因此,如何在数据驱动模型中合理地引入物理知识,同时避免两者的不匹配,是知识数据双驱动模型面临的核心挑战。

方法概述

为了将扩散-对流方程(污染物传播方程,通过连续性方程导出)融入神经网络,并确保正确的时序时空依赖性。我们提出了 Air-DualODE,一种全新的知识数据双驱动模型,该模型为包括物理方程和数据驱动的双分支动态系统。

图片

图2:Air-DualODE架构图,由物理动态系统,数据驱动动态系统和动态系统表征融合,三个部分组成

物理动态系统:为了保持与神经网络隐式表征的一致性,物理分支直接求解物理方程,获取具有物理意义的时序关联。具体而言,它求解基于开放空气系统的空间离散化常微分方程,即 ,用于生成未来 步的物理模拟结果  。然后,这些结果被映射到隐空间,得到 

数据驱动动态系统:尽管物理分支捕捉了符合现实污染物变化的时空依赖,但它并没有考虑未被方程建模的时空关联,比如:温度和湿度对污染物传播的影响,以及时序特征模式之间的联系。为了解决这个问题,数据驱动分支通过带有空间掩码注意力机制的神经微分方程实现,即 。这个分支捕获了潜在空间中的未知动态系统,并生成潜在的动态表示 

动态系统表征融合:尽管  和  都在隐空间并拥有相同的时间跨度,但它们尚未对齐。为了解决这个问题,衰减时序对比学习模块通过衰减的权重在时间上对齐它们,从而实现有效融合。然后,图神经网络在变量维度融合这两种动态系统表征,融合后的结果被解码生成最终预测结果 

01、物理分支 

(1)扩散-对流方程(Diffusion-Advection Equation)通过连续性方程导出,描述了污染物分别因为污染物浓度扩散和风场对流产生的自然传播现象。

图片

其中, 是污染物浓度; 是扩散系数; 是风场; 是拉普拉斯算子, 为散度算子。

(2)离散化扩散-对流方程(Discrete Diffusion-Advection Equation,DAE)为扩散-对流方程在封闭系统中的离散化形式。通过空间离散化(Method of Lines),可以将上述偏微分方程离散化为站点粒度的常微分方程,如下式所示:

图片

其中, 和  分别为扩散和对流的离散化拉普拉斯算子;前者为静态图,而后者为根据风场变化的动态图。根据封闭系统假设,可以得出结论:

图片

为站点个数。这表明污染物的总量是恒定不变的,但这显然与现实情况不符。

(3)边界感知的离散化扩散-对流方程(Boundary-Aware Diffusion-Advection Equation,BA-DAE)移除了封闭系统假设,考虑了开放系统中污染物的产生与消散,如下式所示:

图片

其中, 为线性层估计得到的权重,用以表示扩散和对流对污染物传播的影响程度; 为针对开放系统设计的修正项。

通过使用 ODE 求解器求解 BA-DAE,可获得未来时刻的污染物浓度,并通过时间编码器将其映射到隐空间,以进行动态系统表征融合,如图2中的物理分支所示。

需要注意的是, 编码了物理方程所描述的污染物传播时空依赖,数据驱动模型并不能保证完全捕捉。因此弥补了数据驱动方法的缺陷并在一定程度上增强了模型的可解释性。

02、数据驱动分支 

该分支主要用于建模 BA-DAE 以外的动态系统,以捕捉无法仅通过物理方程描述的污染物传播。例如,BA-DAE 可能难以精准建模历史数据中的时空依赖关系,而数据驱动分支能够从历史数据中学习这些潜在的动态特性;类似湿度对污染物传播等复杂关系,也可以通过该分支进行有效建模。模型设计采用隐空间神经微分方程进行动态建模,以 (历史污染物浓度和辅助变量,如气象数据)作为输入。通过 将输入映射到隐变量  作为初始状态并进行求解:

图片

此外,由于站点之间污染物传播并非任意,本文还在 中加入了空间掩码注意力机制,使用地理邻接矩阵 作为掩码,确保没有直接联系的站点不会相互影响。


03、动态系统表征融合 

衰减时序对比学习模块通过定义软权重,对齐 ,从而解决两者在隐空间不匹配不一致问题,并使得融合更加有效。

先定义衰减时序权重:

图片

再定义衰减时序对比学习损失:

图片

图片

最后,该模块的损失函数如下:

图片

图神经网络融合基于空间关系图 ,将对齐后的两类表征进行融合,最终总损失函数如下所示:

图片

实验结果

01、整体性能 

如表1所示,Air-DualODE 在 Beijing(城市级别)和KnowAir(全国级别)两个不同粒度的数据集上的三天预测结果和突变预测结果都超过了现有模型。这表明模型将物理分支和数据驱动分支结合后能够捕捉复杂的时空依赖关系。

图片

表1:在两个数据集上整体预测结果对比。粗体为最好结果,下划线为次好结果。

02、消融实验 

不仅如此,本文还进行了详尽的消融实验以证明 Air-DualODE 各个模块的有效性。

  1. 双分支动态系统:如表二所示,双分支相辅相成,不能缺失任意一方。

  2. 隐空间融合:如表二所示,物理驱动与数据驱动的融合需要在同一空间,隐空间融合效果好于显空间融合。

  3. 物理知识:如图三所示,在物理分支上使用不同的物理知识会得到不一样的效果,这体现了物理知识正确性非常重要。

  4. 空间掩码注意力机制:如表二所示,远距离的站点表征并不会提供有用的信息。

  5. 衰减时序对比学习:如表二所示,表明两类表征在融合前需要在隐空间对齐。

图片

表2:消融实验结果

图片

图4:物理分支使用不同的物理知识所带来的效果

总结

本文设计了 Air-DualODE 用于城市级和国家级的空气质量预测,这是首个针对开放空气系统的双动力学模型。模型采用双动力学方法,使用 Neural ODEs 分别建模物理(已知)和数据驱动(未知)的动力学,并在隐空间中对齐并融合这两种动力学,从而有效地将物理知识与数据驱动方法结合起来。与以往的物理引导方法相比,Air-DualODE 能够适用于城市级和国家级数据集进行空气质量预测。未来,我们计划进一步探索物理引导的 DualODE 架构,并将其扩展到更一般的时空预测任务。

编辑:于腾凯

校对:林亦霖

关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。

图片

新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

<think>好的,我现在需要帮助用户了解或实现得物签名的相关技术,特别是签名算法的实现方式。首先,我需要收集已有的信息。根据用户提供的引用,特别是引用[4]和[5],得物的签名算法可能涉及逆向工程分析,使用了JavaScript中的XMLHttpRequest重写来拦截请求,并在请求中包含特定的sign参数。这可能意味着签名生成是在客户端进行的,通常在前端JavaScript代码中完成。 接下来,我应该考虑常见的签名生成方法。常见的Web应用签名算法通常使用HMAC、AES、RSA或自定义的哈希组合。引用[1]提到了RSA算法,但得物的签名可能更倾向于使用HMAC-SHA256之类的哈希算法,结合时间戳、随机数和请求参数进行签名,以防止篡改和重放攻击。 用户可能需要具体的步骤,比如逆向分析得物的JavaScript代码,找到生成sign的函数,提取关键参数和加密逻辑。引用[5]中的代码片段展示了如何重写XMLHttpRequest的open方法来拦截请求,这可能用于调试和定位签名生成的代码位置。 此外,引用[4]提到使用Python进行算法还原,所以可能需要在Python中复现JavaScript的签名生成逻辑。这通常涉及分析请求参数如何排序、拼接,以及如何与密钥结合进行哈希或加密。需要注意反爬机制,如obfuscation(代码混淆)或动态密钥,这可能需要使用AST(抽象语法树)解析或动态执行来还原算法。 用户可能还需要了解如何应对反调试措施,比如在Chrome开发者工具中使用断点调试,或者使用工具如Frida进行Hook。同时,引用[3]和[4]强调了法律和合规问题,确保研究仅用于学习目的,不用于非法用途。 最后,应该提醒用户注意法律风险,遵循网站的使用条款,避免侵犯知识产权或违反计算机安全法律。总结起来,实现得物签名需要逆向工程分析前端代码,提取关键算法,处理可能的混淆和反调试,最后用目标语言如Python复现算法。</think>### 得物签名算法实现方式分析 得物签名算法主要用于接口请求的身份验证和防篡改保护,常见实现方式涉及以下技术点: #### 1. **签名参数组成** 签名通常由以下参数动态生成: - 请求参数(经排序、过滤空值后拼接) - 时间戳(如:$timestamp=1620000000$) - 随机数(如:$nonce=5a8s3d$) - 设备指纹(如:$device\_id=abcdef$) - 应用密钥(加密盐值,可能动态获取)[^4] 示例参数拼接逻辑: $$ \text{sign\_str} = \text{path} + \text{sorted\_params} + \text{timestamp} + \text{nonce} $$ #### 2. **加密算法类型** 根据逆向分析,得物可能采用以下组合: - **HMAC-SHA256**:对拼接字符串进行哈希运算 - **AES/Base64编码**:对结果二次处理 - **自定义位移/异或操作**:增加逆向难度[^5] #### 3. **JavaScript代码混淆** 关键函数可能被混淆,例如: ```javascript function _0x12ab5(a, b) { return a ^ b << 3; } // 需要AST解析还原控制流 ``` #### 4. **Python算法还原示例** ```python import hmac import hashlib def generate_sign(params, secret_key): # 1. 参数排序并拼接 sorted_str = '&'.join([f"{k}={v}" for k,v in sorted(params.items())]) # 2. HMAC-SHA256加密 sign = hmac.new(secret_key.encode(), sorted_str.encode(), hashlib.sha256).hexdigest() # 3. 自定义处理(示例) return sign.upper() + str(int(time.time())) ``` #### 5. **反爬对抗措施** - 动态密钥:通过接口定期更新加密盐值 - 环境检测:验证是否在真机环境运行 - 请求频率限制:异常高频触发验证码[^5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值