大规模网络节点的表征学习 node2vec:Scalable Feature Learning for Network

背景

图是一种描述复杂数据的模型(任意的节点数量、复杂的关系)
SNAP数据集:Standord Large Network Dataset Collection 其中包含了许多不同类型的数据集。
图研究涵盖:节点分类(node classification)、边预测(link prediction)、社群检(community detection)、网络营销(viral marketing)、网络相似度(network similarity)
节点分类任务:Macro-F1,Micro-F1
Macro-F1 : 分别计算每个类别的F1,然后做平均
Micro-F1:通过先计算总体的TP,FN和FP的数量,再计算F1
图学习领域:人工特征提取->特征筛选->输入分类器 (基于特征工程)
深度学习领域:特征工程和分类集成于一体(基于神经网络)

图的构建

  1. The fully connected graph:任意两点之间都有边,可计算欧氏距离来建成一条边,但是算法时间复杂度很高
  2. The e-neighborhood graph:距离大于e,就不创建边
  3. k-nearest neighbor graph:对距离最近的k个点再建边,但是存在误差
  4. 根据实际应用问题建图
  5. 根据研究问题人工合成图

图的应用

推荐系统:Billion- scale Commodity Embedding for E-commerce Recommendation in Alibaba (KDD 2018)
POG:Personalized Outfit Generation for Fashion Recommendation at Alibaba iFashion(KDD 2019)

node2vec算法详解(核心部分)

图的存储:邻接矩阵和邻接表
图学习的目的是希望学到每个节点的表征
优化目标:类似skip-gram
独立性假设:
邻居节点之间互相不影响
负采样
SGD优化方法
论文核心:通过随机游走策略生成 N s ( u ) N_s(u) Ns(u)
max ⁡ f ∑ u ∈ V log ⁡ Pr ⁡ ( N S ( u ) ∣ f ( u ) ) \max _{f} \sum_{u \in V} \log \operatorname{Pr}\left(N_{S}(u) \mid f(u)\right) maxfuVlogPr(NS(u)f(u))
其中右边就是softmax:
Pr ⁡ ( f ( n i ) ∣ f ( u ) ) = exp ⁡ ( f ( n i ) ⋅ f ( u ) ) ∑ v ∈ V exp ⁡ ( f ( v ) ⋅ f ( u ) ) \operatorname{Pr}\left(f\left(n_{i}\right) \mid f(u)\right)=\frac{\exp \left(f\left(n_{i}\right) \cdot f(u)\right)}{\sum_{v \in V} \exp (f(v) \cdot f(u))} Pr(f(ni)f(u))=vVexp(f(v)f(u))exp(f(ni)f(u))
然后再加上外面的log,公式(1)实际上可以写为(左边是分母,右边是分子,左边忽略一个常数系数): max ⁡ f ∑ u ∈ V [ − log ⁡ Z u + ∑ n i ∈ N S ( u ) f ( n i ) ⋅ f ( u ) ] \max _{f} \sum_{u \in V}\left[-\log Z_{u}+\sum_{n_{i} \in N_{S}(u)} f\left(n_{i}\right) \cdot f(u)\right] maxfuV[logZu+niNS(u)f(ni)f(u)]
其中, Z u = ∑ v ∈ V exp ⁡ ( f ( v ) ⋅ f ( u ) ) Z_{u}=\sum_{v \in V} \exp (f(v) \cdot f(u)) Zu=vVexp(f(v)f(u)),要对每个顶点来进行计算,实际上计算复杂度还蛮高,论文借鉴了Word2Vec中的负采样和层次softmax来对这项作了优化。
Word2Vec中的负采样是用词频高的作为负样本,这里是用顶点的度当做词频进行负采样。度越高采样概率越大。

bfs & dfs

在这里插入图片描述
BFS:局部特征(1-hop采样)
DFS:全局特征(k-hop采样)
在这里插入图片描述
BFS算法
数据结构:queue(队列);FIFO先进先出
在论文中认为BFS搜索语义-结构相似性(structure equivalence)
在这里插入图片描述
DFS算法
数据结构:stack(栈);先出后进
在论文中认为DFS搜索语义-同质/社群相似性(homophily)–DFS往深了搜索,但是无论如何搜索都离不开自己的社群,因此体现同质性。
在这里插入图片描述

biased random walk有偏的随机游走算法

传统的random walk算法不具备探索节点不同类型邻域的能力,但是作者认为网络同时具备结构和同质相似性:
P ( c i = x ∣ c i − 1 = v ) = { π v x Z  if  ( v , x ) ∈ E 0  otherwise  P\left(c_{i}=x \mid c_{i-1}=v\right)= \begin{cases}\frac{\pi_{v x}}{Z} & \text { if }(v, x) \in E \\ 0 & \text { otherwise }\end{cases} P(ci=xci1=v)={Zπvx0 if (v,x)E otherwise 
其中 π v x \pi_{v x} πvx就是vx上的权重 w v x w_vx wvx, 当 w v x = 1 w_vx=1 wvx=1表示无权图, Z Z Z表示将概率归一化
在有偏随机游走算法中,当前位置v的下一时刻访问节点的是由其上一个节点决定,如图所示v的下一个访问节点由上一个时刻节点t来决定。
在这里插入图片描述
公式: α p q ( t , x ) = { 1 p  if  d t x = 0 1  if  d t x = 1 1 q  if  d t x = 2 \alpha_{p q}(t, x)= \begin{cases}\frac{1}{p} & \text { if } d_{t x}=0 \\ 1 & \text { if } d_{t x}=1 \\ \frac{1}{q} & \text { if } d_{t x}=2\end{cases} αpq(t,x)=p11q1 if dtx=0 if dtx=1 if dtx=2
d t x d_{t x} dtx: t,x之间的最短路径
d t x d_{t x} dtx: {0, 1, 2}
p, q控制了从源点(v)离开邻居的快慢
根据参数 α p q ( t , x ) \alpha_{p q}(t, x) αpq(t,x)来控制随机游走的方向,即在调整q时,节点之间的距离就发生变化,从而改变访问策略(DFS或BFS),调节p的值是回溯的作用,当p越小的时候,就倾向返回t。
π v x = α p q ( t , x ) ⋅ w v x \pi_{v x}=\alpha_{p q}(t, x) \cdot w_{v x} πvx=αpq(t,x)wvx
对超参数的理解总结:
p值大:倾向不回溯,降低了2-hop的冗余度;p值小,倾向回溯,采样序列集中在起始点的周围
q>1: BFS- behavior,局部特征; q<1: DFS-behavior,往外探索,全局特征

node2vec算法

在这里插入图片描述

概率采样alias sampling

在这里插入图片描述
论文关键点:
基于word2vec训练框架
基于random walk 产生训练序列
性能通过alias sampling采样进行优化
实验创新点:
讨论了BFS、DFS的语意
设计了有便随机游走biased random network

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值