首页> 中国专利> 面向弱关系社交网络的博文推荐方法

面向弱关系社交网络的博文推荐方法

摘要

本发明公开了一种面向弱关系社交网络的博文推荐方法,该方法包括:利用社交网络中的用户和博文数据,根据活跃度划分出活跃用户群和非活跃用户群,然后分别面向活跃与非活跃的用户群,使用基于转推网络的推荐方法和基于内容标签的推荐方法的输出的用户‑博文的兴趣度,最后通过结果的合并,得出用户‑博文的兴趣度值。本发明使用转发网络这一相对于社交网络更加动态化地捕捉用户之间的关系的方法,并引入了相似度和信任度两个指标去刻画用户之间关系的强弱,改进了传统的基于用户的协同过滤推荐算法。同时,针对非活跃用户,利用基于内容标签的推荐方法,解决了转发网络推荐方法的数据稀疏性和冷启动问题。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-20

    授权

    授权

  • 2016-12-28

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160602

    实质审查的生效

  • 2016-11-30

    公开

    公开

说明书

技术领域

本发明涉及社交网络的信息推荐领域,具体是指针对于弱关系的社交网络的博文推荐方法。

背景技术

目前在推荐领域使用的方法很多,比如基于内容的推荐算法(Content-basedFiltering)、基于用户的协同过滤算法(User-based Collaborative Filtering)、基于物品的协同过滤算法(Item-based Collaborative Filtering)等等。但是面临了很多挑战,比如:数据稀疏性(Data Sparsity)、冷启动问题(Cold Start)、及时性等问题。现有的推荐算法对于解决数据稀疏性和冷启动存在很大的困难,为解决这些问题,追求推荐算法更高的效率和更优的推荐结果,国内外纷纷都发出高额的奖金去众包,以提高推荐算法的准确率。

发明内容

针对上述现有推荐技术存在的数据稀疏性和冷启动的缺陷,本发明的目的旨在提高算法效率的同时,提高推荐的精准度,能够更加准确可靠地对弱关系网络进行信息推荐。

为了实现上述发明目的,本发明采用的基本技术方案包括如下内容。

一种面向弱关系社交网络的博文推荐方法,所述方法包括:利用社交网络中的用户和博文数据,根据活跃度划分出活跃用户群和非活跃用户群,然后分别面向活跃与非活跃的用户群,使用基于转推网络的推荐方法和基于内容标签的推荐方法的输出的用户-博文的兴趣度,最后通过结果的合并,得出用户-博文的兴趣度值。

所述基于内容标签的信息推荐方法,包括:针对于博文的兴趣类别,情感倾向特征和时间特征三类标签的提取和组合,并且对其用向量化表示;基于博文的向量化标签,构建用户的特征标签,并且进行向量化表示;基于用户和博文的向量化标签,利用内积计算用户和博文的兴趣匹配度。

所述基于转发网络的信息推荐方法,包括:构建用户和博文的矩阵,获取到博文的转推关系,得到用户和用户之间的关系网络;基于用户相似度计算用户对博文的兴趣度,从而预测用户对每条博文的转发概率;基于用户信任度计算用户对博文的兴趣度,从而预测用户对每条博文的转发概率;利用加权混合基于用户相似度和信任度所计算出的兴趣度,从而预测用户对每条博文的转发概率。

基于用户相似度计算用户对博文的兴趣度的方法包括:将博文做为项,通过用户-博文的 打分矩阵,计算用户之间的相似度,其计算公式如下:

其中分母中的N(u)是指用户u发布的博文数,N(v)是指用户v发布的博文数,分母是正则项,能够使得最后用户u和用户v的相似度值在0和1之间,是惩罚因子,表示博文i被转发的次数越多,该惩罚因子的值会比原始值小;在获得了用户-博文的打分矩阵和用户之间的相似度后,当给定用户u和博文t后,利用如下公式计算用户u对博文t的兴趣度:

其中,S(u,K)包含与用户u最相似的K个用户集合,N(t)是指转发或发布过博文t的用户集合,用户v就是指上述两个集合的用户交集,rvt是指用户v是否转发或发布过博文t。

基于用户信任度计算用户对博文的兴趣度的方法包括,在获得了用户-博文的打分矩阵和用户之间的信任度后,给定用户u和博文t,利用如下公式计算用户u对博文t的兴趣度:

其中,S(u,K)包含用户u信任度最高的K个用户集合,N(t)是指转发或发布过博文t的用户集合,用户v就是指上述两个集合的用户交集集合。rvt是指用户v是否转发或发布过博文t。

计算用户之间的信任度主要包括:基于用户发布和转发之间的时间间隔分布衡量用户之间的信任度,其中时间间隔利用负指数分布;基于博文转发路径,用户之间的信任度是可以进行传递,并且路径越长,信任度度越低。

本发明引入了负指数分布模拟某一条博文发布时间和转发时间的延迟:

trust值是通过负指数分布计算出来的,其中x的定义:

这里createdAtv(t)-createdAtu(t)指用户u转发博文t时间和用户v发布博文t时间的延迟,createdAtmax(t)-createdAtmin(t)指在转推博文时间间隔中最大的延迟,其中用户u和用户v是相邻的,即用户v直接转发了用户u的博文,对于参数λ,使用最大似然估计计算其值:>其中是样本的平均值,用户u发布博文的时间和用户v转发用户u发布博文的时间越近,则用户v对用户u的信任度值越高。

对于间接转发的用户之间,如果用户w转发了用户v转发的博文t,用户v转发了用户u发布的博文t,则用户w对用户v同样具有信任度,其计算如下:

Patht(w,u)={trust1(w,v),trust2(v,u)},该公式指用户w和用户v存在一条转发路径,则信任度为即用户w对用户v的信任度是指在此转发路径上的信任度值的乘积。

因为基于用户相似度计算用户对博文的兴趣度值和基于用户信任度计算用户对博文的兴趣度值各不相同,所以分别对每个用户所预测博文集合的相似度兴趣值和信任度兴趣值做归一化处理,以便除去误差,归一化的公式如下:

得到归一化后的兴趣度,再利用加权公式进行最优兴趣度的计算:

psim_trust(u,t)=α||ptrust*(u,t)||+(1-α)||psim*(u,t)||

其中α是值在0到1之间的参数值。

本发明使用转发网络这一相对于社交网络更加动态化地捕捉用户之间的关系的方法,并引入了相似度和信任度两个指标去刻画用户之间关系的强弱,改进了传统的基于用户的协同过滤推荐算法。同时,针对非活跃用户,利用基于内容标签的推荐方法,解决了转发网络推荐方法的数据稀疏性和冷启动问题。

附图说明

图1是本发明所述推荐方法的流程框图;

图2是本发明所述基于内容标签的博文的兴趣类别特征抽取流程图;

图3是本发明所述基于内容标签的博文的情感倾向特征抽取流程图;

图4是本发明所述基于转推网络的推荐方法数据预处理流程图;

图5是本发明所述基于内容标签的推荐方法数据预处理流程图;

图6是实施例中基于转发网络方法中不同的α参数值所对应MAP值变化。

具体实施方式

下面结合实施例对本发明进一步详细描述。

一种面向弱关系社交网络的博文推荐方法,包括:利用社交网络中的用户和博文数据,根据活跃度划分出活跃用户群和非活跃用户群,然后分别面向活跃与非活跃的用户群,使用基于转推网络的推荐方法和基于内容标签的推荐方法的输出的用户-博文的兴趣度,最后通过结果的合并,得出用户-博文的兴趣度值。

1、一种基于内容标签的信息推荐方法,主要包括以下步骤:

步骤一,利用Twitter的API采集用户和博文的数据,同时过滤掉非中文的博文和用户,以保证对用户兴趣类别的划分和情感的分类。

