一种好友推荐方法和装置的制造方法
【专利摘要】本申请提供了一种好友推荐方法和装置,该方法包括:根据目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;根据目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中;将与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;将所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。该方法提高了设备处理能力,并能够为用户全面地进行好友推荐。
【专利说明】
-种好友推荐方法和装置
技术领域
[0001] 本发明设及计算机网络技术领域,特别设及一种好友推荐方法和装置。
【背景技术】
[0002] 好友推荐业务是一种通过对社交网络数据进行挖掘,分析用户的社交偏好,从而 为用户推荐好友的业务。
[0003] 好友关系是社交网络中最重要的属性之一,对用户的活跃程度具有重要的影响。 通过促进用户交友,好友推荐可W提升用户的活跃程度,在一定程度上提高用户的黏性。
[0004] 目前,关于好友推荐,有一种通过对用户的关系网络进行挖掘,利用好友的好友, 也称为二度好友,形成推荐候选集推荐给用户。
[0005] 该种好友推荐方式中,推荐候选集由二度好友组成,运种策略倾向于对用户已有 的成熟社交圈子进行扩展,如,推荐尚未加为好友的同学或同事。由于来自成熟的社交圈 子,推荐候选集能在一定程度上反映用户W前的交友偏好,但未必能刻画新的交友需求。
[0006] 因此,该好友推荐方法在实际应用中无法为用户提供全面推荐结果。
【发明内容】
[0007] 有鉴于此,本申请提供一种好友推荐方法和装置,提高了设备处理能力,并能够为 用户全面地进行好友推荐。
[000引为解决上述技术问题,本申请的技术方案是运样实现的:
[0009] -种好友推荐方法,该方法包括:
[0010] 从服务器获取目标用户的第一用户关系拓扑和第二用户关系拓扑;所述目标用户 的第一用户关系拓扑包括第一用户集合W及所述第一用户集合中各用户之间的好友关系, 所述第一用户集合包括所述目标用户W及所述目标用户的1度至Z度好友用户;所述目标用 户的第二用户关系拓扑包括第二用户集合W及所述目标用户与所述第二用户集合中的各 用户之间的会话信息,所述第二用户集合包括所述目标用户W及与所述目标用户存在信息 交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加为所述目标用户好 友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的用户;
[0011] 根据所述目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户 关系子拓扑的用户;所述目标用户在第一用户关系子拓扑中至少存在一个1度好友用户;
[0012] 根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划 分到该目标用户的沟通序列中;
[0013] 将与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好 友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目 标用户的好友的用户组成第二好友候选集;
[0014] 将所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐 集,并推荐给所述目标用户。
[0015] -种好友推荐装置,该装置包括:获取单元、确定单元、处理单元和推荐单元;
[0016] 所述获取单元,用于从服务器获取目标用户的第一用户关系拓扑和第二用户关系 拓扑;所述目标用户的第一用户关系拓扑包括第一用户集合W及所述第一用户集合中各用 户之间的好友关系,所述第一用户集合包括所述目标用户W及所述目标用户的1度至Z度好 友用户;所述目标用户的第二用户关系拓扑包括第二用户集合W及所述目标用户与所述第 二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户W及与所述 目标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加 为所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的 用户;
[0017] 所述确定单元,用于根据所述获取单元获取目标用户的第一用户关系拓扑确定与 所述目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在第一用户关系子拓扑 中至少存在一个1度好友用户;根据所述目标用户的第二用户关系拓扑将与该目标用户参 与同一会话的用户划分到该目标用户的沟通序列中;
[0018] 所述处理单元,用于将所述确定单元确定的与所述目标用户属于同一第一用户关 系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用 户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;
[0019] 所述推荐单元,用于将所述处理单元处理的所述第一好友候选集和第二好友候选 集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
[0020] 由上面的技术方案可知,本申请中基于由用户和与该用户存在好友关系的用户组 成的第一用户关系拓扑,W及由用户和与该用户进行会话的用户组成的第二用户关系拓扑 提供好友推荐方法;第一好友关系拓扑为用户长期的交友行为累积下的,反应了用户长期 的交友偏好,第二用户关系拓扑由用户近期的交友活动产生,反映用户近期的交友兴趣。通 过对运两种拓扑进行挖掘和融合,提高设备处理能力,并能够为用户进行全面的好友推荐。
【附图说明】
[0021 ]图1为本申请实施例中好友推荐流程示意图;
[0022] 图2为本申请实施例中表示用户1的第一用户关系拓扑的网络拓扑结构的示意图;
[0023] 图3为本申请实施例中用户1的一对多的用户关系拓扑示意图;
[0024] 图4为本申请实施例中用户1的一对一的用关系拓扑示意图;
[0025] 图5为本申请实施例中为好友推荐中的用户排序流程示意图;
[0026] 图6为本申请实施例中好友推荐装置结构示意图;
[0027] 图7为本申请具体实施例中好友推荐设备的硬件架构组成示意图。
【具体实施方式】
[0028] 为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例, 对本发明的技术方案进行详细说明。
[0029] 本申请实施例中为了能更全面地为社交网络系统中用户进行好友推荐,通过基于 社交网络系统中的第一用户关系拓扑和第二用户关系拓扑为用户推荐好友。
[0030] 其中,第一用户关系拓扑为社交网络系统中用户间长期的交友行为累积下的,反 应了用户间长期的交友偏好的关系拓扑。该第一用户关系拓扑包括社交网络系统中的各用 户W及各用户之间的好友关系信息。具体的,第一用户关系拓扑可W采用网络拓扑结构来 表示。该网络拓扑结构包括顶点集合V和边集合E,记为G =(V,E)。其中顶点集合V中的每一 个顶点代表社交网络系统中的一个用户。边集合E中的每一条边表示网络拓扑结构中该边 所连接的两个顶点所代表的用户之间存在好友关系,且每条边包含了好友分组、好友备注 等信息。即当网络拓扑结构中的两个顶点之间存在边时,表示运两个顶点所代表的用户之 间存在好友关系;当网络拓扑结构中的两个顶点之间不存在边时,表示运两个顶点所代表 的用户之间不存在好友关系。
[0031] 第二用户关系拓扑为社交网络系统中各用户近期的交友活动产生的,反映各用户 间近期的交友兴趣的关系拓扑。该第二用户关系拓扑包括一对多用户关系拓扑和一对一用 户关系拓扑。其中一对多用户关系拓扑是指一个用户将消息发送给多个用户的关系拓扑, 如群组会话等。该一对多用户关系拓扑包括社交网络系统中的多个用户W及各用户之间的 会话信息。一对一用户关系拓扑是指单个用户将消息发送给单个用户的关系拓扑,如一对 一会话等。该一对一用户关系拓扑包括社交网络系统中的任意两个用户W及任意两个用户 之间的会话信息。
[0032] 下面结合附图,详细说明本申请实施例中实现好友推荐过程。
[0033] 参见图1,图1为本申请实施例中好友推荐流程示意图。具体步骤为:
[0034] 步骤101,设备从服务器上获取目标用户的第一用户关系拓扑和第二用户关系拓 扑。
[0035] 其中,目标用户为社交网络系统中需要向其推荐好友的用户。目标用户可W为社 交网络系统中的任意一个用户。
[0036] 服务器可W是一个服务器,也可W是多个服务器,用于存储第一用户关系拓扑和 第二用户关系拓扑。实现本申请设备可W是一台PC,也可W是存储数据信息的服务器,在下 文中统称为设备。
[0037] 目标用户的第一用户关系拓扑包括第一用户集合W及该第一用户集合中各用户 之间的好友关系信息。
[0038] 其中,第一用户集合包括该目标用户W及该目标用户的1度至Z度好友用户。其中, 目标用户的1度好友用户是指已被该目标用户添加为好友的用户。
[0039] 如,社交网络系统QQ中的QQ好友,社交网络系统微信中的微信好友等。该目标用户 可W有多个QQ好友,也可W有多个微信好友。目标用户的2度好友用户是指该目标用户的好 友的好友用户,依次类推,目标用户的Z度好友用户为该目标用户的Z-I度好友的好友用户。 其中,Z为大于1的整数,即本申请实施例中,该目标用户的第一用户集合至少包括该目标用 户W及该目标用户的1度至2度好友用户。
[0040] 该目标用户的第一用户集合中各用户之间的好友关系信息包括第一用户集合中 各用户之间的好友关系,W及第一用户集合中各用户之间的好友关系对应的好友分组信 息、好友备注信息等。
[0041] 参见图2,图2为本申请实施例中表示用户1的第一用户关系拓扑的网络拓扑结构 的示意图。
[0042] 图2中,该用户1的第一用户关系拓扑包括第一用户集合和第一用户集合中的各用 户之间的好友关系信息,W用户I的I至2度好友构成的第一用户关系拓扑为例。其中,第一 用户集合包括用户1、用户1的一度好友用户(包括用户2、用户3和用户4) W及用户1的二度 好友用户(包括用户5、用户6、用户7、用户8、用户9和用户10);并且在用户1的1度好友中,用 户2和用户3之间互为1度好友;在用户1的2度好友中,用户5和用户6, W及用户9和用户10之 间互为1度好友。
[0043] 在图2所示的用户1的第一用户关系拓扑的网络拓扑结构中,其包括分别代表用户 1至用户10的顶点集合V和分别代表用户1至10中的各用户之间的好友关系的边的集合E。一 条边表示两个用户之间存在1度好友关系,如用户巧日用户3之间的边,表示用户1和用户3之 间互为1度好友;用户5和用户6之间的边,表示用户5和用户6之间互为1度好友;边还包含了 分组、备注等信息。
[0044] 本步骤中的目标用户的第二用户关系拓扑包括第二用户集合W及所述目标用户 与所述第二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户W 及与所述目标用户存在信息交互的用户。
[0045] 第二用户关系拓扑,包括两类拓扑,第一类拓扑为一对多用户关系拓扑;第二类拓 扑为一对一用户关系拓扑。
[0046] 其中,一对多用户关系拓扑为目标用户与多个用户进行会话的拓扑;如聊天室中 的会话,一个用户发送信息,其他用户都能够看到;再比如一个QQ群、微信群等;一个QQ群, 或者一个微信群中用户之间进行会话时构成一个一对多用户关系拓扑。
[0047] 参见图3,图3为本申请实施例中用户1的一对多的用户关系拓扑示意图。
[0048] 图3中,W用户1所在的一个QQ群为例,该QQ群中包括6个用户,分别为用户1、用户 2、用户3、用户4、用户5和用户6。当任一用户发送消息时,该QQ群中的其他用户都会接收到 该用户发送的消息,如用户1发送消息,该QQ群中的用户2、用户3、用户4、用户5和用户6都会 接收到该消息。
[0049] 其中,一对一用户关系拓扑为单个用户与单个用户进行会话的拓扑;即两两用户 之间会话的拓扑,如QQ聊天中一个用户与其一个好友一对一聊天。
[0050] 参见图4,图4为本申请实施例中用户1的一对一的用关系拓扑示意图。
[0051] 图4中,W用户1为目标用户为例,用户1分别与用户2和用户3进行单独会话;用户2 分别与用户4、用户5和用户6进行单独会话。
[0052] 步骤102,该设备根据所述目标用户的第一用户关系拓扑确定与所述目标用户属 于同一第一用户关系子拓扑的用户;该目标用户在第一用户关系子拓扑中至少存在一个1 度好友用户。
[0053] 本步骤中该设备根据所述目标用户的第一用户关系拓扑确定与所述目标用户属 于同一第一用户关系子拓扑的用户,包括:
[0054] (1)、假设当该目标用户的第一用户关系拓扑中的所有用户属于不同的第一用户 关系子拓扑时,计算目标用户的第一用户关系拓扑的模块度Q;
[0055] (2)、确定该目标用户的第一用户关系拓扑中任意两个用户是否属于同一第一用 户关系子拓扑:
[0056] 假设所述两个用户属于同一第一用户关系子拓扑,第一用户关系拓扑中的其它用 户属于不同的第一用户关系子拓扑,且均不属于所述两个用户所属的第一用户关系子拓扑 时,计算目标用户的第一用户关系拓扑的模块度p;
[0057] 针对任一用户,将P大于Q,且值最大的P对应的两个用户,确定属于一个第一用户 关系子拓扑。
[0058] 该设备计算目标用户的第一用户关系拓扑的模块度的方法为:
[0059] 第一用户关系拓扑的模块度为
[0060] 其中,Aij为邻接矩阵,若用户巧日用户j为1度好友,则Aij = 1,否则Aij = 0;M为第一 用户关系拓扑中两两用户之间互为1度好友的个数;ki为与用户i存在1度好友关系的用户 的个数,kj为与用户j存在1度好友关系的用户的个数;Cl为用户i所属的第一用户关系子拓 扑,C功用户j所属的第一用户关系子拓扑,若Ci = Cj,则S(Ci尼)=1,否则,S化尼)=〇山 j为1到N的整数,N为第一用户关系拓扑中用户的个数。
[0061] W目标用户为用户1,用户1对应的第一用户关系拓扑中包括:用户1、用户2、用户3 和用户4;
[0062] 假设用户1和用户2,用户1和用户3,用户1和用户4, W及用户2和用户3计算出的P 均大于Q,且针对用户1和用户2计算的P大于用户2和用户3计算出的P,也大于用户1和用户 4, W及用户1和用户3计算出的P,则将用户1和用户2确定属于同一用户关系子拓扑;用户3 属于一个第一用户关系子拓扑;用户4属于一个用户关系子拓扑。
[0063] (3)、当确定出多个第一用户关系子拓扑时,确定所述第一用户关系子拓扑是否能 合并,如果是,将能够合并的第一用户关系子拓扑合并。
[0064] 如上述举例,确定出S个第一用户关系子拓扑,还需确定各第一用户关系子拓扑 是否能够合并。
[0065] 当确定出多个第一用户关系子拓扑时,确定所述第一用户关系子拓扑是否能合 并,包括:
[0066] 当所有第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一 用户关系拓扑的模块度W;
[0067] 通过W下方法确定所述多个第一用户关系子拓扑中任意两个第一用户关系子拓 扑是否能合并:
[0068] 当所述两个第一用户关系子拓扑能够合并,其它第一用户关系子拓扑均不能合并 时,计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度R;
[0069] 将R大于W,且值最大的R对应的两个第一用户关系子拓扑确定为能合并。
[0070] 如果进行上述步骤处理后,还存在多个第一用户关系子拓扑时,再进行迭代,确定 当前确定的各第一用户关系子拓扑是否能合并,直到确定出一个第一用户关系子拓扑,或 者确定出的所有第一用户关系子拓扑均不能再合并。
[0071] 上述设备计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度的方法为:
[0072] 第一用户关系拓扑的模块度为:
[0073] 其中,Ahi为邻接矩阵,若第一用户关系子拓扑h中的用户和第一用户关系子拓扑1 中的用户至少存在一对用户为1度好友,则Ahi = 1,否则Ahi = 0 ;M为第一用户关系拓扑中两 两用户之间互为I度好友的个数;kh为第一用户关系子拓扑h中所有用户的I度好友去重后 的1度好友的总个数;kl为第一用户关系子拓扑1中所有用户的1度好友去重后的1度好友的 总个数;Ch为第一用户关系子拓扑h,Ci为第一用户关系子拓扑1,若Ch = Ci,则S(Ch,Ci) = l, 否则,S(Ch,Ci)=0;h,l为1到T的整数,T为第一用户关系子拓扑的个数。
[0074] W第(2)步对应的举例中确定出的S个第一用户关系子拓扑为例,分别记为第一 用户关系子拓扑1(包括用户1和用户2)、第一用户关系子拓扑2(包括用户3)和第一用户关 系子拓扑3(包括用户4)。Wh为1,1为2为例,用户1或用户2,与用户3为1度好友时,则Au = I, 否则Au = Onki为用户巧日用户2的1度好友去重后的1度好友的总个数,如用户1的1度好友为 用户2和用户3,用户2的1度好友为用户3和用户4,则kl为2。
[0075] 仍然W第(2)步对应的举例中确定出的=个第一用户关系子拓扑为例,若确定第 一用户关系子拓扑1和第一用户关系子拓扑2能够合并,且进一步确定合并后的第一用户关 系子拓扑和第一用户关系子拓扑3不能合并,则最终确定出两个第一用户关系子拓扑,一个 第一用户关系子拓扑包括用户1、用户2和用户3;另一个第一用户关系子拓扑包括用户4。
[0076] 因此,针对用户1,确定用户2和用户3与用户1属于同一第一用户关系子拓扑。
[0077] 步骤103,该设备根据所述目标用户的第二用户关系拓扑将与该目标用户参与同 一会话的用户划分到该目标用户的沟通序列中。
[0078] 由于第二用户关系拓扑包括两类拓扑,因此,针对目标用户分别计算在两类拓扑 中的沟通序列,若在两类拓扑中均计算出沟通序列,则将运两类拓扑中计算出的沟通序列 合并作为该目标用户的沟通序列。
[0079] 下面详细描述沟通序列的确定过程:
[0080] 首先,在第一预设时间内,针对目标用户的一对多用户关系拓扑确定沟通序列;目 标用户与所述第二用户集合中的各用户之间的会话信息包括:发布信息的用户的名称,W 及发布信息的时间。
[0081] 确定沟通序列的过程具体如下:
[0082] 在第一预设时间内,目标用户可能参与了多个群的会话,则先针对每个群的会话 进行如下处理:
[0083] 根据会话消息的发送时间,将发送两条相邻消息的时间间隔小于第二预设时间的 会话消息划分到一个会话段,将参与该会话段的用户划分到同一沟通序列中;若该用户参 与多个会话段,则将该用户的多个会话段对应的沟通序列合并作为该目标用户针对一对多 用户关系拓扑确定的沟通序列。
[0084] 若该用户参与了多个群的会话,则将针对各个群确定的沟通序列再合并为一个沟 通序列作为该目标用户针对一对多用户关系拓扑确定的沟通序列。
[0085] 根据每个会话段生成一个沟通序列,如一个会话段由用户A发起,即用户A发布第 一条会话消息;接下来,用户B发送会话消息;然后用户A发送会话消息,最后用户C发送会话 消息;则针对该会话段的沟通序列为(A,B,A,C)。
[0086] 若针对一对多用户关系拓扑,用户A的第一个会话段对应的沟通序列为(A,B,A, C),第二个会话段对应的沟通序列为(A,D,C,C);则针对用户A在一对多用户关系拓扑中的 沟通序列为运两个沟通序列的并集,如合并后的沟通序列为(A,B,A,C;A,D,C,C)。
[0087] 若针对用户A在第一预设时间内参与了两个群的会话,针对第一群的沟通序列为 (0,4、(:,〇,针对第二个群的会话序列为^,0,〇,则确定用户4在第一预设时间内的沟通序 列为(D,A、C,C,A,D,C)。
[0088] 在合并沟通序列时,可W随机选择将哪个沟通序列放在序列的前段或后段,也可 W配置规则,按配置的规则按顺序放置各沟通序列到一个沟通序列中。
[0089] 其次,在第一预设时间内,针对一对一用户关系拓扑确定沟通序列。
[0090] 针对一对一用户关系拓扑,目标用户与第二用户集合中的各用户之间的会话信息 包括:收、发会话消息的用户的名称,进行会话的两个用户发送会话消息的次数。
[0091] 仍然W图4为例,图4所示的拓扑中,目标用户与第二集合中的各用户之间的会话 信息包括:收、发会话消息的用户的名称为用户1和用户2时,发送会话消息的次数为5;收发 会话消息的用户的名称为用户1和用户3时,发送会话消息的次数为10;收、发会话消息的用 户的名称为用户2和用户4时,发送会话消息的次数为3;收、发会话消息的用户名称为用户2 和用户5时,发送会话消息的次数为5;收、发会话消息的用户名称为用户2和用户6时,发送 会话消息的次数为10。
[0092] 针对一对一用户关系拓扑中的各用户的沟通序列生成的方式为,W所述各用户为 初始遍历点,采用随机游走的方式生成所述各用户的沟通序列。
[0093] 针对一对一用户关系拓扑中的目标用户确定沟通序列的具体过程如下:
[0094] W目标用户作为初始遍历点;分别确定选择将各其它用户作为下一个遍历点的概 率,其中,将该目标用户与任一其它用户发送会话消息的次数在总会话消息的次数中所占 百分率作为选择该其它用户作为下一个遍历点的概率,并按照各其它用户作为下一个遍历 点的概率选择作为下一遍历点的用户,直到曾作为遍历点的用户数达到预设用户个数,将 各曾作为遍历点的用户组成集合,作为该目标用户的沟通序列。
[00M]如W用户A为初始遍历点,与用户A进行会话的用户为用户B、C、D,且分别发送会话 消息的次数为50、20、30,则针对用户B,确定用户B作为下一遍历点的概率为50%,针对用户 C,确定用户C作为下一遍历点的概率为20%,针对用户D,确定用户D作为下一遍历点的概率 为30%,则按照各用户作为下一遍历点的概率选择作为下一遍历点的用户。
[0096] 假设选择用户D作为下一遍历起点,与用户D进行会话的用户为用户E、F、A,则分别 确定用户E、F、A作为下一遍历点的概率,W此类推,直到作为遍历点的用户达到预设用户个 数,如10,则结束遍历,将运10个遍历点对应的用户组成一个集合,作为用户A的沟通序列。
[0097] 最后,针对目标用户,将该目标用户针对一对多用户关系拓扑和一对一用户关系 拓扑确定的沟通序列合并,作为该目标用户针对第二用户关系拓扑确定的沟通序列。
[0098] 本实施例中,第一预设时间大于第二预设时间;第一预设时间为标识获取第二用 户关系拓扑的时间段,如最近一天、一周等时间。
[0099] 步骤102和步骤103在执行过程中不区分先后顺序。
[0100] 步骤104,该设备将与该目标用户属于同一第一用户关系子拓扑,且未添加为所述 目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未 添加为所述目标用户的好友的用户组成第二好友候选集。
[0101] 步骤105,该设备将所述第一好友候选集和第二好友候选集合并,作为所述目标用 户的好友推荐集,并推荐给所述目标用户。
[0102] 通过上述实现方式,在确定好友推荐集时,考虑了第一用户关系拓扑和第二用户 关系拓扑,即既考虑了用户长期的兴趣爱好,也考虑了近期的兴趣爱好,能够更全面地为用 户推荐好友。
[0103] 通过上述方式可W看出,通常为用户推荐的好友不止一个,有时候还会很多,由于 通常情况下用户关注排序靠前的用户,或者由于页面显示关系,不能全在一个界面上显示, 因此,将推荐的好友按照系统认为比较优质的好友,即用户可能接收推荐的用户,进行排 序,并将优质的好友优先推荐给用户变得尤为重要。
[0104] 下面结合附图,给出本申请提供的为好友推荐集中的用户排序的过程。
[0105] 设备根据实际应用为用户的各特征配置权重值。
[0106] 参见图5,图5为本申请实施例中为好友推荐中的用户排序流程示意图。具体步骤 为:
[0107] 步骤501,设备将第一用户关系子拓扑中出现次数最多的关系类型作为该第一用 户关系子拓扑的属性,为该属性配置属性值,并将该属性值作为对应的第一好友候选集中 的各用户的第一特征的特征值。
[0108] 在第一用户关系拓扑中,存在边的关系的用户,会包含分组、备注等信息,分组中 如同学、同事等关系类型。
[0109] 该设备通过语义识别抽取其中包含的关系类型,将一个第一用户关系子拓扑中出 现次数最多的关系类型,作为该第一用户关系子拓扑的属性,并根据实际需要为该属性配 置属性值,如实际应用中认为同学运种关系类型更重要,则为该种关系类型配置值大的属 性值;否则,配置值小的属性值。
[0110] 步骤502,该设备确定第一用户关系子拓扑中各用户与该第一用户关系子拓扑的 关系紧密程度,为各用户与该第一用户关系子拓扑的关系紧密程度配置紧密关系程度值, 将各用户对应的紧密关系程度值作为对应第一好友候选集中的对应用户的第二特征值。
[0111] 本步骤中确定第一用户关系子拓扑中各用户与该第一用户关系子拓扑的关系紧 密程度,包括:
[0112] 任一用户与对应第一用户关系子拓扑中的用户存在共同好友的个数;或与第一用 户关系子拓扑中的用户之间的发送会话消息的次数作为该第一用户关系子拓扑中对应用 户与该第一用户关系子拓扑的关系紧密程度。
[0113] 在具体实现时,可W将共同好友个数多的、发送会话消息的次数多的用户与该第 一用户关系子拓扑的紧密关系程度值配置的大一些。
[0114] 步骤503,该设备将第二好友候选集中的用户在各沟通序列中作为发起人的次数 作为该用户的第=特征值。
[0115] 在一个沟通序列中,运里的沟通序列指针对每个会话段的沟通序列,第一个发送 会话消息的用户作为该沟通序列的发起人。
[0116] 步骤504,针对任一用户,该设备确定该用户与其第二好友候选集中的用户的相似 度,并将确定的相似度作为第二候选集中对应用户的第四特征值。
[0117] 本步骤中确定该用户与其第二好友候选集中的用户的相似度,包括:
[0118] 通过对第二好友候选集采用预设算法,如Word2Vec算法,进行训练,获得每个用户 的向量,根据每个用户的向量计算两个用户的相似度,如使用点积的方式计算两个用户的 相似度。
[0119] 步骤505,针对一个好友推荐集中的各用户使用特征值加权求和获得用户的序列 值,该设备按照序列值从大到小的顺序排列各用户,并在推荐好友时按照排列顺序推荐。
[0120] 该设备还可W根据当前实际应用情况,确定是否获取新的数据信息,来重新确定 推荐好友集;也可W通过上线用户选择推荐好友的反馈信息来确定是否重新确定好友推荐 集,或者好友推荐集中用户的排列顺序。
[0121] 该设备根据上线用户选择推荐好友的反馈信息,即用户添加哪些用户为好友,或 者用户一直未使用该种推荐,未添加任何好友;若确定当前推荐的好友被用户选择添加为 好友的概率小于预设值,重新为用户的各特征值配置权重,并重新计算各用户的序列值,按 重新计算的序列值排列各用户,并使用重新排列的顺序推荐给用户。
[0122] 本申请实施例中通过对好友推荐集中的用户按照在第一用户关系拓扑和第二用 户关系拓扑中的特征属性,按预设规则对各用户进行排序,从而能够更精确地为用户推荐 好友。
[0123] 基于同样的发明构思,本申请实施例中还提出一种好友推荐装置。参见图6,图6为 本申请实施例中好友推荐装置结构示意图。该装置包括:获取单元601、确定单元602、处理 单元603和推荐单元604;
[0124] 获取单元601,用于从服务器获取目标用户的第一用户关系拓扑和第二用户关系 拓扑;所述目标用户的第一用户关系拓扑包括第一用户集合W及所述第一用户集合中各用 户之间的好友关系,所述第一用户集合包括所述目标用户W及所述目标用户的1度至Z度好 友用户;所述目标用户的第二用户关系拓扑包括第二用户集合W及所述目标用户与所述第 二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户W及与所述 目标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加 为所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的 用户;
[0125] 确定单元602,用于根据获取单元601获取目标用户的第一用户关系拓扑确定与所 述目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在第一用户关系子拓扑中 至少存在一个1度好友用户;根据所述目标用户的第二用户关系拓扑将与该目标用户参与 同一会话的用户划分到该目标用户的沟通序列中;
[0126] 处理单元603,用于将确定单元602确定的与所述目标用户属于同一第一用户关系 子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户 属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;
[0127] 推荐单元604,用于将处理单元603处理的所述第一好友候选集和第二好友候选集 合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
[012引较佳地,
[0129]确定单元602,具体用于根据所述目标用户的第一用户关系拓扑确定与所述目标 用户属于同一第一用户关系子拓扑的用户时:当所述目标用户的第一用户关系拓扑中的所 有用户属于不同的第一用户关系子拓扑时,计算所述第一用户关系拓扑的模块度Q;通过W 下方法确定第一用户关系拓扑中任意两个用户是否属于同一第一用户关系子拓扑:所述两 个用户属于同一第一用户关系子拓扑,第一用户关系拓扑中的其它用户属于不同的第一用 户关系子拓扑,且均不属于所述两个用户所属的第一用户关系子拓扑时,计算目标用户的 第一用户关系拓扑的模块度P;针对任一用户,将P大于Q,且值最大的P对应的两个用户,确 定属于一个第一用户关系子拓扑;当确定出多个第一用户关系子拓扑时,确定所述第一用 户关系子拓扑是否能合并,如果是,将能合并的第一用户关系子拓扑合并;直到确定出一个 第一用户关系子拓扑,或者确定出的所有第一用户关系子拓扑均不能再合并。
[0130] 较佳地,
[0131] 确定单元602,具体用于当确定出多个第一用户关系子拓扑时,确定所述多个第一 用户关系子拓扑是否能合并时:当所有第一用户关系子拓扑均不能合并时,计算第一用户 关系子拓扑对应的第一用户关系拓扑的模块度W;通过W下方法确定所述多个第一用户关 系子拓扑中任意两个第一用户关系子拓扑是否能合并:当所述两个第一用户关系子拓扑能 够合并,其它第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用 户关系拓扑的模块度R;将R大于W,且值最大的R对应的两个第一用户关系子拓扑确定为能 合并。
[0132] 较佳地,
[0133] 确定单元602,具体用于根据所述目标用户的第二用户关系拓扑将与该目标用户 参与同一会话的用户划分到该目标用户的沟通序列中时,针对一对多用户关系拓扑,在第 一预设时间内,根据信息的发送时间,根据会话消息的发送时间,将发送两条相邻消息的时 间间隔小于第二预设时间的会话消息划分到一个会话段,将参与该会话段的用户划分到同 一沟通序列中;若该用户参与多个会话段,则将该用户的多个会话段对应的沟通序列合并 作为该目标用户针对一对多用户关系拓扑确定的沟通序列;其中,第一预设时间大于第二 预设时间;目标用户与所述第二用户集合中的各用户之间的会话信息包括:发布信息的用 户的名称,W及发布信息的时间;针对一对一用户关系拓扑,在第一预设时间内,W所述目 标用户为初始遍历点,采用随机游走的方式生成该目标用户的沟通序列;将该目标用户针 对一对多用户关系拓扑和一对一用户关系拓扑生成的沟通序列合并,作为该目标用户的第 二用户关系拓扑的沟通序列,其中,所述第二用户关系拓扑包括:一对多用户关系拓扑和一 对一用户关系拓扑。
[0134] 较佳地,
[0135] 确定单元602,进一步用于若该用户参与多个群的会话,则将针对各群的会话确定 沟通序列合并为一个沟通序列,作为该目标用户的针对一对多用户关系拓扑确定的沟通序 列。
[0136] 较佳地,
[0137] 确定单元602,具体用于W所述目标用户为初始遍历点,采用随机游走的方式生成 该目标用户的沟通序列时:W所述目标用户作为初始遍历点;分别确定选择将各其它用户 作为下一个遍历点的概率,其中,将该目标用户与任一其它用户发送会话消息的次数在总 会话消息的次数中所占百分率作为选择该其它用户作为下一个遍历点的概率,并按照各其 它用户作为下一个遍历点的概率选择作为下一遍历点的用户,直到曾作为遍历点的用户数 达到预设用户个数,将各曾作为遍历点的用户组成集合,作为该目标用户的沟通序列。
[013引较佳地,
[0139]确定单元602,进一步用于将第一用户关系子拓扑中出现次数最多的关系类型作 为该第一用户关系子拓扑的属性,为该属性配置属性值,并将该属性值作为对应的第一好 友候选集中的各用户的第一特征的特征值;确定第一用户关系子拓扑中各用户与该第一用 户关系子拓扑的关系紧密程度,为各用户与该第一用户关系子拓扑的关系紧密程度配置紧 密关系程度值,将各用户对应的紧密关系程度值作为对应第一好友候选集中的对应用户的 第二特征值;第二好友候选集中的用户在各会话集中作为发起人的次数作为该用户的第= 特征值;针对任一用户,确定该用户与其第二好友候选集中的用户的相似度,并将确定的相 似度作为第二候选集中对应用户的第四特征值;
[0140] 推荐单元604,进一步用于为用户的各特征配置权重值;针对一个好友推荐集中的 各用户使用确定单元602确定的特征值加权求和获得用户的序列值,按照序列值从大到小 的顺序排列各用户,并在推荐好友时按照排列顺序推荐。
[0141] 较佳地,
[0142] 确定单元602,具体用于确定第一用户关系子拓扑中各用户与该第一用户关系子 拓扑的关系紧密程度时,任一用户与对应第一用户关系子拓扑中的用户存在共同好友的个 数;或与第一用户关系子拓扑中的用户之间的信息交互次数作为该第一用户关系子拓扑中 对应用户与该第一用户关系子拓扑的关系紧密程度;确定该用户与其第二好友候选集中的 用户的相似度时,通过对第二好友候选集采用预设算法进行训练,获得每个用户的向量,根 据每个用户的向量计算两个用户的相似度。
[0143] 较佳地,
[0144] 推荐单元604,进一步用于通过上线用户选择推荐好友的反馈信息,若确定当前推 荐的好友被用户选择添加为好友的概率小于预设值,重新为用户的各特征值配置权重,并 重新计算各用户的序列值,按重新计算的序列值排列各用户,并使用重新排列的顺序推荐 给用户。
[0145] 上述实施例的单元可W集成于一体,也可W分离部署;可W合并为一个单元,也可 W进一步拆分成多个子单元。
[0146] 本申请各实施例中的各单元可W W机械方式或电子方式实现。例如,一个硬件模 块可W包括专口设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特 定的操作。硬件模块也可W包括由软件临时配置的可编程逻辑器件或电路(如包括通用处 理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永 久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可W根据成本 和时间上的考虑来决定。
[0147] W上对本申请具体实施例中的好友推荐装置进行了说明,下面给出本申请具体实 施例中好友推荐装置所在设备的硬件架构组成,该设备可称为好友推荐设备,该好友推荐 设备是可W软硬件结合的可编程设备,具体参见图7,图7为本申请具体实施例中好友推荐 设备的硬件架构组成示意图。该设备可包括:处理器710,存储器720,端口730W及总线740。 处理器710和存储器720通过总线740互联。处理器710可通过端口730获取和输出数据;其 中,
[0148] 获取单元601被处理器710执行时可W为服务器获取目标用户的第一用户关系拓 扑和第二用户关系拓扑;所述目标用户的第一用户关系拓扑包括第一用户集合W及所述第 一用户集合中各用户之间的好友关系,所述第一用户集合包括所述目标用户W及所述目标 用户的1度至Z度好友用户;所述目标用户的第二用户关系拓扑包括第二用户集合W及所述 目标用户与所述第二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目 标用户W及与所述目标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度 好友用户为已添加为所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所 述目标用户好友的用户;
[0149] 确定单元602被处理器710执行时可W为:根据获取单元601获取目标用户的第一 用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在 第一用户关系子拓扑中至少存在一个1度好友用户;根据所述目标用户的第二用户关系拓 扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中;
[0150] 处理单元603被处理器710执行时可W为:将确定单元602确定的与所述目标用户 属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选 集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第 二好友候选集;
[0151] 推荐单元604被处理器610执行时可W为:将处理单元603处理的所述第一好友候 选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
[0152] 由此可W看出,当存储在存储器720中的指令模块被处理器710执行时,可实现前 述技术方案中获取单元、确定单元、处理单元和推荐单元的各种功能。
[0153] 另外,本发明的实施例中可W通过由设备如计算机执行的数据处理程序来实现。 显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过 直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬 盘和/或内存)中执行。因此,运样的存储介质也构成了本发明。存储介质可W使用任何类型 的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介 质(如CD-ROM等)、磁光存储介质(如MO等)等。
[0154] 因此,本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序 用于执行本发明上述技术方案。
[0155] 需要说明的是,图7所示的设备只是一个具体的例子,也可W通过其他的与本实施 例描述不同结构实现,例如,执行上述指令代码时所完成的操作,也可W由特定应用专用集 成电路(ASIC)实现。另外,上述的处理器710可W是一个或多个,如果是多个,则由多个处理 器共同负责读取和执行所述指令代码。因此,本申请对设备的具体结构不作具体限定。
[0156] 综上所述,本申请在确定好友推荐集时,考虑了第一用户关系拓扑和第二用户关 系拓扑的数据信息,即既考虑了用户长期的兴趣爱好,也考虑了近期的兴趣爱好,能够更全 面地为用户推荐好友。
[0157] 本申请实施例中还通过对好友推荐集中的用户按照在第一用户关系拓扑和第二 用户关系拓扑中的特征属性,按预设规则对各用户进行排序,从而能够更精确地为用户推 荐好友。
[0158] W上所述仅为本发明的较佳实施例而已,并不用W限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1. 一种好友推荐方法,其特征在于,该方法包括: 从服务器获取目标用户的第一用户关系拓扑和第二用户关系拓扑;所述目标用户的第 一用户关系拓扑包括第一用户集合以及所述第一用户集合中各用户之间的好友关系,所述 第一用户集合包括所述目标用户以及所述目标用户的1度至Z度好友用户;所述目标用户的 第二用户关系拓扑包括第二用户集合以及所述目标用户与所述第二用户集合中的各用户 之间的会话信息,所述第二用户集合包括所述目标用户以及与所述目标用户存在信息交互 的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加为所述目标用户好友的 用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的用户; 根据所述目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系 子拓扑的用户;所述目标用户在第一用户关系子拓扑中至少存在一个1度好友用户; 根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到 该目标用户的沟通序列中; 将与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的 用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用 户的好友的用户组成第二好友候选集; 将所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并 推荐给所述目标用户。2. 根据权利要求1所述的方法,其特征在于,所述根据所述目标用户的第一用户关系拓 扑确定与所述目标用户属于同一第一用户关系子拓扑的用户,包括: 当所述目标用户的第一用户关系拓扑中的所有用户属于不同的第一用户关系子拓扑 时,计算所述第一用户关系拓扑的模块度Q; 通过以下方法确定第一用户关系拓扑中任意两个用户是否属于同一第一用户关系子 拓扑: 所述两个用户属于同一第一用户关系子拓扑,第一用户关系拓扑中的其它用户属于不 同的第一用户关系子拓扑,且均不属于所述两个用户所属的第一用户关系子拓扑时,计算 目标用户的第一用户关系拓扑的模块度P; 针对任一用户,将P大于Q,且值最大的P对应的两个用户,确定属于一个第一用户关系 子拓扑; 当确定出多个第一用户关系子拓扑时,确定所述第一用户关系子拓扑是否能合并,如 果是,将能合并的第一用户关系子拓扑合并; 直到确定出一个第一用户关系子拓扑,或者确定出的所有第一用户关系子拓扑均不能 再合并。其中,Aij为邻接矩阵,若用户i和用户j为1度好友,则Aij = 1,否则Aij = O;M为第一用户 关系拓扑中两两用户之间互为1度好友的个数;1^为与用户i存在1度好友关系的用户的个3. 根据权利要求2所述的方法,其特征在于,计算目标用户的第一用户关系拓扑的模块 度的方法为: 第一用户关系拓扑的模块度为 数,kj为与用户j存在1度好友关系的用户的个数;C1为用户i所属的第一用户关系子拓扑,(^ 为用户j所属的第一用户关系子拓扑,若Ci = Cj,则δ(Ci,Cj) = 1,否则,δ(Ci,Cj) = O; i,j为1 到N的整数,N为第一用户关系拓扑中用户的个数。4. 根据权利要求2所述的方法,其特征在于,所述当确定出多个第一用户关系子拓扑 时,确定所述多个第一用户关系子拓扑是否能合并,包括: 当所有第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用户 关系拓扑的模块度W; 通过以下方法确定所述多个第一用户关系子拓扑中任意两个第一用户关系子拓扑是 否能合并: 当所述两个第一用户关系子拓扑能够合并,其它第一用户关系子拓扑均不能合并时, 计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度R; 将R大于W,且值最大的R对应的两个第一用户关系子拓扑确定为能合并。5. 根据权利要求4所述的方法,其特征在于,所述计算所述第一用户关系拓扑的模块度 的方法为: 第一用户关系拓扑的模块度为: 其中,Ahl为邻接矩阵,若第一用户关系子拓扑h中的用户和第一用户关系子拓扑1中的 用户至少存在一对用户为1度好友,则Ahi = I,否则Ahi = O;M为第一用户关系拓扑中两两用 户之间互为1度好友的个数;kh为第一用户关系子拓扑h中所有用户的1度好友去重后的1度 好友的总个数;ki为第一用户关系子拓扑1中所有用户的1度好友去重后的1度好友的总个 数;Ch为第一用户关系子拓扑h,Ci为第一用户关系子拓扑1,若Ch=Ci,则δ (Ch,Ci ) = 1,否则, δ (Ch,Ci )= 0; h,1为1到T的整数,T为第一用户关系子拓扑的个数。6. 根据权利要求1所述的方法,其特征在于,所述第二用户关系拓扑包括:一对多用户 关系拓扑和一对一用户关系拓扑; 所述根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划 分到该目标用户的沟通序列中,包括: 针对一对多用户关系拓扑,在第一预设时间内,根据信息的发送时间,根据会话消息的 发送时间,将发送两条相邻消息的时间间隔小于第二预设时间的会话消息划分到一个会话 段,将参与该会话段的用户划分到同一沟通序列中;若该用户参与多个会话段,则将该用户 的多个会话段对应的沟通序列合并作为该目标用户针对一对多用户关系拓扑确定的沟通 序列;其中,第一预设时间大于第二预设时间;目标用户与所述第二用户集合中的各用户之 间的会话信息包括:发布信息的用户的名称,以及发布信息的时间; 针对一对一用户关系拓扑,在第一预设时间内,以所述目标用户为初始遍历点,采用随 机游走的方式生成该目标用户的沟通序列; 将该目标用户针对一对多用户关系拓扑和一对一用户关系拓扑生成的沟通序列合并, 作为该目标用户的第二用户关系拓扑的沟通序列。7. 根据权利要求6所述的方法,其特征在于,所述方法进一步包括: 若该用户参与多个群的会话,则将针对各群的会话确定沟通序列合并为一个沟通序 列,作为该目标用户的针对一对多用户关系拓扑确定的沟通序列。8. 根据权利要求6所述的方法,其特征在于,所述以所述目标用户为初始遍历点,采用 随机游走的方式生成该目标用户的沟通序列,包括: 以所述目标用户作为初始遍历点; 分别确定选择将各其它用户作为下一个遍历点的概率,其中,将该目标用户与任一其 它用户发送会话消息的次数在总会话消息的次数中所占百分率作为选择该其它用户作为 下一个遍历点的概率,并按照各其它用户作为下一个遍历点的概率选择作为下一遍历点的 用户,直到曾作为遍历点的用户数达到预设用户个数,将各曾作为遍历点的用户组成集合, 作为该目标用户的沟通序列。9. 根据权利要求1-8任意一项所述的方法,其特征在于,所述方法进一步包括:为用户 的各特征配置权重值; 将第一用户关系子拓扑中出现次数最多的关系类型作为该第一用户关系子拓扑的属 性,为该属性配置属性值,并将该属性值作为对应的第一好友候选集中的各用户的第一特 征的特征值; 确定第一用户关系子拓扑中各用户与该第一用户关系子拓扑的关系紧密程度,为各用 户与该第一用户关系子拓扑的关系紧密程度配置紧密关系程度值,将各用户对应的紧密关 系程度值作为对应第一好友候选集中的对应用户的第二特征值; 将第二好友候选集中的用户在各沟通序列中作为发起人的次数作为该用户的第三特 征值; 针对任一用户,确定该用户与其第二好友候选集中的用户的相似度,并将确定的相似 度作为第二候选集中对应用户的第四特征值; 针对一个好友推荐集中的各用户使用特征值加权求和获得用户的序列值,按照序列值 从大到小的顺序排列各用户,并在推荐好友时按照排列顺序推荐。10. 根据权利要求9所述的方法,其特征在于,所述确定第一用户关系子拓扑中各用户 与该第一用户关系子拓扑的关系紧密程度,包括: 任一用户与对应第一用户关系子拓扑中的用户存在共同好友的个数;或与第一用户关 系子拓扑中的用户之间的发送会话消息的次数作为该第一用户关系子拓扑中对应用户与 该第一用户关系子拓扑的关系紧密程度; 所述确定该用户与其第二好友候选集中的用户的相似度,包括: 通过对第二好友候选集采用预设算法进行训练,获得每个用户的向量,根据每个用户 的向量计算两个用户的相似度。11. 根据权利要求9所述的方法,其特征在于,所述方法进一步包括: 通过上线用户选择推荐好友的反馈信息,若确定当前推荐的好友被用户选择添加为好 友的概率小于预设值,重新为用户的各特征值配置权重,并重新计算各用户的序列值,按重 新计算的序列值排列各用户,并使用重新排列的顺序推荐给用户。12. -种好友推荐装置,其特征在于,该装置包括:获取单元、确定单元、处理单元和推 荐单元; 所述获取单元,用于从服务器获取目标用户的第一用户关系拓扑和第二用户关系拓 扑;所述目标用户的第一用户关系拓扑包括第一用户集合以及所述第一用户集合中各用户 之间的好友关系,所述第一用户集合包括所述目标用户以及所述目标用户的1度至Z度好友 用户;所述目标用户的第二用户关系拓扑包括第二用户集合以及所述目标用户与所述第二 用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户以及与所述目 标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加为 所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的用 户; 所述确定单元,用于根据所述获取单元获取目标用户的第一用户关系拓扑确定与所述 目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在第一用户关系子拓扑中至 少存在一个1度好友用户;根据所述目标用户的第二用户关系拓扑将与该目标用户参与同 一会话的用户划分到该目标用户的沟通序列中; 所述处理单元,用于将所述确定单元确定的与所述目标用户属于同一第一用户关系子 拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属 于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集; 所述推荐单元,用于将所述处理单元处理的所述第一好友候选集和第二好友候选集合 并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。13. 根据权利要求12所述的装置,其特征在于, 所述确定单元,具体用于根据所述目标用户的第一用户关系拓扑确定与所述目标用户 属于同一第一用户关系子拓扑的用户时:当所述目标用户的第一用户关系拓扑中的所有用 户属于不同的第一用户关系子拓扑时,计算所述第一用户关系拓扑的模块度Q;通过以下方 法确定第一用户关系拓扑中任意两个用户是否属于同一第一用户关系子拓扑:所述两个用 户属于同一第一用户关系子拓扑,第一用户关系拓扑中的其它用户属于不同的第一用户关 系子拓扑,且均不属于所述两个用户所属的第一用户关系子拓扑时,计算目标用户的第一 用户关系拓扑的模块度P;针对任一用户,将P大于Q,且值最大的P对应的两个用户,确定属 于一个第一用户关系子拓扑;当确定出多个第一用户关系子拓扑时,确定所述第一用户关 系子拓扑是否能合并,如果是,将能合并的第一用户关系子拓扑合并;直到确定出一个第一 用户关系子拓扑,或者确定出的所有第一用户关系子拓扑均不能再合并。14. 根据权利要求12所述的装置,其特征在于, 所述确定单元,具体用于当确定出多个第一用户关系子拓扑时,确定所述多个第一用 户关系子拓扑是否能合并时:当所有第一用户关系子拓扑均不能合并时,计算第一用户关 系子拓扑对应的第一用户关系拓扑的模块度W;通过以下方法确定所述多个第一用户关系 子拓扑中任意两个第一用户关系子拓扑是否能合并:当所述两个第一用户关系子拓扑能够 合并,其它第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用户 关系拓扑的模块度R;将R大于W,且值最大的R对应的两个第一用户关系子拓扑确定为能合 并。15. 根据权利要求12所述的装置,其特征在于, 所述确定单元,具体用于根据所述目标用户的第二用户关系拓扑将与该目标用户参与 同一会话的用户划分到该目标用户的沟通序列中时,针对一对多用户关系拓扑,在第一预 设时间内,根据信息的发送时间,根据会话消息的发送时间,将发送两条相邻消息的时间间 隔小于第二预设时间的会话消息划分到一个会话段,将参与该会话段的用户划分到同一沟 通序列中;若该用户参与多个会话段,则将该用户的多个会话段对应的沟通序列合并作为 该目标用户针对一对多用户关系拓扑确定的沟通序列;其中,第一预设时间大于第二预设 时间;目标用户与所述第二用户集合中的各用户之间的会话信息包括:发布信息的用户的 名称,以及发布信息的时间;针对一对一用户关系拓扑,在第一预设时间内,以所述目标用 户为初始遍历点,采用随机游走的方式生成该目标用户的沟通序列;将该目标用户针对一 对多用户关系拓扑和一对一用户关系拓扑生成的沟通序列合并,作为该目标用户的第二用 户关系拓扑的沟通序列,其中,所述第二用户关系拓扑包括:一对多用户关系拓扑和一对一 用户关系拓扑。16. 根据权利要求15所述的装置,其特征在于, 所述确定单元,进一步用于若该用户参与多个群的会话,则将针对各群的会话确定沟 通序列合并为一个沟通序列,作为该目标用户的针对一对多用户关系拓扑确定的沟通序 列。17. 根据权利要求15所述的装置,其特征在于, 所述确定单元,具体用于以所述目标用户为初始遍历点,采用随机游走的方式生成该 目标用户的沟通序列时:以所述目标用户作为初始遍历点;分别确定选择将各其它用户作 为下一个遍历点的概率,其中,将该目标用户与任一其它用户发送会话消息的次数在总会 话消息的次数中所占百分率作为选择该其它用户作为下一个遍历点的概率,并按照各其它 用户作为下一个遍历点的概率选择作为下一遍历点的用户,直到曾作为遍历点的用户数达 到预设用户个数,将各曾作为遍历点的用户组成集合,作为该目标用户的沟通序列。18. 根据权利要求12-17任意一项所述的装置,其特征在于, 所述确定单元,进一步用于将第一用户关系子拓扑中出现次数最多的关系类型作为该 第一用户关系子拓扑的属性,为该属性配置属性值,并将该属性值作为对应的第一好友候 选集中的各用户的第一特征的特征值;确定第一用户关系子拓扑中各用户与该第一用户关 系子拓扑的关系紧密程度,为各用户与该第一用户关系子拓扑的关系紧密程度配置紧密关 系程度值,将各用户对应的紧密关系程度值作为对应第一好友候选集中的对应用户的第二 特征值;第二好友候选集中的用户在各会话集中作为发起人的次数作为该用户的第三特征 值;针对任一用户,确定该用户与其第二好友候选集中的用户的相似度,并将确定的相似度 作为第二候选集中对应用户的第四特征值; 所述推荐单元,进一步用于为用户的各特征配置权重值;针对一个好友推荐集中的各 用户使用所述确定单元确定的特征值加权求和获得用户的序列值,按照序列值从大到小的 顺序排列各用户,并在推荐好友时按照排列顺序推荐。19. 根据权利要求18所述的装置,其特征在于, 所述确定单元,具体用于确定第一用户关系子拓扑中各用户与该第一用户关系子拓扑 的关系紧密程度时,任一用户与对应第一用户关系子拓扑中的用户存在共同好友的个数; 或与第一用户关系子拓扑中的用户之间的信息交互次数作为该第一用户关系子拓扑中对 应用户与该第一用户关系子拓扑的关系紧密程度;确定该用户与其第二好友候选集中的用 户的相似度时,通过对第二好友候选集采用预设算法进行训练,获得每个用户的向量,根据 每个用户的向量计算两个用户的相似度。20. 根据权利要求18所述的装置,其特征在于, 所述推荐单元,进一步用于通过上线用户选择推荐好友的反馈信息,若确定当前推荐
【文档编号】G06Q50/00GK106021325SQ201610296601
【公开日】2016年10月12日
【申请日】2016年5月6日
【发明人】容毅峰, 高瀚, 贺鹏
【申请人】腾讯科技(深圳)有限公司