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

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

Info

Publication number
CN105512242A
CN105512242A CN201510860628.3A CN201510860628A CN105512242A CN 105512242 A CN105512242 A CN 105512242A CN 201510860628 A CN201510860628 A CN 201510860628A CN 105512242 A CN105512242 A CN 105512242A
Authority
CN
China
Prior art keywords
simrank
node
value
user
iteration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510860628.3A
Other languages
English (en)
Other versions
CN105512242B (zh
Inventor
江颉
温瑞龙
陈铁明
王小号
陈波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN201510860628.3A priority Critical patent/CN105512242B/zh
Publication of CN105512242A publication Critical patent/CN105512242A/zh
Application granted granted Critical
Publication of CN105512242B publication Critical patent/CN105512242B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于社会网络结构的并行推荐方法,包括如下步骤:1)根据活跃节点选择策略,选取k个活跃节点作为中心节点;2)以k个中心节点为初始聚类中心,对剩余的所有节点进行聚类,将所有节点划分为以k个中心节点为中心的k个社区;3)根据上一步得到的k个社区,使用SimRank算法分别计算每个社区内所有用户间的相似度;4)计算与某用户最为相似的用户列表;5)重复4)得到任意用户的相似用户列表;6)对于目标用户,分析其相似用户列表中用户的兴趣喜好对目标用户进行个性化推荐。本发明提供一种有效性良好、在大数据集下具有较好的处理效率的基于社会网络结构的并行推荐方法。

Description

一种基于社会网络结构的并行推荐方法
技术领域
本发明属于网络推荐技术领域,尤其是一种基于社会网络结构的并行推荐方法。
背景技术
根据用户的信息要求、兴趣等,将用户可能感兴趣的信息、产品等推荐给用户,就是个性化信息推荐。推荐是解决信息超载问题的一个非常有效方法。推荐系统通过探究用户的兴趣偏好,进行个性化计算,由系统自动发掘用户的兴趣点,从而引导用户挖掘自己所需要的信息。个性化推荐方法是研究推荐系统的关键技术。目前,推荐技术主要可以分为三类:一是基于内容的推荐,它是根据用户的内容特征提取用户的兴趣资料对用户进行推荐;二是协同过滤技术,它分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合相似用户对某一信息的评价,对指定用户进行推荐。三是混合推荐,即将各种推荐技术相结合进行最终推荐,典型的做法是把基于内容的推荐和协同过滤技术相结合。
目前,协同过滤推荐技术是应用最为广泛,并且最为成功的推荐技术。它一般可分为两类:基于用户的协同过滤推荐和基于项目的协同过滤推荐。前者主要计算用户之间的相似性,它认为相似的用户具有相同的兴趣爱好。而后者主要计算项目之间的相似性,它认为人们可能更加青睐于那些与他们喜欢的物品相似的东西。协同过滤技术可以为用户发现新的兴趣,然而协同过滤存在数据稀疏、冷启动和可扩展性等问题。目前,业界主要研究的是协同过滤技术,以及以协同过滤技术为主的混合推荐,主要目的在于解决协同过滤存在的问题,并提高推荐的效率、准确性和多样性。
社会网络是现实社会关系的真实反映,由于社会网络拥有庞大的用户群体,用户频繁地更新自己的信息,造成社会网络每天都会产生大量的用户数据。如何从这些用户数据中发现深层次的有用信息,来更准确地挖掘用户的兴趣爱好,实现真正意义上的个性化推荐是随着社交网络、电子商务等网络技术的飞速发展以后个性化推荐的一个显著特征和研究热点。此外,由于社会网络产生了超大规模的数据集,如何有效处理这种大规模的数据集也成为目前个性化推荐的一个较为严峻的挑战。
发明内容
为了克服已有协同过滤推荐技术的有效性较差、在大数据集下处理速度较慢的不足,本发明提供一种有效性良好、在大数据集下具有较好的处理效率的基于社会网络结构的并行推荐方法。
本发明解决其技术问题所采用的技术方案是:
一种基于社会网络结构的并行推荐方法,所述推荐方法包括如下步骤:
1)根据活跃节点选择策略,选取k个活跃节点作为中心节点;
2)以k个中心节点为初始聚类中心,对剩余的所有节点进行聚类,将所有节点划分为以k个中心节点为中心的k个社区;
3)根据上一步得到的k个社区,使用SimRank算法分别计算每个社区内所有用户间的相似度,过程如下:
3.1)节点p和结点q的相似性通过所有p的入邻居节点和q的入邻居节点之间的相似性的平均值来衡量,如果用s(p,q)表示节点p和结点q的相似性,那么SimRank的数学表达式写成如下形式:
s ( p , q ) = 1 p = q c | I ( p ) | | I ( q ) Σ i = 1 | I ( p ) | Σ j = 1 | I ( q ) | s ( I i ( p ) , I j ( q ) ) p ≠ q - - - ( 1 )
其中c是一个0-1之间的常量,当或者时,s(p,q)=0
3.2)假设第t次迭代的SimRank值为st(p,q),SimRank值初始化为:
s 0 ( p , q ) = 1 p = q 0 p ≠ q - - - ( 2 )
然后通过式(1)迭代更新。第t次迭代的SimRank值st由t-1次迭代的SimRank值st-1通过式(1)得到,最终的迭代结果st也将收敛于(1)式中SimRank值,即:
s t ( p , q ) = c | I ( p ) | | I ( q ) | Σ i = 1 | I ( p ) | Σ j = 1 | I ( q ) | s t - 1 ( I i ( p ) , I j ( q ) ) - - - ( 3 )
3.3)使用MapReduce并行框架进行处理,过程如下:
3.3.1)预处理阶段
图的边(p,in:a,b,...|out:i,j,...),p表示图中的节点,in:后表示节点p的入邻居节点,out:后表示节点p的出邻居节点;
在Map阶段,将输入的(p,q)转化为(p,out:q)和(q,in:p);在Reduce阶段,将具有相同key值的记录进行整合,得到(p,in:a,b,...|out:i,j,...)。整个预处理阶段后形成的结果文件存放在分布式文件系统中,该文件描述了图的整个拓扑结构,用于后续SimRank计算阶段使用;
3.3.2)SimRank迭代计算过程
每一次迭代都通过一个MapReduce任务完成,每次迭代的输入就是上次迭代的输出;
4)计算与某用户最为相似的用户列表;
5)重复4)得到任意用户的相似用户列表;
6)对于目标用户,分析其相似用户列表中用户的兴趣喜好对目标用户进行个性化推荐。
进一步,所述步骤3.3.2)中,在SimRank迭代计算过程中,Map的输入是上次迭代计算的SimRank,格式为<(p,q),s(p,q)>,由于节点与它本身的相似性为1,所以初始的记录为<p,p,1>,其余节点间的相似性为0。Map阶段中,寻找节点p,q各自的所有出邻居节点;Reduce阶段,对key值相同记录的相似性分数汇总求和,并且更新所有节点对的SimRank值。
再进一步,所述步骤3)中,对SimRank算法进行改写得到Delta-SimRank算法,利用Δ改写(1)式,得到:
Δ t + 1 ( p , q ) = 0 p = q c | I ( p ) | | I ( q ) | Σ i ∈ I ( p ) Σ j ∈ I ( q ) Δ t ( i , j ) p ≠ q - - - ( 4 )
其中Δt(p,q)表示第t次迭代相似性分数的增量;至此,就把计算SimRank问题转化为计算SimRank增量的Δ,根据Δ就能得到最终的SimRank值:
st+1(p,q)=st(p,q)+Δt+1(p,q)(5)
Delta-SimRank算法将更新后的Δ值进行累加以得到最终的SimRank值。
本发明的技术构思为:考虑社会网络结构对推荐产生影响,将社会网络结构与相似度计算相结合得到最终的推荐,并通过MapReduce并行计算实现算法,提高效率。
首先计算用户在社交网络中的影响力,分析用户间的相互关系以及衡量用户影响力的评价指标,选择部分用户作为核心用户,并根据核心用户聚类发现社区结构;采用MapReduce并行实现基于结构的相似度计算方法,对指定的用户产生个性化推荐,并对推荐结果进行评价。
本发明的有益效果主要表现在:
1.该方法主要考虑社会网络结构对推荐的影响,有利于实现基于社交网络的个性化推荐服务,对增强社交网站用户“粘度”、提高网站竞争力以及基于社交网络平台产品推荐。
2.本发明中社交网络中用户的影响力,分析具有重要地位的用户对网络结构的影响,针对现有社区发现算法中存在的不足,提出了基于活跃节点的社区划分策略,并用MapReduce并行实现,划分的社区结构比较符合实际的网络拓扑结构,可用于其他相关算法。
3.本发明算法中的主要三个步骤均采用MapReduce的云计算方法并行实现,使个性化推荐算法具有较高的效率,并能处理基于大数据集的推荐。
4.该方法的三个主要步骤都可以通过离线计算预先完成,有利于提高推荐的更新响应速度。
附图说明
图1是个性化推荐方法的流程图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1,一种基于社会网络结构的并行推荐方法,所述推荐方法包括如下步骤:
1)根据活跃节点选择策略,选取k个活跃节点作为中心节点,具体策略如下:输入社会网络关系图G=<V,E>,其中节点数目为n,边数为e,过程如下:
1.1).将节点按照度数的大小进行排序,得到排序后的队列Q={n1,n2,...,nn},d1,d2,...,dn分别为它们对应的度数。
1.2).依次取出队列中的第一个元素ni,加入到中心节点集合C。
1.3).如果d1+d2+...+di≥e,或者中心节点集合的大小超过了全图节点总数的10%,终止循环。否则继续执行第1.2)步。
输出中心节点集合C。C中的所有元素即根据我们策略选择的活跃节点。
2)以k个中心节点为初始聚类中心,对剩余的所有节点进行聚类,将所有节点划分为以k个中心节点为中心的k个社区。社区划分具体过程如下:输入社会网络关系图G=<V,E>,其中节点数目为n,边数为e,过程如下:
2.1).根据1)的活跃节点选择策略选取k个活跃节点n1,n2,...,nk作为中心节点集合,分别对应k个集合C1,C2,...,Ck
2.2).从中心节点集合中的每个节点出发,根据宽度优先算法搜索整个图,记录每个节点到中心节点的距离。
2.3).根据2.2)中得到的距离,计算与普通节点最近的中心节点ni,将普通节点添加到集合Ci,确保所有节点都已经添加到k个集合的一个中。
输出的集合C1,C2,...,Ck即是根据我们的策略得到的k个社区。
3)根据上一步得到的k个社区,使用SimRank算法分别计算每个社区内所有用户间的相似度,过程如下:
3.1)节点p和结点q的相似性通过所有p的入邻居节点和q的入邻居节点之间的相似性的平均值来衡量,如果用s(p,q)表示节点p和结点q的相似性,那么SimRank的数学表达式写成如下形式:
s ( p , q ) = 1 p = q c | I ( p ) | | I ( q ) Σ i = 1 | I ( p ) | Σ j = 1 | I ( q ) | s ( I i ( p ) , I j ( q ) ) p ≠ q - - - ( 1 )
其中c是一个0-1之间的常量,当或者时,s(p,q)=0
3.2)假设第t次迭代的SimRank值为st(p,q),SimRank值初始化为:
s 0 ( p , q ) = 1 p = q 0 p ≠ q - - - ( 2 )
然后通过式(1)迭代更新。第t次迭代的SimRank值st由t-1次迭代的SimRank值st-1通过式(1)得到,最终的迭代结果st也将收敛于(1)式中SimRank值,即:
s t ( p , q ) = c | I ( p ) | | I ( q ) | Σ i = 1 | I ( p ) | Σ j = 1 | I ( q ) | s t - 1 ( I i ( p ) , I j ( q ) ) - - - ( 3 )
3.3)使用MapReduce并行框架进行处理,过程如下:
3.3.1)预处理阶段
图的边(p,in:a,b,...|out:i,j,...),p表示图中的节点,in:后表示节点p的入邻居节点,out:后表示节点p的出邻居节点;
在Map阶段,将输入的(p,q)转化为(p,out:q)和(q,in:p);在Reduce阶段,将具有相同key值的记录进行整合,得到(p,in:a,b,...|out:i,j,...)。整个预处理阶段后形成的结果文件存放在分布式文件系统中,该文件描述了图的整个拓扑结构,用于后续SimRank计算阶段使用;
3.3.2)SimRank迭代计算过程
每一次迭代都通过一个MapReduce任务完成,每次迭代的输入就是上次迭代的输出。
4)计算与某用户最为相似的用户列表:根据上一步可以得到任意两个用户间的相似度,对于某一用户,选取topn个用户作为该用户的最相似用户列表。
5)重复4)得到任意用户的相似用户列表;
6)对于目标用户,分析其相似用户列表中用户的兴趣喜好对目标用户进行个性化推荐。
进一步,所述步骤3.3.2)中,在SimRank迭代计算过程中,Map的输入是上次迭代计算的SimRank,格式为<(p,q),s(p,q)>,由于节点与它本身的相似性为1,所以初始的记录为<p,p,1>,其余节点间的相似性为0。Map阶段中,寻找节点p,q各自的所有出邻居节点;Reduce阶段,对key值相同记录的相似性分数汇总求和,并且更新所有节点对的SimRank值。
再进一步,所述步骤3)中,对SimRank算法进行改写得到Delta-SimRank算法,利用Δ改写(1)式,得到:
Δ t + 1 ( p , q ) = 0 p = q c | I ( p ) | | I ( q ) | Σ i ∈ I ( p ) Σ j ∈ I ( q ) Δ t ( i , j ) p ≠ q - - - ( 4 )
其中Δt(p,q)表示第t次迭代相似性分数的增量;至此,就把计算SimRank问题转化为计算SimRank增量的Δ,根据Δ就能得到最终的SimRank值:
st+1(p,q)=st(p,q)+Δt+1(p,q)(5)
Delta-SimRank算法将更新后的Δ值进行累加以得到最终的SimRank值。
基于社会网络结构的社区划分:一般来说,社会网络具有无标度特征,也就是说复杂网络的节点较为复合幂律分布,这说明网络中的少量活跃节点占据着支配性的地位,剩余的大量普通并不够活跃。因此,选择局部中心性最高的部分节点形成活跃节点集作为社区划分的初始聚类中心。选取的活跃节点满足如下条件:活跃节点集度数之和大于总度数的50%,而节点的数量一般不超过总节点数的10%。
根据活跃节点选择策略选取k个活跃节点作为中心节点,然后以k中心节点为初始聚类中心对剩下的所有节点进行聚类。通过计算剩余节点与中心节点的距离,将节点与它最近的中心节点划分到一个社区中。当所有节点都聚类完毕,最终就可以得到以这k个中心节点为中心的k个社区。
本实例中,使用SimRank算法计算社会网络中用户间的相似度。SimRank算法是一种典型的基于链接关系的相似度计算方法,该方法利用网络的拓扑结构信息来衡量任意两个对象间的相似程度,它的核心思想是:如果两个对象被其相似的对象所引用(即若两个对象有相似的入邻边结构),那么这两个对象也相似。
考虑图G=<V,E>,其中V表示图中的节点集合,E表示图中的边的集合,如果节点p1到节点p2之间存在一条链接关系,那么(p1,p2)∈E。对于任意一个节点p,I(p)={q∈V|(q,p)∈E}表示所有指向p的节点,或者称作节点p的入邻居节点。
SimRank算法中,节点p和结点q的相似性通过所有p的入邻居节点和q的入邻居节点之间的相似性的平均值来衡量。如果用s(p,q)表示节点p和结点q的相似性,那么SimRank的数学表达式可以写成如下形式:
s ( p , q ) = 1 p = q c | I ( p ) | | I ( q ) Σ i = 1 | I ( p ) | Σ j = 1 | I ( q ) | s ( I i ( p ) , I j ( q ) ) p ≠ q - - - ( 1 )
其中c是一个0-1之间的常量,当或者时,s(p,q)=0。
在SimRank的实际计算过程中,它是一个迭代的过程,假设第t次迭代的SimRank值为st(p,q),SimRank值初始化为:
s 0 ( p , q ) = 1 p = q 0 p ≠ q - - - ( 2 )
然后通过式(1)迭代更新。第t次迭代的SimRank值st由t-1次迭代的SimRank值st-1通过式(1)得到,最终的迭代结果st也将收敛于(1)式中SimRank值,即:
s t ( p , q ) = c | I ( p ) | | I ( q ) | Σ i = 1 | I ( p ) | Σ j = 1 | I ( q ) | s t - 1 ( I i ( p ) , I j ( q ) ) - - - ( 3 )
直接使用式(3)来计算SimRank值的代价是巨大的。考虑使用到Hadoop云计算平台对大规模数据的强大处理能力,使用MapReduce并行框架来提高SimRank算法的效率。
SimRank并行实现分为两个阶段:预处理阶段和SimRank计算阶段。
预处理阶段主要是为了得到整个网络的拓扑结构。使用如下方法表示图的边(p,in:a,b,...|out:i,j,...),p表示图中的节点,in:后表示节点p的入邻居节点,out:后表示节点p的出邻居节点。预处理阶段是通过一个MapReduce来实现的,在Map阶段,将输入的(p,q)转化为(p,out:q)和(q,in:p)。在Reduce阶段,将具有相同key值的记录进行整合,得到(p,in:a,b,...|out:i,j,...)。整个预处理阶段后形成的结果文件存放在分布式文件系统中,该文件描述了图的整个拓扑结构,用于后续SimRank计算阶段使用。
预处理阶段之后,进行SimRank迭代计算过程,每一次迭代都通过一个MapReduce任务完成,每次迭代的输入就是上次迭代的输出。在SimRank迭代计算过程中,Map的输入是上次迭代计算的SimRank,格式为<(p,q),s(p,q)>,由于节点与它本身的相似性为1,所以初始的记录为<p,p,1>,其余节点间的相似性为0。Map阶段中,寻找节点p,q各自的所有出邻居节点(需要使用预处理阶段形成的图拓扑结构文件)。Reduce阶段,对key值相同记录的相似性分数汇总求和,并且更新所有节点对的SimRank值。算法实际执行过程如下:
输入:有向图G=<V,E>,初始化SimRank值s0
1:fort=0:T-1//T迭代次数
2:MapFunction((p,q),st(p,q))
3:findpandq’soutneighborsO(p),O(q)respectively
4:foreachu∈O(p),v∈O(q)
5:output(u,v),st(p,q)
6:ReduceFunction(key=(u,v),value=vs[])
7:if(u==v)
8:st+1(u,v)=1
9:else
10: s t + 1 ( u , v ) = c l e n ( v s ) s u m ( v s )
11:output(u,v),st+1(u,v)
输出:更新后的SimRank值sT
为了进一步提高SimRank的计算效率,对SimRank算法进行改写得到Delta-SimRank算法。利用Δ改写(1)式,可以得到:
Δ t + 1 ( p , q ) = 0 p = q c | I ( p ) | | I ( q ) | Σ i ∈ I ( p ) Σ j ∈ I ( q ) Δ t ( i , j ) p ≠ q - - - ( 4 )
其中Δt(p,q)表示第t次迭代相似性分数的增量。至此,就把计算SimRank问题转化为计算SimRank增量的Δ,根据Δ就能得到最终的SimRank值:
st+1(p,q)=st(p,q)+Δt+1(p,q)(5)
相比较而言,Delta-SimRank算法多了一个回加步骤,需要将更新后的Δ值进行累加以得到最终的SimRank值。
Delta-SimRank算法减少了MapReduce过程中数据传输的数量,从而提高了并行计算的效率。改进的Delta-SimRank算法的具体迭代过程如下:
输入:有向图G=<V,E>,初始化Δt
1:MapFunction((p,q),Δt(p,q))
2:ifp=qorΔt(p,q)≤ε
3:return
4:findpandq’soutneighborsO(p),O(q)respectively
5:foreachi∈O(p),i∈O(q)
6:output(i,j), c | I ( i ) | | I ( j ) | Δ t ( p , q )
7:ReduceFunction(key=(i,j),value=vs[])
8:if(i=j)
9:outputΔt+1(i,j)=0
10:else
11:outputΔt+1=sum(vs)
输出:更新后的Δt+1
本实例中,基于社会网络结构的并行推荐方法包括以下步骤:
1)根据活跃节点选择策略,选取k个活跃节点作为中心节点;
2)根据社区划分策略,以k个中心节点为初始聚类中心,对剩余的所有节点进行聚类,将所有节点划分为以k个中心节点为中心的k个社区;
3)根据上一步得到的k个社区,使用改进的Delta-SimRank并行算法分别计算每个社区内所有用户间的相似度;
4)计算与某用户最为相似的用户列表;
5)重复(4)可以得到任意用户的相似用户列表;
6)对于目标用户,分析其相似用户列表中用户的兴趣喜好对目标用户进行个性化推荐。
个性化推荐流程如图1所示。整个方法执行过程如下:
输入:待研究的数据集
1:数据集预处理,将数据集表示成图G=<V,E>,节点数n,边数e;
2:将节点按度大到小排序得到队列Q={n1,n2,...,nn},d1,d2,...,dn为应的度;
3:for(ni:Q){
4:ni→C;
5:if(d1,d2,...,dn>=eori>=n/10)break;}//得到中心节点集合C,k个中节点}
6:for(ni:C){
7:BFSMapReduce(G,nk);}
8:for(nj:V){//每个节点添加到最近的中心节点集合
9:nj→Ci;}//得到k个社区C1,C2,...,Ck
10:for(Ci:Ck){
11:Ci转化为Gi=<Vi,Ei>,初始化SimRank值s0
12:Delta-SimRankMapReduce(Gi,s0);
13:updatest;}//社区内部用户间的相似度
14:for(ni∈V){
15:getSimilarityList(ni);//得到任意节点的相似节点列表}
输出:任意用户的相似用户列表。
本发明以对新浪微博数据为例分析,通过用户的主题推荐对本发明方法进行进一步说明。
考虑到相似用户列表中每个用户关注的主题是不一样的,本方法分析每个主题在所有相似用户间出现的次数与所有主题出现总次数的比率。
如果用U表示相似用户集合,S表示相似用户集合关注的主题集合,sij表示用户ui关注主题sj,那么主题j出现的次数百分比可以表示为
p j = Σ i ∈ U s i j Σ i ∈ U Σ j ∈ S s i j - - - ( 6 )
例如用户列表中有两个用户u1(s1,s2,s3),u2(s1,s3,s4),其中si表示用户关注的主题,主题s1和s3分别出现两次,s2和s4分别出现一次,而所有主题总共出现了6次,那么主题s1和s3的出现次数百分比相等为 p 1 = p 3 = 2 6 = 33.3 % , p 2 = p 4 = 1 6 = 16.7 % . 然后通过计算每个主题出现次数与总次数的百分比来衡量该主题是否应该推荐给目标用户。
设定主题阈值ε,本发明将pj>=ε的主题推荐给目标用户,通过尝试不同的阈值ε来达到最优的推荐效果。阈值的显式含义就是反映了推荐主题的数目。

Claims (3)

1.一种基于社会网络结构的并行推荐方法,其特征在于:所述推荐方法包括如下步骤:
1)根据活跃节点选择策略,选取k个活跃节点作为中心节点;
2)以k个中心节点为初始聚类中心,对剩余的所有节点进行聚类,将所有节点划分为以k个中心节点为中心的k个社区;
3)根据上一步得到的k个社区,使用SimRank算法分别计算每个社区内所有用户间的相似度,过程如下:
3.1)节点p和结点q的相似性通过所有p的入邻居节点和q的入邻居节点之间的相似性的平均值来衡量,如果用s(p,q)表示节点p和结点q的相似性,那么SimRank的数学表达式写成如下形式:
s ( p , q ) = 1 p = q c | I ( p ) | | I ( q ) | Σ i = 1 | I ( p ) | Σ j = 1 | I ( q ) | s ( I i ( p ) , I j ( q ) ) p ≠ q - - - ( 1 )
其中c是一个0-1之间的常量,当或者时,s(p,q)=0
3.2)假设第t次迭代的SimRank值为st(p,q),SimRank值初始化为:
s 0 ( p , q ) = 1 p = q 0 p ≠ q - - - ( 2 )
然后通过式(1)迭代更新,第t次迭代的SimRank值st由t-1次迭代的SimRank值st-1通过式(1)得到,最终的迭代结果st也将收敛于(1)式中SimRank值,即:
s t ( p , q ) = c | I ( p ) | | I ( q ) | Σ i = 1 | I ( p ) | Σ j = 1 | I ( q ) | s t - 1 ( I i ( p ) , I j ( q ) ) - - - ( 3 )
3.3)使用MapReduce并行框架进行处理,过程如下:
3.3.1)预处理阶段
图的边(p,in:a,b,...|out:i,j,...),p表示图中的节点,in:后表示节点p的入邻居节点,out:后表示节点p的出邻居节点;
在Map阶段,将输入的(p,q)转化为(p,out:q)和(q,in:p);在Reduce阶段,将具有相同key值的记录进行整合,得到(p,in:a,b,...|out:i,j,...),整个预处理阶段后形成的结果文件存放在分布式文件系统中,该文件描述了图的整个拓扑结构,用于后续SimRank计算阶段使用;
3.3.2)SimRank迭代计算过程
每一次迭代都通过一个MapReduce任务完成,每次迭代的输入就是上次迭代的输出;
4)计算与某用户最为相似的用户列表;
5)重复4)得到任意用户的相似用户列表;
6)对于目标用户,分析其相似用户列表中用户的兴趣喜好对目标用户进行个性化推荐。
2.如权利要求1所述的一种基于社会网络结构的并行推荐方法,其特征在于:所述步骤3.3.2)中,在SimRank迭代计算过程中,Map的输入是上次迭代计算的SimRank,格式为<(p,q),s(p,q)>,由于节点与它本身的相似性为1,所以初始的记录为<p,p,1>,其余节点间的相似性为0;Map阶段中,寻找节点p,q各自的所有出邻居节点;Reduce阶段,对key值相同记录的相似性分数汇总求和,并且更新所有节点对的SimRank值。
3.如权利要求1或2所述的一种基于社会网络结构的并行推荐方法,其特征在于:所述步骤3)中,对SimRank算法进行改写得到Delta-SimRank算法,利用Δ改写(1)式,得到:
Δ t + 1 ( p , q ) = 0 p = q c | I ( p ) | | I ( q ) | Σ i ∈ I ( p ) Σ j ∈ I ( q ) Δ t ( i , j ) p ≠ q - - - ( 4 )
其中Δt(p,q)表示第t次迭代相似性分数的增量;至此,就把计算SimRank问题转化为计算SimRank增量的Δ,根据Δ就能得到最终的SimRank值:
st+1(p,q)=st(p,q)+Δt+1(p,q)(5)
Delta-SimRank算法将更新后的Δ值进行累加以得到最终的SimRank值。
CN201510860628.3A 2015-11-30 2015-11-30 一种基于社会网络结构的并行推荐方法 Active CN105512242B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510860628.3A CN105512242B (zh) 2015-11-30 2015-11-30 一种基于社会网络结构的并行推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510860628.3A CN105512242B (zh) 2015-11-30 2015-11-30 一种基于社会网络结构的并行推荐方法

