【论文笔记】node2vec: Scalable Feature Learning for Networks【3】

306 阅读8分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情

前言

Hello!

非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~  

自我介绍 ଘ(੭ˊᵕˋ)੭

昵称:海轰

标签:程序猿|C++选手|学生

简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖...已保研。

学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!  

唯有努力💪  

知其然 知其所以然!

本文只记录感兴趣的部分

4. EXPERIMENTS

4.1 Case Study: Les Misérables network

数据集: Les Misérables network

  • 77个节点
  • 254条边

设置d=16d=16,运行node2vec来学习网络中每个节点的特征表示

使用KMeans将特征表达聚集在一起,然后,在两个维度上可视化原始网络,节点根据它们的簇分配颜色


图3:

  • 由node2vec生成的Les MiséRABES同现网络的互补可视化
  • 标签颜色反映同质性(上图)结构等价性(下图) 在这里插入图片描述

图的简单理解:

  • 上图:不同的颜色分别代表了不同的簇/社区,同种颜色就是同一类的 对应 同质性
  • 下图:同样的颜色代表具有类似的结构,比如蓝色小球,对应 结构等价

p、q参数的设置

  • 上图:p=1,q=0.5
  • 下图:p=1,q=2

p都为1,q=0.5时,更加倾向于DFS,利于获得节点的宏观邻域特征,更加反映同质性 q=2时,倾向于BFS,利于获得局部邻域特征,更加反映结构等价

4.2 Experimental setup

实验任务

  • 节点的多标签分类
  • 边的链接预测

基线方法

  • Spectral clustering
  • DeepWalk
  • LINE

与以前用于评估基于采样的特征学习算法的设置不同,我们为每种方法生成相同数量的样本,然后在预测任务中评估所获得的特征的质量

在这样做时,我们忽略了纯粹因为实现语言(C/C++/Python)而观察到的性能收益,因为它是算法的次要部分。

因此,在采样阶段,DeepWalk、Line和node2vec的参数被设置为使得它们在运行时生成相同数量的样本

  • 首先,DeepWalk使用分层抽样来近似Softmax概率,其目标类似于node2vec使用的目标。然而,与负采样相比,分层Softmax的效率较低[22]。因此,在保持其他一切不变的情况下,我们在DeepWalk中切换到负采样

  • 其次,node2vec和DeepWalk都有一个用于优化的上下文邻域节点数量的参数,该数量越大,需要的优化次数(epochs)就越多。对于Line,此参数设置为unity,但由于Line比其他方法更快地完成一个epochs,所以我们让它运行kk个epochs。

用于node2vec的参数设置与用于DeepWalk和Line的典型值一致。具体地说,我们设置d=128r=10l=80k=10d=128、r=10、l=80、k=10,并且针对单个epochs运行优化。

我们重复了10次随机种子初始化的实验,我们的结果具有统计学意义,P-value小于0.01

P值(P-value)就是当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率。 如果P值很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,P值越小,我们拒绝原假设的理由越充分。 总之,P值越小,表明结果越显著。

pq{0.250.50124}p,q∈\{0.2 5,0.5 0,1,2,4\}上进行网格搜索的情况下,对10%的标记数据进行10次交叉验证,学习到最佳的输入输出和返回超参数。

4.3 Multi-label classification

在多标签分类任务中,每个节点被分配到有限集合LL中的一个或多个标签

在训练阶段,我们训练一定比例的节点及其所有标签

任务是预测剩余节点的标签

这是一项具有挑战性的任务,特别是在LL很大的情况下

我们使用以下数据集:

  • BlogCatalog
    • 10,312 nodes,
    • 333,983 edges,
    • 39 different labels
  • Protein-Protein Interactions (PPI)
    • 3,890 nodes
    • 76,584 edges,
    • 50 different labels
  • Wikipedia
    • 4,777 nodes
    • 184,812 edges
    • 40 different labels

Experimental results

节点特征表示被输入到具有L2正则化的一对多Logistic回归分类器

我们使用Macro-F1分数来比较性能

实验结果如下表: 在这里插入图片描述

其中50%的节点被标记用于训练 Gain:收益(对比最接近node2vec的收益)

为了进行更细粒度的分析,我们还比较了在10%到90%的训练测试分割范围内的性能

训练数据占所有数据的比例从10%到90%

Micro-F1和Macro-F1得分的结果如下图

在这里插入图片描述

4.4 Parameter sensitivity

Node2vec算法涉及多个参数

我们使用已标记数据和未标记数据各占一半的比例,考察了不同的参数选择如何影响(使用Macro-F1分数)BlogCatalog数据集上的node2vec的性能

  • 除要测试的参数外,所有其他参数均采用默认值
  • p和q的缺省值设置为unity( 没懂,为什么设置为unity)
缺省值(quē shěng zhí)就是默认值。是指一个属性、参数在被修改前的初始值。

pqp、q越小,MacroF1Macro-F_1分数越好

在这里插入图片描述

特征向量的维度d越大,Macro-F1分数越高,d趋近100100左右,性能就趋于饱和

在这里插入图片描述

增加每个节点的随机游走数量rr和每次游走的长度ll也可以提高性能

在这里插入图片描述

有趣的是,上下文大小kk(Skip-gram模型中预测结果中的一个节点对应的kk个上下文)也提高了性能,但代价是增加了优化时间。然而,在这种情况下,性能差异并不是那么大

在这里插入图片描述

4.5 Perturbation Analysis 扰动分析

对于许多真实的网络,我们无法获得关于网络结构的准确信息。

通过Perturbation Analysis,分析node2vec在BlogCatalog网络中边缘结构相关的两种不完全信息场景中的性能。

1)在第一个场景中,我们根据缺失边的比例(相对于整个网络)来测量性能。

缺失边是随机选取的,条件是网络中连通分量的数量保持不变

结果如下图:

在这里插入图片描述

随着网络中缺失边的比例增加,Macro-F1分数的下降大致呈线性,斜率较小。

对于网络中缺失边的鲁棒性,在图随时间变化的情况下(如引用网络),或在网络构建昂贵的情况下(如生物网络)尤为重要。

2)在第二个扰动设置中,我们在网络中随机选择在节点对之间添加噪声边

结果如下图:

在这里插入图片描述

与缺失边相比,添加噪声边时node2vec的性能最初下降的速度略快,但Macro-F1分数的下降速度随着时间的推移而逐渐放缓

同样,node2vec对虚假边缘的稳健性在几种情况下是有用的,例如用于构建网络的测量是噪声的传感器网络。

4.6 Scalability

为了测试可伸缩性,我们使用node2vec学习了Erdos-Renyi图的节点表示

  • 节点大小从100增加到1,000,000个节点
  • 恒定平均度为10

结果如下图

在这里插入图片描述

从图中得到:node2vec得到节点表示的时间随着节点数量的增加而线性扩展

4.7 Link prediction

在链接预测中,我们在网络中删除一定比例的边,然后再预测这些被删除的边

我们生成带标签的边缘数据集的方法如下:

  • 为了获得正例,我们从网络中移除随机选择的50%的边,同时确保边去除后得到的剩余网络是连通的;
  • 而为了生成负例,我们从网络中随机抽取相同数量的无边连接的节点对

由于之前没有任何特征学习算法被用于链路预测,我们将node2vec与一些在链路预测中取得良好性能的常用启发式分数进行比较

在以下数据集上测试我们的基准

  • Facebook
  • Protein-Protein Interactions (PPI)
  • arXiv ASTRO-PH

实验结果如下:

在这里插入图片描述

表4:曲线下面积(Area Under Curve, AUC)的链路预测得分。

与使用二元运算符启动的流行基线和基于嵌入的方法进行比较:

  • (a) Average
  • (b) Hadamard
  • ( c ) Weighted-L1
  • (d) Weighted-L2(定义见表1)

5. DISCUSSION AND CONCLUSION

作为未来的工作,我们将探索Hadamard算子相对于其他算子成功的原因,并基于搜索参数建立可解释的边等价概念。

链路预测实验Hadamard算子效果较好

读后感

渐渐地读论文也熟练了起来

但是很多知识点还是不太清楚

看论文速度还是很慢

不懂的地方也很多

记录下来 以后需要用到时再仔细研究研究

加油!

结语

文章仅作为个人学习笔记记录,记录从0到1的一个过程

希望对您有一点点帮助,如有错误欢迎小伙伴指正

在这里插入图片描述