graph representation learning

Automaticly learning efficient task-independent feature for machine learning with graphs,从而避免了特征工程

why embedding?

  1. Similarity of embeddings between nodes indicates their similarity in the network.
  2. Encode network information
  3. Task independent, Potentially used for many downstream predictions

a simple pattern of Learning Node Embedding

  1. Encoder: maps from nodes to embeddings

    ENC(v)=zvENC(v)=z_vENC(v)=zv, 输入为node,输出为node的embedding,

    例如一种简单的方式为给每个node定义一个向量,用node取embedding时直接执行embedding lookup操作

  2. Define a node similarity function (i.e., a measure of similarity in the original network)

    similarity(v,u)similarity(v,u)similarity(v,u)

    一个计算node similarity的function,输入为没有转化为embedding的、original network的node,输出为2个node的相似度

  3. Decoder: maps from embeddings to the similarity score

    计算两个node的embedding的similarity,

    例如可以用embedding向量的内积来表示相似度,即zvTzuz_v^T z_uzvTzu

  4. 优化encoder的参数使得 (优化目标):similarity(v,u)=zvTzusimilarity(v,u)=z_v^T z_usimilarity(v,u)=zvTzu

为什么向量内积可以表示相似度?

假设有N个向量,要找出和向量1最相似的向量。

依次计算向量2到N和向量1的内积。

内积=向量1的模 * 向量n在向量1上投影的长度

对所有向量计算的内积来说,向量1的模不变,那内积最大的就是在向量1上投影长度最大的向量

投影长度表示在向量1方向上的分量,可以认为是相似度。

How to define Node similarity

Random Walk

Notation:
zuz_uzu: The embedding of node u
P(v∣zu)P(v|z_u)P(vzu): The (predicted) probability of visiting node v on random walks starting from node u
NR(u)N_R(u)NR(u): neighborhood of u obtained by some random walk strategy R

What is random walk


Intuition: if random walk starting from node u visits v with high probability, u and v are similar (high-order multi-hop information),所以用这种方法得到 node similarity function

如果边没有权重,访问u的neighbor完全随机,则p(v∣u)p(v|u)p(vu)大表示v和u距离近;如果边有权重,且将权重大的选择的可能性大,则p(v∣u)p(v|u)p(vu)大表示v离u近或者v到u的路径权重较大,或者又近权重又大。总之p(v∣u)p(v|u)p(vu)大则u和v的联系越紧密。

优点:

  1. incorporates both local and higher-order neighborhood information
  2. Efficiency: Do not need to consider all node pairs when training; only need to consider pairs that co-occur on random walks

How to learn Random Walk Embeddings

given G=(V,E)G=(V,E)G=(V,E), goal is to learn f(u)=zuf(u)=z_uf(u)=zu

步骤
  1. Run short fixed-length random walks starting from each node u in the graph using some random walk strategy R

  2. For each node u collect NR(u)N_R(u)NR(u), the multiset of nodes visited on random walks starting from u

    multiset的意思是一个node可以出现多次。
    ( 应该意思是把所有random walk path中出现过的节点都放到一个集合里,同一个元素可以出现多次,PR(v∣u)=v出现的总次数所有节点出现的总次数P_R(v|u)=\frac{v出现的总次数}{所有节点出现的总次数}PR(vu)=v。 括号内的部分不适用于这里,但是是一个有用的思想)

    到目前为止做到了Estimate probability of visiting node v on a random walk starting from node u using some random walk strategy R, 即 PR(v∣u)P_R(v|u)PR(vu) (概率没有用到)

  3. Optimize embeddings according to: Given node u, predict its neighbors NR(u)N_R(u)NR(u)

    Maximize log-likelihood objective: max⁡f∑u∈Vlog⁡P(NR(u)∣zu)\max\limits_f {\sum\limits_{u \in V}{ \log{P(N_R(u)|z_u)}}}fmaxuVlogP(NR(u)zu)

    其中P(NR(u)∣zu)=∏v∈NR(u)P(v∣zu)P(N_R(u)|z_u)=\prod\limits_{v \in N_R(u)}P(v|z_u)P(NR(u)zu)=vNR(u)P(vzu)NR(u)N_R(u)NR(u)表示从u出发的random walk path中出现过的点,P(v∣zu)P(v|z_u)P(vzu)表示从节点u触发的random walk 到达节点v的概率,也就是u和v的相关度。

    P(v∣zu)=exp⁡zuTzv∑n∈Vexp⁡zuTznP(v|z_u)=\frac{\exp{z_u^T z_v}}{\sum\limits_{n \in V} \exp{z_u^T z_n}}P(vzu)=nVexpzuTznexpzuTzv

    要注意的是v∈NR(u)v \in N_R(u)vNR(u)并不是图里所有的节点,而概率P(v∣zu)P(v|z_u)P(vzu)计算的范围是全部节点,即∑v∈VP(v∣zu)=1\sum\limits_{v\in V}P(v|z_u)=1vVP(vzu)=1。 这里以最大化v∈NR(u)v \in N_R(u)vNR(u)的概率为目标就是要让和u相关的节点的概率变大,从而encode图的信息。

    再将最大化改为负的最小化,则优化目标可以等价于最小化下式:

    L=∑u∈V∑v∈NR(u)−log⁡exp⁡zuTzv∑n∈Vexp⁡zuTznL=\sum\limits_{u \in V}{ \sum\limits_{v \in N_R(u)} {-\log{\frac{\exp{z_u^T z_v}}{\sum\limits_{n \in V} \exp{z_u^T z_n}}}}}L=uVvNR(u)lognVexpzuTznexpzuTzv

