根据一部分带标签的节点数据,预测新节点的标签。
如预测下图中灰色节点类型:
使用message passing
的方法分类。其背后的直觉是:Correlations
exist in networks。即相似的节点是相连的。
将会讨论三种技术:
这些都是古老
的技术,但是给图神经网络
提供了很多intuition
。这相当于是GNN的前奏。
内涵就是:相近
的节点,其标签相似(可不可以理解为“物以类聚人以群分?”)。各个节点之间的行为
是相关的
为什么会有这种Correlations?这里给出了两个原因:
即
Homophily和Influence
指的是相似的人之间更容易有联系。(The tendency of individuals to associate and bond with similar others)。如两个研究ML的学者,他们容易互相认识(比如参加同一个会议);其他方面如年龄、爱好等各个方面,都表现出这个特征。一个例子:
可以看出上图大致分为四组人,每一组人有不同的爱好(如运动、艺术方面的)。
正好和上面的Homophily相反。这指的是:社会关系能影响一个人的特性(Social connections can influence the individual characteristics of a person.)如我的朋友给我推荐歌曲、游戏。
用这些intuition进行自监督学习,其引入的归纳偏好
就是,网络中存在某种程度的Homophily
。
算法是一种Probabilistic framework。
分类器包括三个步骤:
这个算法使用了这个假设:Markov Assumption:即节点的标签取决于其一阶邻居的标签:
其中三个部分作用分别是:(后面会讲具体实现,先不写了)
Local Classfier得名应该源自于,这分类器只使用了节点特征信息,而没有用到图的结构信息。因此称为Local。
方法描述:每个节点的标签是其一阶邻居的标签的概率的加权平均,然后迭代此步骤。表述如下:
其中 A v , u A_{v,u} Av,u是邻接矩阵或者权值的邻接矩阵。
这个方法有俩问题:
例子如下:
首先对灰色节点初始化概率,设置为0.5
然后按照一定的顺序迭代:
最终结果(收敛了):
本方法使用了节点的特征信息。具体过程是,训练两个分类器:
ϕ 1 ( f v ) \phi_{1}(f_{v}) ϕ1(fv)只使用节点的特征数据做分类,然后 ϕ 2 ( f v , z v ) \phi_{2}(f_{v},z_{v}) ϕ2(fv,zv)使用节点特征信息和一个summary向量 z v z_{v} zv做分类。其中 z v z_{v} zv是邻居节点的标签的汇总向量,有很多种选择,比如每一项对应着邻居节点中某个类出现的比例。下图中, z v = [ 0.66 , 0.33 ] ⊤ z_{v}=[0.66,0.33]\top zv=[0.66,0.33]⊤
第一阶段
在训练集上,训练 ϕ 1 ( f v ) \phi_{1}(f_{v}) ϕ1(fv)和 ϕ 2 ( f v , z v ) \phi_{2}(f_{v},z_{v}) ϕ2(fv,zv)
根据Web的关键词、网页间互相链接的关系,预测一个Web的主题。
最简单的方式就是根据Web 的关键词(即节点特征)直接预测。但是这就没有用上链接的关系:如果已知其互相链接的Web的主题,那么这些数据也可以用来预测本Web的主题。
问题描述:
Baseline:只用节点属性(features)的分类器。这个分类器将中间的节点分错了:本应该是绿色标签为1,预测成了0。这分类器可以想象成根据attribute的第一个分量进行预测的。
加上 z v z_{v} zv后,特征变多了:一个 z v z_{v} zv四个分量,分别是出边和入边。其中第一个分量指示是否指向的是0类节点:
准备工作做好了。现在开始训练模型:
本节和上个小节讲了两种collective classification的方法。前者只用了邻居信息没有用到节点的特征;后者利用了节点特征进行更新迭代,完成分类。
也是用于collective classification
这个还是有点难的,参考这里
例子:
有这么一个链式网络,现在要数这个网络有几个节点(通过节点之间的一次次传递消息,实现让每个节点都知道网络中有多少节点)。规定只能从右往左传递消息。
1号节点知道自己右边没有节点,因此他知道只有自己一个人,因此传递消息1送给2。然后节点2把节点1传来的数据加上1(自己)传给3,以此类推。
这个过程很有种,根据局部推全局的意思:每个节点都知道局部的一点信息,然后大家都更新一下信息,就有了全局的解。(果然是动态规划算法)
下面是树形数据进行传播: