数据挖掘——社交网络水军团体识别

数据挖掘——社交网络水军团体识别

github地址

1.主要工作

​ 将论文的做法应用于自己的数据集。

​ [论文链接](在线阅读-中国知网 (cnki.net))

2.问题背景

​ 随着在线社交网络的不断发展,基于社交网络的信息传播也越来越深入和广泛。然而近年来,有组织的网络水军的出现,导致社交网络上谣言信息盛行、欺诈活动猖獗,造成巨大的社会、经济损失,严重动摇了社交网络的安全基础,最终会影响社交网络的发展前景。所以进行网络水军识别研究是一项迫在眉睫的工作。在庞大的社交网络中,传统的水军识别工作,主要是基于单个特征进行的,没有把水军团体作为识别的目标,这类方法不能全面评价一个水军的特征,识别准确率和效率有提高的空间。

​ 网络水军作为一个带有一定任务的团体,在他们的团体成员结构中会呈现出一种异常特征。基于这一思想,本文提出了一种基于结构与内容的社交网络水军团体识别方法。可以通过挖掘网络水军在社交网络中的结构特征,对社交网络中的水军团体进行识别;并结合节点本身所传播信息的内容特征,对社交网络中的水军团体进行综合分析,从而确认网络水军的身份。具体工作:

(1)挖掘社交网络水军的网络结构特征。根据垃圾信息出现的时间,结合社交网络用户的转发记录构建社交网络中的转发关系网络,寻找其中传播信息能力强的重叠社区结构,初步识别网络水军团体。

(2)用户传播内容的特征挖掘。分析用户所发送内容的特征和垃圾信息的特征,通过度量它们之间的相似度,来判断一个用户是否传播过垃圾信息。

(3)综合用户的结构特征与发布内容的特征识别网络水军团体。在已识别的重叠结构的基础上,度量重叠社区内节点的内容与垃圾信息的相似度,寻找多次传播过垃圾信息的重叠社区节点,确定为网络水军。

3.数据集

SourceIDTargetIDRetweetTimeRetweetText
705509368814651952202022/3/24 22:59快转微博
705509368873342809712022/3/24 23:04最近微博看到太多人间疾苦了!
705509368863190095052022/3/24 23:04难过,年纪大了,眼泪却越来浅
705509368835626167642022/3/24 23:05## 疑似医护人员,因为小区封禁没有得到及时救助而病亡。@北京人应该知道的北京事
705509368827339449002022/3/24 23:05尴尬了…西安的事**又来一次���
705509368822019774322022/3/24 23:05感觉**整个气氛再过一周不缓和,要出zz问题了。
705509368875464991062022/3/24 23:06转发微博
356261676418025336722022/3/24 23:06

4.具体工作

4.1社交网络水军的网络结构特征分析

​ 社交网络拓扑结构是用户在社交活动中遗留的“痕迹”,社交网络中的用户无法去掩盖。从网络拓扑结构的角度,可以体现用户的信息传播能力和影响力,并且社交网络结构的获取较为容易。网络结构中的节点和边分别代表用户和他们之间建立的关系,在分析传播信息能力和影响力的时候,它们都起着关键作用。

​ 社交网络用户利用网络拓扑结构进行信息传播和影响力的放大,而网络水军所在网络的结构特殊性,使得他们传播信息的能力很强。本文所提到的信息传播能力,指的是一个节点有能力影响周围的用户并通过周围用户将信息传播出去,并且有多次传播信息的记录。我们通过分析社交网络结构特征,找出网络结构与影响力大小的联系,间接分析网络结构与信息传播能力大小的联系。

社交网络的结构用图*G(V,E)*表示,用邻接矩阵表示两个用户之间的关系:

figure 1 邻接矩阵

4.1.1对节点和边的度量

(1)节点的中心度

(2)节点的出度和入读

(3)紧密中心度

(4)介数中心度

(5)基于随机游走特征的度量

(6)局部聚集系数

(7)Jaccard 相似度与边介数

这些对接下来的工作贡献不大,略过…

4.1.2重叠社区结构的引入

​ 计算社交网络中的影响力可以通过使用上一小节的方法遍历网络拓扑中的每一个节点计算得到,但是如果直接将节点的影响力作为判断节点是否为水军的依据,会有两个弊端存在:一、在亿量级的社交网络节点上算法的运行时间将接近于无穷大;二、有些节点的影响力是天生的,比如影视明星,即使明星从不发送任何东西,他们仍然有很大的影响力。所以,在论文中,作者提出信息传播能力的概念,通过信息传播能力判断网络水军,更加合理、准确,它既体现了节点的影响力,又体现了节点有较强的传播信息意愿。

