GraphEmbedding-LINE
paper: LINE: Large-scale Information Network Embedding
Intro
- 包含一阶信息(直接相连的两节点的邻近度)和二阶信息(一对顶点的邻近度用临近节点的相似性衡量)的GE学习模型:只用到了一阶邻点
- DeepWalk/node2vec: 基于高阶相似度的GE学习模型
Methods
- 边权重矩阵W:损失函数计算时用
- 节点权重矩阵:节点采样时用
一阶相似度
- 只针对无向图,不支持有向图
- 边(u,v)的权重Wuv表示u和v之间的一阶相似性,如果在u和v之间无边,它们的一阶相似性为0。
- 经验分布,这里W是W矩阵的模
- 预测分布
- 目标函数 , d为距离函数,例如当d为KL散度且忽略常数项时(同交叉熵):
二阶相似度
- 如果没有同样的相邻节点,二阶相似性为0
- 经验分布 ,di是节点i的带权出度,是边(i,j)的权重,
- 预测分布
- 目标函数 ,这里为对节点i的加权,一般取 为 ,并取KL散度为距离函数时:
结合一阶和二阶
- method1: 训完一阶训二阶,并将两者embedding concat
- method2: 一起训
其他损失函数
- pair loss: 用learn2rank的loss
优化
二阶相似度计算的负采样
- 对softmax的优化:负采样,为sigmoid函数,利用出度构成的节点权重做采样,与w2v分布一致
边采样
- O2的梯度与边权重wij有关,若学习率的设定由小权重决定,则遇到大权重时会梯度爆炸;反之则会梯度消失
- 简单的优化方式:将权重为w的edge变为w条二进制edge —> oom —> edge sampling
- 采样算法:alias算法,可以达到O(1)复杂度
Problems
- 新节点的GE(新节点):
- 新节点和已有节点相连:优化如下目标函数
- 新节点不和已有节点相连:文中没给 —》利用side info
- 低度数顶点(孤岛节点):对于一些顶点由于其邻接点非常少会导致embedding向量的学习不充分,论文提到可以利用邻居的邻居构造样本进行学习,这里也暴露出LINE方法仅考虑一阶和二阶相似性,对高阶信息的利用不足。
注意点
- 边权重矩阵和节点权重矩阵(pagerank/出度/centrality/clustering coefficient/…)的设计
- 不同的loss: KL/cross-entropy/rankloss/…
- 采样算法
Pros & Cons
- 效率高
- 只用了一跳信息
- 对孤岛节点和新节点没有好的处理