计算优化 Negative Sampling

上面的objective复杂度过高了,是O(∣V∣2)O(|V|^2)O(V2)
(第一个|V|表示式子的第一层循环,第二个|V|表示概率的分母的循环,实际的图中,embedding dim和NR(u)N_R(u)NR(u)相比节点数量非常小,所以忽略不计了)

计算概率时的底数∑n∈Vexp⁡zuTzn\sum\limits_{n \in V} \exp{z_u^T z_n}nVexpzuTzn占了很大的计算量

使用negative sampling来近似概率:用列举的K个negative sample来近似的计算概率,而不用计算全部节点。

P(v∣zu)=exp⁡zuTzv∑n∈Vexp⁡zuTzn≈log⁡(σ(zuTzv))−∑k=1Klog⁡(σ(zuTzk))P(v|z_u)=\frac{\exp{z_u^T z_v}}{\sum\limits_{n \in V} \exp{z_u^T z_n}} \approx \log{(\sigma(z_u^T z_v))}-\sum\limits_{k=1}^K\log{(\sigma(z_u^T z_{k}))}P(vzu)=nVexpzuTznexpzuTzvlog(σ(zuTzv))k=1Klog(σ(zuTzk))

How to choose negative sample?

节点选取概率 proportional to its degree (和degree成正比),即degree越大,被选择的概率越大

How to choose K?

Higher K gives more robust estimates
Higher K corresponds to higher bias on negative events
In practice K =5-20

问题:

  1. 为什么要选择degree大的node?
  2. Higher K corresponds to higher bias on negative events?

How to random walk

DeepWalk

Simplest idea: Just run fixed-length, unbiased random walks starting from each node

But such notion of similarity is too constrained

Node2vec

Idea: use flexible, biased random walks that can trade off between local and global views of the network

实现方法

方法名:Biased 2nd-order random walks(因为它会记住是从哪个节点过来的)

用两个参数来调节random walk 运行的倾向:

Return parameter ppp: Return back to the previous node.用来调节返回到上一个节点的倾向大小

In-out parameter qqq: Moving outwards (DFS) vs. inwards (BFS). 用来调节向远处和近处的倾向,Intuitively, qqq is the “ratio” of BFS vs. DFS.


实际步骤:

为什么是线性时间复杂度?

  1. 步骤1的复杂度是O(1),因为只需要指定参数pppqqq
  2. 步骤2中,一个图中节点的数量通常非常大,而每个节点的path数量rrrlll和节点数量相比非常小,所以可以时间复杂度为O(number of nodes)
  3. 步骤3中,优化时涉及的embedding dim、NR(u)N_R(u)NR(u)的数量和节点数量相比都要少很多,所以也可以认为时间复杂度是O(number of nodes)
other random walk ideas

Different kinds of biased random walks:

  1. Based on node attributes (Dong et al., 2017).
  2. Based on learned weights (Abu-El-Haija et al., 2017)

Alternative optimization schemes:

  1. Directly optimize based on 1-hop and 2-hop random walk probabilities (as in LINE from Tang et al. 2015).

