基于注意力机制的CNN-LSTM模型及其应用(含软硬注意力区别)

Posted 彭祥.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于注意力机制的CNN-LSTM模型及其应用(含软硬注意力区别)相关的知识,希望对你有一定的参考价值。

引言

时间序列一般定义为依据发生时间的前后顺序,排列相同统计指标的数值所形成的有序集合。时序预测具有重要的应用价值,是近年来热门研究课题之一。时间序列数据具有时序相关性,并且时序特征在时间维度上具有不同重要程度,某些子序列的特征重要程度大于其他子序列,当前模型通常没有考虑不同特征的重要程度。
现有时间序列预测技术可总结为统计方法和机器学习方法两大类。以自回归求和滑动平均(Autore-gressive Integrated Moving Average,ARIMA)模型[4]为代表的统计方法适用于线性系统预测,以人工神经网络、支持向量机为代表的机器学习方法适用于复杂非线性的时间序列。Hochreiter等人提出的机器学习方法长短期记忆网络(Long Short-Term Memory Network,LSTM),具备一定的长距离时序数据的信息挖掘能力,被广泛应用于语音识别、机器翻译、故障预测和负荷预测等领域。输入越长,其所含信息量越多,而面对过长序列时,训练单一LSTM时会出现不稳定性和梯度消失现象,故而不能捕捉非常长期的相互依赖性。因此,有学者融合卷积神经网络(Convolution Neural Network,CNN)与 LSTM 用于行为预测、语音识别等领域,文献运用 CNN学习可穿戴传感器数据特征,结合 LSTM 建模动作间的时间依赖性;或运用CNN 从原始网络自动学习语音信号的最佳表示,结合LSTM 学习最佳时间表示。这类方法的共有思想是借助 CNN 的短序列特征抽象能力提取高维特征,再由LSTM综合短序列高维特征进行时序预测,适合处理具备局部相关性的时序数据。但通常在时间维度上时序特征的重要程度并不一致,例如,预测天气时,潜藏在异常天气数据中的特征将比正常天气的特征重要;负荷预
测时,潜藏在异常峰值时期的特征比平稳运行时期的特征重要。这类时序特征重要程度的差异性,标准 CNN模型难以体现,由于重要特征较少出现,可能会导致模型错误评估其重要性甚至直接忽略特征。
专家学者根据对人类视觉的研究,提出了注意力机制,计算机视觉、自然语言处理等领域[14-17]引入该机制优化现有模型,学习并确定重点关注的目标区域,使模型能够在有限资源下关注最有效的信息。本文基于这一机制改进 CNN 联合 LSTM 的体系结构,通过注意力机制处理被现有结构忽略的短序列特征的重要度差异,提取显著细粒度特征,同时便于LSTM更有效地捕捉时
间依赖性。
针对 CNN 联合 LSTM 时,忽略短期特征重要度而导致的重要特征丢失、长期时序规律挖掘有待优化等问题,本文提出基于注意力机制的 CNN-LSTM 预测模型。设计基于注意力机制的CNN结构,基于标准CNN,以并行注意力支路提取显著性特征。注意力支路比CNN设计了更大的输入尺度,以扩大输入感受野,从而更全面获取时序上下文信息,学习局部序列特征的重要程度。注意力模块通过提升最终模型中重要时序特征的影响力,降低最终模型中非重要特征的影响力,有效地应对模型未能较好区分时序特征重要程度差异性的不足。同时,标准 CNN 模块和注意力机制模块以不同长度序列作为输入的多尺度输入方式,能有效提取更丰富的短序列特征。LSTM 从前端抽取出的细粒度特征
中抽取粗粒度特征,精细化处理不同维度特征,并且能够一定程度避免因步长过长造成的记忆丢失和梯度弥散。
通过基于注意力机制的 CNN-LSTM 模型,实现粗细粒度特征融合,全面刻画时序数据。负荷需求量预测为典型的时序预测问题,负荷需求量变化受不同特征影响,并且短时间内各特征的影响程度不同[13]。本文对热电联产企业历史数据进行实验,设计并调整模型结构,最终搭建一种有效的时序预测模型,实验预测结果优于自回归积分滑动平均、支持向量回归和单一的神经网络模型。

背景知识

卷积神经网络

卷积神经网络借助卷积运算操作的优势,能够对原始数据进行更高层次和更抽象的表达,在图像等领域表现突出。由数据先验可知时序数据存在局部相关性
(时间相近的数据有较强相关性),所以能够运用 CNN处理其局部特征。CNN基本结构如图1所示,主要包含卷积层与池化层。

卷积层是受猫在视觉中枢存在感受野这一生物研究结果的启发而构建,通过设计尺寸适宜的卷积核对感受野内的信息进行卷积操作,以抽象表达原始数据。当输入数据 X 时,卷积层的特征图 C 可表示如下:

C = f (X ⊗ W + b) (1)

式中,⊗ 为卷积操作;W 为卷积核的权重向量;b 表示偏移量;f (⋅) 为激活函数,本文中为Relu函数,可以选用的还有sigmoid、tanh等。
池化层对卷积输出施行下采样操作,保留强特征,去除弱特征,同时减少参数数量,防止过拟合。本文利用 CNN 抽取原始数据特征,挖掘多维数据
之间的相互关联并从中剔除噪声和不稳定成分,将处理后的模式相对稳定的信息作为整体传入 LSTM 网络进行长序列预测。

注意力机制原理

专家学者根据对人类视觉的研究,提出了注意力机制[12],实现信息处理资源的高效分配。由于长时间序列的短子序列中特征重要程度存在差异,重要的显著特征往往会包含更多信息量,对实际需求量的趋势影响程度更大。假若赋予 CNN 更关注高重要度特征的能力,可以更好实现短期模式的有效提取和 LSTM 输入信息的优化。因此,本文使用注意力机制提取短序列的显著性特征。
注意力机制可归结为硬注意力(hard attention)与软注意力(soft attention)[19]。硬注意力机制筛选出受关注区域当作输入,在图像研究领域剔除无意义的背景数据后输入,能够有效聚焦目标物体。硬注意力机制采用直接限制输入内容的处理方法,在时序预测领域并不完全适用。即使输入序列的重要程度存在差异,但由于各输入子序列均含有一定信息,这些信息存在于序列的不同位置,无法明确定位以去除。此外,硬注意力机制需要用强化学习优化,训练难度较高,通用性较差。相较而言,软注意力机制以神经网络训练出的权值,在空间
或通道上加权全局输入特征,从而达到关注特定空间区域或通道的目的。同时,这一方式在反向计算时为可微的,故而能够采用端到端的学习方式,直接学习注意力网络。基于上述原理,本文将软注意力机制引入一维CNN,为所有输入特征逐个加权,关注特定空间和通道,实现时间序列的显著细粒度特征的提取。

软注意力和硬注意力的对比

软注意力(确定):

软(确定性)注意力机制使用所有键的加权平均值来构建上下文向量。对于软注意力,注意力模块相对于输入是可微的,因此整个系统仍然可以通过标准的反向传播方法进行训练。软注意力数学描述如下1:

其中的f ( q , k ) f(q,k)f(q,k)有很多种计算方法,如下表所示1:

硬注意力(随机):

硬(随机)注意力中的上下文向量是根据随机采样的键计算的。硬注意力可以实现如下1:

注:多项式分布2:多项式分布是二项式分布的推广。二项式做n次伯努利实验,规定了每次试验的结果只有两个。如果现在还是做n次试验,只不过每次试验的结果可以有m个,且m个结果发生的概率互斥且和为1,则发生其中一个结果X次的概率就是多项分布。概率密度函数是:

两者的对比和一种改进:
与软注意力模型相比,硬注意力模型的计算成本更低,因为它不需要每次都计算所有元素的注意力权重。 然而,在输入特征的每个位置做出艰难的决定会使模块不可微且难以优化,因此可以通过最大化近似变分下限或等效地通过 REINFORCE 来训练整个系统。 在此基础上,Luong 等人提出了机器翻译的全局注意力和局部注意力机制3。 全局注意力类似于软注意力。 局部注意力可以看作是硬注意力和软注意力之间的有趣混合,其中一次只考虑源词的一个子集。 这种方法在计算上比全局注意力或软注意力更便宜。 同时,与硬注意力不同,这种方法几乎在任何地方都是可微的,从而更容易实现和训练。

全局的注意力结构如下4:

局部的注意力结构如下4:

长短期记忆网络

