基于社交上下文信息的用户转发行为预测方法与流程

文档序号:20999606发布日期:2020-06-05 22:32阅读:247来源:国知局
基于社交上下文信息的用户转发行为预测方法与流程

本发明属于社交网络分析及数据挖掘技术领域,涉及一种用户转发行为预测方法,具体涉及一种基于社交上下文信息的用户转发行为预测方法,可用于社交网络中用户转发行为的预测。



背景技术:

随着互联网及社交媒体的发展和普及,社交网络逐渐成为用户进行信息获取、分享和交流的重要平台,极大程度上满足了用户的社交需求,每时每刻都进行着信息的交互。社交网络通过微博、博客、社区等多种途径,实现人与人之间的互联,最终形成了联系紧密的社交圈。社交网络具有传播快、范围广、影响大的特点,成为信息传播的重要途经,转发行为被认为是信息在网络中进行传播的重要机制。社交网络记录了大规模的用户活动数据,这些数据对于用户行为规律具有重要的研究意义和应用价值。目前,对社交网络分析的研究主要包括用户行为分析、社交网络情感分析、信息传播规律、影响力最大化等方面,其中,用户转发行为预测方法可以为推荐系统、个性化搜索和市场营销等应用提供保障。因此,转发行为预测建模成为研究者们关注的热点问题。

用户转发行为的分析是实现转发行为预测的基础,想要判断给定的用户是否会转发待预测的消息,首先需要分析影响用户转发与否的因素,继而将这些因素用合理的数学模型表示,并通过机器学习方法进行模型训练,最后完成预测任务。用户转发行为预测的首要任务是分析和探索影响用户转发行为的主要驱动因素。因此,基于数据统计的定性分析方法集中挖掘对用户转发行为产生影响的一些主要因素,如粉丝数、关注数、用户是否认证、用户兴趣偏好、消息文本内容的话题分布和情感倾向性等,这些前期定性分析为后面的转发行为影响因素量化研究奠定了坚实的建模基础。研究用户的行为预测这个问题,现有的解决方案大多都集中于将影响因素作为特征加入预测模型,而对于预测模型而言,许多研究将用户行为预测问题视作二分类问题。

例如,申请公布号为cn107341571a,名称为“一种基于量化社会影响力的社交网络用户行为预测方法”,公开了一种基于量化社会影响力的社交网络用户行为预测方法,该方法包括数据爬取、数据预处理、构建网络图、用户兴趣提取、用户间影响力量化、预测建模及模型训练评估。该方法存在的不足之处是:社交网络用户行为预测方法中只是通过用户的兴趣量化社交影响力来推测用户的行为,没有充分考虑接收消息的及时性和活跃邻居形成的圈子数量对目标用户的影响,缺乏对用户交互行为的多元性和动态性的研究,降低了用户行为预测的准确性。



技术实现要素:

本发明的目的在于克服上述现有技术的不足,提出了一种基于社交上下文信息的用户转发行为预测方法,用于解决现有技术中存在的用户转发行为预测准确率较低的技术问题。

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

(1)收集社交网络中的数据:

(1a)随机选取社交网络中一个用户作为种子用户,并爬取该种子用户的关注用户,组成第一关注用户集合;

(1b)爬取第一关注用户集合中每个关注用户的关注用户,组成第二关注用户集合,并将种子用户、第一关注用户集合和第二关注用户集合组成用户集合u;

(1c)爬取用户集合u中每个用户vi在连续t个时间段发布的文本消息,并对所有的文本消息进行预处理,然后将前t-1个时间段发布的经过预处理所获取的的分词集合作为用户的历史消息,将第t个时间段发布的m条文本消息经过预处理所获取的分词集合作为m条待预测消息,m≥500;

(2)构建每个用户的社交网络图gi:

以用户集合u中的每个用户vi以及vi的关注用户为节点,以关注用户指向被关注用户的关注关系为有向边构建vi的社交网络图gi,有向边对应的权重为关注用户对被关注用户所发布的文本消息的转发概率;

(3)计算用户vi的历史消息的主题概率分布和待预测消息的主题概率分布之间的js散度jsd(pv||pm):

(3a)将用户vi的历史消息和m条待预测消息分别作为lda主题生成模型的输入,计算vi的历史消息的主题概率分布pv和每条待预测消息的主题概率分布pm,

(3b)计算用户vi的历史消息的主题概率分布pv与待预测消息的主题概率分布pm的js散度jsd(pv||pm):

其中,pv(k)表示第k个主题生成用户兴趣文档的概率,pa(k)表示pa中的第k个概率值,∑表示求和操作,k表示lda主题生成模型的主题个数,k=1,2,...,k;

(4)计算用户vi的成对影响力f(v,gi)和结构影响力

(4a)以社交网络图gi中的节点vi为出发点,沿gi中的有向边随机游走,以第一概率随机选择与节点vi相邻的边,并沿该边移动到下一节点,或者以第二概率返回节点vi后,以下一个节点或节点vi为出发点重复随机游走过程,经过迭代直至社交网络图gi中每个节点的概率值达到稳定状态,得到节点vi到其他节点vj,即其他节点vj对节点vi的影响力infij的稳定概率分布;

(4b)计算用户vi的成对影响力f(v,gi)和结构影响力

其中,v表示用户vi的关注用户节点集合,表示在第t时间段转发用户vi发布的文本消息的用户所组成的活跃邻居集合,表示用户vj转发消息与用户vi转发消息的时间差,vj∈v,a表示平衡因子参数,μ表示衰减因子参数,表示所形成的社交圈的集合;

(5)获取用户vi的社交上下文信息xi,m:

计算用户vi的局部影响力并将和js散度jsd(pv||pm)作为用户vi的社交上下文信息xi,m:

其中,δ表示平衡f(v,gi)和权重的参数;

(6)基于社交上下文信息xi,m获取用户vi的转发行为的预测结果:

(6a)将步骤(1)中收集到的半数以上数据对应的社交上下文信息作为训练集,其余数据对应的社交上下文信息作为测试集;

(6b)将训练集作为逻辑回归分类模型h(x)的输入,并通过似然函数l(β),采用梯度下降法进行迭代训练,得到训练好的逻辑回归分类模型h(x)';

(6c)将测试集作为训练好的逻辑回归分类模型h(x)'的输入,对用户的转发行为进行预测,并对预测结果与预先设置的阈值进行比较,当预测结果大于等于预先设置的阈值时,则用户vi在第t时间段转发了消息m,否则,用户vi在第t时间段没有转发消息m。

本发明与现有技术相比,具有如下优点:

本发明通过分析社交上下文信息,将社交网络中用户发布的历史消息与待预测消息的主题概率分布的相似性,以及社交网络的局部影响力作为用户转发行为的影响因素,来预测社交网络中用户的转发行为,本发明的建模思想更符合社交网络中用户转发行为的真实场景,充分考虑接收消息的及时性和活跃邻居形成的圈子数量对目标用户转发行为的影响,更好地捕捉了用户转发行为的外在影响因素,克服了现有方法仅考虑单一方面的影响因素的问题,可以有效提高用户转发行为的预测准确率。

附图说明

图1为本发明的实现流程图;

图2为本发明用户v1的社交网络图g1。

具体实施方式

以下结合附图和具体实施例,对本发明作进一步详细描述:

参照图1,本发明包括如下步骤:

步骤1)收集社交网络中的数据:

步骤1a)随机选取社交网络中一个用户作为种子用户,爬取该种子用户的关注用户,组成第一关注用户集合s,s={s1,s2,...,si,...,ss};

步骤1b)爬取第一关注用户集合中每个用户si的关注用户,组成第二关注用户集合vi,vi={vi1,vi2,...,vij,...,vil},其中,si表示种子用户的第i个关注用户,vij表示用户si的第j个关注用户,l表示用户si的关注用户总数;

现有的数据采集方法主要包括系统日志采集方法、网络爬虫方法和特定系统接口方法,在本实施例中采用但不限于通过api(applicationprogramminginterface,应用程序编程接口)爬取社交网络中的数据,即以国内大型微博网络——新浪微博作为待研究的社交网络。当用户a关注用户b时,b的活动(例如发布原创消息和转发消息)将对a可见,然后a可以选择转发由b发布的消息,在本实施例中s取100,l取100。由于社交网络记录了大规模的用户行为数据,为了捕获用户转发行为的影响因素,需要爬取大量用户数据来进行分析与挖掘。

步骤1c)爬取用户集合u中每个用户vi在连续t个时间段发布的文本消息,并对所有的文本消息进行预处理,然后将前t-1个时间段发布的经过预处理所获取的的分词集合作为用户的历史消息,将第t个时间段发布的m条文本消息经过预处理所获取的分词集合作为m条待预测消息,m≥500。

由于爬取的原始文本消息中存在着大量的噪声信息,会对后面的文本内容分析造成干扰,因此需要过滤掉无关信息。在本实施例中对文本内容进行过滤处理主要包括删除重复数据、去除无用的空格及符号、去除停用词与无意义词。分词处理的具体操作为采用汉语分词工具对爬取到的所有文本消息进行分词处理,提取每条文本消息中的词语,得到每条文本消息的分词集合,然后将每条文本消息分词集合中的词语与停用词列表中的词语进行对比,将相同的词语从每条文本消息的分词集合中剔除,用剩余词语组成文本消息最终的分词集合。本实施例中采用的汉词分词工具为中科院计算技术研究所研发的汉语词法分析系统ictclas,采用的停用词列表为中国软件开发者社区csdn提供的停用词列表。对文本内容的预处理主要会对lda主题生成模型的分析结果产生影响,因此可以根据需求来调整对数据集进行预处理的具体操作。

步骤2)构建每个用户的社交网络图gi:

以用户集合u中的每个用户vi以及vi的关注用户为节点,以关注用户指向被关注用户的关注关系为有向边构建vi的社交网络图gi,有向边对应的权重为关注用户对被关注用户所发布的文本消息的转发概率;

步骤2a)获取用户集合u中的每个用户vi在连续t个时间段关注的用户集合,统计用户vi对集合中的每个用户发布的消息的转发次数,将转发次数为零时对应的用户从集合中去除,得到用户集合wi。以用户vi以及集合wi中的用户为节点,以关注用户指向被关注用户的关注关系为有向边构建vi的社交网络图gi,有向边对应的权重为关注用户对被关注用户所发布的文本消息的转发概率;

本发明构建的用户vi社交网络图gi=(v,e),其中,v={v1,v2,...,vi,...,vn},|v|=n表示社交网络图gi中有n个节点,e表示社交网络图gi中的有向边,该有向边代表用户间的关注关系。例如边eij表示用户vi和用户vj之间存在关注关系,若gi中的任意两个节点vi和vj之间存在关注关系,则在用户vi和用户vj之间存在一条有向边。

步骤2b)有向边对应的权重为关注用户对被关注用户所发布的文本消息的转发概率。

首先,计算用户vi与其邻接节点vj之间转发消息的频率fij:

其中,t表示用户发布消息所选取的时间段总数,表示所选取的δts时间段内用户vi和用户vj之间转发消息的平均数,δts表示用户发布消息选取的第s个时间段;

然后,根据频率fij来计算转发概率:

其中,ρij表示节点vi对节点vj的转发概率,fij表示社交网络中用户节点vi和vj之间进行信息互动的频率。

本发明使用三元组(vi,t,m)来表示用户vi在第t时间段对于待预测消息m所执行的行为状态,将用户的行为状态记为其中,表示用户vi在t时刻转发了消息m,表示用户vi在t时刻没有转发消息m。将第t时间段执行转发行为的用户称为活跃用户,反之则称为不活跃用户。在本实施例中,构建如图2所示的用户v1的社交网络图g1中v={v1,v2,v3,v4,v5},用户v1在第t时间段的活跃邻居集合为在本实施例中节点v1与其邻居节点转发消息的频率分别是5、4、10、2,即f12=5,f13=4,f14=10,f15=2,则计算得到节点v1对活跃节点v2的转发概率是以此类推,最终可以得到如表1所示的节点v1对其活跃邻居节点之间的转发概率。

表1

步骤3)计算用户vi的历史消息的主题概率分布和待预测消息的主题概率分布之间的js散度jsd(pv||pm):

步骤3a)将用户vi的历史消息组成用户兴趣文档将每一条待预测消组成消息文档dm,并通过lda主题生成模型抽取的k个主题和dm的k个主题,计算每个主题生成用户兴趣文档的概率pv(k),并将pv(1),pv(2),...,pv(k),...,pv(k)组成用户vi的历史消息的主题概率分布同时计算每个主题生成消息文档dm的概率pm(k),并将pm(1),pm(2),...,pm(k),...,pm(k)组成待预测消息的主题概率分布

lda(latentdirichletallocationmodel)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。lda主题生成模型对给定文档的主题分布进行建模,具体地说,就是对每个文档中的主题信息进行抽取,得到每个文档中的主题概率分布。所谓生成模型,就是认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。文档到主题服从多项式分布,主题到词服从多项式分布,这种非监督机器学习技术可以用来识别大规模文档集中潜藏的主题信息。

步骤3b)计算用户vi的历史消息的主题概率分布pv与待预测消息的主题概率分布pm的js散度jsd(pv||pm):

其中,pv(k)表示第k个主题生成用户兴趣文档的概率,pa(k)表示pa中的第k个概率值,∑表示求和操作,k表示lda主题生成模型的主题个数,k=1,2,...,k。

在本实施例中,使用lda模型计算主题概率分布时,需要确定合适的主题数量k,可以自己定义一个测试范围,进行多次实验来确定合适的k值。选取过程是:先选取初始k值,得到初始模型,计算各主题之间的相似度,然后增加或减少k的值,重新训练得到模型,再次计算主题之间的相似度,最后重复第二步直到得到最优的k值。假设我们得到最优的k=2,对于用户vi的历史消息组成用户兴趣文档通过lda主题生成模型得到用户vi的历史消息的主题概率分布pv={0.5,0.5},并得到待预测消息的主题概率分布pm={0.25,0.75},使用kl散度计算得到dkl(pv||pa)=0.032,dkl(pm||pa)=0.036,使用js散度计算得到jsd(pv||pm)=0.034。

步骤4)计算用户vi的成对影响力f(v,gi)和结构影响力

步骤4a)将社交网络图gi中每条有向边的权重作为转移概率,得到转移矩阵a,其中,a中的元素ai,j表示节点vj下一步到达节点vi的转移概率。计算社交网络图gi中每个节点的概率值计算公式如下:

其中,表示节点vi在第s步到达节点vj的概率,ri={r1,r2,...,rj,...,rl}t表示重启动向量,rj表示出发点在节点vj的概率,α为返回节点vi的重启概率,l为社交网络图gi中的节点数目。ri是列向量,若初始游走节点为vj,则ri中rj的值取1,其余为0。

步骤4b)从社交网络图gi中的节点vi出发,沿着网络图中的边随机游走,每一步面临两个选择,以第一概率随机选择相邻节点,或者以第二概率返回开始节点后,以下一个节点或节点vi为出发点重复随机游走过程,经过迭代直至收敛到一个平稳的状态,得到节点vi到其他节点vj的稳定概率分布,该稳定概率分布表示的是其他节点vj对节点vi的影响力infij。

在本实施例中,以用户v1的社交网络图g1为例,构造出的转移矩阵a为:

若随机游走者从节点v1开始随机游走,则初始状态故有r1=(1,0,0,0,0)t,经过若干次迭代之后,列向量p1收敛,收敛的概率值就是所求的稳定概率分布值。

步骤4c)计算用户vi的成对影响力f(v,gi)和结构影响力

其中,v表示用户vi的关注用户节点集合,表示在第t时间段转发用户vi发布的文本消息的用户所组成的活跃邻居集合,表示用户vj转发消息与用户vi转发消息的时间差,vj∈v,a表示平衡因子参数,μ表示衰减因子参数,表示所形成的社交圈的集合。在本实施例中,用户v1在第t时间段的活跃邻居集合为该活跃邻居集合形成2个社交圈,分别为circle1={v1,v2,v3},circle2={v1,v4},则

步骤5)获取用户vi的社交上下文信息xi,m:

计算用户vi的局部影响力并将和js散度jsd(pv||pm)作为用户vi的社交上下文信息xi,m:

其中,δ表示平衡f(v,gi)和权重的参数;

对于不同的用户群体其取值可能大不相同,如果用户的行为模式变化不大,不容易受到周围人的干扰,则δ的值可设置的相对较大。反之,如果用户的行为模式波动较大,偏向于从周围人来获取知识,则δ的值可设置相对较小。因此,在本实施例中,可以在区间[0.3,1.0]进行调试,根据最终的性能来决定δ的取值。

步骤6)基于社交上下文信息xi,m获取用户vi的转发行为的预测结果:

步骤6a)将步骤(1)中收集到的半数以上数据对应的社交上下文信息作为训练集,其余数据对应的社交上下文信息作为测试集;

步骤6b)将训练集作为逻辑回归分类模型h(x)的输入,并通过似然函数l(β),采用梯度下降法进行迭代训练,得到训练好的逻辑回归分类模型h(x)'。逻辑回归分类模型h(x)和似然函数l(β),其表达式分别为:

其中,x表示逻辑回归分类模型h(x)的特征向量,β为特征向量系数,e为自然对数,q为训练集中的样本数目,x(q)表示第q个训练样本所对应的特征向量,y(q)表示第q个训练样本所对应的h(x(q))的值。

根据社交上下文信息对用户vi在第t时间段的转发行为进行预测,判断用户是否在第t时间段转发待预测消息。转发行为预测可以视作是一个分类问题:给定一条待预测消息m,用户vi和时间戳t,本发明的目的是判断用户vi在第t时间段是否会转发该消息m,也就是对用户vi在第t时间段的行为状态进行分类。使用逻辑回归分类模型的优势在于可以把不同的函数组合方便地集成到模型中。训练逻辑回归模型,就是为了求解h(x)中的未知参数β,为了求解h(x)中的未知参数β,就需要构建一个目标函数,这个目标函数就是似然函数l(β),接下来要做的就是求解使目标函数达到最大的未知参数β。对每一个未知参数βj,通过梯度下降法可以得到βj的更新过程,即

其中,μ为学习率,也称为参数βj变化的步长,通常步长可以取0.1,0.05,0.01等,j=1,2。如果设置的过小,会导致βj变化微小,需要经过多次迭代,收敛速度过慢,但如果设置的l(α,β)j过大,就很难得到理想的l(α,β)j值,进而导致似然函数可能是局部最小。所以,μ的初始值可以设置的大一点,当似然函数接近最优解的时候,再将学习率减小。

步骤6c)将测试集作为训练好的逻辑回归分类模型h(x)'的输入,对用户的转发行为进行预测,并对预测结果与预先设置的阈值进行比较,当预测结果大于等于预先设置的阈值时,则用户vi在第t时间段转发了消息m,否则,用户vi在第t时间段没有转发消息m。

对于模型的评估,可以选取常用的性能度量标准,如rmse(rootmeansquarederror,均方根误差)或是准确度、召回率和f值来评估模型的性能。

准确率(precision)是为了评估转发预测模型的准确性,其计算公式如下:

召回率(recall)是为了评估转发预测模型的全面性,其计算公式如下:

f1值(f1-score)是准确率和召回率的综合评估,其计算公式如下:

在本实施例中,测试数据规模为1000,其中用户vi转发的消息有600条,未转发的有400条,先从中任意抽取500条进行测试,预测成功的有450条预测失败的有50条,则准确率=450/500=0.90,召回率=450/600=0.75,f1-score=(2×0.90×0.75)/(0.90+0.75)=0.82。当准确率或召回率越高,表明预测结果越好,当然在有些情况下,这两个度量指标会互相矛盾,因此才需要用f1值来综合考虑两者性能。

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