【CS224W课程笔记】Graph Representation Learning

Feature Learning in Graphs

Goal: 基于图为机器学习进行高效的、任务独立的特征工程。

Task: 将图中的每个节点映射到一个低维空间,即d维的向量。这是一种节点的分布式表示,节点之间嵌入后的相似性表明了对应网络的相似性,继而实现编码网络信息、生成节点表示的目的。

Challenge: 现代深度学习大多是为一些简单的序列或网格而设计的,而网络相较而言要复杂得多,它具有复杂的拓扑结构、没有固定的节点顺序或参考点、通常是动态的且具有多模态特征。

Embedding Nodes

Setup:V表示节点集合,A表示01邻接矩阵。
Goal: 对节点进行编码,使得其在嵌入空间的相似度(可以通过点乘计算)接近于原始网络中的相似度。
{similarity(u, v)} \approx {\mathbf{z}_v^{\top} \mathbf{z}_u}

Learning:

  1. 定义encoder,即节点和嵌入式表示之间的映射关系;
    ENC(v) = \mathbf{z}_v
  2. 定义节点相似度计算公式,即原始网络中相似度的衡量方式,需要明确向量空间中的关系是如何映射到原始网络中的关系的;
  3. 优化encoder中的参数使得Goal中的相似度近似公式成立。

Encoder:
最简单的编码方式:encoder is just an embedding-lookup,即:ENC(v) = \mathbf{Z}\mathbf{v},其中\mathbf{Z} \in \mathbb{R}^{d \times |\mathcal{v}|}是一个矩阵,每一列为一个node embedding,也是我们所要学习的, \mathbf{v} \in \mathbb{I}^{|\mathcal{v}|}是一个指示向量,除了表示节点\mathbf{v}的一列为1之外,其它列均为0。

Node Embedding

Node Similarity:
定义节点相似性的方式有很多,如:

  1. 基于邻接的,即相连的节点即为相似节点
  2. 根据节点之间的跳数定义相似性
  3. random walk方法(接下来介绍的)

不同的节点相似性定义方案适用于不同的应用场景,如node2vec算法在节点分类任务上具有较好的性能,而基于跳数的方法在关系检测的任务上表现较好。而Random walk方法通常更有效。
总而言之,必须选择与应用相匹配的节点相似性定义。

Random Walk Approaches to Node Embedding

Material based on:
Perozzi et al. 2014. DeepWalk: Online Learning of Social Representations. KDD.
Grover et al. 2016. Node2vec: Scalable Feature Learning for Networks. KDD.

Random Walk:
给定一个图和一个起点,随机选择它的一个邻居并移动到该邻居;然后再随机选择一个当前位置的邻居继续移动,以此类推。以这种方式选择的点的随机序列就是当前图的一个Random walk。

Random-walk Embeddings:
定义\mathbf{z}_u^{\top} \mathbf{z}_v \approx uv在当前网络的一个random walk中同时出现的概率。

Process:

  1. 使用某些random walk策略R估计从节点u开始的一个random walk序列中经过节点v的概率P_R(v|u)
  2. 优化节点的嵌入式表示以对这些random walk统计信息进行编码

Why Random Walks?

  1. Expressivity: 对节点相似性的定义灵活且随机,结合了本地及高阶的邻居信息;
  2. Efficiency: 训练时无需考虑所有节点对,仅需考虑random walks中同时出现的节点对。

Feature Learning as Optimation:
给定图G=(V, E),期望可以学到一种映射z:u \rightarrow \mathbb{R}^d,其目标可以一个对数似然函数表示(其中N_R(u)表示根据策略R得到的节点u的邻居):
max_z \sum_{u \in V} log P(N_R(u)|z_u)
即给定节点u,我们期望学到可以预测其邻域N_R(u)节点的特征表示。

Random Walk Optimization:

  1. 使用某种策略R(random walk的次数、长度等等)从图中的每一个节点开始进行短的定长的random walks;
  2. 对于每个节点u,收集其邻域N_R(u),注意其邻域是可包含重复节点的,因为在random walks中可能重复访问某一节点多次;
  3. 优化目标是给定节点u,预测其邻域N_R(u),即上述对数似然函数,根据次目标优化节点的嵌入表示。

由上述最大化优化目标,可以得到以下损失函数,即优化random walk embeddings \approx 寻找embeddings \mathbf{z}_u使得损失\mathcal{L}最小:
\mathcal{L} = \sum_{u \in V} \sum_{v \in N_R(u)} -log(P(v|\mathbf{z}_u)) \\ P(v|\mathbf{z}_u) = \frac{exp(\mathbf{z}_u^{\top} \mathbf{z}_v)}{\sum_{n \in V} exp(\mathbf{z}_u^{\top} \mathbf{z}_n)}

Why Softmax: 期望\sum_i exp(x_i) \approx max_i exp(x_i),使起始节点和其邻域中的节点相似度相较于其它节点尽可能得高

对该损失函数的详细解释如下图所示:
[图片上传失败...(image-11090d-1590747776172)]

对损失计算的时间复杂度的优化:
但关于该损失函数的计算需要O(|V|^2)的时间复杂度,这主要来源于softmax的操作,可对其进行近似计算,解决方法是Negative Sampling
log(\frac{exp(\mathbf{z}_u^{\top} \mathbf{z}_v)}{\sum_{n \in V} exp(\mathbf{z}_u^{\top} \mathbf{z}_n)}) \approx log(\sigma (\mathbf{z}_u^{\top} \mathbf{z}_v)) - \sum_{i=1}^k log(\sigma (\mathbf{z}_u^{\top} \mathbf{z}_{n_i})), n_i \sim P_V

在该方案中,并非对所有节点执行归一化操作,而是随机选择k个负样本进行归一化,且用到了sigmoid。其中P_V是所有节点的随机分布;关于负样本的个数k的说明如下:

  1. k越大,估计就越可靠;
  2. k越大,关于负例的bias就越高;
  3. 通常k取5到20。

Random Walk的策略R:
最简单的想法是:只需从每个节点开始进行固定长度的、无偏的random walk。
该想法的问题在于相似性的概念过于受限,对于那些距离较远但是相似的节点则无法检测到。

Node2Vec

Key observation:扩展节点u的邻域概念可以带来node embeddings的更丰富的信息,因此开发额外的第二种顺序的random walk策略R来生成节点u的邻域N_R(u)

Biased Walks
idea:使用灵活的、有偏的(biased)random walk可以实现关于网络本地视图及全局视图的权衡,如通过BFS获取局部微观视图(Local microscopic view),通过DFS获取全局宏观视图(Global macroscopic view)

这样的策略需要指定两个参数,同时记录到达当前结点的上一节点:

  • 返回参数p:返回上一个节点的概率
  • In-out参数q:指明是DFS(outwards)还是BFS(inwards),可以理解为BFS和DFS的比例。例如:若节点进行BFS的概率为1,返回上一节点的概率为1/p,则进行DFS的概率为1/q(这里的概率是指未做归一化的概率)。这样的策略称为Biased Random Walks

Node2Vec Algorithm:

  1. 计算random walk的概率;
  2. 模拟random walk的过程;
  3. 使用随机梯度下降优化node2vec的目标。

How to use Embedding z_i

  • 聚类检测
  • 节点分类:基于z_i预测节点i的类别f(z_i)
  • 关系预测:基于f(z_i,z_j)预测边(i, j),其中f(z_i,z_j)可针对两个向量的连接、平均、乘积、或差别进行计算。

Embedding Entire Graphs

  1. 对图中的节点进行embedding,然后求和或取平均得到图的嵌入式表示。Duvenaud et al., 2016使用了该方案基于分子的图结构对其进行分类。
    z_G = \sum_{v \in G} z_v
  2. 引入一个虚拟节点来表示(子)图,图中的其它节点均与该节点相连,然后在其上执行标准的图嵌入算法。由Li et al., 2016提出作为一种子图嵌入式表示的通用方法。
  3. Anonymous Walk Embeddings
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354