一种基于图神经网络的时空特征融合的SDN路由优化方法

文档序号:33623205发布日期:2023-03-25 13:38阅读:117来源:国知局
一种基于图神经网络的时空特征融合的SDN路由优化方法
一种基于图神经网络的时空特征融合的sdn路由优化方法
技术领域
1.本发明涉及软件定义网络(software defined network,sdn)技术领域,具体涉及一种基于图神经网络的时空特征融合的sdn路由优化方法。


背景技术:

2.软件定义网络的出现使得集中管理和操作成为可能,交换机等网络资源通过可编程接口变得可灵活配置。传统的sdn路由优化方法通过建模来近似拟合当前的网络状态,并采用启发式方法来为多媒体流请求实时计算路由配置,其缺点是具有严格的适用场景,计算开销巨大,难以应对未来实时高动态的网络环境。近年来,深度强化学习技术的进步为解决高度复杂的路由问题的优化提供了新的途径。基于深度强化学习的路由方案可以通过以经验驱动和无模型的方式提高路由决策性能来学习和适应复杂网络。但是,由于强化学习的性质,即在确定最佳策略的过程中进行探索,网络性能可能会在学习过程中下降。特别是,如果网络拓扑发生变化,drl的智能体需要重新学习以进行路由优化。网络流量的特征越复杂,收敛所需的时间越长,从而导致网络性能处于长期较差的状态。


技术实现要素:

3.本发明所要解决的是现有sdn路由优化方法会导致网络性能在学习过程中下降的问题,提供一种基于图神经网络的时空特征融合的sdn路由优化方法。
4.为解决上述问题,本发明是通过以下技术方案实现的:
5.一种基于图神经网络的时空特征融合的sdn路由优化方法,包括步骤如下:
6.步骤1、sdn控制平面采集历史网络信息即网络拓扑、路由方案和流量矩阵生成训练数据集,并将训练数据集存储在sdn知识平面的存储区中;
7.步骤2、在sdn知识平面构建基于图神经网络的时空特征融合网络模型,并使用训练数据集对基于图神经网络的时空特征融合网络模型进行离线训练;
8.步骤3、sdn控制平面将当前时刻的流量矩阵和当前时刻的奖励值r
t

输入到sdn知识平面的强化学习智能体生成动作值,随后输入到基于图神经网络的时空特征融合网络模型;
9.步骤4、sdn知识平面的基于图神经网络的时空特征融合网络模型接收动作值作为路由方案p,并将该路由方案p、网络拓扑m、当前时刻的流量矩阵以及当前时刻及其前q个时刻的流量矩阵组成的流量矩阵序列一起作为基于图神经网络的时空特征融合网络模型的输入,基于图神经网络的时空特征融合网络模型输出链路级别的性能矩阵路径级别的性能矩阵和预测的下一个时刻的流量矩阵其中q为设定值;
10.步骤5、sdn知识平面的强化学习智能体的奖励函数根据链路级别的性能矩阵和
路径级别的性能矩阵生成下一个时刻的奖励值r
t

+1

11.步骤6、判断下一个时刻及其前s个时刻的奖励值组成的奖励值序列{r
t

+1-s
,

,r
t

,r
t

+1
}的标准差是否小于设定的收敛阈值:其中s为设定值;
12.如果是,则sdn知识平面的基于图神经网络的时空特征融合网络模型将路由方案p下发给sdn控制平面,sdn控制平面结合路由方案p和网络拓扑m生成sdn流表项,并将sdn流表项下发给数据平面的各个网络节点,网络节点根据该sdn流表项进行网络流量转发,实现数据平面的路由优化;
13.否则,令t

=t

+1,并将预测的下一个时刻的流量矩阵赋值给当前时刻的流量矩阵下一个时刻的奖励值r
t

+1
赋值当前时刻的奖励值r
t

,并转至步骤3。
14.上述步骤1中,训练数据集d为:
[0015][0016]
式中,m=[m
ij
]
n*n
为网络拓扑,m
ij
表示网络节点vi与网络节点vj的连接关系,当网络节点vi与网络节点vj相连时m
ij
=1,当网络节点vi与网络节点vj不相连时m
ij
=0;p=[p
ij
]
n*n
为路由方案,p
ij
表示网络节点vi到网络节点vj的路径;为t时刻的流量矩阵,表示t时刻网络节点vi到网络节点vj的流量;i,j=1,2,

,n,n是网络节点的数量。
[0017]
上述步骤2中,基于图神经网络的时空特征融合网络模型包括网络性能预测模块和流量矩阵预测模块;
[0018]

在网络性能预测模块中:
[0019]
首先,将路由方案中每条路径的所有链路的链路容量最小值定义为链路特征,并赋值给初始的链路状态向量;同时,将t时刻流量矩阵的所有网络节点间流量定义为路径特征,并赋值给初始的路径状态向量;
[0020]
然后,在当前的链路状态向量和当前的路径状态向量上重复相同的消息传递操作t次,在这t次循环过程中,链路和路径相互交换隐藏状态,得到最终的链路隐藏状态和最终的路径隐藏状态;具体包括过程如下:
[0021]
消息聚合过程:先将当前的链路状态向量和当前的路径状态向量做矩阵拼接得到链路与路径特征矩阵,并将链路与路径特征矩阵和网络拓扑输入到两层gcn,得到两层gcn的输出状态;再将gcn的输出状态送入到三层gcn,得到三层gcn的输出状态;后将两层gcn的输出状态和三层gcn的输出状态送入残差模块,得到残差模块的输出状态,并将残差模块的输出状态经过softmax函数得到路径的隐藏状态;
[0022]
路径状态更新过程:先将当前的路径状态向量和路径的隐藏状态做矩阵拼接得到路径特征矩阵;再将路径特征矩阵输入到gru中,得到更新的路径状态向量;
[0023]
链路状态更新过程:每条链路对包含它的所有路径的隐藏状态进行求和,得到链路的隐藏状态;再将当前的链路状态向量和链路的隐藏状态做矩阵拼接得到链路特征矩阵;后将链路特征矩阵输入到gru中,得到更新的链路状态向量;
[0024]
迭代过程:将更新的路径状态向量和更新的链路状态向量作为下一次消息传递操
作输入,经过t次消息传递操作后,得到的最终的链路隐藏状态和最终的路径隐藏状态;其中t为设定值;
[0025]
最后,将最终的链路隐藏状态通过全连接层得到链路级别的性能矩阵,并将最终的路径隐藏状态通过全连接层得到路径级别的性能矩阵;
[0026]

在流量矩阵预测模块中:
[0027]
首先,将t时刻及其前q个时刻的流量矩阵组成的流量矩阵序列和网络拓扑输入到一层gcn,得到具有空间相关信息的隐藏状态;
[0028]
然后,将具有空间特征信息的隐藏状态输入到lstm中,计算得到涵盖时空特征的隐藏状态,得到具有时空特征的隐藏状态集合;
[0029]
接着,基于注意力机制计算具有时空特征的隐藏状态集合中每个隐藏状态的权重,并得到全局网络拓扑流量变化信息的上下文向量;
[0030]
最后,将上下文向量通过全连接层,并利用relu函数得到预测的下一个时刻的流量矩阵。
[0031]
上述步骤4中,将网络拓扑m、路由方案p、以及当前时刻的流量矩阵输入到基于图神经网络的时空特征融合网络模型的网络性能预测模块,基于图神经网络的时空特征融合网络模型的网络性能预测模块输出链路级别的性能矩阵和路径级别的性能矩阵将网络拓扑m、以及当前时刻及其前q个时刻的流量矩阵组成的流量矩阵序列输入到基于图神经网络的时空特征融合网络模型的流量矩阵预测模块,基于图神经网络的时空特征融合网络模型的流量矩阵预测模块输出预测的下一个时刻的流量矩阵
[0032]
上述步骤5中,下一个时刻的奖励函数的奖励值r
t

