Graph Embedding:LINE算法
背景
如上图所示,结点6和7是相邻结点,他们应该是相似结点,结点5和6虽然不是相邻结点,但是它们有共同的相邻的结点,因此它们也应该是相似结点。
基于词观察,LINE算法提出了一阶相似性算法和二阶相似性算法
First-order
我们首先如如下公式来计算结点i和j的联合概率分布:
其中ui,uj分别为节点i和节点j的embedding向量表示,同时我们依据边的权值,也可得经验分布:
其中W为图中边的权值之和,这样我们可以用交叉熵来计算loss:
上面的公式可以看出,两个向量的内积越大,p1越大。且由于内积没有方向,所以First-order只适合无向图
Second-order
这里对于每个顶点维护两个embedding向量,一个是该顶点本身的表示向量ui,一个是该点作为其他顶点的上下文顶点时的表示向量ui'。
我们用如下公式来计算结点i和j的转移概率分布:
其中|V|为结点i的邻居结点数目
同时我们给出second-order 的经验分布定义:
其中di为节点i的出度,N(i)为节点i的邻居结点。
同时我们给出second-order 的经验分布定义:
其中di为节点i的出度,N(i)为节点i的邻居节点。
可以看出first-order是在边的粒度优化的,而second-order是该以一个节点的一阶领域来优化的,econd-order不仅能用于无向图,也可用于有向图
Second-order训练加速
由于计算2阶相似度时,softmax函数的分母计算需要遍历所有顶点,这是非常低效的,论文借鉴了word2vec,采用了负采样优化的技巧,目标函数变为:
其中Pn(v)表示结点n被采样的概率,结点n被采样的概率和结点的度数dv3/4成正比
参考资料
https://zhuanlan.zhihu.com/p/56478167
https://blog.csdn.net/weixin_38877987/article/details/118422847