[0048] 以下结合附图和实施实例对本发明加以详细说明。
[0049] 如图1所示,基于观点向量化的影响力传播模型的建立方法,该方法包括如下步骤:
[0050] 步骤A:爬取社交网络中用户博文的相关信息,并建立基于观点影响力的传播网络;
[0051] 如针对微博社交网络平台,利用scrapy模块创建爬虫,对微博进行数据爬取,包括用户的原创博文、转发博文、关注关系以及相应的操作时间。之后,根据用户的转发关系,建立相应的观点影响力传播网络。具体来说包括以下步骤:
[0052] A1:根据用户关系,建立用户之间的网络结构图G=(V,E),其中V属于全体用户集合,为节点集,E表示用户之间的关系,为有向边集;
[0053] A2:对原创博文d,利用主题提取工具LDA提取主题内容t,并用情感分析工具SnowNLP分析情感倾向s,将主题和情感倾向结合,得到原创博文的观点o=(s,t);
[0054] A3:对所有转发该原创博文且带有评论内容的转发博文,利用情感分析工具分析评论内容的情感倾向,并结合原创博文的主题,得到评论内容的观点;
[0055] A4:在网络结构G中,选择转发过该篇博文d,且观点一致的用户集合Vd,Vd∈V,并按照转发时间,选择影响关系集合Ed,Ed∈E,具体来说,假设用户v关注了用户u,以有向边(u,v)∈E表示,如果u和v都转发了博文d并观点一致,且u的转发时间比v更早,那么将关系(u,v)放入影响关系集合Ed中,(u,v)∈Ed,否则 最终,得到该博文d的观点影响力传播网络Gd=(Vd,Ed)。
[0056] 步骤B:利用随机游走,搜寻影响力传播网络中的与用户观点一致的局部影响用户集合;
[0057] 步骤B中是在步骤A中所得到的观点影响力传播网络Gd=(Vd,Ed),利用随机游走来查找。定义搜索的相关参数:扩散概率p和回退概率q。假设当前位置处于(用户)节点u,扩散概率是指下一步以概率p传播到节点u的邻接点,回退概率是指在传播到邻接点后,以概率q回退到节点u,综合深度遍历和广度遍历的优点。图2是步骤B的实现流程。如图2所示,步骤B包括以下步骤:
[0058] B1:定义回退概率q设置为0.5,定义需要搜集到的用户u的影响局部集合为NLd(u),初始化为空,并设置集合数量最大值为nl,令当前位置处于节点u;
[0059] B2:将概率p设置为当前位置节点的邻接点数量之和的倒数,按照概率p随机选择一个当前位置节点的近邻节点v,且v没有被标记访问,将v添加到集合NLd(u)中,标记v已被访问,并将当前位置移动到v上;
[0060] B3:根据回退概率q,如果达到了回退条件,则将当前位置回退,否则,进入步骤B4;
[0061] B4:如果集合NLd(u)大小已经等于nl,则返回NLd(u)并结束步骤B,否则,进入步骤B2。
[0062] 步骤C:根据观点相似性,搜寻影响力传播网络中与用户观点相似的全局影响用户集合;
[0063] 定义用户u的影响全局集合为NGd(u),初始化为空,并设置集合数量最大值为ng。其包括以下步骤:
[0064] C1:从Vd中随机选择一个节点v,且v不在集合NLd(u)和NGd(u)中;
[0065] C2:将节点v添加到集合NGd(u)中;
[0066] C3:如果集合NGd(u)元素数量已经等于ng,则返回NGd(u)并结束步骤C,否则,进入步骤C1。
[0067] 步骤D:搜寻影响力传播网络中与用户观点相反的用户集合;
[0068] 定义与用户u在博文d上观点相反的用户集合为NRd(u),初始化为空,并设置集合元素最大数量为nr。图3是步骤D的实现流程。如图3所示,步骤D包括以下步骤:
[0069] D1:提取博文d中的主题t和情感倾向s,组合成博文d的观点倾向o=(t,s);
[0070] D2:如果用户u是博文d的原创作者,则用户u的观点以博文d的观点倾向表示,并转到步骤D5,否则,进入步骤D3;
[0071] D3:如果用户u转发了博文d,且没有发表评论内容,则用户u的观点以博文d的观点倾向表示,并转到D5,否则,进入步骤D4;
[0072] D4:用户u转发了博文d,且发表评论内容,利用情感分析工具分析评论内容的情感倾向,并和博文d提取的主题组合,表示用户u的观点倾向;
[0073] D5:找出所有转发了博文d的用户集合,定义为Ud;
[0074] D6:遍历集合Ud,对所遍历的用户u′,提取该用户的情感倾向,并和博文d的主题内容结合,得到用户u′的观点倾向;
[0075] D7:如果u′的观点倾向和u的观点倾向不一致,则将u′添加至集合NRd(u)中,否则进入步骤D8;
[0076] D8:如果集合NRd(u)的数量等于nr,则结束遍历,否则,返回D6。
[0077] 步骤E:建立基于观点的影响力传播模型。
[0078] 建立基于观点的影响力传播模型,是根据步骤B、步骤C、步骤D所得到的三个用户集合,并根据节点向量化的思想所建立的。定义从所有博文中提取的观点集合为O={o1,o2,o3,…,oN},N为观点数量,on表示第n个观点,n=1,2,…,N;每个观点o都有一定数量的博文列表集合D(o),而每个用户在这些博文上都有着正向或负向的观点。对于博文d∈D(o),根据步骤B、C、D可以从社交网络中搜寻到用户u的三个影响用户集合NLd(u)、NGd(u)和NRd(u),其中用户u对集合NLd(u)和NGd(u)的影响应该是正相关的,对NRd(u)用户集合的影响是负相关的。定义概率Pr(NLd(u)|u,o),该概率越大,表示,用户u在观点o下越容易影响到用户集合NLd(u),这是因为NLd(u)中的用户和用户u的观点是一致的,用户u在该观点上更容易影响到NLd(u)集合中的用户。其计算方法定义为:
[0079]
[0080] 其中,Pr(v|u,o)表示用户u在观点o下对用户v的影响力,概率越大,影响力越大,NGd(u)同理。与NLd(u)不同的是,NGd(u)反映的是网络全局性的特征,而NLd(u)只反映了局部性特点。
[0081] 其次,NRd(u)表示与用户u相反观点的用户集合,用户u在该观点上对这些用户的影响力应该微乎其微,因此,Pr(NRd(u)|u,o)应该是趋近于0的。
[0082] 定义用户u在每个观点o下包含两个向量:Sou和Tou,分别表示影响他人能力的表征和受到他人影响的表征。因此,用户u在观点o下对用户v的影响力Pr(v|u,o)用两个向量的点积表示,具体定义为:
[0083] Pr(v|u,o)=exp(SouTov)
[0084] 综上所述,该模型的目标是使概率Pr(NLd(u)∪NGd(u)|u,o)最大化,同时使Pr(NRd(u)|u,o)最小化,趋近于0。因此,定义目标函数为:
[0085]
[0086] 模型的训练目标即是使Obj最大化,并拟合得到每个用户u在每个观点o下包含两o o个向量:Su和Tu。以此可以得到任意两个用户之间在不同观点下的相互影响力,并据此得到观点影响力在社交网络结构图中的传播模型。
[0087] 模型训练方式是以随机梯度下降方法进行拟合,对此不做叙述。
[0088] 该方法在基于节点向量化的思想上,提出一种新的社交网络中的影响力传播模型建立方法。社交网络中用户有着不同的兴趣主题,他们在这些主题上对其他用户也有着不同的影响力,如“政治”类博主在“娱乐”相关主题上的影响力显然低于“政治”相关的。作为主题和情感倾向的结合,用户在观点上也应有着不同的影响力。与主题不同的是,观点影响力传播模型有着更为复杂的场景。在基于主题的影响力传播模型中,用户B转发了用户A一条相关博文,便认为A对B在该主题上有着一定的影响力。然而,在基于观点的影响力传播模型中,即使用户B转发了用户A的一条博文,但是用户B不赞成A的观点,只是为了反驳A,那么用户A在该观点上的影响力对B来说,应该是趋近于无。由此可见,观点影响力的传播模型比一般的影响力传播模型,更为复杂。
[0089] 该方法基于观点向量化的影响力传播模型,采用了节点向量化的思想,对社交网络中的观点影响力的传播模型问题,提出了一个更有效的方法。不同于传统的影响力传播模型,本发明针对的是用户在观点上的影响力,问题模型更为的复杂,结合主题信息和情感倾向,能够挖掘出社交网络中更为详细的影响力相关细节。模型采用了节点向量化的思想,没有考虑工程性的特征,比如点赞等,能够让模型不局限与特定的社交网络中,使其能够运用在不同的社交网络平台上。其次,该方法综合考虑了局部和全局性的特征,使得模型更加的全面,此外,根据观点具有正反性的特点,该方法考虑了与用户观点相反的影响用户集合,更能准确地反映基于观点下的影响力传播模型。
[0090] 上面结合附图对本发明的实施方式做了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。