Task
全文都在解决这一个Task: Given a network with labels on some nodes, how do we assign labels to all other nodes in the network?
本文涉及的是Probabilistic framework,不涉及深度学习。
用到的信息
Classification label of a node vvv in network may depend on
- Features of node vvv
- Labels of the nodes in vvv’s neighborhood
- Features of the nodes in vvv’s neighborhood
semi-supervised
给定了graph中部分node的label,要求预测剩余node的label
训练数据中只有一部分有lable就是半监督
task的应用
- Document classification
- Part of speech tagging
- Link prediction
- Optical character recognition
- Image/3D data segmentation
- Entity resolution in sensor networks
- Spam and fraud detection
Markov Assumption
为了简化问题,假设一个node的状态只和与node直接相连的node的状态有关
Collective classification
这里讲Collective classification的意思是本文涉及的具体方法都属于Collective classification,都使用类似的步骤。
Simultaneous classification of interlinked nodes using correlations. 意思是同时给所有node分类就是Collective classification
做Collective classification需要如下 3 steps:
-
Local Classifier
作用:Used for initial label assignment
涉及的信息:only node attributes/features and Does not use network information
方法:Standard classification task
-
Relational Classifier
涉及的信息:用到了node和其 neighbors的label和feature
作用:用 correlations between nodes 给node重新分类
方法:也是一个分类器
-
Collective Inference
做的事:Apply relational classifier to each node iteratively,Propagate the correlation (将从node correlation中获取的信息一个接一个节点的传到到整个网络中)
Iterate until the inconsistency between neighboring labels is minimized
方法
方法的Intuition
Correlation: nearby nodes have the same color (belonging to the same class)
下面是node之间有Correlation的原因:
-
Homophily: The tendency of individuals to associate and bond with similar others,
例如:物以类聚,人以群分;Researchers who focus on the same research area are more likely to establish a connection;People with the same interest are more closely connected due to homophily
-
Influence: Social connections can influence the individual characteristics of a person.
例如:I recommend my musical preferences to my friends, until one of them grows to like my same favorite genres!
这个intuition体现在graph上就是:Similar nodes are typically close together or directly connected in the network。如果两个node直接连接或者距离近,那它们更可能相似。
Relational classifiers
这是一个非常简单的方法,只利用了node之间的邻接关系
Idea: Class probability YvY_vYv of node vvv is a weighted average of class probabilities of its neighbors
步骤:
-
For labeled nodes vvv , initialize label YvY_vYv with ground-truth label Yv∗Y_v^*Yv∗
-
For unlabeled nodes, initialize Yv=0.5Y_v = 0.5Yv=0.5
-
Update all nodes in a random order until convergence or until maximum number of iterations is reached
update node label的方法如下:
P(Yv=c)=∑(v,u)∈EAv,uP(Yu=c)∑(v,u)∈EAv,uP(Y_v = c)=\frac{\sum\limits_{(v,u) \in E} A_{v,u} P(Y_u = c)}{\sum\limits_{(v,u) \in E} A_{v,u}}P(Yv=c)=(v,u)∈E∑Av,u(v,u)∈E∑Av,uP(Yu=c)其中(v,u)∈E(v,u) \in E(v,u)∈E表示节点vvv的所有边(v,u)(v,u)(v,u),AAA为邻接矩阵,Av,uA_{v,u}Av,u可以是表示连接或不连接的1和0,也可以是边的权重
这一步要多次迭代graph的所有节点,一次迭代是给所有unlabeled node计算概率。
问题:权重从哪来?
Convergence is not guaranteed
实现
pytorch geometric 里一次循环的公式为:
Y′=α⋅D−12AD−12Y+(1−α)YY' = \alpha \cdot D^{-\frac{1}{2}} A D^{-\frac{1}{2}} Y + (1-\alpha) YY′=α⋅D−21AD−21Y+(1−α)Y
其中D−12D^{-\frac{1}{2}}D−21
Iterative classification
利用了node neighbor’s label,以及 node feature/attributes
两个classifier
-
ϕ1(fv)\phi_1 (f_v)ϕ1(fv) = Predict node label based on node feature vector fvf_vfv
作用是给unlabeled node指定一个相对靠谱的初始label,仅仅使用一次
-
ϕ2(fv,zv)\phi_2 (f_v, z_v)ϕ2(fv,zv) = Predict label based on node feature vector fvf_vfv and summary zvz_vzv of labels of vvv’s neighbors.
zvz_vzv 是 node vvv 邻居的 label 的 summary,定义zvz_vzv的方法可以有很多,核心是要对neighbor 的label 做summary,例如如下几种方法
- Histogram(直方图) of the number (or fraction) of each label in NvN_vNv (用一个向量表示NvN_vNv中各个label的数量)
- Most common label in NvN_vNv
这个分类器的作用和Relational classifiers里的计算邻接节点label的概率是一样的,区别是还利用了node feature
每一次迭代都要用到
方法
- 用labeled node 数据 train classifier ϕ1(fv)\phi_1 (f_v)ϕ1(fv)
- 用ϕ1(fv)\phi_1 (f_v)ϕ1(fv)预测unlabeled node 的 YvY_vYv
- 计算所有节点的zvz_vzv
包括labeled node和unlabeled node,labeled和unlabeled node的neighbor都即可能是labeled,也可能是unlabeled - 用labeled node的 fvf_vfv和zvz_vzv训练分类器ϕ2(fv,zv)\phi_2 (f_v, z_v)ϕ2(fv,zv)
- 用ϕ2(fv,zv)\phi_2 (f_v, z_v)ϕ2(fv,zv)预测unlabeled node 的 YvY_vYv
- 更新所有节点的zvz_vzv
- 重复4、5、6直到 class labels stabilize or max number of iterations is reached
Convergence is not guaranteed
如果随着迭代不收敛,则定义一个最多的迭代次数,到了就停,迭代次数一般不是很大,可以选择选择10、50、100等
Loopy belief propagation
这个方法课程里只是粗略的讲解了,很多细节没讲清楚。这个方式是概率图模型,不涉及深度学习,有可能是一种比较早的方法,现在可能会有更好的方法,所以暂时先不看更多的细节,有需要了再回来看。
Loopy表示可能会应用在有环的图上
方法是用来计算graph的节点属于某个类别的概率
计算
belief
当迭代完成后可以按如下方法计算各个node属于各个label的belief
Beliefb(Yi)=ϕb(Yi)∏k∈Nbmk→b(Yi)Belief_b(Y_i)=\phi_b(Y_i)\prod\limits_{k\in N_b}m_{k \rightarrow b}(Y_i)Beliefb(Yi)=ϕb(Yi)k∈Nb∏mk→b(Yi)
Beliefb(Yi)Belief_b(Y_i)Beliefb(Yi)表示node b属于label YiY_iYi的belief
Prior belief ϕb(Yi)\phi_b(Y_i)ϕb(Yi): 先验的belief,值的大小表示节点bbb属于label YiY_iYi的可能性,不是概率,值大小正比于概率
mk→b(Yi)m_{k \rightarrow b}(Y_i)mk→b(Yi): node k 传递给 node b的message,message代表了node k 对 node b属于label YiY_iYi 可能性的估计,可能性越大则值越大
- neighbor对节点属于某个label的estimate越大,则belief越大
- node的对某个label的prior belief越大,则belief 越大
message
计算node a 传递给 node b的message时,对所有Yj∈LY_j \in \mathcal{L}Yj∈L (L\mathcal{L}L is the set of all classes/labels),计算下式:
ma→b(Yj)=∑Yi∈Lψ(Yi,Yj)ϕa(Yi)∏k∈Na\bmk→a(Yi)m_{a \rightarrow b}(Y_j)=\sum\limits_{Y_i \in \mathcal{L}}\psi(Y_i, Y_j) \phi_a(Y_i) \prod\limits_{k\in N_a \backslash b}m_{k \rightarrow a}(Y_i)ma→b(Yj)=Yi∈L∑ψ(Yi,Yj)ϕa(Yi)k∈Na\b∏mk→a(Yi)
Label-label potential matrix ψ\psiψ:
- 一个size为(label_num, label_num)的矩阵,用来代表两个节点之间的label的条件概率,
- ψ(Yi,Yj)\psi(Y_i, Y_j)ψ(Yi,Yj)大小代表了node的neighbor 的label是YiY_iYi的情况下node的label是YjY_jYj的可能性,
- ψ(Yi,Yj)\psi(Y_i, Y_j)ψ(Yi,Yj)不是概率,但是值正比于概率,条件概率越大,值越大
- ψ\psiψ和具体的节点无关,表示的是两个label之间的条件概率
- ψ\psiψ对角线上的元素会很大,因为对角线元素表示两个node属于同一个类别,即邻居具有某个类别,自己也更有可能属于这个类别
k∈Na\bk\in N_a \backslash bk∈Na\b表示除去b以外的node a的neighbor
理解:
- ψ(Yi,Yj)\psi(Y_i, Y_j)ψ(Yi,Yj)、ϕa(Yi)\phi_a(Y_i)ϕa(Yi)、∏k∈Namk→a(Yi)\prod\limits_{k\in N_a}m_{k \rightarrow a}(Y_i)k∈Na∏mk→a(Yi)三部分都不是概率,但是和概率成正比,
- ∏k∈Namk→a(Yi)\prod\limits_{k\in N_a}m_{k \rightarrow a}(Y_i)k∈Na∏mk→a(Yi)和ϕa(Yi)\phi_a(Y_i)ϕa(Yi)越大,node a属于label YiY_iYi的可能性越大
- ψ(Yi,Yj)\psi(Y_i, Y_j)ψ(Yi,Yj)越大node b属于label YjY_jYj可能性越大
- 三项合起来就是node a属于label YiY_iYi的可能性以及由此带来的node b属于label YjY_jYj可能性
- ∑Yi∈L\sum\limits_{Y_i \in \mathcal{L}}Yi∈L∑表示遍历node a属于所有可能label的情况,并将所有情况导致的node b属于label YjY_jYj可能性求和,得到node a对于node b属于label YjY_jYj的影响
- 一个node传给另一个node的message包括label num个值,表示对接收node属于各个label的belief 的estimate
计算方式
- Initialize all messages to 1
- Repeat for each node
计算完成后即可得到Beliefb(Yi)Belief_b(Y_i)Beliefb(Yi)
- Start from arbitrary nodes
- Follow the edges to update the neighboring nodes
问题:
- 计算方式不够清楚,message怎么初始化为1?一个node给另一个node属于各个label的belief 的estimate都为1?
- 先验概率怎么得到?Label-label potential matrix怎么得到?
- 要迭代超过1遍吗?
- node feature是怎么利用的?
- node之间的边是怎么利用的?
其他
不保证收敛,尤其是有环时
有环时因为会不停的循环,所以环内会增强,belief 可能不会收敛
但是可以应用在有环的情况
面对实际的复杂问题时,Loopy BP 是一个很好的启发式方法,因为实际的数据会有很多树型,环形较少,所以影响较小
不保证收敛,所以trick是运行少量的step
问题
- i传给j的信息为什么可以估计j属于什么类别?
- 需要迭代吗?还是只要计算一轮?
- 需要找一个明确的例子推导一遍来理解
- 试着比较一下baysian belief network和本方法的异同
- 思考一下知识网络里有的知识点掌握了,有的没有,是不是可以用这个方法?
问题
- 如何定义convergence?
node的值在2次迭代中不变或者变化小于阈值,或者node的label不再变化
文章探讨了在给定部分节点标签的网络中,如何通过局部和关系分类器,结合邻域信息与特征,进行集体分类来逐步为所有节点分配标签。方法包括初始局部分类、利用邻接关系的修正和迭代的集体推理,重点关注Homophily和Influence在节点分类中的作用。
817

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



