GNN学习 Node Classification
GNN学习 Node Classification
任务:已知图中一部分节点的标签,如何将分配标签到其它节点上
Node Classification
给一部分节点的标签,预测没有标签的节点的标签,这是一个半监督节点分类任务
message passing
相似的节点中存在链接
集体分类(collective classification):一起给网络中的所有节点分配标签
有三种实现技术
- Relational classification
- Iterative classification
- Belief classification
Correlations Exists in Networks
相似的行为在网络中会互相关联
Correlation:相近的节点有相同的分类
导致关联性的主要以来类型
- 同质性(homophily):个体特征影响社交连接
- 影响(influence)社交连接影响个体特征
Homophily
相似节点会倾向于交流和关联
例子:同领域的研究者更容易建立联系
Influence
社交链接会影响个人行为
例子:用户将喜欢的音乐推荐给朋友
Classification with Network Data
相似的节点会在网络中更加靠近,或者直接相连
Guilt-by-association:如果我与具有X的标签相连,那么我很可能也具有标签X
预测节点v的标签要
- v的特征
- v邻居的标签
- v邻居的特征
Collective Classification
是一个概率框架
根据马尔科夫假设:节点v的标签取决于其邻居的标签,也就是
Collective Classification有三个步骤:
- 分配节点初始标签(Local Classifier)
- 捕获关系(Relational Classifier)
- 传播关系(Collective Inference)
Local Classifier
- 基于节点的属性预测标签
- 标准分类任务
- 不使用网络结构信息
Relational Classifier
- 基于邻居节点的标签和特征来预测节点标签
- 使用了网络结构信息
Collective Inference
- 在每个节点上迭代的应用relational classifier
- 迭代至邻居间标签不一致最小化
- 网络结构影响最终预测结果
Relational Classification and Iterative Classification
Relational classifiers
基本思想:节点v的类概率是其邻居类概率的加权平均值
对应有标签节点,就初始化为其真实标签
对于无标签节点。就初始化为0.5
以随机顺序更新所有无标签节点,直至收敛或达到最大迭代次数
对于每个节点v和标签c,我们采用公式
来对其进行更新
其中是边v到u的权重
表示节点v有标签c的概率
当然,对于最开始已经有标签的节点就不进行更新,只更新最开始没有标签,需要我们去预测的节点
当有节点连续两次迭代不发生变化,我们认为这个节点已经收敛了,之后我们就不再更新这个节点的值了
缺点:
- 可能不会收敛
- 无法利用节点的特征信息
Iterative classification
主要思想:基于节点特征已经邻居节点的特征来进行分类
方法:训练两个分类器
- 基于节点的特征向量来对标签进行预测
- 基于节点的特征向量和邻居节点的标签summary 来进行预测
Computing the Summary
是一个向量,它可以是
- 邻居标签的直方图
- 邻居标签中出现次数最多的标签
- 邻居标签的类数
Iterative classifier的结构
阶段1:基于节点特征建立分类器
- 在训练集上训练上面提到的两个分类器
阶段2:迭代至收敛
- 在测试集上,利用先来预测标签,然后利用前面预测的标签计算出并且预测最终的标签
- 对每个节点v重复下面的步骤
-
- 基于所有与v相连的节点的标签来计算
- 基于计算出的来更新
- 迭代至收敛或达到最大迭代次数
- 最后模型不一定能够收敛
Loopy belief propogation
belief propogation是一种动态规划的方法,用于回答图中的概率问题
邻居节点之间迭代的传递信息
当达成共识时,计算最终的置信度
Loopy BP Algorithm
从i传递给j的信息取决于:
- i从邻居接受到的信息
- 每个邻居给i对其状态的置信度的信息
一些数学符号:
- Label-Label potential matrix :表示节点和它邻居之间的依赖,如果j的邻居节点i属于类,那么与j属于类的概率成比例
- Prior belif :与节点i属于类的概率成比例
- 是i对j属于类的信息或者说是估计
- 是所有类或者说是标签的集合
具体算法如下:
示意图如下:
收敛后
是节点i属于类的置信度
不过以上都是无环的情况
当存在有环的情况时,不同子图传递的信息直接就不再独立了
并且因为有环,会存在信息增强的问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)