Publications (2)

Publication Number Publication Date
CN105512242A true CN105512242A (zh) 2016-04-20
CN105512242B CN105512242B (zh) 2018-09-21

Family

ID=55720224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510860628.3A Active CN105512242B (zh) 2015-11-30 2015-11-30 一种基于社会网络结构的并行推荐方法

Country Status (1)

Country Link
CN (1) CN105512242B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106127591A (zh) * 2016-06-22 2016-11-16 南京邮电大学 基于效用的在线社交网络链接推荐方法
CN106789226A (zh) * 2016-12-14 2017-05-31 河南理工大学 一种网络节点的相似度计算方法
CN107862553A (zh) * 2017-11-15 2018-03-30 平安科技(深圳)有限公司 广告实时推荐方法、装置、终端设备及存储介质
CN108377423A (zh) * 2018-02-09 2018-08-07 武汉斗鱼网络科技有限公司 直播间推荐方法及相关计算机可读存储介质和电子设备
CN109428928A (zh) * 2017-08-31 2019-03-05 腾讯科技(深圳)有限公司 信息推送对象的选择方法、装置及设备
CN109711482A (zh) * 2019-01-07 2019-05-03 东华大学 一种毕业生去向信息管理及推荐系统
WO2019144847A1 (zh) * 2018-01-26 2019-08-01 北京一览科技有限公司 提供视频流的方法和装置
CN110224847A (zh) * 2018-05-02 2019-09-10 腾讯科技(深圳)有限公司 基于社交网络的社团划分方法、装置、存储介质及设备
CN110287424A (zh) * 2019-06-28 2019-09-27 中国人民大学 基于单源SimRank的协同过滤推荐方法
CN111159576A (zh) * 2019-12-31 2020-05-15 亚信科技(中国)有限公司 一种用户分类方法、装置及系统
CN111506833A (zh) * 2020-06-12 2020-08-07 中国人民大学 基于单源SimRank精确解的好友推荐方法
CN112579831A (zh) * 2020-11-18 2021-03-30 南京信息职业技术学院 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质
CN112929445A (zh) * 2021-02-20 2021-06-08 山东英信计算机技术有限公司 一种面向推荐系统的链路预测方法、系统及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186595A (zh) * 2011-12-29 2013-07-03 盛乐信息技术(上海)有限公司 音视频推荐方法及系统
CN103793476A (zh) * 2014-01-08 2014-05-14 西安电子科技大学 基于网络社区的协同过滤推荐方法
CN104077279A (zh) * 2013-03-25 2014-10-01 中兴通讯股份有限公司 一种并行社区发现方法和装置
US20140344230A1 (en) * 2013-03-20 2014-11-20 Securboration Inc Methods and systems for node and link identification
CN104361235A (zh) * 2014-11-15 2015-02-18 北京航空航天大学 一种基于层次聚类的复杂网络社区划分方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186595A (zh) * 2011-12-29 2013-07-03 盛乐信息技术(上海)有限公司 音视频推荐方法及系统
US20140344230A1 (en) * 2013-03-20 2014-11-20 Securboration Inc Methods and systems for node and link identification
CN104077279A (zh) * 2013-03-25 2014-10-01 中兴通讯股份有限公司 一种并行社区发现方法和装置
CN103793476A (zh) * 2014-01-08 2014-05-14 西安电子科技大学 基于网络社区的协同过滤推荐方法
CN104361235A (zh) * 2014-11-15 2015-02-18 北京航空航天大学 一种基于层次聚类的复杂网络社区划分方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LINA LI等: "MapReduce-Based SimRank Computation and Its Application", 《2013 IEEE INTERNATIONAL CONGRESS ON BIG DATA》 *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106127591A (zh) * 2016-06-22 2016-11-16 南京邮电大学 基于效用的在线社交网络链接推荐方法
CN106789226A (zh) * 2016-12-14 2017-05-31 河南理工大学 一种网络节点的相似度计算方法
CN106789226B (zh) * 2016-12-14 2020-02-21 河南理工大学 一种网络节点的相似度计算方法
CN109428928B (zh) * 2017-08-31 2021-01-05 腾讯科技(深圳)有限公司 信息推送对象的选择方法、装置及设备
CN109428928A (zh) * 2017-08-31 2019-03-05 腾讯科技(深圳)有限公司 信息推送对象的选择方法、装置及设备
CN107862553A (zh) * 2017-11-15 2018-03-30 平安科技(深圳)有限公司 广告实时推荐方法、装置、终端设备及存储介质
CN107862553B (zh) * 2017-11-15 2020-03-17 平安科技(深圳)有限公司 广告实时推荐方法、装置、终端设备及存储介质
WO2019095417A1 (zh) * 2017-11-15 2019-05-23 平安科技(深圳)有限公司 广告实时推荐方法、装置、终端设备及存储介质
US11689757B2 (en) 2018-01-26 2023-06-27 Beijing Allook Technologies Co., Ltd. Method and apparatus for providing video streams
WO2019144847A1 (zh) * 2018-01-26 2019-08-01 北京一览科技有限公司 提供视频流的方法和装置
CN108377423A (zh) * 2018-02-09 2018-08-07 武汉斗鱼网络科技有限公司 直播间推荐方法及相关计算机可读存储介质和电子设备
CN108377423B (zh) * 2018-02-09 2020-10-16 武汉斗鱼网络科技有限公司 直播间推荐方法及相关计算机可读存储介质和电子设备
CN110224847A (zh) * 2018-05-02 2019-09-10 腾讯科技(深圳)有限公司 基于社交网络的社团划分方法、装置、存储介质及设备
CN110224847B (zh) * 2018-05-02 2021-12-14 腾讯科技(深圳)有限公司 基于社交网络的社团划分方法、装置、存储介质及设备
CN109711482A (zh) * 2019-01-07 2019-05-03 东华大学 一种毕业生去向信息管理及推荐系统
CN110287424B (zh) * 2019-06-28 2021-07-20 中国人民大学 基于单源SimRank的协同过滤推荐方法
CN110287424A (zh) * 2019-06-28 2019-09-27 中国人民大学 基于单源SimRank的协同过滤推荐方法
CN111159576A (zh) * 2019-12-31 2020-05-15 亚信科技(中国)有限公司 一种用户分类方法、装置及系统
CN111159576B (zh) * 2019-12-31 2023-08-11 亚信科技(中国)有限公司 一种用户分类方法、装置及系统
CN111506833A (zh) * 2020-06-12 2020-08-07 中国人民大学 基于单源SimRank精确解的好友推荐方法
CN112579831A (zh) * 2020-11-18 2021-03-30 南京信息职业技术学院 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质
CN112579831B (zh) * 2020-11-18 2024-04-12 南京信息职业技术学院 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质
CN112929445A (zh) * 2021-02-20 2021-06-08 山东英信计算机技术有限公司 一种面向推荐系统的链路预测方法、系统及介质
CN112929445B (zh) * 2021-02-20 2022-06-07 山东英信计算机技术有限公司 一种面向推荐系统的链路预测方法、系统及介质

