【cs224w】Lecture 6 - 消息传递 及 节点分类

转自本人:https://blog.csdn.net/New2World/article/details/105410276node

前面几课时讲的主要是图的性质、一些基本结构和针对结构的算法。而从如今开始就要涉及到具体的 learning 任务了。这一讲要解决的主要问题是:给定一个网络以及网络里一部分节点的标签,咱们如何为其它节点分类。(semi-supervised)
咱们使用的模型叫 collective classification model,其中有三种近似推断的方法,它们都是迭代型算法。算法

  • relational classification
  • iterative classification
  • belief propagation

exact inference vs. approximate inference
例如在一个图里每一个节点都是离散的随机变量,而全部节点的类别的联合分布为 \(p\)。那么咱们要获得某个节点的类别的分布就是求 \(p\) 在该节点上的边沿分布。而边沿分布须要累加其它全部节点,这个计算量爆炸,所以须要近似推断。
近似推断其实就是缩小传播范围的过程,与其考虑全部节点,咱们只关心目标节点的邻接点。这里涉及到信息传递,就是相似 GNN 里的 aggregation,后面会说到。网络

Node Classification

给节点分类,咱们的第一想法是节点间经过边的链接存在着相关性,那咱们直接经过相关性对节点进行分类。关联性主要有三种app

correlation

  • homophily:“物以类聚,人以群分”,有相同性质的节点间可能存在更密切的联系
  • influence:“近朱者赤,近墨者黑”,一个个体有可能会受其它个体的影响而具备某种性质
  • confounding:大环境可能会对个体性质和个体间的联系产生影响

那么将这种关联性的特色应用在节点分类里,类似的节点间通常会有直接的联系,互相链接的点颇有可能属于同一类别,这就是 guilt-by-association (关联推断)。而节点类别的判断能够基于节点的特征以及邻接节点的类别和特征。
因为作的是近似推断,因此这里须要作出马尔可夫假设,即节点 \(i\) 的类别 \(Y_i\) 只取决于它的邻接节点 \(N_i\)。所以有 \(P(Y_i|i)=P(Y_i|N_i)\)ide

Collective classification 大致分为三步:oop

  1. local classifier:就像通常的分类任务同样,只依赖节点本身的特征信息而不牵扯任何网络信息
  2. relational classifier:考虑邻接点的标签和特征
  3. collective inference:迭代地将 relational classifier 应用在每一个节点上,至关于拓展了节点的“感知野”

Probabilistic Relational Classifier

基本思路很简单,每一个节点类别的几率是其邻接节点的加权平均。
首先将有标签的点的类别初始化为标签,没有标签的点初始化为随机。而后按随机顺序进行邻接节点类别加权,直到整个网络收敛或达到最大迭代次数。但这样作有两个问题,第一不保证收敛;其次这样的模型并无用到节点的特征。学习

\[P(Y_i=c)=\frac1{\sum_{(i,j)\in E}W_{ij}}\sum_{(i,j)\in E}W_{ij}P(Y_j=c) \]

Iterative Classification

其实就是加上节点特征后的迭代过程。(1) Bootstrap phase,经过训练集训练两个分类器,一个针对节点自己的特征,一个针对节点和网络链接特征 (数据来自其它网络),好比 SVM 什么的。而后对每一个节点提取特征并用第一个分类器来初始化标签。由于分类器并无考虑网络信息,所以还须要 (2) Iteration phase 对网络中的关联进行迭代,即便用第二个分类器每一个节点根据其邻接点更新特征和标签,直到收敛或达到最大迭代次数。然而这个方法依然没法保证收敛。
slide 里给了一个用 word-bag 做为特征的网页分类的例子,感兴趣能够去看看。网站


接下来是一个 iterative classification 的应用,对 fake reviewer/review 进行分类。它将 reviewer 和网页做为二分图处理,虽然也能够加上 reviewer 间的关系,但那样作会破坏这个方法的两个优势:(1) 迭代次数有上界;(2) 时间复杂度和边的条数成线性。
论文里给 reviewer,review 和网页都定义了 quality score。而后大体按照上面讲的方法对这些值进行迭代更新。ui

  • reviewer: \(F(u)=\frac{\sum\limits_{(u,p)\in Out(u)}R(u,p)}{|Out(u)|}\)
  • review: \(R(u,p)=\frac1{\gamma_1+\gamma_2}(\gamma_1F(u)+\gamma_2(1-\frac{|score(u,p)-G(p)|}2))\)
  • 网页: \(G(p)=\frac{\sum\limits_{(u,p)\in In(p)}R(u,p)\cdot score(u,p)}{|In(p)|}\)

有学生问到一个问题:若是一我的对全部网页都给 good review,那他算不算 fake?
Michele 的回答是这样作只会让这我的的评分趋近 \(0.5\) 而不会像那种给好网页评负分的真正的 fake reviewer 那样得分趋近 \(0\)
另外一个有意思的问题是,若是某我的口味独特,给某些奇怪的网站评了高分,会不会被认为是 fake?
我很好奇口味有多独特,奇怪的网页指什么。但实际上世界很大,网络规模也很大,有独特癖好的不止你一个,所以你不孤单。总有那么一群人给这些奇怪的网页评高分,相对来讲也就不会被分为 fake。不过这个问题也得看实际状况。spa

Belief Propagation

信念传播是一个动态规划的过程,主要用于解决图模型中的条件几率问题。不过在看它究竟是什么东西前咱们先了解下信息传递是怎么回事。想象一群高度近视的人不戴眼镜在操场上排了个纵队,他们只能看到前面和后面一我的。这种状况下如何让他们知道本身在第几个?很简单,第一我的告诉第二我的“你前面有一我的(就是第一我的本身)”,第二我的告诉第三我的“你前面俩人”,依次类推全部人都知道本身第几了。同理,若是从最后一我的开始往前,那么就能知道队伍的总人数了(正数和倒数第几都有了)。这个道理用到网络里其实差很少,每一个节点能知道本身的大概位置。可是一旦遇到环,这个方法就没完了……这个咱们待会儿再说。该介绍信念传播的算法了:Loopy Belief Propagation

belief propagation

在上图的简单网络结构中,节点 \(i\) 发给 \(j\) 的信息包含了节点 \(k\) 发给 \(i\) 的信息。所以先作以下定义

  • label-label potential matrix \(\psi(Y_i,Y_j)\):表示节点 \(i\) 是类别 \(Y_i\) 的条件下,其邻接节点 \(j\) 为类别 \(Y_j\) 的几率
  • prior belief \(\phi_i(Y_i)\):表示节点 \(i\) 为类别 \(Y_i\) 的先验几率
  • \(m_{i\rightarrow j}(Y_j)\):节点 \(i\) 在多大程度上认为其邻接节点 \(j\) 是类别 \(Y_j\) (不知道这里能不能算做是一个几率)

\[m_{i\rightarrow j}(Y_j)=\alpha\sum\limits_{Y_i\in L}\psi(Y_i,Y_j)\phi_i(Y_i)\prod_{k\in N_i\text{\textbackslash}j}m_{k\rightarrow i}(Y_i) \]

这个式子应该很好理解:节点 \(i\)\(Y_i\) 时,有个先验 \(\phi\),同时它会收到节点 \(k\) 的信息 \(m_{k\rightarrow i}(Y_i)\),而后根据相似转移矩阵的 \(\psi\) 获得节点 \(j\)。这里的 \(\alpha\) 相似于学习率。
老规矩,随机顺序迭代,直到收敛,而后就获得了节点 \(i\) 是类别 \(Y_i\) 的信念。

\[b_i(Y_i)=\alpha\phi_i(Y_i)\prod_{j\in N_i}m_{j\rightarrow i}(Y_i) \]


好,信念传播的过程和模型介绍了,须要来解决环的问题了。在传播过程当中,环的存在可能会致使信念的重复累加,但这样对结果不会形成太大影响,由于它无非就是让节点更加确信结果而已。其最主要的问题是可能会致使本来相关的信息被做为独立信息来处理,以下图中圈出的两个信息。这两条信息实际上是同一条,但由于信念传播是局部算法,所以它会将这两条信息做为相互独立的两条信息来对待。那咱们怎么解决呢?我没理解错的话 Michele 的意思是不用处理……由于这个例子很极端,而实际中环的影响很弱,好比有些环很~长,而大多数环存在至少一种弱相关性[1]

cycle

图里那两个 T4F1 应该是 T4F2

核心算法已经讲了,后面还举了个栗子,本身看 slide 吧。


  1. 这里的 weak correlation 不太明白是什么意思。弱相关能解环?仍是说这里的 correlation 就是 link 的意思,而后 weak 表明传播的几率在这里很小? ↩︎

相关文章
相关标签/搜索