​ 社交网络中,在一条信息传播之前,我们规定网络中的节点只有两个状态:激活态和非激活态,并且每个节点的状态只能由非激活态变成激活态,而不能由激活态再变为非激活态,也就是说,我们的激活过程是不可逆的,只是单一的一个方向变化。两个节点之间可能不相邻,但是可以通过其他节点相互联系。当一个节点与越多的其他节点直接或者间接的相邻,则它传播的信息就会有更大的可能被更多的节点接受(激活),而继续向其他节点传播。通过其它文献对节点传播影响力的分析可知,某节点的传播能力与和其直接相连的社区的数目有关,越多则传播速度越快,且传播范围越广。进一步分析,若某节点隶属于多个社区,则它的传播能力应该更强,因为它不仅连接了多个社区,还直接与这些社区里的成员有直接的连接,重叠社区中的节点就具有这样特性。重叠社区结构作为多个社区的共有部分,可以将所要推广的信息传递给各个社区里的成员,由各个社区里的成员继续推广下去。在现实中,这种现象很常见,推销人员常常注册很多 QQ 账号,加入几百个 QQ 群,向每个 QQ 群发送推广信息,以达到他们推广信息的目的。通过挖掘转发关系网络中的重叠社区结构,初步识别社交网络中的水军团体。

4.2构建社交网络中的转发关系网络

​ 在以往的水军识别研究中,都是在整个网络中识别水军,这种做法还是存在一个巨大计算量的问题。由于社交网络存在庞大的数据,节点以及边的数量都是千万级别的,使得在整个网络上检测网络水军容易产生计算风暴,无法运用到实际的社交网络水军识别工作中。

​ 因此作者提出了一个新的方法:利用垃圾信息出现时间点后 10 小时内,发布过信息的用户作为种子节点,这其中就包括了传播过垃圾信息的节点;根据社交网络中的以往这些种子节点的转发记录,通过深度遍历来构建社交网络中的转发关系网络,由于六度分隔理论,本文中的遍历深度不超过 3 层。垃圾信息出现的时间,就是网络水军们活动的时间,通过这种做法,既减少了数据的规模,避免在全网络进行识别工作;又排除了很多与此垃圾信息无关的数据,提高水军识别的效率和准确率。

​ 构建社交网络中的转发关系网络的伪代码如下:

输入:种子节点集SEED(垃圾信息出现时间点后10小时内,传播过信息的用户)
输出:转发关系网络G
WHERE (节点集SEED非空):
	IF (∀n∈SEED && n有过转发行为):
	THEN 以n为起点,根据节点转发记录进行深度遍历(深度不超过3层,遍历过程中将两有转发历史的两个节点连边);
	ELSE SEED-n;//将节点n从SEED中删除
	SEED-n
RETURN G
4.2.1代码

​ 在构造社交网络时,我使用了python中的networkx库,它可以很方便地建立节点和边,也可以查询相邻节点和相邻边等等。代码存放于

(github地址)里的network_3.ipynb,欢迎查看和指正。

4.2重叠社区结构发现算法

4.2.1定义引入

定义 3.1 边e=(u,v)的邻居边N(e),指的是分别与节点u和v相连且不包括e的边集合,即:
N ( e ) = { l = ( v , i ) ∈ E ∣ i ∈ N ( v ) } ∪ { l = ( u , j ) ∈ E ∣ i ∈ N ( u ) } − { e } N(e)=\{l=(v,i)\in E\mid i\in N(v)\}\cup\{l=(u,j)\in E\mid i\in N(u)\}-\{e\} N(e)={l=(v,i)EiN(v)}{l=(u,j)EiN(u)}{e}
定义3.2 边 e 的 ε 领域 Nε(e) 是指在边e的邻居N(e)中,与边e的相似度大于或者等于ε的边集合,即:
N ε ( e ) = { l ∈ N ( e ) ∣ s ( l , e ) ≥ ε } N_{\varepsilon}(e)=\begin{Bmatrix}l\in N(e)|s(l,e)\geq\varepsilon\end{Bmatrix} Nε(e)={lN(e)s(l,e)ε}
定义3.3 若一条边 e 的 ε 领域中的边数|Nε(e)|≥μ ,则称 e 为核心边。

定义3.4 若边e为一个核心边且边 l 属于 e 的 ε 领域时,称边 l 直接密度可达于 e ,即:
D i r Re ⁡ a c h ( e , l ) ⇔ e . C o r e = t r u e ∧ l ∈ N ε ( e ) Dir\operatorname{Re}ach(e,l)\Leftrightarrow e.Core=true\wedge l\in N_{\varepsilon}(e) DirReach(e,l)e.Core=truelNε(e)
​ 根据定义 3.1~3.4,算法的第一步是在本文的转发关系网络中,找出所有的链接社区;若某条边不属于任何社区,则它为孤立边,被自然排出在外。第二步,再根据下面的定义 3.5和定义 3.6,将链接社区集合转化为相应节点社区集合,最终找出重叠社区结构。

定义 3.5 节点社区 C 即为链接社区 LC 中所对应的所有边的连接节点:
∀ e = ( u , v ) ∈ L C ⇒ u ∈ C ∧ v ∈ C \forall e\mathrm{=}(\mathfrak{u},\mathfrak{v})\in LC\Rightarrow u\in C\wedge v\in C e=(u,v)LCuCvC
定义3.6 如果存在两条边被同一节点 v 连接,同时这两条边分别属于不同的链接社区LC 时,节点 v 即本文所寻找的重叠社区结构 OS 中的一员:
O S ( v ) ⇔ ∃ u 1 , u 2 , L C 1 , L C 2 ( u 1 ≠ u 2 ∧ L C 1 ≠ L C 2 ) : e = ( v , u 1 ) ∈ L C 1 ∧ e = ( v , u 2 ) ∈ L C 2 \begin{aligned}&OS(v)\Leftrightarrow\exists u_1,u_2,LC_1,LC_2(u_1\neq u_2\wedge LC_1\neq LC_2):\\&e=(v,u_1)\in LC_1\wedge e=(v,u_2)\in LC_2\end{aligned} OS(v)u1,u2,LC1,LC2(u1=u2LC1=LC2):e=(v,u1)LC1e=(v,u2)LC2

4.2.2算法介绍

重叠社区结构发现算法按四步走:

  1. 先将网络中的每一条边设置为未被分类。遍历每一条未被分类的边,计算该边是否为核心边,若是则找出所有与之直接密度可达的边,构造链接社区LC
  2. 所有链接社区LC构成链接社区集合LCS
  3. 遍历LCS中的每一个链接社区LC,建立对应的节点社区C,得到节点社区集合CS
  4. 寻找同时加入多个节点社区的节点,即重叠社区中的一员。
4.2.3代码实现

4.3基于结构与内容的水军团体识别

LCS
3. 遍历LCS中的每一个链接社区LC,建立对应的节点社区C,得到节点社区集合CS
4. 寻找同时加入多个节点社区的节点,即重叠社区中的一员。

4.2.3代码实现

4.3基于结构与内容的水军团体识别

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
可以检测文章的原创度 ,破解版的无错,帮助seo更好的写文章。 在百度对文章原创度日益严苛的今天,准确把握站内文章原创细节,杜绝站内、站外雷同甚至近似的文章出现,做到真正的“原创”,并提供可靠参考数值用来帮助评定编辑工作标准。 软件用途: 1.在日常编辑管理工作中,本工具可检测一篇文章中,每个段落在网络上出现的次数(即飘红次数),进而得出文章原创部分百分比。 2.有效避免文字不同思路相同的简单伪原创方法(因为百度已可以识别,推荐多文章混合伪原创),通过整篇文章检测结果中的网址,可以找到与站内文章主题、论点相似的文章也就是近似文章,就算排版不同、替换近义词、增加原创段落,也依然也可以找到。 2.提供原创文章百分比(根据飘红数量),提供相似文章数量(数值不准,但可以准确反映出相同文章的规模大小),可用来改进外推文章选择和制定编辑工作评定衡量标准。 水军十万文章原创度检查工具 使用本工具因为飘红检查依赖搜索引擎所以,必须联网才能正常使用本工具; 其次,手工复制要检查的站内文章,将其粘贴在软件第一个文本框内; 再次,点击检查; 再再次,稍等片刻过后,相似文章数量,文章原创度都会显示出来。但建议你看看"整篇文章原创度检测结果"中的内容,第一条网址一定是最相似的,如果有一模一样的文章一定会排第一,如果没有找到相似的文章,也会出现结果,但第一条网址你一打开就能发现是不是相似度很高,毕竟理论上不存在毫不相关的文章,所以一定会找到结果,只是结果与检查文章在阅读起来的相似程度不一样罢了; 再再再次,软件上面的那些数字小参数如原创检测标准等,推荐不要修改直接用默认的,原创检测标准是判断原创段落的飘红次数,在几次之内算原创;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值