+1
为:
[0033][0034]
式中,α、β为设定的可调参数;式中,α、β为设定的可调参数;为链路级别的性能矩阵;为链路级别的性能矩阵;为路径级别的性能矩阵,是所有的均值,n是网络节点的数量。
[0035]
与现有技术相比,本发明利用强化学习智能体学习网络交换机流量负载与网络性能之间的相互依赖关系,并确定一组最佳路由转发方案,以在网络的端到端路径带宽容量和负载均衡之间取得平衡。通过结合图神经网络的预测来寻找数据包的最佳路径,即开发基于图神经网络的时空特征融合网络模型(gct-route网络模型),来辅助深度强化学习快速完成自学习过程。本发明可以解决因强化学习智能体在学习过程中长时间探索试错而导致网络路由性能下降的问题。
附图说明
[0036]
图1为一种基于图神经网络的时空特征融合的sdn路由优化方法的流程图;
[0037]
图2为gct-route网络模型示意图;
[0038]
图3为实现一种基于图神经网络的时空特征融合的sdn路由优化方法的系统架构图。
具体实施方式
[0039]
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。
[0040]
一种基于图神经网络的时空特征融合的sdn路由优化方法,如图1所示,其包括步骤如下:
[0041]
s1、对计算机网络场景进行建模,采集历史网络信息,生成训练数据集。
[0042]
图神经网络(graph neural network,gnn)是一种特殊的网络,适用于涉及以图形式构造的信息的应用。gnn可以很好地推广到不同的图形结构,并有助于实现不同网络节点和边之间的关系。
[0043]
对于通信网络g,本发明使用g=(v,l)来描述网络结构;v=[v1,v2,

,vn]表示网络节点集合,n是网络节点的数量;l=[l1,l2,

,lm]表示链路集合,m是链路的数量。根据图网络的定义,定义网络拓扑连接关系为网络拓扑m:
[0044][0045]
式中,m
ij
为网络拓扑m的第i行第j列,表示网络节点vi与网络节点vj的连接关系。
[0046]
定义网络中的路由方案p:
[0047]
p=[p
ij
]
n*n
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0048]
式中,p
ij
为路由方案的第i行第j列,表示网络节点vi到网络节点vj的路径。为了表述方便,每个路径p
ij
用pk进行表示,pk定义为链路序列pk=其中k(i)是路径pk中的第i个链路的索引。
[0049]
定义t时刻的流量矩阵
[0050][0051]
式中,为t时刻的流量矩阵的第i行第j列,表示在t时刻网络节点vi到网络节点vj的流量。
[0052]
在控制平面利用网络监测模块获取网络信息数据,包括网络拓扑m、路由方案p和流量矩阵生成训练数据集d,并将训练数据集d存储在知识平面的存储区中。
[0053][0054]
s2、在知识平面构建基于图神经网络的时空特征融合网络模型(gct-route)网络模型,并使用上述数据集对gct-route网络模型进行离线训练。
[0055]
gct-route网络模型分为网络性能预测模块和流量矩阵预测模块,如图2所示。网络性能预测模块使用消息传递神经网络(message passing neural network,mpnn)表示给定路由方案的链路和路径之间的依赖关系,该模块遵循路径的状态取决于路径上的所有链
路状态和链路的状态取决于穿过的链路所有路径的状态,其由图卷积神经网络(graph convolution network,gcn)、残差连接(skip connect)、门控循环单元(gate recurrent unit,gru)、全连接层(full connection,fc)所构成。流量矩阵预测模块为了充分获取网络的空间相关性和时间相关性,首先使用gcn捕获网络信息的空间特征,再使用长短期记忆网络(long short-term memory,lstm)捕获网络信息的时间特征,以得到具有时空特征融合的网络状态信息。随后引入自注意力机制调整不同时间片的重要性并收集全局时空信息,以提高预测精度。最后经过一个全连接层(full connection,fc),选择relu函数来获取最终的预测结果。所构建的gct-route网络模型拟定输入网络拓扑m、路由方案p、流量矩阵通过将拓扑中的网络节点、链路与路由方案中的源-目的路径以及通过它们的流量来实现拓扑结构、路由和输入流量之间的复杂关系,输出网络链路级别和路径级别的性能估计和预测的下一个时刻流量矩阵。训练过程中,将网络拓扑m、路由方案p和t时刻的流量矩阵输入到网络性能预测模块进行训练,网络拓扑m和t时刻及其前q个时刻的流量矩阵组成的流量矩阵序列输入到流量矩阵预测模块进行训练,q是流量矩阵序列的长度。。
[0056]

对于网络性能预测模块:
[0057]
1)将路由方案p中每条路径pk的所有链路的链路容量最小值定义为链路特征x
l
,将t时刻流量矩阵的所有网络节点间流量(即每个源-目标路径承载的带宽)定义为路径特征x
p
,随后将链路特征x
l
和路径特征x
p
赋值给初始的链路状态向量和初始的路径状态向量对链路和路径的状态向量进行状态初始化。
[0058][0059][0060]
2)为了解决链路和路径之间的依赖关系,网络性能预测模块在链路和路径的状态向量上重复相同的消息传递操作t次,在这t次循环过程中,链路和路径相互交换隐藏状态,最终得到的链路隐藏状态h
l
和路径隐藏状态h
p

