随着信息时代的发展, 人们对互联网的依赖性日益增强, 越来越多的人在社交网络上发表自己的看法或者记录自己的生活。社交网络改变了人与人之间交流的方式并且拉近了人与人之间的距离。据2018年新浪微博第四季度财报数据显示, 截至2018年11月, 微博月活跃用户已经增至4.62亿, 与2017年同期相比增长15%, 已成为中国最主要的舆论阵地。由于用户在微博上可以随意发布信息, 因此微博在成为人们日渐重要的社交平台的同时也成为垃圾用户发布垃圾信息的平台。已有研究表明微博中垃圾用户的异常行为会显著降低用户体验, 增加微博社交风险[1-2]。
目前针对垃圾用户已开展了很多研究, 但主要都是针对Twitter和Facebook[3-5], 对微博垃圾用户的研究相对而言起步较晚。垃圾用户包含内容垃圾、僵尸垃圾和封号垃圾等, 僵尸垃圾又称为僵尸粉、社交僵尸, 其多数由程序生成并控制, 目的是增加用户粉丝的数量, 制造出高影响力的假象。除此之外, 部分僵尸粉还会传播各种营销信息, 严重威胁社交平台的安全和公信力[6]。由于僵尸粉一直在不断地学习和模仿正常用户的行为, 导致新浪微博中现存的初代僵尸粉数目已很少, 取而代之的是高级僵尸粉。高级僵尸粉不仅拥有正常的昵称和头像, 还会发布原创微博, 互相给微博点赞和评论。越来越多高级僵尸粉的出现, 给微博僵尸粉账号的检测增加了难度。为准确检测僵尸粉, 本文基于深度学习方法构造一个基于神经网络的僵尸粉识别模型(Zat-NN)。
1 基础研究与相关工作 1.1 相关基础研究情感分析也称为意见挖掘[7], 是自然语言处理领域的一个重要方向, 其是对带有情感色彩的主观性文本进行分析、处理和推理的过程。最初的文本情感分析方法多数是基于情感词词典, 但是人工构建词典需要较大代价, 且预测准确率较低。如今, 情感分析已逐渐引入深度学习方法, 例如文献[8-9]。在将深度学习方法应用于文本分类任务时, 需将单词转换为高维分布向量以捕获关于单词的形态、句法和语义信息。词向量之间的集合关系对应词与词之间的语义关系[10]。本文对微博文本做情感分析时采用词嵌入方法。
长短时记忆(Long Short Term Memory, LSTM)网络是一种特殊的递归神经网络(Recursive Neural Network, RNN), RNN是具有循环结构的网络。与传统RNN不同的是, LSTM能使携带信息跨越多个时间步, 保留时刻t的记忆并允许过去的信息稍后进入, 从而解决梯度消失问题。LSTM单元拥有输入门、遗忘门和输出门, 分别用it、ft和ot表示。图 1是一个标准的LSTM单元结构, 其中, xt是当前时刻的输入向量, ht是当前时刻单元的输出向量, ht-1是前一个时刻单元的输出向量, ct是存储单元, gt是存储单元前一个时刻的状态。
![]() |
Download:
|
图 1 LSTM单元结构 Fig. 1 Structure of LSTM unit |
水军和僵尸粉为垃圾用户的主要组成部分, 两者间有很多相似性, 都是通过程序控制微博账号以达到非法传销、盈利等目的, 并且对微博水军进行研究可以更好地分析僵尸粉的行为。文献[11]基于贝叶斯模型, 通过添加粉丝关注比、平均发布微博数、互相关注数、综合质量评价、收藏数和阳光信用6个特征显著提高水军的识别准确率。文献[12]利用SVM算法, 添加事件参与度、二阶关联性、关系紧密度和引导工具使用率这4个新特征, 既保证了水军的高识别率, 又减少了识别时间。
微博僵尸粉账号检测是一个二分类问题。僵尸粉统称为spammers, 目前国内外已有很多学者对识别僵尸粉进行研究。文献[13]利用用户粉丝数、关注数、博文等特征信息, 采用机器学习相关技术从用户中分离出僵尸粉, 但其仅是针对Twitter上的僵尸粉, 对于国内微博僵尸粉的识别有局限性。文献[3]指出合法用户所发的推特通常和个人描述中所写的兴趣爱好相关, 并且推特内容具有连续性, 通过计算个人描述和推特内容的相似度来区分普通用户和spammers。文献[14]利用朴素贝叶斯、支持向量机、多层感知器神经网络等分类器对Twitter上的用户进行建模和分析, 研究发现推特的平均长度、账号年龄、平均发文时长等特征对检测spammers有重要作用。文献[15]通过从用户的粉丝中挖掘凝聚子群, 结合用户的社会网络关系, 提出一种基于用户粉丝聚类现象的僵尸粉检测模型, 但该方法需要获取每个用户的全部粉丝信息, 实现方法复杂。文献[16]通过构建用户的粉丝数、关注数、微博数、转发数、微博转发情况、微博评论情况、分时段发博数等用户行为特征向量进行僵尸粉识别。文献[17]指出僵尸粉会对传统舆情分析模型造成极大误判, 并根据用户个人信息、博文信息实现基于贝叶斯模型的僵尸粉自动判别。
2 问题定义本节将形式化定义僵尸粉检测, 为更好地表达下文内容, 给出如表 1所示的符号定义及其含义。
![]() |
下载CSV 表 1 符号定义及其含义 Table 1 Definition of symbols and their meanings |
给定一个社交网络G=(V, E), 其中, G为一个有向图, V={U∪C}表示全部微博用户和用户特征集合, U={u1, u2, …, un}表示用户集合, C={c1, c2, …, cn′}表示用户特征集合, E⊂{C×U}表示用户和用户特征之间对应关系的集合, 每一个用户与其用户特征间的关系为eij=(ui, cj), 表示用户ui具有特征cj。本文目标是找到一个预测函数f实现全部微博用户的分类:
$ f:(V,E) \to (Y,Z) $ | (1) |
其中, Y和Z分别代表正常用户和僵尸粉这两个用户类别集合。
3 微博情感特征经过研究发现, 僵尸粉微博中多数为软文广告和无意义词句等, 这与正常用户的微博内容有很大区别。又由于卷积神经网络(Convolutional Neural Network, CNN)可以将长序列转换为由高级特征组成的更短序列, 提取有用特征作为LSTM网络的输入, 因此本文通过添加卷积层来提高情感分析模型的准确率, 并基于CNN-LSTM神经网络对用户原创微博进行情感分析。
3.1 文本情感分析模型CNN-LSTM神经网络模型包含输入层、卷积层、池化层、LSTM层和分类器层, 如图 2所示。
![]() |
Download:
|
图 2 文本情感分析模型结构 Fig. 2 Structure of text sentiment analysis model |
在图 2中, e表示输入文本的长度, d为词向量维数, 则M∈
在将微博文本输入模型前需先对收集到的微博做预处理并删除重复微博。本文用Jieba工具去除停用词, 通过预训练好的词嵌入模型[18]将文本向量化, 在该词嵌入模型中的每个词向量都为
文本情感分析模型求解的目标是使目标函数最小化, 目标函数为:
$ {\rm{min}} \frac{1}{N}\sum\limits_{i = 1}^N L (f(x;\theta ),y) + \lambda J(f) $ | (2) |
其中, N为训练样本数目, L为每个样本的损失函数, f(x; θ)为输入x时函数的预测输出, y为目标输出, J(f)为函数的正则化项。本文采用Adam[19]优化器来加快该模型收敛速度。此外, 为了防止训练时出现过拟合, 使用Dropout[20]方法通过丢弃部分隐藏层神经元来降低过拟合。
采用训练好的文本情感分析模型对每个用户的每条原创微博进行情感预测, 将有明显情感特征的微博标记为1, 没有明显情感特征的微博标记为0, 用户原创微博中情感预测标签为1的微博所占比例作为用户特征表的第11个特征, 即F11。
4 微博非情感用户特征除了微博情感特征外, 本文还提取了10个非情感用户特征, 具体为粉丝数(F1)、关注数(F2)、关注粉丝比(F3)、用户名特征(F4)、用户描述(F5)、微博数(F6)、转发比(F7)、日均转发微博数(F8)、发博工具(F9)和微博影响力(F10), 详见表 2。
![]() |
下载CSV 表 2 微博僵尸粉识别特征 Table 2 Recognition features of microblog zombie fans |
由于高级僵尸粉比普通僵尸粉更加难检测, 因此本文新添加了日均转发微博数(F8)和发博工具(F9)这两个非情感用户特征来提高检测准确率。
4.1 数据获取及特征分析本节对通过某电商平台购买的200个僵尸粉以及微博爬虫爬取的800个正常用户进行特征分析。将该1 000个用户组成的数据集称为小数据集, 并在小数据集上分析并研究用户属性、用户行为和微博内容特征。
4.1.1 用户属性特征用户属性特征具体如下:
1) 粉丝数(F1)。F1为某用户的粉丝总数, 用Fans表示粉丝数, 用户uj的粉丝数表示为Fansuj, 该特征计算公式如下:
$ {\rm{Fan}}{{\rm{s}}_{{u_j}}} = \{ \left\| {{u_i}} \right\||{u_i} \to {u_j},{u_i}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \in {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} U,{u_j}{\kern 1pt} {\kern 1pt} {\kern 1pt} \in {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} U\} $ | (3) |
其中, ui→uj表示用户ui关注用户uj, Fansuj为全体ui的个数。
2) 关注数(F2)。F2为某用户关注的其他用户总数, 用Follow表示关注数, 则用户uj的关注数表示为Followuj, 该特征计算公式如下:
$ {\rm{Follo}}{{\rm{w}}_{{u_j}}} = \{ \left\| {{u_i}} \right\||{u_j} \to {u_i},{u_i}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \in {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} U,{u_j}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \in {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} U\} $ | (4) |
僵尸粉的关注数远高于正常用户, 因为僵尸粉通常通过关注正常用户来获取利益。
3) 关注粉丝比(F3)。F3用FFratio表示关注粉丝比, 该特征计算公式如下:
$ {\rm{F}}{{\rm{F}}_{{\rm{ratio}}}} = \frac{{{\rm{ Follow }}}}{{{\rm{ Fans }}}} $ | (5) |
由于普通僵尸粉关注数很多而粉丝数很少, 因此会导致F3数值较大。
图 3为小数据集中的全部用户粉丝数与关注数分布。
![]() |
Download:
|
图 3 僵尸粉和正常用户的关注数和粉丝数对比 Fig. 3 Comparison of the number of followers and fans of zombie fans and normal users |
可以看出, 僵尸粉和正常用户的关注数、粉丝数分布有很大差异。65%的僵尸粉关注数超过1 000且粉丝数低于500个, 属于较低级别的僵尸粉, 22.5%的僵尸粉拥有的粉丝数超过1 000个, 这与僵尸粉粉丝少的特征相违背。通过对这22.5%的僵尸粉研究, 发现其粉丝中90%以上都是僵尸粉, 说明高级僵尸粉通过互相关注的方式来增加双方的粉丝数。僵尸粉将通过这种互相关注行为来大幅降低关注粉丝比值, 所以为对这类高级僵尸粉进行准确分类, 需要更多有效的用户特征。
4.1.2 用户行为特征用户行为特征具体如下:
1) 用户名特征(F4)。F4用于检测某用户的昵称组成结构是否为“用户+用户id号”, 可以快速分类出这类拥有低级昵称的僵尸粉。
2) 用户描述(F5)。F5为用户注册账号后添加的自我介绍。据统计, 小数据集中有约70%的僵尸粉没有自我介绍, 而正常用户无自我介绍的数量只占20%, 差异显著。由此可知, F5可作为分类僵尸粉和正常用户的有效特征。
3) 微博数(F6)。F6为用户自注册账号以来发布的微博总数。微博总数用Weibonum表示, 包含原创和转载的微博。
4) 转发比(F7)。F7用Retweetratio表示, 该特征计算公式如下:
$ {\rm{Retwee}}{{\rm{t}}_{{\rm{ratio}}}} = \frac{{{\rm{Retwee}}{{\rm{t}}_{{\rm{num}}}}}}{{{\rm{ Weib}}{{\rm{o}}_{{\rm{num}}}}{\rm{ }}}} $ | (6) |
其中, Retweetnum为用户转发的微博数, Weibonum为用户发博总数。转发的微博数衡量了用户与其他用户的互动程度。因为某些僵尸用户只会定期发布原创微博而不会转发他人微博, 所以转发比相较于正常用户会比较小。
5) 日均转发微博数(F8)。F8为本文提出的特征, 用Retweetone表示用户日均转发微博数, Retweetday表示用户有过转发行为的天数, 则Retweetone计算公式如下:
$ {\rm{Retwee}}{{\rm{t}}_{{\rm{one}}}} = \frac{{{\rm{Retwee}}{{\rm{t}}_{{\rm{num}}}}}}{{{\rm{ Retwee}}{{\rm{t}}_{{\rm{day}}}}{\rm{ }}}} $ | (7) |
一些僵尸账号为了制造活跃的假象或者传播营销信息, 通常会在较短时间内大量转发指定用户的微博, 然而正常用户是有针对性的转发自己感兴趣的微博, 所以僵尸粉的日均转发微博数远超过正常用户。图 4为僵尸粉与正常用户的日均转发微博数的累积分布函数(Cumulative Distribution Function, CDF)对比图, CDF图不仅能清晰地描述数据的概率分布, 而且能直观地体现正常用户和僵尸粉在某个特征上的差异。图 4中的两条曲线有明显区别, 表示日均转发微博数(F8)在僵尸粉和正常用户之间有较好的区分度。可以看出, 几乎所有的正常用户日均转发微博数都很低, 而约有20%的僵尸粉日均转发微博数超过5条。该特征较F7更具区分度, 能更准确地检测出部分僵尸粉。
![]() |
Download:
|
图 4 僵尸粉和正常用户日均转发微博数对比 Fig. 4 Comparison of the number of daily forwarded microblogs of zombie fans and normal users |
6) 发博工具(F9)。F9为本文提出的特征, 指用户发布原创微博时的主要工具。若某用户同时用过weibo.com和手机客户端发过微博, 则计算出每个工具各占的百分比, 所占比例最高的工具为用户主要发博工具。对小数据集中的用户发博工具进行统计后发现, 98%的正常用户主要用手机发布微博, 只有2%的正常用户使用浏览器。而大部分僵尸粉发博工具为浏览器, 因为相较于手机微博客户端而言, 网页版更容易用程序控制。
4.1.3 微博内容特征微博内容特征为微博影响力(F10), F10为本文提出的特征, 用Influencew表示微博影响力, 该特征计算公式如下:
$ {\rm{Influenc}}{{\rm{e}}_w} = \frac{{{\rm{Lik}}{{\rm{e}}_{{\rm{num}}}} + {\rm{R}}{{\rm{R}}_{{\rm{num}}}} + {\rm{Co}}{{\rm{m}}_{{\rm{num}}}}}}{{{\rm{Origina}}{{\rm{l}}_{{\rm{num}}}}}} $ | (8) |
其中, Likenum、RRnum、Comnum分别表示用户原创微博所获的点赞总数、转发总数和评论总数, Originalnum为用户所发原创微博总数。F10简单描述为用户平均每一条原创微博所获点赞、转发、评论数之和。僵尸粉虽然会发布原创微博, 但其由于缺乏正常的社交关系, 因此所发微博一般不会有用户去评论、点赞, 导致F10值很低。通过将原创微博所获评论数、点赞数以及转发数相结合, 可以更有效地区别高级僵尸粉。
5 微博僵尸粉识别模型本文提出的Zat-NN模型基于BP神经网络, 由输入层、隐藏层和输出层组成。输入层和输出层的神经元个数分别由输入参数及输出参数个数决定, 如图 5所示。
![]() |
Download:
|
图 5 Zat-NN模型结构 Fig. 5 Structure of Zat-NN model |
Zat-NN模型结构具体如下:
1) 输入层, 其中x1~xk为输入层节点的输入值。在僵尸粉检测中, x1~xk对应于某用户的特征数, 若用户有F1~F11全部11个特征, 则此时xk为x11。
2) 隐藏层, Zat-NN模型共含两层隐藏层, 隐藏层节点个数均设为13个。
3) 输出层, 其中
$ S(\mathit{\boldsymbol{x}}) = \frac{{{{\rm{e}}^\mathit{\boldsymbol{x}}}}}{{{{\rm{e}}^\mathit{\boldsymbol{x}}} + 1}} $ | (9) |
用户判断是否为僵尸粉的规则如下:
$ \hat y = \left\{ {\begin{array}{*{20}{l}} {1,S(\mathit{\boldsymbol{x}}) > \eta ,S(\mathit{\boldsymbol{x}}){\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \in {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} [0,1]}\\ {0,{\rm{ 其他 }}} \end{array}} \right. $ | (10) |
当S(x)大于η时, 用户预测标签
本文设计一个基于Spider框架的分布式爬虫, 用于爬取新浪微博用户的个人信息及所发微博, 微博时间跨度为2014年1月1日——2019年4月30日。经过两个星期的爬取, 共获得15 271个用户信息及1 535 503条微博。采用人工方式对爬取到的用户数据进行标注, 判别分析得到僵尸粉账号1 200个, 通过加入网上购买的800个纯净僵尸粉账号组成2 000个僵尸粉样本。为模拟更加真实的微博环境, 正常用户与僵尸粉的比例设置为4:1。从数据库中提取出8 000个正常用户与2 000个僵尸粉样本混合组成实验原始数据集。Zat-NN模型的训练集和测试集用户个数分布如表 3所示。
![]() |
下载CSV 表 3 Zat-NN模型实验数据集 Table 3 Experimental dataset of Zat-NN model |
CNN-LSTM情感分析模型的训练集是由没有入选原始实验数据集的用户所发的微博组成。人工对每一条原创微博内容进行情感标注, 若微博含有较明显的情感特征, 则将其标记为1, 否则标记为0。最终的微博数据集中共有10万条微博, 其中有61 424条标记为0的微博, 38 576条标记为1的微博。
6.2 数据集预处理对Zat-NN模型实验数据进行预处理, 由于将取值范围差异很大的数据输入到神经网络会造成神经网络学习困难并且会使网络过拟合, 因此需对除F4和F5这两个特征外的9个浮点型类型的特征均做标准化处理, 标准化处理公式如下:
$ f_i^* = \frac{{{f_i} - {\mu _i}}}{{{\sigma _i}}} $ | (11) |
其中, fi*为标准化处理后的特征值, i∈[1, 2, 3, 6, 7, 8, 9, 10, 11], fi为未经处理的特征值, μi为该特征值的平均数, σi为该特征值的标准差。处理后的特征平均值为0, 标准差为1, 将Zat-NN模型预处理后的实验数据集记为D1。需要注意的是训练集和测试集应分开做预处理, 对文本情感分析模型微博数据的预处理为删除重复微博无用标签、特殊符号和停用词, 然后进行分词。
6.3 实验环境与参数设置实验运行环境为Ubuntu操作系统, 2.5 GHz处理器, 8 GB内存, 神经网络模型用Keras实现。实验采用十折交叉验证方法来验证模型性能, 将数据集的10%作为测试集, 余下的90%随机分成10等份互不相交的子集, 每次训练都用9份子集作为训练集, 剩下1份子集作为验证集, 然后交叉验证重复10次。验证准确率取10次训练验证结果的平均值。
实验参数设置如下:CNN-LSTM文本情感分析模型的卷积层卷积核数目为64, 卷积窗口长度为5, 卷积步长设为1, 激活函数采用ReLU, 池化层的最大池化窗口大小为4, LSTM层输出空间维度为70, 学习率设为默认值0.001, dropout比率设置为0.2, 每次训练32个样本; Zat-NN模型的激活函数采用ReLU, 学习率设为0.001, dropout比率设置为0.2, batch_size设为16。
6.4 实验评价指标微博僵尸账号识别结果的主要评价指标为识別准确性, 主要包括正确率(Accuracy)、准确率(Precision)、召回率(Recall)、F1值、假阳率(False Positive Rate, FPR)、ROC曲线。本文采用的是Accuracy、Precision、Recall和F1值这4个评价指标。
1) 正确率计算公式如下:
$ {\rm{Accuracy}} = \frac{{{\rm{ Correc}}{{\rm{t}}_{{\rm{num}}}}{\rm{ }}}}{n} $ | (12) |
其中, Correctnum为被模型正确分类的用户数, n为用户总数。正确率越高, 模型分类性能越好。
2) 准确率计算公式如下:
$ {\rm{Precision}} = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FP}}}} $ | (13) |
其中, TP为被模型正确分类为僵尸粉的用户数量, FP为被模型错误分类为僵尸粉的正常用户数量。
3) 召回率计算公式如下:
$ {\rm{Recall }} = \frac{{{\rm{TP}}}}{{{\rm{TP}} + {\rm{FN}}}} $ | (14) |
其中, FN为被模型错误分类为正常用户的僵尸粉数量。
4) F1值计算公式如下:
$ F1 = \frac{{2 \cdot {\rm{ Precision }} \cdot {\rm{ Recall }}}}{{{\rm{ Precision }} + {\rm{ Recall}}}} $ | (15) |
F1值为准确率和召回率的加权调和平均, 是对准确率和召回率的综合考虑。F1值越高, 模型分类性能越好。
6.5 实验对比模型与结果分析为证明本文构建Zat-NN模型的有效性, 将Zat-NN模型与文献[16, 22]方法进行对比实验, 3种方法的分类结果正确率和召回率如表 4所示。可以看出, 对比文献[16, 22]方法, 本文Zat-NN模型正确率、召回率均最高, 证明了本文方法的有效性。另外, 分析发现文献[16, 22]方法在本文获取到的用户数据集上识别准确率较低的原因为文献[16]方法中添加的用户特征虽然多, 但是其中第9个至第12个用户特征(每天00:00—06:00平均发博数、06:00—12:00平均发博数、12:00—18:00平均发博数、18:00—24:00平均发博数)过于冗余, 现在的高级僵尸粉不会每天固定时间段发布微博, 导致分类效果不明显, 而文献[22]方法中添加的用户特征较少, 无法全面覆盖现有僵尸粉的特征。
![]() |
下载CSV 表 4 僵尸粉识别模型对比实验结果 Table 4 Comparative experimental results of zombie fans detection models |
为验证本文提出3个新特征的有效性, 将Zat-NN模型在删除F8、F9和F11特征后的数据集上进行实验, 并将该实验结果与添加F8、F9和F11特征后的Zat-NN模型实验结果进行对比, 如图 6所示。实验结果表明, 模型添加了新特征后正确率、准确率、召回率和F1值均有提高, 可以看出若使用无新特征的用户集, Zat-NN模型的各项评价指标均有显著下降, 从而说明添加新特征对微博僵尸粉检测的有效性及重要性。
![]() |
Download:
|
图 6 有无添加新特征的Zat-NN模型识别效果对比 Fig. 6 Comparison of the recognition effect of Zat-NN models with or without adding new features |
为验证本文提出的微博情感特征(F11)的有效性, 构建数据集D2, 数据集D2中不包含特征F11。将Zat-NN、贝叶斯(Bayes)、支持向量机(Support Vector Machine, SVM)、K最近邻(K-Nearest Neighbor, KNN)4种模型分别在数据集D1和数据集D2上进行实验, 实验结果见表 5, 其中的D1和D2分别表示模型在添加了微博情感特征的数据集和在未添加微博情感特征的数据集上进行实验。通过对比发现, 在具有同样特征的用户数据集上, Zat-NN模型比传统机器学习模型识别准确率高, 而没有添加微博情感特征的模型评价指标均下降, 其中SVM模型正确率下降4%, 准确率下降5.6%, 召回率下降14%, F1值下降10.2%, 从而验证添加微博情感特征对僵尸粉账号识别的有效性。
![]() |
下载CSV 表 5 有无添加新特征的4种模型识别效果对比 Table 5 Comparison of the recognition effect of four models with or without adding new features |
为证明添加卷积层对情感分析的有效性, 将CNN-LSTM模型与Bayes、SVM和仅含LSTM层的模型进行对比。各模型在验证集上的准确率如表 6所示。由此可知, 融合了CNN层的CNN-LSTM文本情感分析模型准确率最高, 比仅含LSTM层的模型准确率提高了4.7%, 从而证明添加卷积层对文本情感分析的有效性。
![]() |
下载CSV 表 6 文本情感分析模型准确率对比 Table 6 Comparison of the precision of text sentiment analysis models |
同时, 为验证每个用户特征对模型检测的贡献程度, 将神经网络输入层到隐藏层节点的连接权重矩阵的绝对值之和做归一化处理, 设wi为第i个输入层节点权重值, wij为第i个输入层节点的第j个隐藏层节点的连接权重值, 计算公式如下:
$ {\mathit{\boldsymbol{w}}_i} = \frac{{\sum\limits_{j = 1}^n | {w_{ij}}|}}{{\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n | } {w_{ij}}|}} $ | (16) |
其中, m为输入层节点个数, n为隐藏层节点个数。在Zat-NN模型中, m为11, n为32。通过计算得到全部特征的权重向量为W=(0.213, 0.060, 0.122, 0.039, 0.070, 0.062, 0.040, 0.052, 0.105, 0.162, 0.074)。各特征的权重分布如图 7所示, 可以看出, 本文新添加的微博情感特征、日均转发微博数、发博工具这3个特征均具有较大权重, 进一步验证了新添加特征对微博僵尸粉检测的重要性。
![]() |
Download:
|
图 7 特征权重分布 Fig. 7 Feature weight distribution |
据统计, 本文所用的数据集中有589个为高级僵尸粉, 占全部僵尸粉数量的29.5%。这些高级僵尸粉均填写了个人资料及个人描述, 发博数较多且有转发其他用户微博的行为。随着高级僵尸粉所占比例的提升, 僵尸粉检测将会面临更多挑战, 因为微博上有一些不活跃用户, 他们发博数很少或者发博内容不带有明显个人情绪, 微博点赞评论数也很少, 识别模型有时会将这类正常用户错误分类为僵尸用户, 因此如何准确将这类用户和僵尸粉进行有效区分也是一个难点问题。
7 结束语微博僵尸粉是微博垃圾用户的主要组成部分。由于僵尸粉的账号大多数由程序生成并控制, 其账号安全性能低, 容易被攻击者盗用来发送恶意链接、窃取用户的个人隐私, 会给个人信息安全和社会公共安全造成严重威胁, 因此有效分辨并清除僵尸粉对于提高新浪微博及其他社交网络的用户体验至关重要。本文从用户属性、用户行为、微博内容3个方面出发定义11个用户特征, 并且结合自然语言处理方法对微博文本做情感分析, 通过添加微博情感等3个新特征增强了模型鲁棒性。实验结果表明, 该方法的识别准确率较高, 为微博僵尸粉识别提供了一个可行有效的解决方案。下一步将对神经网络识别模型进行多任务学习以捕获更多的僵尸粉用户特征, 从而更有效地区分僵尸粉和不活跃用户。
[1] |
ZHANG Yuxiang, SUN Yan, YANG Jiahai, et al. Feature importance analysis for spammer detection in Sina Weibo[J]. Journal on Communications, 2016, 37(8): 24-33. (in Chinese) 张宇翔, 孙菀, 杨家海, 等. 新浪微博反垃圾中特征选择的重要性分析[J]. 通信学报, 2016, 37(8): 24-33. |
[2] |
PEI W, XIE Y, TANG G.Spammer detection via combined neural network[C]//Proceedings of International Conference on Machine Learning and Data Mining in Pattern Recognition.Berlin, Germany: Springer, 2018: 350-364.
|
[3] |
ALGHAMDI B, XU Y, WATSON J.A hybrid approach for detecting spammers in online social networks[C]//Proceedings of International Conference on Web Information Systems Engineering.Berlin, Germany: Springer, 2018: 189-198.
|
[4] |
COLLADON A F. Measuring the impact of spammers on E-mail and Twitter networks[J]. International Journal of Information Management, 2019, 48: 254-262. DOI:10.1016/j.ijinfomgt.2018.09.009 |
[5] |
FAZIL M. A hybrid approach for detecting automated spammers in Twitter[J]. IEEE Transactions on Information Forensics and Security, 2018, 13(11): 2707-2719. DOI:10.1109/TIFS.2018.2825958 |
[6] |
LIU Rong, CHEN Bo, YU Ling, et al. Overview of detection techniques for malicious social bots[J]. Journal on Communications, 2017, 38(Z2): 197-210. (in Chinese) 刘蓉, 陈波, 于泠, 等. 恶意社交机器人检测技术研究[J]. 通信学报, 2017, 38(Z2): 197-210. DOI:10.11959/j.issn.1000-436x.2017275 |
[7] |
ZHAO Yanyan, QIN Bing, LIU Ting, et al. Sentiment analysis[J]. Journal of Software, 2010, 21(8): 1834-1848. (in Chinese) 赵妍妍, 秦兵, 刘挺. 文本情感分析综述[J]. 软件学报, 2010, 21(8): 1834-1848. |
[8] |
HASSAN A.Deep learning approach for sentiment analysis of short texts[C]//Proceedings of the 3rd International Conferenceon Control, Automation and Robotics.Washington D.C., USA: IEEE Press, 2017: 705-710. https://www.researchgate.net/publication/317701706_Deep_Learning_approach_for_sentiment_analysis_of_short_texts
|
[9] |
RANI S, KUMAR P. Deep learning based sentiment analysis using convolution neural network[J]. Arabian Journal for Science and Engineering, 2019, 44(4): 3305-3314. DOI:10.1007/s13369-018-3500-z |
[10] |
HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735 |
[11] |
ZHANG Yanmei, HUANG Yingying, GAN Shijie, et al. Weibo spammers' identification algorithm based on Bayesian model[J]. Journal on Communications, 2017, 38(1): 44-53. (in Chinese) 张艳梅, 黄莹莹, 甘世杰, 等. 基于贝叶斯模型的微博网络水军识别算法研究[J]. 通信学报, 2017, 38(1): 44-53. |
[12] |
LI Tao, WANG Yuqiao, XIAO Zhijie. Discovery of features for recognition of social networks spammers[J]. Computer Engineering and Design, 2019, 40(5): 1214-1217, 1248. (in Chinese) 李涛, 王渔樵, 肖智婕. 社交网络水军识别的特征发现[J]. 计算机工程与设计, 2019, 40(5): 1214-1217, 1248. |
[13] |
CHU Z, GIANVECCHIO S. Detecting automation of Twitter accounts:are you a human, bot, or cyborg?[J]. Dependable and Secure Computing, 2012, 9(6): 811-824. DOI:10.1109/TDSC.2012.75 |
[14] |
HERZALLAH W, FARIS H, ADWAN O. Feature engineering for detecting spammers on Twitter:modelling and analysis[J]. Journal of Information Science, 2018, 44(2): 230-247. DOI:10.1177/0165551516684296 |
[15] |
TAO Yongcai, WANG Xiaohui, SHI Lei. Detecting zombies in microblog based on the clustering phenomenon of fans[J]. Journal of Chinese Computer Systems, 2015, 36(5): 1007-1011. (in Chinese) 陶永才, 王晓慧, 石磊, 等. 基于用户粉丝聚类现象的微博僵尸用户检测[J]. 小型微型计算机系统, 2015, 36(5): 1007-1011. DOI:10.3969/j.issn.1000-1220.2015.05.021 |
[16] |
ZHANG Xiying, CHE Xin, TIAN Xianyu. A recognition method of zombie fans on micro-blog user's behavior[J]. Journal of Natural Science of Heilongjiang University, 2014, 31(2): 250-254. (in Chinese) 张锡英, 车鑫, 田宪允. 一种基于微博用户行为的僵尸粉识别方法[J]. 黑龙江大学自然科学学报, 2014, 31(2): 250-254. |
[17] |
QIU Xiulian, TIAN Xiaohu, LIAO Wenjian. SEIR microblog public opinion communication model with positive and negative feedbacks[J]. Computer and Modernization, 2018(2): 44-48. (in Chinese) 邱秀连, 田小虎, 廖闻剑. 基于正负反馈的SEIR微博舆情传播模型[J]. 计算机与现代化, 2018(2): 44-48. DOI:10.3969/j.issn.1006-2475.2018.02.010 |
[18] |
LI Shen, ZHAO Zhe, HU Renfen, et al.Analogical reasoning on Chinese morphological and semantic relations[EB/OL].[2019-05-14].https://arxiv.org/abs/1805.06504?context=cs.
|
[19] |
KINGMA D P, BA J.Adam: a method for stochastic optimization[EB/OL].[2019-05-14].https://arxiv.org/abs/1412.6980.
|
[20] |
HINTON G E, SRIVASTAVA N, KRIZHEVSKY A, et al.Improving neural networks by preventing co-adaptation of feature detectors[EB/OL].[2019-05-14].https://arxiv.org/abs/1207.0580v1.
|
[21] |
CHEN K, CHEN L, ZHU P D, et al.Unveil the spams in Weibo[C]//Proceedings of 2013 IEEE International Conference on Green Computing and Communications and IEEE Internet of Things and IEEE Cyber, Physical and Social Computing.Washington D.C., USA: IEEE Press, 2013: 916-922. http://www.researchgate.net/publication/261265842_unveil_the_spams_in_weibo
|
[22] |
WANG Yue, ZHANG Jianjin, LIU Fangfang. A multi-feature Weibo zombie powder detection method and implementation[J]. Sciencepaper Online, 2014(1): 81-86. (in Chinese) 王越, 张剑金, 刘芳芳. 一种多特征微博僵尸粉检测方法与实现[J]. 中国科技论文, 2014(1): 81-86. DOI:10.3969/j.issn.2095-2783.2014.01.016 |