Struct2vec

如图1所示,模型的输入是一个带有属性的控制流图( attributed control flow graph, ACFG)。 G = &lt; V , E &gt; G=&lt;V, E&gt; G=<V,E>,其中V和E分别为控制流图中的结点和边,每个基本块结点v的向量表示设为 μ v \mu_v μv。整个ACFG的向量可以表示为 μ g = ∑ v ∈ V μ v \mu_g = \sum_{v \in V} \mu_v μg=vVμv
如何对ACFG结构进行训练,得到ACFG的向量表示是Struct2vec的重点。Struct2vec利用迭代的方法对ACFG中每个结点的信息进行更新:
μ v ( t + 1 ) = F ( x v , ∑ u ∈ N ( v ) μ u ( t ) ) , ∀ v ∈ V \mu_{v}^{(t+1)} = F(x_v, \sum_{u \in N(v)}\mu_u^{(t)}), \forall v \in V μv(t+1)=F(xv,uN(v)μu(t)),vV
图1
其中 x v x_v xv为从结点(基本块) v v v中抽取的数值特征, N ( v ) N(v) N(v)为结点 v v v的邻居。F为一个非线性映射:
F ( x v , ∑ u ∈ N ( v ) ) = t a n h ( W 1 x v + σ ( ∑ u ∈ N ( v ) μ u ) ) F(x_v, \sum_{u \in N(v)}) = tanh(W_1x_v + \sigma(\sum_{u \in N(v)}\mu_u)) F(xv,uN(v))=tanh(W1xv+σ(uN(v)μu))
其中 σ \sigma σ是一个n层的全连接网络。F的整体结构如下所示。

训练Struct2vec网络的目标函数为对相似函数的相似度度量:
S i m ( g , g ′ ) = c o s ( ϕ ( g ) , ϕ ( g ′ ) ) Sim(g, g&#x27;) = cos(\phi(g), \phi(g&#x27;)) Sim(g,g)=cos(ϕ(g),ϕ(g))

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值