Py学习  »  机器学习算法

《图神经网络---基础、前沿与应用》--- 当社交网络遇见深度学习

数学人生 • 1 年前 • 148 次点击  

社交网络与深度学习的结合


在我们的日常生活中,每个人都处于一个充满社交网络的世界里。虽然世界上的任意两个人之间大概率是不认识的,但是通过一系列的信件,网络社交工具,却能够把这两个人紧密地联系到一起。


在数学和社会学领域有一个猜想,叫做六度分割理论(Six Degrees of Separation),或者被称为小世界理论。该猜想指出:你和任意一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过 6 个中间人进行信息传递,你就能够认识任意一个陌生人。


该理论诞生的背景来自于 1960 年,美国心理学家米尔格兰姆设计了一个连锁信件的实验。他把一些信件随机地发送给美国各个城市的居民。信中写了波士顿一个股票经纪人的名字,并要求这些居民把信件寄给可能认识这位股票经纪人的其他居民。最后,大部分信件都寄给了这位股票经纪人,每封信平均转手 6.2 次就可以抵达。


在计算机领域,可以用图(graph)指一种抽象结构,用来表示实体和它们之间的关系。实体叫做图的顶点(vertex),而实体之间的关系叫做图的边(edge),一个图是由顶点和相应的边所构成的。在日常的生活中,能够形成图的场景是非常多的。


 社交网络:人与人之间的QQ,微信,手机好友关系;

 购物网络:人与物品之间的购买,浏览,下单关系;

 生物领域:蛋白质网络可以用来表示蛋白质之间的互相作用;

 金融领域:人与人之间的资金转账记录,可以形成一个交易图。


同样地,在人工智能迅速发展的今天,深度学习正在成为人类实现人工智能的重要工具之一。在大量数据和超强的计算资源推动下,深度学习所带来的强大表征能力让其在各个领域都发挥着重要的作用。深度学习的各个模型在计算机视觉,语音识别,自然语言处理都有卓越的表现,并且在学术界的各个竞赛的排行榜上,在公司里面的诸多业务中,深度学习的应用场景越来越多。那么,在社交网络快速发展的今天,深度学习与社交网络的结合就成为了大势所趋。

图神经网络简介和基础

早在 2005 年,图神经网络就已经出现在学术界中。一般情况下,图神经网络是通过深度学习方法将图上的节点和边映射到一个低维的向量空间中,获得图上的一个表示。这就是所谓的图嵌入和图表示学习。


而图上的任务包括以下类型:

1. 顶点的任务:包括顶点的分类,回归,聚类;

2. 边上的任务:包括边的分类,链路预测;

3. 图上的任务:包括图的分类,图的生成,图的匹配。


从 GitHub 的开源工具 DGL(Deep Graph Library)中也可以看到,图挖掘的主要场景就是上述的任务。


图神经网络的应用领域十分广泛,包括常见的以下领域

1. 计算机视觉;

2. 自然语言处理;

3. 物联网;

4. 化学,生物,医疗;

5. 知识图谱;

6. 推荐系统;

7. 金融欺诈。

正如我们刚刚所提到的,图表征学习(图表示学习)的目的是将图中的顶点嵌入低维的表征并且有效地保留图的结构信息。表征学习其实在其他领域也有很多应用,包括用于图像处理的表征学习,用于语音识别的表征学习,用于自然语言处理的表征学习,用于网络分析的表征学习。为了将图神经网络这个有用的工具介绍清楚,图神经网络的专家学者们一起撰写了一本关于图神经网络的教材《图神经网络---基础、前沿与应用》,是由人民邮电出版社所出版的。


本书分成四个部分:

1. 第一部分:引言;

2. 第二部分:基础;

3. 第三部分:前沿;

4. 第四部分:广泛和新兴的应用。


在引言部分,作者们介绍了图神经网络的入门知识,包括表征学习和图神经网络的初步知识。在第二部分,作者们介绍了图神经网络的基础知识,一般框架,以及多种多样的图神经网络结构。


图神经网络的基本思想其实就是通过结合邻居节点的表征和节点自身的表征来更新和迭代节点的表征。从节点的初始表征开始,每一层都有两个重要的函数,分别是:

 Aggregate 函数:目的是从每个节点的邻居节点处汇聚信息;

 Combine 函数:目的是通过结合邻居节点的聚合信息和当前节点的表征来更新节点的表征。


在第二章,作者们也向大家展示了图神经网络的常见类型,包括图卷积网络(GCN),图注意力网络(GAT),消息传递神经网络(MPNN,Message Passing Neural Network),连续图神经网络(CGNN,Continuous Graph Neural Network)等。


《图神经网络---基础、前沿与应用》这本书中,作者们为了让讲解更加生动,读者们更加容易理解图神经网络的知识,在每一章节的关键之处都做了图像,用于向读者们解释图神经网络的嵌入,建模原理。


在该书的第二部分,作者们向大家介绍了图神经网络的可扩展性。在互联网和物联网蓬勃发展的今天,节点和边的数量依然是迅速扩大的。为了降低所要消耗的内存空间,以及更新节点的规模的量级,就必须要使用各种各样的方法来提升训练模型的效率。作者们介绍了三种主要的抽样范式来解决这类问题,分别是:节点级抽样,层级抽样,图级抽样。基于不同的抽样方法,有着完全不一样的模型。

在节点级抽样方面,比较著名的是 GraphSage 模型,它是基于 GCN 的一种扩展方式。这里 GraphSage 采用了小批量训练策略以减少训练阶段的计算成本;除此之外,还采用了固定大小的领域抽样策略。简单来说是对每一层都抽出一个固定大小的邻居节点集合进行计算,而不是对所有的另据集合进行计算。因为在现实的社交网络中,每个节点的邻居个数都是非常大的,一旦出现了超级节点或者许多较大规模的节点,那么更新模型的速度就会减慢。为了解决现实应用场景中的这些问题,GraphSage 模型在此刻就发挥了重大的作用。

而在层级抽样中,FastGCN 是一个经典的模型;在图级抽样中,Cluster-GCN 也发挥着其重要的作用。在不同的应用场景上,我们可以基于现有的问题来选择最合适的模型,通过对模型的比较和效果评估,是有希望选择出最优的模型应用在具体的数据集上。

图神经网络的应用

在当今世界海量数据的前提下,图神经网络也将发挥着越来越重要的作用,图神经网络不仅可以直接应用在社交网络上,还可以应用在推荐系统,计算机视觉,自然语言处理等诸多领域。以自然语言处理领域为例,有一个很重要的场景就是热点分析,通过对热点的分析和跟进,获得一个故事森林的概念,让许多不了解这个方向的人可以迅速地通过故事森林来了解整个时间的发展经过。

故事森林的系统架构正如上图所示,包括四个部分:

1. 第一部分:数据准备;

2. 第二部分:关键词图;

3. 第三部分:聚类事件;

4. 第四部分:生成故事。

在整个技术框架中,故事森林使用了关键词共现图和文档关系图,这两个图就是构建故事森林的核心技术。在有了这些故事以及相应的事件之后,就可以对这些故事和事件进行分类,从而灵活地应用在推荐系统上。

除了自然语言处理之外,知识图谱的场景则是图神经网络的用武之地。在生物医学领域,有很多已经公开的数据,很多数据包括成千上万甚至千万量级的实体,通过对这些实体和关系的研究,我们可以得到关于生物医学的有趣知识。而在知识图谱的推理过程中,通常会使用予以匹配模型,平移距离模型,或者图神经网络模型。

在图神经网络的知识图谱推理技术中,有多种模型可以选择,包括图卷积网络(GCN)和图注意力网络(GAT)。而且在药物开发的场景中,也会用到许多关于机器学习的技术框架。

当前,不少互联网公司开始使用图神经网络来进行黑产的对抗工作,而基于 GNN 的异常检测算法也是层出不穷,包括恶意账户检测,提现账户检测,恶意程序检测,恶意链接检测,欺诈检测等,都可以应用图神经网络来解决问题。而解决的思路也是使用图嵌入方法,节点分类等。通过对部分标签的使用,对现实中的神经网络的构造,就有办法获取到与平台大部分用户所不同的异常用户。然后对这些异常用户进行人工标注或者策略打击,都可以有效地提升社交平台的健康程度。


最后,图神经网络在现实生活中的应用是非常多的,如果想要详细了解图神经网络知识,不妨阅读一下图神经网络---基础、前沿与应用,共同欣赏深度学习与社交网络结合在一起所得到的知识火花。



相关文章推荐:

1. 值得阅读的数学类书籍

2. 《大数据安全治理与规范》--- 工业界如何搭建反欺诈体系

3. 《人工智能:现代方法(第4版)》--- 飞鸟与青蛙

4. 《动手学深度学习(PyTorch版)》---新手该如何快速进入人工智能


欢迎大家关注公众账号数学人生

(长按图片,识别二维码即可添加关注)


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/152823
 
148 次点击