1.一种基于社会网络结构的并行推荐方法,其特征在于:所述推荐方法包括如下步骤:
1)根据活跃节点选择策略,选取k个活跃节点作为中心节点;
2)以k个中心节点为初始聚类中心,对剩余的所有节点进行聚类,将所有节点划分为以k个中心节点为中心的k个社区;
3)根据上一步得到的k个社区,使用SimRank算法分别计算每个社区内所有用户间的相似度,过程如下:
3.1)节点p和节点q的相似性通过所有p的入邻居节点和q的入邻居节点之间的相似性的平均值来衡量,如果用s(p,q)表示节点p和节点q的相似性,那么SimRank的数学表达式写成如下形式:其中c是一个0-1之间的常量,I(p)表示所有指向p的节点,或者称作节点p的入邻居节点;I(q)表示所有指向q的节点,或者称作节点q的入邻居节点,当 或者 时,s(p,q)=0
3.2)假设第t次迭代的SimRank值为st(p,q),SimRank值初始化为:然后通过式(1)迭代更新,第t次迭代的SimRank值st由t-1次迭代的SimRank值st-1通过式(1)得到,最终的迭代结果st也将收敛于(1)式中SimRank值,即:
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(p,q)表示第t次迭代相似性分数的增量;至此,就把计算SimRank问题转化为计算SimRank增量的Δ,根据Δ就能得到最终的SimRank值:st+1(p,q)=st(p,q)+Δt+1(p,q) (5)Delta-SimRank算法将更新后的Δ值进行累加以得到最终的SimRank值。