一、导论
Node Embedding是图表示学习的范畴,是为了自动学习feature,好为下游ML任务提供支持。为使得Node Embedding实现高度的任务无关性,有以下几种解决办法。
二、Encoder-Decoder
Encoder-Decoder方法基于一个假设:那就是两个如果原空间中的两个点相似,那么映射后的两个点也是相似的。
Encoder-Decoder方法是指,定义一个编码器和一个相似度函数。通过编码器将原网络映射到某空间,用相似度函数比较映射后的两点相似性。如下图所示。
图内的相似函数是余弦函数,注意Z向量应该是经过归一化的。
步骤为:1)ENC映射到高维空间;2)simiarity比较相似程度;3)DEC解压到原空间;4)优化参数,使得simiarity最大 。
三、Random Walk
随机游走需要学习的内容是一个mapping:
目标函数为:
该目的是找到一个映射,为u的embedding Zu,使得某个观察到的序列N(u)出现的概率最大。
该公式等价于损失函数
而P(v|Zu)用softmax推算概率,参照公式:,将softmax后的公式带入前面的L,得出新的损失函数公式
。
考虑到计算复杂程度在O(|V|2)的复杂度,一个简单的计算公式是采样:
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的方法本质是需要回答两个问题:如何定义邻域?如何定义随机游走?