CN115934661A - 一种图神经网络压缩方法、装置、电子设备及存储介质 - Google Patents

一种图神经网络压缩方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115934661A
CN115934661A CN202310188245.0A CN202310188245A CN115934661A CN 115934661 A CN115934661 A CN 115934661A CN 202310188245 A CN202310188245 A CN 202310188245A CN 115934661 A CN115934661 A CN 115934661A
Authority
CN
China
Prior art keywords
graph
neural network
training
value
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310188245.0A
Other languages
English (en)
Other versions
CN115934661B (zh
Inventor
胡克坤
董刚
赵雅倩
李仁刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202310188245.0A priority Critical patent/CN115934661B/zh
Publication of CN115934661A publication Critical patent/CN115934661A/zh
Application granted granted Critical
Publication of CN115934661B publication Critical patent/CN115934661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种图神经网络压缩方法、装置、电子设备及存储介质,涉及图神经网络领域,方法包括:获取待训练的图神经网络模型和训练图数据;训练图数据包含图顶点及其对应的顶点特征;控制强化学习的智能体学习图神经网络模型及训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于压缩训练结果生成最佳聚类簇数序列;聚类簇数序列中的聚类簇数与图神经网络模型中的图卷积层一一对应,聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使特征码字的数量等于聚类簇数;利用最佳聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理;可基于聚类簇数序列压缩图神经网络模型,以降低其对资源的需求。

Description

一种图神经网络压缩方法、装置、电子设备及存储介质
技术领域
本发明涉及图神经网络模型领域,特别涉及一种图神经网络压缩方法、装置、电子设备及计算机可读存储介质。
背景技术
近年来,图神经网络模型(Graph Neural Network, GNN)因其能够对不规则结构数据进行建模而受到大量关注。该模型具体可应用于链接预测领域。链接预测问题可定义为:给定一个在t时刻的网络(如社交网络,其包含用户间的好友关系),链接预测的目标是要预测在(t+t’)时刻的网络中会形成哪些新的链接(如预测两个陌生人成为朋友的可能性)。为实现这一效果,图神经网络模型需提取图数据中各图顶点的顶点特征、网格结构等特征信息,并根据这些特征信息开展表征学习,生成顶点嵌入,进而以此为基础,预测网络中未知的链接以及未来可能出现的链接。然而,图神经网络模型对内存的需求会随着图数据规模的增大而急剧增加。以小批量随机梯度下降法训练图神经网络模型为例,通过反向传播计算完整梯度需要存储所有顶点在所有层的中间嵌入,因此需要大量的存储空间,这将使得那些具有非常有限内存预算的小型设备面临巨大压力。另一方面,更大规模的图数据需要更多的数据操作(例如,加法和乘法)和数据移动(例如,内存事务),这将消耗大量资源并耗尽微型设备上有限的资源预算。也正是如此,对图神经网络模型及图数据进行压缩,是将该模型部署至资源有限设备前所必须要执行的操作。
相关技术中,现有的压缩方法存在以下缺陷:(1)在推理阶段,采样方法需要所有邻居进行非随机预测,需要将完整的图数据加载至推理设备;(2)基于采样的图神经网络模型无法在各种任务和数据集上始终如一地取得令人满意的结果;(3)采样策略不能普遍应用于每层利用多跳或全局上下文的图神经网络模型,会面临邻居顶点过量难以处理的问题,阻碍了图神经网络模型在大图上的应用。
也正是如此,如何对图神经网络模型及对应的图数据进行压缩,是本领域技术人员所需解决的技术问题。
发明内容
本发明的目的是提供一种图神经网络压缩方法、装置、电子设备及计算机可读存储介质,可基于智能体给出的最佳聚类簇数序列对图神经网络模型及对应的图数据实施增量聚类压缩,以降低其对硬件加速器的资源需求。
为解决上述技术问题,本发明提供一种图神经网络压缩方法,包括:
获取待训练的图神经网络模型及其对应的训练图数据;所述训练图数据包含图顶点及其对应的顶点特征;
控制强化学习的智能体学习所述图神经网络模型及所述训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于所述压缩训练结果生成最佳聚类簇数序列;聚类簇数序列中的聚类簇数与所述图神经网络模型中的图卷积层一一对应,所述聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使所述特征码字的数量等于所述聚类簇数;
利用所述最佳聚类簇数序列对所述图神经网络模型和训练图数据进行压缩及训练处理,得到最优图神经网络模型和最优图数据。
优选地,所述控制强化学习的智能体学习所述图神经网络模型及所述训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于所述压缩训练结果生成最佳聚类簇数序列,包括:
控制所述智能体利用动作策略生成所述聚类簇数序列;
控制所述智能体根据利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理得到的压缩训练结果更新所述动作策略,并在预设循环值耗尽前基于更新后的动作策略进入所述生成所述聚类簇数序列的步骤,直至所述预设循环值耗尽时输出所述最佳聚类簇数序列。
优选地,所述控制所述智能体根据利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理得到的压缩训练结果更新所述动作策略,并在预设循环值耗尽前基于更新后的动作策略进入所述生成所述聚类簇数序列的步骤,直至所述预设循环值耗尽时输出所述最佳聚类簇数序列,包括:
利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理,并确定处理后的图神经网络模型的模型压缩比及其执行指定任务时对应的性能值,以及确定处理后的训练图数据的数据压缩比;
利用所述性能值、所述模型压缩比及所述数据压缩比生成奖励值及状态向量,并在确定所述奖励值大于历史奖励值时,利用所述奖励值更新所述历史奖励值,以及将所述聚类簇数序列设置为所述最佳聚类簇数序列;
控制所述智能体利用所述状态向量、所述聚类簇数序列、所述奖励值更新所述动作策略,并在确定所述预设循环值耗尽前基于更新后的动作策略进入所述生成所述聚类簇数序列的步骤;
在确定所述预设循环值耗尽时,输出所述最佳聚类簇数序列。
优选地,所述性能值为AUC值。
优选地,所述控制所述智能体利用动作策略生成所述聚类簇数序列,包括:
将时间步设置为1,初始化历史状态向量,并控制所述智能体利用所述动作策略及所述历史状态向量生成所述聚类簇数序列;
相应的,所述控制所述智能体利用所述状态向量、所述聚类簇数序列、所述奖励值更新所述动作策略,包括:
利用所述性能值、所述模型压缩比及所述数据压缩比生成当前状态向量;
利用所述历史状态向量、所述聚类簇数序列、所述奖励值及所述当前状态向量生成转换数据,并利用所述转换数据及所述聚类簇数序列生成优势数据;
当确定所述时间步未达到预设时间步阈值时,对所述时间步加1,利用所述当前状态向量更新所述历史状态向量,并进入所述控制所述智能体利用所述动作策略及所述历史状态向量生成所述聚类簇数序列的步骤;
当确定所述时间步达到所述预设时间步阈值时,控制所述智能体利用所有所述转换数据、所述聚类簇数序列及所述优势数据更新所述动作策略。
优选地,所述控制所述智能体利用所述动作策略及所述历史状态向量生成所述聚类簇数序列,包括:
控制所述智能体利用所述动作策略及所述历史状态向量生成连续聚类簇数;
对所述连续聚类簇数进行离散化处理,得到所述聚类簇数;
利用所有所述聚类簇数生成所述聚类簇数序列。
优选地,所述对所述连续聚类簇数进行离散化处理,得到所述聚类簇数,包括:
以如下方式对所述连续聚类簇数进行离散化处理,得到所述聚类簇数;
Figure SMS_2
;其中,
Figure SMS_6
表示第
Figure SMS_9
个时间步中的第
Figure SMS_1
个聚类簇数,
Figure SMS_4
表示第
Figure SMS_7
个时间步中的第
Figure SMS_10
个连续聚类簇数,
Figure SMS_3
表示四舍五入函数,
Figure SMS_5
表示预设最小聚类簇数,
Figure SMS_8
表示预设最大聚类簇数。
优选地,所述智能体包括策略网络和价值网络,所述利用所述转换数据及所述聚类簇数序列生成优势数据,包括:
以如下方式利用所述转换数据及所述聚类簇数序列生成所述优势数据:
Figure SMS_27
;其中,
Figure SMS_30
表示所述动作策略,
Figure SMS_33
表示策略网络参数,
Figure SMS_11
表示第
Figure SMS_15
个时间步,
Figure SMS_19
表示所述历史状态向量,
Figure SMS_24
表示所述聚类簇数序列,
Figure SMS_12
表示所述策略网络基于动作策略
Figure SMS_17
Figure SMS_21
状态下采取
Figure SMS_25
作为动作所产生的优势数据,
Figure SMS_14
表示所述策略网络基于动作策略
Figure SMS_16
Figure SMS_20
状态下采取
Figure SMS_23
作为动作所产生的奖励值,
Figure SMS_29
表示当动作策略为
Figure SMS_32
及状态向量为
Figure SMS_35
时价值网络
Figure SMS_36
所生成的价值数据,
Figure SMS_13
表示价值网络参数;
Figure SMS_18
表示所述当前状态向量,
Figure SMS_22
表示当动作策略为
Figure SMS_26
及状态向量为
Figure SMS_28
时价值网络
Figure SMS_31
所生成的价值数据,
Figure SMS_34
表示预设折扣因子。
优选地,所述控制所述智能体利用所有所述转换数据、所述聚类簇数序列及所述优势数据更新所述动作策略,包括:
求解预设目标函数关于所述策略网络参数的梯度,并按如下方式更新所述策略网络参数:
Figure SMS_37
其中,所述预设目标函数用于优化所述策略网络参数,
Figure SMS_38
表示所述策略网络参数对应的梯度,
Figure SMS_39
表示所述预设时间步阈值,
Figure SMS_40
表示超参数;
对于给定价值网络损失函数
Figure SMS_41
Figure SMS_42
求解所述损失函数关于价值网络参数的梯度,并以如下方式更新价值网络参数:
Figure SMS_43
;其中
Figure SMS_44
表示所述价值网络参数对应的梯度,
Figure SMS_45
表示超参数。
优选地,所述利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理,包括:
对所述图神经网络模型中各图卷积层的特征变换矩阵、特征向量码本及梯度码本进行随机初始化;所述特征向量码本中包含所述特征码字;
在同一所述特征向量码本中,根据所述训练图数据中的各顶点特征与各所述特征码字间的距离,将各所述顶点特征分类至各所述特征码字对应的类簇,并记录各所述顶点特征与所述类簇之间的对应关系,得到与所述特征向量码本对应的图卷积层的码字归属矩阵;
将批次值初始化为1,确定所述训练图数据中未训练的图顶点,并从所述未训练的图顶点中随机抽取预设数量的图顶点作为一个批次;
利用当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、特征向量码本及码字归属矩阵对各所述图卷积层依次进行前向信息传递;
确定完成所述前向信息传递时,利用预设损失函数、所述当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各所述图卷积层依次进行梯度后向传播;
利用所述当前批次的图顶点的顶点特征对完成所述梯度后向传播的各图卷积层的特征变换矩阵、特征向量码本及梯度码本进行增量更新;
在确定所述批次值小于指定值时,将所述当前批次的图顶点标记为已训练,对所述批次值加1,并进入所述确定所述训练图数据中未训练的图顶点的步骤;所述指定值由所述训练图数据中图顶点的总量与所述预设数量计算得到;
在确定所述批次值等于所述指定值时,进入所述确定处理后的图神经网络模型的模型压缩比及其执行指定任务时对应的性能值,以及确定处理后的训练图数据的数据压缩比的步骤。
优选地,所述利用当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、特征向量码本及码字归属矩阵对各所述图卷积层依次进行前向信息传递,包括:
将第
Figure SMS_46
层图卷积层设置为目标图卷积层,并将所述当前批次的图顶点的顶点特征设置为目标图卷积层的输入特征;其中
Figure SMS_47
以如下方式将所述目标图卷积层的卷积核划分为内部信息传递卷积核和外部信息传递卷积核:
Figure SMS_48
Figure SMS_49
其中,
Figure SMS_51
表示所述第
Figure SMS_54
层图卷积层的第q个卷积核,
Figure SMS_56
Figure SMS_52
分别表示第
Figure SMS_57
层图卷积层的第q个卷积核的内部信息传递卷积核及外部信息传递卷积核;
Figure SMS_59
表示所述当前批次的图顶点的编号;
Figure SMS_62
表示由
Figure SMS_53
任意行第
Figure SMS_55
列所构成的卷积核;
Figure SMS_58
表示由
Figure SMS_60
任意行第j列所构成的卷积核,
Figure SMS_50
Figure SMS_61
Figure SMS_63
表示一个n维的列向量,所有不属于
Figure SMS_64
行的元素为1,其余均为零;
以如下方式利用所述目标图卷积层的输入特征、内部信息传递卷积核、外部信息传递卷积核、特征向量码本、码字归属矩阵及特征变换矩阵对所述目标图卷积层进行前向信息传递,得到下一图卷积层的输入特征:
Figure SMS_65
其中,
Figure SMS_67
表示第
Figure SMS_69
层图卷积层的输入特征的近似值,
Figure SMS_73
表示非线性激活函数,
Figure SMS_68
表示第
Figure SMS_71
层图卷积层的输入特征,
Figure SMS_77
表示第
Figure SMS_79
层图卷积层的特征向量码本,
Figure SMS_66
Figure SMS_72
表示第
Figure SMS_75
层图卷积层的码字归属矩阵,
Figure SMS_78
表示所述训练图数据中所有的顶点特征,
Figure SMS_70
表示全为1的n维列向量,
Figure SMS_74
表示所述第
Figure SMS_76
层图卷积层的第q个卷积核的特征变换矩阵;
将下一图卷积层设置为所述目标图卷积层,并进入所述以如下方式将所述目标图卷积层的卷积核划分为内部信息传递卷积核和外部信息传递卷积核的步骤。
优选地,所述利用预设损失函数、所述当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各所述图卷积层依次进行梯度后向传播,包括:
以如下方式利用所述预设损失函数、所述当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各所述图卷积层依次进行梯度后向传播:
Figure SMS_80
其中,
Figure SMS_82
表示所述预设损失函数,
Figure SMS_88
表示在所述第
Figure SMS_93
层图卷积层中所述预设损失函数关于
Figure SMS_83
的梯度的近似值,
Figure SMS_84
表示在第
Figure SMS_87
层图卷积层中所述预设损失函数关于
Figure SMS_91
的梯度;
Figure SMS_81
表示第
Figure SMS_86
层图卷积层的梯度码本,
Figure SMS_90
Figure SMS_92
Figure SMS_85
表示所述训练图数据在第
Figure SMS_89
层图卷积层对应的所有顶点特征,
Figure SMS_94
表示
Figure SMS_95
的近似值。
优选地,在利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理之前,还包括:
以如下方式确定所述聚类簇数序列对应的存储占用值;
Figure SMS_96
;其中,
Figure SMS_97
表示所述存储占用值,
Figure SMS_98
表示数据大小;
当确定所述存储占用值大于预设存储占用阈值时,依次减小所述聚类簇数序列中的各个聚类簇数,并在每次完成减小时进入所述确定所述聚类簇数序列对应的存储占用值的步骤;
当确定所述存储占用值小于或等于所述预设存储占用阈值时,进入所述利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理的步骤。
优选地,所述确定处理后的图神经网络模型的模型压缩比,以及确定处理后的训练图数据的数据压缩比,包括:
以如下方式计算所述处理后的图神经网络模型的模型压缩比:
Figure SMS_99
其中,
Figure SMS_100
表示所述模型压缩比,
Figure SMS_101
表示所述图卷积层的总数,
Figure SMS_102
表示第
Figure SMS_103
层图卷积层第q个卷积核的原始大小,
Figure SMS_104
Figure SMS_105
分别表示第
Figure SMS_106
层图卷积层第q个卷积核处理后的内部信息传递卷积核和外部信息传递卷积核的大小;
以如下方式计算所述处理后的训练图数据的数据压缩比:
Figure SMS_107
;其中,所述
Figure SMS_108
表示所述数据压缩比,
Figure SMS_109
表示所有所述图顶点在第
Figure SMS_110
层图卷积层对应的输入特征的大小,
Figure SMS_111
表示第
Figure SMS_112
层图卷积层对应的特征向量码本的大小。
优选地,所述利用所述当前批次的图顶点的顶点特征对完成所述梯度后向传播的各图卷积层的特征向量码本进行增量更新,包括:
对完成所述梯度后向传播的各图卷积层的特征向量码本以如下方式进行增量更新:
Figure SMS_120
Figure SMS_113
Figure SMS_118
;其中,
Figure SMS_116
表示所述当前批次的编号,
Figure SMS_119
nb分别表示所述训练图数据中图顶点的总量和所述当前批次的图顶点的数量,
Figure SMS_122
表示所述当前批次内第i个类簇的图顶点数量,
Figure SMS_126
表示已训练的所有t个批次中属于第i个类簇的图顶点数量,
Figure SMS_121
表示所有已训练的t个批次中属于第i个类簇的所有顶点特征之和,
Figure SMS_125
表示所述当前批次中第i个类簇的特征码字,
Figure SMS_115
表示在处理所述当前批次时第
Figure SMS_117
层图卷积层的码字归属矩阵,
Figure SMS_123
表示所述当前批次对应的图顶点在第
Figure SMS_127
层图卷积层对应的输入特征,
Figure SMS_124
表示一个长度为
Figure SMS_128
、只有第i个元素为1的单位列向量,
Figure SMS_114
表示预设折扣因子。
优选地,在将批次值初始化为1之前,还包括:
将轮次值初始化为1,并进入所述将批次值初始化为1的步骤;
相应的,在确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比之前,还包括:
在确定所述轮次值小于预设轮次阈值时,对所述轮次值加1,将所述训练图数据中的所有图顶点标记为未训练,并进入所述将批次值初始化为1的步骤;
在确定所述轮次值等于所述预设轮次阈值时,进入所述确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比的步骤。
本发明还提供一种图神经网络压缩装置,包括:
获取模块,用于获取待训练的图神经网络模型及其对应的训练图数据;所述训练图数据包含图顶点及其对应的顶点特征;
智能体模块,用于控制强化学习的智能体学习所述图神经网络模型及所述训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于所述压缩训练结果生成最佳聚类簇数序列;聚类簇数序列中的聚类簇数与所述图神经网络模型中的图卷积层一一对应,所述聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使所述特征码字的数量等于所述聚类簇数;
压缩训练模块,用于利用所述最佳聚类簇数序列对所述图神经网络模型和训练图数据进行压缩及训练处理,得到最优图神经网络模型和最优图数据。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的图神经网络压缩方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的图神经网络压缩方法。
本发明提供一种图神经网络压缩方法,包括:获取待训练的图神经网络模型及其对应的训练图数据;所述训练图数据包含图顶点及其对应的顶点特征;控制强化学习的智能体学习所述图神经网络模型及所述训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于所述压缩训练结果生成最佳聚类簇数序列;聚类簇数序列中的聚类簇数与所述图神经网络模型中的图卷积层一一对应,所述聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使所述特征码字的数量等于所述聚类簇数;利用所述最佳聚类簇数序列对所述图神经网络模型和训练图数据进行压缩及训练处理,得到最优图神经网络模型和最优图数据。
可见,本发明首先可基于聚类簇数序列对待训练的图神经网络模型及训练图数据进行压缩及训练处理,其中聚类簇数序列中的聚类簇数与图神经网络模型中的图卷积层一一对应,聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使特征码字的数量等于聚类簇数。换句话说,本发明可对图神经网络模型中每一层图卷积层所需处理的顶点特征实施增量聚类压缩,用少量量化参考向量即码本,实现近似消息前向传递和近似梯度反向传播,大大减小图神经网络模型在训练和/或推理过程中对硬件加速器的资源需求;此外,考虑到图神经网络模型不同图卷积层的聚类压缩程度对下游图神经网络模型学习或推理性能影响不同,本发明特提出混合压缩策略,为不同图卷积层分配不同的聚类簇数。进一步,为找到最优聚类簇数,以在减小图神经网络模型和图数据体积的前提下尽量保证模型推理精度,本发明还使用了基于强化学习的自动搜索算法,其中基于强化学习的智能体可在庞大的状态空间中为图神经网络模型每一图卷积层自动搜索最优的聚类簇数,大幅压缩图神经网络模型和图顶点特征数据规模,降低图神经网络模型训练推理对硬件资源的需求,并可加快图神经网络模型的训练推理速度。本发明还提供一种图神经网络模型压缩装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种图神经网络压缩方法的流程图;
图2为本发明实施例所提供的一种图神经网络模型的结构示意图;
图3为本发明实施例所提供的一种图神经网络压缩系统的结构框图;
图4为本发明实施例所提供的一种图神经网络压缩装置的结构框图;
图5为本发明实施例所提供的一种电子设备的结构框图;
图6为本发明实施例所提供的一种计算机可读存储介质的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为对图神经网络模型及图数据进行有效压缩,以在确保该模型具有较高的链接预测性能的基础上,尽可能降低其对硬件设备的资源需求,本发明可提供一种图神经网络压缩方法,可利用最佳聚类簇数序列对图神经网络模型及对应的图数据实施增量聚类压缩,进而大大减小图神经网络模型在训练和/或推理过程中对硬件设备的资源需求;此外,为提升最佳聚类簇数的生成效率,本发明将利用强化学习的智能体自主学习待训练的图神经网络模型及其对应的训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于学习结果自动给出最佳聚类簇数,进而能够显著提升最佳聚类簇数序列的生成效率。具体的,请参考图1,图1为本发明实施例所提供的一种图神经网络压缩方法的流程图,该方法可以包括:
S101、获取待训练的图神经网络模型和及其对应的训练图数据;训练图数据包含图顶点及其对应的顶点特征。
应当指出的是,本步骤中获取的图神经网络模型是未经训练的图神经网络模型,而训练图数据则是用于训练这一待训练模型的图数据。本发明实施例将在训练过程中对图神经网络模型及训练图数据实施压缩,这是由于在训练图神经网络模型时,通过反向传播计算完整梯度需要存储所有顶点在所有层的中间嵌入,而这需要大量的存储空间,进而将为内存预算非常有限的小型设备带来巨大的计算压力,并最终导致该设备难以对图神经网络模型进行有效训练。因此,本发明实施例在图神经网络模型的训练过程中对其实施压缩,以用压缩数据实现近似消息前向传递和近似梯度反向传播,不仅可显著降低训练图神经网络模型所需的存储资源量,同时还可大幅缩小图神经网络模型及图数据的体积,进而也可降低部署该模型所需的存储资源量,以及降低部署该模型的其他硬件资源限制条件。
为便于理解,本发明实施例接下来将对图数据和图神经网络模型进行简单介绍。图数据是图神经网络的基本输入内容。考虑一个具有n个顶点和m条边的图G=(V, E),即有|V|=n和|E|=m,图顶点的平均度数为d=m/n。图中各图顶点的连通性由邻接矩阵
Figure SMS_130
给出,元素
Figure SMS_134
表示图顶点
Figure SMS_138
Figure SMS_132
相邻接,
Figure SMS_135
则表示不邻接。每个顶点
Figure SMS_137
都有长度为
Figure SMS_140
的特征向量,所有图顶点的特征向量组成顶点特征矩阵
Figure SMS_129
,其中
Figure SMS_133
在本发明实施例中均用于指代矩阵,如
Figure SMS_136
表示
Figure SMS_139
为一个
Figure SMS_131
的矩阵。在本发明实施例中,图数据中具体要被压缩的部分为上述顶点特征矩阵,该矩阵属于浮点型数据。应当指出的是,尽管图数据中一般包含图顶点、各图顶点的顶点特征及记录有各图顶点间连通性的邻接矩阵(或邻接表),但由于本申请实施例并不会对邻接矩阵进行压缩,且邻接矩阵在本申请实施例中的用途与其在未经压缩的图神经网络模型中的用途一致,因此本申请实施例将不过多描述图神经网络模型对邻接矩阵的具体处理方式,可参考图神经网络的相关技术。
进一步,图神经网络是一种能够处理不规则结构数据的特殊神经网络。尽管图神经网络的结构可遵循不同指导原则进行设计,但几乎所有图神经网络都可以解释为对顶点特征执行消息传递,然后是特征变换和激活。图2展示了一个典型的图神经网络的结构:它由输入层、L层图卷积层和输出层组成。输入层负责读取记录有图拓扑结构的邻接矩阵A(或记录有图拓扑结构的邻接表AdjList)以及顶点特征矩阵
Figure SMS_141
。图卷积层负责提取顶点特征,对于每一层图卷积层
Figure SMS_142
,它读入邻接矩阵A(或邻接表AdjList)以及顶点特征矩阵
Figure SMS_143
,经由图卷积操作和非线性变换,输出新的顶点特征矩阵
Figure SMS_144
,并将
Figure SMS_145
输入至下一层图卷积层。输出层根据任务的不同自由设定,如在处理链接预测任务时,输出层用于计算任意两个顶点之间存在链接的可能性得分,该得分越高,链接存在的可能性越大,反之则越小。处理链接预测任务的输出层通常可利用非线性激活函数实现:
Figure SMS_146
其中
Figure SMS_147
是一个n*n维的矩阵,其元素
Figure SMS_148
表示顶点
Figure SMS_149
Figure SMS_150
之间存在链接的可能性得分或概率。
应当指出的是,本发明实施例并不限定具体的图神经网络模型、图数据及链接预测任务。正如上文所述,图神经网络模型的结构可遵循不同指导原则进行设计;同时,可以理解的是,对于不同应用领域的链接预测任务,图数据的具体内容甚至是其复杂度都可能不同,因此具体的图神经网络模型和图数据可根据实际应用需求进行选择。本发明实施例之所以可对各类图神经网络及图数据进行压缩,是由于本发明实施例采用了强化学习方式来确定图神经网络及图数据对应的最佳聚类簇数,而强化学习技术对各类环境均有较强的适应性,因此本发明实施例所提供的压缩方法适用于执行链接预测任务的各类图神经网络模型。
S102、控制强化学习的智能体学习图神经网络模型及训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于压缩训练结果生成最佳聚类簇数序列;聚类簇数序列中的聚类簇数与图神经网络模型中的图卷积层一一对应,聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使特征码字的数量等于聚类簇数。
如上所述,本发明实施例将使用聚类簇数序列对图神经网络模型及其对应的训练图数据中各图顶点的顶点特征进行压缩。其中,聚类簇数序列中的聚类簇数与图神经网络模型中的图卷积层一一对应,这些聚类簇数具体用于将输入至对应图卷积层的顶点特征压缩为该图卷积层所需处理的特征码字,以使特征码字的数量等于聚类簇数,其中输入至该图卷积层的顶点特征的数量大于该聚类簇数。这些特征码字由输入至对应图卷积层的顶点特征聚类得到,即简单来讲,本发明实施例将利用特征码字对顶点特征进行替代,以在降低数据计算量的同时实现近似的前向信息传递和梯度反向传播,进而达到降低训练数据量和模型大小的目的;此外,考虑到不同图卷积层对聚类压缩程度的敏感程度不同,进而对不同图卷积层施加不同聚类压缩力度对下游图神经网络模型的学习及推理影响不同,因此本发明实施例特别地为每一图卷积层都设置了对应的聚类簇数,以确保对不同图卷积层采取不同的力度进行压缩,并可进一步降低压缩对模型性能的影响。关于聚类簇数、特征码字的具体生成方式请参考后续实施例中的相关介绍。可以理解的是,聚类簇数在聚类簇数序列中是有序排列的,该排列顺序与各聚类簇数对应图卷积层在图神经网络模型中的顺序是相同的。
进一步,为提升最佳聚类簇数序列的确定效率,本发明实施例将采用基于强化学习技术的智能体自主学习图神经网络模型及训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于这一结果自动给出最佳聚类簇数序列。换句话说,本发明实施例将不断地利用新的聚类簇数序列对训练图数据对图神经网络模型进行压缩和训练,并将每轮压缩训练结果返回给智能体,以便其进行学习。具体的,上述聚类簇数序列可由智能体自动给出,即可控制智能体利用动作策略(智能体自主给出聚类簇数序列所需参照的信息)自主生成聚类簇数序列,并利用这一聚类簇数序列对图神经网络模型和训练图数据进行压缩训练,进而将压缩训练结果返回给智能体,以使智能体利用这一结果更新动作策略,并利用更新后的策略生成下一组聚类簇数序列;在进行多轮迭代后,由智能体挑选出聚类压缩及训练效果最好的最佳聚类簇数序列并输出。
在一种可能的情况中,控制强化学习的智能体学习图神经网络模型及训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于压缩训练结果生成最佳聚类簇数序列,可以包括:
步骤11:控制智能体利用动作策略生成聚类簇数序列;
步骤12:控制智能体根据利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理得到的压缩训练结果更新动作策略,并在预设循环值耗尽前利用更新后的动作策略继续进入生成聚类簇数序列的步骤,直至预设循环值耗尽时输出最佳聚类簇数序列。
需要说明的是,本发明实施例并不限定具体的预设循环值,可根据实际应用需求进行设定。
S103、利用最佳聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理,得到最优图神经网络模型和最优图数据。
在得到最佳聚类簇数序列之后,需利用该最佳聚类簇数序列对图神经网络模型和训练图数据进行重新压缩及训练,以得到压缩效果及训练效果最佳的最优图神经网络模型和最优图数据。
基于上述实施例,本发明首先可基于聚类簇数序列对待训练的图神经网络模型及训练图数据进行压缩及训练处理,其中聚类簇数序列中的聚类簇数与图神经网络模型中的图卷积层一一对应,聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使特征码字的数量等于聚类簇数。换句话说,本发明可对图神经网络模型中每一层图卷积层所需处理的顶点特征实施增量聚类压缩,用少量量化参考向量即码本,实现近似消息前向传递和近似梯度反向传播,大大减小图神经网络模型在训练和/或推理过程中对硬件加速器的资源需求;此外,考虑到图神经网络模型不同图卷积层的聚类压缩程度对下游图神经网络模型学习或推理性能影响不同,本发明特提出混合压缩策略,为不同图卷积层分配不同的聚类簇数。进一步,为找到最优聚类簇数,以在减小图神经网络模型和图数据体积的前提下尽量保证模型推理精度,本发明还使用了基于强化学习的自动搜索算法,其中基于强化学习的智能体可在庞大的状态空间中为图神经网络模型每一图卷积层自动搜索最优的聚类簇数,大幅压缩图神经网络模型和图顶点特征数据规模,降低图神经网络模型训练推理对硬件资源的需求,并可加快图神经网络模型的训练推理速度。
基于上述实施例,下面对利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理的方式进行详细介绍。
首先对顶点特征矩阵、码本、码字及码字归属矩阵间的相关关系及相关生成方式进行介绍。作为减小数据和模型规模的有效手段,矢量量化(也可称为聚类压缩)可用码本中与输入矢量最匹配的码字的索引代替输入矢量进行传输与存储,而解码时仅需要简单地查表操作。其突出优点是压缩比大、解码简单且能够很好地保留信号的细节。不妨以顶点特征矩阵
Figure SMS_159
为例,简单介绍矢量量化的基本原理,其中顶点特征矩阵即为包含所有顶点特征的矩阵,
Figure SMS_153
表示顶点特征的总量,
Figure SMS_155
表示各顶点特征的特征维度。不妨记经由矢量量化压缩后的顶点特征矩阵
Figure SMS_154
Figure SMS_156
,本发明实施例将称
Figure SMS_160
为特征码本,其中
Figure SMS_164
表示特征码字的数量,
Figure SMS_162
。矢量量化压缩问题,就是要找到一个最优的码字归属矩阵
Figure SMS_166
,使得压缩前后的两个矢量间距离最小。距离越小,意味着信息损失越少,反之则越大。其中,
Figure SMS_151
中的元素
Figure SMS_158
若等于1则表示将图顶点
Figure SMS_163
的特征
Figure SMS_167
唯一指派给特征码字
Figure SMS_168
,意味着
Figure SMS_170
Figure SMS_157
最匹配,进而意味着
Figure SMS_161
将用于替代
Figure SMS_165
来被图神经网络模型进行处理。因为是唯一指派,所以除第j列以外,第i行所有其他列元素均为0,因此,
Figure SMS_169
是一个k维的单位行向量
Figure SMS_152
上述矢量量化压缩问题可建模为一个优化问题,优化目标是尽量减少量化压缩前后两个矢量的距离,而约束条件是每个顶点特征都唯一分配到一个码字。此处用两者差的L2范数(又称欧氏范数)表示这一距离。目标函数和约束条件可表示为如下形式:
目标函数:
Figure SMS_171
约束条件:
Figure SMS_172
该问题可通过聚类算法如k-means(k均值聚类)求解。此时,每个特征码字都表示一个聚类的中心。压缩后的
Figure SMS_173
Figure SMS_174
(图卷积核)可分别通过如下两个公式计算得到:
Figure SMS_175
Figure SMS_176
其中,
Figure SMS_177
表示各元素全为1的n维列向量;
Figure SMS_178
称为卷积核码本。应当指出的是,利用相同码字归属矩阵压缩图卷积核的原因在于该矩阵记录的派生关系在消息传递过程中很重要,因此需采用相同的矩阵进行压缩。
当然,在实际应用中,由于图神经网络模型通常采用小批量随机梯度下降法进行训练,即图数据将被分为多个批次(Batch),而在图神经网络模型每轮训练中仅使用一个批次的图数据进行训练。在这种情况下,无法一次性使用全量的训练图数据生成特征码本,因此本发明实施例可通过小批量K均值(mini-batch k-means)的方式实现上述聚类操作,即通过多个批次迭代计算得到最终的特征码本和码字归属矩阵,而在每次迭代中间也可通过指数移动平均方法进行在线更新特征码本和码字归属矩阵,以实现同样的聚类效果。后文将会介绍特征码本、码字归属矩阵的更新方式。
进一步,除了对图顶点特征进行压缩外,本发明实施例还对图神经网络模型中的每一图卷积层进行了压缩。具体的,在利用小批量随机梯度下降法进行训练的过程中,对于每一批次中的每个图顶点
Figure SMS_182
(利用
Figure SMS_185
表示批次,
Figure SMS_189
Figure SMS_181
表示该批次的图顶点的编号),在计算其在第l+1个图卷积层对应的嵌入
Figure SMS_184
时,需要用到该图顶点的邻居顶点
Figure SMS_188
在前一层即第l层的嵌入
Figure SMS_192
,其中
Figure SMS_180
包含有图顶点
Figure SMS_183
的所有邻居,
Figure SMS_187
可从邻接表或邻接矩阵中得到。然而,图顶点
Figure SMS_191
可能在当前批次中,也可能不在。换而言之,当前批次的图顶点可能需要与处于当前批次的其他顶点进行消息传递,也可能需要与不处于当前批次的顶点进行消息传递。也正因如此,为计算第l+1层图顶点的嵌入,需要将第l层的第q个卷积核
Figure SMS_193
拆分成两部分,即
Figure SMS_197
Figure SMS_200
,其中
Figure SMS_203
表示用于计算当前批次内部顶点之间消息传递的卷积核
Figure SMS_199
表示由
Figure SMS_201
任意行第
Figure SMS_204
列所构成的卷积核;而
Figure SMS_206
表示用于计算当前批次中的内部顶点与当前批次外的外部顶点之间消息传递的卷积核,其可通过将
Figure SMS_179
中属于
Figure SMS_186
的列置零得到,即
Figure SMS_190
Figure SMS_194
表示由
Figure SMS_195
任意行第j列所构成的卷积核,
Figure SMS_198
Figure SMS_202
Figure SMS_205
表示一个n维的列向量,所有不属于
Figure SMS_196
的行的元素为1,其余均为零。
在完成对图卷积核的划分后,在进行消息传递的过程中,同一批次内顶点间消息传递可通过
Figure SMS_207
得到,其中
Figure SMS_208
表示当前批次的图顶点在第l层图卷积层对应的顶点特征;而批次之外的图顶点发送给批次内的图顶点的消息可通过
Figure SMS_209
近似计算得到,其中
Figure SMS_210
Figure SMS_211
。综上所述,单批次的顶点消息传递可通过如下公式近似计算得到:
Figure SMS_212
其中,
Figure SMS_213
表示第
Figure SMS_214
层图卷积层的第q个卷积核的特征变换矩阵,
Figure SMS_215
表示第
Figure SMS_216
层图卷积层所需处理的顶点特征的维度,
Figure SMS_217
表示第
Figure SMS_218
层图卷积层所需处理的顶点特征的维度。
类似地,本发明实施例也可以将单批次的梯度反向传播看作是消息传递,并可通过如下公式近似计算得到:
Figure SMS_219
;其中,损失函数loss关于
Figure SMS_220
的梯度可以表示为
Figure SMS_221
;利用与顶点特征
Figure SMS_222
相同的码字归属矩阵
Figure SMS_223
可得到梯度码本
Figure SMS_224
上面介绍了压缩后的图数据和图神经网络模型的具体形式,而本发明实施例的最终目的就是要为其每一图卷积层
Figure SMS_225
的顶点特征矩阵和图卷积核找到最优的码字归属矩阵
Figure SMS_226
,以在保证单个批次的图顶点特征数据和整个图神经网络模型均能够完全加载至资源受限设备内存的情况下,使得图神经网络模型拥有最佳的链接预测性能和最小的体积。在采用链接预测准确度、数据压缩率
Figure SMS_227
和模型压缩率
Figure SMS_228
来描述图神经网络模型的性能及图神经网络和训练图数据的体积时,本发明实施例的目的可简单描述为:在存储限制条件的约束下,找到最优的码字归属矩阵
Figure SMS_229
,以使压缩后的图神经网络模型和训练图数据对应的链接预测准确度、数据压缩率
Figure SMS_230
和模型压缩率
Figure SMS_231
之和最大。本发明实施例所面对的图神经网络模型压缩问题可形式化描述为:
目标函数:
Figure SMS_232
约束条件:
Figure SMS_233
其中
Figure SMS_234
表示在聚类簇数序列
Figure SMS_235
对应的AUC值,AUC(Area Under Curve,受试者工作特征曲线(ROC,receiver operating characteristic curve)下与坐标轴围成的面积)在本发明实施例中用于衡量图神经网络模型的链接预测准确度。当然,AUC也可以被替换为准确度或其他性能指标;
Figure SMS_236
表示压缩后的图神经网络模型及训练图数据对应的整体体积,
Figure SMS_237
表示所占存储空间大小,
Figure SMS_238
表示用于部署及训练图神经网络模型的硬件加速器的存储容量预算。
针对上述图神经网络模型压缩问题,本发明实施例提出了基于智能聚类的图神经网络压缩方法,该方法可借助强化学习算法强大的搜索能力为每一图卷积层
Figure SMS_250
寻找最优聚类簇数
Figure SMS_241
,利用mini-batch k-means聚类方法以批次为单位,增量式地将图顶点分成
Figure SMS_246
个类簇,得到L个码字归属矩阵
Figure SMS_249
。随后,可基于上述实施例中的相关公式对顶点特征矩阵
Figure SMS_252
和卷积核
Figure SMS_254
进行压缩,并实施前向消息传递,直至到达输出层;而输出层根据上述实施例中的相关公式计算图神经网络链接预测准确度
Figure SMS_255
和损失函数loss的值,并计算损失函数关于顶点特征矩阵
Figure SMS_248
的梯度
Figure SMS_253
;在梯度反向传播过程中,对于每一图卷积层
Figure SMS_239
,借助同一码字归属矩阵
Figure SMS_245
进行梯度近似计算;而在完成梯度反向传播之后,对于每一图卷积层
Figure SMS_242
,以当前批次的顶点特征矩阵
Figure SMS_243
和旧的码字归属矩阵
Figure SMS_247
为输入,使用指数移动平均方法更新码字归属矩阵
Figure SMS_251
、特征码本
Figure SMS_240
和梯度码本
Figure SMS_244
。关于强化学习在本发明实施例中的具体使用方式可参考后续实施例。
接下来将介绍通过指数移动平均方法进行在线更新码本和码字归属矩阵的具体执行方式。不妨设当前批次的编号为
Figure SMS_257
nb分别表示训练图数据中图顶点的总量和当前批次的顶点特征的数量,记
Figure SMS_260
内属于第
Figure SMS_263
个类簇的图顶点数为
Figure SMS_258
,记所有已训练的t个批次中属于第i个类簇的顶点数、属于第i个类簇所有顶点特征之和分别为
Figure SMS_261
Figure SMS_264
,则第t个批次中第
Figure SMS_266
个类簇的中心点即码字
Figure SMS_256
可通过如下公式更新获得:
Figure SMS_259
Figure SMS_262
Figure SMS_265
其中,
Figure SMS_268
表示一个长度为
Figure SMS_271
维的单位列向量,只有第i个元素为1,其余均为零;
Figure SMS_273
得到的是
Figure SMS_267
内所有属于第i个类簇的顶点特征之和。所有
Figure SMS_270
个码字即组成更新后的图神经网络模型第l层图卷积层对应的顶点特征码本
Figure SMS_272
。对于批次t的每个顶点v,计算其在第l层的顶点特征与
Figure SMS_274
个更新后的码字的距离,取距离最近的那个码字作为该顶点的最新码字,并更新码字归属矩阵。梯度码本
Figure SMS_269
可通过类似的方法实现增量更新。
基于上述描述,下面对利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理的具体过程进行介绍。在一种可能的情况中,利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理,可以包括:
S201、对图神经网络模型中各图卷积层的特征变换矩阵、特征向量码本及梯度码本进行随机初始化;特征向量码本中包含特征码字。
需要说明的是,本发明实施例并不限定随机初始化的具体过程,可参考图神经网络模型的相关技术。
S202、在同一特征向量码本中,根据训练图数据中的各顶点特征与各特征码字间的距离,将各顶点特征分类至各特征码字对应的类簇,并记录各顶点特征与类簇之间的对应关系,得到特征向量码本对应的图卷积层的码字归属矩阵。
为提升效率,本发明实施例将通过步骤S202初始化码字归属矩阵,即计算各顶点特征与各个刚初始化的特征码字间的距离,并根据这一距离将各顶点特征分类至对应类簇,进而根据归属情况初始化码字归属矩阵。
S203、将批次值初始化为1,确定训练图数据中未训练的图顶点,并从未训练的图顶点中随机抽取预设数量的图顶点作为一个批次。
本发明实施例接下来将把训练图数据划分成若干个批次,并分批次训练图神经网络模型。当然,为了提升图神经网络模型对训练图数据的学习程度,也可执行多轮小批量随机梯度下降,即在利用所有批次的训练图数据完成对图神经网络模型的训练后,再对训练图数据进行重新划分,并基于重新划分结果对图神经网络模型进行下一轮小批量随机梯度下降过程,依次类推,执行N轮。
在一种可能的情况中,在将批次值初始化为1之前,还包括:
步骤21:将轮次值初始化为1,并进入将批次值初始化为1的步骤。
需要说明的是,本发明实施例并不限定每个批次所包含的目标顶点特征的预设数量,可根据实际应用需求进行设定。可以理解的是,批次值对应的阈值等于顶点特征总量除以该预设数量。
S204、利用当前批次的图顶点的顶点特征、各图卷积层的特征变换矩阵、特征向量码本及码字归属矩阵对各图卷积层依次进行前向信息传递。
需要指出的是,各图卷积层在对顶点特征进行处理的过程中,通常还需要使用表征图拓扑结构的邻接矩阵或邻接表作为参考。然而这一参考动作与本发明实施例所提供的压缩及训练步骤无关,因此此处不做赘述。关于邻接矩阵或邻接表在图卷积层中的具体应用情况,可参考图神经网络模型的相关技术。
在一种可能的情况中,利用当前批次的图顶点的顶点特征、各图卷积层的特征变换矩阵、特征向量码本及码字归属矩阵对各图卷积层依次进行前向信息传递,可以包括:
步骤31:将第
Figure SMS_275
层图卷积层设置为目标图卷积层,并将当前批次的图顶点的顶点特征设置为目标图卷积层的输入特征;其中
Figure SMS_276
步骤32:以如下方式将目标图卷积层的卷积核划分为内部信息传递卷积核和外部信息传递卷积核:
Figure SMS_277
Figure SMS_278
其中,
Figure SMS_280
表示第
Figure SMS_283
层图卷积层的第q个卷积核,
Figure SMS_287
Figure SMS_281
分别表示第
Figure SMS_285
层图卷积层的第q个卷积核的内部信息传递卷积核及外部信息传递卷积核;
Figure SMS_288
表示当前批次的图顶点的编号;
Figure SMS_291
表示由
Figure SMS_279
任意行第
Figure SMS_284
列所构成的卷积核;
Figure SMS_289
表示由
Figure SMS_292
任意行第j列所构成的卷积核,
Figure SMS_282
Figure SMS_286
Figure SMS_290
表示一个n维的列向量,所有不属于
Figure SMS_293
行的元素为1,其余均为零;
步骤33:以如下方式利用目标图卷积层的输入特征、内部信息传递卷积核、外部信息传递卷积核、特征向量码本、码字归属矩阵及特征变换矩阵对目标图卷积层进行前向信息传递,得到下一图卷积层的输入特征:
Figure SMS_294
其中,
Figure SMS_295
表示第
Figure SMS_299
层图卷积层的输入特征的近似值,
Figure SMS_303
表示非线性激活函数,
Figure SMS_297
表示第
Figure SMS_306
层图卷积层的输入特征,
Figure SMS_307
表示第
Figure SMS_308
层图卷积层的特征向量码本,
Figure SMS_296
Figure SMS_300
表示第
Figure SMS_302
层图卷积层的码字归属矩阵,
Figure SMS_305
表示训练图数据中所有的顶点特征,
Figure SMS_298
表示全为1的n维列向量,
Figure SMS_301
表示所述第
Figure SMS_304
层图卷积层的第q个卷积核的特征变换矩阵;
步骤34:将下一图卷积层设置为目标图卷积层,并进入以如下方式将目标图卷积层的卷积核划分为内部信息传递卷积核和外部信息传递卷积核的步骤。
应当特别指出的是,在进行前向信息传递时,图神经网络模型还会使用到训练图数据中记录有各图顶点连通性的邻接表或邻接矩阵,以基于邻接表及邻接矩阵确定图顶点间的消息传递方向。然而,由于本发明实施例并未对邻接表或邻接矩阵进行压缩,且其在图神经网络模型中的用途并不受压缩处理的影响,因此关于图神经网络模型对邻接表或邻接矩阵的使用方式请参见图神经网络模型的相关技术。
S205、确定完成前向信息传递时,利用预设损失函数、当前批次的图顶点的顶点特征、各图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各图卷积层依次进行梯度后向传播。
在一种可能的情况中,利用预设损失函数、当前批次的图顶点的顶点特征、各图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各图卷积层依次进行梯度后向传播,可以包括:
步骤51:以如下方式利用预设损失函数、当前批次的图顶点的顶点特征、各图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各图卷积层依次进行梯度后向传播:
Figure SMS_309
其中,
Figure SMS_313
表示预设损失函数,
Figure SMS_314
表示在第
Figure SMS_318
层图卷积层中预设损失函数关于
Figure SMS_312
的梯度的近似值,
Figure SMS_317
表示在第
Figure SMS_321
层图卷积层中预设损失函数关于
Figure SMS_324
的梯度;
Figure SMS_310
表示第
Figure SMS_316
层图卷积层的梯度码本,
Figure SMS_320
Figure SMS_323
Figure SMS_311
表示所述训练图数据在第
Figure SMS_315
层图卷积层对应的所有顶点特征,
Figure SMS_319
表示
Figure SMS_322
的近似值。
S206、利用当前批次的图顶点的顶点特征对完成梯度后向传播的各图卷积层的特征变换矩阵、特征向量码本及梯度码本进行增量更新。
下面将以特征向量码本的增量更新为例进行介绍。应当指出的是,特征变换矩阵、梯度码本可基于相同的思路进行增量更新。
在一种可能的情况中,利用当前批次的图顶点的顶点特征对完成梯度后向传播的各图卷积层的特征向量码本进行增量更新,可以包括:
步骤61:对完成梯度后向传播的各图卷积层的特征向量码本以如下方式进行增量更新:
Figure SMS_325
Figure SMS_326
Figure SMS_327
其中,
Figure SMS_330
表示当前批次的编号,
Figure SMS_334
nb分别表示训练图数据中图顶点的总量和当前批次的图顶点的数量,
Figure SMS_338
表示当前批次内第i个类簇的图顶点数量,
Figure SMS_329
表示所有已训练的t个批次中属于第i个类簇的图顶点数量,
Figure SMS_333
表示所有已训练的t个批次中属于第i个类簇的所有顶点特征之和,
Figure SMS_337
表示当前批次中第i个类簇的特征码字,
Figure SMS_340
表示在处理当前批次时第
Figure SMS_328
层图卷积层的码字归属矩阵,
Figure SMS_332
表示当前批次对应的图顶点在第
Figure SMS_336
层图卷积层对应的输入特征,
Figure SMS_339
表示一个长度为
Figure SMS_331
、只有第i个元素为1的单位列向量,
Figure SMS_335
表示预设折扣因子。
S207、在确定批次值小于指定值时,将当前批次的图顶点标记为已训练,对批次值加1,并进入确定训练图数据中未训练的顶点特征的步骤;指定值由训练图数据中图顶点的总量与预设数量计算得到。
可以理解的是,指定值即等于顶点特征总量除以该预设数量。
S208、在确定批次值等于指定值时,进入确定处理后的图神经网络模型的模型压缩比及其执行指定任务时对应的性能值,以及确定处理后的训练图数据的数据压缩比的步骤。
当然,为提升图神经网络模型对训练图数据的感知情况,在进入确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比的步骤之前,还可再继续进行一轮小批量随机梯度下降,即在确定预设轮次阈值耗尽之前,对轮次值加一,并对训练图数据进行重新划分,并基于重新划分结果对图神经网络模型进行下一轮小批量随机梯度下降过程,直至预设轮次阈值耗尽时才进入确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比的步骤。
相应的,在确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比之前,还包括:
步骤71:在确定轮次值小于预设轮次阈值时,对轮次值加1,将训练图数据中的所有图顶点标记为未训练,并进入将批次值初始化为1的步骤;
步骤72:在确定轮次值等于预设轮次阈值时,进入确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比的步骤。
需要说明的是,本发明实施例并不限定预设轮次阈值的具体数值,可根据实际应用需求进行设定。
下面对压缩后的图神经网络模型在正常执行链接预测任务时对图数据的处理方式进行简单介绍。首先,在将图数据(如记录有用户间好友关系的社交网络)输入至完成训练的图神经网络模型之前,需将图数据中的图顶点划分为多个批次;随后,图神经网络模型的各图卷积层将加载对应的内部信息传递卷积核、外部信息传递卷积核及码字归属矩阵,以及根据当前处理批次的图顶点的顶点ID到邻接表或邻接矩阵中查找对应的邻居顶点ID、根据顶点ID及邻居顶点ID到顶点特征矩阵中查找对应的顶点特征及邻居顶点特征,进而将顶点特征及邻居顶点特征输入至各图卷积层进行前向消息传递处理。在完成前向消息传递处理之后,图卷积层将把处理结果输入至图神经网络模型的输出层,并由输出层利用非线性激活函数
Figure SMS_341
预测各图顶点之间存在链接的可能性得分或概率(如预测用户间成为好友的可能性得分或概率)。
基于上述实施例,由于存储占用量是本发明实施例对压缩后图神经网络模型的重要考量指标,而这一指标直接决定硬件加速器能否训练图神经网络模型,因此本发明实施例可在智能体给出聚类簇数序列之后,立刻计算该聚类簇数序列对应的存储占用值,并确定存储占用值是否符合要求,若不符合要求则需要对聚类簇数序列进行调整,以满足应用需求。在一种可能的情况中,在利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理之前,还可以包括:
S301、以如下方式确定聚类簇数序列对应的存储占用值;
Figure SMS_342
其中,
Figure SMS_343
表示存储占用值,
Figure SMS_344
表示数据大小。
换句话说,本发明实施例将预先确定压缩后的特征码本、图卷积核、特征变换矩阵及梯度特征码本的体积是否满足应用需求,若不满足则需要对聚类簇数序列进行调整。
S302、当确定存储占用值大于预设存储占用阈值时,依次减小聚类簇数序列中的各个聚类簇数,并在每次减小完成时进入确定聚类簇数序列对应的存储占用值的步骤;
S303、当确定存储占用值小于或等于预设存储占用阈值时,进入利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理的步骤。
需要说明的是,本发明实施例并不限定预设存储占用阈值的具体数值,可根据实际应用情况进行设置。
基于上述实施例,下面将对压缩图神经网络模型及训练图数据的具体过程进行详细介绍。为便于理解,首先对后文中出现的动作、动作策略、时间步、奖励值及转换数据进行介绍。动作为智能体根据动作策略所给出的信息,而动作策略为智能体在历史环境条件下为了给定动作所需参考的参数信息。在本发明实施例中,动作即为当前轮压缩训练所要使用的聚类簇数序列,而历史环境条件则为图神经网络模型和训练图数据经过上一轮压缩训练处理之后对应的压缩训练结果。确定一个完整动作的过程称作一次策略(episode),为提升智能体对环境的感知程度,一次策略可进一步包含若干个时间步(step),即智能体需在时间步数值耗尽前,利用当前策略不断更新聚类簇数序列,直至时间步数值耗尽时,基于图神经网络模型和训练图数据在各时间步中对应的压缩训练结果对当前策略进行更新。当然,为进一步提升环境感知程度,智能体将进行多次策略流程。进一步,在每完成一次压缩训练后,可根据图神经网络模型和训练图数据的压缩训练结果生成奖励值,该奖励值表示对模型和数据施加聚类簇数序列对应的压缩力度后,该模型和数据在关注指标方面(如压缩比、执行链接预测任务的性能等方面)的表现情况,通常可基于奖励值大小来挑选最佳的聚类簇数序列。进一步,在每完成一次压缩训练后,还可生成转换数据,该数据具体由历史状态向量、动作、奖励值及当前状态向量组成,历史状态向量用于记录图神经网络模型和训练图数据在上一轮压缩训练处理之后对应的压缩训练结果,当前状态向量相应用于记录图神经网络模型和训练图数据在当前轮压缩训练处理之后对应的压缩训练结果。智能体具体通过转换数据来感知不同策略所带来的环境变化情况。需要说明的是,本发明实施例并不限定智能体所基于的具体算法,可根据实际应用需求进行设定。优选地,智能体可基于近端策略优化算法(Proximal Policy Optimization,PPO)。
基于上述介绍,下面将详细介绍智能体迭代生成聚类簇数序列以及更新动作策略的过程。在一种可能的情况中,控制强化学习的智能体学习图神经网络模型及训练图数据在不同聚类簇数序列条件下的训练结果,并基于训练结果生成最佳聚类簇数序列,可以包括:
S401、控制智能体利用动作策略生成聚类簇数序列。
如上所述,智能体可通过多个时间步来不断更新动作策略,以提升对环境的感知程度;此外,智能体在每次生成聚类簇数序列时,都需要参考图神经网络模型和训练图数据经过上一轮压缩训练处理之后对应的压缩训练结果,即都需要参考历史状态向量。本发明实施例并不限定状态向量具体包含的内容,只要能够反映压缩训练成效即可。考虑到本发明实施例具体考察压缩训练后的模型及数据对应的体积及性能,因此状态向量中具体可包含反映体积和性能的数据,具体为图神经网络模型和图数据的模型压缩比和数据压缩比,以及图神经网络模型在执行指定任务时对应的性能值。
在一种可能的情况中,控制强化学习的智能体利用动作策略生成聚类簇数序列,可以包括:
步骤81:将时间步设置为1,初始化历史状态向量,并控制智能体利用动作策略及历史状态向量生成聚类簇数序列。
历史状态向量可初始化为零向量,即模型压缩比、数据压缩比和性能值的初始可均设置为0。为提升动作连续性,智能体可首先利用动作策略生成连续聚类簇数,并对连续聚类簇数进行离散化处理,以得到训练过程中实际需要使用到的聚类簇数。
在一种可能的情况中,控制智能体利用动作策略及历史状态向量生成聚类簇数序列,可以包括:
步骤91:控制智能体利用动作策略及历史状态向量生成连续聚类簇数;
步骤92:对连续聚类簇数进行离散化处理,得到聚类簇数;
步骤93:利用所有聚类簇数生成聚类簇数序列。
在一种可能的情况中,对连续聚类簇数进行离散化处理,得到聚类簇数,可以包括:
以如下方式对连续聚类簇数进行离散化处理,得到聚类簇数;
Figure SMS_345
其中,
Figure SMS_346
表示第
Figure SMS_350
个时间步中的第
Figure SMS_353
个聚类簇数,
Figure SMS_347
表示第
Figure SMS_349
个时间步中的第
Figure SMS_352
个连续聚类簇数,
Figure SMS_354
表示四舍五入函数,
Figure SMS_348
表示预设最小聚类簇数,
Figure SMS_351
表示预设最大聚类簇数。
需要说明的是,本发明实施例并不限定预设最小聚类簇数和最大聚类簇数的具体数值,可根据实际应用需求进行设定。优选地,预设最小聚类簇数可以为32,而预设最大聚类簇数可以为
Figure SMS_355
,其中
Figure SMS_356
表示向下取整函数。
S402、利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理,并确定处理后的图神经网络模型的模型压缩比及其执行指定任务时对应的性能值,以及确定处理后的训练图数据的数据压缩比。
在一种可能的情况中,确定处理后的图神经网络模型的模型压缩比,以及确定处理后的训练图数据的数据压缩比,可以包括:
步骤1001:以如下方式计算处理后的图神经网络模型的模型压缩比:
Figure SMS_357
其中,
Figure SMS_358
表示模型压缩比,
Figure SMS_359
表示图卷积层的总数,
Figure SMS_360
表示第
Figure SMS_361
层图卷积层第q个卷积核的原始大小,
Figure SMS_362
Figure SMS_363
分别表示第
Figure SMS_364
层图卷积层第q个卷积核处理后的内部信息传递卷积核和外部信息传递卷积核的大小;
步骤1002:以如下方式计算处理后的训练图数据的数据压缩比:
Figure SMS_365
其中,
Figure SMS_366
表示数据压缩比,
Figure SMS_367
表示所有图顶点在第
Figure SMS_368
层图卷积层对应的输入特征的大小,
Figure SMS_369
表示第
Figure SMS_370
层图卷积层对应的特征向量码本的大小。
进一步,需要说明的是,本发明实施例并不限定具体的性能值。常见的链接预测评价标准有两种:AUC和精确率(Precision)。对于AUC,将图数据集G=(V, E)划分为训练集
Figure SMS_371
、测试集
Figure SMS_376
。记集合V中任意两个顶点之间所有可能的边组成的集合为
Figure SMS_380
,记属于
Figure SMS_373
但不属于E的边集合为不存在边集合
Figure SMS_377
。对于一种给定的链接预测的方法,需要对
Figure SMS_381
中每条边
Figure SMS_383
赋予一个分数值
Figure SMS_374
。如果对它们的得分进行排名,则AUC可以被解释为在测试集
Figure SMS_378
中随机选择的一条边比在
Figure SMS_382
中随机选择的不存在的边具有更高分数的概率。在具体实现中,每次通常以随机方式选择测试集
Figure SMS_384
中的链接和
Figure SMS_372
中不存在的链接并比较它们的分数.如果在n次独立比较中,有n'次
Figure SMS_375
中的链接得分较高,而n''次得分相同,则AUC值可通过如下公式计算得到:
Figure SMS_379
对于精确率precision,它定义为在得分最高的前H个预测边中被预测准确的比例。如果有h个预测准确,即排在前H的边中有h个为存在的边,则精确率定义为:precision=h/H。优选地,本发明实施例可采用AUC值作为性能值。当然,为满足其他需求,也可采用精确率或者其他指标。
S403、利用性能值、模型压缩比及数据压缩比生成奖励值及状态向量,并在确定奖励值大于历史奖励值时,利用奖励值更新历史奖励值,以及将聚类簇数序列设置为最佳聚类簇数序列。
具体的,
Figure SMS_385
表示状态
Figure SMS_386
下采取动作
Figure SMS_387
的即时奖励,其可采用如下方式计算:
Figure SMS_388
进一步,由于本发明实施例采用AUC值来表征压缩训练后的图神经网络模型在执行链接预测任务时对应的性能,因此在本发明实施例中,状态向量可表示为:
Figure SMS_389
S404、控制智能体利用状态向量、聚类簇数序列、奖励值更新动作策略,并在确定预设循环值耗尽前基于更新后的动作策略进入所述生成所述聚类簇数序列的步骤;
如上所述,为提升智能体对环境的感知程度,一次策略可进一步包含若干个时间步(step),即智能体需在时间步数值耗尽前,利用当前策略不断更新聚类簇数序列,直至时间步数值耗尽时,基于图神经网络模型和训练图数据在各时间步中对应的压缩训练结果对当前策略进行更新。因此,动作策略的更新时机将根据时间步的耗尽情况而定。需要说明的是,本发明实施例并不限定具体的时间步阈值,可根据实际应用需求进行设定。
进一步,本发明实施例所采用的近端策略优化算法是一种基于Actor-Critic框架的在线策略梯度算法(Online Policy Gradient Algorithm),其在信任区域策略优化(trust region policy optimization,TRPO)算法的基础上做出了诸多改进。该算法的核心思想是,通过一种重要性采样方法,将策略梯度算法中的在线策略(On-policy)的训练过程转化为离线策略(Off-policy),即从在线学习转化为离线学习,某种意义上与基于值迭代算法中的经验回放有异曲同工之处。通过该改进,训练速度与效果在实验上相较于策略梯度具有明显提升。
假设当前策略是参数为
Figure SMS_390
Figure SMS_393
,TRPO考虑如何借助当前的
Figure SMS_396
找到一个更优的策略
Figure SMS_392
,使得策略目标函数
Figure SMS_394
。策略网络目标函数
Figure SMS_397
和价值网络损失函数
Figure SMS_398
分别通过以下公式定义:
Figure SMS_391
Figure SMS_395
其中,
Figure SMS_401
表示时间步,状态价值函数
Figure SMS_402
表示参数为
Figure SMS_405
的价值网络在状态
Figure SMS_399
的时价值;
Figure SMS_403
表示折扣因子;
Figure SMS_406
表示状态
Figure SMS_407
下采取动作
Figure SMS_400
的即时奖励;
Figure SMS_404
在本发明实施例中均表示期望。该问题可形式化描述为:
优化目标:
Figure SMS_408
约束条件:
Figure SMS_409
其中,TRPO算法的目标函数为:
Figure SMS_410
新旧策略下的概率比为:
Figure SMS_411
优势函数为:
Figure SMS_412
为保证新旧策略足够接近,TRPO算法使用库尔贝克-莱布勒(Kullback-Leibler,KL)散度来衡量不同策略之间的距离,并要求任意新旧策略之间的距离不大于一个比较小的常数
Figure SMS_413
。该约束定义了策略空间中的一个KL球,被称为信任区域。上述优化问题可通过泰勒展开近似、共轭梯度、线性搜索等方法直接求解。但是,求解对应的计算过程非常复杂,每一步的策略更新运算量非常大。PPO对TRPO进行了简化。具体来说,PPO有两种形式,一是PPO-惩罚,二是PPO-截断。本发明实施例具体使用了PPO截断进行了优化。PPO截断的目标函数具体可表示为:
Figure SMS_414
其中,
Figure SMS_415
表示第m次迭代时,新旧策略下的概率比;
Figure SMS_416
是一个截断函数,表示将x的值限制在[l, r]内;
Figure SMS_417
是一个超参数,通常取0.1或0.2。换句话说,
Figure SMS_418
中的
Figure SMS_419
在本发明实施例中具体对应为PPO截断的目标函数。
在一种可能的情况中,控制智能体利用状态向量、聚类簇数序列、奖励值更新动作策略,可以包括:
步骤1001:利用性能值、模型压缩比及数据压缩比生成当前状态向量;
步骤1002:利用历史状态向量、聚类簇数序列、奖励值及当前状态向量生成转换数据,并利用转换数据及聚类簇数序列生成优势数据。
转化数据(Transition)具体可表示为:
Figure SMS_420
其中,对于第
Figure SMS_421
个时间步,
Figure SMS_422
表示历史状态向量,
Figure SMS_423
表示聚类簇数序列,
Figure SMS_424
表示奖励值,
Figure SMS_425
表示当前状态向量。
在一种可能的情况中,智能体包括策略网络和价值网络,利用转换数据及聚类簇数序列生成优势数据,可以包括:
以如下方式利用转换数据及聚类簇数序列生成优势数据:
Figure SMS_426
其中,
Figure SMS_445
表示动作策略,
Figure SMS_448
表示策略网络参数,
Figure SMS_450
表示第
Figure SMS_427
个时间步,
Figure SMS_433
表示历史状态向量,
Figure SMS_439
表示聚类簇数序列,
Figure SMS_443
表示策略网络基于动作策略
Figure SMS_428
Figure SMS_431
状态下采取
Figure SMS_435
作为动作所产生的优势数据,
Figure SMS_438
表示策略网络基于动作策略
Figure SMS_430
Figure SMS_432
状态下采取
Figure SMS_436
作为动作所产生的奖励值,
Figure SMS_440
表示当动作策略为
Figure SMS_444
及状态向量为
Figure SMS_447
时价值网络
Figure SMS_449
所生成的价值数据,
Figure SMS_451
表示价值网络参数;
Figure SMS_429
表示当前状态向量,
Figure SMS_434
表示当动作策略为
Figure SMS_437
及状态向量为
Figure SMS_441
时价值网络
Figure SMS_442
所生成的价值数据,
Figure SMS_446
表示预设折扣因子。
步骤1003:当确定时间步未达到预设时间步阈值时,对时间步加1,利用当前状态向量更新历史状态向量,并进入控制智能体利用动作策略及历史状态向量生成聚类簇数序列的步骤;
步骤1004:当确定时间步达到预设时间步阈值时,控制智能体利用所有转换数据、聚类簇数序列及优势数据更新动作策略。
在一种可能的情况中,控制智能体利用所有转换数据、聚类簇数序列及优势数据更新动作策略,可以包括:
求解预设目标函数关于策略网络参数的梯度,并按如下方式更新策略网络参数:
Figure SMS_452
其中,预设目标函数用于优化策略网络参数,
Figure SMS_453
表示策略网络参数对应的梯度,
Figure SMS_454
表示预设时间步阈值,
Figure SMS_455
表示超参数;
对于给定价值网络损失函数
Figure SMS_456
Figure SMS_457
求解损失函数关于价值网络参数的梯度,并以如下方式更新价值网络参数:
Figure SMS_458
其中
Figure SMS_459
表示价值网络参数对应的梯度,
Figure SMS_460
表示超参数。
应当指出的是,上述预设目标函数为PPO截断的目标函数。当然,为满足其他需求,该目标函数也可以为PPO惩罚的目标函数、TRPO算法的目标函数等。
S405、在确定预设循环值耗尽时,输出最佳聚类簇数序列。
下面将对本发明实施例所提供的图神经网络压缩方法的完整流程进行介绍。请参考图3,图3为本发明实施例所提供的一种图神经网络模型压缩系统的结构框图。以下是具体步骤:
1、搭建一个由一台主机和一个硬件加速器组成的异构加速系统。硬件加速器可以选择较小内存的GPU通用加速器,也可以是半定制化的FPGA或全定制的ASIC芯片。深度学习框架可以采用TensorFlow或者DGL或者PyG等。硬件加速器中通常包含多个计算单元(PE,Processor Element)及一个累加器X,其中计算单元用于进行数据计算,而累加器用于整合各计算单元的计算结果,计算单元和累加器的一种连接方式可以如图3所示。
2、选择典型的图神经网络模型(如GraphSage和GAT等)、图数据集和相应的图学习任务(如面向社交网络好友推荐的链接预测任务),设计与学习任务匹配的目标函数和评价标准。构建一个包含L层图卷积层的图神经网络模型实例。
3、构建PPO强化学习环境并初始化。
1)搭建策略网络(Actor)和价值网络(Critic)。
2)初始化策略网络和价值网络的在线神经网络参数
Figure SMS_461
Figure SMS_462
3)初始化环境状态
Figure SMS_463
4)初始化最大奖励
Figure SMS_464
和最优动作
Figure SMS_465
4、利用PPO算法确定图神经网络模型各图卷积层的最佳聚类簇数
Figure SMS_466
。具体步骤如下:
重复以下训练过程(一个过程对应一个episode)
Figure SMS_467
次:
①按照当前策略
Figure SMS_468
执行
Figure SMS_469
个时间步,在每个时间步
Figure SMS_470
依次执行下述操作:
a. 初始化经验回放池(replay memory buffer)
Figure SMS_471
b. 策略网络根据当前策略
Figure SMS_472
选择一个动作
Figure SMS_473
,根据如下公式将其转换为离散动作
Figure SMS_474
,解码该动作并发给硬件加速设备执行该动作:
Figure SMS_475
c. 硬件加速器从上位机分批读取图数据顶点特征数据和表示图拓扑结构的图邻接表数据,执行图神经网络模型压缩感知训练算法以训练图神经网络网络,得到该聚类簇数分配方案下图神经网络模型链接预测准确度、顶点特征压缩率
Figure SMS_476
和模型压缩率
Figure SMS_477
;并根据如下公式计算奖励函数
Figure SMS_478
的值,并输出
Figure SMS_479
Figure SMS_480
d.上位机更新
Figure SMS_482
Figure SMS_484
。上位机比较返回的
Figure SMS_486
Figure SMS_483
的大小,如果
Figure SMS_485
>
Figure SMS_487
, 则令
Figure SMS_488
Figure SMS_481
e. Actor将这个状态转换过程
Figure SMS_489
存入经验回放池R中。
f.基于当前价值函数
Figure SMS_490
计算每个状态动作对
Figure SMS_491
的优势
Figure SMS_492
;
②求解公式
Figure SMS_493
Figure SMS_494
关于
Figure SMS_495
的梯度
Figure SMS_496
,并按照如下公式更新参数
Figure SMS_497
Figure SMS_498
③求解公式
Figure SMS_499
Figure SMS_500
关于
Figure SMS_501
的梯度
Figure SMS_502
,并按照如下公式更新参数
Figure SMS_503
Figure SMS_504
④训练过程结束,输出最佳聚类簇数
Figure SMS_505
下面对本发明实施例提供的图神经网络压缩装置、电子设备及计算机可读存储介质进行介绍,下文描述的图神经网络压缩装置、电子设备及计算机可读存储介质与上文描述的图神经网络压缩方法可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种图神经网络压缩装置的结构框图,该装置可以包括:
获取模块401,用于获取待训练的图神经网络模型及其对应的训练图数据;训练图数据包含图顶点及其对应的顶点特征;
智能体模块402,用于控制强化学习的智能体学习图神经网络模型及训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于压缩训练结果生成最佳聚类簇数序列;聚类簇数序列中的聚类簇数与图神经网络模型中的图卷积层一一对应,聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使特征码字的数量等于聚类簇数;
压缩训练模块403,用于利用最佳聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理,得到最优图神经网络模型和最优图数据。
可选地,智能体模块402,可以包括:
聚类簇数序列生成子模块,用于控制智能体利用动作策略生成聚类簇数序列;
迭代训练子模块,用于控制智能体根据利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理得到的压缩训练结果更新动作策略,并在预设循环值耗尽前基于更新后的动作策略进入生成聚类簇数序列的步骤,直至预设循环值耗尽时输出最佳聚类簇数序列。
可选地,迭代训练子模块,可以包括:
压缩及训练单元,用于利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理,并确定处理后的图神经网络模型的模型压缩比及其执行指定任务时对应的性能值,以及确定处理后的训练图数据的数据压缩比;
处理单元,用于利用性能值、模型压缩比及数据压缩比生成奖励值及状态向量,并在确定奖励值大于历史奖励值时,利用奖励值更新历史奖励值,以及将聚类簇数序列设置为最佳聚类簇数序列;
动作策略更新单元,用于控制智能体利用状态向量、聚类簇数序列、奖励值更新动作策略,并在确定预设循环值耗尽前基于更新后的动作策略进入生成聚类簇数序列的步骤;
输出单元,用于在确定预设循环值耗尽时,输出最佳聚类簇数序列。
可选地,性能值为AUC值。
可选地,聚类簇数序列生成子模块,可以包括:
聚类簇数序列生成子模块,具体用于将时间步设置为1,初始化历史状态向量,并控制智能体利用动作策略及历史状态向量生成聚类簇数序列;
相应的,动作策略更新单元,可以包括:
当前状态向量生成子单元,用于利用性能值、模型压缩比及数据压缩比生成当前状态向量;
处理子单元,用于利用历史状态向量、聚类簇数序列、奖励值及当前状态向量生成转换数据,并利用转换数据及聚类簇数序列生成优势数据;
迭代控制子单元,用于当确定时间步未达到预设时间步阈值时,对时间步加1,利用当前状态向量更新历史状态向量,并进入控制智能体利用动作策略及历史状态向量生成聚类簇数序列的步骤;
动作策略更新子单元,用于当确定时间步达到预设时间步阈值时,控制智能体利用所有转换数据、聚类簇数序列及优势数据更新动作策略。
可选地,聚类簇数序列生成子模块,可以包括:
连续聚类簇数生成单元,用于控制智能体利用动作策略及历史状态向量生成连续聚类簇数;
离散化处理单元,用于对连续聚类簇数进行离散化处理,得到聚类簇数;
聚类簇数序列生成单元,用于利用所有聚类簇数生成聚类簇数序列。
可选地,离散化处理单元,具体用于:
以如下方式对连续聚类簇数进行离散化处理,得到聚类簇数;
Figure SMS_506
其中,
Figure SMS_508
表示第
Figure SMS_511
个时间步中的第
Figure SMS_512
个聚类簇数,
Figure SMS_509
表示第
Figure SMS_513
个时间步中的第
Figure SMS_514
个连续聚类簇数,
Figure SMS_515
表示四舍五入函数,
Figure SMS_507
表示预设最小聚类簇数,
Figure SMS_510
表示预设最大聚类簇数。
可选地,处理子单元,具体用于:
以如下方式利用转换数据及聚类簇数序列生成优势数据:
Figure SMS_519
;其中,
Figure SMS_522
表示动作策略,
Figure SMS_526
表示策略网络参数,
Figure SMS_517
表示第
Figure SMS_523
个时间步,
Figure SMS_527
表示历史状态向量,
Figure SMS_530
表示聚类簇数序列,
Figure SMS_516
表示策略网络基于动作策略
Figure SMS_521
Figure SMS_525
状态下采取
Figure SMS_529
作为动作所产生的优势数据,
Figure SMS_531
表示策略网络基于动作策略
Figure SMS_534
Figure SMS_536
状态下采取
Figure SMS_539
作为动作所产生的奖励值,
Figure SMS_532
表示当动作策略为
Figure SMS_535
及状态向量为
Figure SMS_538
时价值网络
Figure SMS_541
所生成的价值数据,
Figure SMS_518
表示价值网络参数;
Figure SMS_520
表示当前状态向量,
Figure SMS_524
表示当动作策略为
Figure SMS_528
及状态向量为
Figure SMS_533
时价值网络
Figure SMS_537
所生成的价值数据,
Figure SMS_540
表示预设折扣因子。
可选地,动作策略更新子单元,具体用于:
求解预设目标函数关于策略网络参数的梯度,并按如下方式更新策略网络参数:
Figure SMS_542
其中,所述预设目标函数用于优化所述策略网络参数,
Figure SMS_543
表示策略网络参数对应的梯度,
Figure SMS_544
表示预设时间步阈值,
Figure SMS_545
表示超参数;
对于给定价值网络损失函数
Figure SMS_546
Figure SMS_547
求解损失函数关于价值网络参数的梯度,并以如下方式更新价值网络参数:
Figure SMS_548
其中
Figure SMS_549
表示价值网络参数对应的梯度,
Figure SMS_550
表示超参数。
可选地,压缩及训练单元,可以包括:
网络初始化子单元,用于对图神经网络模型中各图卷积层的特征变换矩阵、特征向量码本及梯度码本进行随机初始化;特征向量码本中包含特征码字;
码字归属矩阵始化子单元,用于在同一特征向量码本中,根据训练图数据中的各顶点特征与各特征码字间的距离,将各顶点特征分类至各特征码字对应的类簇,并记录各顶点特征与类簇之间的对应关系,得到与特征向量码本对应的图卷积层的码字归属矩阵;
第一批次循环控制子单元,用于将批次值初始化为1,确定训练图数据中未训练的图顶点,并从未训练的图顶点中随机抽取预设数量的图顶点作为一个批次;
前向信息传递子单元,用于利用当前批次的图顶点的顶点特征、各图卷积层的特征变换矩阵、特征向量码本及码字归属矩阵对各图卷积层依次进行前向信息传递;
梯度后向传播子单元,用于确定完成前向信息传递时,利用预设损失函数、当前批次的图顶点的顶点特征、各图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各图卷积层依次进行梯度后向传播;
增量更新子单元,用于利用所述当前批次的图顶点的顶点特征对完成梯度后向传播的各图卷积层的特征变换矩阵、特征向量码本及梯度码本进行增量更新;
第二批次循环控制子单元,用于在确定所述批次值小于指定值时,将所述当前批次的图顶点标记为已训练,对所述批次值加1,并进入所述确定所述训练图数据中未训练的图顶点的步骤;所述指定值由所述训练图数据中图顶点的总量与所述预设数量计算得到;
第三批次循环控制子单元,用于在确定批次值等于指定值时,进入确定处理后的图神经网络模型的模型压缩比及其执行指定任务时对应的性能值,以及确定处理后的训练图数据的数据压缩比的步骤。
可选地,前向信息传递子单元,具体用于:
将第
Figure SMS_551
层图卷积层设置为目标图卷积层,并将当前批次的图顶点的顶点特征设置为目标图卷积层的输入特征;其中
Figure SMS_552
以如下方式将目标图卷积层的卷积核划分为内部信息传递卷积核和外部信息传递卷积核:
Figure SMS_553
Figure SMS_554
其中,
Figure SMS_557
表示第
Figure SMS_561
层图卷积层的第q个卷积核,
Figure SMS_565
Figure SMS_558
分别表示第
Figure SMS_563
层图卷积层的第q个卷积核的内部信息传递卷积核及外部信息传递卷积核;
Figure SMS_567
表示当前批次的图顶点的编号;
Figure SMS_569
表示由
Figure SMS_555
任意行第
Figure SMS_560
列所构成的卷积核;
Figure SMS_564
表示由
Figure SMS_568
任意行第j列所构成的卷积核,
Figure SMS_556
Figure SMS_559
Figure SMS_562
表示一个n维的列向量,所有不属于
Figure SMS_566
行的元素为1,其余均为零;
以如下方式利用目标图卷积层的输入特征、内部信息传递卷积核、外部信息传递卷积核、特征向量码本、码字归属矩阵及特征变换矩阵对目标图卷积层进行前向信息传递,得到下一图卷积层的输入特征:
Figure SMS_570
其中,
Figure SMS_573
表示第
Figure SMS_576
层图卷积层的输入特征的近似值,
Figure SMS_580
表示非线性激活函数,
Figure SMS_571
表示第
Figure SMS_575
层图卷积层的输入特征,
Figure SMS_579
表示第
Figure SMS_583
层图卷积层的特征向量码本,
Figure SMS_572
Figure SMS_577
表示第
Figure SMS_581
层图卷积层的码字归属矩阵,
Figure SMS_584
表示训练图数据中所有的顶点特征,
Figure SMS_574
表示全为1的n维列向量,
Figure SMS_578
表示所述第
Figure SMS_582
层图卷积层的第q个卷积核的特征变换矩阵;
将下一图卷积层设置为目标图卷积层,并进入以如下方式将目标图卷积层的卷积核划分为内部信息传递卷积核和外部信息传递卷积核的步骤。
可选地,梯度后向传播子单元,具体用于:
以如下方式利用预设损失函数、当前批次的图顶点的顶点特征、各图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各图卷积层依次进行梯度后向传播:
Figure SMS_585
其中,
Figure SMS_588
表示预设损失函数,
Figure SMS_592
表示在第
Figure SMS_596
层图卷积层中预设损失函数关于
Figure SMS_587
的梯度的近似值,
Figure SMS_593
表示在第
Figure SMS_597
层图卷积层中预设损失函数关于
Figure SMS_600
的梯度;
Figure SMS_589
表示第
Figure SMS_591
层图卷积层的梯度码本,
Figure SMS_595
Figure SMS_599
Figure SMS_586
表示所述训练图数据在第
Figure SMS_590
层图卷积层对应的所有顶点特征,
Figure SMS_594
表示
Figure SMS_598
的近似值。
可选地,迭代训练子模块,还可以包括:
存储占用值单元,用于在利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理之前,以如下方式确定聚类簇数序列对应的存储占用值;
Figure SMS_601
其中,
Figure SMS_602
表示存储占用值,
Figure SMS_603
表示数据大小;
聚类簇数序列调整单元,用于当确定所述存储占用值大于预设存储占用阈值时,依次减小所述聚类簇数序列中的各个聚类簇数,并在每次完成减小时进入所述确定所述聚类簇数序列对应的存储占用值的步骤;
压缩及训练单元,还用于当确定存储占用值小于或等于预设存储占用阈值时,进入利用聚类簇数序列对图神经网络模型和训练图数据进行压缩及训练处理的步骤。
可选地,压缩及训练单元,可以包括:
模型压缩比计算子模块,用于以如下方式计算处理后的图神经网络模型的模型压缩比:
Figure SMS_604
其中,
Figure SMS_605
表示模型压缩比,
Figure SMS_606
表示图卷积层的总数,
Figure SMS_607
表示第
Figure SMS_608
层图卷积层第q个卷积核的原始大小,
Figure SMS_609
Figure SMS_610
分别表示第
Figure SMS_611
层图卷积层第q个卷积核处理后的内部信息传递卷积核和外部信息传递卷积核的大小;
数据压缩比计算子模块,用于以如下方式计算处理后的训练图数据的数据压缩比:
Figure SMS_612
其中,
Figure SMS_613
表示数据压缩比,
Figure SMS_614
表示所有图顶点在第
Figure SMS_615
层图卷积层对应的输入特征的大小,
Figure SMS_616
表示第
Figure SMS_617
层图卷积层对应的特征向量码本的大小。
可选地,增量更新子单元,具体用于:
对完成梯度后向传播的各图卷积层的特征向量码本以如下方式进行增量更新:
Figure SMS_618
Figure SMS_619
Figure SMS_620
其中,
Figure SMS_621
表示当前批次的编号,
Figure SMS_625
,n和b分别表示训练图数据中图顶点的总量和当前批次的图顶点的数量,
Figure SMS_629
表示当前批次内第i个类簇的图顶点数量,
Figure SMS_623
表示所有已训练的t个批次中属于第i个类簇的图顶点数量,
Figure SMS_628
表示所有已训练的t个批次中属于第i个类簇的所有顶点特征之和,
Figure SMS_631
表示当前批次中第i个类簇的特征码字,
Figure SMS_633
表示在处理当前批次时第
Figure SMS_622
层图卷积层的码字归属矩阵,
Figure SMS_627
表示当前批次对应的图顶点在第
Figure SMS_630
层图卷积层对应的输入特征,
Figure SMS_632
表示一个长度为
Figure SMS_624
、只有第i个元素为1的单位列向量,
Figure SMS_626
表示预设折扣因子。
可选地,
第一轮次循环控制子单元,用于在将批次值初始化为1之前,将轮次值初始化为1,并进入将批次值初始化为1的步骤;
相应的,压缩及训练单元,还可以包括:
第二轮次循环控制子单元,用于在确定轮次值小于预设轮次阈值时,对轮次值加1,将训练图数据中的所有图顶点标记为未训练,并进入将批次值初始化为1的步骤;
第三轮次循环控制子单元,用于在确定轮次值等于预设轮次阈值时,进入确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比的步骤。
请参考图5,图5为本发明实施例所提供的一种电子设备的结构框图,本发明实施例还提供一种电子设备,包括:
存储器501,用于存储计算机程序;
处理器502,用于执行计算机程序时实现如上述的图神经网络压缩方法的步骤。
由于电子设备部分的实施例与图神经网络压缩方法部分的实施例相互对应,因此电子设备部分的实施例请参见图神经网络压缩方法部分的实施例的描述,这里不再赘述。
请参考图6,图6为本发明实施例所提供的一种计算机可读存储介质的结构框图,本发明实施例还提供一种计算机可读存储介质610,计算机可读存储介质610上存储有计算机程序611,计算机程序611被处理器执行时实现上述任意实施例的图神经网络压缩方法的步骤。
由于计算机可读存储介质部分的实施例与图神经网络压缩方法部分的实施例相互对应,因此存储介质部分的实施例请参见图神经网络压缩方法部分的实施例的描述,这里不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种图神经网络压缩方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (19)

1.一种图神经网络压缩方法,其特征在于,包括:
获取待训练的图神经网络模型及其对应的训练图数据;所述训练图数据包含图顶点及其对应的顶点特征;
控制强化学习的智能体学习所述图神经网络模型及所述训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于所述压缩训练结果生成最佳聚类簇数序列;聚类簇数序列中的聚类簇数与所述图神经网络模型中的图卷积层一一对应,所述聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使所述特征码字的数量等于所述聚类簇数;
利用所述最佳聚类簇数序列对所述图神经网络模型和训练图数据进行压缩及训练处理,得到最优图神经网络模型和最优图数据。
2.根据权利要求1所述的图神经网络压缩方法,其特征在于,所述控制强化学习的智能体学习所述图神经网络模型及所述训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于所述压缩训练结果生成最佳聚类簇数序列,包括:
控制所述智能体利用动作策略生成所述聚类簇数序列;
控制所述智能体根据利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理得到的压缩训练结果更新所述动作策略,并在预设循环值耗尽前基于更新后的动作策略进入所述生成所述聚类簇数序列的步骤,直至所述预设循环值耗尽时输出所述最佳聚类簇数序列。
3.根据权利要求2所述的图神经网络压缩方法,其特征在于,所述控制所述智能体根据利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理得到的压缩训练结果更新所述动作策略,并在预设循环值耗尽前基于更新后的动作策略进入所述生成所述聚类簇数序列的步骤,直至所述预设循环值耗尽时输出所述最佳聚类簇数序列,包括:
利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理,并确定处理后的图神经网络模型的模型压缩比及其执行指定任务时对应的性能值,以及确定处理后的训练图数据的数据压缩比;
利用所述性能值、所述模型压缩比及所述数据压缩比生成奖励值及状态向量,并在确定所述奖励值大于历史奖励值时,利用所述奖励值更新所述历史奖励值,以及将所述聚类簇数序列设置为所述最佳聚类簇数序列;
控制所述智能体利用所述状态向量、所述聚类簇数序列、所述奖励值更新所述动作策略,并在确定所述预设循环值耗尽前基于更新后的动作策略进入所述生成所述聚类簇数序列的步骤;
在确定所述预设循环值耗尽时,输出所述最佳聚类簇数序列。
4.根据权利要求3所述的图神经网络压缩方法,其特征在于,所述性能值为AUC值。
5.根据权利要求3所述的图神经网络压缩方法,其特征在于,所述控制所述智能体利用动作策略生成所述聚类簇数序列,包括:
将时间步设置为1,初始化历史状态向量,并控制所述智能体利用所述动作策略及所述历史状态向量生成所述聚类簇数序列;
相应的,所述控制所述智能体利用所述状态向量、所述聚类簇数序列、所述奖励值更新所述动作策略,包括:
利用所述性能值、所述模型压缩比及所述数据压缩比生成当前状态向量;
利用所述历史状态向量、所述聚类簇数序列、所述奖励值及所述当前状态向量生成转换数据,并利用所述转换数据及所述聚类簇数序列生成优势数据;
当确定所述时间步未达到预设时间步阈值时,对所述时间步加1,利用所述当前状态向量更新所述历史状态向量,并进入所述控制所述智能体利用所述动作策略及所述历史状态向量生成所述聚类簇数序列的步骤;
当确定所述时间步达到所述预设时间步阈值时,控制所述智能体利用所有所述转换数据、所述聚类簇数序列及所述优势数据更新所述动作策略。
6.根据权利要求5所述的图神经网络压缩方法,其特征在于,所述控制所述智能体利用所述动作策略及所述历史状态向量生成所述聚类簇数序列,包括:
控制所述智能体利用所述动作策略及所述历史状态向量生成连续聚类簇数;
对所述连续聚类簇数进行离散化处理,得到所述聚类簇数;
利用所有所述聚类簇数生成所述聚类簇数序列。
7.根据权利要求6所述的图神经网络压缩方法,其特征在于,所述对所述连续聚类簇数进行离散化处理,得到所述聚类簇数,包括:
以如下方式对所述连续聚类簇数进行离散化处理,得到所述聚类簇数;
Figure QLYQS_1
其中,
Figure QLYQS_3
表示第
Figure QLYQS_6
个时间步中的第
Figure QLYQS_8
个聚类簇数,
Figure QLYQS_4
表示第
Figure QLYQS_7
个时间步中的第
Figure QLYQS_9
个连续聚类簇数,
Figure QLYQS_10
表示四舍五入函数,
Figure QLYQS_2
表示预设最小聚类簇数,
Figure QLYQS_5
表示预设最大聚类簇数。
8.根据权利要求5所述的图神经网络压缩方法,其特征在于,所述智能体包括策略网络和价值网络,所述利用所述转换数据及所述聚类簇数序列生成优势数据,包括:
以如下方式利用所述转换数据及所述聚类簇数序列生成所述优势数据:
Figure QLYQS_11
其中,
Figure QLYQS_29
表示所述动作策略,
Figure QLYQS_32
表示策略网络参数,
Figure QLYQS_35
表示第
Figure QLYQS_12
个时间步,
Figure QLYQS_19
表示所述历史状态向量,
Figure QLYQS_23
表示所述聚类簇数序列,
Figure QLYQS_28
表示所述策略网络基于动作策略
Figure QLYQS_15
Figure QLYQS_18
状态下采取
Figure QLYQS_22
作为动作所产生的优势数据,
Figure QLYQS_26
表示所述策略网络基于动作策略
Figure QLYQS_27
Figure QLYQS_31
状态下采取
Figure QLYQS_34
作为动作所产生的奖励值,
Figure QLYQS_36
表示当动作策略为
Figure QLYQS_20
及状态向量为
Figure QLYQS_24
时价值网络
Figure QLYQS_30
所生成的价值数据,
Figure QLYQS_33
表示价值网络参数;
Figure QLYQS_13
表示所述当前状态向量,
Figure QLYQS_17
表示当动作策略为
Figure QLYQS_21
及状态向量为
Figure QLYQS_25
时价值网络
Figure QLYQS_14
所生成的价值数据,
Figure QLYQS_16
表示预设折扣因子。
9.根据权利要求8所述的图神经网络压缩方法,其特征在于,所述控制所述智能体利用所有所述转换数据、所述聚类簇数序列及所述优势数据更新所述动作策略,包括:
求解预设目标函数关于所述策略网络参数的梯度,并按如下方式更新所述策略网络参数:
Figure QLYQS_37
其中,所述预设目标函数用于优化所述策略网络参数,
Figure QLYQS_38
表示所述策略网络参数对应的梯度,
Figure QLYQS_39
表示所述预设时间步阈值,
Figure QLYQS_40
表示超参数;对于给定价值网络损失函数
Figure QLYQS_41
Figure QLYQS_42
求解所述损失函数关于价值网络参数的梯度,并以如下方式更新价值网络参数:
Figure QLYQS_43
;其中
Figure QLYQS_44
表示所述价值网络参数对应的梯度,
Figure QLYQS_45
表示超参数。
10.根据权利要求3所述的图神经网络压缩方法,其特征在于,所述利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理,包括:
对所述图神经网络模型中各图卷积层的特征变换矩阵、特征向量码本及梯度码本进行随机初始化;所述特征向量码本中包含所述特征码字;
在同一所述特征向量码本中,根据所述训练图数据中的各顶点特征与各所述特征码字间的距离,将各所述顶点特征分类至各所述特征码字对应的类簇,并记录各所述顶点特征与所述类簇之间的对应关系,得到与所述特征向量码本对应的图卷积层的码字归属矩阵;
将批次值初始化为1,确定所述训练图数据中未训练的图顶点,并从所述未训练的图顶点中随机抽取预设数量的图顶点作为一个批次;
利用当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、特征向量码本及码字归属矩阵对各所述图卷积层依次进行前向信息传递;
确定完成所述前向信息传递时,利用预设损失函数、所述当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各所述图卷积层依次进行梯度后向传播;
利用所述当前批次的图顶点的顶点特征对完成所述梯度后向传播的各图卷积层的特征变换矩阵、特征向量码本及梯度码本进行增量更新;
在确定所述批次值小于指定值时,将所述当前批次的图顶点标记为已训练,对所述批次值加1,并进入所述确定所述训练图数据中未训练的图顶点的步骤;所述指定值由所述训练图数据中图顶点的总量与所述预设数量计算得到;
在确定所述批次值等于所述指定值时,进入所述确定处理后的图神经网络模型的模型压缩比及其执行指定任务时对应的性能值,以及确定处理后的训练图数据的数据压缩比的步骤。
11.根据权利要求10所述的图神经网络压缩方法,其特征在于,所述利用当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、特征向量码本及码字归属矩阵对各所述图卷积层依次进行前向信息传递,包括:
将第
Figure QLYQS_46
层图卷积层设置为目标图卷积层,并将所述当前批次的图顶点的顶点特征设置为目标图卷积层的输入特征;其中
Figure QLYQS_47
以如下方式将所述目标图卷积层的卷积核划分为内部信息传递卷积核和外部信息传递卷积核:
Figure QLYQS_48
Figure QLYQS_49
其中,
Figure QLYQS_51
表示所述第
Figure QLYQS_57
层图卷积层的第q个卷积核,
Figure QLYQS_60
Figure QLYQS_53
分别表示第
Figure QLYQS_55
层图卷积层的第q个卷积核的内部信息传递卷积核及外部信息传递卷积核;
Figure QLYQS_59
表示所述当前批次的图顶点的编号;
Figure QLYQS_63
表示由
Figure QLYQS_50
任意行第
Figure QLYQS_54
列所构成的卷积核;
Figure QLYQS_58
表示由
Figure QLYQS_62
任意行第j列所构成的卷积核,
Figure QLYQS_52
Figure QLYQS_56
Figure QLYQS_61
表示一个n维的列向量,所有不属于
Figure QLYQS_64
行的元素为1,其余均为零;
以如下方式利用所述目标图卷积层的输入特征、内部信息传递卷积核、外部信息传递卷积核、特征向量码本、码字归属矩阵及特征变换矩阵对所述目标图卷积层进行前向信息传递,得到下一图卷积层的输入特征:
Figure QLYQS_65
其中,
Figure QLYQS_67
表示第
Figure QLYQS_71
层图卷积层的输入特征的近似值,
Figure QLYQS_75
表示非线性激活函数,
Figure QLYQS_69
表示第
Figure QLYQS_74
层图卷积层的输入特征,
Figure QLYQS_78
表示第
Figure QLYQS_79
层图卷积层的特征向量码本,
Figure QLYQS_68
Figure QLYQS_70
表示第
Figure QLYQS_73
层图卷积层的码字归属矩阵,
Figure QLYQS_77
表示所述训练图数据中所有的顶点特征,
Figure QLYQS_66
表示全为1的n维列向量,
Figure QLYQS_72
表示所述第
Figure QLYQS_76
层图卷积层的第q个卷积核的特征变换矩阵;
将下一图卷积层设置为所述目标图卷积层,并进入所述将所述目标图卷积层的卷积核划分为内部信息传递卷积核和外部信息传递卷积核的步骤。
12.根据权利要求11所述的图神经网络压缩方法,其特征在于,所述利用预设损失函数、所述当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各所述图卷积层依次进行梯度后向传播,包括:
以如下方式利用所述预设损失函数、所述当前批次的图顶点的顶点特征、各所述图卷积层的特征变换矩阵、码字归属矩阵及梯度码本对各所述图卷积层依次进行梯度后向传播:
Figure QLYQS_80
其中,
Figure QLYQS_82
表示所述预设损失函数,
Figure QLYQS_88
表示在所述第
Figure QLYQS_92
层图卷积层中所述预设损失函数关于
Figure QLYQS_84
的梯度的近似值,
Figure QLYQS_85
表示在第
Figure QLYQS_89
层图卷积层中所述预设损失函数关于
Figure QLYQS_93
的梯度;
Figure QLYQS_81
表示第
Figure QLYQS_86
层图卷积层的梯度码本,
Figure QLYQS_90
Figure QLYQS_94
Figure QLYQS_83
表示所述训练图数据在第
Figure QLYQS_87
层图卷积层对应的所有顶点特征,
Figure QLYQS_91
表示
Figure QLYQS_95
的近似值。
13.根据权利要求12所述的图神经网络压缩方法,其特征在于,在利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理之前,还包括:
以如下方式确定所述聚类簇数序列对应的存储占用值;
Figure QLYQS_96
其中,
Figure QLYQS_97
表示所述存储占用值,
Figure QLYQS_98
表示数据大小;当确定所述存储占用值大于预设存储占用阈值时,依次减小所述聚类簇数序列中的各个聚类簇数,并在每次完成减小时进入所述确定所述聚类簇数序列对应的存储占用值的步骤;
当确定所述存储占用值小于或等于所述预设存储占用阈值时,进入所述利用所述聚类簇数序列对所述图神经网络模型和所述训练图数据进行压缩及训练处理的步骤。
14.根据权利要求11所述的图神经网络压缩方法,其特征在于,所述确定处理后的图神经网络模型的模型压缩比,以及确定处理后的训练图数据的数据压缩比,包括:
以如下方式计算所述处理后的图神经网络模型的模型压缩比:
Figure QLYQS_99
其中,
Figure QLYQS_100
表示所述模型压缩比,
Figure QLYQS_101
表示所述图卷积层的总数,
Figure QLYQS_102
表示第
Figure QLYQS_103
层图卷积层第q个卷积核的原始大小,
Figure QLYQS_104
Figure QLYQS_105
分别表示第
Figure QLYQS_106
层图卷积层第q个卷积核处理后的内部信息传递卷积核和外部信息传递卷积核的大小;以如下方式计算所述处理后的训练图数据的数据压缩比:
Figure QLYQS_107
其中,所述
Figure QLYQS_108
表示所述数据压缩比,
Figure QLYQS_109
表示所有所述图顶点在第
Figure QLYQS_110
层图卷积层对应的输入特征的大小,
Figure QLYQS_111
表示第
Figure QLYQS_112
层图卷积层对应的特征向量码本的大小。
15.根据权利要求10所述的图神经网络压缩方法,其特征在于,所述利用所述当前批次的图顶点的顶点特征对完成所述梯度后向传播的各图卷积层的特征向量码本进行增量更新,包括:
对完成所述梯度后向传播的各图卷积层的特征向量码本以如下方式进行增量更新:
Figure QLYQS_113
Figure QLYQS_114
Figure QLYQS_115
其中,
Figure QLYQS_118
表示所述当前批次的编号,
Figure QLYQS_120
nb分别表示所述训练图数据中图顶点的总量和所述当前批次的图顶点的数量,
Figure QLYQS_124
表示所述当前批次内第i个类簇的图顶点数量,
Figure QLYQS_117
表示所有已训练的t个批次中属于第i个类簇的图顶点数量,
Figure QLYQS_123
表示所有已训练的t个批次中属于第i个类簇的所有顶点特征之和,
Figure QLYQS_126
表示所述当前批次中第i个类簇的特征码字,
Figure QLYQS_128
表示在处理所述当前批次时第
Figure QLYQS_116
层图卷积层的码字归属矩阵,
Figure QLYQS_122
表示所述当前批次对应的图顶点在第
Figure QLYQS_125
层图卷积层对应的输入特征,
Figure QLYQS_127
表示一个长度为
Figure QLYQS_119
、只有第i个元素为1的单位列向量,
Figure QLYQS_121
表示预设折扣因子。
16.根据权利要求10所述的图神经网络压缩方法,其特征在于,在将批次值初始化为1之前,还包括:
将轮次值初始化为1,并进入所述将批次值初始化为1的步骤;
相应的,在确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比之前,还包括:
在确定所述轮次值小于预设轮次阈值时,对所述轮次值加1,将所述训练图数据中的所有图顶点标记为未训练,并进入所述将批次值初始化为1的步骤;
在确定所述轮次值等于所述预设轮次阈值时,进入所述确定处理后的图神经网络模型的模型压缩比和执行指定任务时对应的性能值,以及确定处理后的图数据的数据压缩比的步骤。
17.一种图神经网络压缩装置,其特征在于,包括:
获取模块,用于获取待训练的图神经网络模型及其对应的训练图数据;所述训练图数据包含图顶点及其对应的顶点特征;
智能体模块,用于控制强化学习的智能体学习所述图神经网络模型及所述训练图数据在不同聚类簇数序列条件下的压缩训练结果,并基于所述压缩训练结果生成最佳聚类簇数序列;聚类簇数序列中的聚类簇数与所述图神经网络模型中的图卷积层一一对应,所述聚类簇数用于将输入至对应图卷积层的顶点特征压缩为该图卷积层需处理的特征码字,以使所述特征码字的数量等于所述聚类簇数;
压缩训练模块,用于利用所述最佳聚类簇数序列对所述图神经网络模型和训练图数据进行压缩及训练处理,得到最优图神经网络模型和最优图数据。
18.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至16任一项所述的图神经网络压缩方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至16任一项所述的图神经网络压缩方法。
CN202310188245.0A 2023-03-02 2023-03-02 一种图神经网络压缩方法、装置、电子设备及存储介质 Active CN115934661B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310188245.0A CN115934661B (zh) 2023-03-02 2023-03-02 一种图神经网络压缩方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310188245.0A CN115934661B (zh) 2023-03-02 2023-03-02 一种图神经网络压缩方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115934661A true CN115934661A (zh) 2023-04-07
CN115934661B CN115934661B (zh) 2023-07-14

Family

ID=86697999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310188245.0A Active CN115934661B (zh) 2023-03-02 2023-03-02 一种图神经网络压缩方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115934661B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142922A (zh) * 2013-05-06 2014-11-12 苏州普达新信息技术有限公司 一种移动图像在线搜索与挖掘的分类方法
WO2021120934A1 (zh) * 2019-12-18 2021-06-24 浙江大学 一种基于卷积神经网络的DRGs自动分组方法
CN115357554A (zh) * 2022-10-24 2022-11-18 浪潮电子信息产业股份有限公司 一种图神经网络压缩方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142922A (zh) * 2013-05-06 2014-11-12 苏州普达新信息技术有限公司 一种移动图像在线搜索与挖掘的分类方法
WO2021120934A1 (zh) * 2019-12-18 2021-06-24 浙江大学 一种基于卷积神经网络的DRGs自动分组方法
CN115357554A (zh) * 2022-10-24 2022-11-18 浪潮电子信息产业股份有限公司 一种图神经网络压缩方法、装置、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
刘春阳,粱德群,宋焕生,吴更石: "神经网络在图像压缩技术中的应用", 工程数学学报, no. 03, pages 67 - 80 *
姜来;许文焕;纪震;张基宏;: "模糊强化学习型的图像矢量量化算法", 电子学报, no. 09, pages 1738 - 1741 *
陈桂林;马胜;郭阳;李艺煌;徐睿;: "通过K-means算法实现神经网络的加速和压缩", 计算机工程与科学, no. 05, pages 796 - 803 *

Also Published As

Publication number Publication date
CN115934661B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
CN112434462B (zh) 一种模型的获取方法及设备
CN107665230B (zh) 用于智能家居控制的用户行为预测模型的训练方法及装置
CN112181666A (zh) 一种基于边缘智能的设备评估和联邦学习重要性聚合方法、系统、设备和可读存储介质
CN111148118A (zh) 基于时间序列的流量预测和载波关断方法和系统
CN113469340A (zh) 一种模型处理方法、联邦学习方法及相关设备
CN111340227A (zh) 通过强化学习模型对业务预测模型进行压缩的方法和装置
CN115357554B (zh) 一种图神经网络压缩方法、装置、电子设备及存储介质
CN110619082B (zh) 一种基于重复搜索机制的项目推荐方法
CN114491263B (zh) 推荐模型训练方法及装置、推荐方法及装置
CN113190688A (zh) 基于逻辑推理和图卷积的复杂网络链接预测方法及系统
CN113852432A (zh) 基于rcs-gru模型的频谱预测感知方法
CN109492816B (zh) 一种基于混合智能的煤与瓦斯突出动态预测方法
CN114698395A (zh) 神经网络模型的量化方法和装置、数据处理的方法和装置
CN111325340A (zh) 信息网络关系预测方法及系统
CN115964568A (zh) 一种基于边缘缓存的个性化推荐方法
CN116090536A (zh) 神经网络的优化方法、装置、计算机设备及存储介质
CN116797850A (zh) 基于知识蒸馏和一致性正则化的类增量图像分类方法
CN116992151A (zh) 一种基于双塔图卷积神经网络的在线课程推荐方法
CN117707795B (zh) 基于图的模型划分的边端协同推理方法及系统
CN114154060A (zh) 融合信息年龄和动态图神经网络的内容推荐系统及方法
CN117114053B (zh) 基于结构搜索和知识蒸馏的卷积神经网络模型压缩方法和装置
CN115934661A (zh) 一种图神经网络压缩方法、装置、电子设备及存储介质
CN118251679A (zh) 一种神经网络架构搜索的方法和装置
KR20220010419A (ko) 동적 예측 신뢰도 임계값 선택에 기반한 저복잡도 인공지능 모델 학습을 위한 전자 장치 및 학습 방법
CN112396477A (zh) 业务预测模型的构建方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant