【Graph Embedding】node2vec的原理、核心算法及其应用


不同于基于DFS邻域的DeepWalk和基于BFS邻域的LINE。node2vec是一种综合考虑DFS邻域和BFS邻域的graph embedding方法,可以看作是deepwalk的一种扩展,是结合了DFS和BFS随机游走的deepwalk。

node2vec的同质性和同构性

(1)网络的同构性是指距离近的节点的Embedding的结果应相似,如下图的 u 和 s 1 u和s_1 us1

如何使Graph Embedding的结果能够表达网络的“结构性”?让随机游走的过程更倾向于BFS(广度优先遍历)。因为在执行BFS的过程中,相当于对周边节点进行扫描,当前节点是“局部中心节点”还是边缘节点,其生成的序列包含的节点的数量和顺序必然是不同的。从而让最终的Embedding抓取到更多结构性信息。

(2)网络的“同质性”指结构上相近的节点Embedding的结果应该相似,如下图中的 u 和 s 6 u和s_6 us6

如何使Graph Embedding的结果能够表达网络的“同质性“?需要让随机游走的过程更倾向于DFS,因为DFS更有可能通过多次跳转,游走到远方的节点上,但无论怎样,DFS的游走更大概率会在一个大的集团内部进行,这就使得一个集团或者社区内部的节点的Embedding更为相似,从而更多地表达网络的“同质性”。

在这里插入图片描述

在DeepWalk中,使用DFS随机游走在图中进行节点采样,使用Word2Vec在采样的序列学习图中节点的向量表示,无法灵活地捕捉这两种关系。

node2vec的改进的基本想法就是,通过节点间的跳转概率让Embedding 的结果兼顾同质性和结构性(上图中的蓝色箭头和红色箭头)

node2vec在推荐系统中的思考

同质性相同的物品很可能是同品类、同属性,或者经常被一同购买的商品,而结构性相同的物品则是各品类的爆款、各品类的最佳凑单商品等拥有类似趋势或者结构性属性的商品。毫无疑问,二者在推荐系统中都是非常重要的特征表达。由于node2vec的这种灵活性,以及发掘不同图特征的能力,甚至可以把不同node2vec生成的偏向“结构性”的Embedding结果和偏向“同质性”的Embedding结果共同输入后续的深度学习网络,以保留物品的不同图特征信息。

node2vec的基本思想

模型

给定网络图 G ( V , E ) G(V,E) G(V,E)node2vec 的目标是学习映射 f : V → R d f: \mathbf V \rightarrow \mathbb R^d f:VRd ,该映射将每个顶点 v v v映射到低维空间表达 w u ⃗ \vec{\mathbf w_u} wu ,该低维空间表达用于下游任务。这里图 G G G可以是有向图也可以是无向图,可以是无权图也可以是带权图。

对于每个节点 u ∈ V u \in V uV, 定义 N S ( u ) ⊂ V N_{S}(u)\subset V NS(u)V作为通过邻域采样策略 S S S生成节点 u u u的网络邻域。类似 SkipGram,node2vec的优化目标是:给定顶点 u u u ,在低维空间中最大化其邻居 N S ( u ) ⊂ V N_{S}(u)\subset V NS(u)V 的对数似然函数。即:
max ⁡ f         ∑ u ∈ V l o g P r ( N S ( u ) ∣ f ( u ) ) . (1) \max_{f} \, \, \, \, \, \, \, \sum_{u \in V}logPr(N_S(u) | f(u)). \tag{1} fmaxuVlogPr(NS(u)f(u)).(1)

为了使优化问题易于处理,论文做了两个标准假设:

(1)条件独立性假设。给定源顶点,邻域节点出现的概率相互独立:
P r ( N S ( u ) ∣ f ( u ) ) = ∏ n i ∈ N S ( u ) P r ( n i ∣ f ( u ) ) Pr(N_S(u) | f(u)) = \prod_{n_i \in N_S(u)}Pr(n_i|f(u)) Pr(NS(u)f(u))<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值