论文阅读 - DCGNN: Dual-Channel Graph Neural Network for Social Bot Detection

news2024/7/4 4:22:42

论文链接: https://dl.acm.org/doi/pdf/10.1145/3583780.3615237

摘要

        由于社交机器人检测对信息传播的深远影响,其重要性已得到越来越多的认识。现有的方法可以分为特征工程和基于深度学习的方法,它们主要关注静态特征,例如帖子特征和用户档案。然而,现有方法在区分社交机器人和真实用户时往往忽视了爆发现象,即机器人在长时间交互后突然而剧烈的活动或行为。通过综合分析,我们发现突发行为和静态特征在社交机器人检测中都发挥着关键作用。为了捕捉这些特性,提出了双通道 GNN(DCGNN),它由带有自适应通滤波器的突发感知通道和带有低通滤波器的静态感知通道组成,以有效地对用户特征进行建模。实验结果证明该方法相对于竞争基线的优越性。

1 INTRODUCTION

        如今,社交媒体无疑已成为个人传播信息和获取新闻的主要平台[24,30,31]。然而,社交机器人 [6, 15] 日益盛行,这些机器人是由程序和程序运营的社交媒体帐户,冒充真实用户[16,18,26],严重扰乱信息传播秩序[5,46],操纵舆论[17,33,34,38]。社交机器人检测的有效方法对社会具有重大意义 [44]

        现有方法可分为特征工程方法和基于深度学习的方法 [ 7 ]。早期的研究主要侧重于设计定义明确的特征 [ 9 , 22 , 43 ]。随着深度学习的发展,人们提出了新的方法,包括利用自然语言处理(NLP)[11 , 37 , 40 ]、采用生成对抗网络(GAN)模式[8 , 10 , 29, 39 ]和利用图神经网络(GNN)。值得注意的是,基于 GNN 的方法可以捕捉社交媒体中自然存在的固有社交结构 [ 2, 20]。例如,Feng 等人[ 14 ]提出的 BotRGCN 考虑了各种特征并部署了关系图卷积神经网络(R-GCN)[32]。然而,上述方法都是启发式的,只能捕捉信息无法全面分析机器人和真实用户之间的区别

        通过对具有代表性的数据集进行全面的数据分析,我们发现了机器人和真实用户之间的一个重要区别,即在发帖过程中出现的突发现象,而这一区别在很大程度上被现有方法所忽视。如图 1 所示,社交机器人表现出对零星活动的偏好,而真实用户则没有这种行为。我们将这种现象称为 "突发",特指在长时间间隔后突然出现的强烈活动或行为。这种现象是合理的,因为机器人只有在参与或受到提示时才会活跃。同时,我们的数据分析揭示了从账户档案信息中获取的静态账户特征在社交机器人检测中的重要性。

        为了捕获突发和静态属性,我们提出了双通道图神经网络,即 DCGNN 来检测社交机器人。 DCGNN 由突发感知通道和静态感知通道组成。前者在特定图结构上采用自适应通滤波器来构造用户的突发属性,而后者则利用低通滤波器来提取用户的静态特征。该方法通过双视角融合综合考虑账户特征。实验结果证明了 DCGNN 相对于现有方法的优越性。

2 PRELIMINARY

本节将介绍数据分析和问题提出。

2.1 数据分析

        为了深入了解社交机器人,我们在一个全面可靠的数据集上进行了广泛的数据分析。我们的分析表明,突发特征和静态账户特征在区分真实用户和机器人方面都起着至关重要的作用。

2.1.1 突发特征分析

        就账户行为而言,社交机器人可能只有在需要履行某种职责时才会活跃,例如控制舆论或宣传其议程。这种模式导致社交机器人帐户具有“长时间间隔后频繁活动”的特征,我们将其定义为突发现象。为了验证这个概念,我们对一组用户进行了采样,并统计了突发次数,假设发布间隔为 20 天作为一次突发。我们发现社交机器人平均有 2.03 次爆发,而真正的用户平均有 0.618 次爆发。如图2所示,我们发现社交机器人比真实用户有更多的爆发。这个结果证明使用突发检测社交机器人是有效的。

 2.1.2 静态特征分析

        我们随机选择 10,000 个用户并分析他们的帐户特征,这些特征被认为是静态的,因为它们源自个人资料信息并且随着用户行为保持不变。使用t-SNE聚类算法[36],我们将这些特征可视化,并观察到这些账户可以分为四个不同的组,如图3所示。然后,我们计算出每个类别中的账户数量和比例,如表 1 所示。值得注意的是,虽然所有账户都集中在第四类中,但社交机器人在这一特定类别中的集中度明显更高,达到 96%。这一发现揭示了静态账户特征的重要性,并强调了捕捉这些特征以提高机器人检测准确性的必要性。

 2.2 问题表述

        假设我们有用户,并且每个用户都有一个属性集 U= {U^{num},U^{cat}, U^{des} , } 表示用户的数字属性、分类属性和帐户描述。这些用户发布了相应的推文,每条推文都有一个属性集T = { T^{num}, T^{cat}, T^{text}},其中描述数字属性,描述分类属性,描述推文内容

        同时,用户与推文之间存在多种关系。设为关系集,表示用户之间的关注者和关注关系,用户和推文之间的发布关系,以及推文之间的回复、引用、转发关系。社交僵尸检测的任务是利用用户、推文和关系信息 U, T, 和 R, 来识别用户中bot。

3 方法

        基于我们上述观察,我们提出了双通道 GNN,它由两个模块组成:突发感知通道和静态感知通道。整体架构如图4所示。下面我们详细介绍各个模块。

 3.1 突发感知通道

        我们建议使用自适应通滤波器来捕获突发现象。下面,我们首先介绍利用自适应通滤波器的动机,然后介绍详细设计。

3.1.1 使用自适应通滤波器的动机

        我们计算用户u_i在时间段t_j内发布的所有推文的属性,并将它们聚合以描述发布行为

         通过连接相邻时隙的节点,具有突发行为的用户被描述为一系列空节点,后跟具有较高推文集中度的节点。相反,没有突发行为的用户由没有显着波动的节点来描述,并且应该采用适当的过滤器来区分它们。

        为了构建能够感知突发的图结构,我们引入了两种边,一种是基于时序关系,在不同的时间步连接同一用户,另一种是基于回复、引用和转发来提高连接性;

        在构建行为后图形后,有突发和无突发用户之间的主要区别在于图形上特征变化的重要性。自适应通滤波器保留了高频和非平滑特征,同时滤除了低频和平滑特征,因此表现出更强的能力。为了给上述分析提供更多证据,我们将重点放在高通滤波器和低通滤波器的区别上

        图 G= ( V, E) 的邻接矩阵,我们可以将其正则化拉普拉奇矩阵L定义为 L = I_n - D^{-\frac{1}{2}}AD^{-\frac{1}{2}},其中 D_{ii} = \sum_{i}A_{ij} 。该矩阵拥有一组完整的正交特征向量 。对于一个特征向量u_i,其相关的特征值反映了平滑性,小特征值对应的特征向量表现出与图结构相关的平滑性[ 35 , 42]。由于特征向量是正交的,因此给定一个定义在该图上的信号,它可以唯一地表示为:

         u_iu_i^T组成一组基本过滤器

         然后,各种图神经网络方法为这些滤波器分配不同的权重。

        如图 4 所示,突发较少的人类信号主要由低频成分组成,低通滤波器主要保留这些成分。相反,突发较多的机器人信号主要由高通滤波器捕获[23, 45]。为了区分这两类信号,我们利用自适应通滤波器放大低频和高频信号,同时抑制中频信号[41]。

3.1.2 自适应通滤波器的实现

        因此,我们采用频率自适应图卷积网络(FAGCN)[ 4 ]来提取突发特征。首先,我们将初始后特征映射到隐藏空间:

         然后我们应用FAGCN的卷积层

         其中 ,\epsilon是 FAConv 中定义的初始层权重,我们将其设置为默认值 0.1;\alpha _{ij,k}是节点ij与其邻居k之间的可学习注意力权重。对同一用户在不同时隙的表示进行聚合,得到最终的突发特征。

具体来说,我们计算绝对值以获得信号的幅度:

其中x_i是用户的聚合特征。然后将其输入单层 MLP,得到最终的用户突发特征: 

 其中,W2 和 b2 是可学习参数,x_{i\_{brust}}是用户的最终突发特征。

3.2 静态感知通道

        为了在模型中引入静态特征,我们采用了 BotRGCN [14 ],这是一种基于 GNN 的先进社交bot检测方法。初始用户静态特征的计算方法如下

         分别对应于 user 的初始静态特征: 描述、推文、数值属性和分类属性。首先对特征进行变换以导出隐藏向量

         接下来我们应用 R-GCN 层来聚合关注者和关注者关系中的特征

         其中 θ 是投影矩阵。经过层之后我们使用 MLP 来获得最终的用户静态特征

           最后,将突发特征和静态特征串联起来,得到最终的表示方法

 3.3 损失函数

        我们应用 softmax 层根据最终的用户表示来执行社交机器人检测任务

         我们引入加权交叉熵损失来解决不平衡分类问题:

         其中Y是数据集中有标签的用户, y_i是真实标签, \theta是模型中所有可学习的参数, w+ 和 w− 是添加到正类和负类的权重

4 实验

        为了验证所提出的 DCGNN,我们展示了我们的模型应用于代表性 TwiBot-22 数据集的实验结果[13]

4.1 实验设置

4.1.1 数据集

        我们使用包含推文信息以及用户和推文之间的各种关系的 TwiBot-22 [13] 数据集来验证 DCGNN。同时,社交机器人约占13%,符合现实场景。我们通过对用户之间的以下关系应用 Louvain Community 检测算法 [3] 随机提取原始数据的子图,其中涉及 8694 个帐户,其中约 11% 为社交机器人。我们遵循原始基准中训练集、验证集和测试集的划分

4.1.2 基线

        我们利用了以下各种基线:

         - Miller 等人[27] 提取了 107 个特征,并将社交bot检测定义为异常检测。

        - Kudugunta 等人[ 21 ],他们同时使用了账户元数据和推文内容。

        - Efthimion 等人[ 12 ]利用文本变化并应用支持向量机(SVM)算法。

        - Moghaddam 等人[ 28 ]利用图结构和属性采用随机森林算法。

        - Ali 等人[ 1 ]选择特征子集并应用 GNN。

        - BotRGCN [ 14 ] 使用多个静态特征,并通过 RGCN 对特征进行聚合。

4.1.3 评估指标

        我们选择常用的评估指标来评估性能,包括准确性、精确度、召回率和 f1 分数。考虑到数据集的不平衡性质,我们优先考虑 f1 分数而不是准确性。

4.2 社交机器人检测任务的性能

        表 2 清楚地显示了我们方法的优越性能。在评估的方法中,米勒的方法表现出优异的召回率,但精度较低,表明倾向于将帐户过度分类为机器人。阿里的方法表现出最高的准确性和精确度,但在召回率方面有所欠缺,这表明它在所有账户中准确识别机器人的能力有限。相比之下,我们的方法实现了最有利的整体性能,如 f1 分数所示,从而强调了其有效性

 4.3 消融研究

        为了证明双通道的有效性,我们进行了消融研究,包括使用单通道检测并将自适应通滤波器更改为典型的低通滤波器.我们使用单个突发感知通道 (BAC) 和单个静态感知通道 (SAC) 进行机器人检测。

        如表3所示,两个通道都可以独立完成检测任务,但其性能低于完整模块。值得注意的是,BAC 在召回率指标方面表现出卓越的性能,而 SAC 则表现出更好的精确度结果。这表明这些渠道侧重于不同的方面,强调同时考虑两者的重要性。此外,我们通过用典型的低通滤波器 GCN 替换 FAGCN 来验证 BAC 中自适应通滤波器的有效性[19]。表 3 所示的结果证明了自适应带通滤波器的有效性。

 5 结论

        我们对代表性数据集进行全面的数据分析,以识别社交机器人并强调突发现象的重要性。因此,DCGNN被提出结合突发特征和静态特征。 TwiBot-22 数据集上的大量实验证明了我们的方法相对于竞争基线的优越性.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1151117.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gitee上传项目

目录 首先在gitee新建一个仓库 接下来创建好项目,先找到生成公钥SSH的目录 接下来是生成公钥SSH 仓库创建好后,接着开始链接项目 首先在gitee新建一个仓库 接下来创建好项目,先找到生成公钥SSH的目录 接下来是找目录:C盘&a…

学习鸟哥Linux shell 时遇到的unexpected operator错误

最近在学习鸟哥Linux,其中一个章节讲解了Linux shell script使用语法,运行总是错误,源码如下: #!/bin/bashread -p "Please input (Y/N): " yn[ "${yn}" "Y" -o "${y…

这么理解矩阵乘法,让你吊打面试官

大家好啊,我是董董灿。 很多与深度学习算法相关的面试,面试官可能都会问一个问题,那就是你是如何理解矩阵乘算法的。 更有甚者,会让你当场手写矩阵乘算法,然后问细节,问如何优化,面试现场&…

用大白话聊聊SpringBoot的自动配置原理(面试题详解)

首先,SpringBoot的自动配置不等于自动装配! 自动配置是Auto-Configuration,针对的是SpringBoot中的配置类, 而自动装配是Autowire,针对的是Spring中的依赖注入。 进入主题: 自动配置简单来说就是自动去把…

告诉你一个真实的短视频自媒体收入

我是卢松松,点点上面的头像,欢迎关注我哦! 10个月前我分享了《这一年半我在短视频的收入》都是真实的,最近我看到有人在分享卢松松做短视频的收入,玩视频又被赋予了很多内容,我这说明下也是一些小感悟分享…

故障诊断模型 | Maltab实现CNN卷积神经网络故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现CNN卷积神经网络故障诊断 模型描述 卷积神经网络(convolutional neural network)是具有局部连接、权重共享等特性的深层前馈神经网络,最早主要是用来处理图像信息。 相比于全…

电路的电线的拼接

不积跬步无以至千里,今天小编也是复习今天学习的内容,废话不多说,看博客吧!!! 目录 准备条件 操作 成品 准备条件 操作 将定制的套管插入导线当中,24V或者0V是尖端的端子,后面根…

【排序算法】 归并排序详解!深入理解!思想+实现!

🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️归并排序的思想☁️基本思想☁️归并的思想实现☁️分治法 &#x1f3…

H5游戏源码分享-跳得更高

H5游戏源码分享-跳得更高 控制跳动踩到云朵上 <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><meta http-equiv"Content-Type" content"text/html;"&g…

利用ChatGPT进行股票走势分析

文章目录 1. 股票分析2. 技巧分析3. 分析技巧21. 股票分析 这张图片显示了一个股票交易软件的界面。以下是根据图片内容的一些解读: 股票代码: 图片右上角显示的代码是“600517”,这是股票的代码。 图形解读: 该图展示了股票的日K线图。其中,蜡烛图表示每日的开盘、收盘、最…

Rest风格基本语法与实战

1&#xff0c;前置知识点 1.1 GetMapping&#xff0c;PostMapping&#xff0c;PutMapping&#xff0c;DeleteMapping 平时我们都是使用RequestMapping&#xff0c;然后通过它的method属性来指定请求的方式&#xff0c;这样是有些麻烦的&#xff0c;然后这四个标签就是来简化这…

Day 16 python学习笔记

静态方法 静态方法&#xff0c;只需要在方法前添加 staticmethod&#xff0c; 方法就可以不写形参self&#xff0c;可以通过实例对象.方法名调用&#xff0c;也可以通过类名.方法名调用 例&#xff1a; class Test:staticmethoddef test1():print("你好")def nums(se…

异步 AIMD 收敛

给出的一直都是同步 AIMD 收敛&#xff0c;所以简单&#xff0c;但不至于 bbr 单流情形退化成简陋。 给出一个异步 AIMD 收敛过程是必要的&#xff0c;可见&#xff0c;它同样是简洁优美的&#xff1a; 虽然我没有标注太多&#xff0c;它始终没有成为一团乱麻。 和同步 AIM…

Linux tar打包命令

Linux 系统中&#xff0c;最常用的归档&#xff08;打包&#xff09;命令就是 tar&#xff0c;该命令可以将许多文件一起保存到一个单独的磁带或磁盘中进行归档。不仅如此&#xff0c;该命令还可以从归档文件中还原所需文件&#xff0c;也就是打包的反过程&#xff0c;称为解打…

随机链表的复制(Java详解)

一、题目描述 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的…

英语——分享篇——常用人物身份

常用人物身份 家庭成员类 father 父亲 mother 母亲 grandmother&#xff08;外&#xff09;祖母 grandfather&#xff08;外&#xff09;祖父 son 儿子 daughter 女儿 uncle 叔叔&#xff0c;舅舅 aunt 婶母&#xff0c;舅母 brother 兄弟 sister 姐妹 nephew 侄子 niece…

Centos7下生成https自签名证书

1、安装openssl yum install openssl2、生成带密码的私有秘钥文件 openssl genrsa -des3 -out server.key 2048使用带密码的私有秘钥文件时需要输入密码&#xff0c;这里直接输入&#xff1a;123456 3、生成不带密码的私有秘钥文件 openssl rsa -in server.key -out serve…

考虑时空相关性的风电功率预测误差MATLAB代码

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 风电功率预测置信区间误差分析拟合 1.风电功率预测误差--时空相关性 展示第一一个时间段的风电功率预测与实际风电功率值的比较。填充区域表示预测的不确定性&#xff0c;显示了95%置信区间内预测可能的范围…

vulnhub momentum 靶机复盘

环境配置 到学校了 原来的桥接配置要改 这里记录几个点备忘 1.virtualbox 桥接 未指定 重新安装驱动VBoxNetLwf.inf 2.配置完靶机启动失败 手动安装VBoxNetLwf.inf 不要用virtualbox自带的netlwfinstall 3.配置完nmap扫不到 rw init/bin/bash 进去看看网卡配置 信息收集…

【Java系列】HashMap

HashMap 介绍HashMap 类提供了很多有用的方法添加键值对(key-value)创建一个字符串&#xff08;String&#xff09;类型的 key 和字符&#xff08;String&#xff09;类型的 value&#xff1a;访问元素删除元素删除所有键值对(key-value)可以使用 clear 方法&#xff1a;计算大…