GCN python 实现2:利用GCN进行节点分类
参考:https://www.baidu.com/link?url=5oU-O_YQV8DdSTtRkgzsQ_vuwjJHyUOxqeAKhq98ZA5XtvKW8PNQwXgSlr5GpESRqhsMinCYR8O7nVh2zY125a&wd=&eqid=a487a7b100077ce3000000065d9eae75
图是信息的最佳表示方式。在一个图中,有通过边(谓之“关系”)连接起来的节点(谓之“实体”)。想一想,你的Facebook社交网络是个什么样子的:以你为中心连接上你的朋友们,他们又以不同的方式相互联系。在表格中表示这些信息的方式是有些随意(或者不好的),社交关系并不是像一排排规矩的摆在桌子上的东西,而是:

预测节点属性
现在我们得到了Facebook社交网络的最佳表示,那么如何去更好的预测你朋友们的喜好呢?
我们这里使用图卷积神经网络(Graph convolutional networks),GCN是一种新的深度学习架构,能够利用包含在数据以及数据之间关系中的信息。
来看一个例子,假设我们想要了解你的朋友们谁倾向于共和党派谁倾向于民主党派,我们将在Facebook 社交网络图上应用GCN,并将预测的“政治立场”这个节点属性分配给图中缺少标签的节点。
GCN网络有两个输入:首先需要列出你每个朋友的特征,包括母校、邮政编码、所属团体等等信息,很显然,这些信息是学习一个人政治倾向的特征;
第二,GCN采用图结构的精简形式,这帮助GCN学习朋友的友谊是如何影响他们的政治立场的。 按理说,仅这两条信息就足以预测一个人的政治倾向了。传统的深度学习模型甚至不需要应用实体之间的关系来进行预测,它们只利用个人属性。但是通过在GCN中结合数据的属性以及结构,可以使预测更加强大。

GCN的输入:Jane和很多共和党人有联系,但是她也有自己的一些属性,比如教育、地理位置,很多Facebook团体成员,那她到底是共和党派还是民主党派呢?
GCN的应用十分简单。它们是分层操作的,可以将它们堆叠在一起,达到想要的深度。在每一层的内部,有三个特点:
第一 标准化的图结构; 第二 标准化的图结构乘以节点属性; 第三 我们将非线性函数应用于节点属性和权重;

一个图卷积层,敏锐的读者会注意到,由于核函数的平稳性,这是一个近似卷积算子
在应用中,额外添加dropout层,激活函数采用Leaky ReLU,损失函数采用softmax loss,如下图所示:

一个使用中间dropout层的双层图卷积神经网络,我发现leaky ReLU函数能够有助于缓解梯度消失。
我们来看一部分使用Tensorflow实现GCN层的代码,了解一下该网络设计的简单性。

一个基于TensorFlow实现的图卷积神经网络,使用ADAM优化器,softmax交叉熵损失函数。绿色部分是图卷积层的实现,注意它的简洁。
应用 上面的例子太简单,无法证明该问题的复杂性。下面,我们看一个真正的Facebook网络,不同政治倾向的颜色不同。

一个基于Facebook数据的网络,不同的颜色代表每个人不同的政治倾向,图卷积预测了10%的这些人的政治立场,其余的作为训练序列的一部分输入。 记住,GCN不在乎每个节点的输入数据,或者节点之间的关系是什么样的。我们可以任意使用数据,比如企业之间的金融交易数据和企业自身的财务状况信息,便可以使用GCN来告诉我们哪些交易具有欺诈性。建立一个企业的超级节点图,我们可以利用GCN找出洗钱团伙。

一个交易的超级节点图。这些组织中有没有洗钱圈?利用GCN找出违法分子。
我们可以将GCN应用到银行客户信用风险评估,根据客户的特征以及风险阈值找出哪些客户是不能审批贷款的。还可以利用历史银行数据。
利用数据的自然结构提高了机器学习的预测能力,因此认识到图的普遍性是非常重要的。每个企业每天都在处理很多数据,而这些数据非常适合用图结构来表示。在任何信息连接的情况下都会出现图相关的问题,任何有图的地方,背后都有惊人的价值等待被挖掘。
GCN python 实现2:利用GCN进行节点分类的更多相关文章
- python多线程不能利用多核cpu,但有时候多线程确实比单线程快。
python 为什么不能利用多核 CPU GIL 其实是因为在 python中有一个 GIL( Global Interpreter Lock),中文为:全局解释器锁. 1.最开始时候设计GIL是 ...
- Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建;学习Python语言,利用Python语言来写测试用例。加油!!!
Python+selenium测试环境成功搭建,简单控制浏览器(firefox)接下来,继续学习其他浏览器上的测试环境搭建:学习Python语言,利用Python语言来写测试用例.加油!!!
- 简述HTML DOM及其节点分类
在JavaScript中,document这个对象大家一定很熟悉,哪怕是刚刚开始学习的新人,也会很快接触到这个对象.而document对象不仅仅是一个普通的JavaScript内置对象,它还是一个巨大 ...
- 【cs224w】Lecture 6 - 消息传递 及 节点分类
目录 Node Classification Probabilistic Relational Classifier Iterative Classification Belief Propagati ...
- python 数据类型 之 利用 dict 模仿 switch语句功能
Python本身并不提供Switch的语法功能,为了能够解决类似switch分支需求的问题,我们可以使用字典代替实现. 解决思路: 利用字典取值的get方法的容错性,处理switch语句中的defau ...
- 【python爬虫】利用selenium和Chrome浏览器进行自动化网页搜索与浏览
功能简介:利用利用selenium和Chrome浏览器,让其自动打开百度页面,并设置为每页显示50条,接着在百度的搜索框中输入selenium,进行查询.然后再打开的页面中选中“Selenium - ...
- 【python数据分析】利用Anaconda在window上搭建数据分析环境
由于在进行数据分析过程中,需要安装一些第三方库,导致python总会报一些错误,现将通过利用Anaconda搭建数据分析环境,已测可用. 1.到官网上下载python:https://www.pyth ...
- [python基础]xml_rpc远程调控supervisor节点进程
supervisor提供的两种管理方式,supervisorctl和web其实都是通过xml_rpc来实现的. xml_rpc其实就是本地可以去调用远端的函数方法,在python中只需要引入xmlrp ...
- 企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件
前天小编带大家利用Python网络爬虫采集了天气网的实时信息,今天小编带大家更进一步,将采集到的天气信息直接发送到邮箱,带大家一起嗨~~拓展来说,这个功能放在企业级角度来看,只要我们拥有客户的邮箱,之 ...
随机推荐
- [MySQL] mysql地理位置服务geometry字段类型
这个字段类型是mysql5.7新增的功能,主要就是解决坐标存储和距离计算的常见问题 创建表:CREATE TABLE `service` ( `id` bigint(20) NOT NULL AUTO ...
- windows防火墙失效
在某些情况下,我们希望阻止某款软件联网,比如防止软件更新. 通常来说使用windows自带的防火墙是可以阻止软件联网的,但在我的电脑上它却失效了,无法起到阻止软件联网的作用. 我的操作系统: OS 名 ...
- CentOS离线安装Rust
条件所限,无法在线连接外网,或是下载慢,容易中断时,可以采用. 一,下载离线安装包 https://forge.rust-lang.org/other-installation-methods.htm ...
- 25.Java基础_继承
继承的格式(Java类) Java中继承的注意事项 继承的好处与弊端 继承中成员变量的访问特点(对public形式的变量来说) 继承中成员函数的访问特点 this和super: 继承中构造方法的访问特 ...
- mybatis与hibernate的区别持久层对比【面试题】
Mybatis技术特点: 好处: 通过直接编写SQL语句,可以直接对SQL进行性能的优化: 学习门槛低,学习成本低.只要有SQL基础,就可以学习mybatis,而且很容易上手: 由于直接编写SQL语句 ...
- C++ STL multiset
multiset的例子,允许集合内的元素是重复的 #include <iostream> #include <set> using namespace std; int mai ...
- 剑指Offer-8.跳台阶(C++/Java)
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 实际上就是斐波那契数列的一个应用,青蛙跳上n级台阶的跳法数等于跳 ...
- MySQL学习笔记5——编码
MySQL学习笔记5之编码 编码 1.查看MySQL数据库编码 *SHOW VARIABLES LIK 'char%'; 2.编码解释 *character_set_client:MySQL使用该编码 ...
- RPM 包
RPM 包 RPM 包是由 Red Hat 公司所开发的包管理系统 RPM 经过编译,无法看到源码,但是安装速度会快很多 RPM 包管理 RPM 包命名规则 包名 - 版本号 - 发布版本号 . 软件 ...
- 正睿暑期培训day4考试
链接 A 求出来到每座山的距离后,就可以计算出每只猫等待的时间与出发时间的关系. 如果出发时间为\(x\),求出来只猫的等待时间.这里用\(b_i\)表示第i只猫的等待时间.然后我们将这些时间排序.问 ...