一种基于特征评价及改进算法的社交机器人账号检测方法

allin2022-09-03  204



1.本发明属于网络安全与自动化技术领域,涉及一种基于特征评价及改进算法的社交机器人账号检测方法。


背景技术:

2.社交机器人是指在社交网络中,为实现特定目的,自主运行、发布生成内容,并模仿人类活动的程序。近年来,随着社交媒体平台成为当下社会最具影响力的一大舆论场,社交机器人也逐步实现从信息传播中介向信息传播主体角色的转变。研究表明,当前大量的社交媒体用户被证实并非是真正的人类,而是被自动化程序操纵的社交机器人,此外,这些机器人账户产生和发布的信息占平台总流量的比例正在大幅增长。
3.社交平台机器人账号的大量存在对人们产生不容小觑的负面影响,一方面使得社交平台充斥大量无关、无效甚至虚假信息,弱化社交媒体原本自身定位,干扰网民视线;另一方面,在短时间内带目的性地传播大量特定信息,能够助推舆情,甚至改变舆论方向。
4.目前国内外各大社交平台正致力于检测识别并删停社交机器人账号,同时形成用户举报机制。然而以往形式单一的特征检测模式显然已不再适用于当前行为策略能够灵活调整以规避检测的新一代社交机器人账号。此外,随着社交机器人群组概念的出现,大量机器人账号之间形成互动关系,使得人工识别此类账号不仅需要工作者经验丰富,同时还面临着识别成本高、效率低等问题。实证研究发现,社交机器人已具备激发人类用户与之互动的能力,例如在推文中提到有影响力的用户,且少量社交机器人(占用户总量的5%—10%)即足以引发沉默的螺旋,从而改变公众舆论的走向。
5.当前国内外社交机器人账号通过不断的更新行为策略以及填充账号个性化信息实现伪装以避免被社交平台识别与封停,使得传统的社交机器人检测技术受限。
6.由于社交机器人账号出现时间相对较短,国内在研究其具体数量、行为、检测手段上尚未形成完整的体系。通过借鉴网络水军相关检测技术手段,当前主流的社交机器人账号检测技术是提取账号的相关属性作为特征值,利用二分类机器学习的k近邻、随机森林、朴素贝叶斯等算法进行检测。卢林艳等综合使用人工特征提取与深度学习方法对微博账号的行为特征进行提取,基于模型融合等方法建立社交机器人识别模型。陈里可等将社交账号属性划分为四大类抽取七个检测特征,并结合二分类机器学习算法,建立机器人账号智能检测模型。然而,上述社交机器人检测算法在特征选取上多以账号属性类特征为主,模型结构单一且准确率较低,具有一定的不足。


技术实现要素:

7.为解决上述技术问题,本发明的目的是提供一种基于特征评价及改进算法的社交机器人账号检测方法,从账号动态变化角度出发引入社交关系关注数变化量、粉丝变化率和基于序列的发文相似度特征,提取账号属性、发文属性、社交属性三方面共9个特征并加以评价。随后考虑到机器学习随机森林算法在分类学习方面具有良好的性能,引入auc评价
标准对算法生成的决策树按照auc值排序优化检测算法,实现社交机器人账号综合代价小、高准确率检测,为网络空间治理提供有力的技术支持。
8.本发明提供一种基于特征评价及改进算法的社交机器人账号检测方法,包括如下步骤:
9.步骤1,数据集预处理:提取原始数据集中有效社交机器人账号与人类账号的数据记录进行降维操作,并获取对应账号具体发文内容信息、账号当前的粉丝数、关注数、发文数;
10.步骤2,计算账号发文文本多样性:对账号发文内容进行分析,对文本以外内容,从图片、#与@使用、引用、转发四个方面出发,提取账号发文文本多样性特征,并对应填入数据集;
11.步骤3,计算账号发文文本相似度:使用基于序列相似性度量检测计算各有效社交机器人账号与人类账号一定数量发文内容的文本相似度,返回介于0和1之间的相似分数,将各个账号发文文本相似分数对应填入数据集;
12.步骤4,计算账号关注与被关注数之比:根据账号当前拥有的粉丝数和当前关注数计算该账号关注与被关注数之比,将各个账号关注与被关注数之比对应填入数据集;
13.步骤5,计算关注数变化量:对比原始数据集扩充前后两次账号的关注数记录,提取各账号关注数变化量特征,并对应填入数据集;
14.步骤6,计算粉丝变化率:对比原始数据集扩充前后两次账号的粉丝数,并结合在此期间账号的发文总数,提取各账号粉丝变化率特征,并对应填入数据集;
15.步骤7,通过改进的随机森林算法对数据集进行处理:对经上述步骤扩充后的数据集进行分割获得训练集和测试集,而后使用 bagging算法对测试集进行多次有放回的抽样以获取n个训练子集,并对应生成决策树;
16.步骤8,引入auc决策树分类评价指标:对于步骤7训练生成的决策树,根据auc值进行排序后选择性能较好的决策树生成随机森林模型,利用测试集样本对模型进行测试,计算模型检测的准确性。
17.在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤1具体为:
18.步骤1.1:获取社交机器人账号与人类账号公开带标签数据集作为原始数据集,删除其中当前已被社交平台封禁的账号信息并提取数据集中有效账号的关键数据信息,包括账号名、定位信息、简介描述、背景墙、头像、原始数据集收集时的粉丝数、关注数、发文数;
19.步骤1.2:标准化处理社交账号的简介描述、定位信息、背景墙设置及头像选项信息;
20.步骤1.3:利用数据挖掘技术扩充原始数据集,利用账号名搜索获取对应账号具体发文内容信息,账号当前的粉丝数、关注数、发文数。
21.在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤2具体为:
22.步骤2.1:对步骤1获取的各账号具体发文内容进行分析,对文本以外内容,从图片、#与@使用、引用、转发四个方面出发,若推文只包含0种或1种上述形式的账号,其文本多样性特征值va设为 0;推文包含2种或2种以上形式的账号,其文本多样性特征值va 设置为
1;
23.步骤2.2:针对每个账号,计算va值并对应填入数据集中。
24.在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤3具体为:
25.步骤3.1:鉴于社交机器人发布的推文信息往往是通过程序结合固定模板生成,因此整体上社交机器人账号前后发文内容存在形式单一、结构固定的特点,故定义文本相似度sim为:
[0026][0027]
其中,t为匹配字符数,len(str1)为字符串str1的元素数量,len(str2) 为字符串str2的元素数量,返回值为介于0和1之间的相似分数;
[0028]
步骤3.2:针对每个账号,对步骤1获取的各账号前10条发文内容分别两两组合作为str1、str2输入,计算90组sim值后求平均值,结果作为各个账号发文文本相似度sim特征值填入数据集中;
[0029]
步骤3.3:对数据集中sim特征值绘制特征分布图,根据不同账号的sim特征值分布情况验证说明sim特征值在检测社交机器人账号上的有效性。
[0030]
在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤4具体为:
[0031]
步骤4.1:鉴于正常人类账号与社交机器人账号社交网络分布的不同,对步骤1获取的账号当前的粉丝数、关注数,定义关注数与被关注数比值ie为:
[0032][0033]
其中,following_now表示账号当前的关注数,followers_now表示账号当前的粉丝数;
[0034]
步骤4.2:计算各个账号ie值并对应填入数据集中。
[0035]
在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤5具体为:
[0036]
步骤5.1:基于原始数据集中包含的社交账号关注数,结合步骤 1获取的账号当前的关注数,得出数据收集期间账号关注数变化量;
[0037]
步骤5.2:鉴于正常人类用户的兴趣爱好会随时间推移发生变化,反应在社交网络平台上就是关注话题的变化,以及关注者数量和名单的变化,对此定义关注数变化量为fi特征值为:
[0038][0039]
其中,following_now表示步骤1获取的该账号当前的关注数, following_old表示原始数据集生成时该账号的关注数,若两者差值为0则设置fi值为0,否则fi值为1;
[0040]
步骤5.3:计算各个账号fi特征值并对应填入数据集中;
[0041]
步骤5.4:对数据集中fi特征值绘制特征分布图,根据不同账号的fi特征值分布情
况验证说明fi特征值在检测社交机器人账号上的有效性。
[0042]
在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤6具体为:
[0043]
步骤6.1:由于社交平台用户通过发文来吸引其他用户参与话题探讨,其粉丝数必然会随着发文的增加而出现波动,对此定义粉丝变化率为fer特征值为:
[0044][0045]
其中,following_now表示步骤1获取的账号当前的关注数, following_old表示原始数据集生成时该账号的关注数,tweet_num表示数据收集期间账号的发文量;
[0046]
步骤6.2:计算各个账号fer特征值并对应填入数据集中;
[0047]
步骤6.3:对数据集中fer特征值绘制特征分布图,根据不同账号的fer特征值分布情况验证说明fer特征值在检测社交机器人账号上的有效性。
[0048]
在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤7具体为:
[0049]
步骤7.1:扩充后的数据集d中的每个数据由定位信息、简介描述、背景墙、头像、发文文本多样性、发文文本相似度、关注数量变化量、粉丝变化率以及关注数与被关注数之比9个特征属性组成,将数据集d分割为训练集和测试集,使用bagging算法对训练集进行n 次有放回的随机抽样,从而得到n个新的训练子集{db1,db2,

, dbn};
[0050]
步骤7.2:对于每个训练子集dbi(1≤i≤n),分别对应生成决策树。
[0051]
在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤7.2包括:
[0052]
步骤7.2.1:从社交机器人账号检测模型的9个特征属性中随机选取7个属性作为生成决策树当前节点的分裂属性集;
[0053]
步骤7.2.2:对每个训练子集dbi(1≤i≤n),在随机选取形成的分裂属性集中选择最优特征做决策树左右子树划分。
[0054]
在本发明的基于特征评价及改进算法的社交机器人账号检测方法中,所述步骤8具体为:
[0055]
步骤8.1:对n个训练子集生成的共n棵决策树tj(1≤j≤n)引入auc 决策树分类评价指标进行排序,选择分值较高的前t棵决策树组合到一起生成改进随机森林模型;
[0056]
步骤8.2:在测试集中,对步骤8.1生成的随机森林模型进行测试,测试集中每个社交账号均得到由t棵决策树输出的t个是否为机器人账号的判断分类结果,采用多数投票法,由决策树数目多的分类结果作为该账号最终分类输出结果;
[0057]
步骤8.3:将测试集输出结果对比数据集原始自带标签,基于混淆矩阵计算准确率、查准率、查全率三个指标。
[0058]
本发明的一种基于特征评价及改进算法的社交机器人账号检测方法,至少具有以下有益效果:
[0059]
1)对数据集的深入分析有助于提升社交机器人账号检测的准确性。在对原始数据进行分析时,从社交账号动态变化角度出发,引入关注数变化量、粉丝变化率等特征,有效提升了社交机器人账号检测的查全率。
[0060]
2)引入特征评价标准sim特征值、fi特征值、fer特征值,验证特征选取的有效性,降低无关特征造成的噪音对模型测试准确性产生的影响。不同类型、不同属性的特征数据对社交机器人账号识别产生的作用大小不同,由于模型复杂度随特征的增多而增加,因此对特征进行评价有效筛选能避免过拟合现象的发生。
[0061]
3)改进后的随机森林社交机器人账号检测算法相较于传统随机森林算法检测效果更好,通过选取auc值高的决策树作为分类器可以提高模型的分类精度,模型分类精度随特征值的增加整体呈上升趋势。
附图说明
[0062]
图1是本发明的一种基于特征评价及改进算法的社交机器人账号检测方法的流程图;
[0063]
图2数据集中sim特征值绘制特征分布图;
[0064]
图3a数据集中社交机器人账号的fi特征值绘制特征分布图;
[0065]
图3b数据集中人类账号的fi特征值绘制特征分布图;
[0066]
图4数据集中fer特征值绘制特征分布图。
具体实施方式
[0067]
近些年,社交机器人在社交网络中的数量和地位逐渐提升,社交网络平台极易受到社交机器人的大规模渗透。社交媒体机器人的应用日益普遍,其影响呈现两面性。一方面,社交媒体机器人可以辅助生成规律性信息(如天气和路况预报等),提升信息时效性,减少人力成本。另一方面,机器人也被用于传播虚假信息或者操纵话题讨论,从而实现某种特定的目的。
[0068]
有效的分析能够区分人类参与行为和社交机器人行为。大量研究从追随者数量、转发数量、提及次数和链接数量等标准特征出发,揭示了社交机器人和人类账户之间的根本差异。然而需要注意的是,一些社交平台对追随者与朋友的比例进行了限制,因此一些社交机器人已经开始保持追随者与朋友的比例以规避平台检测,新的检测特征急需被发现。
[0069]
现有社交机器人账号识别技术主要分为三类,包括基于众包、基于图论和基于机器学习的方法。基于众包的方法主要依赖于人类的智能和敏感性,可以保证数据的相对可靠准确,但是在大型网络下的识别工作成本高,涉及隐私问题,并且众包人员的不确定性会导致标记结果不准确。
[0070]
基于图论的方法利用社交网络结构和动力学特征识别机器人账号,例如通过一组已知状态的机器人和人类节点,使用循环置信传播算法,迭代收敛获得未知节点是机器人的可能性。该方法通过将网络构建成图,量化节点和边的性质,但在大数据环境下网络涉及大量节点和边,耗时长且存在失败的风险。
[0071]
机器学习方法的核心是机器人用户的有效特征,社交账号特征涵盖账号属性、发文属性和社交属性三方面,该方法适用于大型网络分析,可以根据实际场景选择和提取特征。社交机器人账号检测实际上是一个二分类问题,即某一账号不是人类账号就是社交机器人账号。而随机森林算法作为一种典型的组合分类器机器学习算法,由多棵决策树组成,在预测问题上具有良好的性能。
[0072]
leobreiman于2001年提出基于集成思想的随机森林算法,该算法是利用其基本单元决策树实现的,算法集成所有分类投票的结果,以少数服从多数的原则,将获得票数最多的类别作为最终结果输出,从而实现多棵决策树优化决策的目的。各决策树之间不存在相互依赖关系,彼此独立,通过相同的训练数据有放回地重复随机抽取n个样本生成新的训练样本集合训练决策树,即搭建多个独立的分类模型后各自形成投票结果。
[0073]
为此,本发明的目的是提供一种基于特征评价及改进算法的社交机器人账号检测方法,从账号动态变化角度出发引入社交关系关注数变化量、粉丝变化率和基于序列的发文相似度特征,提取账号属性、发文属性、社交属性三方面共9个特征并加以验证。随后考虑到机器学习随机森林算法在分类学习方面具有良好的性能,引入auc评价标准对算法生成的决策树按照auc值排序优化检测算法,实现社交机器人账号综合代价小、高准确率检测,为网络空间治理提供有力的技术支持。
[0074]
如图1所示,在本发明提供一种基于特征评价及改进算法的社交机器人账号检测方法,包括如下步骤:
[0075]
步骤1:数据集预处理:提取原始数据集中有效社交机器人账号与人类账号的数据记录进行降维操作,利用数据挖掘技术扩充数据集,并获取对应账号具体发文内容信息、账号当前的粉丝数、关注数、发文数。
[0076]
各种文本型或者数值型数据原则上都可用于社交机器人账号检测,但不同类型、不同属性的特征数据对社交机器人账号识别产生的作用大小不同。对数据的深入分析有助于特征值的有效提取,有效的特征选择可以提高机器学习训练速度,并可降低无关特征造成的噪音对模型测试准确性产生的影响。就模型本身而言,其复杂度随特征的增多而增加,此时容易发生过拟合现象。因此在观察分析国内外各大社交平台账号特点后,初步将社交账号属性划分为账号属性、发文属性和社交属性三大类。
[0077]
具体实施时,又鉴于人类和机器操作在生活习惯、发文内容、社交关系上必然存在明显差异,引入社交关系关注数变化量、粉丝变化率和基于序列的发文相似度特征,为此需要对原始数据集进行扩充,收集账号当前拥有的粉丝数、关注数、发文数以及部分发文内容。
[0078]
步骤1.1:获取社交机器人账号与人类账号公开带标签数据集作为原始数据集,数据集中标签0表示机器人账号,1表示人类账号。删除其中当前已被社交平台封禁的账号信息并提取数据集中有效账号的关键数据信息,包括账号名、定位信息、简介描述、背景墙、头像、原始数据集收集时的粉丝数、关注数、发文数。
[0079]
具体实施时,选用botwiki和verified两个公开带标签数据集,根据提供的标签从两个数据集中随机抽取756个账号,其中包括机器人账号354个和人类账号402个。
[0080]
步骤1.2:标准化处理社交账号的简介描述、定位信息、背景墙设置及头像选项信息。
[0081]
社交平台在用户账号主页公开展示其个人相关信息,其中个人简介、定位信息、背景图作为可选项由用户自行决定是否填写;以个人简介description有无、定位信息location有无、背景图banner有无为评判标准,有则该项特征值设置为1,无则该特征值设置为0。
[0082]
头像选项在账号注册时由平台事先提供默认值,用户可以通过个性化设置将其更
改为其他图片。以头像image图片是否为默认值为评判标准,非默认值设置为1,无则该特征值设置为0。
[0083]
步骤1.3:利用数据挖掘技术扩充原始数据集,利用账号名搜索获取对应账号具体发文内容信息,账号当前的粉丝数、关注数、发文数。
[0084]
对上述756个账号,获取各个账号至少10条以上的发文信息,以及对应获得的点赞、评论和转发数。原始数据集获取于2019年5 月,在此基础上记录当前各个账号的关注数、粉丝数、发文数,用以动态描述社交账号关注数、粉丝数随发文数增加而发生的变化。
[0085]
步骤2:计算账号发文文本多样性:对用户发文内容进行分析,对文本以外内容,从图片、#与@使用、引用、转发四个方面出发,提取账号发文文本多样性特征,并对应填入数据集。
[0086]
社交平台为用户发布内容提供多种形式,包括但不限于配图、# 与@使用、引用、转发,其中#后跟的是主题或者标签,方便该内容与其他同关键字内容相互关联。@后跟他人账号名,提到某用户或者公开对某用户喊话,引起此人注意。一些社交平台在转发和引用上存在差异,即转发不添加评论,保留最初的信息源,而引用可以对应添加自己的评论和看法。上述功能满足的是用户不同的发文需求。
[0087]
步骤2.1:对步骤1获取的各账号具体发文内容进行分析,对文本以外内容,从图片、#与@使用、引用、转发四个方面出发,若推文只包含0种或1种上述形式的账号,其文本多样性特征值va设为 0;推文包含2种或2种以上形式的账号,其文本多样性特征值va 设置为1。
[0088]
步骤2.2:针对每个账号,计算va值并对应填入数据集中。
[0089]
步骤3:计算账号发文文本相似度:使用基于序列相似性度量检测计算各有效社交机器人账号与人类账号一定数量发文内容的文本相似度,返回介于0和1之间的相似分数,将各个账号发文文本相似分数对应填入数据集;
[0090]
针对人类账号与社交机器人在文本相似性sim特征值上的差异,认为“文本越相似,sim值越大,该账号为社交机器人的嫌疑越大”。
[0091]
步骤3.1:鉴于社交机器人发布的推文信息往往是通过程序结合固定模板生成,因此整体上社交机器人账号前后发文内容存在形式单一、结构固定的特点,故定义文本相似度sim为:
[0092][0093]
其中,t为匹配字符数,len(str1)为字符串str1的元素数量,len(str2) 为字符串str2的元素数量,返回值为介于0和1之间的相似分数;
[0094]
步骤3.2:针对每个账号,对步骤1.3获取的各账号前10条发文内容分别两两组合作为str1、str2输入,即对每个账号前10条发文内容两两组合形成90个组合,分别作为str1、str2输入计算sim值,然后90个sim值求和取平均值的结果作为各个账号发文文本相似度 sim特征值填入数据集中。
[0095]
具体实施时,利用python的difflib模块实现。该模块提供的类和方法用来进行序列的差异化比较,它能够比对文件并生成差异结果文本或者html格式的差异化比较页面。该库有两个类, sequencematcher和differ。sequencematcher序列匹配,可以理解成功能
比较丰富的子串匹配;而differ差异,比较的是文本行的差异并且产生适合人类阅读的差异结果或者增量结果。将某一用户发布的前 10条发文内容进行两两比较,利用set_seqs(a,b)函数同时设置两个字符串str1、str2,通过sequencematcher.ratio()函数返回一个取值范围在[0,1]的浮点数作为字符串str1、str2相似性度量。如果两个符串str1、 str2完全相同则该值为1.0,如果两者完全不同则为0。
[0096]
但社交账号sim特征值在区分人类账号与社交机器人账号的功能上并未得到实证,尚未出现明显界线,由此考虑通过绘制特征分布图进一步分析验证sim特征值在检测社交机器人账号上的有效性。
[0097]
步骤3.3:对数据集中sim特征值绘制特征分布图,根据不同账号的sim特征值分布情况验证说明sim特征值在检测社交机器人账号上的有效性。
[0098]
针对人类账号与社交机器人在文本相似性sim特征值上的差异,认为“文本越相似,sim特征值越大,该账号为社交机器人的嫌疑越大”。具体实施时,对数据集中sim特征值绘制特征分布图以验证假设,如图2所示。
[0099]
从sim特征值的分布的情况来看,社交机器人账号发布内容文本相似性普遍偏高,在0.5至1范围内存在可观数量,而人类账号发文文本相似性大多集中在0到0.5区间内,由此说明引入基于序列相似性度量检测以达到社交机器人账号识别目的是可行的,“文本越相似, sim特征值越大,该账号为社交机器人的嫌疑越大”假设成立,sim 特征值在检测社交机器人账号上具有良好的相关性。
[0100]
步骤4:计算账号关注与被关注数比,根据账号当前拥有的粉丝数和当前关注数计算该账号关注与被关注数比,将各个账号关注与被关注数之比对应填入数据集。
[0101]
人类账号社交网络受线下行为影响,往往拥有一定量的忠实粉丝,其社交网络相比机器人账号也更为复杂。社交机器人为了更好的模仿人类用户或者是出于充当“僵尸粉”的目的,会关注大批量的用户,而该账号本身的粉丝数较少,相较于人类账号关注与被关注比值,社交机器人账号在该特征值上往往会出现异常。
[0102]
步骤4.1:鉴于正常人类账号与社交机器人账号社交网络分布的不同,对步骤1获取的账号当前的粉丝数、关注数,定义关注数与被关注数比值ie为:
[0103][0104]
其中,following_now表示账号当前的关注数,followers_now表示账号当前的粉丝数。
[0105]
步骤4.2:计算各个账号ie值并对应填入数据集中;
[0106]
步骤5:计算关注数变化量,对比原始数据集扩充前后两次账号的关注数记录,提取各账号关注数变化量特征,并对应填入数据集;
[0107]
正常人类用户的兴趣爱好会随时间推移发生变化,其反应在社交网络平台上就是关注话题的变化,以及关注者数量和名单的变动。在长时间的数据收集过程中,账号关注数始终不变,将增大该账号为社交机器人账号的嫌疑。
[0108]
步骤5.1:基于原始数据集中包含的社交账号关注数,结合步骤 1获取的账号当前的关注数,得出数据收集期间账号关注数变化量;
[0109]
具体实践时,将当前该账号关注的人的数量减去原始数据集生成时该账号关注的人的数量。
[0110]
步骤5.2:鉴于正常人类用户的兴趣爱好会随时间推移发生变化,反应在社交网络平台上就是关注话题的变化,以及关注者数量和名单的变化,对此定义关注数变化量为fi特征值为:
[0111][0112]
其中,following_now表示步骤1获取的该账号当前的关注数, following_old表示原始数据集生成时该账号的关注数,若两者差值为 0则设置fi值为0,否则fi值为1;
[0113]
步骤5.3:计算各个账号fi特征值并对应填入数据集中;
[0114]
但社交账号fi特征值在区分人类账号与社交机器人账号的功能上并未得到实证,尚未出现明显界线,由此考虑通过绘制特征分布图进一步分析验证fi特征值在检测社交机器人账号上的有效性。
[0115]
步骤5.4:对数据集中fi特征值绘制特征分布图,根据不同账号的fi特征值分布情况验证说明fi特征值在检测社交机器人账号上的有效性。
[0116]
针对人类账号与社交机器人在账号关注数变化量fi上的差异,认为关注数始终不变,即fi值为0时,将增大该账号为社交机器人的嫌疑。具体实施时,就数据集中fi特征值绘制特征分布图以验证假设,如图3a和3b所示。
[0117]
从fi特征分布的情况来看,402例人类账号中仅有1例fi值为 0,其余人类账号fi值均分布在值为1处,而社交机器人账号fi值在0和1处均有分布,因此“fi值为0,将增大该账号为社交机器人的嫌疑”假设成立,fi特征具有良好的相关性。
[0118]
步骤6:计算粉丝变化率,对比原始数据集扩充前后两次账号的粉丝数,并结合在此期间账号的发文总数,提取各账号粉丝变化率特征,并对应填入数据集;
[0119]
步骤6.1:由于社交平台用户通过发文来吸引其他用户参与话题探讨,其粉丝数必然会随着发文的增加而出现波动,对此定义粉丝变化率为fer特征值为:
[0120][0121]
其中,following_now表示步骤1获取的账号当前的关注数, following_old表示原始数据集生成时该账号的关注数,tweet_num表示数据收集期间账号的发文量。
[0122]
步骤6.2:计算各个账号fer特征值并对应填入数据集中;
[0123]
但社交账号fer特征值在区分人类账号与社交机器人账号的功能上并未得到实证,尚未出现明显界线,由此考虑通过绘制特征分布图进一步分析验证fer特征值在检测社交机器人账号上的有效性。
[0124]
步骤6.3:对数据集中fer特征值绘制特征分布图,根据不同账号的fer特征值分布情况验证说明fer特征值在检测社交机器人账号上的有效性。
[0125]
针对人类账号与社交机器人在粉丝变化率fer特征值上的差异,认为fer值越小,则该账号为社交机器人的嫌疑越大。具体实施时,就数据集中fer特征值绘制特征分布图以验证假设,由于原始数据集中不论是社交机器人还是人类账号在fer特征值上分布分散且
横跨区间相对较大,因此对社交机器人账号以及人类账号数据分别就 fer特征值进行升序排序,以期得到更好的特征分布可视化效果,如图4所示。
[0126]
从fer特征值分布的情况来看,社交机器人账号fer特征值更接近于0,究其原因可能在于社交机器人在数据收集期间,大量发布推文信息,而粉丝量并没有随着发文而增多,间接说明社交机器人发布质量不高,内容不足以吸引信息受众。由此,“fer值越小,则该账号为社交机器人的嫌疑越大”假设成立,fer特征具有良好的相关性。
[0127]
步骤7:通过改进的随机森林算法对数据集进行处理,对经上述步骤扩充后的数据集进行分割获得训练集和测试集,而后使用 bagging算法对测试集进行多次有放回的抽样以获取多个训练子集,并对应生成决策树;
[0128]
随机有放回采样即为从数据集中采集固定个数的样本,每采集一个样本后都将样本放回,即之前采集到的样本在放回后有可能继续被采集到。具体实施时,利用bagging算法随机有放回的采集和训练集样本数m等量个数的样本生成训练子集,使得得到的训练子集和训练集样本的个数相同,但是样本内容不同,一个样本即为一个账号以及对应的定位、头像、背景墙、发文内容、粉丝数等信息。实际上,如果我们对有m个样本的训练集做n次的随机有放回采样,则由于随机性,得到的n个训练子集各不相同。
[0129]
步骤7.1:扩充后的数据集d中的每个账号数据由定位信息、简介描述、背景墙、头像、发文文本多样性、发文文本相似度、关注数量变化量、粉丝变化率以及关注数与被关注数之比9个特征属性组成,将数据集d分割为训练集和测试集,使用bagging算法对训练集进行 n次有放回的随机抽样,从而得到n个新的训练子集{db1,db2,

, dbn};
[0130]
对于一个样本,它在m个样本的训练集中某次被随机采样采集到的概率是不被采集到的概率为如果m次采样都没有被采集到的概率是当m

