5-消息传递在节点分类使用

本文探讨了在节点分类问题中,如何利用Message Passing方法结合局部分类器、关系分类器和集体推理来预测网络节点标签,特别是在半监督学习背景下,通过RelationalClassifiers和IterativeClassification的迭代过程来提高预测精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图机器学习(消息传递在节点分类使用)

1. 前言

1. 概述

给定网络中部分节点的标签,如何用它们来分配整个网络中节点的标签?已知网络中有一些诈骗网页,有一些可信网页,如何找到其他诈骗和可信的网页节点?

在第三、四章中针对节点分类打标签问题的一种解决方式是node embeddings,本章将采用Message Passing的方式来解决上述的问题

具体步骤如下:

  1. 局部分类器:用于初始标注分配‎

    1. 根据节点的自身属性性对其类型进行标注
    2. 标准的分类任务
    3. 不使用任何的网络信息
  2. 关系分类器:捕获节点之间的相关性

    1. 学习分类器基于其邻居的标签或属性来标记一个节点
    2. 这里使用了网络信息的地方
  3. 集体推理:通过网络结构来传播相关性

    1. 以迭代方式‎‎将关系分类器应用于每个节点
    2. 一直迭代,直到相邻标签之间的不一致最小化‎
    3. 网络结构会影响到最终的预测结果
2. message passing

根据上面的基本概念的了解,message passing的核心思想就是collective classification(集体分类)

1. 网络中存在关系correlations:相似的行为在网络中会互相关联。correlation:相近的节点会具有相同标签。

请添加图片描述

2. 网络中存在关联的解释
  1. homophily:个人影响网络,相似节点会倾向于交流、关联(物以类聚,人以群分)在网络研究中得到了大量观察。

    举例:同领域的研究者更容易建立联系,因为他们参加相同的会议、学术演讲……等活动

  2. influence:网络影响个人,社交链接会影响个人行为。

​ 举例:用户将喜欢的音乐推荐给朋友。

  1. confounding:节点的影响是多维度的

​ 举例:环境影响我们的很多维度,说什么语言、听什么歌、有什么政治倾向等

请添加图片描述

请添加图片描述

3. 半监督【1】学习

假设网络中存在homophily,根据一部分已知标签(红/绿)的节点预测剩余节点的标签如

【1】训练数据中一部分有标签,剩下的没标签,这种就是半监督学习

请添加图片描述

4. 在半监督学习下如何预测其他节点的标签的解决思路

collective classification是一个很好的解决半监督学习中问题的一个方法,具体来说collective Classification Model共有三种:

  1. Relational classifiers:分配节点的初始标签(基于节点特征建立标准分类,不使用网络结构信息)
  2. Iterative classification:捕获关系(基于邻居节点的标签 和/或 特征,建立预测节点标签的分类器模型)(应用了网络结构信息)
  3. Loopy belief propagation:传播关系(在每个节点上迭代relational classifier,直至邻居间标签的不一致最小化。网络结构影响最终预测结果)

2. Relational Classification / Probabilistic Relational Classifier

1.基本思路
  1. 节点v的类概率 Y v Y_v Yv是其邻居类概率的加权平均值。

  2. 对于有标签节点V,固定 Y v Y_v Yv为真实标签

  3. 对于无标签节点V,初始化 Y v = 0.5 Y_v=0.5 Yv=0.5

  4. 最后以随机顺序(不一定要是随机顺序,但实证上发现最好是。这个顺序会影响结果,尤其对小图而言)更新所有无标签节点,直至收敛或到达最大迭代次数

  5. 更新公式为:
    P ( Y v = C ) = 1 ∑ ( v , u ) ∈ E A ( v , u ) ∑ ( v , u ) ∈ E A ( v , u ) P ( Y u = C ) 邻接矩阵 A v , u 可以带权,分母是节点 v 的度数或者入度, P ( Y v = C ) 是节点 v 标签为 c 的概率 , 这里的公式是没有考虑边的权重的,如果有权重可以直接带入邻接矩阵 A 中即可。 P(Y_v=C)=\frac{1}{\sum_{(v,u)\in E}A_{(v,u)}}\sum_{(v,u)\in E}A_{(v,u)}P(Y_u=C)\\ 邻接矩阵A_{v,u}可以带权,分母是节点v的度数或者入度,P(Y_v=C)是节点v标签为c的概率,\\这里的公式是没有考虑边的权重的,如果有权重可以直接带入邻接矩阵A中即可。 P(Yv=C)=(v,u)EA(v,u)1(v,u)EA(v,u)P(Yu=C)邻接矩阵Av,u可以带权,分母是节点v的度数或者入度,P(Yv=C)是节点v标签为c的概率,这里的公式是没有考虑边的权重的,如果有权重可以直接带入邻接矩阵A中即可。

