graph representation learning
Automaticly learning efficient task-independent feature for machine learning with graphs,从而避免了特征工程
why embedding?
- Similarity of embeddings between nodes indicates their similarity in the network.
- Encode network information
- Task independent, Potentially used for many downstream predictions
a simple pattern of Learning Node Embedding
-
Encoder: maps from nodes to embeddings
E N C ( v ) = z v ENC(v)=z_v ENC(v)=zv, 输入为node,输出为node的embedding,
例如一种简单的方式为给每个node定义一个向量,用node取embedding时直接执行embedding lookup操作
-
Define a node similarity function (i.e., a measure of similarity in the original network)
s i m i l a r i t y ( v , u ) similarity(v,u) similarity(v,u)
一个计算node similarity的function,输入为没有转化为embedding的、original network的node,输出为2个node的相似度
-
Decoder: maps from embeddings to the similarity score
计算两个node的embedding的similarity,
例如可以用embedding向量的内积来表示相似度,即 z v T z u z_v^T z_u zvTzu
-
优化encoder的参数使得 (优化目标): s i m i l a r i t y ( v , u ) = z v T z u similarity(v,u)=z_v^T z_u similarity(v,u)=zvTzu
为什么向量内积可以表示相似度?
假设有N个向量,要找出和向量1最相似的向量。
依次计算向量2到N和向量1的内积。
内积=向量1的模 * 向量n在向量1上投影的长度
对所有向量计算的内积来说,向量1的模不变,那内积最大的就是在向量1上投影长度最大的向量
投影长度表示在向量1方向上的分量,可以认为是相似度。
How to define Node similarity
Random Walk
Notation:
z u z_u zu: The embedding of node u
P ( v ∣ z u ) P(v|z_u) P(v∣zu): The (predicted) probability of visiting node v on random walks starting from node u
N R ( 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(v∣u)大表示v和u距离近;如果边有权重,且将权重大的选择的可能性大,则 p ( v ∣ u ) p(v|u) p(v∣u)大表示v离u近或者v到u的路径权重较大,或者又近权重又大。总之 p ( v ∣ u ) p(v|u) p(v∣u)大则u和v的联系越紧密。
优点:
- incorporates both local and higher-order neighborhood information
- 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 ) = z u f(u)=z_u f(u)=zu
步骤
-
Run short fixed-length random walks starting from each node u in the graph using some random walk strategy R
-
For each node u collect N R ( u ) N_R(u) NR(u), the multiset of nodes visited on random walks starting from u
multiset的意思是一个node可以出现多次。
( 应该意思是把所有random walk path中出现过的节点都放到一个集合里,同一个元素可以出现多次, P R ( v ∣ u ) = v 出 现 的 总 次 数 所 有 节 点 出 现 的 总 次 数 P_R(v|u)=\frac{v出现的总次数}{所有节点出现的总次数} PR(v∣u)=所有节点出现的总次数v出现的总次数。 括号内的部分不适用于这里,但是是一个有用的思想)到目前为止做到了Estimate probability of visiting node v on a random walk starting from node u using some random walk strategy R, 即 P R ( v ∣ u ) P_R(v|u) PR(v∣u) (概率没有用到)
-
Optimize embeddings according to: Given node u, predict its neighbors N R ( u ) N_R(u) NR(u)
Maximize log-likelihood objective: max f ∑ u ∈ V log P ( N R ( u ) ∣ z u ) \max\limits_f {\sum\limits_{u \in V}{ \log{P(N_R(u)|z_u)}}} fmaxu∈V∑logP(NR(u)∣zu)
其中 P ( N R ( u ) ∣ z u ) = ∏ v ∈ N R ( u ) P ( v ∣ z u ) P(N_R(u)|z_u)=\prod\limits_{v \in N_R(u)}P(v|z_u) P(NR(u)∣zu)=v∈NR

本文介绍了图表示学习,特别是节点嵌入的方法,如自动学习任务无关的特征,避免特征工程。节点嵌入通过编码器将节点映射为向量,解码器计算节点相似度。内积作为相似度衡量标准,随机游走用于捕获局部和全局网络信息。负采样用于优化计算效率,节点2vec通过灵活的随机游走策略平衡局部和全局视角。匿名行走则通过模拟匿名路径学习图的整体表示。这些方法在节点分类、图异常检测等任务中有广泛应用。

217

被折叠的 条评论
为什么被折叠?