Network preprocessing techniques:

  1. Run random walks on modified versions of the original network

Matrix factorization

(connection between matrix factorization and node embedding)

这一小节的内容讲的是求node embedding的过程可以被当做求matrix factorization

在上面的a simple pattern of Learning Node Embedding中,

  1. 定义encode 的方法为给每个node初始化一个向量,则可以得到一个矩阵ZZZ,size为(embed_dim, node_num)
  2. 定义node similarity的计算方式为如果两个node之间有边则相似度为1,如果没有则相似度为0,则adjacency matrix AAA可以代表node之间的similarity,Au,v=1A_{u,v}=1Au,v=1则表示节点uuuvvv相似,Au,v=0A_{u,v}=0Au,v=0则表示节点uuuvvv不相似。
  3. 定义decoder,两个node embedding相似度定义为 zvTzuz_v^T z_uzvTzu,则所有节点之间相似度可以表示为ZTZZ^T ZZTZ,size=(node_num, node_num)
  4. 则优化目标为使得ZTZ=AZ^T Z=AZTZ=A

A=ZTZA=Z^T ZA=ZTZ可以被当做一个matrix AAA的factorization

但是精确的分解A=ZTZA=Z^T ZA=ZTZ是不可能的(视频里是这么讲的,不知道为什么)

所以通过用梯度下降求min⁡Z∣∣A−ZTZ∣∣2\min\limits_{Z}||A-Z^T Z||_2ZminAZTZ2来近似的求解

DeepWalk and node2vec虽然比上面的方法复杂,但是也可以被当做matrix factorization

详细描述见Network Embedding as Matrix Factorization: Unifying DeepWalk, LINE, PTE, and node2vec

有需要再回来看

问题:知道node embedding等价于matrix factorization的意义是什么?

Embedding Entire Graph

Entire Graph(subgraph) Embedding的用途举例:Classifying toxic vs non-toxic molecules; Identifying anomalous graphs

以下为获取Entire Graph(subgraph) Embedding 的方法:

sum (or average) the node embeddings in the (sub)graph

virtual node


使用virtual node的embedding当做(sub)graph 的embedding

virtual node应该和哪些node连接?

应该和要获取的subgraph或者graph的所有节点连接

Anonymous Walking Embedding

这个方法无法理解
用各类Anonymous Walk的概率分布向量表示graph是可以理解的,但是用随机取的多个Anonymous Walk序列的顺序来获得embedding无法理解,序列之间的顺序应该没有关系

What is Anonymous Walking


如上图所示,所进行的random walk得到的path是不知道node的identity的,所以是Anonymous
这里长度为3的anonymous walk 的意思是一共走3步,111的意思是3步都经过同一个节点,112的意思是前2步经过同一个节点,第3步经过了另一个节点,123的意思是3步分别经过不同的节点。

从不同节点出发的长度为3的anonymous walk都有可能包括这5种情况。

How to use Anonymous Walking

  1. Simulate all anonymous walks of lll steps and record their counts,generate independently a set of mmm random walks

    How many random walks do we need?(mmm 的大小应该是多少?)

    We want the distribution to have error of more than ε\varepsilonε with prob. less than δ\deltaδ:

    m=[2ε2(log⁡(2η−2)−log⁡δ)]m=[\frac{2}{\varepsilon^2}( \log{(2^{\eta} - 2)} - \log{\delta})]m=[ε22(log(2η2)logδ)]

    使用上面的公式来计算m,公式包括2个参数ε\varepsilonεδ\deltaδ
    η\etaη为长度为lll的anonymous walk一共有多少种,一旦lll确定,η\etaη是一个确定的值

    例如l=7l=7l=7η=877\eta=877η=877,我们设ε=0.1\varepsilon=0.1ε=0.1δ=0.01\delta=0.01δ=0.01,则带入公式得m=122500m=122500m=122500

    问题:为什么要这么设置m?ε\varepsilonεδ\deltaδ代表了什么?

  2. Represent the graph as a probability distribution over these walks

    假设step数量lll是确定的,则anonymous walk数量η\etaη也是确定的,从1中可以得到每一种anonymous walk的数量。

    将anonymous walk的种类当做一个变量,每一种为变量的一个值,则变量一共有η\etaη个可能的取值。我们知道每一种anonymous walk出现的次数以及总的次数,就可以得到该变量每一个取值的概率。将这个变量的概率分布作为Graph的表示。

    变量的概率分布可以表示为一个向量,向量每一位表示一种可能的anonymous walk,每一位上的值表示这种anonymous walk的概率。

    例如假设l=3l=3l=3,Then we can represent the graph as a 5-dim vector, Since there are 5 anonymous walks wiw_iwi of length 3: 111, 112, 121, 122, 123。向量第0维表示111出现的概率,第1维表示112出现的概率…