∞时,即在bagging 的每轮随机采样中,训练集中大约有36.8%的数据没有被训练子集采集中。对于这部分大约36.8%的没有被采样到的数据(袋外数据),因为没有参与训练集模型的拟合,所以可以用来检测模型的泛化能力。
[0131]
步骤7.2:对于每个训练子集dbi(1≤i≤n),分别对应生成决策树。
[0132]
随机森林算法使用了cart决策树作为弱学习器,并在使用决策树的基础上,随机森林算法对决策树的建立做了改进,对于普通的决策树,在所有的a个特征中选择一个最优的特征来做决策树的左右子树划分,但是随机森林算法中通过随机选择节点上的一部分特征,这个数字小于a,假设为b,然后在这些随机选择的b个特征集合中,选择一个最优的特征来做决策树的左右子树划分,以期进一步增强模型的泛化能力。
[0133]
步骤7.2.1:社交机器人账号检测模型有9个特征属性,从9个特征属性中随机选取7个属性作为生成决策树当前节点的分裂属性集;
[0134]
如果选择9个特征作为分裂属性集,则此时随机森林算法的 cart决策树和普通的cart决策树没有区别。选择特征数越少,则模型越健壮,当然此时对于训练集的拟合程度会变差,也就是说特征数越少,模型的方差会减小,但是偏倚会增大。
[0135]
步骤7.2.2:对每个训练子集dbi(1≤i≤n),在随机选取形成的分裂属性集中选择最优特征做决策树左右子树划分。
[0136]
决策树生成时主要采用一种程序递归的方式,从根节点开始,分成二棵子树,从子树开始,又继续产生根节点和左右子树,每棵子树继续递归生成新的子树,直到到达叶子节点为止。由根节点,产生左右子树时,需要比较不同属性分裂后的结果的优劣,选择最优的属性分裂产生左右子树,这个比较后分裂的过程称之为节点分裂。
[0137]
步骤8:引入auc决策树分类评价指标:对于步骤7训练生成的决策树,根据auc值进行排序后选择性能较好的决策树生成随机森林模型,利用测试集样本对模型进行测试,计算模型检测的准确性;
[0138]
衡量一棵决策树分类性能好坏的指标有很多,主要通过使用auc指标来评价一棵决策树分类性能的好坏,auc值越大表示这棵决策树的分类性能越好,反之,auc值越小表示这棵决策树的分类性能越差。
[0139]
步骤8.1:对n个训练子集生成的共n棵决策树tj(1≤j≤n)引入 auc决策树分类评价指标进行排序,选择分值较高的前t棵决策树组合到一起生成改进随机森林模型;
[0140]
通常auc的值介于0.5到1.0之间,auc的值越大则对应决策树分类性能越好。auc作为概率值,表示当前分类算法根据计算所得分数将正样本排在负样本之前的概率。本发明通过计算随机森林模型中生成24棵树的每棵决策树auc值,并据此对决策树排序,选取前8棵auc值高的决策树构成新的随机森林模型。为了证实改进算法在社交机器人账号识别方面的有效性,使用传统随机森林算法对相同数据集重复实验一次。
[0141]
步骤8.2:在测试集中,对步骤8.1生成的随机森林模型进行测试,测试集中每个社交账号均得到由t棵决策树输出的t个是否为机器人账号的判断分类结果,采用多数投票法,由决策树数目多的分类结果作为该账号最终分类输出结果;
[0142]
具体实施时,建立生成多个分类器,各自独立地学习和做出预测。这些预测最后结合成单预测,通过几个模型组合的来解决单一预测问题,优于任何一个单分类的做出预测。
[0143]
步骤8.3:将测试集输出结果对比数据集原始自带标签,基于混淆矩阵计算准确率、查准率、查全率三个指标;
[0144]
算法模型建立后需要进行评估来判断模型的好坏,利用训练集建立模型,使用测试集来评估模型。将模型预测结果与样本实际标签值相结合比较,产生真正tp、假正fp、真负tn和假负fn四种情况,其中t表示预测正确,f表示预测错误,p表示阳性,n表示阴性,上述四种情形构成了混淆矩阵,如表1所示。
[0145]
表1分类算法混淆矩阵
[0146][0147]
准确率accuracy:正确检测出的正常和异常样本数除以测试集的全部样本个数。
[0148]
[0149]
查准率precision:度量的是被预测为正例的样本中有多少是真正的正例。
[0150][0151]
查全率recall:度量的是正例样本中有多少被预测为正例。
[0152][0153]
由分类算法混淆矩阵可知,基于随机森林的社交机器人账号检测算法在账号识别过程中会出现误判的情况,即将人类账号误判为社交机器人账号以及将社交机器人账号误判为人类账号两种情况,它们分别对应假正fp和假负fn。对于社交机器人账号检测模型,假正(将人类账号诊断为社交机器人账号)往往可以通过发送验证消息来弥补,基于当前社交平台活动主体大部分是真实人类的现状,假负(将机器账号划分到人类账号中去)对机器人账号的识别效果的影响更为严重。因此,在本文中需要的是高查全率recall,尽量不遗漏正样本。表2 列出利用改进随机森林算法对756个人类账号与社交机器人账号混合数据集进行检测后实验结果。
[0154]
表2基于多维动态特征的社交机器人检测模型识别性能分析
[0155][0156]
1)由表2可知,各组数据的准确率、查准率、查全率均维持0.9 以上水平。相较于准确率和查准率,社交机器人账号检测模型更加关注查全率。从实验数据上来看,第7组数据的查全率均高于或与其他组数据持平,准确率和查准率存在稍低于其他实验组的情况,但综合考虑代价认为这一情况对社交机器人账号的准确识别产生的影响在可控范围内,在实践过程中可以通过向认定的社交机器人账号发送验证消息来有效排除假正的情况。
[0157]
2)在社交机器人账号检测模型中引入文本相似性sim、关注数变化量fi、粉丝变化
率fer等3个特征对提升算法检测准确率有明显帮助。本文对账号发文内容相似度检测采用的是基于文本距离的相似度检测算法,该算法对整体模型造成的复杂度提升影响几乎可以忽略,且运行效果良好。
[0158]
3)综合而言,基于auc评价指标改进的随机森林算法相较于传统随机森林算法检测效果更好通过选取auc值高的决策树作为分类器可以提高模型的分类精度。同时在本实验中,模型分类精度随特征值的增加整体呈上升趋势。由于检测算法对生成的决策树根据auc 值进行了筛选,导致代码的复杂度有所增加,但相较于检测算法准确率的回升,时间和空间代价认为可以接受。
[0159]
以上所述仅为本发明的较佳实施例,并不用以限制本发明的思想,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,包括如下步骤:步骤1,数据集预处理:提取原始数据集中有效社交机器人账号与人类账号的数据记录进行降维操作,并获取对应账号具体发文内容信息、账号当前的粉丝数、关注数、发文数;步骤2,计算账号发文文本多样性:对账号发文内容进行分析,对文本以外内容,从图片、#与@使用、引用、转发四个方面出发,提取账号发文文本多样性特征,并对应填入数据集;步骤3,计算账号发文文本相似度:使用基于序列相似性度量检测计算各有效社交机器人账号与人类账号一定数量发文内容的文本相似度,返回介于0和1之间的相似分数,将各个账号发文文本相似分数对应填入数据集;步骤4,计算账号关注与被关注数之比:根据账号当前拥有的粉丝数和当前关注数计算该账号关注与被关注数之比,将各个账号关注与被关注数之比对应填入数据集;步骤5,计算关注数变化量:对比原始数据集扩充前后两次账号的关注数记录,提取各账号关注数变化量特征,并对应填入数据集;步骤6,计算粉丝变化率:对比原始数据集扩充前后两次账号的粉丝数,并结合在此期间账号的发文总数,提取各账号粉丝变化率特征,并对应填入数据集;步骤7,通过改进的随机森林算法对数据集进行处理:对经上述步骤扩充后的数据集进行分割获得训练集和测试集,而后使用bagging算法对测试集进行多次有放回的抽样以获取n个训练子集,并对应生成决策树;步骤8,引入auc决策树分类评价指标:对于步骤7训练生成的决策树,根据auc值进行排序后选择性能较好的决策树生成随机森林模型,利用测试集样本对模型进行测试,计算模型检测的准确性。2.如权利要求1所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤1具体为:步骤1.1:获取社交机器人账号与人类账号公开带标签数据集作为原始数据集,删除其中当前已被社交平台封禁的账号信息并提取数据集中有效账号的关键数据信息,包括账号名、定位信息、简介描述、背景墙、头像、原始数据集收集时的粉丝数、关注数、发文数;步骤1.2:标准化处理社交账号的简介描述、定位信息、背景墙设置及头像选项信息;步骤1.3:利用数据挖掘技术扩充原始数据集,利用账号名搜索获取对应账号具体发文内容信息,账号当前的粉丝数、关注数、发文数。3.如权利要求1所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤2具体为:步骤2.1:对步骤1获取的各账号具体发文内容进行分析,对文本以外内容,从图片、#与@使用、引用、转发四个方面出发,若推文只包含0种或1种上述形式的账号,其文本多样性特征值va设为0;推文包含2种或2种以上形式的账号,其文本多样性特征值va设置为1;步骤2.2:针对每个账号,计算va值并对应填入数据集中。4.如权利要求1所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤3具体为:步骤3.1:鉴于社交机器人发布的推文信息往往是通过程序结合固定模板生成,因此整
体上社交机器人账号前后发文内容存在形式单一、结构固定的特点,故定义文本相似度sim为:其中,t为匹配字符数,len(str1)为字符串str1的元素数量,len(str2)为字符串str2的元素数量,返回值为介于0和1之间的相似分数;步骤3.2:针对每个账号,对步骤1获取的各账号前10条发文内容分别两两组合作为str1、str2输入,计算90组sim值后求平均值,结果作为各个账号发文文本相似度sim特征值填入数据集中;步骤3.3:对数据集中sim特征值绘制特征分布图,根据不同账号的sim特征值分布情况验证说明sim特征值在检测社交机器人账号上的有效性。5.如权利要求1所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤4具体为:步骤4.1:鉴于正常人类账号与社交机器人账号社交网络分布的不同,对步骤1获取的账号当前的粉丝数、关注数,定义关注数与被关注数比值ie为:其中,following_now表示账号当前的关注数,followers_now表示账号当前的粉丝数;步骤4.2:计算各个账号ie值并对应填入数据集中。6.如权利要求1所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤5具体为:步骤5.1:基于原始数据集中包含的社交账号关注数,结合步骤1获取的账号当前的关注数,得出数据收集期间账号关注数变化量;步骤5.2:鉴于正常人类用户的兴趣爱好会随时间推移发生变化,反应在社交网络平台上就是关注话题的变化,以及关注者数量和名单的变化,对此定义关注数变化量为fi特征值为:其中,following_now表示步骤1获取的该账号当前的关注数,following_old表示原始数据集生成时该账号的关注数,若两者差值为0则设置fi值为0,否则fi值为1;步骤5.3:计算各个账号fi特征值并对应填入数据集中;步骤5.4:对数据集中fi特征值绘制特征分布图,根据不同账号的fi特征值分布情况验证说明fi特征值在检测社交机器人账号上的有效性。7.如权利要求1所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤6具体为:步骤6.1:由于社交平台用户通过发文来吸引其他用户参与话题探讨,其粉丝数必然会随着发文的增加而出现波动,对此定义粉丝变化率为fer特征值为:
其中,following_now表示步骤1获取的账号当前的关注数,following_old表示原始数据集生成时该账号的关注数,tweet_num表示数据收集期间账号的发文量;步骤6.2:计算各个账号fer特征值并对应填入数据集中;步骤6.3:对数据集中fer特征值绘制特征分布图,根据不同账号的fer特征值分布情况验证说明fer特征值在检测社交机器人账号上的有效性。8.如权利要求1所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤7具体为:步骤7.1:扩充后的数据集d中的每个数据由定位信息、简介描述、背景墙、头像、发文文本多样性、发文文本相似度、关注数量变化量、粉丝变化率以及关注数与被关注数之比9个特征属性组成,将数据集d分割为训练集和测试集,使用bagging算法对训练集进行n次有放回的随机抽样,从而得到n个新的训练子集{db1,db2,

,db
n
};步骤7.2:对于每个训练子集dbi(1≤i≤n),分别对应生成决策树。9.如权利要求8所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤7.2包括:步骤7.2.1:从社交机器人账号检测模型的9个特征属性中随机选取7个属性作为生成决策树当前节点的分裂属性集;步骤7.2.2:对每个训练子集dbi(1≤i≤n),在随机选取形成的分裂属性集中选择最优特征做决策树左右子树划分。10.如权利要求2所述的基于特征评价及改进算法的社交机器人账号检测方法,其特征在于,所述步骤8具体为:步骤8.1:对n个训练子集生成的共n棵决策树t
j
(1≤j≤n)引入auc决策树分类评价指标进行排序,选择分值较高的前t棵决策树组合到一起生成改进随机森林模型;步骤8.2:在测试集中,对步骤8.1生成的随机森林模型进行测试,测试集中每个社交账号均得到由t棵决策树输出的t个是否为机器人账号的判断分类结果,采用多数投票法,由决策树数目多的分类结果作为该账号最终分类输出结果;步骤8.3:将测试集输出结果对比数据集原始自带标签,基于混淆矩阵计算准确率、查准率、查全率三个指标。

技术总结
本发明公开一种基于特征评价及改进算法的社交机器人账号检测方法,从社交账号动态变化角度出发选择9个特征属性作为构成数据集的数据,在引入机器学习随机森林算法识别社交机器人账号的基础上,利用AUC决策树分类评价指标,选择其中性能较好的多棵决策树,根据其生成的结果投票产生模型输出。本发明通过构建多维动态特征社交机器人账号检测模型,结合基于AUC评价标准随机森林优化算法,实现社交机器人账号综合代价小、高准确率检测,并通过分类算法混淆矩阵产生的准确率、查准率、查全率作为印证检测方法有效性的三个指标。为印证检测方法有效性的三个指标。为印证检测方法有效性的三个指标。


技术研发人员:罗文华 胡舫舷
受保护的技术使用者:中国刑事警察学院
技术研发日:2022.04.12
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-3221.html

最新回复(0)