一种基于社会网络结构的并行推荐方法

文档序号:9750919阅读:566来源:国知局
一种基于社会网络结构的并行推荐方法
【技术领域】
[0001] 本发明属于网络推荐技术领域,尤其是一种基于社会网络结构的并行推荐方法。
【背景技术】
[0002] 根据用户的信息要求、兴趣等,将用户可能感兴趣的信息、产品等推荐给用户,就 是个性化信息推荐。推荐是解决信息超载问题的一个非常有效方法。推荐系统通过探究用 户的兴趣偏好,进行个性化计算,由系统自动发掘用户的兴趣点,从而引导用户挖掘自己所 需要的信息。个性化推荐方法是研究推荐系统的关键技术。目前,推荐技术主要可以分为三 类:一是基于内容的推荐,它是根据用户的内容特征提取用户的兴趣资料对用户进行推荐; 二是协同过滤技术,它分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合相 似用户对某一信息的评价,对指定用户进行推荐。三是混合推荐,即将各种推荐技术相结合 进行最终推荐,典型的做法是把基于内容的推荐和协同过滤技术相结合。
[0003] 目前,协同过滤推荐技术是应用最为广泛,并且最为成功的推荐技术。它一般可分 为两类:基于用户的协同过滤推荐和基于项目的协同过滤推荐。前者主要计算用户之间的 相似性,它认为相似的用户具有相同的兴趣爱好。而后者主要计算项目之间的相似性,它认 为人们可能更加青睐于那些与他们喜欢的物品相似的东西。协同过滤技术可以为用户发现 新的兴趣,然而协同过滤存在数据稀疏、冷启动和可扩展性等问题。目前,业界主要研究的 是协同过滤技术,以及以协同过滤技术为主的混合推荐,主要目的在于解决协同过滤存在 的问题,并提高推荐的效率、准确性和多样性。
[0004] 社会网络是现实社会关系的真实反映,由于社会网络拥有庞大的用户群体,用户 频繁地更新自己的信息,造成社会网络每天都会产生大量的用户数据。如何从这些用户数 据中发现深层次的有用信息,来更准确地挖掘用户的兴趣爱好,实现真正意义上的个性化 推荐是随着社交网络、电子商务等网络技术的飞速发展以后个性化推荐的一个显著特征和 研究热点。此外,由于社会网络产生了超大规模的数据集,如何有效处理这种大规模的数据 集也成为目前个性化推荐的一个较为严峻的挑战。

【发明内容】

[0005] 为了克服已有协同过滤推荐技术的有效性较差、在大数据集下处理速度较慢的不 足,本发明提供一种有效性良好、在大数据集下具有较好的处理效率的基于社会网络结构 的并行推荐方法。
[0006] 本发明解决其技术问题所采用的技术方案是:
[0007] -种基于社会网络结构的并行推荐方法,所述推荐方法包括如下步骤:
[0008] 1)根据活跃节点选择策略,选取k个活跃节点作为中心节点;
[0009] 2)以k个中心节点为初始聚类中心,对剩余的所有节点进行聚类,将所有节点划分 为以k个中心节点为中心的k个社区;
[0010] 3)根据上一步得到的k个社区,使用SimRank算法分别计算每个社区内所有用户间 的相似度,过程如下:
[0011] 3.1)节点p和结点q的相似性通过所有p的入邻居节点和q的入邻居节点之间的相 似性的平均值来衡量,如果用s(P,q)表示节点P和结点q的相似性,那么SimRank的数学表达 式写成如下形式:
[0012]
[0013] 其中c是一个0-1之间的常量,当/(/?) = 0或者/⑷=:0时,s(p,q)=0 _4] 3 · 2)假设第t次迭代的SimRank值为St(p,q),SimRank值初始化为:
[0015]
[0016] 然后通过式(1)迭代更新。第t次迭代的SimRank值次迭代的SimRank值s1^ 1 通过式(1)得到,最终的迭代结果St也将收敛于(1)式中SimRank值,即:
[0017]
[0018] 3.3)使用MapReduce并行框架进行处理,过程如下:
[0019] 3.3.1)预处理阶段
[0020]图的边(p,in:a,b, · · · |out:i, j, · · · ),p表示图中的节点,in:后表示节点p的入邻 居节点,out:后表示节点p的出邻居节点;
[0021]在Map阶段,将输入的(p,q)转化为(p, out: q)和(q, in: p);在Reduce阶段,将具有 相同key值的记录进行整合,得到(p,in:a,b, . . . |out:i, j,...)。整个预处理阶段后形成的 结果文件存放在分布式文件系统中,该文件描述了图的整个拓扑结构,用于后续SimRank计 算阶段使用;
[0022] 3.3.2) SimRank 迭代计算过程
[0023]每一次迭代都通过一个MapReduce任务完成,每次迭代的输入就是上次迭代的输 出;
[0024] 4)计算与某用户最为相似的用户列表;
[0025] 5)重复4)得到任意用户的相似用户列表;
[0026] 6)对于目标用户,分析其相似用户列表中用户的兴趣喜好对目标用户进行个性化 推荐。
[0027] 进一步,所述步骤3.3.2)中,在SimRank迭代计算过程中,Map的输入是上次迭代计 算的SimRank,格式为<(p,q),s(p,q)>,由于节点与它本身的相似性为1,所以初始的记录 S<p,p, 1>,其余节点间的相似性为(KMap阶段中,寻找节点p,q各自的所有出邻居节点; Reduce阶段,对key值相同记录的相似性分数汇总求和,并且更新所有节点对的SimRank值。 [0028] 再进一步,所述步骤3)中,对SimRank算法进行改写得到Delta-SimRank算法,利用 A改写(1)式,得到:
[0029]
[0030] 其中A t(p,q)表示第t次迭代相似性分数的增量;至此,就把计算SimRank问题转 化为计算SimRank增量的Δ,根据Δ就能得到最终的SimRank值:
[0031] st+1(p,q)=st(p,q)+At+1(p,q) (5)
[0032] Delta-SimRank算法将更新后的Δ值进行累加以得到最终的SimRank值。
[0033] 本发明的技术构思为:考虑社会网络结构对推荐产生影响,将社会网络结构与相 似度计算相结合得到最终的推荐,并通过MapReduce并行计算实现算法,提高效率。
[0034] 首先计算用户在社交网络中的影响力,分析用户间的相互关系以及衡量用户影响 力的评价指标,选择部分用户作为核心用户,并根据核心用户聚类发现社区结构;采用 MapReduce并行实现基于结构的相似度计算方法,对指定的用户产生个性化推荐,并对推荐 结果进行评价。
[0035]本发明的有益效果主要表现在:
[0036] 1.该方法主要考虑社会网络结构对推荐的影响,有利于实现基于社交网络的个性 化推荐服务,对增强社交网站用户"粘度"、提高网站竞争力以及基于社交网络平台产品推 荐。
[0037] 2.本发明中社交网络中用户的影响力,分析具有重要地位的用户对网络结构的影 响,针对现有社区发现算法中存在的不足,提出了基于活跃节点的社区划分策略,并用 MapReduce并行实现,划分的社区结构比较符合实际的网络拓扑结构,可用于其他相关算 法。
[0038] 3.本发明算法中的主要三个步骤均采用MapReduce的云计算方法并行实现,使个 性化推荐算法具有较高的效率,并能处理基于大数据集的推荐。
[0039] 4.该方法的三个主要步骤都可以通过离线计算预先完成,有利于提高推荐的更新 响应速度。
【附图说明】
[0040] 图1是个性化推荐方法的流程图。
【具体实施方式】
[0041] 下面结合附图对本发明作进一步描述。
[0042] 参照图1,一种基于社会网络结构的并行推荐方法,所述推荐方法包括如下步骤:
[0043] 1)根据活跃节点选择策略,选取k个活跃节点作为中心节点,具体策略如下:输入 社会网络关系图G=<V,E>,其中节点数目为n,边数为e,过程如下:
[0044] 1.1).将节点按照度数的大小进行排序,得到排序后的队列〇={111,11 2,...,1111}, dLCb,. . .,dn分别为它们对应的度数。
[0045] 1.2).依次取出队列中的第一个元素 m,加入到中心节点集合C。
[0046] 1.3).如果1+(12+. . .+di 2 e,或者中心节点集合的大小超过了全图节点总数的 10%,终止循环。否则继续执行第1.2)步。
[0047]输出中心节点集合CX中的所有元素即根据我们策略选择的活跃节点。
[0048] 2)以k个中心节点为初始聚类中心,对剩余的所有节点进行聚类,将所有节点划分 为以k个中心节点为中心的k个社区。社区划分具体过程如下:输入社会网络关系图G=<V, E>,其中节点数目为n,边数为e,过程如下:
[0049] 2.1).根据1)的活跃节点选择策略选取k个活跃节点ni,n2, . . .,nk作为中心节点集 合,分别对应k个集合&,&,...,Ck。
[0050] 2.2).从中心节点集合中的每个节点出发,根据宽度优先算法搜索整个图,记录每 个节点到中心节点的距离。
[0051] 2.3).根据2.2)中得到的距离,计算与普通节点最近的中心节点m,将普通节点添 加到集合匕,确保所有节点都
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1