Learn walk embeddings

利用anonymous walk学习整个graph的embedding zGz_GzG和每个anonymous walk sample的embedding Z={zi:i=1,⋯,m}Z=\{z_i: i=1,\cdots,m\}Z={zi:i=1,,m}mmm为所有模拟得到的 anonymous walk 数量,不是固定长度的anonymous walk种类。

方法

将从节点uuu出发的所有anonymous walk当做一个序列w0,w1,⋯w_0, w_1,\cdotsw0,w1,

指定序列的上下文窗口大小Δ\DeltaΔ,用一个元素的上下文窗口内的其他元素预测它自己。例如Δ=1\Delta=1Δ=1,用w0,w2w_0,w_2w0,w2来预测w1w_1w1

调整zGz_GzGZZZ使得在给定上下文的情况下实际发生的anonymous walk wiw_iwi的概率最大化。

以下为objective function:

max⁡Z,d∑u∈V1Tu∑t=ΔTu−Δlog⁡P(wt∣{wt−Δ,⋯,wt+Δ,zG})\max\limits_{Z, d} \sum\limits_{u\in V} \frac{1}{T_u} \sum\limits_{t=\Delta}^{T_u-\Delta} \log{ P(w_t | \{w_{t-\Delta}, \cdots, w_{t+\Delta}, z_G\}) }Z,dmaxuVTu1t=ΔTuΔlogP(wt{wtΔ,,wt+Δ,zG})

其中TuT_uTu表示从节点uuu出发的anonymous walk的数量

P(wt∣{wt−Δ,⋯,wt+Δ,zG})=exp⁡(y(wt))∑i=1ηexp⁡(y(wi))P(w_t | \{w_{t-\Delta}, \cdots, w_{t+\Delta}, z_G\})=\frac{ \exp( y(w_t) ) }{ \sum_{i=1}^{\eta} \exp(y(w_i))}P(wt{wtΔ,,wt+Δ,zG})=i=1ηexp(y(wi))exp(y(wt))

η\etaη为所有可能的anonymous walk的种类,式子表示在所有可能的anonymous walk的种类中,这一个的概率。这里需要用到negative sampling来近似的计算

y(wt)=b+U⋅(cat(12Δ∑i=−ΔΔzi,zG))y(w_t)=b + U \cdot ( cat( \frac{1}{ 2\Delta } \sum\limits_{i=-\Delta}^{\Delta} z_i, z_G) )y(wt)=b+U(cat(2Δ1i=ΔΔzi,zG))

其中bbbUUU为可学习的参数,cat表示向量拼接,12Δ∑i=−ΔΔzi\frac{1}{ 2\Delta } \sum\limits_{i=-\Delta}^{\Delta} z_i2Δ1i=ΔΔzi表示上下文向量求平均

问题:

  1. 每次sample的anonymous walk有关系吗?不是独立的吗?怎么可以用这个来预测?
  2. 如果etaetaeta表示可能的anonymous walk种类,那么分母中的y(wt)y(w_t)y(wt)相加的上下文是什么?

How to use embeddings

limitations

  1. Cannot obtain embeddings for nodes not in the training set

  2. Cannot capture structural similarity

    DeepWalk 和Node2vec只考虑了节点是否临近,graph的结构完全没有考虑

  3. Cannot utilize node, edge and graph features
    这里的node embedding 方法只考虑了从数据中抽象出来的graph信息,只利用了graph里node的邻接关系,而没有用到graph里的node、edge、 graph本身所有具有的信息,例如protein properties in a protein-protein interaction graph

Solution to these limitations: Deep Representation Learning and Graph Neural Networks

问题

  1. 优化目标是一个回归吗(embedding相似度要映射到定义的相似度)?还是相似就越大越好,不相似就越小越好?
    答案是后者
  2. anonymous walk wiw_iwi表示的是第i种 anonymous walk吗?
    wiw_iwi指的是实际sample出来的anonymous walk,i不对应种类,而是第i次sample的anonymous walk

