深蓝学院-GNN课程笔记10-数据挖掘中的图神经网络

这个系列是深蓝学院图深度学习理论与实践的同步课程笔记。课程内容涉及图深度学习的基础理论与应用,本节主要介绍图神经网络在数据挖掘中的应用。

万维网数据挖掘

社交网络分析

随社交网络数据进行分析时数据挖掘的重要研究和应用领域。其中最具代表性的一类任务是判断用户的社会影响力,即研究局部的动作状态如何影响用户的行为,最常见的例子是预测用户是否会转发邻域内其它节点的微博。

我们可以使用GNN来完成这样的预测任务。对于摸个节点\(v\)选择一定距离内的节点构造出一个子图,然后在子图上进行分类来预测中心节点的行为。由于社交网络数据往往非常巨大,一般需要通过采样的方法采样出一部分子图来进行训练。在训练时可以使用DeepWalk等方法产生节点特征向量,然后结合节点自身的信息和状态作为GNN的输入。

除此之外,社交网络分析的另一种常见应用是社交表征学习,即对用户学习不同的节点表示来建模用户的偏好。

对于同一个用户我们使用同一个节点嵌入,但对于不同的主题则通过相应的映射\(b_c\)进行编码。在进行消息传播时类似于注意力机制,还需要结合不同主题对应的权重来进行更新。

推荐系统

推荐系统已经广泛应用到电子商务、流媒体和社交平台等线上服务中。以电商平台为例,推荐系统的基本思路是利用用户与商品的历史交互信息建模用户的偏好,同时假设具有相似行为的用户有相似的偏好从而为用户推荐商品。协同滤波就是基于这样的假设而开发出的推荐算法,它将用户和商品建模成一个二分图并利用用户和商品的向量表示来对图进行重建从而得到用户和商品的节点节点嵌入。

在经典协同滤波算法的基础上我们可以利用GNN来提升算法的性能。假设我们只有用户和商品对应的交互图,此时可以利用用户的历史信息来进行消息传播。需要注意的是此时每个用户节点接收到的消息都来自于商品,相应地每个商品节点接收到的消息都来自于用户。除此之外,根据用户的行为还可以设置不同的边类型和转换矩阵来融合不同类别行为的信息。

在交互图的基础上我们还可以利用知识图谱来辅助商品表示的学习。

最后我们还可以利用用户的社交网络来辅助用户特征的学习,这样在更新用户节点信息时融合来自商品的信息与来自社交网络的信息。

城市数据挖掘

遥感技术和计算基础设施的发展使得人们可以在城市尺度上收集并分析数据。同时小到空气质量,大到城市交通信息都对人们的日常生活有着重要的影响,因此城市数据挖掘有着非常大的现实意义。城市数据的特点在于相邻位置的数据往往会相互影响,因此我们可以利用地理和交通的连通关系来构造出图结构。另一方面,城市数据还表现出明显的时间相关性,因此在进行城市数据挖掘时必须靠考虑时间因素的影响。

进行城市数据挖掘时我们可以利用GNN来捕获空间尺度上的依赖性。而对于时间尺度,则可以利用RNN或是Transformer来捕获时间尺度上的相关性。这样在进行预测时首先在每个时间节点上使用GNN来获得节点或是全图的信息,然后在时间尺度上通过RNN或是Transformer进行预测就可以将时间信息融合进预测结果中。

网络安全数据挖掘

随着互联网产业的发展,网络信息安全得到了人们越来越多的关注。鉴于很多安全领域的数据都可以使用图来进行表示,图神经网络已经在网络安全领域取得了很多的应用。

恶意账号检测

网络攻击者可以通过创建恶意账户、传播垃圾消息等方式来攻击电子邮件系统、社交媒体、电商平台等网络服务商,因此有效地检测出这些恶意账户非常重要。目前图神经网络已经被应用于建模恶意账户的检测任务,并取得了相当不错的成绩。一般来说由于攻击者的资源有限,它的行为往往会呈现出某些特点的模式:比如说来自同一攻击者的账户一般会注册到同一组设备上,而且同一群组的恶意账户往往会倾向于进行批量行动。这些行为模式为我们使用GNN进行恶意账号检测提供了可能性。

不难发现恶意账号检测的本质是对节点进行二分类,而它的难点在于如何构建出图结构。对于每一种类型的设备我们可以构造出一个子图,其中每个子图都包含了所有的用户和设备作为节点而这些子图的区别仅在于图的连接关系,如果账户在某个特点的设备上有活动则将这个账户和设备用边连接。在每个子图上使用标准GCN来聚合信息,并将所有的子图信息进行相加来获得下一层的节点嵌入。同时需要注意的是在每一层中还融合了初始的节点信息\(X\),这样做的目的是保证账户的活动模式信息可以更好地保留下来。将这样的操作重复\(L\)层后再通过一个分类器就可以实现恶意账户的检测。

虚假新闻检测

虚假新闻检测是GNN在网络安全的另一个重要应用。随着社交媒体的发展消息传播的速度较过去有了大幅的提高,但相对的社交网络的发展也极大地提高了虚假信息传播的风险。使用GNN来识别虚假新闻与进行恶意账户检测类似,它本质上也是一个二分类的问题。但不同的是虚假新闻检测更关注于全图而不是特定的节点,事实上大量的经验数据证明虚假新闻的传播模式与真实新闻往往大相径庭,因此我们可以利用GNN来捕捉消息在图上的传播模式再对全图进行二分类来检测虚假新闻。