一种基于半监督学习的社交网络垃圾用户过滤方法与流程

文档序号:12364126阅读:312来源:国知局
一种基于半监督学习的社交网络垃圾用户过滤方法与流程

本发明涉及社交网络安全领域,特别是涉及一种基于半监督学习的社交网络垃圾用户过滤方法。



背景技术:

社交网络(Social Networks,SN)的蓬勃发展已经成为全球范围的社会现象,当前社交网络数量激增,用户规模不断扩大。在这些互联网用户群体中,社交网络已经成为他们日常通讯交流无法替代的方式,例如Twitter、Facebook、新浪微博等在线社交网络平台的用户量在近几年增长迅速。社交网络给人们的生活带来便利的同时,因其独特的裂变式传播形态也吸引了大量的垃圾信息(Spam)和垃圾用户(Spammer)。例如,社交网络中的虚假新闻、虚假中奖信息、非法传销信息等垃圾信息每天都在疯狂地传播;网络攻击者通过在社交网络平台创建大量虚假帐号或者盗用用户帐号,发布广告、恶意链接等信息,并诱导用户点击链接,感染用户帐号使其自动转发相应的恶意信息;垃圾用户在短时间内发布和转发大量相同内容的垃圾信息等等。这些垃圾信息不仅影响用户体验、欺诈用户,对用户造成经济损失、甚至人身伤害,而且能够干扰政府部门对特定舆情事件的预测和管控。

当前,检测社交网络垃圾用户的方法大致分为三类:基于用户的举报机制,基于规则和模式匹配的检测方法,以及基于统计机器学习的检测方法。基于用户的举报机制,需要耗费一定的人力成本,并且会受到主观因素的影响,同时只有当垃圾信息出现一段时间以后才可以对其进行处理,有一定的滞后性。基于规则和模式匹配的检测方法,其规则集过于庞大导致系统冗余,并且不能检测新出现的规则,很难提升准确率。因此,前两种方法都需要人工参与,局限性较大,并且随着发送垃圾信息手法的变化,使得Spammer更加难于捕捉。而基于统计机器学习的检测方法正确率高,人工成本低,是当前垃圾信息处理技术中很受欢迎的一种方法。该方法以数据为输入信息,提取数据的特征,抽象出数据的模型,发现数据中的知识,从而对新的数据进行预测分析。根据所选特征值的不同,可以将基于统计机器学习的检测方法分为基于内容特征、用户特征以及综合特征的Spammer检测方法。

传统的Spammer检测方法大多是基于监督学习而建立的分类模型,为了提升分类器的泛化能力就必须加入一定数量的带有标注的样本,然而这类样本的获取是需要人工来进行标注的,既费时又费力,易形成标注瓶颈问题。



技术实现要素:

为克服上述现有技术中存在的缺陷,本发明的目的是提供一种基于半监督学习的社交网络垃圾用户过滤方法。该方法借鉴协同训练算法,将多视图、多分类器运用到大量无标注或有少量标注的社交网络数据中,使不同视图上的分类器相互学习,从而达到数据标注的目的。

为了实现上述目的本发明采用如下技术方案:一种基于半监督学习的社交网络垃圾用户过滤方法,包括以下步骤:

S1:针对某一社交网络,获取多个用户的社交特征X,包括各个用户的消息内容特征和用户行为特征,并将这些特征存储入数据库中。

S2:利用信息增益算法对步骤S1中的特征数据进行排序选取,得到三组贡献度平均的特征向量X1,X2和X3

S3:从步骤S1所述社交网络中取少量用户作为训练样本,并对其进行部分标注,L表示已标注样本集,U表示未标注样本集。

S4:通过自助抽样的方法在已标注的社交用户数据L中随机选取三组不同训练样本集D1,D2和D3

S5:将步骤S2得到的三组贡献度平均的特征向量X1,X2,X3,作为协同训练算法Tri-training的三个视图,通过三个视图上的训练得到垃圾用户的三个初步分类器h1,h2,h3

S6:利用步骤S5得出的三个初步分类器,采用投票的方式完成对未标注样本集x∈U的标注,并作为新的训练样本{x}更新分类器,通过不断迭代更新,使得分类器达到最优。

S7:利用最终得到的分类器对待测用户进行检测。

在以上技术方案中,所述消息内容特征和用户行为特征具体包括:关注数、粉丝数、消息数、注册天数、收藏数、日发消息数、周发消息数、关注数/粉丝数、被转发次数、被评论次数、被赞次数、平均话题数、平均@的用户数、平均URL链接数、平均图片数、消息相似度、平均每条消息中字母个数和平均每条消息中数字个数。

具体地,步骤S2中所述利用信息增益算法得到三组贡献度平均的特征向量的具体方法为:

S21:训练样本集为D,|D|表示其样本容量,即样本个数;C1表示正常用户,C2表示垃圾用户;此时分类系统的熵可以表示为:

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msub> <mi>log</mi> <mn>2</mn> </msub> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mi>D</mi> <mo>|</mo> </mrow> </mfrac> <mo>&CenterDot;</mo> <msub> <mi>log</mi> <mn>2</mn> </msub> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mi>D</mi> <mo>|</mo> </mrow> </mfrac> </mrow>

其中,P(Ci)表示在全部用户中Ci用户所占比例,|Ci|表示Ci用户的个数,其中i=1,2。

S22:在特征选取过程中,x表示特征X出现,表示特征X不出现,那么特征X固定时的条件熵为:

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mi>X</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>P</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>P</mi> <mrow> <mo>(</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> <msub> <mi>log</mi> <mn>2</mn> </msub> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mo>=</mo> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <msub> <mi>log</mi> <mn>2</mn> </msub> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> </mrow>

其中,H(C|x)表示特征X出现的条件下分类系统的条件熵、表示特征X不出现的条件下分类系统的条件熵、P(x)表示特征X出现的概率、表示特征X不出现的概率、P(Ci|x)表示特征X出现的条件下Ci用户的条件概率、表示特征X不出现的条件下Ci用户的条件概率。

S23:根据S21和S22得到的分类系统的熵和特征X固定时的条件熵,得出特征X给系统带来的信息增益为:IG(X)=H(C)-H(C|X),然后对全部特征的信息增益进行排序,得到三组贡献度平均的特征向量。

在以上技术方案的基础上,更进一步,所述协同训练算法Tri-training如下:

S51:令Li为本轮迭代当中加入到分类器hi中的未标记样本,li′为上轮加入到分类器hi中的未标记样本个数,ei′和ei为上轮和本轮当中hj和hk两个分类器的共同错误率,其中i=1,2,3(j,k≠i);

S52:如果ei<e′i,那么对于任意x∈U,如果hk对x的分类结果hk(x)和hj对x的分类结果hj(x)相等,那么就将所有满足条件的样本集合{x}与Li合并,即Li=Li∪{x},然后在L∪Li上更新分类器hi,令e′i=ei,li′=|Li|,对i=1,2,3依次执行上述步骤;

S53:循环执行步骤S52,直到三个分类器对未标记样本都不再变化为止。

具体地,所述计算两个分类器的共同错误率的方法为:假设有z个样本被hj和hk两个分类器判断结果一致,其中结果正确的有z′个样本,那么两个分类器的共同错误率为(z-z′)/z。

本发明使用信息增益算法对高维社交数据特征进行特征选取,不仅实现了降维的目的,而且满足了协同训练算法中对三个视图之间条件独立性的要求,大大降低了训练分类器的时间复杂度,同时也提高了协同训练算法的准确率;本发明通过将半监督学习算法运用到社交网络垃圾用户检测中,有效地利用海量无标注样本数据提高分类器的准确率,同时解决了因需人工标注带来的标注瓶颈问题。

附图说明

本发明的上述和/或附加的方面和优点,结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明的整体流程结构示意图;

图2是本发明的特征选取示意图;

图3是本发明Tri-training算法流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的含义。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

图1是本发明的整体流程结构示意图。如图所示,本发明提供一种基于半监督学习的社交网络垃圾用户过滤方法。首先,对高维社交网络数据进行信息增益特征选取;然后利用Tri-training算法对训练样本集进行训练学习,得到最优分类器;最后采用测试样本集对分类器性能进行评估。具体步聚如下:

S1:针对某一社交网络,获取多个用户的社交特征数据X,包括各个用户的消息内容特征和用户行为特征,并将这些特征存储入数据库中。

S2:利用信息增益算法对S1所得特征进行排序选取,得到三组贡献度平均的特征向量X1,X2,X3

S3:从所述社交网络中取少量社交用户作为训练样本,例如本实施例中选取10%的样本数量作为训练样本,并对其进行标注,假设L表示已标注样本集,U表示未标注样本集。

S4:通过自助抽样的方法在已标注的社交用户数据L中随机选取三组不同训练样本集D1,D2,D3

S5:将步骤S2得到的三组贡献度平均的特征向量X1,X2,X3,作为协同训练算法Tri-training的三个视图,通过三个视图上的训练得到垃圾用户的初步分类器h1,h2,h3

S6:利用S5得出的分类器,采用投票的方式完成对未标注社交用户数据x∈U的标注,并作为新的训练样本{x}更新分类器。通过不断迭代更新,使得分类器达到最优。

S7:利用最终得到的分类器对待测用户进行检测。

本发明是对采集的社交网络用户信息数据和行为数据进行垃圾检测,使用信息增益算法对高维社交数据特征进行特征选取,不仅实现了降维的目的,而且满足了协同训练算法中对三个视图之间条件独立性的要求,大大降低了训练分类器的时间复杂度,同时也提高了协同训练算法的准确率,在实际中更加具有应用价值。

图2是本发明的特征选取示意图。如图所示,首先统计出训练样本集中正常用户和垃圾用户概率,利用下列公式计算出整个分类系统的熵。

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msub> <mi>log</mi> <mn>2</mn> </msub> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mi>D</mi> <mo>|</mo> </mrow> </mfrac> <mo>&CenterDot;</mo> <msub> <mi>log</mi> <mn>2</mn> </msub> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mi>D</mi> <mo>|</mo> </mrow> </mfrac> </mrow>

其中,P(Ci)表示在全部用户中Ci用户所占比例,|Ci|表示Ci用户的个数,其中i=1,2。

然后,统计出某个特征出现的概率,由于在特征选取过程中,只有两种情况,要么特征出现,要么特征不出现。设x表示特征X出现,表示特征X不出现。那么特征X固定时的条件熵为:

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mi>X</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>P</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>P</mi> <mrow> <mo>(</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> <msub> <mi>log</mi> <mn>2</mn> </msub> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>H</mi> <mrow> <mo>(</mo> <mi>C</mi> <mo>|</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mo>=</mo> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <msub> <mi>log</mi> <mn>2</mn> </msub> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mover> <mi>x</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> </mrow>

其中,H(C|x)表示特征X出现的条件下分类系统的条件熵、表示特征X不出现的条件下分类系统的条件熵、P(x)表示特征X出现的概率、表示特征X不出现的概率、P(Ci|x)表示特征X出现的条件下Ci用户的条件概率、表示特征X不出现的条件下Ci用户的条件概率。

最后,根据分类系统的熵和特征X固定时的条件熵,得出特征X给系统带来的信息增益为:IG(X)=H(C)-H(C|X),然后对全部特征的信息增益进行排序,得到三组贡献度平均的特征向量。

本发明采用三组贡献度平均的特征向量分别对Tri-training算法的三个视图进行训练学习。将半监督学习算法运用到社交网络垃圾用户检测中,有效地利用海量无标注样本数据提高分类器的准确率,同时解决了因需人工标注带来的标注瓶颈问题。

图3是本发明Tri-training算法流程图。如图所示,首先算法的输入是社交网络用户的行为数据,通过自助抽样的方法得到三个视图上的训练集,并利用三组训练集得到三个初始化分类器h1,h2,h3;其次,初始化各个分类器的共同错误率ei′以及上轮加入训练集的未标注样本l′;然后计算出本轮共同错误率ei,如果ei<e′i,任取未标注样本集中的数据x,如果hk对x的分类结果hk(x)和hj对x的分类结果hj(x)相等,那么将样本集{x}加入分类器hi的训练集Li中;最后在L∪Li上更新分类器hi,直到三个分类器不再变化为止。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

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