node2vec: Scalable Feature Learning for Networks
摘要
基于网络中节点和边的预测任务中的特征工程总是很麻烦的。虽然表示学习的自动学习特征已经有很大的帮助,但现有的特征学习方式无法对网络中连接模式的多样性进行足够的捕捉。
node2vec是本论文提出的一种对网络中的节点学习连续特征表达的框架。通过将节点映射到maximizes the likelihood of preserving network neighborhoods of nodes的低维特征空间。
1.Intro
许多问题都需要对网络节点和边的预测。比如
* 社交网络中,预测用户的兴趣;或者在蛋白质网络中预测蛋白质的功能
* 预测两节点间是否有边相连,在基因工程中预测基因间的连接或社交网络中识别二人是否是朋友。
一般处理这种问题需要手工提特征,但是需要domain knowledge和人工,而且没有泛化性。
另一种方式是通过解一个优化问题学习一个特征表示(如word2vec)。挑战是怎么设目标函数,需要权衡计算复杂度和预测准确率。
现阶段方式缺少一种能学习可控长度特征的合理的目标函数。传统的PCA,多维缩放等降维方法通过maximize转特征空间后数据的方差,缺点是需要特征值分解,而且得到的样本表示在多种预测任务上的效果还不好。
所以定义一个目标函数来保存节点的局部邻居结构是一种方法。本论文的目标是提出一个灵活的学习节点表示的算法,既能将属于相同的社区的节点学习得到相近的嵌入;又能对有相似功能的节点(如在社区中的连接结构相似)学得相似的嵌入。
本文借鉴word2vec提出了node2vec,通过maximize the likelihood of preserving network neighborhoods of nodes in a d-dimensional feature space得到特征表示。利用二阶随机游走产生节点社区。
很明显,如何定义社区是关键。本文通过定义一系列的(biased)随机游走,探索一个节点的不同社区。这样算法是灵活的,同时参数不是固定的,而且比较好理解并能直到随机游走得到不同的探索网络方式。同时参数可以通过半监督学习得到。(Q:怎么样的随机游走,怎么半监督学习得到参数)
介绍一下论文实验场景:
1. multi-label classif i cation task, where every node is assigned one or more class labels
2. link prediction task, where we predict the existence of an edge given a pair of nodes.
实验结果:outperform SOTA by 10-20%,易并行。
2. 介绍相关工作
其实从这个框架命名上就可以看出,node2vec是借鉴了word2vec的。基本的idea相似,提取连续的特征表示,一个是从网络提取,一个是从document中提取。
正好之前读过word2vec的论文,附上笔记链接,其中的skip-gram是主要思路来源。相似的词总是出现在相近的位置,网络中相似的节点也有这种特点。
类比:网络就像一个document。document是有序的词序列,通过对一系列节点进行采样将网络序列化。不同的采样方法得到不同的特征表示。实验表明,没有一个特定的采样策略能对所有网络或者任务都适用。这一缺点论文通过设计目标函数可以借鉴。
3.node2vec
设定目标函数
其中
V V 是网络中节点的集合, 将节点映射到特征空间,可以理解为一个 Embedding E m b e d d i n g , S S