一种社交网络用户关系搜索方法

文档序号:10594125阅读:285来源:国知局
一种社交网络用户关系搜索方法
【专利摘要】本发明公开了一种社交网络用户关系搜索方法,包括以下步骤:(1)对于社交网络建立两跳关系集合,按照用户热度降序排列形成两跳关系列表;(2)分别搜索其关于第一用户及第二用户的两跳关系,形成第一用户两跳关系集合及第二用户两跳关系集合;(3)如存在相同用户则进入步骤(4),否则进入步骤(5);(4)得出社交网络用户关系搜索结果;(5)搜索出现待关联用户集合中两个或两个以上用户的两跳关系,如果存在则进入步骤(6),否则进入步骤(7);(6)得出社交网络用户关系搜索结果;(7)搜索结果为空,结束。本方法大幅缩短了查询时间。
【专利说明】
一种社交网络用户关系搜索方法
技术领域
[0001]本发明属于计算机领域,更具体地,涉及一种社交网络用户关系搜索方法。
【背景技术】
[0002]在线社交网络是一种在信息网络上由社会个体集合及个体之间的连接关系构成的社会性结构。随着众多社交应用的普及,社交网络的规模经历了一段爆发式的增长期,2012年三月,微信的注册用户量突破I亿,2013年微信月活跃用户数的增长率为42.5%,月活跃账户数达到3.55亿。2014年,Facebook月活跃用户数突破13.5亿,2015年,微信和WeChat的合并月活跃账户数达到6.50亿。可以看出,社交网络规模的增长势头非常明显。
[0003]在社交网络中,人与人之间都是相互联系的。根据著名的六度人脉理论,地球上所有的人都可以通过六层以内的熟人链和任何其他人联系起来。在社交网络中,如果能够得到两个陌生用户之间的熟人链,就可以对用户的人脉扩展提供极有价值的参考。
[0004]当前社交网络的关系搜索方法还比较少见,微博上有一个类似的人脉分析方法,采用的是在线计算的方式,在线计算是通过双向的BFS的算法,通过穷举搜索的方法来计算两个用户的之间的关系路径。在线计算存在的主要问题是当用户的热度很高的时候,不能很快的得出结果,最坏情况需要穷举两个用户的所有三跳关系,如果某一个用户的三跳关系很多,由于需要一个个穷举,将会产生很长的查询时间。
[0005]当前的人脉分析算法还比较少见,微博上有一个类似的人脉分析方法,采用的是在线计算的方式,在线计算是通过双向的BFS的算法,通过穷举搜索的方法来计算两个用户的之间的关系路径,在线计算存在的主要问题是当用户的热度很高的时候,不能很快的得出结果,最坏情况需要穷举两个用户的所有三跳关系,如果某一个用户的三跳关系很多,由于需要一个个穷举,将会产生很长的查询时间。

【发明内容】

[0006]针对现有技术的以上缺陷或改进需求,本发明提供了一种基于索引的社交网络用户关系搜索方法,其目的在于通过两跳关系拼接,实现用户关系搜索,由此解决现有的用户关系搜索方法查询时间过长的技术问题。
[0007]为实现上述目的,按照本发明的一个方面,提供了一种社交网络用户关系搜索方法,包括以下步骤:
[0008](I)对于社交网络建立两跳关系集合,按照用户热度降序排列形成两跳关系列表;
[0009](2)对于其关系待搜索的第一用户及第二用户,在步骤(I)中获取的两跳关系列表中,分别搜索其关于第一用户及第二用户的两跳关系,形成第一用户两跳关系集合及第二用户两跳关系集合;
[0010](3)搜索第一用户两跳关系集合和第二用户两跳关系集合中是否存在相同用户,如存在则进入步骤(4),否则进入步骤(5);
[0011](4)根据步骤(3)搜索出的相同用户还原第一用户及第二用户的关系路径,得出社交网络用户关系搜索结果;
[0012](5)将第一用户两跳关系集合和第二用户两跳关系集合中出现的所用用户作为待关联用户集合,在步骤(I)获得的两跳关系列表中,搜索出现待关联用户集合中两个或两个以上用户的两跳关系,如果存在则进入步骤(6),否则进入步骤(7);
[0013](6)根据步骤(5)中得到的中间用户还原出完整的关系路径,得出社交网络用户关系搜索结果;
[0014](7)搜索结果为空,结束。
[0015]优选地,所述用户关系搜索方法,其所述两跳关系为通过一个陌生人可认识的关系O
[0016]优选地,所述用户关系搜索方法,其所述用户热度为余户的熟人数,即所述用户直接认识的人的个数。
[0017]优选地,所述用户关系搜索方法,其所述降序排列采用快速排序或堆排序。
[0018]优选地,所述用户关系搜索方法,其所述步骤(4)和步骤(6)穷举所有关系路径。
[0019]优选地,所述用户关系搜索方法,其所述步骤(4)和步骤(6)输出一条关系路径。
[0020]总体而言,通过本发明所构思的以上技术方案与现有技术相比,由于使用了较好的索引技术,能够取得下列大大减少查询时间有益效果。
【附图说明】
[0021]图1是基于索引的用户关系搜索方法的流程图;
[0022]图2是2_hop索引的不意图;
[0023]图3是用户关系搜索方法的查询过程;
[0024]图4是查询过程的优化方法。
【具体实施方式】
[0025]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0026]本发明提供的社交网络用户关系搜索方法,包括以下步骤:
[0027](I)对于社交网络建立两跳关系集合,按照用户热度降序排列形成两跳关系列表;
[0028]N跳关系是指通过N-1个陌生人可以认识的关系,比如说,如果两个人直接认识,这样的关系是一跳关系,如果两个需要通过一个共同的熟人才能认识,这样的关系称为两跳关系,以此类推。为方便描述,将两跳关系索引简记为2-hop索引。
[0029]所述用户热度为用户的熟人数,即用户直接认识的人的个数。
[0030]降序排列可以采用常见的排序方式,如快速排序,堆排序等。
[0031](2)对于其关系待搜索的第一用户及第二用户,在步骤(I)中获取的两跳关系列表中,分别搜索其关于第一用户及第二用户的两跳关系,形成第一用户两跳关系集合及第二用户两跳关系集合。
[0032](3)搜索第一用户两跳关系集合和第二用户两跳关系集合中是否存在相同用户,如存在则进入步骤(4),否则进入步骤(5);
[0033](4)根据步骤(3)搜索出的相同用户还原第一用户及第二用户的关系路径,得出社交网络用户关系搜索结果;
[0034](5)将第一用户两跳关系集合和第二用户两跳关系集合中出现的所用用户作为待关联用户集合,在步骤(I)获得的两跳关系列表中,搜索出现待关联用户集合中两个或两个以上用户的两跳关系,如果存在则进入步骤(6),否则进入步骤(7);
[0035](6)根据步骤(5)中得到的中间用户还原出完整的关系路径,得出社交网络用户关系搜索结果。
[0036]步骤(4)和步骤(6)可穷举所有四跳以内或者五跳至六跳关系,也可输出最短关系路径,或输出其中一条关系路径。
[0037](7)搜索结果为空,结束。
[0038]以下为实施例:
[0039]如图1所示,一种社交网络用户关系搜索方法,包括以下步骤:
[0040](I)对于社交网络,获取全部关系数据形成社交网络图,遍历社交图中每一个用户,对每一个用户X做一次BFS搜索,深度限制为2,将访问到的顶点加入顶点X的优先队列中作为2-hop关系索引,队列中包含顶点的度数信息,以及遍历的前一用户信息,遍历完成后,将结果写入索引文件中。这样索引包含了每一个用户的全部2-hop好友信息。
[0041 ] 如图2所示,john的2-hop索引包括peter,kai等。Marry的2_hop索引包括frank,mike 等。
[0042](2)根据检索请求,从索引文件中取出检索第一用户和第二用户的两跳关系列表。实例中取出john的索引包括peter,kai等。Marry的2-hop索引包括frank,mike等。
[0043](3)遍历第一用户和第二用户的两跳关系列表,按照顶点度从高到低的顺序,判定查询用户A的两跳关系列表中的用户X和B中的两跳关系集合中的用户Y是否是两跳可达的,如果存在,进入步骤(4);如果不存在,则进入步骤(7)。
[0044]开始分别遍历john和marry的两跳关系列表,找到了 john的2_hop用户kai和marry的2-hop用户mike是2-hop可达的。进入步骤(4)。
[0045](4)根据公共节点还原出关系路径。
[0046](5)将第一用户两跳关系集合和第二用户两跳关系集合中出现的所用用户作为待关联用户集合,在步骤(I)获得的两跳关系列表中,搜索出现待关联用户集合中两个或两个以上用户的两跳关系,如果存在则进入步骤(6),否则进入步骤(7);
[0047]公共节点的队列中记录了BFS的前驱用户,通过前驱用户逐步还原出完整的用户路径。算法找到了 john的2-hop用户kai和marry的2-hop用户mike是2-hop可达的。通过john至1Jkai的路径上存储的前驱用户peter,找出了路径为john->peter_>kai,同理得到mike_>frank_>marry,从而得出完整的路径为 john->peter->ka1->mike->frank->marry。
[0048]将关系路径john->peter->ka1->mike->frank->marry 返回。
[0049](6)如果检索不存在中间用户满足条件,返回不存在这样的六度人脉进入步骤
(7);
[0050](7)检索结束。
[0051]查询过程可以采用的优化方法,如图4所示,可以优先处理外联度在阈值之上的查询,然后在处理阈值之下的查询。阈值根据顶点外度数分布选取一个合适值。以图3为例,阈值设置为I。这里阈值较小的原因是例子中的顶点数较少。可以将两个用户集合分为四个部分Al,A2,B1,B2 Al,B1分别表示两个顶点外度数较大的部分,由于这部分顶底2-hop可达的概率最大,优先比较可以快速得出第一个结果,如果不需要就可以直接返回。如果需要完整的结果,则继续搜索,分别比较Al,B2和A2,BI,最后比较A2,B2。最终得到一个完备解。
[0052]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种社交网络用户关系搜索方法,其特征在于,包括以下步骤: (1)对于社交网络建立两跳关系集合,按照用户热度降序排列形成两跳关系列表; (2)对于其关系待搜索的第一用户及第二用户,在步骤(I)中获取的两跳关系列表中,分别搜索其关于第一用户及第二用户的两跳关系,形成第一用户两跳关系集合及第二用户两跳关系集合; (3)搜索第一用户两跳关系集合和第二用户两跳关系集合中是否存在相同用户,如存在则进入步骤(4),否则进入步骤(5); (4)根据步骤(3)搜索出的相同用户还原第一用户及第二用户的关系路径,得出社交网络用户关系搜索结果; (5)将第一用户两跳关系集合和第二用户两跳关系集合中出现的所用用户作为待关联用户集合,在步骤(I)获得的两跳关系列表中,搜索出现待关联用户集合中两个或两个以上用户的两跳关系,如果存在则进入步骤(6),否则进入步骤(7); (6)根据步骤(5)中得到的中间用户还原出完整的关系路径,得出社交网络用户关系搜索结果; (7)搜索结果为空,结束。2.如权利要求1所述的用户关系搜索方法,其特征在于,所述两跳关系为通过一个陌生人可认识的关系。3.如权利要求1所述的用户关系搜索方法,其特征在于,所述用户热度为余户的熟人数,即所述用户直接认识的人的个数。4.如权利要求1所述的用户关系搜索方法,其特征在于,所述降序排列采用快速排序或堆排序。5.如权利要求1所述的用户关系搜索方法,其特征在于,所述步骤(4)和步骤(6)穷举所有关系路径。6.如权利要求1所述的用户关系搜索方法,其特征在于,所述步骤(4)和步骤(6)输出一条关系路径。
【文档编号】G06F17/30GK105956024SQ201610257499
【公开日】2016年9月21日
【申请日】2016年4月25日
【发明人】谢夏, 杨晓冬, 金海 , 王多强
【申请人】华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1