半监督节点分类:标签传播和信息传递
1 导论
1.1 求解方法对比
半监督节点分类:用已知标签节点预测未知标签的节点
求解思路:
- 节点特征工程
- 节点表示学习:端到端的表示学习
- 标签传播(消息传递)
- 图神经网络
1.2 直推式学习与归纳式学习
直推式学习:未知标签的节点可能被用于训练,但过程中没有新节点加入,不需要对新节点进行泛化,不需要进行新节点的预测;
与之相反的是inductive learning,归纳式学习:对新节点立刻进行预测,可以泛化到新节点
1.3 半监督节点分类任务
已知:
部分节点有标签,0和1;部分节点无标签
每个节点有一个属性特征向量
预测:无标签节点属于1和0的概率
许多应用可以基于这个模型
1.4 方法
1.4.1 两种关联
a. Homophily
具有相似属性特征的节点更可能相连且有相同的类别
举例:高中生社团,节点颜色表示对不同的领域感兴趣
b. Influence
社交关系会影响节点类别
1.4.2 五种方法
如何利用两种关联?:KNN最近邻分类
前两种属于集体分类
三属于一种后处理技术
四属于消息传递
五属于一种自监督学习
2 label propagation
仅使用网络连接特征
2.1 初始化
已知标签为1和0,未知标签设为0.5
2.2 迭代计算
第一次迭代:
周围节点标签求平均值
第四次迭代
2.3 小结
周围节点标签求平均值,迭代计算
缺点:
不保证收敛
仅用到网络连接信息,没有用到节点属性信息
3 iterative classification
3.1 步骤
训练两个分类器:
base classifier:Φ1仅使用节点属性特征
relational classifier:Φ2使用节点属性特征和网络连接特征
Zv是包含邻域节点类别信息的向量,n维向量代表了这个节点的连接信息
可以自定义:
- 周围不同节点类别的个数(绿色节点有多少,红色节点有多少)
- 附近数量最多的类别是什么(附近绿色节点多还是红色节点多)
- 有多少个不同的类别
标注好的训练集
使用已标注数据训练两个分类器
没有标签的训练集
用训练好的Φ1预测位置类别的Yv(类别向量)
用Yv计算Zv
用Φ2预测所有节点类别
重复:重新计算Zv,重新预测Yv
3.2 举例:
第一步:用已有标签节点的属性特征向量训练一个Φ1
第二步:构造Zv,训练Φ2
第三步:先用Φ1在未知节点上进行一次预测,得到标签Y
第四步迭代:
更新Zv
更新Yv
第五步:停止迭代
3.3 小结
基本假设:马尔科夫假设
我的类别取决于与我相连的节点的类别,与我邻居的邻居没有关系
4 correct&smooth
不属于collective classification,属于一种后处理技术
第一步:在已经有标签的节点上训练模型
第二步:用训练好的模型对所有的节点进行预测,预测结果并不是非0即1的,而是概率值
第三步:后处理correct&smooth
correct:让模型对不确定程度进行扩散
smooth:让最终的预测结果变得平滑
4.1correct:
只计算有标注的节点
得到error矩阵,
di表示第i个节点的度
归一化扩散矩阵有以下好处:
特征值在(-1,1)之间,不会发三
当特征值为1时,特征向量为D^0.5*1(这里的1是一个向量)
迭代计算误差矩阵
α越大表示更愿意相信传播来的error,否则更相信原来的error
s是超参数
4.2 smooth
对置信度(最终的预测结果)进行传播
4.3 小结
5 Loopy belief propagation
节点之间可以传消息
这一时刻的状态仅取决于上一时刻的状态
当所有的节点达成共识时,就得到了最终的预测结果
5.1 消息传递
报数
树状图
从下级逐级向上级汇报
5.2 定义
5.3 步骤
5.4 问题
当图中有环时?
消息不再是独立的
5.5 总结
易编程和并行
不保证收敛
需要训练参数优化得到
6 masked label prediction
bert:语言模型,把中间词扣掉,让周围词去预测
随机把一些节点的label设为0,尝试用已有信息的label,猜出这些节点的label;进而构造自监督模型,迭代优化