对得到的非活跃的Twitter博文集进行非中文过滤,过滤流程如图5所示,从而得到中文博文集。中文过滤的规则主要分为以下几个步骤:

a)将博文按字符遍历,逐个判断博文中字符是否为中文字符,计算博文中的中文字符的长度。

b)将获取到的中文字符博文,利用正则表达式,去除中文字符中的重复词。正则表达式的写法为:(?s)(.)(?=.*\1)。这样就获取到了去除重复中文字符的博文长度。

c)计算中文字符所占博文的长度:

d)计算去除重复词的中文字符所占中文字符博文的长度比例:

e)计算博文长度和博文限定最长长度的比例:

f)以上三个公式都是对处理字符的博文长度进行归一化,使其值归一化的值再计算博文的得分值(score):

score=-alogcp-blogcl-clogcnrp(其中:a+b+c=1)

博文的得分计算公式包含a,b,c三个参数,是对这三个特征的权重比例。经过实验得 到最优结果时的参数,分别选取0.18,0.61和0.21作为a,b,c的值。设定当score值小于0.65时,确认为非中文博文并进行过滤。

步骤二,特征标签的抽取。特征标签包括兴趣类别标签、情感倾向标签和时序行为标签。其中兴趣类别标签包括社会(A),军事(B),政治(C),经济(D),娱乐生活(E)和其他(F),情感倾向标签包括中立、支持、反对。从博文内容的角度出发,兴趣类别标签应该和情感倾向标签组合生成新标签,那么组合标签就是A+中立、A+支持、A+反对、B+中立、B+支持、B+反对等18个特征标签,它们代表着用户对每一类别博文的情感倾向。

对于兴趣类别特征抽取,使用支持向量机算法,具体流程如图2所示,最终得到tinterest_tag={wA,wB,wC,wD,wE,wF},表示博文的每个兴趣类别权重;

对于情感倾向特征抽取,使用词向量,利用文本分类算法,对博文情感倾向进行分类,具体流程如图3所示,最终得到tsentiment_tag={wpositive,wnegative,wneutral},表示博文的每个情感类别的权重;

则ti={wAwpositive,wAwnegative,wAwneutral,…,wFwpositive,wFwnegative,wFwneutral}就是通过以上两特征的表示,计算出博文i的组合标签,该组合标签一共有18组,每种标签计算出的值可以理解成博文对于每个兴趣情感类别的权重值。权重值最大的就是博文所属的兴趣情感类别。

针对于用户的兴趣情感特征,则可以通过统计用户发布博文的兴趣情感类别得出的。则用户的兴趣情感特征标签表示为:

每种特征值表示用户对于该特征的博文占他发布所有博文的百分比。

时序行为特征主要根据Twitter用户所在时区,将时间序列分为4类:Morning(6-12点),Afternoon(12-18点),Evening(18-24点)和Night(0-6点)进行分类,所以共有4种时序行为特征标签。对于博文有4种时序类型,博文的特征表示为:ttime_tag={w1,w2,w3,w4},然后针对用户的时序行为,需要对每个用户发布博文的数据进行统计,则用户的每个时序特征值就是发帖百分比,即该即该用户未来在这个时间段在线的概率:

综上,将用户和博文用标签向量化表示为:

u=(w1,w2,..,w22)(用户多标签向量化表示)

t=(w1,w2,..,w22)(推文多标签向量化表示)

其中1~18维是兴趣情感组合标签,19~22维是时序行为标签,ci指第i维标签的特征值。

综上,就获取了用户和博文的特征标签。

步骤三,基于多标签的兴趣匹配度计算。将用户和博文用标签向量化的方式表示后,用户u对博文t的兴趣度计算使用最简单实用的内积计算,计算公式如下:

p(u,t)=u·t

这里,u是用户的标签向量化表示,t是博文的标签向量化表示。两向量的内积就是用户对该博文的兴趣匹配度。

2、一种基于转发网络的推荐方法。其特征主要是构建用户和博文的矩阵,利用博文转发的动态网络,提出了用户相似度和信任度的概念,改进了传统协同过滤的方法。

1)数据预处理。

基于转发网络的推荐方法数据预处理流程如图4所示。

步骤一,活跃度过滤。首先该方法需要构建用户-博文的转推矩阵,但对于转推行为频率较低的用户和被转推频率较低的博文,会使得转推矩阵更加稀疏,并且大幅度降低算法效率,同时很大程度上会影响算法的结果。所以针对该方法,需要采用如下规则对用户和博文数据进行活跃度的过滤:

a)用户在该月必须转发至少10条博文,以保证用户的相对活跃度;

b)为了获取到博文的转推信息,所以该月的博文一定被转发过。

综上,该预处理是不断迭代的过程,直到数据集中的数据都满足以上的两个条件。

步骤二,博文的哈希处理。获取到活跃度过滤后的转推博文集和用户集后,需要获取每条博文的转推用户集。为提高算法效率,本专利对转推博文做哈希处理。这里的哈希处理使用了Appleby Austin提出的Murmurhash算法,具体有以下几步:

a)因为在Twitter中,博文的转发往往会追加很多格式的内容,造成了相同的博文内容不一致,所以需要用正则表达式去除一些元素,包括“RT”、“rt”、“@”、标签符号;

b)去除博文中转发用户的用户名;

c)使用非加密的hash算法Murmurhash算法作为哈希函数,输入为剩余的有效字符,输出是提取出的hash签名。

步骤三,抽取转推关系。最后需要获取到博文的转推关系,从而得到用户和用户之间的关系网络,以便计算用户之间的相似度和信任度。因为博文的来源各异,包括Twitter的手 机端,网页端和其他第三方应用,导致博文内容的结构各异。经过对各种转推博文进行分析和实验,得出有以下几种情况:

a)RT@sb:content常规情况;

b)(RT@sb:){n}content eg:RT@sb:RT@sb:RT@sb:content;

c)(RT@sb:content){n}eg:RT@sb:content RT@sb:content;

d)content.(RT@sb:content){n}eg:content RT@sb:content RT@sb:content。

以上4中情况的content中可能会包含@sb的标识。在总结过博文的结构后,定义了正则表达式抽取出了转发用户的关系,正则表达式为“(?<=(rt|RT)\s@).*?(?=[(:|\s)])”,功能是抽取出转发的用户,从而构建转发用户的关系。抽取结果样本如图6(a)和图6(b)。

2)基于用户相似度的推荐方法。

步骤一,将博文做为项,通过用户-博文的打分矩阵,计算用户之间的相似度。这个打分矩阵只包含0和1。如果博文被转发则为1,没有转发为0。用户相似度的计算是信息推荐的重要步骤,其计算公式如下:

其中分母中的N(u)是指用户u发布的博文数,N(v)是指用户v发布的博文数,分母是正则项,能够使得最后用户u和用户v的相似度值在0和1之间。是惩罚因子,表示博文i被转发的次数越多,该惩罚因子的值会比原始值小。这也就意味着如果博文i非常热门,那么该博文不足以直接反应用户之间相似程度。相反,如果博文转发次数很少比较冷门,那么这条博文就比热门博文更能反应转发这条博文的用户之间的相似度。

步骤二,在获得了用户-博文的打分矩阵和用户之间的相似度后,当给定用户u和博文t后,就可以利用如下公式计算用户u对博文t的兴趣度:

其中,S(u,K)包含与用户u最相似的K个用户集合,N(t)是指转发或发布过博文t的用户集合,那么用户v就是指上述两个集合的用户交集。rvt是指用户v是否转发或发布过博文t(1为转发或发布过,0为未转发或发布过)。

3)基于用户信任度的推荐方法。

相似度刻画了用户之间的无向边属性,与此同时,我们引入了信任度去刻画用户之间有向边的属性。信任度特征是指当用户v转发了用户u发布或转发的博文,那么就认为用户v对用户u有一定的信任度。

步骤一,计算用户间的信任度。从直观上来看,如果用户u发布了博文t,用户v转发了博文t,那么这就意味着用户v比较喜欢博文t并且愿意去和他的粉丝分享,或者说用户v重视对用户u的网络关系。无论从哪方面看,用户v对用户u都是有一定的信任度。并且用户v越快时间转帖,说明用户v和用户u的时序行为很接近,会更大可能地关注用户u发布的博文。所以基于这个原因,本章引入了负指数分布去模拟某一条博文发布时间和转发时间的延迟:

trust值是通过负指数分布计算出来的,其中x的定义如下所示:

这里createdAtv(t)-createdAtu(t)指用户u转发博文时间和用户v发布博文时间的延迟。createdAtmax(t)-createdAtmin(t)指在转推博文时间间隔中最大的延迟。这里有一个前提,用户u和用户v必须是相邻的,即用户v直接转发了用户u的博文,后续将具体分类讨论。

对于参数λ,使用最大似然估计计算其值:

这里,是样本的平均值。同时,上述针对相邻(直接转发关系)的用户,对于间接转发的用户之间,同样可以计算信任度的值,这里做出一个假设:即信任度的值是可以传递,意味着如果用户w转发了用户v转发的博文t,用户v转发了用户u发布的博文t,则用户w对用户v同样具有信任度,其计算如下:

Patht(w,u)={trust1(w,v),trust2(v,u)}

上述公式指用户w和用户v存在一条转发路径,则信任度的计算如下:

通过公式说明用户w对用户v的信任度是指在此转发路径上的信任度值的乘积。

以上是针对一条博文计算用户间的信任度值。最后将所有转发博文的所计算出的信任度值求和,从而得到用户w和用户u之间的信任度:

由此计算出了用户之间的信任度,构建了用户之间的信任度矩阵和有向边网络。

步骤二,基于用户信任度计算用户对博文的兴趣度,类似于基于用户相似度计算兴趣度的方式。在获得了用户-博文的打分矩阵和用户之间的信任度后,给定用户u和博文t,就可利用如下公式计算用户u对博文t的兴趣度:

其中,S(u,K)包含用户u信任度最高的K个用户集合,N(t)是指转发或发布过博文t的用户集合,用户v就是指上述两个集合的用户交集集合。rvt是指用户v是否转发或发布过博文t(1为转发或发布过,0为未转发或发布过)。

根据以上定义,计算用户u对博文t的兴趣度,重要的是获取到用户v集合。根据用户v集合的要求,必须是用户u对其信任度最高的K个用户集合和发布或转发过博文t的用户集合的交集,那么用户v一定转发或发布了博文t,则rvt的值一定为1。计算兴趣度的公式可以简写成如下形式:

根据计算出的用户对博文的兴趣度值,就可以得到对每个用户的Top-N博文推荐列表。

4)基于用户相似度和信任度的混合推荐方法。

步骤一,因为根据两种方法获取到的用户对博文的兴趣值各不相同,所以分别对每个用户所预测博文集合的相似度兴趣值和信任度兴趣值做归一化处理,以便除去误差。归一化的公式如下:

步骤二,得到归一化后的兴趣度,再利用加权公式进行最优兴趣度的计算:

psim_trust(u,t)=α||ptrust*(u,t)||+(1-α)||psim*(u,t)||

如上公式,其中α是值在0到1之间的参数值,算法不断在测试集上调整优化α,从而达到最优的结果。

本发明前提是针对国内外流行的弱关系社交平台,只是基于内容标签的方法可以根据语言种类的不同,使用对应的分词器,即可应用本发明。

实施例1:

以Twitter平台为例,利用Twitter官方的API,实验选取了一些用户作为种子节点,然后基于种子节点,通过采集用户的好友关系和粉丝关系扩展种子节点库,同时过滤掉好友数量小于15的用户。因为在本发明中这样的用户的信息很少,没有研究的价值。在2014年3月到6月期间采集了平均46636个用户和这些用户在这四个月发布的11803979条的博文。本发明将4个月的数据作为该方法实验的数据集。如表1所示:

