【斯坦福大学公开课CS224W——图机器学习】五、消息传递和节点分类

文章目录

  • 【斯坦福大学公开课CS224W——图机器学习】五、消息传递和节点分类
    • 1. Message Passing and Node Classification
      • 1.1 collective classification概述
    • 2. Relational Classification / Probabilistic Relational Classifier
    • 3. Iterative Classification
    • 4. Loopy Belief Propagation
      • 4.1 message passing
      • 4.2 Loopy BP Algorithm

我们的任务是: 已知图中一部分节点的标签,用图中节点之间的关系来将标签分配到所有节点上。属于半监督学习任务。
本节课我们学习message passing方法来完成这一任务。对某一节点的标签进行预测,需要其本身特征、邻居的标签和特征。
message passing的假设是图中相似的节点之间会存在链接,也就是相邻节点有标签相同的倾向。这种现象可以用homophily(相似节点倾向于聚集)、influence(关系会影响节点行为)、confounding(环境影响行为和关系)来解释。

collective classification给所有节点同时预测标签的概率分布,基于马尔科夫假设(某一点标签仅取决于其邻居的标签)。
local classifier(用节点特征预测标签)→ relational classifier(用邻居标签 和/或 特征,预测节点标签)→ collective inference(持续迭代)

本节课讲如下三种collective classification的实现技术:

  • relational classification:用邻居标签概率的加权平均值来代表节点标签概率,循环迭代求解
  • iterative classification:在训练集上训练用 (节点特征) 和 (节点特征,邻居标签summary z zz) 两种自变量预测标签的分类器 ϕ 1和 ϕ 2 ,在测试集上用 ϕ 1 赋予初始标签,循环迭代求解 z ⇌ 用 ϕ 2 重新预测标签
  • belief propagation:在边上传递节点对邻居的标签概率的置信度(belief)的message/estimate,迭代计算边上的message,最终得到节点的belief。有环时可能出现问题。

1. Message Passing and Node Classification

本章重要问题:给定网络中部分节点的标签,如何用它们来分配整个网络中节点的标签?(举例:已知网络中有一些诈骗网页,有一些可信网页,如何找到其他诈骗和可信的网页节点?)
训练数据中一部分有标签,剩下的没标签,这种就是半监督学习1
对这个问题的一种解决方式:node embeddings2

本章我们介绍一个解决上述问题的方法3:message passing
使用message passing基于“网络中存在关系correlations”这一直觉,亦即相似节点间存在链接。
message passing是通过链接传递节点的信息,感觉上会比较类似于 PageRank4 将节点的vote通过链接传递到下一节点,但是在这里我们更新的不再是重要性的分数,而是对节点标签预测的概率。
核心概念 collective classification:同时将标签分配到网络中的所有节点上。

本章将讲述三种实现技术:

  • relational classification
  • iterative classification
  • belief propagation

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

导致correlation的两种解释:
homophily(同质性,趋同性,同类相吸原则):个体特征影响社交连接
influence:社交连接影响个体特征

homophily:相似节点会倾向于交流、关联(物以类聚,人以群分)
在网络研究中得到了大量观察
举例:同领域的研究者更容易建立联系,因为他们参加相同的会议、学术演讲……等活动

influence:社交链接会影响个人行为。
举例:用户将喜欢的音乐推荐给朋友。

解决分类问题的逻辑:
我们已知相似节点会在网络中更加靠近,或者直接相连。
因此根据关联推定guilt-by-association:如果我与具有标签X的节点相连,那么我也很可能具有标签X(基于马尔科夫假设6)
举例:互联网中的恶意/善意网页:恶意网页往往会互相关联,以增加曝光,使其看起来更可靠,并在搜索引擎中提高排名。

预测节点 v vv 的标签需要:

  • v 的特征
  • v 邻居的标签
  • v 邻居的特征

1.1 collective classification概述

直觉:使用网络中的关系同时对相连节点进行分类
概率框架propabilistic framework
马尔科夫假设:节点 v 的标签 Y_v取决于其邻居N_v的标签:P ( Y v ) = P ( Y v ∣ N v )

collective classification分成三步:

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

2. Relational Classification / Probabilistic Relational Classifier

3. Iterative Classification

relational classifiers没有使用节点特征信息,所以我们使用新方法iterative classification。
iterative classification主思路:基于节点特征及邻居节点标签对节点进行分类

iterative classifier的结构

  • 第一步:基于节点特征建立分类器
    在训练集上训练如下分类器(可以用线性分类器、神经网络等算法):

    1. ϕ 1 ( f v ) 基于 f_v预测Y_v
    2. ϕ 2 ( f v , z v ) 基于 f_v和 z_v(v 邻居标签的summary)预测Y_v
  • 第二步:迭代至收敛

    在测试集上,用 ϕ 1预测标签,根据 ϕ 1计算出的标签计算z_v并用 ϕ 2 预测标签对每个节点重复迭代计算z_v、用 ϕ 2 预测标签这个过程,直至收敛或到达最大迭代次数(10, 50, 100……这样,不能太多10)
    注意:模型不一定能收敛

4. Loopy Belief Propagation

名字叫loopy是因为loopy BP方法会应用在有很多环的情况下。

belief propagation是一种动态规划方法,用于回答图中的概率问题(比如节点属于某类的概率)。
邻居节点之间迭代传递信息pass message(如传递相信对方属于某一类的概率),直至达成共识(大家都这么相信),计算最终置信度(也有翻译为信念的)belief。
参考6:问题中节点的状态并不取决于节点本身的belief,而取决于邻居节点的belief。

4.1 message passing

算法

  1. 定义节点顺序(生成一条路径)
  2. 基于节点顺序生成边方向,从而决定message passing的顺序
  3. 按节点顺序,计算其对下一节点的信息(至今数到的节点数),将该信息传递到下一节点

4.2 Loopy BP Algorithm

从 i 传递给 j 的信息,取决于 i 从邻居处接收的信息。每个邻居给 i 对其状态的置信度的信息。

【斯坦福大学公开课CS224W——图机器学习】五、消息传递和节点分类相关推荐

  1. 【斯坦福大学公开课CS224W——图机器学习】三、节点和图嵌入

    [斯坦福大学公开课CS224W--图机器学习]三.节点和图嵌入 文章目录 [斯坦福大学公开课CS224W--图机器学习]三.节点和图嵌入 1. 节点嵌入 1.1 编码器与解码器 1.2 节点嵌入的游走 ...

  2. 斯坦福大学公开课 :机器学习课程

    共20讲 在网易公开课上有视频全集,难能可贵的是配带中英文字幕 斯坦福大学公开课 :机器学习课程 在JerryLead的blog中可以下到他的学习笔记以及讲义原稿. 感谢Andrew Ng, 感谢Je ...

  3. 斯坦福大学公开课:iPhone开发教程2010年冬

    2019独角兽企业重金招聘Python工程师标准>>> 斯坦福大学公开课:iPhone开发教程2010年冬 http://v.163.com/special/opencourse/i ...

  4. 斯坦福大学公开课:iOS 8开发

    斯坦福大学公开课:iOS 8开发: http://open.163.com/special/opencourse/ios8.html

  5. SCI论文如何写--斯坦福大学公开课-Writing in the Sciences

    SCI论文如何写--斯坦福大学公开课-Writing in the Sciences 链接:https://pan.baidu.com/s/1McDHMLqhs-KbpKRDNRNQTQ 提取码:12 ...

  6. iPhone应用开发视频教程-斯坦福大学公开课

    以下是一套由美国斯坦福大学(Stanford University)在2013年初推出的一套iPhone应用程序开发视频教程,详细讲解了iPhone4/iPhone4s/iPhone5/iPad等iO ...

  7. 斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)...

    绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制 ...

  8. 斯坦福大学公开课机器学习:Neural Networks,representation: non-linear hypotheses(为什么需要做非线性分类器)...

    如上图所示,如果用逻辑回归来解决这个问题,首先需要构造一个包含很多非线性项的逻辑回归函数g(x).这里g仍是s型函数(即 ).我们能让函数包含很多像这的多项式,当多项式足够多时,那么你也许能够得到可以 ...

  9. 斯坦福大学公开课 :机器学习课程(Andrew Ng)——1、整体看一看

    ============================================================================[课程综述]================== ...

最新文章

  1. 【 Verilog HDL 】正确的变量访问思路
  2. (HDU)1091 --A+B for Input-Output Practice (III)(输入输出练习(III))
  3. STM32开发 -- Gerrit的详细使用
  4. angular 图片引入_推荐一个 angular 图像加载插件
  5. java 应用程序无法运行_关于解决浏览器无法运行小应用程序问题
  6. python微博热点_用 Python 监控知乎和微博的热门话题
  7. [Android系列—] 3. 启动另外的活动(Activity)
  8. vue 父链和子组件索引_解决Vue2.x父组件与子组件之间的双向绑定问题
  9. c++求小数的位数_C语言求第二小数
  10. Javascirpt 排障(一)
  11. 求PSASP大神指教一下安装问题
  12. gsp计算机系统系统操作培训,gsp计算机系统操作PPT.ppt
  13. Python实现二叉树的前中后序遍历
  14. STM32F107各种接口程序合集工程文件
  15. java数字转读音_java 数字转汉语读音的程序
  16. Pentaho安装与配置
  17. Executive functions (执行功能)
  18. 高考自主招生招生基本问题,你需要吗?
  19. TRANSFORMER-TRANSDUCER:END-TO-END SPEECH RECOGNITION WITH SELF-ATTENTION
  20. 音频3A测试 NS降噪测试

热门文章

  1. IIS反向代理 设置IIS跨域访问
  2. 植物大战僵尸中文版修改器源码
  3. WebCruiser
  4. 2020 09-22 (步步高 一面)
  5. html2canvas截屏、绘制透明图片 .png
  6. 用python测试网速脚本
  7. linux调频指令-cpufreq介绍
  8. 校长必读:培训机构招生宝典!总有一招适合你!
  9. 儿童智能手表行业安全问题报告
  10. Altium Designer——铺铜