CS224W摘要03.Node Embedding

Posted oldmao_2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS224W摘要03.Node Embedding相关的知识,希望对你有一定的参考价值。


CS224W: Machine Learning with Graphs
公式输入请参考: 在线Latex公式
上一节讲的是传统的图机器学习如何进行特征工程的(node-level, edge-level, graph-level features)
而这节课的目标是自动学习节点表征。

Encoder 和Decoder框架

基本的notation很简单:
V是节点集合,A是邻接矩阵,这里不为节点进行特征工程,或者添加额外信息。

Goal is to encode nodes so that similarity in the embedding space (e.g., dot product) approximates similarity in the graph.
上图显示了Encoder,Decoder就是相似度计算部分:
D E C ( z v T z u ) DEC(z_v^Tz_u) DEC(zvTzu)

Encoder小例子

这里使用最简单的线性变换作为encoding方法为例子:
E N C ( v ) = z v = Z ⋅ v ENC(v)=z_v=Z\\cdot v ENC(v)=zv=Zv
Z就是参数矩阵维度是 d × ∣ V ∣ d\\times |V| d×V
v v v是节点的独热编码。
当然还有别的方法:DeepWalk, node2vec

Note

This is unsupervised/self-supervised way of learning node embeddings.
These embeddings are task independent. They are not trained for a specific task but can be
used for any task.

随机游走

notation

目标是要找到节点 u u u对应的表征 z u z_u zu
P ( v ∣ z u ) P(v|z_u) P(vzu)从节点 u u u游走到节点 v v v的概率
z u T z v z_u^Tz_v zuTzv表示u和v同时出现在随机游走序列的概率

特点

1.即可获得邻居的local信息,也可以获取多跳邻居信息
Idea: if random walk starting from node 𝒖 visits 𝒗 with high probability, 𝒖 and 𝒗 are similar (high-order multi-hop information)
2.无需考虑节点对的采样,只用考虑随机游走策略 R R R,更加高效
Efficiency: Do not need to consider all node pairs when training; only need to consider pairs that co-occur on random walks.

算法描述

给定图 G = ( V , E ) G=(V,E) G=(V,E)
目标是学习到一种映射 f : u → R d f:u\\rightarrow\\R^d f:uRd,记为 f ( u ) = z u f(u)=z_u f(u)=zu
目标最大化对数似然函数为:
max ⁡ f ∑ u ∈ V log ⁡ P ( N R ( u ) ∣ z u ) \\underset{f}{\\max}\\sum_{u\\in V}\\log P(N_R(u)|z_u) fmaxuVlogP(NR(u)zu)
N R ( u ) N_R(u) NR(u)表示用随机游走策略 R R R对节点u进行遍历得到的邻居节点
我们希望学习到节点u的特征表达,特征表达可以预测其随机游走的邻居
上面的最大化对数似然函数可以写成:
L = ∑ u ∈ V ∑ v ∈ N R ( u ) − log ⁡ ( P ( v ∣ z u ) ) \\mathcal{L}=\\sum_{u\\in V}\\sum_{v\\in N_R(u)}-\\log(P(v|z_u)) L=uVvNR(u)log(P(vzu))
上面加了负号求最小,其中 P ( v ∣ z u ) P(v|z_u) P(vzu)可以用softmax来求:
P ( v ∣ z u ) = exp ⁡ ( z u T z v ) ∑ n ∈ V exp ⁡ ( z u T z n ) P(v|z_u)=\\cfrac{\\exp(z_u^Tz_v)}{\\sum_{n\\in V}\\exp(z_u^Tz_n)} P(vzu)=nVexp(zuTzn)exp(zuTzv)

Optimizing random walk embeddings = Finding embeddings z u z_u zu that minimize L \\mathcal{L} L
直接算计算量很大, ∑ u ∈ V , ∑ n ∈ V \\sum_{u\\in V},\\sum_{n\\in V} uV,nV两部分都是对所有节点进行操作,使得复杂度高达 O ( ∣ V ∣ 2 ) O(|V|^2) O(V2)

负采样优化

这里主要针对黄色部分的进行优化,使得对所有节点的操作变成对某几个节点操作(k个采样的负样本):
log ⁡ exp ⁡ ( z u T z v ) ∑ n ∈ V exp ⁡ ( z u T z n ) ≈ log ⁡ ( σ ( z u T z v ) ) − ∑ i = 1 k log ⁡ ( σ ( z u T z n i ) ) , n i ∼ P V \\log\\cfrac{\\exp(z_u^Tz_v)}{\\sum_{n\\in V}\\exp(z_u^Tz_n)}\\approx\\log\\left(\\sigma(z_u^Tz_v) \\right)-\\sum_{i=1}^k\\log\\left(\\sigma(z_u^Tz_{ni}) \\right),n_i\\sim P_V lognVexp(zuTzn)exp(zuTzv)log(σ(zuTzv))i=1klog(σ(zuTzni)),niPV
负样本的采样不是随机的,而是根据节点的度作为采样概率的依据进行采样。度越大,被采样的概率越大。通常采样的负样本个数为: k = 5 ∼ 20 k=5\\sim20 k=520

SGD

不解释,太多教程了

小结

1.Run short fixed-length random walks starting from each node on the graph
2. For each node 𝑢 collect 𝑁 R ( 𝑢 ) 𝑁_R(𝑢) NR(u), the multiset of nodes visited on random walks starting from 𝑢
3. Optimize embeddings using Stochastic Gradient Descent:

Node2Vec

对随机游走策略进行优化,定义了二阶有偏随机游走的方式来生成 𝑁 R ( 𝑢 ) 𝑁_R(𝑢) N以上是关于CS224W摘要03.Node Embedding的主要内容,如果未能解决你的问题,请参考以下文章

CS224W摘要总纲(已完结)

CS224W摘要总纲(已完结)

CS224W摘要10.Knowledge Graph Embeddings

CS224W摘要05.Message passin and Node classification

CS224W摘要15.Deep Generative Models for Graphs

CS224W摘要11.Reasoning over Knowledge Graphs