【CS224W课程笔记】Message Parsing and Node Classification

Outline

Main question today:给定一个部分节点有标签的网络,如何为网络中的剩余节点分配标签?

Collective classification:为网络中所有节点分配标签的思想,直觉上是利用网络中存在的关联(Correlations)。本次课程将讨论以下三类方法:

  • Relation Classification
  • Iterative Classification
  • Belief Propagation

有三种类型的依赖将导致关联:

  • Homophily(Individual Characteristics -> Social Connections): 个体与相似的其他个体交往和联系的趋势。这种相似性可以体现在年龄、性别、组织角色等多种属性上。例如:喜欢相同音乐类型的人更可能建立社交联系(在音乐会上见面,在音乐论坛上互动等)
  • Infuence (Social Connections -> Individual Characteristics): 社会关联将影响到个人特性。
  • Confounding (Environment -> Individual Characteristics; Environment -> Social Connections)

Classification with Network Data

Problem:给定一个图和少数带有标签的节点,如何利用网络中观察到的关联帮助预测其它节点的标签?

Motivation:相似的节点往往离得很近或直接相连。

  • Guilt-by-association:如果我与一个带有标签X的节点相连,我的标签很有可能也是X。
  • 网络中对象O的类别标签可能取决于:O的特性、O邻居的标签、O邻居的特性。

Fomulation:令表示一个个节点上的的带权邻接矩阵。令表示标签向量,其中1表示正类节点,-1表示负类节点,0表示无标签节点。目标是预测哪些无标签节点可能是正类的。

Collective Classification

Markov Assumption: 节点的标签取决于其邻居的标签

Collective Classification涉及三个步骤:

  1. Local Classifier: (bootstrap step)分配初始标签。根据节点属性或特性预测标准,这是一个标准的分类任务,不涉及网络信息。
  2. Relational Classifier: 捕捉节点之间的相关性。学习一个基于邻居标签属性对各节点进行分类的分类器,这里用到了网络的信息。
  3. Collective Inference:通过网络传播相关性。将relational classification迭代的用于每个节点,直到相邻标签之间的非一致性最小化。网络的结构将严重影响最终的预测结果。

注意:如今所介绍的所有分类方法都是Approximate Inference,Exact Inference对于任意网络而言都是一个NP-hard问题,只有当网络满足特定条件时,才可以进行Exact Inference。此外接下来介绍的所有算法都是迭代算法。

Probabilistic Relational Classifier

Basic Idea:类别的可能性是其邻居类别可能性的加权平均。对于有标签节点,使用groud-truth的标签进行初始化;对于无标签节点,对进行统一初始化。以任意顺序更新节点,直到收敛或达到最大次数。

对每个节点和标签重复进行如下计算(其中表示节点i的邻居数,表示从到的边的权重):

该方法的困难在于无法保证收敛以及模型无法用到节点的特征信息。

Iterative classification

Main idea:克服Relational Classifier未使用节点属性的缺点,基于节点的属性和邻居节点的标签对节点进行分类。为每个节点创建一个平面向量,然后使用训练一个分类器;每个节点具有不同数量的邻居,因此可以使用以下方法进行汇总(aggregate):计数(有多少邻居节点拥有某种特性)、模式、比例、均值、存在等。

Basic architechture:

  1. Bootstrap phase:将每个节点转换为平面向量,使用local classifier ,如SVM、kNN计算的最佳值;
  2. Iteration phase:对每个节点重复以下过程:根据迭代结果更新节点向量,重新计算,迭代该过程直到类标签稳定或达到最大迭代次数。

Belief Propagation

Belief Propagation是一种用于回答图形模型中的条件概率查询的动态编程方法,邻居变量在其迭代过程中彼此传递信息,在达成共识后,将计算最终的belief。

Message Passing
Task: 计算图中的节点数
Condition: 每一个节点只能与邻居节点传递信息
Solution: 每一个节点接收其邻居节点传递的信息,更新自己的信息然后继续传递

Message Passing

注意:在一个有环图中该过程无法正确运作。

Loopy BP algorithm
What message will i send to j?取决于i从它的邻居k接收到的信息,每一个邻居将会传递给i对i状态的belief信息。

Notion:

  • Label-label potential matrix : 节点和其邻居之间的依赖关系。等于给定节点处于状态下的邻居节点,其状态为的可能性。
  • Prior belief : 节点处于状态下的概率。
  • 表示对处于状态的估计。
  • 是所有的状态集合。

Process:

  1. 初始化所有的消息为1;
  2. 对每个结点重复如下操作:
  3. 收敛后,令表示处于状态的belief,其计算如下:

Advantages:

  • 很容易进行编程和并行计算
  • 容易泛化到其它图模型

Challenges:
不能保证收敛,尤其是在有很多闭环的情况下

你可能感兴趣的:(【CS224W课程笔记】Message Parsing and Node Classification)