表1:数据集描述

时间用户数博文数2014.034064817952682014.046153651919172014.054943633924232014.06349251424371

第二步,训练集和测试集的构建。因为Twitter的官方API不能直接获取到用户的HomeLine(用户关注好友的博文)。所以唯一方式是模拟用户的HomeLine,即模拟用户能看到的博文。在本专利实验的每月数据集中,收集了好友数量超过15的用户,将他们关注的好友博文作为模拟用户能浏览到的博文集。之后将模拟每个用户能浏览到的博文,按时间顺序排序,前3/4的博文放入训练集,后1/4的博文的放入测试集中。如表2和表3所示,展示了两个方法构建的训练集和测试集中的博文数和用户数。

表2:构建基于转发网络的信息推荐方法中训练集和测试集

实验将活跃用户的转推博文放入训练集中,用于构建相似度矩阵和信任度矩阵;从而基于相似度矩阵、信任度矩阵计算用户对测试集中博文的兴趣度。对于转发网络中,对于相似度和信任度的加权参数值变化结果如图6所示。

表3:构建基于内容标签的信息推荐方法中训练集和测试集

实验首先将抽取训练集中博文的兴趣类别特征标签、情感倾向特征标签和时序行为特征标签,然后统计用户的兴趣类别特征、情感倾向特征标签、时序行为特征标签,最后按方法的对用户的特征标签进行向量化表示。

对于测试集中的博文,同样抽取三类特征标签,进行向量化表示。计算测试集中标签向量化表示的用户对测试集中博文的兴趣匹配度。

最后计算推荐结果的MAP值。同时分别只利用兴趣类别标签、情感倾向标签和时序行为标签进行用户和博文向量化表示,计算推荐结果的MAP值,与多标签的结果进行对比。

第三步,评测方法的结果对比,基于转发网络的信息推荐采用的评价标准是平均准确率MAP,其对比结果如下表:

当方法参数α在0.2到0.3之间时,方法取到最优的推荐结果。说明在基于用户相似度和信任度的推荐方法(STBM)中,当相似度的权重大于信任度的权重时,方法的效果最优。于是实验将基于相似度的推荐方法(SBM)、基于信任度的推荐方法(TBM)、以及选取最优参数的基于相似度和信任度的推荐方法(STBM)三个方法的算法结果进行对比,实验结果如表4所示:

表4:三种方法的MAP值对比(%)

时间2014.032014.042014.052014.06SBM61.9148.9364.7869.87TBM57.4643.4157.4253.99STBM62.7450.1065.9370.57

基于内容标签的信息推荐采用的评价标准用户覆盖率:统计引入基于内容标签的推荐方法后,推荐用户的覆盖率变化。实验结果如表5所示:

表5:用户覆盖率表(%)

同时比较抽取不同类型内容标签,兴趣类别(ITBM)、情感倾向(STBM)和时序行为(TTBM)特征,与同时基于三种特征标签的方法(CTBM),对推荐结果的MAP值进行比较。对比结果如下表所示:

表6:不同特征标签方法的MAP值对比表(%)

时间2014.032014.042014.052014.06ITBM59.1140.0851.3363.65STBM31.1124.0335.1155.33TTBM45.3341.1241.2252.36CTBM61.7151.2266.2368.88

本实施例详细说明了针对弱关系网络Twitter的信息推荐方法的实践过程,主要是对训练集和测试集的构造,然后利用基于转发网络和内容推荐方法,分析和比较了本发明对于推荐精准度和推荐覆盖率的提高。

基于上述信息推荐的方法,并不局限于本发明所公开的Twitter平台,还可结合其余社交平台的相应特征改变具体方法的参数,实现相同的技术效果,因此不脱离本发明的发明构思与精神实质的技术方案,应当认为也属于本发明所请求保护的范围,故不重述。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号