本文提出了一种利用多源数据识别窃电行为的方法。除了用户用电记录外,我们还利用区域因素(非技术损失)和气候因素(温度)对用户行为进行了分析。通过进行分析实验,我们了解了几种有趣的现象:例如,电力可能会消耗更多的电力大致用户,特别是在极高或低温下。通过这些经验观察,我们进一步设计了识别电力盗贼的Anovel等级框架 。 基于现实世界数据集的实际结果表明,大家建议的模型可以在电力检测中实现最佳性能(例如,在F0.5方面至少+ 3.0%)相比。 最后,我们的工作已被中国国家电网应用,用来在杭州成功地捕捉电力盗窃行为,精度为15%
non-technical loss(NTL) Technical loss
在实际应用中,电力配电网的损耗分为技术损耗和非技术损耗。技术损失主要是由不良影响(如电阻元件的加热、辐射等)造成的,是不可避免的。相比之下,非技术损失定义为已分配但未计费的能量
换句话说,这种类型的损失是在仪表到现金流程中的问题导致的。 虽然不同的问题可能导致非技术损失,但导致NTL的大部分与电力偷窃和欺诈有关[14]。 因此,从异常的NTL记录中检测电力是直接的,它非常简单[1,35]。 NTL提供变压器区域信息。 为了捕获单独的模式,许多现有的工厂利用了电力使用记录或NTL作为输入,并应用了各种机器学习技术(例如,SVM,CNN,RNN)来识别电力盗窃。 然而,由于电力使用行为的多样性和不规则性,大多数这些方法都未获得良好的性能,无论是单独使用NTL还是用电记录都几乎不可能取得较好的效果
图1 展示了三层多源数据:最下层是用户数据,反映的是用户个人的用电情况;上一层是台区(变压器区域)数据,反映的是一个社区(或村庄)的整体损耗情况;最上层是天气数据,反应的是一个城市整体的气候状况。
对于这三种不同层次的数据,该论文分别对其进行数据观察与分析,探寻里面与窃电行为有关的模式。
01
微观级别的观察(用户)
图2 用户用电与窃电行为的关系
图2 展示了基于用户用电数据的分析:
- 图2a 可视化了每天峰(on-peak)谷(off-peak)两种用电情况,红色的区域代表该用户被抓到窃电的时间。可以看到当被抓到窃电时,其后统计到的用电都在大幅增加。
- 图2b 在所有的数据上,对被抓窃电前后的用户用电进行对比(左二),并用正常用户(右二)同一时刻前后的用电量做对照组。可以发现,被抓窃电后,窃电用户的用电量会急剧增加;同时,窃电用户整体的用电也比正常用户大,说明只有很高用电需求的人才有可能会去窃电。
- 除了用电量统计,作者们还对比了用电的趋势。图2c 展示了所有用户从8月份到10月份用电的一阶回归斜率。随着温度降低,正常用户(黄色)的峰值基本都是小于0,说明用电在减少;而窃电用户(蓝色)峰值在0左右,说明用电基本没有变化。这说明窃电用户的用电习惯与正常人不同。
02
中观级别的观察(NTL)
图3 台区NTL与窃电行为的关系
除了用户级别的观察,图3 展示了台区每天的NTL变化情况与用户用电的关系:
- 图3a 展示了一个案例。黄色虚线代表台区每天的NTL电量,蓝色实线代表与之对应的台区下,一个窃电用户的用电曲线。红色区域代表被抓到窃电的时间。可以看到,当该用户用电低,台区的NTL就高,用户窃电造成了台区NTL的升高。
- 图3b 在所有数据上做了统计分析。可以看到,正常用户(绿色)在抓窃电前后用电模式基本不变,而窃电用户在被抓之前,用户的用电与台区的NTL呈现负相关关系。者说明台区的NTL可以对当前台区下是否有人窃电有很好的指示作用。
03**宏观级别的观察(气候)**
气候,或者说温度,与人们的行为特别是用电行为息息相关,例如空调、电热毯的使用等。这里先看一组统计:
图4 不同月份全省被抓窃电的案例个数统计
图4 展示了一年中不同月份,被抓窃电的案例个数统计,可以看到夏天(7-9月)和冬天(11-1月),被抓个数明显比其他月份要多,而这两季,正好是用电需求高的时间。因此,论文的作者们尝试探寻温度因素与用电行为的关系。
图5 气候因素与窃电行为的关系
图5 展示了气温与用户用电行为之间的关系:
- 图5a 展示了一年中整体的气温变化(黄线)与用户整体的用电(蓝线)之间的关系。可以看到,在夏天(或冬天),温度升高(降低),用户们的用电就会升高,他们之间呈现非常强的关联关系;
- 图5b 将温度划分为不同的区间,统计了该区间下正常用户(黄色)与窃电用户(蓝色)之间的用电分布,可以看到,当高温(>30ºC)或者低温(<9ºC)环境下,两者之间的用电分布差别很大;
- 作者们通过二元回归的方式,将不同温度下的用电进行拟合。可以发现,窃电用户用电与温度不能很好的拟合成一条规整的线(图5c),而正常用户可以(图5d)。图5e 将散点之间拟合差的平均值通过概率密度函数进行比较。可以看到,正常用户与窃电用户之间存在在不同气候条件下存在差异。
该论文提出了一个层次化的深度模型,叫做 HEBR
图6 HEBR的结构
图6 展示了HEBR 的整体结构,它基于三层(用户,台区,气温)时序数据,逐层做信息抽取与融合,最终将组合的特征用于窃电行为的判定。
当对多源序列建模时,首先在每个时间点连接它们,然后使用一个单一的潜在表示来捕获整体的模式,如mrnn[18],可以建立一个简单的基线。然而,来自不同来源的连接拓宽了特征维度,这可能会捕捉到不同级别信息之间的显著相关性。更具体地说,在我们的场景中,不同的用户同一变压器区域的ntl或温度观测顺序可能相同;因此,直接的连接可能会从区域和气候层面导致用户行为的混乱。因此,特征的直接连接可能会从区域和气候层面导致用户行为的混乱。因此,我们选择分别提取每个源的独立特征,然后进行成对信息融合
Level 1 独立捕获观测序列中的时间模式(例如温度(hc)、NTL(hl)和用户用电(he)的模式),并将它们成对融合(hc he,hl he)。它的目的是分别模拟宏观或中观层面的因素对用户行为的影响 Level 2:分别获取初步融合后的时间模式(例如,用户气候(hec)和用户区域(hel)),然后融合hec hel的模式。其目的是统一宏观和中观层面对用户行为的影响。Level3:捕获多个中的整体时态模式
我们没有在同一级融合表示。这是因为我们的观察性研究(第3节)表明,这两个不同层次的信息是不相关的,尽管它们与用户的用电量密切相关。在这里,我们的目的是捕捉这两个因素如何影响用户用电行为。HEBR在层次结构的基础上,可以对各个层次进行特征提取与融合,逐步整合多源信息。
具体对于每一步融合,作者们提出了多步加时间关注的融合机制:
为了捕获不同级别的信息之间的核心关系,我们提出了多步融合机制。 这里的直觉是两个不同水平的序列之间的影响可能是延时的。除了受当今温度的影响之外,用户的电力使用也可能与昨天的天气有关; 一个具体的例子是,如果前一天是非常高的,人们往往会打开一个漫长的空调,即使今天是较冷的。 因此,我们应该尝试在时间间隔内包含更多信息,而不是仅在当时的时间点。
图7 多步融合机制的结构
针对两种不同源数据的RNN隐层表达,其中一个主要方(这个场景里主要是用户用电数据),每个时间步t,次要方(如:台区NTL,气温)都要将前面多步的信息用于当前的信息融合,再做局部attention。这里做的目的是,NTL或气温对当前用户用电的影响是有时延的,例如气温升高,并不会让用户马上开空调增加用电;但一段时间的高温就肯定会使得用户用电量增加。作者们通过这种多步融合机制,对多源信息的组合做更多的关联信息抽取。
然而,每个时间步的融合信息不可能对行为模式同等重要。例如,如果某人在夏季或冬季消耗很少的电力,那么他可能是电盗窃者,但这可能不是真的在秋季或春季,因为用户通常在这些月份由于季节性影响消耗更少的电力。Liu et al.[27]认为模型应该尝试在不同的时间点测量这些重要的信息。因此,设计了一种注意机制来模拟融合信息在不同时刻的意义变化
HEBR模型在浙江省国家电网所提供的2017-2019两年多的真实数据上进行实验,取得了还不错的效果:
表2 反窃电实验结果
如表2 所示,HEBR模型在Precision和F0.5 这两个指标上,都比baseline要好,这对于实际的排查来说更加友好。
同时,为了说明模型设计的有效性,论文还做了多种消融研究:
表3 验证多源数据的有效性
表4 多步融合机制的有效性
表3、表4 分别展现了不同源数据与融合机制对HEBR反窃电准确度的影响,可以看到,删去气温或NTL信息,都会导致反窃电准确度大大降低;同时,不采用多步融合机制或attention操作,都会让模型效果下降。
除了实验,浙江省国家电网应用该模型进行窃电用户识别,在浙江杭州进行了窃电排查,实地捕获了若干窃电用户。其中一个案例如下:
图8 实地排查到的窃电案例
如图8 所示,从上到下依次展现了气温变化,台区NTL变化与用户用电的三种曲线;热力图代表了HEBR模型在三层不同位置的attention得分,红色区域代表其被抓到的时间。可以看到,当用户用电降低,台区NTL升高,同时温度很高的情况下,热力图对应的区域就越亮,attention的得分就越高。说明HEBR模型可以很好的捕捉到用户窃电的模式。
实验证明基于多步attention融合的HEBR模型可以有效组合多源时序数据,适用于窃电识别问题。
输入文件预计将是四个部分:
(1)电力使用记录:一个CSV文件,其中包含每个用户的每日记录:#USERID,#AREAID,#date,#total电力,#top电力,#峰值电力,#flat电力,#off-peak 电。
(2)非技术损失记录:CSV文件,其中包含每个区域的每日记录:#areaid,#date,#cost电力,#billed电力,#lost电力。 在这里,区域IID对应于(1)中的AreadID
(3)温度记录:CSV文件,记录日常天气,包含#AREAID,#data,#high温度,#low温度。 我们可以通过代码中的数据蜘蛛./data_factory/temperature_spider.py
(4)电力标签:一个CSV文件,它记录了电力盗贼被捕获的时间,包含#Userid,#areaid,#date。
1 | def Cell(self, input_u, input_a, input_c, hiddens, reuse=False): |