Also Published As

Publication number Publication date
CN105512242B (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
CN105512242A (zh) 一种基于社会网络结构的并行推荐方法
Yu et al. PAVE: Personalized Academic Venue recommendation Exploiting co-publication networks
CN104966125B (zh) 一种社交网络的物品评分及推荐方法
Li et al. A dynamic algorithm based on cohesive entropy for influence maximization in social networks
CN107833117B (zh) 一种考虑标签信息的贝叶斯个性化排序推荐方法
Bin et al. Collaborative filtering recommendation algorithm based on multi-relationship social network
CN106326367A (zh) 基于wnbi和rsvd混合协同推荐算法
CN103064917A (zh) 一种面向微博的特定倾向的高影响力用户群发现方法
CN104166702A (zh) 一种面向服务供应链网络的服务推荐方法
CN107545471B (zh) 一种基于高斯混合的大数据智能推荐方法
CN102262681A (zh) 一种博客信息传播中识别关键博客集的方法
CN105976207A (zh) 一种基于多属性动态权重分配的信息搜索结果生成方法及系统
CN113918832B (zh) 基于社交关系的图卷积协同过滤推荐系统
CN104077723A (zh) 一种社交网络推荐系统及方法
Komkhao et al. Incremental collaborative filtering based on Mahalanobis distance and fuzzy membership for recommender systems
Dev et al. Recommendation system for big data applications based on set similarity of user preferences
CN102571431A (zh) 针对复杂网络的基于群思想改进的Fast-Newman聚类方法
Li et al. Local community detection for multi-layer mobile network based on the trust relation
Liu et al. An algorithm for influence maximization in competitive social networks with unwanted users
Zhang et al. Learning coefficient heterogeneity over networks: A distributed spanning-tree-based fused-lasso regression
Hassan et al. Performance analysis of neural networks-based multi-criteria recommender systems
CN110457592A (zh) 一种基于图熵的社交网络推荐方法
CN108537569B (zh) 在线社交网络中人际关系感知的广告推送方法
Hafidi et al. Graph-Assisted Bayesian Node Classifiers
Felfli et al. Community detection and unveiling of hierarchy in networks: a density-based clustering approach

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant