一种基于概率图模型的微博水军识别方法
技术领域
本发明涉及一种基于概率图模型的微博水军识别方法,它应用于WEB数据挖掘、舆情监控、谣言检测、水军识别等方面,属于数据挖掘技术领域。
背景技术
微博凭借传播速度快、用户多、便捷等特点风靡整个世界,已经成为最具有影响力的社会媒体。目前中国网民使用微博的比例已经过半,并且成为微博用户世界第一大国。随着微博平台用户量剧增,传播效应的不断扩大,微博也正在成为“网络水军”的主战场,这里称为微博水军(以下简称水军)。
水军利用微博传播媒介,制造公共话题,扭曲网络舆论,并进行各种微博事件或产品的策划、推动、引导,使得某些特定事件、个人、单位的影响力飙升,达到引导舆论导向、获取自我营利等目的。
目前对于判别水军的研究多从传播学的角度出发,单纯的分析微博转发和评论的时序特征、内容特征或者用户的属性特征,然后定性地判别水军,而并没有定量的模型和方法。比如通过分析目标微博的转发时序,通过时序特征寻找某些时刻点,分析这些时刻点附近转发用户的属性特征从而判定这些用户是否为水军。
定性分析的方法在实际应用中有以下几点不足:
(1)定性分析的方法大都需要手工的判别,需要人力的介入。
(2)定性分析的方法在大数据量的微博平台中无论是在准确性还是实现性方面都很难取得很好的效果。
(3)定性分析的方法需要分析很多相关因素,无法达到快速有效的效果。
发明内容
1、目的:以如何在微博平台中自动识别水军用户为研究对象,提出了一种基于概率图模型的微博水军识别方法。
本发明的目的是提供一种自动、有效、快速的识别微博水军用户的方法,它使得在微博平台大数据量的情况下能够进行有效的进行识别。
本发明的原理是:将用户的属性和以往使用微博的行为量化成特征指标,分别为用户的属性特征和行为特征,通过构建属性特征与行为特征之间的概率图结构,将用户为水军的概率视为此图结构中的隐变量,利用样本学习图模型的参数,利用学习后的概率图模型预测其它用户为水军的概率。
2、技术方案:本发明提供的技术方案如下:
本发明是一种基于概率图模型的微博水军识别方法,该方法具体步骤如下:
步骤一:假设用户u通过量化后的属性特征向量为:c=(x1,x2,…,xn),行为特征为:{y1,y2,…,ym}。概率图模型结构如图3,c表示用户的属性特征向量,z表示用户是水军的概率,y表示用户行为特征。设定义4种用户属性特征c=(x1,x2,x3,x4)和4种用户行为特征{y1,y2,y3,y4},其中x1为用户类别,x2为用户活跃度,x3为用户粉丝值,x4为用户好友值;y1为微博原创比,y2为非空转发比,y3为原创微博交互性,y4为非营销活动参与性。
例如:用户u经过量化后的用户类别值为0.4,用户活跃度为1.4,用户粉丝值为3.0,用户好友值为5.6,则用户的属性特征向量为cu=(0.4,1.4,3.0,5.6);对此用户进行行为特征量化所得其微博原创比为0.1,非空转发比为0.3,原创微博交互性为0.5,非营销活动参与性为0.4,则其各行为特征分别取值为0.1,0.3,0.5,0.4。
步骤二:用户的属性特征初步决定着用户为水军的可能性,属性特征越高的用户,其为水军的概率越低。用常用的高斯分布来刻画当给定用户属性特征值后该用户为水军的条件概率:
式中符号说明如下:c为量化后的用户属性特征向量,w为每个特征参数的权重,v为高斯分布的参数值,此处设定为0.5。
同时,用户是水军的概率决定了其各行为特征值的高低,用户为水军的概率越高其行为特征值越低。用Logistic函数来刻画当给定用户为水军的概率后其各行为特征值为1的概率:
式中符号说明如下:z为用户是水军的概率,θt为水军概率决定每一个行为特征的权重参数,b为Logistic函数的偏置参数,此处设定为-1。
由于可能产生过度拟合的问题,用高斯先验概率作为w的先验概率:
假设学习样本的数量为D,利用刚才所述用户属性特征,行为特征与用户为水军的概率之间的关系结构,构建概率图模型如下:
利用最大似然估计方法、EM算法、矩估计等方法在一定数量的样本数据上进行学习,可以估计w,θ的取值和z的取值,其中w,θ为模型的参数值,z为样本数据中各用户为水军的概率取值。
步骤三:利用得到参数取值后的模型,对于新的用户u,通过模型参数w和其属性特征cu={x1,x2,x3,x4},即能得出此用户为水军的概率z=w·cu。
在得到每个用户其为水军概率z的取值后,由于在实际情况中,属性特征值越大的用户其为水军的概率越小,用户为水军的概率越小其各行为特征值越大,所以需要对通过模型得到的用户为水军的概率值z取负,以满足实际情况。同时为了对用户进行是否为水军的分类,可以使用样本学习结果刻画的ROC曲线所得的最好阈值或者通过指定阈值等方法,寻找阈值z′使得满足zi>z′的用户i即为水军用户。
3、优点及功效:本发明的有益效果:本发明所提供的微博水军识别模型能够在各大微博平台中自动、有效而且快速的寻找出其中的水军用户,并且通过一定数量的样本学习之后,可以将该模型部署到在线微博平台中,对于识别微博水军用户或者虚假用户有很好的效果。
附图说明
图1是模型的预测结果ROC曲线示意图
图2是模型的预测结果P-R对比曲线示意图
图3是模型的概率图结构示意图
图4是本方法发明的流程框图
图中符号说明如下:
c表示用户的属性特征向量,z表示用户是水军的概率,y表示用户行为特征;
i表示用户。
具体实施方式
,见图4,本发明一种基于概率图模型的微博水军识别方法,该方法具体步骤如下:
步骤一:新浪微博平台中,假设有4个用户其属性特征向量分别为:
cu1=(0.4,1.4,3.0,5.6),cu2=(0.6,2.0,5.4,3.1),cu3=(0.8,5.2,15.4,16.3),cu4=(1,4.3,17.3,12.3)
其对应的行为特征为:
yu1={0.1,0.3,0.5,0.4},yu2={0.3,0.6,0.4,0.4},yu3={0.7,0.4,0.9,0.6},yu4={0.8,0.9,0.8,0.8}
则形成的学习样本为:
用户 |
属性1 |
属性2 |
属性3 |
属性4 |
行为1 |
行为2 |
行为3 |
行为4 |
A |
0.4 |
1.4 |
3.0 |
5.6 |
0.1 |
0.3 |
0.5 |
0.4 |
B |
0.6 |
2.0 |
5.4 |
3.1 |
0.3 |
0.6 |
0.4 |
0.4 |
C |
0.8 |
5.2 |
15.4 |
16.3 |
0.7 |
0.4 |
0.9 |
0.6 |
D |
1 |
4.3 |
17.3 |
12.3 |
0.8 |
0.9 |
0.8 |
0.8 |
步骤二:由模型得其对数似然函数为:
以下介绍如何通过样本数据,估计模型的参数值:
由于对数似然函数是凹函数,可以通过坐标上升的优化算法迭代更新参数取值,使得似
然函数取得最大值。对对数似然函数各参数求其偏导如下:
由于偏导公式中含有向量且含有多个参数,考虑使用牛顿方法迭代更新每个参数的取值,在每一次迭代更新的过程中,可以加入内部迭代,以始得收敛速度加快。对公式(1)(2)运用牛顿方法如下:
其中,二阶导数为:
由于参数w为向量,利用岭回归求解公式(3)得:
wnew=(λwI+CTC)-1CTz(8)
其中
迭代过程如下所示:
初始化w=(0,0,0,0);θ1=θ2=θ3=θ4=1;zA=zB=zC=zD=1
对于估计所得的用户为水军概率值z,由前述所得应该取其对应的负值。
所以:zA=-2.49,zB=-2.68,zC=-9.52,zD=-9.04
假定阈值z′=-2.5,由于zA>z′=-2.5,zB<z′,zC<z′,zD<z′,所以样本数据集中用户A为水军用户,B,C,D为普通用户。
步骤三:在得到不含未知参数的模型后,能够直接使用此模型对新用户进行是否为水军的预测。在进行预测时,若能取得预测用户的行为特征值,则可以运用公式(4)迭代计算每个用户为水军的概率值z,但在实际的使用情况中,由于取得用户的行为特征值会有比较大的时间和空间开销,并且迭代计算也是复杂的一个过程,所以通过模型的参数w求得用户为水军的概率z。
假设有以下预测用户数据集:
用户 |
属性1 |
属性2 |
属性3 |
属性4 |
E |
0.4 |
2.5 |
6.7 |
2.6 |
F |
1 |
3.0 |
25.4 |
8.1 |
由模型参数w=(0.012,0.255,0.083,0.319)可得:
zE=w·cE=(0.012,0.255,0.083,0.319)·(0.4,2.5,6.7,2.6)=203
zF=w·cF=(0.012,0.255,0.083,0.319)·(1,3.0,25.4,8.1)=547
同样需要对每个用户的z值进行取负操作,所以:zE=-2.03,zF=-5.47,由zE>z′=-2.5,zF<z′可得用户E为水军,用户F为普通用户。
通过新浪数据开放平台抽取的数据,对模型的预测能力做了实验,实验结果如图1和图2。图3是模型的概率图结构示意图。
图1是模型在新浪数据集上的预测能力ROC曲线,曲线上黑点的位置表示最佳分类点位置(阈值),在此点处我们可以得出此阈值下分类结果中的灵敏度(True positive rate)约为70%,对应1-特异度(False positive rate)为7%。
图2表示取得不同阈值下所得的P-R曲线,在ROC曲线所示的最好分类点处也就是阈值取定0.57的时候,可以得到此时分类结果的查准率和查全率分别大概为85%和71%,说明模型在新浪数据集上的预测能力较为准确。