node2vec整理

目的

对于一个图 G = ( V , E ) G=(V,E) G=(V,E),我们需要找个映射 f f f,使得每个节点表示成一个高维向量,即 f : V − > R d f:V->R^d f:V>Rd,其中 d d d为特征表示的维度数。

主要思想

将skip-gram模型扩展到图上。
目标函数如下, N S ( u ) N_S(u) NS(u)表示u节点的领域节点(不是直观的领域节点,而是通过下面采样得到的节点), f ( u ) f(u) f(u)则是u的向量表示。该目标函数是为了在 f ( u ) f(u) f(u)的特征表示下更多地注意到u的领域节点。
在这里插入图片描述
为了简化处理,做了两个假设

  1. 条件独立。假设观察邻域节点的可能性与观察任何其他邻域节点无关:在这里插入图片描述
  2. 特征空间对称。源节点与领域节点的影响是相互的:
    在这里插入图片描述
    因此目标函数可简化为
    在这里插入图片描述
    其中
    在这里插入图片描述

采样

node2vec整理_第1张图片
图中节点包含两种相似性:
1、同质性,即上图中的u和s1、s2等等,它们直接连接,对应于广度优先搜索(bfs)
2、结构相似性,即上图中u和s6,它们拥有相似的结构,但可能相距较远,对应深度优先搜索(dfs)

作者提出了一个random walks(随机游走)采样策略,能灵活地在bfs和dfs中平衡。
给定一个源节点u,通过如下分布采样一个长度为 l l l的walk。
在这里插入图片描述
c i c_i ci表示walk中的第i个节点, π v x \pi_{vx} πvx表示两节点间的转移概率,Z 是正则化常量。
转移概率公式
π v x = α p q ( t , x ) w v x \pi_{vx}=\alpha_{pq}(t,x)w_{vx} πvx=αpq(t,x)wvx
node2vec整理_第2张图片
当前节点为v,前一节点为t,下一节点为x, d t x d_{tx} dtx表示两节点间的距离。p、q是两个控制参数。
node2vec整理_第3张图片
返回参数p:控制返回的概率,设置一个高值(>max(q,1))避免采样重复的节点。
in-out参数q:控制dfs和bfs,如q>1 倾向于bfs,如q<1 倾向于dfs。

得到转移概率后应用Alias sampling方法采样,得到每个节点的walk(相当一段文本序列),再送入word2vec中得到每个节点的向量
node2vec整理_第4张图片
源码

你可能感兴趣的:(图嵌入,算法)