为解决数据归档存储场景中出现的物理存储成本增长和数据库内存紧张等问题,本文提出一种基于注意力机制与双向门控循环单元的数据无损压缩方法,采用Transformer和双向门控循环单元作为概率预测器,输出数据流的条件概率分布,结合自适应算术编码器对数据进行压缩。实验对比结果表明,本文所提方法相较于算术编码和基于字典模型的LZW这两种传统无损压缩方法,压缩率分别平均提升约28.8%和7.8%;相较于Cmix v19和NNCP两种深度学习方法,平均压缩率分别降低0.4%和0.2%,但平均压缩时间分别约为其5.1%和39.4%。
用电信息是电力消费情况的数据,反映信息采集区域内用户真实用电情况,这些业务数据具重要有保存价值。这些业务数据中,新产生数据被频繁读取或更新,历史数据很少被访问。例如,目前国家电网业务范围内拥有海量用户,数据库系统中积累大量访问频率低的历史数据,其中仅有部分关键信息具有存储价值。因此,对关键历史数据进行归档与管理,是各个电网公司的通用做法[1] [2] [3]。随着用电数据的积累,数据量呈直线上升趋势,将不可避免造成存储硬件成本急剧增长,是亟需解决的行业问题。
数据压缩算法对关键历史数据进行归档压缩,是降低数据存储硬件开销的有效方式。存储对象是关键历史数据,具有一定研究价值,需要采用无损压缩的方式。目前,主流的无损压缩是基于字典的LZ系列算法[4] [5],但其压缩过程是基于模式匹配进行,当处理变化程度较大的业务数据,特别是浮点数据时,压缩率较低。
目前,深度学习方法凭借其端到端、对数据潜在特征有效挖掘等优势,成为计算机视觉、数字图像处理和自然语言处理等领域的研究热点。其中,循环神经网络,已应用于图像压缩[6]、轨迹压缩[7];Transformer 已应用于字节对编码[8]、压缩成像[9]、压缩感知磁共振重建[10]。在具备学习复杂关系映射并形成泛用近似函数能力的神经网络模型中,Transformer [11] [12]作为其中一种高效的全局依赖模型, 它的编码器层(Encoder Layer)采用多头注意力(Multi-Head Attention)和前馈网络(Feed Forward Network), 能将每个输入的令牌向量表示为对应的上下文向量,为原始输入嵌入丰富上下文信息。门控循环神经网络(Gated Recurrent Neural Network, GRNN) [13] [14]具有建立长期记忆的能力,可更好捕捉时间序列中时间步距离较大的依赖关系。
本文采用Transformer 和门控循环神经网络相结合的网络模型作为序列数据的条件概率预测器,经过样本训练,保存神经网络权值。编码时,载入网络权重构建概率预测器,计算当前数据流中字符分布情况,将预测结果与当前字符送入自适应算术编码器中,更新概率区间并将字符编码输出。同样,解码时,将预测器输出的概率分布送入自适应算术编码器内,输出解压后字符。本文提出的方法和LZW 编码[4]、算术编码[15]两种传统压缩方法,以及NNCP [16]、Cmix [17]两种基于深度学习的压缩方法进行对比。实验结果表明,本文提出的方法在压缩率和压缩时间上取得较好的平衡,适应于解决实际工程中的数据无损压缩问题。本文的主要贡献概括如下: