[0052] 以下结合附图和具体实施例对本发明作具体的介绍。
[0053] 如图1所示,一种用于理解图卷积神经网络的可视分析方法,包括如下步骤:
[0054] 步骤一,将输入的图结构数据集划分为训练集、验证集和测试集;
[0055] 步骤二,定义参数集合,包括隐藏层数集合和隐藏神经元数集合;
[0056] 步骤三,基于定义好的所述参数集合,训练得到一系列的图卷积神经网络模型;
[0057] 步骤四,设计隐藏层分析视图,展示隐藏层参数对分类准确率的影响;
[0058] 步骤五,设计损失和准确率视图,展示所述模型迭代训练过程中损失和分类准确率的变化;
[0059] 步骤六,采用GraphTSNE可视化方法计算图中节点的位置,设计图布局视图,呈现在不同训练步数下所述节点的预测情况和两个训练步数间所述节点预测情况的差异。
[0060] 所述步骤一,所述图结构数据集可以表示为G=(V,E),其中所述 为具有N个所述节点的节点集合,所述 为边集合,所述vi和所述vj分别表示第i个和N×N N×C第j个节点;邻接矩阵A∈R 编码了所述节点间的关联,特征矩阵X∈R 包含所有所述节点的特征向量,其中每个所述节点vi具有一个C维的所述特征向量xi和一个类别标签,所述数据集共有F个类别;根据所述节点的总数N将所述数据集划分为所述训练集、所述验证集和所述测试集,如将5%的节点划分到训练集,训练集中的节点类别是已知的,且每个类别包含的节点个数相同;将20%的节点划分到验证集,将40%的节点划分到测试集。
[0061] 所述步骤二,定义所述隐藏层数集合为{1,2,3},由于当隐藏层数较大时,图卷积神经网络的分类性能不佳,因此最多考虑3个隐藏层,保证图卷积神经网络有较好的分类性能;对于每个隐藏层,使用{layerID‑startID:stepID:endID}来定义所述隐藏神经元数集合,所述layerID为隐藏层数,所述startID为第ID个所述隐藏层的起始隐藏神经元数,所述stepID为每次递增的隐藏神经元数,所述endID为第ID个所述隐藏层的结束隐藏神经元数,如{1‑16:16:80}表示选择{16,32,48,64,80}作为第一个隐藏层的所述隐藏神经元数。
[0062] 所述步骤三,具有一个隐藏层的图卷积神经网络模型表示为其中所述 所述 所述IN是一个单位矩阵, 是一个对角矩阵,且
所述 是从输入层到所述第一个隐藏层的权重矩阵,所述第一个隐藏层
具有H1个特征图,所述 是从所述第一个隐藏层到输出层的所述权重矩阵,所述F为类别数量,所述softmax(·)和所述ReLu(·)代表激励函数;
[0063] 具有两个隐藏层的图卷积神经网络模型表示为其中所述 是从所述输入层到第所述一
个隐藏层的所述权重矩阵,所述第一个隐藏层具有所述H1个特征图,所述 是从所述第一个隐藏层到第二个隐藏层的所述权重矩阵,所述第二个隐藏层具有所述H2个特征图,所述 是从所述第二个隐藏层到所述输出层的所述权重矩阵;
[0064] 具有三个隐藏层的图卷积神经网络模型表示为其中所述 是从所述输入层到
所述第一个隐藏层的所述权重矩阵,所述第一个隐藏层具有所述H1个特征图,所述是从所述第一个隐藏层到第二个隐藏层的所述权重矩阵,所述第二个隐藏层具有所述H2个特征图,所述 是从所述第二个隐藏层到三个隐藏层的权重矩阵,所述第三个隐藏层具有所述H3个特征图,所述 是从所述第三个隐藏层到所述输出层的所述权重矩阵;
[0065] 当所述隐藏层数为一层、二层、三层时,分别选择相应的所述图卷积神经网络模型,从所述隐藏神经元数集合{layerID‑startID:stepID:endID}中得到所述H1、H2和H3的取值范围;在训练过程中,使用epoch表示所述训练步数,epoch=1表示所有训练数据集都训练过一次,使用Xavier初始化方法对初始的所述权重矩阵进行随机赋值,使用Adam方法训练所述模型,以交叉熵作为损失函数;在所述迭代训练过程中,针对每一个所述epoch,分别计算所述训练集和所述验证集的损失和分类准确率;在训练完成得到相应的图卷积神经网络模型后,采用所述测试集计算模型的所述分类准确率。
[0066] 所述步骤四,采用基于网格的可视化方法来设计隐藏层分析视图,展示隐藏层参数对所述分类准确率的影响,所述隐藏层参数包括所述隐藏层数和每层的所述隐藏神经元数,设计三个子视图来分别展示具有不同所述隐藏层的所述图卷积神经网络模型的所述分类准确率;
[0067] 如图2a所示,对于所述具有一个隐藏层的图卷积神经网络模型,设计一个隐藏层子视图,首先基于所述隐藏神经元数集合{layer1‑start1:step1:end1}计算所述集合中的所有元素,然后采用一维网格来渲染所述一个隐藏层子视图;其中x轴表示所述第一个隐藏层中隐藏神经元的数量;
[0068] 如图2b所示,对于所述具有两个隐藏层的图卷积神经网络模型,设计两个隐藏层子视图,首先基于所述隐藏神经元数集合{layer1‑start1:step1:end1}和{layer2‑start2:step2:end2}计算所述集合中的所有元素,然后采用二维网格来渲染所述两个隐藏层子视图;其中所述x轴表示所述第一个隐藏层中所述隐藏神经元的数量,y轴表示所述第二个隐藏层中所述隐藏神经元的数量;
[0069] 如图2c所示,对于所述具有三个隐藏层的图卷积神经网络模型,设计三个隐藏层子视图,首先基于所述隐藏神经元数集合{layer1‑start1:step1:end1}、{layer2‑start2:step2:end2}和{layer3‑start3:step3:end3}计算所述集合中的所有元素,然后用所述二维网格编码前两个所述隐藏层中的所述隐藏神经元的数量,最后将多个所述二维网格并列排放来编码所述第三个隐藏层的所述隐藏神经元数量,并采用并列排放的所述二维网格来渲染所述三个隐藏层子视图;其中第一个所述二维网格展示了当所述第三个隐藏层的所述隐藏神经元数为start3时的所述分类准确率,第二个所述二维网格展示了当所述第三个隐藏层的所述隐藏神经元数为start3+step3时的所述分类准确率,以此类推,直到最后一个所述二维网格展示的所述第三个隐藏层的所述隐藏神经元数为end3时的所述分类准确率;
[0070] 每个所述子视图中网格的颜色编码了每一种所述参数组合在所述测试集上的所述分类准确率。如图2b所示,右侧为颜色映射条,所述颜色采用红黄绿渐变的颜色映射机制,分辨率自高到低分别用由红到黄、由黄到绿的不同分辨率的网格表示,使用户更直观的通过颜色比较出分类准确率的高低。所述三个子视图中都采用同样的颜色映射机制。
[0071] 当用户将鼠标移动到所述网格中的某一格上时,显示该格的细节信息,所述细节信息包括每一层中的隐藏神经元数取值和对应的所述分类准确率。
[0072] 所述步骤五,所述损失和准确率视图包括损失子视图和准确率子视图,所述两个子视图的x轴代表epoch,y轴分别代表所述损失和所述分类准确率,所述损失子视图包括所述训练集和所述验证集的损失曲线,所述准确率子视图包括所述训练集和所述验证集的分类准确率曲线,当选中所述隐藏层分析视图中的一格时,表明选择了对应所述隐藏层参数的一个所述模型,此时,所述损失和准确率视图会同步更新来展示所选择的所述模型对应的所述曲线。
[0073] 图3a‑d展示了当隐藏层数为1时,基于Cora数据集的损失和准确率视图,Cora数据集是一种论文数据集;图3a、b为隐藏神经元数为16时的损失子视图和准确率子视图,图3a中,随着epoch的增加,训练集损失和验证集损失逐渐降低,图3b中,当epoch大于70时,训练集和验证集的分类准确率趋于稳定,其中训练集准确率接近1,表明几乎训练集中所有的节点都被预测正确,验证集准确率接近于0.8;图3c、d为隐藏神经元数为80时的损失子视图和准确率子视图,相较于隐藏神经元数为16时的结果,图3d中,训练集和验证集的准确率快速收敛,在最初的10个epoch中,准确率快速提升,当epoch大于40时,准确率趋于稳定。
[0074] 所述步骤六,包括如下步骤:
[0075] (1)采用所述GraphTSNE可视化方法将具有高维特征向量的所述节点集合V映射到二维点空间中;所述特征矩阵X可以表示为一个特征集合 每个节点的所述特征向量xi可以被看作是一个高维点,采用所述GraphTSNE可视化方法得到一个非线性的映射函数,所述映射函数将所述高维特征向量映射到二维点空间,基于所述映射函数计算所述每个节点的位置,并采用所述每个节点的位置渲染图布局中的节点;
[0076] (2)设计图布局视图,所述图布局视图包括预测版本和差异比较版本;
[0077] 所述预测版本展示所述图卷积神经网络模型在不同状态下的预测情况,帮助用户观察节点预测情况的演化过程;所述预测版本包括初始状态视图和中间状态视图,所述初始状态视图展示了图结构数据初始时的布局情况,节点位置由所述GraphTSNE可视化方法计算得到,对于所述训练集中的节点,由于节点类别是已知的,节点颜色代表真实的类别,对于其他节点,即所有不在训练集中的节点,所述节点颜色用灰色表示;所述中间状态视图随着所述epoch的增加,节点预测状况会变化,在观察所述中间状态视图时,用户首先需要输入一个所述epoch,所述视图中用带有外环的较大圆点表示训练集节点,一个圆点的中心颜色表示该节点真实的类别,所述外环颜色表示在当前epoch中节点的预测类别,如果所述预测类别正确,则所述圆点的所述中心颜色和所述外环颜色是相同的,用户从中可以识别出一个训练节点是否被正确预测,对于其他节点,用灰色表示在当前epoch中被预测错误的节点,而被预测正确的节点用它们真实的类别颜色所表示;图4a‑d利用图布局视图,分析了隐藏层数为1,隐藏神经元数为16时,基于Cora数据集的节点预测状况演化过程;图4a为预测版本的初始状态视图,训练集中所有的节点用它们真实的类别颜色所表示;图4b‑d为预测版本的中间状态视图,展示了节点在训练过程中的预测类别,如图4b所示,当epoch=1时,训练集中少量具有统一颜色的大节点为类别被预测正确的节点,大多数具有不同中心和外环颜色的大节点为类别被预测错误的训练节点;如图4c所示,当epoch增加到10时,更多的训练节点和其他节点被预测正确;如图4d所示,当epoch=70时,几乎所有的训练节点都被预测正确,更多的其他节点也被赋予了正确的类别;大多数被预测错误的节点是孤立的节点或孤立的子图,如图4d中的圆环所圈出所示。
[0078] 所述图布局视图,当用户将鼠标移动到某一个节点上时,不仅展示对应的预测信息,同时显示该节点直接相连的邻居节点,所述预测信息包括节点ID、真实类别和所述预测类别,使用户能够发现若一个节点与它的邻居节点具有不同的类别,则很容易被错误地分类,如图4d的右上角所展示的预测信息,节点2119同时与类别为4和5的节点相连,它的真实类别是4,却被错误地分到了类别5。
[0079] 图5a和5b是本发明中epoch=1和epoch=2时的预测情况细致分析图。如图5a所示,当epoch=1时,很多训练节点被预测错误,少量的其他节点被预测正确;如图5b所示,在epoch为1和2之间,一些新的训练节点被预测正确,它们的邻居节点同样被预测正确;当用户把鼠标移动到该节点上来观察时,可以更进一步分析两个epoch间某个特定节点的预测情况,如图5a、b右上角的节点73所示,当epoch=1时,节点73的类别被预测错误,当epoch=2时,节点73和其邻居节点被赋予了正确的类别标签;此外,如图5a、b右下角的节点364所示,随着epoch的增加,已经被正确预测的类别标签会扩散到邻居节点。
[0080] 所述差异比较版本帮助用户比较不同所述epoch间预测情况的差异,首先需要用户输入startEpoch和endEpoch两个数值,分别表示起始训练步数和终止训练步数,所述节点位置由GraphTSNE计算得到,在所述startEpoch中被预测错误而在所述endEpoch中被预测正确的节点用它们真实的所述类别颜色绘制,剩余的节点则用灰色所表示,可以帮助用户清晰地了解在两个epoch间哪些节点被预测正确了。