CN106021325A - 一种好友推荐方法和装置 - Google Patents
一种好友推荐方法和装置 Download PDFInfo
- Publication number
- CN106021325A CN106021325A CN201610296601.0A CN201610296601A CN106021325A CN 106021325 A CN106021325 A CN 106021325A CN 201610296601 A CN201610296601 A CN 201610296601A CN 106021325 A CN106021325 A CN 106021325A
- Authority
- CN
- China
- Prior art keywords
- user
- topology
- relationship
- users
- sub
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004891 communication Methods 0.000 claims abstract description 91
- 238000012545 processing Methods 0.000 claims abstract description 17
- 230000003993 interaction Effects 0.000 claims description 9
- 238000005295 random walk Methods 0.000 claims description 7
- 239000003999 initiator Substances 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000012549 training Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 13
- 239000004973 liquid crystal related substance Substances 0.000 description 8
- 229920000642 polymer Polymers 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000006855 networking Effects 0.000 description 7
- 230000007774 longterm Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种好友推荐方法和装置,该方法包括:根据目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;根据目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中;将与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;将所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。该方法提高了设备处理能力,并能够为用户全面地进行好友推荐。
Description
技术领域
本发明涉及计算机网络技术领域,特别涉及一种好友推荐方法和装置。
背景技术
好友推荐业务是一种通过对社交网络数据进行挖掘,分析用户的社交偏好,从而为用户推荐好友的业务。
好友关系是社交网络中最重要的属性之一,对用户的活跃程度具有重要的影响。通过促进用户交友,好友推荐可以提升用户的活跃程度,在一定程度上提高用户的黏性。
目前,关于好友推荐,有一种通过对用户的关系网络进行挖掘,利用好友的好友,也称为二度好友,形成推荐候选集推荐给用户。
该种好友推荐方式中,推荐候选集由二度好友组成,这种策略倾向于对用户已有的成熟社交圈子进行扩展,如,推荐尚未加为好友的同学或同事。由于来自成熟的社交圈子,推荐候选集能在一定程度上反映用户以前的交友偏好,但未必能刻画新的交友需求。
因此,该好友推荐方法在实际应用中无法为用户提供全面推荐结果。
发明内容
有鉴于此,本申请提供一种好友推荐方法和装置,提高了设备处理能力,并能够为用户全面地进行好友推荐。
为解决上述技术问题,本申请的技术方案是这样实现的:
一种好友推荐方法,该方法包括:
从服务器获取目标用户的第一用户关系拓扑和第二用户关系拓扑;所述目标用户的第一用户关系拓扑包括第一用户集合以及所述第一用户集合中各用户之间的好友关系,所述第一用户集合包括所述目标用户以及所述目标用户的1度至Z度好友用户;所述目标用户的第二用户关系拓扑包括第二用户集合以及所述目标用户与所述第二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户以及与所述目标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加为所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的用户;
根据所述目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在第一用户关系子拓扑中至少存在一个1度好友用户;
根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中;
将与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;
将所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
一种好友推荐装置,该装置包括:获取单元、确定单元、处理单元和推荐单元;
所述获取单元,用于从服务器获取目标用户的第一用户关系拓扑和第二用户关系拓扑;所述目标用户的第一用户关系拓扑包括第一用户集合以及所述第一用户集合中各用户之间的好友关系,所述第一用户集合包括所述目标用户以及所述目标用户的1度至Z度好友用户;所述目标用户的第二用户关系拓扑包括第二用户集合以及所述目标用户与所述第二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户以及与所述目标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加为所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的用户;
所述确定单元,用于根据所述获取单元获取目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在第一用户关系子拓扑中至少存在一个1度好友用户;根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中;
所述处理单元,用于将所述确定单元确定的与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;
所述推荐单元,用于将所述处理单元处理的所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
由上面的技术方案可知,本申请中基于由用户和与该用户存在好友关系的用户组成的第一用户关系拓扑,以及由用户和与该用户进行会话的用户组成的第二用户关系拓扑提供好友推荐方法;第一好友关系拓扑为用户长期的交友行为累积下的,反应了用户长期的交友偏好,第二用户关系拓扑由用户近期的交友活动产生,反映用户近期的交友兴趣。通过对这两种拓扑进行挖掘和融合,提高设备处理能力,并能够为用户进行全面的好友推荐。
附图说明
图1为本申请实施例中好友推荐流程示意图;
图2为本申请实施例中表示用户1的第一用户关系拓扑的网络拓扑结构的示意图;
图3为本申请实施例中用户1的一对多的用户关系拓扑示意图;
图4为本申请实施例中用户1的一对一的用关系拓扑示意图;
图5为本申请实施例中为好友推荐中的用户排序流程示意图;
图6为本申请实施例中好友推荐装置结构示意图;
图7为本申请具体实施例中好友推荐设备的硬件架构组成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本申请实施例中为了能更全面地为社交网络系统中用户进行好友推荐,通过基于社交网络系统中的第一用户关系拓扑和第二用户关系拓扑为用户推荐好友。
其中,第一用户关系拓扑为社交网络系统中用户间长期的交友行为累积下的,反应了用户间长期的交友偏好的关系拓扑。该第一用户关系拓扑包括社交网络系统中的各用户以及各用户之间的好友关系信息。具体的,第一用户关系拓扑可以采用网络拓扑结构来表示。该网络拓扑结构包括顶点集合V和边集合E,记为G=(V,E)。其中顶点集合V中的每一个顶点代表社交网络系统中的一个用户。边集合E中的每一条边表示网络拓扑结构中该边所连接的两个顶点所代表的用户之间存在好友关系,且每条边包含了好友分组、好友备注等信息。即当网络拓扑结构中的两个顶点之间存在边时,表示这两个顶点所代表的用户之间存在好友关系;当网络拓扑结构中的两个顶点之间不存在边时,表示这两个顶点所代表的用户之间不存在好友关系。
第二用户关系拓扑为社交网络系统中各用户近期的交友活动产生的,反映各用户间近期的交友兴趣的关系拓扑。该第二用户关系拓扑包括一对多用户关系拓扑和一对一用户关系拓扑。其中一对多用户关系拓扑是指一个用户将消息发送给多个用户的关系拓扑,如群组会话等。该一对多用户关系拓扑包括社交网络系统中的多个用户以及各用户之间的会话信息。一对一用户关系拓扑是指单个用户将消息发送给单个用户的关系拓扑,如一对一会话等。该一对一用户关系拓扑包括社交网络系统中的任意两个用户以及任意两个用户之间的会话信息。
下面结合附图,详细说明本申请实施例中实现好友推荐过程。
参见图1,图1为本申请实施例中好友推荐流程示意图。具体步骤为:
步骤101,设备从服务器上获取目标用户的第一用户关系拓扑和第二用户关系拓扑。
其中,目标用户为社交网络系统中需要向其推荐好友的用户。目标用户可以为社交网络系统中的任意一个用户。
服务器可以是一个服务器,也可以是多个服务器,用于存储第一用户关系拓扑和第二用户关系拓扑。实现本申请设备可以是一台PC,也可以是存储数据信息的服务器,在下文中统称为设备。
目标用户的第一用户关系拓扑包括第一用户集合以及该第一用户集合中各用户之间的好友关系信息。
其中,第一用户集合包括该目标用户以及该目标用户的1度至Z度好友用户。其中,目标用户的1度好友用户是指已被该目标用户添加为好友的用户。
如,社交网络系统QQ中的QQ好友,社交网络系统微信中的微信好友等。该目标用户可以有多个QQ好友,也可以有多个微信好友。目标用户的2度好友用户是指该目标用户的好友的好友用户,依次类推,目标用户的Z度好友用户为该目标用户的Z-1度好友的好友用户。其中,Z为大于1的整数,即本申请实施例中,该目标用户的第一用户集合至少包括该目标用户以及该目标用户的1度至2度好友用户。
该目标用户的第一用户集合中各用户之间的好友关系信息包括第一用户集合中各用户之间的好友关系,以及第一用户集合中各用户之间的好友关系对应的好友分组信息、好友备注信息等。
参见图2,图2为本申请实施例中表示用户1的第一用户关系拓扑的网络拓扑结构的示意图。
图2中,该用户1的第一用户关系拓扑包括第一用户集合和第一用户集合中的各用户之间的好友关系信息,以用户1的1至2度好友构成的第一用户关系拓扑为例。其中,第一用户集合包括用户1、用户1的一度好友用户(包括用户2、用户3和用户4)以及用户1的二度好友用户(包括用户5、用户6、用户7、用户8、用户9和用户10);并且在用户1的1度好友中,用户2和用户3之间互为1度好友;在用户1的2度好友中,用户5和用户6,以及用户9和用户10之间互为1度好友。
在图2所示的用户1的第一用户关系拓扑的网络拓扑结构中,其包括分别代表用户1至用户10的顶点集合V和分别代表用户1至10中的各用户之间的好友关系的边的集合E。一条边表示两个用户之间存在1度好友关系,如用户1和用户3之间的边,表示用户1和用户3之间互为1度好友;用户5和用户6之间的边,表示用户5和用户6之间互为1度好友;边还包含了分组、备注等信息。
本步骤中的目标用户的第二用户关系拓扑包括第二用户集合以及所述目标用户与所述第二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户以及与所述目标用户存在信息交互的用户。
第二用户关系拓扑,包括两类拓扑,第一类拓扑为一对多用户关系拓扑;第二类拓扑为一对一用户关系拓扑。
其中,一对多用户关系拓扑为目标用户与多个用户进行会话的拓扑;如聊天室中的会话,一个用户发送信息,其他用户都能够看到;再比如一个QQ群、微信群等;一个QQ群,或者一个微信群中用户之间进行会话时构成一个一对多用户关系拓扑。
参见图3,图3为本申请实施例中用户1的一对多的用户关系拓扑示意图。
图3中,以用户1所在的一个QQ群为例,该QQ群中包括6个用户,分别为用户1、用户2、用户3、用户4、用户5和用户6。当任一用户发送消息时,该QQ群中的其他用户都会接收到该用户发送的消息,如用户1发送消息,该QQ群中的用户2、用户3、用户4、用户5和用户6都会接收到该消息。
其中,一对一用户关系拓扑为单个用户与单个用户进行会话的拓扑;即两两用户之间会话的拓扑,如QQ聊天中一个用户与其一个好友一对一聊天。
参见图4,图4为本申请实施例中用户1的一对一的用关系拓扑示意图。
图4中,以用户1为目标用户为例,用户1分别与用户2和用户3进行单独会话;用户2分别与用户4、用户5和用户6进行单独会话。
步骤102,该设备根据所述目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;该目标用户在第一用户关系子拓扑中至少存在一个1度好友用户。
本步骤中该设备根据所述目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户,包括:
(1)、假设当该目标用户的第一用户关系拓扑中的所有用户属于不同的第一用户关系子拓扑时,计算目标用户的第一用户关系拓扑的模块度Q;
(2)、确定该目标用户的第一用户关系拓扑中任意两个用户是否属于同一第一用户关系子拓扑:
假设所述两个用户属于同一第一用户关系子拓扑,第一用户关系拓扑中的其它用户属于不同的第一用户关系子拓扑,且均不属于所述两个用户所属的第一用户关系子拓扑时,计算目标用户的第一用户关系拓扑的模块度P;
针对任一用户,将P大于Q,且值最大的P对应的两个用户,确定属于一个第一用户关系子拓扑。
该设备计算目标用户的第一用户关系拓扑的模块度的方法为:
第一用户关系拓扑的模块度为:
其中,Aij为邻接矩阵,若用户i和用户j为1度好友,则Aij=1,否则Aij=0;M为第一用户关系拓扑中两两用户之间互为1度好友的个数;ki为与用户i存在1度好友关系的用户的个数,kj为与用户j存在1度好友关系的用户的个数;Ci为用户i所属的第一用户关系子拓扑,Cj为用户j所属的第一用户关系子拓扑,若Ci=Cj,则δ(Ci,Cj)=1,否则,δ(Ci,Cj)=0;i,j为1到N的整数,N为第一用户关系拓扑中用户的个数。
以目标用户为用户1,用户1对应的第一用户关系拓扑中包括:用户1、用户2、用户3和用户4;
假设用户1和用户2,用户1和用户3,用户1和用户4,以及用户2和用户3计算出的P均大于Q,且针对用户1和用户2计算的P大于用户2和用户3计算出的P,也大于用户1和用户4,以及用户1和用户3计算出的P,则将用户1和用户2确定属于同一用户关系子拓扑;用户3属于一个第一用户关系子拓扑;用户4属于一个用户关系子拓扑。
(3)、当确定出多个第一用户关系子拓扑时,确定所述第一用户关系子拓扑是否能合并,如果是,将能够合并的第一用户关系子拓扑合并。
如上述举例,确定出三个第一用户关系子拓扑,还需确定各第一用户关系子拓扑是否能够合并。
当确定出多个第一用户关系子拓扑时,确定所述第一用户关系子拓扑是否能合并,包括:
当所有第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度W;
通过以下方法确定所述多个第一用户关系子拓扑中任意两个第一用户关系子拓扑是否能合并:
当所述两个第一用户关系子拓扑能够合并,其它第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度R;
将R大于W,且值最大的R对应的两个第一用户关系子拓扑确定为能合并。
如果进行上述步骤处理后,还存在多个第一用户关系子拓扑时,再进行迭代,确定当前确定的各第一用户关系子拓扑是否能合并,直到确定出一个第一用户关系子拓扑,或者确定出的所有第一用户关系子拓扑均不能再合并。
上述设备计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度的方法为:
第一用户关系拓扑的模块度为:
其中,Ahl为邻接矩阵,若第一用户关系子拓扑h中的用户和第一用户关系子拓扑l中的用户至少存在一对用户为1度好友,则Ahl=1,否则Ahl=0;M为第一用户关系拓扑中两两用户之间互为1度好友的个数;kh为第一用户关系子拓扑h中所有用户的1度好友去重后的1度好友的总个数;kl为第一用户关系子拓扑l中所有用户的1度好友去重后的1度好友的总个数;Ch为第一用户关系子拓扑h,Cl为第一用户关系子拓扑l,若Ch=Cl,则δ(Ch,Cl)=1,否则,δ(Ch,Cl)=0;h,l为1到T的整数,T为第一用户关系子拓扑的个数。
以第(2)步对应的举例中确定出的三个第一用户关系子拓扑为例,分别记为第一用户关系子拓扑1(包括用户1和用户2)、第一用户关系子拓扑2(包括用户3)和第一用户关系子拓扑3(包括用户4)。以h为1,l为2为例,用户1或用户2,与用户3为1度好友时,则A12=1,否则A12=0。k1为用户1和用户2的1度好友去重后的1度好友的总个数,如用户1的1度好友为用户2和用户3,用户2的1度好友为用户3和用户4,则k1为2。
仍然以第(2)步对应的举例中确定出的三个第一用户关系子拓扑为例,若确定第一用户关系子拓扑1和第一用户关系子拓扑2能够合并,且进一步确定合并后的第一用户关系子拓扑和第一用户关系子拓扑3不能合并,则最终确定出两个第一用户关系子拓扑,一个第一用户关系子拓扑包括用户1、用户2和用户3;另一个第一用户关系子拓扑包括用户4。
因此,针对用户1,确定用户2和用户3与用户1属于同一第一用户关系子拓扑。
步骤103,该设备根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中。
由于第二用户关系拓扑包括两类拓扑,因此,针对目标用户分别计算在两类拓扑中的沟通序列,若在两类拓扑中均计算出沟通序列,则将这两类拓扑中计算出的沟通序列合并作为该目标用户的沟通序列。
下面详细描述沟通序列的确定过程:
首先,在第一预设时间内,针对目标用户的一对多用户关系拓扑确定沟通序列;目标用户与所述第二用户集合中的各用户之间的会话信息包括:发布信息的用户的名称,以及发布信息的时间。
确定沟通序列的过程具体如下:
在第一预设时间内,目标用户可能参与了多个群的会话,则先针对每个群的会话进行如下处理:
根据会话消息的发送时间,将发送两条相邻消息的时间间隔小于第二预设时间的会话消息划分到一个会话段,将参与该会话段的用户划分到同一沟通序列中;若该用户参与多个会话段,则将该用户的多个会话段对应的沟通序列合并作为该目标用户针对一对多用户关系拓扑确定的沟通序列。
若该用户参与了多个群的会话,则将针对各个群确定的沟通序列再合并为一个沟通序列作为该目标用户针对一对多用户关系拓扑确定的沟通序列。
根据每个会话段生成一个沟通序列,如一个会话段由用户A发起,即用户A发布第一条会话消息;接下来,用户B发送会话消息;然后用户A发送会话消息,最后用户C发送会话消息;则针对该会话段的沟通序列为(A,B,A,C)。
若针对一对多用户关系拓扑,用户A的第一个会话段对应的沟通序列为(A,B,A,C),第二个会话段对应的沟通序列为(A,D,C,C);则针对用户A在一对多用户关系拓扑中的沟通序列为这两个沟通序列的并集,如合并后的沟通序列为(A,B,A,C;A,D,C,C)。
若针对用户A在第一预设时间内参与了两个群的会话,针对第一群的沟通序列为(D,A、C,C),针对第二个群的会话序列为(A,D,C),则确定用户A在第一预设时间内的沟通序列为(D,A、C,C,A,D,C)。
在合并沟通序列时,可以随机选择将哪个沟通序列放在序列的前段或后段,也可以配置规则,按配置的规则按顺序放置各沟通序列到一个沟通序列中。
其次,在第一预设时间内,针对一对一用户关系拓扑确定沟通序列。
针对一对一用户关系拓扑,目标用户与第二用户集合中的各用户之间的会话信息包括:收、发会话消息的用户的名称,进行会话的两个用户发送会话消息的次数。
仍然以图4为例,图4所示的拓扑中,目标用户与第二集合中的各用户之间的会话信息包括:收、发会话消息的用户的名称为用户1和用户2时,发送会话消息的次数为5;收发会话消息的用户的名称为用户1和用户3时,发送会话消息的次数为10;收、发会话消息的用户的名称为用户2和用户4时,发送会话消息的次数为3;收、发会话消息的用户名称为用户2和用户5时,发送会话消息的次数为5;收、发会话消息的用户名称为用户2和用户6时,发送会话消息的次数为10。
针对一对一用户关系拓扑中的各用户的沟通序列生成的方式为,以所述各用户为初始遍历点,采用随机游走的方式生成所述各用户的沟通序列。
针对一对一用户关系拓扑中的目标用户确定沟通序列的具体过程如下:
以目标用户作为初始遍历点;分别确定选择将各其它用户作为下一个遍历点的概率,其中,将该目标用户与任一其它用户发送会话消息的次数在总会话消息的次数中所占百分率作为选择该其它用户作为下一个遍历点的概率,并按照各其它用户作为下一个遍历点的概率选择作为下一遍历点的用户,直到曾作为遍历点的用户数达到预设用户个数,将各曾作为遍历点的用户组成集合,作为该目标用户的沟通序列。
如以用户A为初始遍历点,与用户A进行会话的用户为用户B、C、D,且分别发送会话消息的次数为50、20、30,则针对用户B,确定用户B作为下一遍历点的概率为50%,针对用户C,确定用户C作为下一遍历点的概率为20%,针对用户D,确定用户D作为下一遍历点的概率为30%,则按照各用户作为下一遍历点的概率选择作为下一遍历点的用户。
假设选择用户D作为下一遍历起点,与用户D进行会话的用户为用户E、F、A,则分别确定用户E、F、A作为下一遍历点的概率,以此类推,直到作为遍历点的用户达到预设用户个数,如10,则结束遍历,将这10个遍历点对应的用户组成一个集合,作为用户A的沟通序列。
最后,针对目标用户,将该目标用户针对一对多用户关系拓扑和一对一用户关系拓扑确定的沟通序列合并,作为该目标用户针对第二用户关系拓扑确定的沟通序列。
本实施例中,第一预设时间大于第二预设时间;第一预设时间为标识获取第二用户关系拓扑的时间段,如最近一天、一周等时间。
步骤102和步骤103在执行过程中不区分先后顺序。
步骤104,该设备将与该目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集。
步骤105,该设备将所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
通过上述实现方式,在确定好友推荐集时,考虑了第一用户关系拓扑和第二用户关系拓扑,即既考虑了用户长期的兴趣爱好,也考虑了近期的兴趣爱好,能够更全面地为用户推荐好友。
通过上述方式可以看出,通常为用户推荐的好友不止一个,有时候还会很多,由于通常情况下用户关注排序靠前的用户,或者由于页面显示关系,不能全在一个界面上显示,因此,将推荐的好友按照系统认为比较优质的好友,即用户可能接收推荐的用户,进行排序,并将优质的好友优先推荐给用户变得尤为重要。
下面结合附图,给出本申请提供的为好友推荐集中的用户排序的过程。
设备根据实际应用为用户的各特征配置权重值。
参见图5,图5为本申请实施例中为好友推荐中的用户排序流程示意图。具体步骤为:
步骤501,设备将第一用户关系子拓扑中出现次数最多的关系类型作为该第一用户关系子拓扑的属性,为该属性配置属性值,并将该属性值作为对应的第一好友候选集中的各用户的第一特征的特征值。
在第一用户关系拓扑中,存在边的关系的用户,会包含分组、备注等信息,分组中如同学、同事等关系类型。
该设备通过语义识别抽取其中包含的关系类型,将一个第一用户关系子拓扑中出现次数最多的关系类型,作为该第一用户关系子拓扑的属性,并根据实际需要为该属性配置属性值,如实际应用中认为同学这种关系类型更重要,则为该种关系类型配置值大的属性值;否则,配置值小的属性值。
步骤502,该设备确定第一用户关系子拓扑中各用户与该第一用户关系子拓扑的关系紧密程度,为各用户与该第一用户关系子拓扑的关系紧密程度配置紧密关系程度值,将各用户对应的紧密关系程度值作为对应第一好友候选集中的对应用户的第二特征值。
本步骤中确定第一用户关系子拓扑中各用户与该第一用户关系子拓扑的关系紧密程度,包括:
任一用户与对应第一用户关系子拓扑中的用户存在共同好友的个数;或与第一用户关系子拓扑中的用户之间的发送会话消息的次数作为该第一用户关系子拓扑中对应用户与该第一用户关系子拓扑的关系紧密程度。
在具体实现时,可以将共同好友个数多的、发送会话消息的次数多的用户与该第一用户关系子拓扑的紧密关系程度值配置的大一些。
步骤503,该设备将第二好友候选集中的用户在各沟通序列中作为发起人的次数作为该用户的第三特征值。
在一个沟通序列中,这里的沟通序列指针对每个会话段的沟通序列,第一个发送会话消息的用户作为该沟通序列的发起人。
步骤504,针对任一用户,该设备确定该用户与其第二好友候选集中的用户的相似度,并将确定的相似度作为第二候选集中对应用户的第四特征值。
本步骤中确定该用户与其第二好友候选集中的用户的相似度,包括:
通过对第二好友候选集采用预设算法,如Word2Vec算法,进行训练,获得每个用户的向量,根据每个用户的向量计算两个用户的相似度,如使用点积的方式计算两个用户的相似度。
步骤505,针对一个好友推荐集中的各用户使用特征值加权求和获得用户的序列值,该设备按照序列值从大到小的顺序排列各用户,并在推荐好友时按照排列顺序推荐。
该设备还可以根据当前实际应用情况,确定是否获取新的数据信息,来重新确定推荐好友集;也可以通过上线用户选择推荐好友的反馈信息来确定是否重新确定好友推荐集,或者好友推荐集中用户的排列顺序。
该设备根据上线用户选择推荐好友的反馈信息,即用户添加哪些用户为好友,或者用户一直未使用该种推荐,未添加任何好友;若确定当前推荐的好友被用户选择添加为好友的概率小于预设值,重新为用户的各特征值配置权重,并重新计算各用户的序列值,按重新计算的序列值排列各用户,并使用重新排列的顺序推荐给用户。
本申请实施例中通过对好友推荐集中的用户按照在第一用户关系拓扑和第二用户关系拓扑中的特征属性,按预设规则对各用户进行排序,从而能够更精确地为用户推荐好友。
基于同样的发明构思,本申请实施例中还提出一种好友推荐装置。参见图6,图6为本申请实施例中好友推荐装置结构示意图。该装置包括:获取单元601、确定单元602、处理单元603和推荐单元604;
获取单元601,用于从服务器获取目标用户的第一用户关系拓扑和第二用户关系拓扑;所述目标用户的第一用户关系拓扑包括第一用户集合以及所述第一用户集合中各用户之间的好友关系,所述第一用户集合包括所述目标用户以及所述目标用户的1度至Z度好友用户;所述目标用户的第二用户关系拓扑包括第二用户集合以及所述目标用户与所述第二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户以及与所述目标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加为所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的用户;
确定单元602,用于根据获取单元601获取目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在第一用户关系子拓扑中至少存在一个1度好友用户;根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中;
处理单元603,用于将确定单元602确定的与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;
推荐单元604,用于将处理单元603处理的所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
较佳地,
确定单元602,具体用于根据所述目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户时:当所述目标用户的第一用户关系拓扑中的所有用户属于不同的第一用户关系子拓扑时,计算所述第一用户关系拓扑的模块度Q;通过以下方法确定第一用户关系拓扑中任意两个用户是否属于同一第一用户关系子拓扑:所述两个用户属于同一第一用户关系子拓扑,第一用户关系拓扑中的其它用户属于不同的第一用户关系子拓扑,且均不属于所述两个用户所属的第一用户关系子拓扑时,计算目标用户的第一用户关系拓扑的模块度P;针对任一用户,将P大于Q,且值最大的P对应的两个用户,确定属于一个第一用户关系子拓扑;当确定出多个第一用户关系子拓扑时,确定所述第一用户关系子拓扑是否能合并,如果是,将能合并的第一用户关系子拓扑合并;直到确定出一个第一用户关系子拓扑,或者确定出的所有第一用户关系子拓扑均不能再合并。
较佳地,
确定单元602,具体用于当确定出多个第一用户关系子拓扑时,确定所述多个第一用户关系子拓扑是否能合并时:当所有第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度W;通过以下方法确定所述多个第一用户关系子拓扑中任意两个第一用户关系子拓扑是否能合并:当所述两个第一用户关系子拓扑能够合并,其它第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度R;将R大于W,且值最大的R对应的两个第一用户关系子拓扑确定为能合并。
较佳地,
确定单元602,具体用于根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中时,针对一对多用户关系拓扑,在第一预设时间内,根据信息的发送时间,根据会话消息的发送时间,将发送两条相邻消息的时间间隔小于第二预设时间的会话消息划分到一个会话段,将参与该会话段的用户划分到同一沟通序列中;若该用户参与多个会话段,则将该用户的多个会话段对应的沟通序列合并作为该目标用户针对一对多用户关系拓扑确定的沟通序列;其中,第一预设时间大于第二预设时间;目标用户与所述第二用户集合中的各用户之间的会话信息包括:发布信息的用户的名称,以及发布信息的时间;针对一对一用户关系拓扑,在第一预设时间内,以所述目标用户为初始遍历点,采用随机游走的方式生成该目标用户的沟通序列;将该目标用户针对一对多用户关系拓扑和一对一用户关系拓扑生成的沟通序列合并,作为该目标用户的第二用户关系拓扑的沟通序列,其中,所述第二用户关系拓扑包括:一对多用户关系拓扑和一对一用户关系拓扑。
较佳地,
确定单元602,进一步用于若该用户参与多个群的会话,则将针对各群的会话确定沟通序列合并为一个沟通序列,作为该目标用户的针对一对多用户关系拓扑确定的沟通序列。
较佳地,
确定单元602,具体用于以所述目标用户为初始遍历点,采用随机游走的方式生成该目标用户的沟通序列时:以所述目标用户作为初始遍历点;分别确定选择将各其它用户作为下一个遍历点的概率,其中,将该目标用户与任一其它用户发送会话消息的次数在总会话消息的次数中所占百分率作为选择该其它用户作为下一个遍历点的概率,并按照各其它用户作为下一个遍历点的概率选择作为下一遍历点的用户,直到曾作为遍历点的用户数达到预设用户个数,将各曾作为遍历点的用户组成集合,作为该目标用户的沟通序列。
较佳地,
确定单元602,进一步用于将第一用户关系子拓扑中出现次数最多的关系类型作为该第一用户关系子拓扑的属性,为该属性配置属性值,并将该属性值作为对应的第一好友候选集中的各用户的第一特征的特征值;确定第一用户关系子拓扑中各用户与该第一用户关系子拓扑的关系紧密程度,为各用户与该第一用户关系子拓扑的关系紧密程度配置紧密关系程度值,将各用户对应的紧密关系程度值作为对应第一好友候选集中的对应用户的第二特征值;第二好友候选集中的用户在各会话集中作为发起人的次数作为该用户的第三特征值;针对任一用户,确定该用户与其第二好友候选集中的用户的相似度,并将确定的相似度作为第二候选集中对应用户的第四特征值;
推荐单元604,进一步用于为用户的各特征配置权重值;针对一个好友推荐集中的各用户使用确定单元602确定的特征值加权求和获得用户的序列值,按照序列值从大到小的顺序排列各用户,并在推荐好友时按照排列顺序推荐。
较佳地,
确定单元602,具体用于确定第一用户关系子拓扑中各用户与该第一用户关系子拓扑的关系紧密程度时,任一用户与对应第一用户关系子拓扑中的用户存在共同好友的个数;或与第一用户关系子拓扑中的用户之间的信息交互次数作为该第一用户关系子拓扑中对应用户与该第一用户关系子拓扑的关系紧密程度;确定该用户与其第二好友候选集中的用户的相似度时,通过对第二好友候选集采用预设算法进行训练,获得每个用户的向量,根据每个用户的向量计算两个用户的相似度。
较佳地,
推荐单元604,进一步用于通过上线用户选择推荐好友的反馈信息,若确定当前推荐的好友被用户选择添加为好友的概率小于预设值,重新为用户的各特征值配置权重,并重新计算各用户的序列值,按重新计算的序列值排列各用户,并使用重新排列的顺序推荐给用户。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
本申请各实施例中的各单元可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
以上对本申请具体实施例中的好友推荐装置进行了说明,下面给出本申请具体实施例中好友推荐装置所在设备的硬件架构组成,该设备可称为好友推荐设备,该好友推荐设备是可以软硬件结合的可编程设备,具体参见图7,图7为本申请具体实施例中好友推荐设备的硬件架构组成示意图。该设备可包括:处理器710,存储器720,端口730以及总线740。处理器710和存储器720通过总线740互联。处理器710可通过端口730获取和输出数据;其中,
获取单元601被处理器710执行时可以为服务器获取目标用户的第一用户关系拓扑和第二用户关系拓扑;所述目标用户的第一用户关系拓扑包括第一用户集合以及所述第一用户集合中各用户之间的好友关系,所述第一用户集合包括所述目标用户以及所述目标用户的1度至Z度好友用户;所述目标用户的第二用户关系拓扑包括第二用户集合以及所述目标用户与所述第二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户以及与所述目标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加为所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的用户;
确定单元602被处理器710执行时可以为:根据获取单元601获取目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在第一用户关系子拓扑中至少存在一个1度好友用户;根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中;
处理单元603被处理器710执行时可以为:将确定单元602确定的与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;
推荐单元604被处理器610执行时可以为:将处理单元603处理的所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
由此可以看出,当存储在存储器720中的指令模块被处理器710执行时,可实现前述技术方案中获取单元、确定单元、处理单元和推荐单元的各种功能。
另外,本发明的实施例中可以通过由设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和/或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此,本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述技术方案。
需要说明的是,图7所示的设备只是一个具体的例子,也可以通过其他的与本实施例描述不同结构实现,例如,执行上述指令代码时所完成的操作,也可以由特定应用专用集成电路(ASIC)实现。另外,上述的处理器710可以是一个或多个,如果是多个,则由多个处理器共同负责读取和执行所述指令代码。因此,本申请对设备的具体结构不作具体限定。
综上所述,本申请在确定好友推荐集时,考虑了第一用户关系拓扑和第二用户关系拓扑的数据信息,即既考虑了用户长期的兴趣爱好,也考虑了近期的兴趣爱好,能够更全面地为用户推荐好友。
本申请实施例中还通过对好友推荐集中的用户按照在第一用户关系拓扑和第二用户关系拓扑中的特征属性,按预设规则对各用户进行排序,从而能够更精确地为用户推荐好友。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (20)
1.一种好友推荐方法,其特征在于,该方法包括:
从服务器获取目标用户的第一用户关系拓扑和第二用户关系拓扑;所述目标用户的第一用户关系拓扑包括第一用户集合以及所述第一用户集合中各用户之间的好友关系,所述第一用户集合包括所述目标用户以及所述目标用户的1度至Z度好友用户;所述目标用户的第二用户关系拓扑包括第二用户集合以及所述目标用户与所述第二用户集合中的各用户之间的会话信息,所述第二用户集合包括所述目标用户以及与所述目标用户存在信息交互的用户;其中,Z为大于1的整数;目标用户的1度好友用户为已添加为所述目标用户好友的用户,目标用户的2到Z度好友用户为未添加为所述目标用户好友的用户;
根据所述目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户;所述目标用户在第一用户关系子拓扑中至少存在一个1度好友用户;
根据所述目标用户的第二用户关系拓扑将与该目标用户参与同一会话的用户划分到该目标用户的沟通序列中;
将与所述目标用户属于同一第一用户关系子拓扑,且未添加为所述目标用户的好友的用户组成第一好友候选集;将与所述目标用户属于同一沟通序列,且未添加为所述目标用户的好友的用户组成第二好友候选集;
将所述第一好友候选集和第二好友候选集合并,作为所述目标用户的好友推荐集,并推荐给所述目标用户。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标用户的第一用户关系拓扑确定与所述目标用户属于同一第一用户关系子拓扑的用户,包括:
当所述目标用户的第一用户关系拓扑中的所有用户属于不同的第一用户关系子拓扑时,计算所述第一用户关系拓扑的模块度Q;
通过以下方法确定第一用户关系拓扑中任意两个用户是否属于同一第一用户关系子拓扑:
所述两个用户属于同一第一用户关系子拓扑,第一用户关系拓扑中的其它用户属于不同的第一用户关系子拓扑,且均不属于所述两个用户所属的第一用户关系子拓扑时,计算目标用户的第一用户关系拓扑的模块度P;
针对任一用户,将P大于Q,且值最大的P对应的两个用户,确定属于一个第一用户关系子拓扑;
当确定出多个第一用户关系子拓扑时,确定所述第一用户关系子拓扑是否能合并,如果是,将能合并的第一用户关系子拓扑合并;
直到确定出一个第一用户关系子拓扑,或者确定出的所有第一用户关系子拓扑均不能再合并。
3.根据权利要求2所述的方法,其特征在于,计算目标用户的第一用户关系拓扑的模块度的方法为:
第一用户关系拓扑的模块度为:
其中,Aij为邻接矩阵,若用户i和用户j为1度好友,则Aij=1,否则Aij=0;M为第一用户关系拓扑中两两用户之间互为1度好友的个数;ki为与用户i存在1度好友关系的用户的个数,kj为与用户j存在1度好友关系的用户的个数;Ci为用户i所属的第一用户关系子拓扑,Cj为用户j所属的第一用户关系子拓扑,若Ci=Cj,则δ(Ci,Cj)=1,否则,δ(Ci,Cj)=0;i,j为1到N的整数,N为第一用户关系拓扑中用户的个数。
4.根据权利要求2所述的方法,其特征在于,所述当确定出多个第一用户关系子拓扑时,确定所述多个第一用户关系子拓扑是否能合并,包括:
当所有第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度W;
通过以下方法确定所述多个第一用户关系子拓扑中任意两个第一用户关系子拓扑是否能合并:
当所述两个第一用户关系子拓扑能够合并,其它第一用户关系子拓扑均不能合并时,计算第一用户关系子拓扑对应的第一用户关系拓扑的模块度R;
将R大于W,且值最大的R对应的两个第一用户关系子拓扑确定为能合并。
5.根据权利要求4所述的方法,其特征在于,所述计算所述第一用户关系拓扑的模块度的方法为:
第一用户关系拓扑的模块度为:
其中,Ahl为邻接矩阵,若第一用户关系子拓扑h中的用户和第一用户关系子拓扑l中的用户至少存在一对用户为1度好友,则Ahl=1,否则Ahl=0;M为第一用户关系拓扑中两两用户之间互为1度好友的个数;kh为第一用户关系子拓扑h中所有用户的1度好友去重后的1度好友的总个数;kl为第一用户关系子拓扑l中所有用户的1度好友去重后的1度好友的总个数;Ch为第一用户关系子拓扑h,Cl为第一用户关系子拓扑l,若Ch=Cl,则δ(Ch,Cl)=1,否则,δ(Ch,Cl)=0;h,l为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所述的装置,其特征在于,
所述推荐单元,进一步用于通过上线用户选择推荐好友的反馈信息,若确定当前推荐的好友被用户选择添加为好友的概率小于预设值,重新为用户的各特征值配置权重,并重新计算各用户的序列值,按重新计算的序列值排列各用户,并使用重新排列的顺序推荐给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610296601.0A CN106021325B (zh) | 2016-05-06 | 2016-05-06 | 一种好友推荐方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610296601.0A CN106021325B (zh) | 2016-05-06 | 2016-05-06 | 一种好友推荐方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106021325A true CN106021325A (zh) | 2016-10-12 |
CN106021325B CN106021325B (zh) | 2020-07-28 |
Family
ID=57082217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610296601.0A Active CN106021325B (zh) | 2016-05-06 | 2016-05-06 | 一种好友推荐方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106021325B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570082A (zh) * | 2016-10-19 | 2017-04-19 | 浙江工业大学 | 一种结合网络拓扑特征和用户行为特征的朋友关系挖掘方法 |
CN107609063A (zh) * | 2017-08-29 | 2018-01-19 | 重庆邮电大学 | 一种多标签分类的手机应用推荐系统及其方法 |
CN109446171A (zh) * | 2017-08-30 | 2019-03-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540739A (zh) * | 2009-04-14 | 2009-09-23 | 腾讯科技(深圳)有限公司 | 用户推荐方法及用户推荐系统 |
CN103049496A (zh) * | 2012-12-07 | 2013-04-17 | 北京百度网讯科技有限公司 | 一种对多个用户进行用户群划分的方法、装置与设备 |
CN103678531A (zh) * | 2013-12-02 | 2014-03-26 | 三星电子(中国)研发中心 | 好友推荐方法和装置 |
US20140365484A1 (en) * | 2013-03-15 | 2014-12-11 | Daniel Freeman | Comprehensive user/event matching or recommendations based on awareness of entities, activities, interests, desires, location |
CN104601438A (zh) * | 2014-04-28 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 一种好友推荐方法和装置 |
-
2016
- 2016-05-06 CN CN201610296601.0A patent/CN106021325B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540739A (zh) * | 2009-04-14 | 2009-09-23 | 腾讯科技(深圳)有限公司 | 用户推荐方法及用户推荐系统 |
CN103049496A (zh) * | 2012-12-07 | 2013-04-17 | 北京百度网讯科技有限公司 | 一种对多个用户进行用户群划分的方法、装置与设备 |
US20140365484A1 (en) * | 2013-03-15 | 2014-12-11 | Daniel Freeman | Comprehensive user/event matching or recommendations based on awareness of entities, activities, interests, desires, location |
CN103678531A (zh) * | 2013-12-02 | 2014-03-26 | 三星电子(中国)研发中心 | 好友推荐方法和装置 |
CN104601438A (zh) * | 2014-04-28 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 一种好友推荐方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570082A (zh) * | 2016-10-19 | 2017-04-19 | 浙江工业大学 | 一种结合网络拓扑特征和用户行为特征的朋友关系挖掘方法 |
CN106570082B (zh) * | 2016-10-19 | 2019-11-05 | 浙江工业大学 | 一种结合网络拓扑特征和用户行为特征的朋友关系挖掘方法 |
CN107609063A (zh) * | 2017-08-29 | 2018-01-19 | 重庆邮电大学 | 一种多标签分类的手机应用推荐系统及其方法 |
CN107609063B (zh) * | 2017-08-29 | 2020-03-17 | 重庆邮电大学 | 一种多标签分类的手机应用推荐系统及其方法 |
CN109446171A (zh) * | 2017-08-30 | 2019-03-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和装置 |
CN109446171B (zh) * | 2017-08-30 | 2022-03-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106021325B (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2880737C (en) | A user recommendation method and a user recommendation system using the same | |
CN108985309B (zh) | 一种数据处理方法以及装置 | |
CN104090967B (zh) | 应用程序推荐方法及推荐装置 | |
US9947060B2 (en) | Information matching and match validation | |
US20100268719A1 (en) | Method and apparatus for providing anonymization of data | |
CN105528407B (zh) | 一种获取l个具有最佳传播影响力用户的方法和装置 | |
CN106878415B (zh) | 数据消费的负载均衡方法及装置 | |
WO2014080304A2 (en) | Multi-objective server placement determination | |
CN110224859B (zh) | 用于识别团伙的方法和系统 | |
CN106021325B (zh) | 一种好友推荐方法和装置 | |
CN108985954B (zh) | 一种建立各标识的关联关系的方法以及相关设备 | |
WO2014194642A1 (en) | Systems and methods for matching users | |
CN110677267B (zh) | 信息处理方法和装置 | |
US9235865B1 (en) | Identifying influencers using social information | |
US20150278909A1 (en) | Techniques for improving diversity and privacy in connection with use of recommendation systems | |
US20190197633A1 (en) | Social media account filtering method and apparatus | |
CN105391614A (zh) | 消息的处理方法和装置 | |
CN113706240A (zh) | 订单排序的方法和装置、电子设备和存储介质 | |
CN110659425B (zh) | 一种资源分配方法、装置、电子设备及可读存储介质 | |
CN111178678B (zh) | 基于社团影响力的网络节点重要性评估方法 | |
CN111159577B (zh) | 一种社群划分方法、装置、存储介质及电子装置 | |
CN116431282A (zh) | 一种云虚拟主机服务器管理方法、装置、设备及存储介质 | |
CN108090193B (zh) | 异常文本的识别方法和装置 | |
CN110225102A (zh) | 推送信息的方法、设备及系统 | |
CN109033190A (zh) | 一种推荐信息的推送方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |