本发明属于数据挖掘和行为预测
技术领域:
,更具体地,涉及一种基于量化社会影响力的社交网络用户行为预测方法。
背景技术:
:随着互联网技术以及移动技术的发展,社交网络迅速兴起,而目前社交网络的研究主要集中在用户行为分析预测、用户关系发现、个性化内容推荐、社群挖掘、话题检测和跟踪等方面。twitter等社交网络的出现大大加快了信息在网络中的传播速度,用户可以通过转发别人的博文以及@别的用户来把一条博文迅速的传达给更多人,使一条博文的受众面以几何级别递增,从而导致信息的病毒式传播和扩散。由于预测用户转发与@行为有助于研究信息的扩散与传播,因此社交网络用户行为预测的研究基本集中于预测用户的转发行为与@行为。解决行为预测这个问题的好处在于,首先,被用户转发的话题往往反映了用户所感兴趣的话题,因此行为预测的研究也可用于对用户进行推文或话题推荐;其次,通过对转推行为进行预测研究,能够帮助我们理解社交网络中信息的传播方式,并将之应用于市场营销或是热点事件提取等。早期的许多研究都集中在挖掘对用户行为会产生影响的一些重要因素,如推文本身的内容、推文作者的粉丝数、关注数、注册时长、用户的个人兴趣等因素都会对用户的转推行为造成影响,这些前期的探测为后期的深入研究奠定了一定的基础。对于给定用户的行为预测这个研究问题,现有的解决方案大多都集中在将对于行为预测有重要作用的一些特征因素加入到预测模型中,在这里,对于预测模型而言,许多研究都将用户行为预测问题视为二类分类问题,因为行为预测的结果只有两种,所以将其视为一个二分类问题,可以有效地帮助我们进行预测建模。而特征因素的表现形式多种多样,如用户特征、社交特征和微博特征,对于给定用户转推预测而言,大多数现有的研究都将关注点放在用户特征(用户个人兴趣)及社交特征(用户间的影响力)的选择上,主要会考量用户兴趣对于用户转推行为的影响,即直接通过对用户兴趣建模来进行行为预测,或者通过研究用户间影响力来预测其他用户是否会转发特定用户的推文的,但是在使用中发现,仅根据用户兴趣或者用户间影响力来对用户的转推行为进行预测,预测的准确率较低。技术实现要素:针对现有技术的以上缺陷或改进需求,本发明的目的在于提供了一种基于量化社会影响力的社交网络用户行为预测方法,由此解决在现有的用户行为预测方法中,仅根据用户兴趣或者用户间影响力来对用户的转推行为进行预测而导致的预测准确率较低的技术问题。为实现上述目的,按照本发明的一个方面,提供了一种基于量化社会影响力的社交网络用户行为预测方法,包括以下步骤:(1)爬取种子用户所关注的用户信息以及种子用户所关注的用户所关注的用户信息,得到n个用户的用户信息,并爬取n个用户中的每个用户在时刻t之前发布的n条文本,对爬取的所有文本进行预处理;(2)根据用户之间的关注关系以目标用户vi为核心构建网络图,其中,网络图中的节点表示用户,网络图中的有向边表示该有向边对应的两用户之间存在关注关系,有向边的指向由关注用户指向被关注用户,网络图中的有向边对应的权重表示该有向边对应的关注用户对被关注用户发表文本的转发概率;(3)将经过预处理后的n个用户中的每个用户发布的n条文本聚集成一个目标文本,得到n个目标文本,对每个目标文本中的主题信息进行抽取,得到每个用户的兴趣向量表示目标用户vi在时刻t之前的原始兴趣;(4)从网络图中的目标节点出发,沿着网络图中的边随机游走,以第一概率随机选择与目标节点相邻的边,沿着该边移动到下一个节点,或以第二概率直接回到目标节点,以下一个节点或目标节点为出发点重复随机游走过程,直至网络图中每个节点的概率值到达稳定状态,得到目标节点到网络图中其它节点的稳定概率分布,该稳定概率分布即为与目标用户vi有社会关系的其它用户对目标用户vi的影响力f;(5)由目标用户vi在时刻t之前的原始兴趣以及目标用户vi所受到的其他用户的影响力f得到目标用户vi的目标兴趣向量;(6)根据目标兴趣向量对目标用户vi在时刻t的转推行为进行预测,判断用户是否会在时刻t之前转发目标文本。优选地,步骤(2)具体包括:(2.1)从n个用户中获取目标用户vi在时刻t之前关注的用户集合,统计目标用户vi对集合中的每个用户发布的推文的转发次数,将转发次数为零时对应的用户从集合中去除得到目标用户集合(2.2)以目标用户vi为核心构造网络图,其中,网络图中的节点表示目标用户vi以及中的所有用户,网络图中的有向边表示该有向边对应的两用户之间存在关注关系,有向边的指向由关注用户指向被关注用户;(2.3)对于网络图中的有向边对应的权重,由该有向边对应的关注用户对被关注用户发表文本的转发概率确定。优选地,步骤(4)具体包括:(4.1)根据目标用户vi的网络图中每条边的权重,得到转移矩阵s,其中,转移矩阵s中的元素si,j表示当前在节点j,下一步达到节点i的转移概率;(4.2)由pis+1=(1-β)spis+βri得到目标用户vi的网络图中每个节点的概率值,其中,表示在目标用户vi的网络图中,从节点i在第s步达到节点j的概率,ri=(r1,r2,...,rj,...,rk)t为重启动向量,rj表示出发点在j的概率,β为直接回到出发点的概率,k表示中的用户数量;(4.3)从网络图中的目标节点出发,沿着网络图中的边随机游走,以第一概率随机选择与目标节点相邻的边,沿着该边移动到下一个节点,或以第二概率直接回到目标节点,以下一个节点或目标节点为出发点重复随机游走过程,直至网络图中每个节点的概率值到达稳定状态,得到目标节点到网络图中其它节点的稳定概率分布,该稳定概率分布即为与目标用户vi有社会关系的其它用户对目标用户vi的影响力f。优选地,步骤(5)具体实现方法为:由目标用户vi在时刻t之前的原始兴趣以及目标用户vi所受到的其他用户的影响力f得到目标用户vi的目标兴趣向量其中,表示目标用户vi受到的来自其邻点vj的影响力,γ为平衡加权参数。总体而言,本发明方法与现有技术方案相比,能够取得下列有益效果:(1)将用户的兴趣与用户间社会影响力结合起来用于推测用户特征,而不是分开单独建模,有利于提取更好的用户特征;(2)对用户间的社会影响力进行了量化,而不是简单的取平均值,这样能更全面的考量目标用户周围的其他用户对目标用户兴趣的影响程度,从而进一步提升用户特征的质量,也有助于提升预测模型的性能。附图说明图1为本发明实施例公开的一种基于量化社会影响力的社交网络用户行为预测方法的流程示意图;图2为本发明实施例公开的一种网络图的构建示例图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本发明从用户自身的兴趣点出发,考虑将量化的用户间社会影响力与用户兴趣关联起来进行研究,通过计算与特定用户有社会关系的其他用户对该用户的社会影响力,从而得到该特定用户最终的兴趣,也因此捕获了该用户周围的其他用户对该用户兴趣的影响,从而也可由此得知这些用户对该用户行为的影响程度,然后将用户最终的兴趣当做特征来对用户的转推行为进行预测。该方法主要通过结合用户兴趣与量化的用户间社会影响力来更好的推测用户特征,有助于提升预测模型的性能。如图1所示为本发明实施例公开的一种基于量化社会影响力的社交网络用户行为预测方法的流程示意图,在图1所示的方法中,包括以下步骤:(1)收集社交网络上的数据以及数据预处理:爬取种子用户所关注的用户信息以及种子用户所关注的用户所关注的用户信息,得到n个用户的用户信息,并爬取n个用户中的每个用户在时刻t之前发布的n条文本,对爬取的所有文本进行预处理;作为一种可选的实施方式,数据爬取可以采用以下方式实现:通过twitter的api爬取数据,首先任意选取1个用户作为种子用户,然后将该种子用户所关注的所有用户集合m(|m|=m)以及这m个用户所关注的所有用户信息爬取下来,对于最终获得的用户集合u(|u|=n),将这n个用户最近发布的n条推文全部爬取下来,并将每个用户所发布的这n条推文的内容聚集到一个文档中,形成一个大的文本,最终会有n个大的文本。对于爬取的数据,每个用户都会有一个独一无二的用户id用来唯一的标识这个用户,而每条推文也会有自己独一无二的推文id用来唯一的标识这条推文。对于爬取的推文数据,会详细的显示这条推文的发布时间、内容、来源等信息。如表1所示,展示的是用户id为99994358的推特用户所发布的推文中的一条:表1其中,在表1中,createdat字段表示爬取下来的推文的创建时间,statusid是用于表示这条推文的全局唯一的推文id,text表示推文内容、source表示发推来源、isretweet表示是否转推、retweetedstatusid表示转推的原始推文的id。由于获得的n个原始推文中存在着大量的无用信息,这些无用信息不但对用户兴趣的提取无益,甚至会成为噪声数据,影响用户兴趣的生成,因此需要将这些信息过滤掉。预处理最重要的部分是选择词典,首先需要将每个文本拆分成词,之后去除非字母词,如各种符号(?!#&等)以及超链接等;3个字符以下的短词,如an,on,and等;停用词,如出现频率很高的about,above,doing,every等。对数据集的预处理将直接对后面lda主题建模的结果产生直接影响,因此可以根据需要调整预处理的步骤和内容。(2)通过用户间的社会关系构造网络图:根据用户之间的关注关系以目标用户vi为核心构建网络图,其中,网络图中的节点表示用户,网络图中的有向边表示该有向边对应的两用户之间存在关注关系,有向边的指向由关注用户指向被关注用户,网络图中的有向边对应的权重表示该有向边对应的关注用户对被关注用户发表文本的转发概率;其中,根据用户间的关注关系构建网络图,该网络图是一个有向带权图,用来表示网络中的节点以及节点间的关系。网络图用g=(v,e)表示,其中,v={v1,v2,v3,...,vn},|v|=n代表一组个数为n的用户,e代表网络中的有向边,该有向边集代表用户间的社交关系。例如边eij代表用户vi和vj之间存在一条社交关系,于推特用户而言存在这条边则表明用户vi与vj之间存在关注关系。对于在步骤(1)中收集到的数据,现有用户集合v,对于v中的用户,若任意两个用户vi与vj之间存在关注关系,则在用户vi与vj之间存在一条边,如若用户vi关注了用户vj,则图中有一条边由vi指向vj,反之亦然。每条边eij都有一个相应的权重wij,该权重定义为用户i对用户j的转发概率。对于目标用户vi,构建以vi为核心的网络图(ego-network)的具体包括以下步骤:(2.1)从n个用户中获取目标用户vi在时刻t之前关注的用户集合,统计目标用户vi对集合中的每个用户发布的推文的转发次数,将转发次数为零时对应的用户从集合中去除得到目标用户集合(2.2)以目标用户vi为核心构造网络图,其中,网络图中的节点表示目标用户vi以及中的所有用户,网络图中的有向边表示该有向边对应的两用户之间存在关注关系,有向边的指向由关注用户指向被关注用户;即,对于经过(2.1)处理之后的关注者用户集对于任意有一条有向边从vi指向vj,形成一条有向边eij,对于中的任意两个用户,若这两个用户之间也存在转发关系,也依照转发的方向构建有向边。(2.3)对于网络图中的有向边对应的权重,由该有向边对应的关注用户对被关注用户发表文本的转发概率确定。例如,对于(2.3)中构造的有向图,图中的每条边的权重则通过用户间的转发概率来进行衡量,节点vi对节点vj的转发概率计算方式如公式(1)所示:其中,表示在时刻t之前,与用户vi有社会关系的用户集合,进一步的,在这里表示被用户vi转发过推文的用户集合,其总的用户个数为k名用户,mij则为用户vi对用户vj的转发次数。现假设对于给定用户a以及a的朋友而言有如下的关注列表:表2用户该用户关注的其他用户名单ab,c,dba,dcadb,c表2中的关注关系主要围绕给定用户a,以及a的朋友之间的关注关系,首先根据表2中的关注关系,构建出用户节点之间的有向边,然后根据用户之间的转发信息,计算边的权重,假设对用户a而言,他一共转发了8条推文,其中对用户b转发了2条,对用户c转发了2条,对用户d转发了4条,则用户a对b的转发率为wab=2/8=1/4,依次类推,可以计算出图中每条边的权重,由此形成的以a为核心的示例网络图如附图2所示。(3)用户兴趣提取:将经过预处理后的n个用户中的每个用户发布的n条文本聚集成一个目标文本,得到n个目标文本,对每个目标文本中的主题信息进行抽取,得到每个用户的兴趣向量表示目标用户vi在时刻t之前的原始兴趣;用户兴趣提取的目的是基于用户自己所发布的推文来自动地识别该用户感兴趣的主题,在这里使用lda主题建模方法。lda是一种无监督的机器学习方法,主要用于从大量的文档集合当中识别潜在的主题信息。lda模型是一个分层的贝叶斯模型,包含文档、主题和词三个层次。lda模型基本思想是每个文档都可以表示成若干潜在主题的混合分布,每个主题是词汇表中所有单词的概率分布。但是考虑到lda主题模型的性能很大程度上受文档长度的影响,即一个短文本缺少足够的词出现次数,无法帮助判断是这些词是否是相关的,并且由于我们的目的是为了提取每个用户所感兴趣的主题,而不是每一条单一的推文所涵盖的主题,因此,可以使用基于聚集的lda主题建模方法来解决短文本的问题,即需要将爬取到的每个用户的所有推文聚集成一个大的文本,也就是说每个文本对应于一个推特用户,然后再使用lda结合gibbssampling对每个用户感兴趣的主题信息进行抽取,对于最终提取到的用户兴趣,使用向量进行表示,即表示用户vi在时刻t之前的原始兴趣(o表示original)。在运行lda的时候,可以自己人为的指定生成的topic的个数,由于topic的个数会对最后产生的结果产生直接影响,因此我们可以自己定义一个测试范围如20-100之间,进行多次试验,来确定合适的topic数量k,最终得到的文档-主题(document-topic)分布就是我们所需要抽取的用户兴趣,在这里,每个用户的原始兴趣就是一个k维的向量,每一维代表一个topic的占比,假设现在k=5,对于用户v对应的文档d,假设其文档-主题分布为topic0:0.23,topic1:0.14,topic2:0.45,topic3:0.12,topic4:0.06,则对应的用户v的原始兴趣向量为(0.23,0.14,0.45,0.12,0.06)t。(4)用户间影响力量化:从网络图中的目标节点出发,沿着网络图中的边随机游走,以第一概率随机选择与目标节点相邻的边,沿着该边移动到下一个节点,或以第二概率直接回到目标节点,以下一个节点或目标节点为出发点重复随机游走过程,直至网络图中每个节点的概率值到达稳定状态,得到目标节点到网络图中其它节点的稳定概率分布,该稳定概率分布即为与目标用户vi有社会关系的其它用户对目标用户vi的影响力f,其中,第一概率与第二概率可以根据需要进行确定;现有的大多研究社会影响力的文献都集中在研究用户之间的局部影响力,即成对用户间的影响力(pairwiseinfluence),该影响力可以通过衡量网络图中用户节点间的相似度来进行量化,在这里我们使用带重启的随机游走算法(randomwalkwithrestart,rwr),其主要思想是从图中某个顶点出发,沿着图中的边随机游走。在任意点上,以一定的概率随机选择与该顶点相邻的边,沿着边移动到下一个顶点,或以一定的概率直接回到出发点。经过有限次的随机游走过程,图中每个顶点的概率值到达平稳状态,再次迭代也不会改变图中的概率分布。此时,图中每个点的概率值可以看作该顶点与出发点的相似度。影响力量化过程的具体描述如下:(4.1)根据目标用户vi的网络图中每条边的权重,得到转移矩阵s,其中,转移矩阵s中的元素si,j表示当前在节点j,下一步达到节点i的转移概率;以附图2中的网络图为例,构造出的转移矩阵s为:(4.2)由pis+1=(1-β)spis+βri(公式2)得到目标用户vi的网络图中每个节点的概率值,其中,表示在目标用户vi的网络图中,从节点i在第s步达到节点j的概率,ri=(r1,r2,...,rj,...,rk)t为重启动向量,rj表示出发点在j的概率,β为直接回到出发点的概率,k表示中的用户数量;其中,公式(2)中pis+1、pis以及ri是列向量,ri=(r1,r2,...,rj,...,rk)t为重启动向量,rj表示出发点在j的概率,ri中取目标用户顶点值为1,其余为0。概率分布使用公式(2)计算。它在图的随机游走过程中被执行,重复迭代,直到p收敛,得到目标用户顶点到图中其他顶点的稳定概率分布,该求得的分布即可视为每个邻点对用户vi的影响力。在公式(2)中,对于初始状态,即pi0,由于初始时随机游走器在用户vi处,以附图2中的用户a为例,若随机游走器从a开始进行随机游走,则故也有ra=(1,0,0,0)t,经过若干次迭代之后,上述公式中的到达概率会收敛,收敛的概率值便是我们所求的结果。(5)由目标用户vi在时刻t之前的原始兴趣以及目标用户vi所受到的其他用户的影响力f得到目标用户vi的目标兴趣向量;(6)根据目标兴趣向量对目标用户vi在时刻t的转推行为进行预测,判断用户是否会在时刻t之前转发目标文本。将用户转推行为预测视为一个分类任务,即对于给定的网络图g=(v,e),目标用户vi,某一条给定的推文c以及某个时间点t,我们的任务是去判断vi是否会在时间t之前去转发该推文c,在此,将该预测结果用进行表示,则表示vi会在时刻t之前转发该推文c,反之,则表示不会转发,预测建模的具体过程描述如下:首先结合目标用户vi的原始兴趣向量以及用户vi的所有直接邻点对它的影响力,计算得到用户vi最终的兴趣向量该计算公式如公式(3)所示:公式(3)中表示用户vi的原始兴趣向量,表示在时刻t-1与用户vi有社会关系的用户集合,进一步的,在这里表示被用户vi转发过推文的用户集合,其总的个数为k名用户;则为用户vi受到的来自其邻点vj的影响力,γ为一个平衡加权参数,由上述计算公式可得到用户vi最终的兴趣向量。对于公式(3)中的加权参数γ而言,该参数用于平衡用户自己的兴趣与其朋友的兴趣,对于不同的用户其取值可能大不相同,因为有的用户有较强的主观意识,不会轻易受他人干扰,这个时候γ的值会比较小,而相反,有的用户比较容易受他人影响,此时γ的值就会比较大。该参数的取值会影响到最终的用户兴趣向量,因此,在进行实验时,可以对该参数进行调整,可以在[0.1,1.0]的区间内进行测试调整,根据最终预测的性能来决定γ的取值。由于将预测视为一个分类任务,在这里使用逻辑回归模型来完成该分类任务,将上述得到的用户兴趣作为特征来预测逻辑回归分类模型可以描述为公式(4):公式(4)中,x为该分类模型的特征向量,也就是用户最终的兴趣,θ为特征向量系数,逻辑回归分类模型是基于最大似然估计来计算对应特征向量系数的,如公式(5)所示:在公式(5)中,m表示训练数据集数目,通过最大化l(θ)来学习特征向量系数θ。作为一种可选的实施方式,可以对得到的模型进行评估,对于爬取到的数据,根据时刻t将其分为两份,即训练集和测试集,t之前的数据作为训练集,t之后的数据作为测试集,并且执行4次交叉验证,进行交叉验证的目的是为了调整模型的参数。模型的训练和评估的具体过程描述如下:模型的训练主要是通过训练数据集来学习得到公式(4)中的特征向量系数θ,通过最大化公式(5)中的l(θ)可以得到θ,在这里使用梯度下降算法来学习θ,θ的更新过程如公式(6)所示:公式(6)中,μ为学习率,当上述公式迭代了一定次数,或者当θ收敛时,迭代终止。对于模型的训练而言,学习率μ的选择非常重要,直接决定最后的学习结果,如果学习率过大,容易导致最后在最优值附近徘徊,而无法达到最优值,但是若学习率设置的过小,尽管最后会落在最优点,但是算法收敛的速度会特别慢,所以可以选择一开始将μ设置的大一点,当逐渐接近最优值的时候,再将学习率减小。对于模型的评估,可以选取几种常用的性能度量标准,如rmse(均方根误差,rootmeansquarederror)或是准确度、召回率和f值来评估模型的性能。使用时刻t之后的数据作为测试集,来测试模型的性能,以准确度、召回率和f值为例,准确率(precision)主要是为了考察转发预测模型的准确性,其计算公式如公式(7)所示:召回率(recall)是为了考察转发预测模型的全面性,其计算公式如公式(8)所示:f值(f-measure)则是准确率和召回率的综合评估。其计算公式如公式(9)所示:若现有的测试数据规模为1000,其中目标用户vi转发的推文有450条,未转发的有550条,先从中任意选取500条推文进行预测测试,假设预测成功的有350条,预测失败的有150条,则准确度=350/500=0.7,而召回率=350/450=0.78,当准确度或是召回率越高,表明模型的性能越好,当然,在有些情况下,这两者会相互矛盾,因此才需要使用f值来综合考虑两者性能。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12