LSTM 是由循环神经网络衍生而来的时序卷积神经网络,通过引入门函数,可以挖掘时间序列中相对较长间隔和延迟等的时序变化规律[5]。
LSTM 内部结构如图 2所示,xt 指代第 t 个输入序列元素值;c 指代记忆单元(cell)或称为细胞状态,是网络的核心,控制信息的传递;i 指代输入门(input gate)决定当前 xt 保留多少信息给 ct ;f 指代遗忘门(forget gate)决定保存多少前一时刻的细胞状态 ct - 1 至当前的ct ;o 指代输出门(output gate)决定 ct 传递多少至当前状态的输出 ht ;ht - 1 指代在 t - 1 时刻的隐层状态。上述过程对应公式如下所示:


式中,Wxi 、Wxf 、Wxo 、Wxc 分别指代输入层到输入门、遗忘门、输出门与细胞状态的权重向量;Whi 、Whf 、Who 、Whc 分别指代隐藏层到输入门、遗忘门、输出门与细胞状态的权重向量;bi 、bf 、bo 、bc 分别指代输入门、遗忘门、输出门与细胞状态的偏移量;σ(⋅) 指代 sigmoid激活函数;tanh 指代双曲正切激活函数;⊙ 表示向量元素乘。常规应用中,会继续通过全连接等步骤由 ht获取最终的预测值 pt 。
LSTM 通过门函数,控制历史信息的传递,具备一定的时间序列处理与预测能力。理论上其步长越长,挖掘出的信息量越多。然而在步长超出一定长度时,仍旧会出现远距离记忆丢失及梯度消失。本文通过优化CNN网络,更有效提取子序列特征,去除干扰信息后输入LSTM,尽可能保留更长的有效记忆信息,减少LSTM步长,解决梯度弥散问题。
基于注意力机制的神经网络模型

时间序列预测模型体系架构

基于注意力机制与神经网络,构建时间序列预测模型,本文称之为“基于注意力机制的 CNN-LSTM”,其整体架构如图3所示。

基于注意力机制的 CNN-LSTM 模型由数据预处理、基于注意力机制的 CNN 单元、LSTM 单元和输出单元三部分构成,详细介绍如下。

  • (1)数据预处理:针对异常数据,采用临近均值进行 替换;针对不同变量取值大小相差较大,进行归一化。 按照 4.3节介绍的划分方法将数据集划分为训练集、测 试集和验证集。
  • (2)基于注意力机制的CNN单元:从原始数据中截 取多个部分重叠的连续子序列作为该单元的输入,详细 模型结构和处理步骤在3.2节介绍。
  • (3)LSTM 单元:将前一单元的输出作为本单元的 输入,搭建时间序列预测模型。
  • (4)输出单元:LSTM网络中最后的隐层进行输出。

基于注意力机制的CNN结构

基于注意力机制的 CNN 单元的详细结构如图 4 所示,以下依次介绍关键步骤。

(1)输入处理

原始输入依据两种不同尺度切分。每个CNN输入长度为 s(原始尺度)的子序列;与之对应的注意力机制模块输入长度为 sa(跨尺度)的子序列,跨尺度子序列以原始尺度子序列的中点为中点。此外令 sa > s ,让注
意力模块能够更全面掌握上下文信息从而准确获取显著性特征,相邻输入子序列会存在重叠。

(2)注意力机制与CNN并行模块

该模块基于标准 CNN 模块,增添并行注意力机制支路提取显著特征。
CNN 模块由多层一维网络堆叠而成,每一层包含卷积层、批标准化层、非线性层,同时通过池化层实现采样聚合,通过卷积层的堆叠创建逐渐抽取更抽象特征的层次结构。该模块输出 m 个长为 n 特征序列,大小可以表示为 (n × m)。
注意力机制模块由特征聚合和尺度恢复两部分构成。特征聚合部分运用多层卷积和池化层的堆叠,从跨尺度子序列中提取关键特征,最后一层以大小为1×1的卷积核挖掘线性关系。尺度恢复部分将关键特征恢复到 (n × m) ,即和CNN模块输出特征的大小保持一致,再运用 sigmoid函数将数值约束在 0~1之间。将提取的上下文特征,作为基础特征的显著性特征图。每个并行模块的输入存在可调整的重叠,调整输入的重叠步长可以使模型更好地适应不同规律的数据,也可以进一步扩大联合模型一次整体输入的长度,捕捉更准确的长期特
征。并行模块之间的输入非密集重叠,可以避免过拟合。
基于注意力机制的 CNN 结构,注意力模块支路输入序列覆盖 CNN 的输入,并堆叠深层卷积网络和池化层,特征对应的输入感受野得以扩大,模型获取更全面的上下文信息,从而学习到当前局部序列特征的重要程度。通过注意力模块,能够提高重要时序特征对模型的影响程度,抑制非重要特征对模型的干扰,有效解决了模型无法区分时间序列数据重要程度的差异性的问题。同时,标准 CNN 支路和注意力支路以不同长度序列作为输入,多尺度的输入能有效提取更丰富的短序列特征,并能防止单一尺度 CNN 时输入切割过小或者过
大,预测时缺失匹配特征的问题。