2. 该思路出现的问题
  1. 不一定能收敛
  2. 模型无法使用节点自身的特征信息
3. 举例
  1. 初始化:迭代顺序就是node-id的顺序。有标签节点赋原标签,无标签节点赋0.5如

请添加图片描述

  1. 第一轮迭代

    1. 随机顺序,例如从3号节点开始
    2. 跟新节点4
    3. 更新节点5
    4. 更新完所有无标签节点

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

  1. 第二轮迭代:结束后发现节点9收敛

请添加图片描述

​ (figure 77)

  1. 第三轮迭代:结束后发现节点8收敛

请添加图片描述

  1. 第四轮迭代:完成所有节点,并收敛。收敛后,预测概率>0.5的节点为1,<0.5的为0

请添加图片描述


3. Iterative Classification

1. 基本思路
1. 由于relational classifiers没有使用节点特征信息,所以我们使用新方法iterative classification。iterative classification主思路:基于节点特征及邻居节点标签对节点进行分类。
2. iterative classification的方法是训练两个分类器:
  1. ϕ 1 ( f v ) \phi_1(f_v) ϕ1(fv)基于节点的特征向量 f v f_v fv预测节点标签
  2. ϕ 2 ( f v , z v ) \phi_2(f_v,z_v) ϕ2(fvzv)基于节点特征向量 f v f_v fv和邻居节点标签summary z v z_v zv预测节点标签
3. 计算summary z v z_v zv

z v z_v zv是个向量,计算summary z v z_v zv的方法有很多,可以是邻居标签的直方图(个标签数目或比例)、邻居标签中出现次数最多的标签、邻居标签的类数

2. Iterative Classification的结构
  1. 第一步:基于节点特征建立分类器

    在训练集上训练如下分类器(可以用线性分类器、神经网络等算法):

    1. ϕ 1 ( f v ) \phi_1(f_v) ϕ1(fv)基于 f v f_v fv预测 Y v Y_v Yv(初始化)
    2. ϕ 2 ( f v , z v ) \phi_2(f_v,z_v) ϕ2(fvzv)基于节点特征向量 f v f_v fv和邻居节点 z v z_v zv预测 Y v Y_v Yv(迭代预测)
  2. 第二步:迭代至收敛

    在测试集上,用 ϕ 1 \phi_1 ϕ1预测标签,根据 ϕ 1 \phi_1 ϕ1计算出的标签计算 z v z_v zv并用 ϕ 2 \phi_2 ϕ2预测标签对每个节点重复迭代计算 z v z_v zv、用 ϕ 2 \phi_2 ϕ2预测标签这个过程直至收敛或到达最大迭代次数(模型不一定收敛)

3.举例
1.网页在算法上的定义:
  1. 输入:网页作为图数据输入
  2. 节点:网页
  3. 边:网页之间的超链接(有向边:一个页面指向另一个页面)
  4. 节点特征:网页上的描述(为了简化,我们只考虑二维二元向量)
  5. 任务:预测网页的主题
2. 训练过程
  1. 先训练一个分类器 ϕ 1 \phi_1 ϕ1,基于二维特征 f v f_v fv得到节点的标签,当让这个分类器不用很复杂(eg.线性分类器)

请添加图片描述

  1. 由于这里是有向图,用四个维度来表示 z v z_v zv(其中 I I I表示入度、O表示出度), I 0 = 1 I_0=1 I0=1表示至少有一个标签为0的页面指向当前页面,其他维度类似。因此(figure 80)的 z v z_v zv表示为(figure 81)

    请添加图片描述

  2. 具体步骤:

​ 第一步:在训练集上训练 ϕ 1 和 ϕ 2 \phi_1和\phi_2 ϕ1ϕ2(绿色圈训练的 f v f_v fv训练 ϕ 1 \phi_1 ϕ1,用红色圈的 f v , z v f_v,z_v fvzv训练 ϕ 2 \phi_2 ϕ2)(figure 82)

请添加图片描述

​ 第二步:在测试集上预测标签,因为只是使用了第一个分类器 ϕ 1 \phi_1 ϕ1,所有得到的 Y v Y_v Yv还是很不准确的

​ 第三步:循环迭代

​ 首先利用 Y v 得到 z v Y_v得到z_v Yv得到zv来更新所有的节点的 z v z_v zv

请添加图片描述

​ 其次 f v , z v f_v,z_v fvzv训练 ϕ 2 \phi_2 ϕ2,得到新的 Y v Y_v Yv

请添加图片描述

​ 最后循环直至收敛

请添加图片描述

基本步骤为
train classifier
apply classifier to test set
iterate
	update relational features z_v
    updata label Y_v    
4.总结
  1. relational calssification:更新节点归属于基于邻域的标签类的概率
  2. iterative classification : 更新节点除了领域标签还添加了节点本身的特征,让分类效果更好了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值