[0061]
2.1)对于路由方案p中的路径,每条路径从其中包含的所有链路收集消息,使用gcn和残差模块来进行消息聚合,以捕获路径状态的空间关系,得到路径的隐藏状态
[0062]
先将当前的路径状态向量和当前的链路状态向量做矩阵拼接得到链路与路径特征矩阵x
t

[0063][0064]
拼接之后,将网络拓扑m为邻接矩阵和链路与路径特征矩阵x
t
输入到两层gcn中,经过两层gcn的图卷积操作,得到两层gcn的输出状态h
gcn

[0065]hgcn
=gcn
(2)
(m,x
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0066]
再将两层gcn的输出状态h
gcn
依次经过三层gcn,得到三层gcn的输出状态gcn
(3)
(m,h
gcn
),并将三层gcn的输出状态gcn
(3)
(m,h
gcn
)和两层gcn的输出状态h
gcn
送入残差模块,得到
残差模块的输出状态hr:
[0067]hr
=gcn
(3)
(m,h
gcn
)+h
gcn
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)随后,残差模块的输出状态hr经过softmax函数得到路径的隐藏状态
[0068][0069]
2.2)完成上述的消息聚合过程之后,对路径状态进行更新,得到更新的路径状态向量
[0070]
先将当前的路径状态向量和路径的隐藏状态做矩阵拼接,得到路径特征矩阵
[0071][0072]
拼接之后,将得到特征矩阵作为一层gru的输入,进行路径状态的更新,得到更新的路径状态向量
[0073][0074]
2.3)完成路径状态进行更新之后,对链路状态进行更新,得到更新的链路状态向量
[0075]
首先,基于路径的隐藏状态每条链路对包含它的所有路径隐藏状态进行求和,得到链路的隐藏状态
[0076][0077]
式中,表示包含第l条链路的路径pk的隐藏状态。
[0078]
接着将当前的链路状态向量和链路的隐藏状态做矩阵拼接,得到链路特征矩阵
[0079][0080]
拼接之后,将链路特征矩阵作为一层gru的输入,进行链路状态的更新,得到更新的链路状态向量
[0081][0082]
2.4)完成了路径状态和链路状态的更新后,将更新结果和作为下一次消息传递操作输入,经过t次消息传递操作后,将最终得到的链路隐藏状态h
l
和路径隐藏状态h
p

[0083]
3)将链路隐藏状态h
l
和路径隐藏状态h
p
通过全连接层得到链路和路径的性能预测指标,即链路级别的性能矩阵和路径级别的性能矩阵
[0084]
表示链路级别的性能矩阵,用于衡量网络的链路剩余容量,
[0085][0086]
表示路径级别的性能矩阵,用于衡量网络节点之间的承载带宽。
[0087][0088]

对于流量矩阵预测模块:
[0089]
1)使用gcn模块捕获状态信息的空间相关信息。
[0090]
将输入的t时刻及其前q个时刻的流量矩阵组成的流量矩阵序列将输入的t时刻及其前q个时刻的流量矩阵组成的流量矩阵序列并将y
tm
作为网络节点的特征矩阵输入到gcn中;同时将网络拓扑m作为邻接矩阵输入到gcn中;经过图卷积操作得到具有空间相关信息的隐藏状态:
[0091][0092]
然后,为了获取网络的时间相关性,将具有空间特征信息的隐藏状态输入到lstm中,计算得到涵盖时空特征的隐藏状态:
[0093][0094]
并将这些隐藏状态表示为h,即h为具有时空特征的隐藏状态集合:
[0095][0096]
2)基于注意力机制计算每个隐藏状态的权重,并得到全局网络拓扑流量变化信息的上下文向量。
[0097]
引入自注意力机制调整不同时间片的重要性并收集全局时空信息以提高预测精度。在基于注意力机制中:
[0098]
先将隐藏状态集合h作为输入,经过两个隐藏层获得相应的输出
[0099][0100]
式中,w1和b1分别是第一层隐藏层的权重和偏差,w2和b2分别是第二层隐藏层的权重和偏差。
[0101]
再通过softmax归一化指数函数,计算每个特征的权重
[0102][0103]
后通过加权和计算得到全局网络拓扑流量变化信息的上下文向量b
t

