王新宇 李寒
(北方工业大学信息学院 北京市 100144)
近年来,我国水体污染状况日益严重。历史数据表明,我国全国每年的污水排放量曾高达360 亿吨,其中除70%的工业污水和10%的生活污水经过了污水处理加工外,其余的污水直接排入江河湖海之中,导致水体质量的严重污染。污水中所含有的重金属元素、砷、氰化物等对人体有害的污染物含量均逐渐上升。全国共有9.5 万公里河流,其中的20%受到污染,5%受到严重污染,86%的城市河流受到不同程度的污染。水体质量的污染,不仅直接影响了人们的正常生活,对人体健康产生威胁,还影响了工业及其他领域的安全用水,造成巨大的经济损失。结合上述背景,通过对历史的水体质量数据进行分析,构建能够对水污染进行监测的模型,不仅可以应用于监测周期性的或突发的水污染,还可以为相关部门治理水污染问题提供数据支持,具有重大的实际意义。
目前众多的水体质量异常检测技术中,按研究方向可以分为机理模型和算法模型两大类。基于机理模型的水污染监测技术指的是研究污染物在水体中发生的迁移、转化、沉淀、吸附等复杂的物理、化学或生物过程,运用大量的实验数据来准确地构建水体质量模型,从历史经验中推演出未来水体污染的发生情况。如,方海泉利用经验模态分解与中位数相结合的方法对水体数据进行异常检测,再通过分段曲线拟合进行异常值校正,对于时间跨度大且变化趋势复杂的非线性非平稳水体在线监测数据,异常数据检测的效果较为明显。盛琳基于多光谱影像对叶绿素a 进行浓度反演。Feng Shang基于流体动力学模型提出了水体中污染物事件实时检测方法,结合水体动力学,对污染物浓度与余氯之间关联特性进行了研究分析。林剑远利用半经验法建立了线性、二次多项式、指数和幂模型的水质参数反演模型。魏媛设计了将不同浓度的硫酸铜、铁氰化钾污染物注入的实验,有效地挖掘了污染物注入前后水体的pH 值、浊度、余氯、溶解氧等8 种水体数据属性之间的内在关联,利用所得的关联性对因污染物引起的水体数据数值的异常波动进行检测和识别,在保证准确率的情况下尽可能降低误报率。然而,该类方法需要研究人员对水体污染物及其物理化学机理具有充分的认识,数据的采集难度较大,且应对不同类型的水体,数学统计模型的普适性较差,不容易应对突发的水体污染状况。
在对相关领域所需的先验知识了解不充分的情况下,则可采用基于数据驱动方法的算法模型,即利用监控到的系统状态数据,结合历史数据,分析特征信息,对系统进行异常诊断。该方法既不需要大量的领域专业知识及相关的推理机制,也不需要建立精确复杂的系统模型,成为了物联网和工业4.0 背景下,异常检测领域的重要手段。作为数据驱动方法的典型代表,机器学习具备全面分析和挖掘高维数据中潜在异常的能力。目前,已出现基于各类机器学习算法的水污染异常检测方法。齐培培利用基于贝叶斯网络的方法,对长江流域2004 年的水质数据进行分析,构建出了基于贝叶斯网络的水体质量预测模型,并对2005 年的水体质量进行了精准的评价和预测,从预测的角度对水体污染进行监测。朱炜玉基于自回归模型和隔离森林算法实现了水质动态高精度异常检测与预测分析。Wei Yang利用监测的UV254值和pH 值作为输入数据,以COD 值作为预测结果的输出值,建立ANN 模型。CAO建立了基于门控结构的溶解氧时序预测模型,依次对不同时间段内水体溶解氧进行预测。Wang设计了一种CA-NARX 算法,基于改进的动态聚类算法对水体富营养化程度进行分类,综合考虑气温、水温、水面蒸发量、降雨量这四个因子,采用正向动态回归神经网络对水体中总磷、总氮含量进行预测。然而,由于所采集的数据来自于真实环境,具有采集到噪声数据的可能性,对预测结果产生影响,且需要设定一个阈值与预测结果进行比较。Towler利用 K-最邻近算法(K-Nearest Neighbor, KNN)实现对水体污染的监测,首先,该方法构建一个包含了水质监测信息和地理位置信息的特征向量,然后利用KNN 算法对各个相邻的节点进行加权计算,得到融合了空间信息的水质异常概率。然而,由于该种方法仍需要监测地点的地理位置信息作为先验知识,具有一定的局限性。Klise提出了一种利用K-Means 聚类算法与多元算法相结合的水污染监测方法,通过设置聚类个数K 为1、2、4 和8,将4 个监测到的水质参数观测值聚类,之后分别计算当前时刻观测值与各聚类中心的最大欧氏距离,从而做出水体是否异常的判断。然而,该种方法需预先设置聚类个数的参数K。Vugrin提出了一种基于轨迹聚类的异常检测方法,通过对水质监测数据的拟合多项式进行特征提取与聚类,以对工况操作与水体污染引起的水体数据参数波动加以区分。然而,该种方法仍然需要事先设定参数,且该方法的目标是降低水质事件的误报率,而非对水体数据进行异常检测。Yu提出了基于长短时记忆神经网络(LSTM)和小波分析组合的方法预测湖泊中叶绿素含量,利用小波分析方法去除所采集数据中的噪声数据,再利用LSTM 进行预测分析。然而,该种方法仍不适宜应对突发性的水污染,且适用场景具有局限性。
随着物联网技术的发展,各类传感器已被广泛应用于生产生活中。在工业领域,尤其针对复杂系统或不适宜人工操作的场景,基于传感器的设备或环境状态监控已成为必要手段。针对复杂的工业场景,单一传感器很难全面反映设备或环境状态,所以通常采用多传感器系统对工业设备或环境进行监控,以有效地发现异常。通过将多传感器系统部署在待监测的水体流域,基于对多传感器系统所监测到的水体数据进行分析,可以达到对水体污染进行监测的目的。
通过对水体质量监测数据的分析,可以得到水体质量各监测指标如生化需氧量、悬浮物、大肠菌群数、pH 值及众多化学元素量等之间的相关性。当属性间的相关性发生较大变化时,说明当前水体质量监测系统中出现异常,即水污染。本文通过对监测水体质量的多元时间序列数据进行分析,基于图卷积神经网络构建水污染监测模型,将水污染监测问题映射为基于图卷积神经网络的分类问题,不仅考虑了监测水体质量各指标之间的相关性,还避免了由噪声数据带来的预测的不确定性,泛化能力较强。
本文基于图卷积神经网络构建水体质量监测模型,根据水体质量数据属性间所具有的相关性,首先将多元时序数据转化为一组矩阵数据,将水污染监测问题转化为分类问题。
给定一个水体质量监测的多元时间序列数据:
其中,Sequence表示一个时序数据的样本,t 表示当前时间戳,w 表示时间窗口的大小,m 表示多传感器数据的特征维度,a(i = 1,2,...,m)表示数据集中属性i 在时间窗口上自时间戳t 起始的w 个连续数据,可以使用a=(a,a,...,a)表示第k 个特征在时间窗口内的时序数据。
设置滑动窗口的大小w,可将一个时间窗口内的多传感器时序数据转化为矩阵结构。行和列代表多元传感器数据的某个维度,矩阵值代表不同维度数据之间的相关性。
2.1.1 行列的构造
对于拥有m 个维度的多元多传感器时间序列数据,数据的维数即为行列数,即n 个,每个行或列对应一元时序传感数据。具体的,每个行或列所包含的信息为该节点所对应的时序传感数据在某个时间窗口内的属性值向量a=(a,a,...,a)。
2.1.2 矩阵值的构造
图1:模型的矩阵描述
在水体质量监测的多维时序数据中,处于同一个系统或具有物理关系的序列间往往呈现出较强的关联关系,可以用矩阵值描述属性之间的相关性。以构造属性i 和属性j 之间的相关性为例,矩阵值a包含的信息为时间序列X上属性值向量a与a相关性系数(Correlation coefficient, CC)构成的行向量(CC,CC,...,CC),可以使用欧式距离、皮尔逊相关系数、斯皮尔曼相关系数等多种相关性系数来对边进行构造。
2.1.3 矩阵的构造
在多元时间序列的传感器数据中,处于同一个系统或具有物理关系的属性间往往呈现出较强的相似性。计算各属性间的相关性,可以得到不同的相关性矩阵,再将计算所得的多种相关系数矩阵合并成多维矩阵数组。
矩阵是图的一种表达方式,在得到时序相关矩阵数组后,本文方法将矩阵数组转换为图数据。该图为无向图。
GCN 是一种面向图结构数据的多层前馈型神经网络,是一种有监督的神经网络,一般由输入层、卷积层、池化层、全连接层及输出层构成。矩阵是图的一种表达方式,在得到时序相关矩阵数组后,本文方法将矩阵数组转换为图数据,所以可以基于GCN 生成水体质量数据检测模型。具体的,矩阵的行或列可以映射为图中的节点,用第i 元数据在该时间序列上属性值组成的向量表示,每条边则用行或列之间的相关性向量表示。本文使用的模型仍采用有监督学习方法,需要为图数据赋一个标签。由于图数据是由滑动窗口内的时序数据转化而来的,因此图数据是否异常取决于滑动窗口内时序数据是否异常,即时间窗口长度的时间内是否存水污染。本节着重对本文方法所使用的卷积层,池化层和全连接层进行介绍。
2.2.1 卷积层
卷积层的输入数据是输入层数据或上一层卷积或池化层的输出数据。在卷积层中,每个节点通过聚合周围节点的信息,来更新自身节点的信息。节点特征更新的函数为:
其中,A 代表邻接矩阵,D 代表节点的度矩阵,I 为单位矩阵,H 为节点属性矩阵,W 为可学习的参数矩阵,l 表示当前网络层数。
2.2.2 池化层
在卷积神经网络中通常会在相邻的卷积层之间或在卷积层和全连接层之间加入一个池化层,池化层可以有效的缩小参数矩阵的尺寸,从而降低全连接层中的参数的数量。池化操作具有特征不变性,可以到达特征降维的目的,它能够加快运算速度,并一定程度上防止过拟合。本文方法在卷积层与全连接层之间加入全局均值池化层(Global Mean Pool,GMP)来进行池化操作,其计算公式为:
其中,r 代表输出,N 代表当前图中节点个数,x表示节点的特征矩阵。
2.2.3 全连接层
全连接层中的每个神经元与其前一层的所有神经元进行全连接,它可以整合卷积层或池化层中具有类别区分性的局部信息。由于全连接层中每一个神经元都与前一层神经元全连接的特性,一般全连接层的参数也是最多的。
本文所使用的基于图卷积神经网络的水体质量监测模型包含三个部分。如图2 所示,首先是输入与卷积层,其中包含6 个卷积层(Convolutional Layer, Conv),每层的输出通道数分别为64,64,64,128,128,128。第二部分为全局均值池化层,该模块的主要功能是将不同样本的特征映射到相同大小,将所提取的特征融合。最后,将池化后的特征汇入全连接层(Fully Connected Layer,FC)映射到样本标记空间后,输出到Softmax 进行分类预测。作为单分类任务,选取交叉熵损失函数作为该模型的训练损失函数。设置时间窗口的大小为5,学习率为0.01,批处理大小batch_size 设置为10,选用Adam 优化器来对网络参数进行优化。
图2:图卷积神经网络的基本流程
本文共使用两种水体质量数据集,分别是D1 和D2。
数据集D1 来自Kaggle。该数据集包含1992 条数据,是印度历史水质的综合数据。数据集中每一项的污染物测量值是在一段时间内测量的平均值,测量值包括温度、水中溶解氧、pH 值、电导率、五日生化需氧量BOD及耐热大肠菌群数。原始数据的来源为印度的政府官方网站。
数据集D2 来自Kaggle。该数据集包含2862 条数据,是南布格河(Pivdennyi Booh)的水质数据。观测者在水域周围部署了22 个水监测系统站点,数据的采集频率为每月或每季度且各个站的观测次数不同。所监测的数据项包括NH、五日生化需氧量BOD、悬浮物、O、NO、SO、PO及Cl。
将 3.1 节所描述的图卷积神经网络模型应用于水体质量数据集的测试集以验证模型效果。采用三种算法作为评估本文所述模型有效性的对照算法,分别是梯度提升决策树(Gradient Boosting Decision Tree, GBDT)、XGBoost 和K最邻近算法(K-Nearest Neighbor, KNN)。
GBDT:GBDT 是一种迭代式的决策树算法,该算法在实现时由多颗决策树组成,最终的结果是将算法中所有用到的决策树中的结果做累加所得到的,是一种泛化能力较强的算法。GBDT 中的树是回归树,可以用来进行分析预测,经调整后也可以用于分类。
XGBoost:XGBoost 是经过优化的分布式梯度提升库,是大规模并行提升树的工具。XGBoost 的实现是基于提升树的,是对提升树算法的改进。
KNN:K 最邻近算法的思路非常直观,即如果一个样本在特征空间中的K 个最相似的样本中的大多数都同属于某一个类别,则该样本也属于这个类别。该方法在决策时只依据最邻近的几个样本的类别来决定该样本所属的类别。该算法的不足之处是计算量较大。
使用准确率(Precision)作为模型分类效果的评价指标。在D1 数据集和D2 数据集上进行多次实验得到的结果如图3 所示。
图3:于数据集D1 和D2 上进行多次实验的准确率结果
由图3 中的实验结果可知,本文方法在上述的两个数据集上进行验证时,准确率最高可到达97%,大幅度高于KNN 算法。从平均水平上来说,本文方法相比GBDT 提升了3%,相比于XGBoost 提升了4%,而相比于KNN 提升了14%。
本文提出基于图卷积神经网络的水体质量监测方法。首先,将监测水污染的多传感器系统时序数据转化为矩阵数据,并映射为图卷积神经网络能够识别的图数据,之后计算数据中各属性间的相关性,最后将图数据输入图卷积神经网络,通过不断调节网络参数,得到最合适的模型,在测试集上进行了验证并与对照算法进行了对比分析。本文方法考虑了多源时间序列数据中各维度数据之间的相关性,具有较强的泛化性,能够避免了噪声数据对分析结果带来的影响。通过在数据集上进行验证,本文方法具有较高的准确率。在应用图卷积神经网络后,水体质量监测不再局限于对水体质量监控指标进行预测的方式。然而,目前的研究仅局限于对水污染问题的分析,接下来会展开更广泛的研究,以期应用该模型在其他领域上同样能取得较好的结果。