做图的人是如何看待GNN的(二):Node Embedding

一、导论

Node Embedding是图表示学习的范畴,是为了自动学习feature,好为下游ML任务提供支持。为使得Node Embedding实现高度的任务无关性,有以下几种解决办法。

二、Encoder-Decoder

Encoder-Decoder方法基于一个假设:那就是两个如果原空间中的两个点相似,那么映射后的两个点也是相似的。

Encoder-Decoder方法是指,定义一个编码器和一个相似度函数。通过编码器将原网络映射到某空间,用相似度函数比较映射后的两点相似性。如下图所示。

图内的相似函数是余弦函数,注意Z向量应该是经过归一化的。

步骤为:1)ENC映射到高维空间;2)simiarity比较相似程度;3)DEC解压到原空间;4)优化参数,使得simiarity最大 。

三、Random Walk

随机游走需要学习的内容是一个mapping:f(u) = z_{u},f : u\rightarrow \mathbb{R}^{d}

目标函数为:max_{f} \sum_{u\in V} log P(N_{R}(u)|Z_{u})

该目的是找到一个映射,为u的embedding Zu,使得某个观察到的序列N(u)出现的概率最大。

该公式等价于损失函数L = \sum_{u\in V}\sum_{v \in N_{R}(u)} - log(P(v|Z_{u})) 

而P(v|Zu)用softmax推算概率,参照公式:P(v|Z_{u}) = \frac{exp(Z_{u}^{T}Z_{v})}{\sum _{n\in V} exp(Z_{u}^{T} Z_{n})},将softmax后的公式带入前面的L,得出新的损失函数公式L = \sum_{u\in V}\sum_{v \in N_{R}(u)} - log( \frac{exp(Z_{u}^{T}Z_{v})}{\sum _{n\in V} exp(Z_{u}^{T} Z_{n})})

考虑到计算复杂程度在O(|V|2)的复杂度,一个简单的计算公式是采样:

log( \frac{exp(Z_{u}^{T}Z_{v})}{\sum _{n\in V} exp(Z_{u}^{T} Z_{n})}) \approx log(\sigma (Z_{u}^{T}Z_{v})) - \sum_{i=1}^{k} log(\sigma (Z_{u}^{T}Z_{ni})) , n_{i}\sim P_{V}

ni是服从度的概率分布,即抽样概率和度挂钩。一般情况下,k取值是5~20

四、node2vec

如果说,randomwalk是每次随机游走的情况为等概率随机选择,那么node2vec的是设定了一个参数,使得游走的方向为可控变量。

这里引入一个参数p和一个参数q,p指的是返回到前一个节点的可能性,是走回上个节点的概率,这条边的权重为1/p;q指的是随机游走的策略中,BFS/DFS的权重,是定义走多远的参数,使用时1/q。如果p很小,那么这次游走的趋势像BFS;如果q很小,那么这次游走的概率倾向于DFS。`

算法:计算随机游走概率;评估从u点开始,长度为l的randomwalk;用梯度下降优化node2vec的对象。

三和四的总结:

embed node:embedding 空间里的距离映射原网络中两节点的相似性。

这两种embedding的方法本质是需要回答两个问题:如何定义邻域?如何定义随机游走?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值