一种基于Spark环境下的微博网络关键用户挖掘系统及方法与流程

文档序号:15386056发布日期:2018-09-08 00:34阅读:467来源:国知局

本发明涉及社交网络数据挖掘技术领域,具体涉及一种基于spark环境下的微博网络关键用户挖掘系统及方法。



背景技术:

随着移动互联网的快速发展,社交网络平台具有越来越丰富的功能和属性,以微信、微博为代表的社交网络平台日活跃用户数均在上亿规模。对社交网络数据进行深入研究,挖掘用户关系、社群研究、舆情监控和用户推荐等方面越来越成为学术界和产业界关注的焦点。

微博平台由于其传播性强、用户量庞大、操作简单等原因成为社交媒体中的重要平台,其高价值用户比例高达76.3%。2018年2月13日,微博发布2017年第四季度财报,2017年12月的月活跃用户数(maus)较上年同期净增约7900万,达到3.92亿。月活跃用户数中93%为移动端用户。2017年12月平均日活跃用户数(daus)较上年同期净增约3300万,达到1.72亿。庞大的用户群和快速的增长量使得微博平台产生的数据量持续高速增长,信息传播属性不断增强、网络关系结构更加复杂,其中蕴含的数据价值也日益成为人们关注的热点。

微博用户研究是社交网络数据挖掘的主要方面,挖掘用户关系,提取潜在价值信息能够使社交网络平台产生重要的商业和社会效益。一般来说,社交网络上亿级的用户规模让用户研究很难精准到每一个人,从用户网络中挖掘出有代表性的关键用户或关键群体,并对他们进行分析和研究是进行用户分析研究的重要手段。社交网络关键用户的一大特点是其发表的消息传播快速且影响广泛,其发表或转发的话题在社交网络上引起众多用户关注、转载或评论,从而形成热点新闻或事件,是对社会舆论有较大影响力的一类用户。通过对社交平台上用户信息的研究发现,关键用户和一般的微博用户在某些特点上有很大的区别,通过综合研究这些信息上的区别和特点可以比较客观的对社交网络用户进行影响力排名,进而挖掘出网络中的关键用户。

已有的社交网络关键用户挖掘方法或因为较少考虑用户综合信息、微博网络拓扑结构等,或仅适用于特定小规模场景且计算过程复杂,导致了挖掘结果不准确、效率不高,在大规模社交网络环境下对关键用户的挖掘效果都不理想。



技术实现要素:

本发明的主要目的在于提供一种基于spark环境下的微博网络关键用户挖掘系统及方法,通过结合网络社群划分和用户多维度综合影响力评价模型从网络拓扑结构和用户综合信息两方面入手,给出了在大规模社交网络中关键用户挖掘的整体框架。通过引入用户主题相似度来表示用户间社群关系的强弱,并应用louvain社群发现算法,既保证了社群发现的高效率,又使得划分结果相对准确;依据微博用户的权威性、传播性、交互性和链接性四个评价指标,相比于已有的用户影响力评价方法,扩展了评价指标的多样性,增强了评价结果的全面性;本系统所有数据处理均在spark分布式计算框架中进行,适应大规模数据场景需求,能够准确、高效地挖掘大规模社交网络中的关键用户。

为实现上述目的,本发明的技术实现方式如下:

一种基于spark环境下的社交网络关键用户挖掘系统,所述挖掘系统包括用户数据获取子系统(11)、数据存储与管理子系统(12)、用户社群挖掘子系统(13)、用户综合影响力评估子系统(14);其中:

用户数据获取子系统(11),用以完成用户个人信息、网络关系信息和历史行为数据的采集,并据此生成用户关系数据集和用户多维度属性数据集;

数据存储与管理子系统(12),用以完成用户个人信息、网络关系信息、历史行为信息、用户多维度特征集等数据信息的存储与管理;

用户社群挖掘子系统(13),用以完成依据用户关注关系、用户主题相似度的社群发现,挖掘用户社群;

用户综合影响力评估子系统(14),根据用户社群划挖掘子系统(13)所划分的用户社群,用以完成依据用户的权威性、传播性、交互性和链接性四个评价指标构建用户评价模型,进行用户综合影响力评估。

所述用户数据获取子系统(11)进一步包括:用户数据采集模块(111)、用户数据解析和生成模块(112);其中:

所述用户数据采集模块(111),用以根据用户微博id,采用网络爬虫和微博api接口相结合方式对微博用户的个人信息、关注关系和行为信息进行分布式爬取。

所述用户数据解析和生成模块(112),用以实现对爬取用户信息的解析、抽取和分类,获取用户的个人属性信息、网络关系信息、历史行为信息等。

所述用户社群挖掘子系统(13)进一步包括:用户主题提取模块(131)、用户主题相似度计算模块(132)、用户社群划分模块(133);其中:

所述用户主题提取模块(131),针对微博用户发表博文信息,采用lda文档主题提取算法,确定用户发表博文主题分布概率,获取用户博文主题分布概率向量;

所述用户主题相似度计算模块(132),用以针对当前用户和其关注用户间社群关系的强弱,采用用户博文主题分布概率向量来表示用户兴趣偏好,并根据其量化值计算用户间的主题相似度;

所述用户社群划分模块(133),将微博网络映射为以用户为结点,关注关系为边,用户主题相似度为边权值的有向加权网络,并应用louvain社群发现算法挖掘用户社群。

所述用户综合影响力评估子系统(14)进一步包括:用户权威性计算模块(141)、用户传播性计算模块(142)、用户交互性计算模块(143)、用户链接性计算模块(144)、用户综合影响力计算模块(145)。其中:

所述用户权威性计算模块(141),用以依据用户数据获取子系统(11)获取的用户基本信息,如用户活跃粉丝数、微博等级、原创微博数、背景学历、专业技能等,评价用户的可信度和权威性。

所述用户传播性计算模块(142),用以依据用户数据获取子系统(11)获取的他人对用户的交互行为信息,如对用户发表博文的转发、评论、点赞、提及、收藏等行为,评价用户的话题影响力。

所述用户交互性计算模块(143),用以依据用户数据获取子系统(11)获取的用户对他人的交互行为信息,如对他人发表博文的转发、评论、点赞、提及、收藏等行为,评价用户的社交主动性。

所述用户链接性计算模块(144),用以依据用户数据获取子系统(11)获取的用户关注关系信息,根据计算节点的度,评价用户在网络拓扑中节点的重要程度。

所述用户综合影响力计算模块(145),用以依据用户权威性计算模块(141)、用户传播性计算模块(142)、用户交互性计算模块(143)、用户链接性计算模块(144)四个模块在用户综合影响力评价中的权重,从用户综合信息和网络拓扑结构两方面衡量用户在社交网络中的综合影响力。

一种基于spark环境下的微博网络关键用户挖掘系统,该系统主要流程如下:

(1)获取触发系统运行指令;

(2)用户数据获取子系统(11)根据种子用户,利用用户数据采集模块(111)对微博用户的个人信息、关注关系和行为信息进行分布式爬取,在用户数据解析和生成模块(112)实现对爬取用户信息的解析、抽取和分类,获取用户的个人属性信息、网络关系信息、历史行为信息等,并将获取的可用数据存储至数据存储与管理子系统(12);

(3)用户社群挖掘子系统(13)由数据存储与管理子系统(12)获取用户发表博文数据和用户关注关系数据,用户主题提取模块(131)以用户发表博文数据为数据源提取用户博文主题概率分布,并构建用户博文主题分布概率向量;用户主题相似度计算模块(132)以用户博文主题分布概率向量和用户关注关系为数据源,计算针对当前用户与其关注用户间的主题相似度,并将结果作为衡量用户间社群关系强弱的权值;用户社群划分模块(133)依据上述计算结果,将微博网络映射为以用户为结点,关注关系为边,用户主题相似度为边权值的有向加权网络,应用louvain社群发现算法挖掘用户社群,并将结果数据保存至数据存储与管理子系统(12);

(4)用户综合影响力评估子系统(14)根据用户社群挖掘子系统(13)挖掘出的用户社群和数据存储与管理子系统(12)获取的用户信息,对每个社群的用户依据用户权威性计算模块(141)、用户传播性计算模块(142)、用户交互性计算模块(143)、用户链接性计算模块(144)、用户综合影响力计算模块(145)综合评价用户在社交网络中的关键程度,并根据计算结果推荐出每个社群的前n个关键用户。

本发明的有益效果是:

如今,主流手机cpu都是四核、八核,而且主频也越来越高,近年来,还出现了64位的处理器,极大的扩展可寻地址范围,加速了指令执行速度,从而提升了处理器计算速度。在充分考虑手机cpu处理性能的前提下,本文基于现有移动设备比如android手机,发明一种基于移动android设备的搭建wlan网络从而建立临时hadoop运行环境的方法。通过分析常规hadoop运行环境和android系统构架,提出了一种通过对android底层开发,将hadoop结构植入android框架的方法,并在此框架下定制一款能够支持hadoop分布式数据处理应用的安卓系统。通过开放相关接口函数能够让开发者针对不同的使用情况开发出满足不同需求的数据处理app提供用户使用。同时,该定制的系统提供控制集群参数设置和总控制开关的系统级app,用户只需要点击该应用里相应的设置项就能够完成对hadoop环境的初始化、hdfs本地存储区域路径选择等hadoop设置。

附图说明

图1为本发明的微博网络关键用户挖掘方法整体系统结构示意图;

图2为本发明的用户数据采集模块流程图;

图3为本发明的用户社群挖掘子系统流程图;

图4为本发明的分布式运算环境物理拓扑图;

图5为本发明的spark分布式运算环境框架图;

具体实施方式

下面结合附图对本发明的实施方法作进一步的详细说明。

本发明的核心思想是:本方法综合了社交网络拓扑结构和用户综合信息两方面内容,给出了在大规模社交网络中关键用户挖掘的整体框架,通过引入用户主题相似度来表示用户间社群关系的强弱,并应用louvain社群发现算法,既保证了社群发现的高效率,又使得划分结果相对准确;依据微博用户的权威性、传播性、交互性和链接性四个评价指标,相比于已有的用户影响力评价方法,扩展了评价指标的多样性,增强了评价结果的全面性,计算中引入主流的spark大数据计算平台,让整个关键用户挖掘既有完整的实施过程,又有实际应用的环境条件。

由于本发明涉及社交网络数据挖掘领域常用的理论与技术,因此需对相关内容作出说明,例如:微博网络、用户社群、用户关系、用户行为、用户博文主题分布概率向量、意见领袖、模块度等。

所述微博网络,指由微博用户、用户博文、用户关系、用户行为等信息构成的复杂网络模型,本文将微博网络形式化描述为一个九元组:

mbn={u,mblog,eumb,euu,fumb,cumb,muu,pumb,collectumb}

其中,u为微博平台上的注册用户集;mblog为用户发表的微博集;

eumb={e=(ui,mblogj)|ui∈u,mblogj∈mblog}为用户与其所发表微博的连接边集;

euu={(ui→uj)|uifollowsuj}为用户通过关注而形成的连接关系集,通过follow关系容易得到用户的粉丝关系集;

fumb={(ui,mblogj)|ui∈u,uiforwardedmblogj}是用户与其所转发的微博的关系集;

cumb={(ui,mblogj)|ui∈u,uicommentedonmblogj}是用户与其所评论的微博的关系集;

muu={(ui,uj)|uimentioneduj}是用户通过@操作而形成的关系集;

pumb={(ui,mblogj)|ui∈u,uipraisedmblogj}是用户与其点赞的微博的关系集;

collectumb={(ui,mblogj)|ui∈u,uicollectedmblogj}是用户与其收藏的微博的关系集。

所述用户社群,指微博网络中存在有相似话题、共同爱好的多个用户组成的社交圈子。形式化定义如下:给定有向网络g=(v,e),网络节点集合为v,网络边集合为e={e=(u,v)|u∈v,v∈v},g用一个|v|·|v|的矩阵a来表示,若边e=(i,j)∈e,则aij=1否则aij=0。微博网络社区就是网络节点集合v的一个m划分方案p=(v1,v2,...,vm),其中vi必

须满足4个条件:

所述用户关系,指微博网络中用户间的相互关注行为,用户间的每一个关注行为都能映射带微博网络中的一条有向边。

所述用户行为,指用户在微博网络中产生的一切社交行为,例如用户发表博文、评论、转发、点赞、提及、关注等,用户行为通常是我们用来探索和描述用户社会化特征的最主要信息来源。

所述用户博文主题分布概率向量,指在用户发表的博文中通过主题提取方法获取到的用户博文主题分布,它们用概率化的形式描述,每一个用户都可以用这样的概率向量来表示出他的话题范围和个人偏好。

所述意见领袖,指其发表的博文传播快而广,其发表或转发的话题在微博平台上引起众多用户关注、转载或评论,从而形成热点新闻或事件,对社会舆论有较大影响力的用户。

所述模块度,指用来衡量一个社区的划分是不是相对比较好的结果,一个相对好的结果在社区内部的节点相似度较高,而在社区外部节点的相似度较低,在一个有权网络中,模块度的定义为:

式(1)中,aij表示连接节点i与j边的权值,如果图里面的边都没有权重,就可以看做1;ki=∑jaij表示所有和节点i相连的边的权值之和,即节点i的度数。ci表示i所属的社团;表示所有边的权重之和,也就是边的数目;代表任一节点与节点j相连的概率;随机情况下,节点i和节点j相连的度数就是值越大,代表当前社区划分与随机情况下差距越大划分的效果越好;式(2)中,δ(u,v)表示u和v是否为同一社区,如果u和v为同一社区此值为1,否则为0。

图1为本发明的总体结构图,如图1所示,所述原型系统主要由用户数据获取子系统11、数据存储与管理子系统12、用户社群挖掘子系统13、用户综合影响力评估子系统14。

具体算法流程说明如下:

步骤111,用户数据采集模块根据种子用户群,通过网络爬虫和新浪微博api相结合的方式快速、高效地爬取用户数据。

步骤112,用户数据解析生成模块对步骤111爬取的数据通过正则表达式进行有效数据解析,进行缺省数据填充工作,并将获取数据存储至数据存储与管理子系统12的hive数据库中。

步骤131,用户主题提取模块采用lda主题提取算法,对用户发表博文数据集进行主题挖掘,并获取用户博文主题分布概率向量。

步骤132,用户主题相似度计算模块根据步骤131获取的用户博文主题分布概率向量集和用户关注关系集合,因为用户博文主题分布概率向量属于稀疏向量,我们选择通过余弦相似度算法计算用户博文主题相似度,余弦相似度是两个向量在n维空间里两者夹角的度数,它是两个向量的点积与各向量范数(或长度)的乘积的商,其计算公式如下:

步骤133,用户社群划分模块在用户关注关系的基础上,引入132步骤计算的用户博文主题相似度来表示用户间社群关系的强弱,将微博网络映射为以用户为结点,关注关系为边,用户主题相似度为边权值的有向加权网络。在上述网络中应用经典的louvain社群发现算法进行社群挖掘,louvain算法是基于模块度的算法,其原理是用某种划分结果的模块内聚性与随机划分结果的内聚性的差值,对划分结果进行评估,找到模块内聚性最优的划分。其具体算法和公式为:

不断遍历网络中的点,将其从原来的社团取出,计算该点加入到各个社团产生的模块性增量,从这些社团中挑选一个对应模块性增量最大的社团,把该点加进去,直到没有点可以移动,将各个社团合并成一个超点。重复上述步骤,直到模块度不再增加。模块性增量是指将一个点从原来的社团取出加入另一个社团后,模块度的值发生变化,计算公式如下:

式(4)中,∑in表示社区c内所有边权值之和;c表示指点i要加入的社团;i表示将要移动的节点;ki,in表示i点到社区c的所有边权值和;∑tot表示所有连接到社团c的边的权值之和。

步骤141,用户权威性计算模块(141)根据用户数据获取子系统(11)获取的用户基本信息,如用户活跃粉丝数、微博等级、原创微博数、背景学历、专业技能等,评价用户的可信度和权威性,计算公式如下:

式(5)中,ci用来分别表示用户粉丝数、原创博文数、被提及数和用户等级,为用户所在社区的m个用户在ci上的平均值。c5表示的是用户的学历情况,本文将其分为大学和大学以下两个层次,分别用1和0来表示:c6表示用户是否被认证,分别用1和0来表示,λ1…λ6分别表示上述各部分对用户权威性的影响权重,λ1+λ2+λ3+λ4+λ5+λ6=1。

步骤142,用户传播性计算模块根据用户数据获取子系统(11)获取的他人对用户的交互行为信息,如对用户发表博文的转发、评论、点赞、收藏等行为,评价用户的话题影响力,计算公式如下:

式(6)中,用来分别计算用户博文被转发、评论、点赞和收藏的总次数,n表示用户发表博文的总条数,mi表示用户平均每条博文被转发、评论、点赞和收藏的次数,表示为用户所在社区的m个用户在mi上的平均值。μ1…μ4分别表示上述各部分对用户传播性的影响权重,μ1+μ2+μ3+μ4=1。

步骤143,用户交互性计算模块根据用户数据采集子系统(11)获取的用户对他人的交互行为信息,如对他人发表博文的转发、评论、点赞、提及、收藏等行为,评价用户的社交主动性,计算公式如下:

式(7)中,用来分别计算用户转发、评论、点赞、提及和收藏的总次数,t表示截取数据时间段的总天数,ri表示用户平均每天转发、评论、提及、点赞和收藏的次数,为用户所在社区的m个用户在ri上的平均值。η1…η5分别表示上述各部分对用户交互性的影响权重,η1+η2+η3+η4+η5=1。

步骤144,用户链接性计算模块根据用户数据获取子系统(11)获取的用户关注关系信息,采用pagerank算法计算节点的度,评价用户在网络拓扑中节点的重要程度,具体的计算公式为:

式(8)中,户为每个用户节点pagerank值,为用户所在社区的m个用户的平均值。pagerank的计算公式如下:

式(9)中,pi为待评价页面,o(pj)表示从页面pj的链接到其它页面的链接集合,i(pi)是链入页面pi的链接集合,d为阻尼系数,表示用户在浏览某个页面后继续以(1-d)的概率浏览某一个链出的页面,或者以d的概率重新选择一个随机页面进行浏览。

步骤145,用户综合影响力计算模块根据步骤141、142、143、144计算的结果和不同模块在用户综合影响力评价体系中的权重,从用户综合信息和网络拓扑结构两方面衡量用户在社交网络中的综合影响力,计算公式如下:

p=a·inf_authority+β·inf_transmissibility+γ·inf_interactivity+θ·inf_linkability(10)

式(10)中,inf_authority、inf_transmissibility、inf_interactivity、inf_linkability是四个评价指标,inf_authority强调用户的可信度;inf_transmissibility强调用户的话题影响力;inf_interactivity强调用户的社交参与程度;inf_linkability强调用户在网络中节点的重要程度。α,β,γ,θ为各指标的参数,分别表示各个指标的重要程度,p为最终用户在某个社群中的综合影响力评估值。

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