GNN-CS224W: 3 Node Embeddings相关推荐

  1. cs224w(图机器学习)2021冬季课程学习笔记5 Colab 1:Node Embeddings

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 0. Python包导入 1. NetworkX数据获取.可视化 2. 探索NetworkX数据的 ...

  2. CS224W 3.2 Random Walk Approaches for Node Embeddings

    目录 Notation Random-Walk Embeddings 为什么Random Walks Random Walk Optimization无监督feature learning Rando ...

  3. Iterative Deep Graph Learning for Graph Neural Networks: Better and Robust Node Embeddings

    摘要:在本文中,我们提出了一个端到端的图学习框架,即迭代深度图学习(IDGL),用于联合和迭代地学习图结构和图嵌入.IDGL的关键理论是基于更好的节点嵌入来学习更好的图结构,反之亦然(即基于更好的图结 ...

  4. CS224W: Machine Learning with Graphs - 09 How Expressive are GNNs

    How Expressive are GNNs 0. Theory of GNNs How powerful are GNNs? Many GNN models have been proposed ...

  5. cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Heterogeneous Graphs and Relational GCN (RGCN) ...

  6. Node Classification with Graph Neural Networks(使用GNN进行节点分类)

    文章目录 Setup 准备数据集 处理和可视化数据集 拆分数据集为分层训练集和测试集 训练和评估的实现 Feedforward Network(FFN) 构建一个Baseline神经网络模型 为bas ...

  7. cs224w(图机器学习)2021冬季课程学习笔记8 Colab 2

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 VX号"PolarisRisingWar"可直接搜索添加作者好友讨论. 更新日志: 20 ...

  8. 【CS224W】(task1)图机器学习导论

    note GNN应用场景:社交网络.知识图谱.复杂的文件系统等:节点.链路.子图分类任务等. 图机器学习的编程工具:(Graphgym.pyG.networkx.dgl.Pytorch.AntV.Ec ...

  9. 【CS224W】(task7)标签传播与节点分类(semi-supervised)

    note 对某一节点的标签进行预测,需要其本身特征.邻居的标签和特征.message passing的假设是图中相似的节点之间会存在链接,也就是相邻节点有标签相同的倾向.这种现象可以用homophil ...

最新文章

  1. 自动填充脚本使用及注意事项
  2. HTTP代理神器Fidder
  3. android多行文本框hint居中,在安卓等移动浏览器中placeholder中的文字不垂直居中问题...
  4. 自定义MyBatis
  5. 如何在不亏本的情况下构建道德数据科学系统?
  6. 40年技术发展变革,物联网行业的趋势、现状与挑战
  7. iOS Xcode7上真机调试
  8. 腾讯竟然是这样存储你的数据的!!!
  9. CISA 已遭利用漏洞列表新增17项
  10. 如何在经济危机中寻找崛起之道
  11. python微信库wxpy无法登录_使用wxpy这个基于python实现的微信工具库的一些常见问题...
  12. python删除文件代码_python2.7删除文件夹和删除文件代码实例
  13. 异曲同工 WinForm和ASP.NET如何选?
  14. 依时利考勤机说明书_指纹考勤机如何安装及使用说明|依时利
  15. jenkins教程菜鸟_Jenkins教程:在Windows平台安装Jenkins
  16. ubuntu安装vmplayer出现问题的解决方法
  17. 如何读书阅读--每天一本书计划
  18. Oriented R-CNN完整复现HRSC2016以及训练自己的HBB数据集(DIOR)
  19. Hazelcast Jet DAG原理
  20. 几种贴图压缩方式详解

热门文章

  1. 外部css样式不生效的原因
  2. 51NOD - 1830路径交
  3. 【个人总结】2020计算机保研经历(北大信科、上交、浙大、南大、中科院)
  4. cvs100e_CVS100E断路器
  5. 清华大学计算机系2020年夏令营,2018年清华大学全校50个保研夏令营通知信息大汇总...
  6. 网络面试题:字节序?网络字节序和主机字节序?
  7. 世界之窗如何保存html,导入其他书签
  8. Dynamics 365 on-premises9.0版本开放下载,附上8.2升级9.0过程
  9. 计算机视觉学习(三):仿射变换将一幅图像放置到另一幅图像中
  10. 4g网络什么时候淘汰_5G时代来临后,4G真的会被淘汰吗,简单说一下