[0104][0105]
3)使用全连接层输出预测结果,选择relu函数来获取最终的预测结果,即下一个时刻的流量矩阵预测值
[0106][0107]
式中,fc(
·
)表示一层全连接网络。
[0108]

损失函数
[0109]
在网络性能预测模块的训练中,用链路级别的性能矩阵的预测值与真实值y
l
的均方误差和路径级别的性能矩阵的预测值与真实值y
p
的均方误差的和作为损失函数,并通过梯度下降法更新网络性能预测模块的模型参数;
[0110][0111]
在流量矩阵预测模块的训练中,用流量矩阵的预测值与真实值之间的均方误差,并加入l2正则化项作为损失函数,并通过梯度下降法更新流量矩阵预测模块的模型参数;
[0112][0113]
式中,λ为超参数;
[0114]
整个gct-route网络模型的损失函数loss为:
[0115]
loss=loss1+loss2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(27)
[0116]
式中,loss1表示网络性能预测模块的损失项,loss2表示流量矩阵预测模块的损失项。
[0117]
s3、控制平面的网络监测模块获取当前时刻的流量矩阵将当前时刻的流量矩阵和当前时刻的奖励值r
t

输入到强化学习智能体强化学习,智能体根据状态生成动作值,随后输入到gct-route网络模型。
[0118]
s4、gct-route网络模型接收动作值作为路由方案p,并与当前时刻流量矩阵当前时刻及其前q个时刻流量矩阵组成的流量矩阵序列以及网络拓扑m一起作为模型的输入,随后输出链路级别的性能矩阵路径级别的性能矩阵和下一个时刻的流量矩阵预测值
[0119]
s5、强化学习智能体的奖励函数根据链路级别的性能矩阵和路径级别的性能矩阵生成下一时刻的奖励值。
[0120]
奖励函数以负载均衡为优化目标,即最大化链路剩余容量和最小化网络节点间的路径承载带宽,即下一时刻奖励值r
t

+1
为:
[0121]rt

+1
=αr
l-βr
p
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(28)
[0122]
式中,α、β为可调参数。
[0123]
链路剩余容量r
l
为网络链路剩余容量的总和,即:
[0124][0125]
式中,即为链路级别的性能矩阵的第i行,为链路级别的性能矩阵,n是网络节点的数量。
[0126]
网络节点间的路径承载带宽r
p
为每个源-目标路径承载带宽的方差,即:
[0127][0128]
式中,式中,为路径级别的性能矩阵的第i行,是所有的均值,为路径级别的性能矩阵,n是网络节点的数量。
[0129]
s6、判定奖励值是否收敛。
[0130]
设定奖励值序列r
t

+1
由下一个时刻及其前s个时刻的奖励值组成r
t

+1
={r
t

+1-s
,

,r
t

,r
t

+1
}组成,其中s是奖励值序列的长度。
[0131]
设定收敛阈值为ε,若奖励值序列的标准差σ(r
t

+1
)小于ε即σ(r
t

+1
)《ε,则判定奖励值为收敛。此时gct-route网络模型将路由方案p下发给控制平面的流表生成模块,流表生成模块将路由方案p结合网络拓扑m生成sdn流表项,随后将sdn流表项下发给数据平面的各个网络节点中,网络节点根据最新的流表项进行网络流量转发,实现数据平面的路由优化。
[0132]
否则,判定为不收敛。
[0133]
s7、令t

=t

+1,并将预测的下一个时刻的流量矩阵赋值给当前时刻的流量矩阵下一个时刻的奖励值r
t

+1
赋值当前时刻的奖励值r
t

,并转至s3。最终形成网络自学习,解决因强化学习智能体在学习过程中长时间探索试错而导致网络路由性能下降的问题。
[0134]
实现上述方法的系统架构如图3所示,其具体由数据平面、控制平面和知识平面组成。数据平面由sdn交换机(网络节点)组成,用于执行网络流量数据转发。控制平面由sdn控制器组成,功能分为网络监测模块和流表生成模块,其中网络监测模块用于采集网络信息数据,流表生成模块根据上层下发的路由方案生成sdn流表项,并下发数据平面的sdn交换机。知识平面由强化学习智能体、gct-route网络模型和存储区组成,其中存储区用于存放训练数据集,强化学习智能体和gct-route网络模型两者间进行交互生成网络流量调度策略。
[0135]
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1