(3)并行特征融合

CNN模块的输出特征与其对应的注意力机制模块输出的显著性特征进行逐元素相乘,这一融合方式在文献[20]和文献[21]已验证是可行和有效的。具体的,
CNN 输出特征的重要度越高,则其对应注意力机制模块的输出越接近 1;反之而言,CNN 输出特征的重要度越低,则其对应注意力机制模块的输出越接近 0。由数值的高低反映特征重要程度,从而完成重要特征的辨别。

(4)时序特征提取

融合的结果作为 LSTM 单元一个节点的输入,用LSTM 进行序列建模得到最终预测结果。运用 LSTM从基于注意力机制的 CNN 提取出的显著细粒度特征
中,提取粗粒度特征,精细化处理各维度特征的同时,防止因步长过长导致的记忆丢失和梯度弥散问题。这种体系结构能够捕获由注意力机制优化卷积运算后提取的有效特征的时间依赖性,实现粗细粒度特征融合,全面刻画时序数据。

算法描述

本文以天为单位,并行模块间 CNN 的重叠步长为rc ,LSTM的步长为 t 。以序列 Xi为例,上标 i (0 ≤ i < I)表示输入变量的维度,例如用 i = 0 表示历史实际供热量;下标表示记录次序,间隔为天。一个CNN模块中输入序列表示为 xi1 ,xi2 ,…,xis ,输入形式为 (s × I) 的2D矩阵,对应注意力机制模块的输入以 CNN 输入序列的中点为中点,
具体输入序列为 xi(1-(sa-s)/2) ,…,xi1,xi2,…,xis,…,xi (sa+s)/2 ,表示向下取整,超出 CNN 模块输入的部分用 0 补齐,合理选择 s 与 sa ,输入形式为 (sa × I)的2D矩阵。则如图4所示,第一组 t 步并行的注意力机
制与 CNN 模块的总输入序列为 xi1 ,xi2 ,…,xis*t-rc*(t-1)
LSTM 预测输出 p 对应的真实值等于 x0s*t-rc*(t-1)+1 ,以此类推。
序列 Xi 经过 CNN 模块的输出表示为 WCNN ,经过对应注意力模块的输出表示为Wattention ,将两者输出逐元素相乘:

W(i,c)= WCNN(i,c)⊙Wattention(i,c) (8)

其中 ⊙ 指代逐元素相乘;i 指代特征层中时间序列的相应位置;c 指代通道。式(8)对应的注意力机制主要运用了网络对时间序列位置以及通道的偏置。
将最终的特征层 W(i,c) 作为 LSTM 一个节点的输入,具体的,式(2)~(5)中的 xt 为 W(i,c) 。按照上述步骤向前调整输入序列完成前向传播过程,得到预测输出值 p 。再结合真实值,反向传播求解并更新模型参数,循环上述步骤,直至算法收敛。

实验及结果

实验数据简介

处理原始数据集,再将其按 6∶2∶2 的比例划分。数据输入时进行归一化,在加速模型收敛的同时,一定程度提升模型精度;输出时进行反归一化。

评价指标

本文选取三种评价指标,具体定义如下:
(1)预测缩放误差平均值(Mean Absolute Scaled Error,MASE)[22]
。热耗企业存在节假日停工情况,即供热负荷需求为间歇需求序列。因为 MASE 公式中不涉及无限或未定义的值,只有当所有的历史观测值相等
时,MASE 才会是无限或者不确定的,适用于间歇序列预测模型的评估,具体公式如下:

式中,分子 et 为周期 T 内的预测误差,即真实值 yt 与预测值 pt 的差值:et = yt - pt 。这一数值越低,预测效果越好。
(2)均方根误差(Root Mean Square Error,RMSE),
真实值与预测值误差平方的均值,公式为:

(3)确定性相关系数(R2 score),衡量模型预测未知
样本的效果,数值越高越好,计算公式如下:

其中,yˉ 表示原始数据均值。

实验结果及分析

模型关键参数调节

首先运用固定参数法选取模型的关键参数,其中Attention & CNN 单元的输入长度、注意力深度、CNN深度以及 LSTM 步长的影响较大,对应模型的 RMSE评价结果如图7所示。随着输入长度和步长的增长、深度的加深,模型表现效果基本呈现先变好后变差的趋势,因为随着输入长度、步长的增长,模型单步容纳的数据量越多,随着深度越深,模型拟合能力越强;当达到某一范围时,由于过拟合等原因,模型的预测效果反而变差。

经过实验效果对比,本文选择的最佳结构与参数配置由表1列出。其中,输入表示为Input(序列长度×输入数据维度);rc = 4 ,t = 7 ;卷积层参数表示为conv<神经元尺寸-通道数>,网络为 same padding 类型,strides=1;FC表示全连接层。

不同预测方法对比

为了验证本文模型的优越性,将该模型与其他方法进行对比,其结果如表2所示。

消融实验

为了验证本文模型的有效性,进行消融实验。将其分解,设置CNN、LSTM与CNN+LSTM,由表3和图8所示的消融实验结果可以得出:
(1)CNN 与 LSTM 两种方法的效果相对接近,对比传统算法均有极大的提升。CNN在提取间歇需求特征时表现略好,可能因为间歇需求与节假日等局部特征的联系更加密切;LSTM 考虑全局特征,在 RMSE 指标上表现略好。图 8(a)与(b)中 CNN 与 LSTM 在部分时间段的预测呈现出一定的滞后现象,且两个全局峰值的预测效果很差。
(2)CNN+LSTM结合两个模型,一定程度上综合了全局与局部特征,在 RMSE 和 R2 指标上的表现优于单一的CNN、LSTM。图8(c)中其预测曲线的滞后现象略微减轻,且对两个全局峰值处的趋势判断正确,但是对波动短序列的预测仍存在欠缺,对局部特征的抽取效果有待提升。
(3)本文所提模型在各项指标上结果均为最优,比单一LSTM方法的MASE指标提升了17.42%,RMSE指标提升了15.78%。在图8中,本文模型对波动短序列的趋势预判基本正确,说明从基于注意力机制的 CNN 提取的显著性特征中,LSTM 可以获得更准确的时序规律;对两个峰值的预测好于CNN+LSTM模型,注意力机制帮助模型聚焦子序列中的显著特征,避免了重要特征的丢失,使急剧变化的预测更准确。以上实验结果验证了本文模型通过注意力机制、CNN 与 LSTM 的联合,较好地探寻出了实际供热负荷的变化规律。

结束语

针对存在时序性、受多个变量影响,并且短序列的特征存在重要程度差异性的热电联产企业供热数据,本文提出并验证了一种融合粗细粒度特征的热电联产供热负荷预测模型。针对供热负荷存在的长期时序变化规律,以及 LSTM 输入序列需要编码成固定长度向量、输入序列较长时模型性能较差的局限,设计基于注意力机制的 CNN 进行初步抽取后,再用 LSTM 挖掘包含更长记忆信息的粗粒度特征,实现精确预测。针对短期内负荷需求量变化的特征重要度存在差异的问题,设计原始尺度输入 CNN 提取基础特征,结合跨尺度输入 CNN
提取上下文特征作为基础特征的显著性特征图,逐元素相乘融合多尺度特征实现基于注意力机制的CNN来抽取显著细粒度特征。
在实验中,对比其他模型,本文设计的预测模型在各项指标上均有最优表现,有助于企业生产调度方案的制定与优化,提升了能源利用率与企业效益。目前预测模型输入包含两种输入尺度,未来将探究多样输入尺度对预测结果的影响,设计多尺度输入的模型结构,提升预测精度。

以上是关于基于注意力机制的CNN-LSTM模型及其应用(含软硬注意力区别)的主要内容,如果未能解决你的问题,请参考以下文章

解读:一种基于CNN-LSTM混合神经网络的股价预测模型

如何在 CNN-LSTM 模型上应用 model.fit() 函数?

JVS开源框架系列:​​动态数据模型说明​「含软开企服的开源地址」

[模型学习]Attention机制及其原理推导

基于注意力机制的循环神经网络对 金融时间序列的应用 学习记录

基于注意力机制的循环神经网络对 金融时间序列的应用 学习记录