社交网络节点影响力排序方法及系统与流程

文档序号:16681686发布日期:2019-01-19 00:34阅读:480来源:国知局
社交网络节点影响力排序方法及系统与流程

本发明涉及数字信息处理技术领域,具体涉及一种社交网络节点影响力排序方法及系统。



背景技术:

信息时代,人与人的关系的分析是衡量个人价值,推广相关产品,实现舆情监控,规划相关建设的重要基石之一。据统计截止2017年3月,安卓和苹果应用市场一共拥有约为500万款的app,如何更好地向用户推荐app是提升用户体验和增加企业营收的关键性问题,但现有app推荐策略主要基于用户个人信息,并没有考虑社交网络中用户群体影响力对其产生的影响。然而用户在下载或购买app时必然会受到社交网络好友的影响。因此,个性化推荐算法中融入网络用户间的社交影响力的收益及如何融入等问题,都是社交网络分析所关注的问题。社交网络即包括个人身边的线下就交友关系网络,也包括线上社交应用建立的社交关系,这类网络又可分为单向关注式的弱链接网络和双向好友式的强链接网络。

关注人与人的关系的方法从传统的社会学与心理学方式逐渐扩散到信息互联网领域,凭借着大量信息获取能力和大量数据挖掘算法以及相关排序排名算法,得以实现对线上社交网络分析。

用户对线上交流影响力能够凭借用户相互之间活动状况表现出来,即网络用户动作与思维受到其余人动作和思维影响变化。而网络中影响能力较大人物在网络构建、扩撒、转贴等多个步骤环节中起着影响效果巨大关键作用。因此,如何评价社交网络用户影响能力,在社会网络中对用户进行排序,获得重要影响力用户节点是线上网络个人影响力讨论里面最基本问题要求。社会网络中节点影响力和排序往往是后续相关的社会网络讨论与研究基础。

网络节点影响力和排序的早期分析方法主要采用非网络化和数据化方式,比如问卷填写,电话调查等,这类方式获取资料少,时间延迟大,存在诸多问题。

随着互联网技术及个人移动网络技术的迅速发展,通过线上社交网络海量数据作为数据支持,使用方式主要包括分析关注关系网络结构、转贴记录和用户活动/内容词义辨析,从而提炼出用户对消息转贴可能性,据此排序统计用户之间成功传播对的数目学习影响力,并通过伯努利模型和杰卡尔德指数模型估算用户间的传播概率作为影响力。

在这期间,诸多优秀算法被提出与应用,如pagerank算法是对所有节点给一个相同的初始算法值,然后进行数轮迭代,直到迭代后算法值基本不变,此时节点的算法值就是最终排名依据的算法值,该值越大节点影响力越大。由于pagerank在解决排序不是唯一等问题时使用了素数修正,导致矩阵结构发生较大变形,因此改进leaderrank算法被提出,更好减小了修正带来影响,保证结果可靠。社会网络的分析是一个复杂的问题,不是单靠某一种方法能解决的,而是需要综合考虑各种因素进行优化组合,识别出最终的社会角色和影响力。

随着网络安全与信息泄露风险越来越受到重视,以往算法在信息收集上遇到了一些问题,以对新浪微博爬虫爬取信息为例,目前常规方式下,微博为了保护用户信息,避免信息泄露风险,已经不允许爬取关注人与粉丝信息,用户关注收集建立面对着复杂情况。而对于用户历史发帖内容保护也是越来越规范和严格,这导致可能无法获得不少用户发帖和转贴信息。而这些信息往往是经典影响力分析算法必要资料。



技术实现要素:

本发明的目的在于提供一种能够综合社交网络用户信息,准确判断社交用户节点影响力及其排序的方法和系统,以解决上述背景技术中存在的现有社交网络节点影响力分析方法考虑因素片面、结果不准确的技术问题。

为了实现上述目的,本发明采取了如下技术方案:

一方面,本发明提供一种社交网络节点影响力排序方法,该方法包括如下流程步骤:

步骤s110:收集用户个人主页信息、用户发帖信息和用户对信息,对所述个人主页信息、所述用户发帖信息和所述用户对信息进行预处理,形成训练集和测试集;

步骤s120:根据所述训练集,建立帖子的转移矩阵模型,对所述转移矩阵模型进行仿真计算,获取最优训练参数;

步骤s130:根据所述测试集结合所述最优训练参数建立帖子转发的测试转移矩阵,对所述测试转移矩阵进行计算,获取所述社交网络节点影响力排序结果。

进一步的,所述步骤s110具体包括:

收集个人主页信息、用户发帖信息和用户对信息,形成数据集;其中,所述个人主页信息至少包括用户id、用户发帖总数、用户活跃时长、用户被关注人数、用户关注人数;

所述用户发帖信息,至少包括帖子的被转发数和帖子的被评论数;

所述用户对信息包括用户与用户之间的关注关系;

将所述数据集按需求切割为训练集和测试集,所述训练集包括训练集户个人信息和训练集用户对信息;所述测试集包括测试集户个人信息和测试集用户对信息。

进一步的,所述步骤s120中,所述根据所述训练集建立帖子的转移矩阵模型具体包括:

步骤s121:确定所述训练集中帖子转发的用户对影响因子f1:

其中,iu表示用户u被关注人数,sv表示用户v的关注人数;

步骤s122:确定所述训练集中帖子转发的用户自身影响因子f2:

其中,x表示社交网络对用户u的转贴和评论重要程度的权衡,mu表示用户u的发帖总数,tu表示用户u的活跃时长,zu表示用户u的帖子的被转帖数,pu表示用户u的帖子的被评论数;

步骤s123:确定所述训练集中帖子转发的总影响因子fuv:

fuv=1-exp(-(f1)m×(f2)1-m),其中,m表示训练参数,即f1和f2的权衡参数;

步骤s124:利用k-shell分解算法,获取所述训练集中用户u转发自己帖子的概率puu:

其中,n表示用户节点个数,ksu表示用户u的k-shell值;

步骤s125:确定所述训练集中用户u的帖子的被转发概率puv:

步骤s126:根据puu和puv,得到所述训练转移矩阵p:

进一步的,所述步骤s120中,所述对所述转移矩阵模型进行仿真获取最优训练参数具体包括:

根据帖子被转发数量平均值排名依次选取所述训练集中c个用户和对应的真实转贴数mc,多个不同的m值对应多个不同的训练转移矩阵p,采用独立级联模型分别对每个p进行传播仿真实验,获得c个用户的期望平均转贴数fc;

确定误差mape值:

其中,c={1,...,c};

选择mape值最小的p对应的训练参数作为最优训练参数。

进一步的,所述步骤s130中,所述根据所述测试集结合所述最优训练参数建立帖子转发的测试转移矩阵具体包括:

根据所述测试集,选择所述最优训练参数作为f1和f2的权衡参数,按照所述步骤s121-步骤s126的方法建立所述测试转移矩阵。

进一步的,所述步骤s130中,所述对所述测试转移矩阵进行计算获取所述社交网络节点影响力排序结果具体包括:

设各用户值向量st的初始值均为1,使用马尔科夫迭代得到稳定收敛值,其计算过程为:

st=(1...1)1×n×pm,

重复以下过程,直至前后两次用户值向量欧几里得范数误差小于预定精度时,停止迭代过程,得到稳定收敛算法值s:

s=st1×n×pm,

将所得稳定收敛算法值s的各项值作为每个用户的算法值,比对其大小,获取所述社交网络节点影响力排序结果。

另一方面,本发明提供一种社交网络节点影响力排序系统,该系统包括:

数据预处理模块,用于收集用户个人主页信息、用户发帖信息和用户对信息,对所述个人主页信息和所述用户发帖信息进行预处理,形成训练集和测试集;

训练模块,用于根据所述训练集,建立帖子的转移矩阵模型,对所述转移矩阵模型进行仿真计算,获取最优训练参数;

测试模块,用于根据所述测试集结合所述最优训练参数建立帖子转发的测试转移矩阵,对所述测试转移矩阵进行计算,获取所述社交网络节点影响力排序结果。

进一步的,所述数据预处理模块具体包括:

收集个人主页信息、用户发帖信息和用户对信息,形成数据集;其中,所述个人主页信息至少包括用户id、用户发帖总数、用户活跃时长、用户被关注人数、用户关注人数;

所述用户发帖信息,至少包括帖子的被转发数和帖子的被评论数;

所述用户对信息包括用户与用户之间的关注关系;

将所述数据集按需求切割为训练集和测试集,所述训练集包括训练集户个人信息和训练集用户对信息;所述测试集包括测试集户个人信息和测试集用户对信息。

进一步的,所述训练模块包括:

用户对影响因子确定单元,用于根据所述用户对中一个用户的被关注人数和另一个用户的关注人数确定帖子转发的用户对影响因子;

用户自身影响因子确定单元,用于根据所述一个用户的发帖总数、活跃时长、帖子的被转发数和帖子的被评论数,确定所述帖子转发的用户自身影响因子;

总影响因子确定单元,用于根据所述用户对影响因子和所述用户自身影响因子的权衡参数,确定帖子转发的总影响因子;

用户自转发概率确定单元,用于利用k-shell分解算法,获取所述一个用户转发所述帖子的概率;

帖子被转发概率确定单元,用于确定所述一个用户的帖子的被其他永用户转发的概率;

转移矩阵模型建立单元,用于根据所述用户转发自己帖子的概率和所述帖子的被转发概率建立帖子的转移矩阵模型;

最优训练参数确立单元,用于采用独立级联模型分别对转移矩阵模型进行传播仿真实验,获得期望平均转贴数,确定误差mape值,选择mape值最小的转移矩阵对应的训练参数作为所述最优训练参数;

进一步的,所述测试模块包括:

测试转移矩阵建立单元,用于根据所述测试集结合所述最优训练参数建立测试转移矩阵;

影响力排序确立单元,用于对所述测试转移矩阵进行计算获取所述社交网络节点影响力排序结果。

本发明有益效果:能够发现隐藏节点关注可能性,从而能够对动态信息不完整、缺失较严重的数据网络进行影响力排名分析,提供一般算法因缺失数据无法进行分析时的补充方案,更加准确的分析社交网络节点影响力。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一所述的社交网络节点影响力排序系统原理框图。

图2为本发明实施例二所述的社交网络节点影响力排序方法流程示意图。

图3为本发明实施例三所述的社交网络节点影响力排序系统原理框图。

图4为本发明实施例四所述训练集k-shell值与对应用户转贴情况示意图。

图5为本发明实施例四所述的最优转移矩阵参数m的计算结果图。

图6为本发明实施例四所述的测试集k-shell值与对应用户转贴情况示意图。

图7为本发明实施例五所述的对比图像效果验证图。

图8为本发明实施例五所述的对比kendall检验验证图。

图9为本发明实施例五所述的对比具体排名验证图。

图10为本发明实施例四所述的社交网络节点影响力排序方法流程示意图。

具体实施方式

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

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

为便于对本发明实施例的理解,下面将结合附图以具体实施例为例做进一步的解释说明,且实施例并不构成对本发明实施例的限定。

本领域普通技术人员应当理解的是,附图只是一个实施例的示意图,附图中的部件或装置并不一定是实施本发明所必须的。

实施例一

如图1所示,本发明实施例一提供一种社交网络节点影响力排序系统,该系统包括:

数据预处理模块,用于收集用户个人主页信息、用户发帖信息和用户对信息,对所述个人主页信息和所述用户发帖信息进行预处理,形成训练集和测试集;

训练模块,用于根据所述训练集,建立帖子的转移矩阵模型,对所述转移矩阵模型进行仿真计算,获取最优训练参数;

测试模块,用于根据所述测试集结合所述最优训练参数建立帖子转发的测试转移矩阵,对所述测试转移矩阵进行计算,获取所述社交网络节点影响力排序结果。

在本发明具体实施例一中,所述数据预处理模块具体包括:

收集个人主页信息、用户发帖信息和用户对信息,形成数据集;其中,所述个人主页信息至少包括用户id、用户发帖总数、用户活跃时长、用户被关注人数、用户关注人数;

所述用户发帖信息,至少包括帖子的被转发数和帖子的被评论数;

所述用户对信息包括用户与用户之间的关注关系;

将所述数据集按需求切割为训练集和测试集,所述训练集包括训练集户个人信息和训练集用户对信息;所述测试集包括测试集户个人信息和测试集用户对信息。

本发明实施例一所述的数据预处理模块在实际应用中,主要用于获得数据集,所述的数据包括3类:第一类是个人主页信息,至少包括用户id、用户发帖总数、用户等级或活跃时长、用户粉丝(用户甲关注用户乙则称甲为乙的粉丝)数、用户关注人(用户甲关注用户乙则称乙为甲的关注人)数;第二类是用户发帖信息,至少包括部分帖子的被转发数与被评论数;第三类是用户间关注关系,至少包括部分用户间的关注关系;

对数据集进行简单预处理,生成所需形式,对数据集进行广告过滤等简单清洗,按需求切割为训练集和测试集,然后分别生成以下需求形式:处理个人主页统计信息表格,合并第三类数据与第一类数据,表格内添加用户平均被转贴数和平均被评论数两项;清洗用户关注关系表格,确保对每一对关注信息,粉丝和关注人都在用户个人信息表格中。

在本发明的具体实施例一中,所述训练模块包括:

用户对影响因子确定单元,用于根据所述用户对中一个用户的被关注人数和另一个用户的关注人数确定帖子转发的用户对影响因子;

用户自身影响因子确定单元,用于根据所述一个用户的发帖总数、活跃时长、帖子的被转发数和帖子的被评论数,确定所述帖子转发的用户自身影响因子;

总影响因子确定单元,用于根据所述用户对影响因子和所述用户自身影响因子的权衡参数,确定帖子转发的总影响因子;

用户自转发概率确定单元,用于利用k-shell分解算法,获取所述一个用户转发所述帖子的概率;

帖子被转发概率确定单元,用于确定所述一个用户的帖子的被其他永用户转发的概率;

转移矩阵模型建立单元,用于根据所述用户转发自己帖子的概率和所述帖子的被转发概率建立帖子的转移矩阵模型;

最优训练参数确立单元,用于采用独立级联模型分别对转移矩阵模型进行传播仿真实验,获得期望平均转贴数,确定误差mape值,选择mape值最小的转移矩阵对应的训练参数作为所述最优训练参数;

在本发明的具体实施例一中,所述测试模块包括:

测试转移矩阵建立单元,用于根据所述测试集结合所述最优训练参数建立测试转移矩阵;

影响力排序确立单元,用于对所述测试转移矩阵进行计算获取所述社交网络节点影响力排序结果。

实施例二

如图2所示,本发明实施例二提供的一种利用实施例一所述的系统进行社交网络节点影响力排序的方法,该方法包括如下流程步骤:

步骤s110:收集用户个人主页信息、用户发帖信息和用户对信息,对所述个人主页信息和所述用户发帖信息进行预处理,形成训练集和测试集;

步骤s120:根据所述训练集,建立帖子的转移矩阵模型,对所述转移矩阵模型进行仿真计算,获取最优训练参数;

步骤s130:根据所述测试集结合所述最优训练参数建立帖子转发的测试转移矩阵,对所述测试转移矩阵进行计算,获取所述社交网络节点影响力排序结果。

在本发明的具体实施例二中,所述步骤s110具体包括:

收集个人主页信息、用户发帖信息和用户对信息,形成数据集;其中,所述个人主页信息至少包括用户id、用户发帖总数、用户活跃时长、用户被关注人数、用户关注人数;

所述用户发帖信息,至少包括帖子的被转发数和帖子的被评论数;

所述用户对信息包括用户与用户之间的关注关系;

将所述数据集按需求切割为训练集和测试集,所述训练集包括训练集户个人信息和训练集用户对信息;所述测试集包括测试集户个人信息和测试集用户对信息。

在本发明的具体实施例二中,所述步骤s120中,所述根据所述训练集建立帖子的转移矩阵模型具体包括:

步骤s121:确定所述训练集中帖子转发的用户对影响因子f1:

其中,iu表示用户u被关注人数,sv表示用户v的关注人数;

步骤s122:确定所述训练集中帖子转发的用户自身影响因子f2:

其中,x表示社交网络对用户u的转贴和评论重要程度的权衡,mu表示用户u的发帖总数,tu表示用户u的活跃时长,zu表示用户u的帖子的被转帖数,pu表示用户u的帖子的被评论数;

步骤s123:确定所述训练集中帖子转发的总影响因子fuv:

fuv=1-exp(-(f1)m×(f2)1-m),其中,m表示训练参数,即f1和f2的权衡参数;

步骤s124:利用k-shell分解算法,获取所述训练集中用户u转发自己帖子的概率puu:

其中,n表示用户节点个数,ksu表示用户u的k-shell值;

步骤s125:确定所述训练集中用户u的帖子的被转发概率puv:

步骤s126:根据puu和puv,得到所述训练转移矩阵p:

在本发明的具体实施例二中,所述步骤s120中,所述对所述转移矩阵模型进行仿真获取最优训练参数具体包括:

根据帖子被转发数量平均值排名依次选取所述训练集中c个用户和对应的真实转贴数mc,多个不同的m值对应多个不同的训练转移矩阵p,采用独立级联模型分别对每个p进行传播仿真实验,获得c个用户的期望平均转贴数fc;

确定误差mape值:

其中,c={1,...,c};

选择mape值最小的p对应的训练参数作为最优训练参数。

在本发明的具体实施例二中,所述步骤s130中,所述根据所述测试集结合所述最优训练参数建立帖子转发的测试转移矩阵具体包括:

根据所述测试集,选择所述最优训练参数作为f1和f2的权衡参数,按照步骤s121-步骤126建立所述测试转移矩阵。

在本发明的具体实施例二中,所述步骤s130中,所述对所述测试转移矩阵进行计算获取所述社交网络节点影响力排序结果具体包括:

设各用户值向量st的初始值均为1,使用马尔科夫迭代得到稳定收敛值,其计算过程为:

st=(1...1)1×n×pm,

重复以下过程,直至前后两次用户值向量欧几里得范数误差小于预定精度时,停止迭代过程,得到稳定收敛算法值s:

s=st1×n×pm,

将所得稳定收敛算法值s的各项值作为每个用户的算法值,比对其大小,获取所述社交网络节点影响力排序结果。

实施例三

如图3所示,本发明实施例三提供了一种社交网络节点影响力排序系统,该系统包括:

数据预处理单元21,从网络获取新浪微博数据集microblogpcu,并进行简单预处理,生成本设计所需形式的训练集和测试集4个,分别为:训练集用户个人信息表格,训练集用户关注信息表格,测试集用户个人信息表格,测试集用户关注信息表格;

第一训练单元22,根据训练集,生成帖子转发的转移矩阵pm,其中取m为0~1以0.1为等间隔的11个取样值,对应生成不同的转移矩阵pm;

第二训练单元23,根据11个不同的转移矩阵pm,进行“帖子被转数”的帖子传播仿真实验,根据mape值筛选转移矩阵pm中的最优值,获得训练值m;

第一测试单元24,根据测试集与训练结果m,生成转移矩阵p,生成本算法设计排名;

第二测试单元25,根据测试集与其他算法,生成其余算法排名;

第三测试单元26,根据本算法排名结果和其余算法排名结果,进行一致性检验,证明本算法排序结果的优越性;

所述数据预处理单元21具体包括:

数据集获取子单元211,获取新浪微博数据集microblogpcu,这一数据集于2015.3.17由junliu等人从新浪微博获取。数据集主要包括weibo_user.csv(用户个人信息),followe-followee.csv(用户关注信息),user_post.csv(发帖内容信息)和post.csv(发帖内容信息)4个文件,其中weibo_user.csv包含700+用户id,名称,性别,等级,私人信息,邮编,粉丝值,关注人总数等信息;followe-followee.csv收录了约14万条粉丝-关注人关注关系对,其中包括没有收录于weibo_user的用户;而user_post.csv和post.csv均记录了这些用户发帖内容,帖子id,发帖人id,转贴数量,评论数量等;该数据集经过了简单清洗,去除了僵尸号,小号等干扰内容,但仍存在几个缺失值,需要手动剔除;

数据集预处理子单元212,进行简单预处理,生成训练集和测试集;处理用户个人信息表格,添加平均被转贴数和平均被评论数信息,确保对每个用户有如下项目信息:id,名称,用户等级,发帖数,粉丝数,关注人数,用户帖子平均被转贴/被评论数目;清洗用户关注信息表格,确保对每一对关注信息,粉丝和关注人都在用户个人信息表格中。至此,生成4个表格,分别为:训练集用户个人信息表格,训练集用户关注信息表格,测试集用户个人信息表格,测试集用户关注信息表格。

所述第一训练单元22具体包括:

所述转移矩阵pm,是用来描述可能存在的帖子转贴概率,当转贴概率大于0时,即使目前没有观测到用户间转帖记录或关注关系,未来也存在转贴可能性;

kshell值计算子单元221,计算训练集kshell值,kshell值计算步骤如下:首先挑选网络中度数为0点剥落;然后挑选网络中所有判断为度数为1点剥落,之后新生成网络里面部分用户度数会发生改变,继续挑选所有判断为度数为1点剥落,重复直到新生成网络不再有可剥落点为止,称所有剥落度数1点为1shell;重复以上步骤,得到2shell…kshell,直到所有节点被剥落,这样每个节点都有属于自己的整数的kshell值;

如图4所示,为本发明训练集kshell值与对应用户转贴情况图,可以看出,kshell值与转贴数不呈现明显的相关性,表现较差,不能单独作为分析此类网络排名的方法。

训练参数拟定子单元222,对m分别取0~1等间隔数值,如0.1间隔,即分11次完成下列过程;

fuv和puu计算子单元223,计算fuv和puu;

定义1,用户对影响因子f1:

其中iu表示用户u的粉丝数,sv表示用户v的关注人数;

定义2,用户自身影响因子f2:

其中x为0~1的参数,表示社交应用对转贴和评论看重程度的权衡,不失一般性的可设值为0.5;

定义3,转移概率fuv:

fuv==1-exp{-(f1)m*(f2)1-m}

其中m为0~1的0.1间隔取样的参数,共11个,表示对f1和f2的权衡,需训练;

定义4,转移概率puu:

其中n为用户节点个数,ksu为kshell值。

puv计算子单元224,计算puv;

定义5,转发概率puv:

转移矩阵p生成子单元225,生成转移概率矩阵p,不同的m表示为pm;

根据puv和puu,得到转移矩阵pm:

所述第二训练单元23具体包括:

数据提取子单元231,根据数据集内容提取出来“帖子被转贴数量排名前20用户”得到用户名单和对应帖被转贴数量;

传播实验子单元232,对不同m有不同转移矩阵p,对每个转移矩阵pm,用20个用户作单起点独立级联传播实验,每次实验重复10次,得到平均值fc;

mape值计算子单元233,对每个pm,利用fc和mc计算mape值;

其中c为用户数目,c为特定用户,mape表示是预测数据和真实数据之间误差;

训练值选择子单元234,选择最小mape值,对应于最优m,为训练结果;

如图5所示,为本发明实施例二训练值最优m计算结果图,m取0~1以0.1为间隔的11个样值,得到m=0,0.1……1共11个转移概率矩阵pm,然后分别计算mape值,取其最小,得到相应最优m值,在本次实施例中得到的最佳m值为0.5。

所述第一测试单元24具体包括:

kshell值计算子单元241,计算测试集kshell值;

如图6所示,为本发明实施例二测试集kshell值与对应用户转贴情况图,可以看出,kshell值表现较差,不能单独作为分析此类网络排名的方法。

转移矩阵计算子单元242,利用训练值m,测试集数据以及转移矩阵模型计算公式,得到测试集转移矩阵p;

排序计算子单元243,设初始值向量为全1向量,乘以转移概率矩阵p,不断迭代直至收敛,得到算法值,并获得前10排名。可以使用马尔科夫方式迭代得到稳定收敛值。令迭代初始值为1,计算:

st=(1…1)1*n*pn*n

重复以下过程,直到误差δ满足精度要求,得到稳定收敛算法值向量s:

st=st1*n*pn*n

计算δ时可以使用二范数(欧几里德范数),计算前后两次st差向量长度满足要求,认为收敛。

所述第二测试单元25具体包括:

度中心度作为局部影响力算法代表参考,介数中心性和紧密中心度或者说接近中心性作为全局影响力算法代表参考;因此实施例二采用这三种指标应用于测试集数据,分别得到前十排名,用于后续对比。

所述第三测试单元26具体包括:

对比图像效果验证子单元261,绘制不同算法和真实数据检验图像,并比对;首先对于应用本算法经过测试集计算后,从中获取排名前10用户,从数据集中获取他们帖子平均被转贴数量,然后作以用户算法计算数值为横坐标,对应用户帖子平均被转贴数目为纵坐标,观察这二者是否呈现出正相关或者是否有一致性关系;对于其他算法,如度中心度,介数中心度,紧密中心度指标,同样可以以算法或指标值为横轴,以对应用户被转贴数目为纵轴,作出上述一致性关系检验图,观察这些算法图像是否呈现出正相关或一致性关系;观察本方法是否和真实数据有一致性关系,直观从图像上观察本方法是否表现上优于其他方法;

如图7所示,为本发明实施例二对比图像效果验证图,包括本发明排名前10与真实转贴数据一致性(res.myalgo),度中心度前10与真实转贴数据一致性(res.indgcent),紧密中心度前10与真实转贴数据一致性(res.closecent),介数中心度前10与真实转贴数据一致性(res.betweencent)的结果与对比图像,通过图像比对可以直观看到,紧密中心度指标效果很不好,没有明显一致性;介数中心度和度中心度效果可以接受,随着值增加被转贴帖子数目并不减少,呈单调性,但度中心度缺乏分辨性,介数中心度由于复杂度较高,工程应用成本缺陷明显;而本发明下的算法值和转贴数呈现一致性,高影响力用户不会隐藏在算法计算结果值较低(认为影响力排名较低)的用户群和算法计算结果值居中(认为影响力排名居中)的用户群之中,可以通过本算法缩小影响能力比较强的用户的筛选范围在算法计算结果值较大的区域内,实现较好的排名效果;

对比kendall检验验证子单元262,计算不同算法和真实数据kendall检验,研究检验出来结果和数值(kendall一致性检验,是指对同一样本进行不同方法排名,然后对每两种排名,对比计算排名相似度,其中一种方法就是kendall一致性检验,计算的方法主要是考量同序对和反序对,如果方法a中用户甲排名高于用户已,且方法b中用户甲排名也高于用户乙,则为同序,符号正,反之为反序,符号负,统计同序与反序的正负和,其值越大说明同序对越多,排名越接近,若某种方法和真实排名的kendall检验数值越大,则该方法得出的排名越准确);对应用本算法计算测试集得到的前10排名,其余算法得到的前10排名和真实数据前10排名(被转贴数最高10名用户),使用kendall一致性检验方式得到kendall检验结果,该数值意味着两个向量间一致性,如果kendall值越大,说明两个向量排序越一致,和真实数据计算得到kendall系数越大,说明算法排序得到的结果和真实数据的情况越一致,从数字上明确得知方法有效程度;

如图8所示,为本发明实施例二对比kendall检验验证图,可以看出,紧密中心度(clcent)与真实转贴排名数据(realrepo)一致性很差,使用紧密中心度完全无法得到正确排名结果;介数中心度(bwcent)由于复杂度较高,存在工程实现较为困难,代价较高的缺陷;而使用本算法和度中心度(dgcent)差距不大,都可以得到较好的相关趋势,因此可以缩小高影响力用户筛选范围。

对比具体排名验证子单元263,输出不同算法和真实数据前10用户与算法/真实数值,具体比对;对应用本算法计算测试集得到的前10排名,其他算法和真实数据前10罗列出来,罗列项目包括各算法排名/真实数据排名用户id,各算法算法值/真实平均被转贴帖子数,从具体排名结果和算法值上得到算法效果分析。

如图9所示,为本发明实施例二对比具体排名验证图,分析图可知,真实数据中存在排名前3用户在本发明算法排名前3,这说明高影响力用户存在高算法值,本发明是有效的,此外本发明算法分辨率较高,不同用户算法差值相对平稳,相比其余算法的结果有明显优势。

用时统计子单元264,输出程序总用时,考量时间是否可以接受,在实施例运行的开头和结尾设立时间戳计算时间差值;由图8中可知,包含700+用户相互连接的网络分析实施例二运行用时42秒,这和理论分析的o(n^2)复杂度吻合,由于实施例二使用的是运行时间较慢的python语言,并花费较多时间输出对比检验图像,这一用时仍然可以进一步优化和缩减。

实施例四

如图10所示,本发明实施例四提供一种利用实施例三所述的系统进行社交网络节点影响力排序的方法。该方法主要包括如下流程步骤:

步骤11、获得数据集,并进行简单预处理,生成本设计所需形式的训练集和测试集;

步骤12、根据训练集,生成帖子转发的转移矩阵pm,其中不同的训练参数m生成不同的转移矩阵pm;

步骤13、根据不同的转移矩阵pm,进行帖子传播的仿真实验,筛选转移矩阵pm中的最优值;

步骤14、根据测试集与训练结果m,生成转移矩阵p,生成本算法设计排名。

所述步骤11包括:

步骤111,获得数据集,所述的数据包括3类:第一类是个人主页信息,至少包括用户id、用户发帖总数、用户等级或活跃时长、用户粉丝(用户甲关注用户乙则称甲为乙的粉丝)数、用户关注人(用户甲关注用户乙则称乙为甲的关注人)数;第二类是用户发帖信息,至少包括部分帖子的被转发数与被评论数;第三类是用户间关注关系,至少包括部分用户间的关注关系;

步骤112,对数据集进行简单预处理,生成所需形式,对数据集进行广告过滤等简单清洗,按需求切割为训练集和测试集,然后分别生成以下需求形式:处理个人主页统计信息表格,合并第三类数据与第一类数据,表格内添加用户平均被转贴数和平均被评论数两项;清洗用户关注关系表格,确保对每一对关注信息,粉丝和关注人都在用户个人信息表格中。

所述步骤12具体为:

所述转移矩阵pm,是用来描述可能存在的帖子转贴概率,当转贴概率大于0时,即使目前没有观测到用户间转帖记录或关注关系,未来也存在转贴可能性;

转移矩阵pm生成方法如下:

定义1,用户对影响因子f1:用户粉丝数i越多,影响力越强,用户关注人数s越多,敏感性越强,并且如果一个用户关注人数s越大,单个节点对其影响力相对就会稀释,故设置参数:

其中iu表示用户u的粉丝数,sv表示用户v的关注人数,f1表明描述用户u对用户v的用户对影响,并考虑到了不能除0和f1为0可能带来后续问题;

定义2,用户自身影响因子f2:一方面可以考量节点活跃程度=发帖数量/活跃总计时间,而活跃总计时间可以由用户等级体现;另一方面帖子质量可以由转贴数和评论数体现,故设置参数

其中x为0~1的参数,表示社交应用对转贴和评论看重程度的权衡,不失一般性的可设值为0.5,若一个用户有多个帖子被抓取,取平均转贴,平均评论数,并考虑到了除0问题和f2为0可能带来后续问题;

定义3,转移概率fuv:表明不同用户u对v影响,即v转贴u帖子概率

fuv=1-exp{-(f1)m*(f2)1-m}

采用指数形式是因为满足fuv随f1,f2增大而增大趋势,m为取值0~1的关键训练参数,用于分配用户对影响因子和用户自身影响因子在传播过程所占比例,即f1和f2的权衡;

定义4,转移概率puu:表示用户自身指向自身概率;考虑到一个用户被其余用户转贴概率越多,则自己指向自己可能越微,而这样用户一般是网络中核心用户,即kshell分解值较大点,因此

其中n为用户节点个数,ksu为kshell值,当kshell值越大,表示节点越位于网络中心,节点指向自己可能性相对越小;

定义5,转发概率puv:由定义3和定义4能够获得矩阵样式,但考量到概率转发矩阵定义,需要满足

∑puv+puu=1

因此有

考虑到此时puv一般都过小,不利于后续训练,因此令sv<average(sv)(sv的平均值)时,取fuv为极小值。

根据puv和puu,得到转移矩阵pm:

所述步骤13包括:

进行帖子的传播仿真实验,筛选转移矩阵pm中的最优值,传播仿真实验采用独立级联模型,取出相应数据集中“平均帖子被转数量排名前20用户”得到用户名单和对应真实转贴数mc;

简介独立级联模型:在独立级联模型中,每个节点有两种状态:激活和未激活,其中激活表示该节点接受或者传播某种信息(例如微博上的转发、点赞等行为)[李国良,楚娅萍,冯建华,徐尧强.多社交网络的影响力最大化分析[j].计算机学报,2016,39(04):643-656];独立级联模型为这样一个建模情况,当模型里面一枚节点u被感染时,它会尝试以可能性puv感染邻居节点v,这种感染在一对用户之间一个方向上只能使用一次,u对所有邻居v感染互不干扰,所有不同用户对v感染同样互不干扰,直到u尝试感染完所有相邻用户v,然后对已经被感染用户v,根据前面的做法依序进行下去;激发的节点不能够被再一次激活,即相当于信息不能被同一个用户二次转贴;应用独立级联模型消息转贴过程为:

ⅰ.给定初始一个用户或多个用户,依次感染成为一开始的起点;如果用户u被感染的话,那么u将会有可能感染所有好友分别只有一次机会,每个过程感染可能性puv,本身独立;当puv越多,说明感染可能性越多,u越有可能感染v;

ⅱ.若t时刻节点w未被感染,则所有w已感染邻居对节点w尝试感染,但不包括已经尝试过感染过程,如果w被感染,t+1时刻,节点w转入感染状态;

ⅲ.重复上述过程,直至所有可以感染尝试全部被完成,即达到最大可感染范围,此时感染范围即为信息从初始节点开始最大传播范围,取平均值;

对不同的m有不同转移矩阵pm,分别用独立级联模型传播实验10次,获得平均转贴数fc;

定义6,误差mape值:表示是预测数据和真实数据之间误差,计算出来的结果如果是越小,就表示计算出来的误差越小,换句话说意味着对应的p和m取值越好,越被接受;

其中c为用户数目,c为特定用户;

计算不同m的fc和mape,选择mape最小的m为最佳值训练。

所述步骤14包括:

步骤141,生成转移矩阵p,根据测试集的数据与最佳的m的训练值,按步骤12方法生成转移矩阵p;

步骤142,生成本算法排名,设各用户值向量st初始值均为1,使用马尔科夫迭代得到稳定收敛值,其计算过程为:

st=(1…1)1*n*pn*n

重复以下过程,直到误差δ满足精度要求,得到稳定收敛算法值向量s:

st==st1*n*pn*n

比对前后两次用户值向量欧几里得范数误差δ,当误差δ小于预定精度时,停止迭代过程,将所得用户值st的各项值作为每个用户的算法值,比对其大小得到本算法的用户排名;

这一过程中的收敛可以证明:转移矩阵p如果收敛,需要满足3个条件:

p是随机矩阵;

p是不可约;

p是非周期;

对于第一项要求,随机矩阵:令pij为p的i行j列,有任意i=1,2…n和j=1,2…n,pij≥0,并同时满足任意i=1,2…n,pij对j求和为1,显然矩阵p是非负,并且满足每一行和为1;

对于第二个条件,矩阵p是满足要求的矩阵当且仅当只有和p相对应的网络的有向图像是强连通(任意两节点可到达)的网络图像也就是任意两点间能找到通路,而由于本算法转移矩阵p中,所有元素都是全正,因此必然存在这样通路,故矩阵p满足不可约这一条件;

对于第三个条件,周期性指迭代值按规律反复性变化,由于根据相关知识可以得知非周期和素矩阵是等价的关系,而素矩阵是指矩阵存在一个幂的次数为正矩阵,因为p全部元素为正,p肯定也必然是满足等价要求的,也就是说满足了第三个非周期条件;

同时本方法的主要将时间花费在转移矩阵计算,独立级联模型计算和马尔科夫迭代,在算法里需要对转移概率矩阵里面所有全部元素单独运算,共花费时间o(n^2),元素计算本身相对简单,可以直接从表中获取数据,进行简单加法,除法和指数运算,因此转移矩阵生成时间复杂度为o(n^2);独立级联模型里面,最差情况就是一次感染一个用户,直至全部感染,此时耗时也是o(n^2)数量级,故时间复杂度为o(n^2)。而马尔科夫迭代过程虽然相对耗时较长,但本方法中该过程和经典pagerank转移矩阵有些类似,在pagerank算法中同一用户转移概率也是接近平分,而研究证明,pagerank一般在50-75次迭代即可收敛,综上,本发明总共时间复杂度为o(n^2),是一个可以接受时间复杂度。

综上所述,本发明实施例所述的本发明实例提供的一种社交网络节点影响力排序系统,适用于动态信息不完整的社交网络。通过获得包含社交网络用户个人信息、帖子信息与关注关系信息的数据集,并进行数据清洗、项目合并等简单预处理,生成本系统所需形式的训练集和测试集;根据训练集,建立社交网络帖子转移矩阵生成与筛选模型,依次考量用户个人网络位置、用户局部网络影响力、用户自身帖子转移概率与用户间帖子转移概率,生成帖子转发的转移矩阵;根据不同的转移矩阵,分别进行帖子传播的仿真实验,比对帖子传播范围的实际值与仿真值的相对误差,选择最小的误差从而筛选出最优转移矩阵与对应训练参数;根据测试集与训练参数,使用相同的建模方法生成转移矩阵,最终获得稳定的影响力排序。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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