Graph 使用图形核进行计算机程序间相似性度量的图形编码

Graph 使用图形核进行计算机程序间相似性度量的图形编码,graph,compiler-construction,machine-learning,svm,Graph,Compiler Construction,Machine Learning,Svm,我打算使用图形内核来执行不同计算机程序之间的相似性度量。在计算机程序的编译过程中,它们被表示为某种形式的图形,如图中所示,带有控制流 该图摘自“使用基于图形的程序特征进行预测建模”一文 我打算使用图形内核,为此,我寻求帮助,了解如何使用包含特征向量(特定基本块的特征)的每个节点(基本块)对这些图形进行编码(格式化)为字符串或图形等非数值对象定义的核函数主要是为了避免对这种结构进行编码。核心思想是从非数值空间直接计算对象的核心值,如本例中的图。您的特定示例是带标签的垂直图形(边上没有标签)的实例

我打算使用图形内核来执行不同计算机程序之间的相似性度量。在计算机程序的编译过程中,它们被表示为某种形式的图形,如图中所示,带有控制流

该图摘自“使用基于图形的程序特征进行预测建模”一文


我打算使用图形内核,为此,我寻求帮助,了解如何使用包含特征向量(特定基本块的特征)的每个节点(基本块)对这些图形进行编码(格式化)为字符串或图形等非数值对象定义的核函数主要是为了避免对这种结构进行编码。核心思想是从非数值空间直接计算对象的核心值,如本例中的图。您的特定示例是带标签的垂直图形(边上没有标签)的实例,因此您可以简单地将图形内核用于此类结构。在中,它是作为一个边缘标记结构引入的,但是从边缘标记到垂直标记的变化是非常自然的(和)。所以剩下的就是计算特定垂直度
v_i
v_j
之间的相似性。在最初的论文中,我们只是有一个矩阵
W
(负责表示特定边标签的“相似性”),因此类似地,您可以计算顶点特征向量之间的某种相似性(有几十种可能性,其中一种选择严重依赖于数据,您可以使用余弦相似性、汉明距离、MSE等进行实验。),但核心思想保持不变。首先计算产品图中使用的vertice-vertice相似度矩阵,然后简单地对数据应用相应的图形内核。这不是简单的解决方案,但我认为不存在简单(好)的解决方案。图形内核是非常年轻的对象(11年前引入)要处理非常复杂的对象(您的特定问题是非常复杂的分类对象的一个很好的例子)。您应该记住,在图形上使用内核方法可能会在计算上花费很大,因此最好使用一些更简单的模型(处理图形的一些简单特征,而不是整个“原始”数据)。

这些节点是统一的吗?一个图形中的节点“1”和第二个图形中的节点“1”是否编码相同类型的实体?或者这些是完全不同的图形,并且您只有节点的“相似性”,可以表示为特征的相似性?@lejlot Yes.node图1中的“1”和图2中的节点“1”仅在特征方面相似。这些特征可能是基本块中的指令数或块中的变量数等。但每个节点都有一个固定长度的特征向量。