一种基于图注意力网络的社交机器人识别方法与流程

文档序号:21082562发布日期:2020-06-12 16:39阅读:564来源:国知局
一种基于图注意力网络的社交机器人识别方法与流程

本发明涉及图注意力网络的应用领域,具体涉及基于图注意力网络节点分类技术及其实际应用于社交网络的领域。



背景技术:

近年来,随着社交网络的发展,个人可以充分地在网络上发出自己的声音,但也让不法分子有了可乘之机,在网上肆意发布不良内容。尤其是在充斥着大量水军,僵尸粉的微博上,社交机器人可以发布大量的内容从而影响舆论导向,所以需要一个系统能够识别出社交机器人,控制机器人发布的言论带来的社会影响。

在计算机科学中,图是由顶点和边两部分组成的一种数据结构。图g可以通过顶点集合v和它包含的边e来描述,即:

g=(v,e)(1)

顶点也称节点,两个术语是可以互换的。

图注意力网络是一种直接作用于图上的神经网络。gat的一个典型作用是节点分类。本质上,图中每个节点都与一个标签相关联,通过图注意力网络就能够预测未标记节点的标签。

图注意力网络采用多头注意力机制,相较图卷积神经网络能够更准确地对各节点进行分类。而且其注意力机制更适用于拥有不同的度和不同权重的边的社交网络,最重要的是这一算法可直接用于归纳学习问题。

而在社交网络中,社交机器人所发送内容大体相同,可以利用自然语言处理获取每个社交机器人的特征,然后通过转发、评论关系构建图,获取这样的数据集后,就可以利用图注意力网络对节点进行分类。



技术实现要素:

针对现有技术存在的不足,本发明提供本发明一种基于图注意力网络的社交机器人识别方法。本发明方法基于图注意力网络,通过对社交网络上发布的内容进行自然语言处理构建节点特征,各社交账号之间的转发、评论关系来构建图,然后进行分类,从而判断出该账号是否为社交机器人。

一种基于图注意力网络的社交机器人识别方法,步骤如下:

步骤(1)、搜集社交网络数据。

人工搜集一段时间内社交平台上部分账号发布的内容,以及各账号之间的评论关系。对社交平台上某一账号发布的内容进行记录,搜集该条内容下的评论账号发布的实质性评论内容以及评论的评论。同时根据账号所发布的内容及评论关系判断该账号是否为机器人。

步骤(2)、创建数据集。

对所有搜集到的账号发布的实质性内容进行自然语言处理获取特征,各个账号作为图的顶点,账号间的评论关系形成图的边,并对每个账号都注明是否为机器人,由此形成数据集。将数据集分为两个部分,第一部分包括账号的id,特征和类别,第二部分为各账号之间的评论关系。其中训练集,验证集和测试集所占比例约为6:2:2。

步骤(3)、构建图注意力网络

将各账号也就是节点的特征作为输入,输入图注意力算法的网络中,其中n是节点数量。是网络输出。注意力系数为其中w∈rf′×f,是权重矩阵,a为共享注意力机制:rf′×rf→r。为了能够获得结构信息,所以仅计算节点i的一阶邻域内的节点的注意力系数,即eij中的j∈ni,ni是节点i在图中的一阶邻域。该一阶邻域由数据集第二部分构建的图获得。使用leakyrelu对其非线性化,然后使用softmax进行规范化,最后得到的注意力系数为

其中,·t代表转置,||表示连接操作。

然后引入多头注意力机制,得到最终输出。

其中k为多头注意力机制中的头数,可根据实际情况进行选择。σ为非线性激活函数elu。

最后对得到的使用log_softmax函数就可得到结果。

步骤(4)、训练图注意力网络

用图注意力网络进行训练。按照步骤(2)所述的比例选取训练集和验证集。采用adam优化器,nll损失函数。在验证过程中将正确率最高的网络参数保存下来。

步骤(5)、图注意力网络的测试

训练完成后,将测试集输入在步骤(4)中保存下来的网络中即可得到测试结果,可以用来判断社交网络账号是否为机器人。

本发明有益成果如下:

针对复杂的社交网络机器人识别问题,该方法能够自动高效的识别社交机器人,减少不法分子的可乘之机,从而限制机器人发布的言论,削弱不良社会舆论影响,有利于维护社会和谐稳定。

附图说明

图1为本发明系统运行流程图;

图2为本发明中的社交网络示意图。

具体实施方式

以下结合附图及实施例,对本发明进一步详细说明。

实施例1:

如图1所示,本发明的社交机器人识别方法,步骤如下:

步骤(1)、搜集微博上一天之内部分用户发布的某一条内容以及相互的评论关系,账号数量大约为3000个。对社交平台上某一账号发布的内容进行记录,同时搜集该条内容下的评论账号发布的实质性评论内容以及评论的评论。同时根据账号所发布的内容及评论关系判断该账号是否为机器人。

图2为本发明中的社交网络示意图。

步骤(2)、对所有搜集到的账号发布的实质性内容进行自然语言处理,获得数据集。首先去除“的”“是”等高频词汇。然后选取约1500个常用词汇,按一定顺序排列。若该词汇在某一内容中重复出现超过两次,则在对应位置记为1,否则为0。最终对每一条内容形成一个1*1500的向量,也就是每一个账号的特征

给每个账号赋予独一无二的id,通过账号间的评论关系构建关系网络。一个账号为图中的一个节点,评论形成图中的边,忽略重复的转发评论,评论所形成的无向边权重为1。根据账号所发布内容进行分类,判别每个账号是否为机器人。将数据集分为两个部分,第一部分包括账号的id,特征和类别,第二部分为各账号之间的评论关系。其中训练集,验证集和测试集所占比例约为6:2:2。

步骤(3)、构建图注意力网络,在获得的数据集上使用图注意力算法。首先读入第二部分数据集,获得图的邻接矩阵。然后读入第一部分数据集,将各节点特征作为输入,输入图注意力算法的网络中,其中n是节点数量。是网络输出。注意力系数为其中w∈rf′×f,是权重矩阵,a为共享注意力机制:rf′×rf→r。为了能够获得结构信息,所以仅计算节点i的一阶邻域内的节点的注意力系数,即eij中的j∈ni,ni是节点i在图中的一阶邻域。使用leakyrelu对其非线性化,然后使用softmax进行规范化,最后得到的注意力系数为

其中,·t代表转置,||表示连接操作。

然后引入多头注意力机制,得到最终输出。

其中k为多头注意力机制中的头数,可根据实际情况进行选择,如选择8。σ为非线性激活函数elu。

步骤(4)、按照步骤(2)所述的比例选取训练集和验证集。采用adam优化器,dropout概率为0.6,nll损失函数,leakyrelu的参数为0.2。在验证过程中将正确率最高的网络参数保存下来。

步骤(5)、将测试集输入在步骤4中保存下来的网络中,对得到的输出使用log_softmax函数就可判断出在这些账号中的社交机器人是哪些。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1