热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

神经网络模型中有什么样的算子_浅析图卷积神经网络

今天想和大家分享的是图卷积神经网络。随着人工智能发展,很多人都听说过机器学习、深度学习、卷积神经网络这些概念。但图卷积神经网络,却不多人提起。那什么是图

今天想和大家分享的是图卷积神经网络。 随着人工智能发展,很多人都听说过机器学习、深度学习、卷积神经网络这些概念。 但图卷积神经网络,却不多人提起。 那什么是图卷积神经网络呢? 简单的来说就是其研究的对象是图数据(Graph),研究的模型是卷积神经网络。

为什么有图卷积神经网络

自2012年以来,深度学习在计算机视觉以及自然语言处理两个领域取得了巨大的成功。 和传统方法相比,它好在哪里呢?

假设有一张图,要做分类,传统方法需要手动提取一些特征,比如纹理啊,颜色啊,或者一些更高级的特征。 然后再把这些特征放到像随机森林等分类器,给到一个输出标签,告诉它是哪个类别。

而深度学习是输入一张图,经过神经网络,直接输出一个标签。 特征提取和分类一步到位,避免了手工提取特征或者人工规则,从原始数据中自动化地去提取特征,是一种端到端(end-to-end)的学习。 相较于传统的方法,深度学习能够学习到更高效的特征与模式。

1c7ef0c1505cd682d9441e4c3887fd27.png

卷积神经网络很好,但是它研究的对象还是限制在Euclidean domains的数据。 什么是Euclidean data? Euclidean data最显著的特征就是有规则的空间结构,比如图片是规则的正方形栅格,比如语音是规则的一维序列。 而这些数据结构能够用一维、二维的矩阵表示,卷积神经网络处理起来很高效。

0121f4275f8ca2d7403a635ba3795ed4.png

但是,我们的现实生活中有很多数据并不具备规则的空间结构,称为Non Euclidean data。 比如推荐系统、电子交易、计算几何、脑信号、分子结构等抽象出的图谱。 这些图谱结构每个节点连接都不尽相同,有的节点有三个连接,有的节点有两个连接,是不规则的数据结构。

下面结合两个典型的业务场景来说明什么是图:

075eeb34b701ba4eafad44d4763d442d.png

社交网络非常适合用图数据来表达

上面的图谱刻画社交网络中各个节点以及它们之间的关系,用户A、用户B、帖子都是节点,用户与用户之间的关系是关注,用户与帖子之间的关系可能是发布或者转发。 通过这样一个图谱,可以分析用户对什么人、什么事感兴趣,进一步实现推荐机制。

fa5dae98795f57bbbe144097dab79073.png

电商场景中的图谱

在电商中,我们首先可以想到的关键节点就是,用户、交易和商品。用户关联的节点比如会有注册地址、收获地址等;交易会关联到商品、收货地址、交易IP等、商品会关联类目等。这些节点之间的关系,比如用户除了可以通过交易购买商品,还可以对商品进行评分。这样的图数据我们可以用来做两件事情,一是推荐、二是反欺诈。

通过上面两个例子,可以很明显的感受到,图有两个基本的特性:

一是每个节点都有自己的特征信息。 比如针对上图,我们建立一个风控规则,要看这个用户的注册地址、IP地址、交易的收货地址是否一样,如果这些特征信息不匹配,那么系统就会判定这个用户就存在一定的欺诈风险。这是对图节点特征信息的应用。

二是图谱中的每个节点还具有结构信息。 如果某段时间某个IP节点连接的交易节点非常多,也就是说从某个IP节点延伸出来的边非常多,那么风控系统会判定这个IP地址存在风险。这是对图节点结构信息的应用。

总的来说,在图数据里面,我们要同时考虑到节点的特征信息以及结构信息,如果靠手工规则来提取,必将失去很多隐蔽和复杂的模式,那么有没有一种方法能自动化地同时学到图的特征信息与结构信息呢?——图卷积神经网络

什么是图卷积神经网络

图卷积神经网络(Graph Convolutional Network)是一种能对图数据进行深度学习的方法。

b50f2aa027da3bd68006253020ef25ad.png

图卷积算子:

4e42285b360fa2592b15497fe173b694.png

上面给出的是图卷积算子的计算公式,设中心节点为i;

7972e194561c21f318676e592e186bd6.png

如何理解图卷积算法? 我们看动图分三步去理解(注意不同颜色代表不同的权重):

第一步: 发射(send) 每一个节点将自身的特征信息经过变换后发送给邻居节点。 这一步是在对节点的特征信息进行抽取变换。

2d5f38d89aefc844d389e92e98f5fc3c.gif

第二步: 接收(receive) 每个节点将邻居节点的特征信息聚集起来。 这一步是在对节点的局部结构信息进行融合。

1c1ca54361f18d161315c2857e9113f6.gif

第三步: 变换(transform) 把前面的信息聚集之后做非线性变换,增加模型的表达能力。

60356ad5992956fd43e65507c2a9a7bb.gif

图卷积神经网络具有卷积神经网络的以下性质:

1、局部参数共享,算子是适用于每个节点(圆圈代表算子),处处共享。

2、感受域正比于层数,最开始的时候,每个节点包含了直接邻居的信息,再计算第二层时就能把邻居的邻居的信息包含进来,这样参与运算的信息就更多更充分。 层数越多,感受域就更广,参与运算的信息就更多。

88f59642ac6264c2206d2b2e633a7cbd.gif

我们来看GCN这个模型框架,输入是一张图,经过一层一层计算变换,最后输出一张图。

cfab081dfee29bc8941781afbc6415f6.png

GCN模型同样具备深度学习的三种性质:

1、层级结构(特征一层一层抽取,一层比一层更抽象,更高级);

2、非线性变换 (增加模型的表达能力);

3、端对端训练(不需要再去定义任何规则,只需要给图的节点一个标记,让模型自己学习,融合特征信息和结构信息。 )

GCN四个特征:

1、GCN 是对卷积神经网络在 graph domain 上的自然推广。

2、它能同时对节点特征信息与结构信 息进行端对端学习,是目前对图数据学习任务的最佳选择。

3、图卷积适用性极广,适用于任意拓扑结构的节点与图。

4、在节点分类与边预测等任务上,在公开数据集上效果要远远优于其他方法。

我们怎么用图卷积神经网络

下面分享一个我们在实际应用场景中的实验:

0dc0143a7b4887b059b31e6e78cea2fe.png

实验输入是一个验证数据构成的图数据,节点是验证事件以及事件相关的属性节点。 如IP,DeviceID,UA等节点。 (我们总计用了30天的验证数据,每两个小时的数据构成一张图,共360张图。 )

实验输出是对事件节点进行人机分类,正常或者异常。

实验细节

网络结构:

GCN(128)->GCN(64)->GCN(64)->Linear(2)

训练: Adam优化器, lr=0.001

参照基准: 以只能学习特征信息的GBDT做为基准, grid_search 搜索超参数,GBDT是目前最流行的浅层分类器。

我们用第一天的数据做训练, 持续30天预测结果 如下:

a6418060c48f459ea51a326ba3cb9398.png

GCN模型的准确率衰减比较小,而GBDT的衰减很严重。 可见,GCN模型的人机判别效果要好,鲁棒性好。

516924f0a308701729d9e1f787c13c17.png

7d评估效果可视化,(用第一天的数据训练模型,第七天观察其预测效果及最后一层输出的tsne可视化结果)。 上图可以看出,GCN在第七天时对样本判别的分界面仍很明显,但是GBDT对样本判别的分界面已经很模糊类了。 综上,GCN学到的结构信息在人机判别中不仅效果很好,也具有更好的鲁棒性。



推荐阅读
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 每日前端实战:148# 视频教程展示纯 CSS 实现按钮两侧滑入装饰元素的悬停效果
    通过点击页面右侧的“预览”按钮,您可以直接在当前页面查看效果,或点击链接进入全屏预览模式。该视频教程展示了如何使用纯 CSS 实现按钮两侧滑入装饰元素的悬停效果。视频内容具有互动性,观众可以实时调整代码并观察变化。访问以下链接体验完整效果:https://codepen.io/comehope/pen/yRyOZr。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 基于OpenCV的图像拼接技术实践与示例代码解析
    图像拼接技术在全景摄影中具有广泛应用,如手机全景拍摄功能,通过将多张照片根据其关联信息合成为一张完整图像。本文详细探讨了使用Python和OpenCV库实现图像拼接的具体方法,并提供了示例代码解析,帮助读者深入理解该技术的实现过程。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
author-avatar
Cornell和Janey的BabyPeter_580
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有