CN103678531B - 好友推荐方法和装置 - Google Patents
好友推荐方法和装置 Download PDFInfo
- Publication number
- CN103678531B CN103678531B CN201310634770.7A CN201310634770A CN103678531B CN 103678531 B CN103678531 B CN 103678531B CN 201310634770 A CN201310634770 A CN 201310634770A CN 103678531 B CN103678531 B CN 103678531B
- Authority
- CN
- China
- Prior art keywords
- node
- social
- user
- complex network
- sequence
- 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.)
- Active
Links
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/903—Querying
- G06F16/90335—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了好友推荐方法和装置。该方法应用于服务器端,包括:A,构建包含多个节点的社交复杂网络,在所述社交复杂网络中,每一节点对应一个用户,且两个节点之间如果有连边,则表示该两个节点对应的用户之间有社交行为;B,接收待推荐好友的目标用户发送的推荐请求,在所述社交复杂网络中识别所述目标用户对应的目标节点;C,依据所述社交复杂网络分析与所述目标节点具有连边和/或可能具有连边的节点,将分析出的至少一个节点作为待推荐的好友推荐给所述目标用户。采用本发明,能够避开用户注册的个人背景信息,通过分析社交复杂网络推荐用户社交意义上的潜在好友。
Description
技术领域
本申请涉及网络技术,特别涉及好友推荐方法和装置。
背景技术
随着互联网,通信技术的飞速发展,人们彼此间沟通共享信息的渠道也变得越来越快捷且丰富多彩。短信,邮件,博客,微信等各种交友平台成为人们社交的主要媒介,用户在这些社交媒介上的社交行为构成了巨大的复杂网络-社交网络。
基于社交网络的不断发展,好友推荐也由此得到蓬勃发展。目前,常用的好友推荐方法中,常用的方法包括:
方法1,针对用户初始注册的个人资料信息来推荐好友的,这里,用户初始注册的个人资料信息可包括教育背景,工作环境,个人兴趣等信息;
方法2,按照如下方法推荐目标是好友的好友,或距离用户当前位置较近的用户群。
在以上好友推荐方法中,方法1由于用户注册的个人资料信息本身的不准确行性,在很大程度上推荐的未必真的是用户社交意义上的潜在好友,而方法2也不能真正实现推荐的好友是用户社交意义上的潜在好友。
发明内容
本申请提供了好友推荐方法和装置,用于推荐用户社交意义上的潜在好友。
本申请提供的技术方案包括:
一种好友推荐方法,该方法应用于服务器端,包括:
A,构建包含多个节点的社交复杂网络,在所述社交复杂网络中,每一节点对应一个用户,且两个节点之间如果有连边,则表示该两个节点对应的用户之间有社交行为;
B,接收待推荐好友的目标用户发送的推荐请求,在所述社交复杂网络中识别所述目标用户对应的目标节点;
C,依据所述社交复杂网络分析与所述目标节点具有连边和/或可能具有连边的节点,将分析出的至少一个节点作为待推荐的好友推荐给所述目标用户。
一种好友推荐装置,该装置应用于服务器端,包括:
网络模块,用于构建包含多个节点的社交复杂网络,在所述社交复杂网络中,每一节点对应一个用户,且两个节点之间如果有连边,则表示该两个节点对应的用户之间有社交行为;
接收模块,用于接收待推荐好友的目标用户发送的推荐请求,在所述社交复杂网络中识别所述目标用户对应的目标节点;
推荐模块,用于依据所述社交复杂网络分析与所述目标节点具有连边和/或可能具有连边的节点,将分析出的至少一个节点作为待推荐的好友推荐给所述目标用户。
由以上技术方案可以看出,本发明中,通过构建社交复杂网络,分析出与所述目标节点具有连边和/或可能具有连边的节点作为目标用户的潜在好友户推荐给目标用户。
附图说明
图1为本发明实施例提供的方法流程图;
图2为本发明实施例提供的社交复杂网络构建流程图;
图3为本发明实施例提供的本地社交信息库存储用户社交信息日志的流程图;
图4为本发明实施例提供的装置结构图。
具体实施方式
本发明提供的方法能够避免用户的个人背景信息,预测潜在的用户好友关系指导用户推荐。
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
参见图1,图1为本发明实施例提供的方法流程图。该方法应用于服务器端,主要可包括以下步骤:
步骤101,构建包含多个节点的社交复杂网络。
其中,在构建的所述社交复杂网络中,每一用户通过一个对应的节点表示,且两个节点之间如果有连边,则表示该两个节点对应的用户之间有社交行为。这里的社交行为包括但不限于主页访问、留言、通话、短信等行为。
作为本发明的一个实施例,图2具体示出了如何构建包含多个节点的社交复杂网络,这里不再赘述。
步骤102,接收待推荐好友的目标用户发送的推荐请求,在所述社交复杂网络中识别所述目标用户对应的目标节点。
本发明中,当一个用户需要推荐好友时,其就会作为待推荐好友的目标用户向服务器端发送推荐请求。
步骤103,依据所述社交复杂网络分析出与所述目标节点具有连边和/或可能具有连边的节点,将分析出的至少一个节点作为待推荐的好友推荐给所述目标用户。
至此,完成图1所示的流程。
从图1所示流程可以看出,本发明通过构建社交复杂网络,分析出与所述目标节点具有连边和/或可能具有连边的节点作为目标用户的潜在好友户推荐给目标用户。
下面对本发明如何构建社交复杂网络进行描述。
由于整个社交复杂网络内的数据量可能很大,为了提高效率,作为本发明的一个实施例,本发明中,并非在每次接收到待推荐好友的目标用户发送的推荐请求时重新构建一个新的社交复杂网络,而是根据社交网络活跃程度预先设定一个构建频率(例如2个月),按照设定的构建频率构建社交复杂网络,并用新构建的社交复杂网络更新之前的社交复杂网络。
优选地,作为本发明的另一个实施例,本发明中,也可不预先设定构建频率,而是当基于客户端的主动要求构建社交复杂网络并用新构建的社交复杂网络更新之前的社交复杂网络。
或者,本发明中,利用预先设定构建频率和基于客户端的主动要求相结合的方式构建社交复杂网络,具体是:当客户端主动要求重新构建复杂网络时,立即重新构建社交复杂网络,并用新构建的社交复杂网络更新之前的社交复杂网络,而当客户端不主动要求重新构建复杂网络时,自动地按照预设的构建频率重新构建社交复杂网络,并用新构建的社交复杂网络更新之前的社交复杂网络。
其中,在构建社交复杂网络时,可参见图2所示流程:
参见图2,图2为本发明实施例提供的社交复杂网络构建流程图。如图2所示,该流程可包括以下步骤:
步骤201,依据构建社交复杂网络的规划,从本地社交信息库中抽取满足所述规划的用户社交信息日志。
通常,当构造一个社交复杂网络时,会预先有一个规划,比如,社交复杂网络需要的数据量,基于此,本步骤201依据该规划,从本地社交信息库中抽取最新的、且满足该规划的用户社交信息日志。
步骤202,按照社交复杂网络的要求对抽取的用户社交信息日志进行数据预处理。
通常,当规划构造一个社交复杂网络时,也会要求社交复杂网络需要的数据格式等,基于此,本步骤202就按照社交复杂网络的要求对抽取的用户社交信息日志进行数据预处理。
作为本发明的一个实施例,这里的数据预处理主要包括:格式转换、数据清洗等,具体实现时完全按照上述的要求执行。
步骤203,从预处理后的用户社交信息日志中统计出具有社交行为的用户对。
这里,所谓用户对,其具体包含了两个用户。
步骤204,按照以下原则构建社交复杂网络:将每一用户对中的用户对应至社交复杂网络的节点、且每一用户对对应的节点之间有连边。
至此,通过图2所示的步骤201至步骤204即可完成社交复杂网络的构建。
需要说明的是,在本发明中,服务器端中的本地社交信息库如何实现存储用户社交信息日志,其主要是通过与客户端的交互实现的,下面通过图3进行描述:
参见图3,图3为本发明实施例提供的本地社交信息库存储用户社交信息日志的流程图。如图3所示,该流程可包括以下步骤:
步骤301,客户端在检测到新的社交行为时,将该新的社交行为对应的用户社交信息日志转换成可传输的格式,并提交至服务器端。
这里,新的社交行为对应的用户社交信息日志一般只记录了该新的社交行为发生的起始时间、涉及的用户双方等。
作为本发明的一个实施例,这里可传输的格式可为json字符串,也即,本步骤301中,客户端将该新的社交行为对应的用户社交信息日志转换成json字符串并通过http协议传送到服务器端。
步骤302,服务器端接收客户端提交的数据(也即被转换成可传输格式的用户社交信息日志)。
步骤303,服务器端将接收的数据转换成该数据初始的格式,并同步存储至本地社交信息库。
这里,所述初始的格式是指用户社交信息日志在被客户端转换成可传输格式之前的格式,也即日志格式,通过步骤303能够恢复步骤301中新的社交行为对应的用户社交信息日志。
以客户端传过来的数据为转换成json字符串格式的用户社交信息日志,因此,执行到本步骤303时,就首先将该数据还原成步骤301未转换之前的格式,即原始的用户社交信息日志格式。
至此,通过上述步骤301至步骤303即可实现本地社交信息库存储用户社交信息日志。
基于图2、图3的描述,下面通过三个实施例对图1所示流程进行描述:
实施例1:
本实施例1下,其需要对图2所示流程构建的社交复杂网络进行进一步优化。其中,在描述如何优化图2所示流程构建的社交复杂网络之前,先对上述的用户社交信息日志进行分析。
作为本实施例1的一种优选方案,用户社交信息日志其至少可包含:参与社交行为的双方用户、社交行为的起始时间等。
基于用户社交信息日志包含的内容,则对图2所示流程构建的社交复杂网络进行优化具体通过以下步骤实现:
在上述步骤202中,进一步执行以下步骤:
计算统计出的每一用户对之间的社交行为次数。这里,不同时间点发生的社交行为,称为不同的社交行为,次数也是相应增加的。比如,用户A、用户B分别在起始时间9:00、10:00、11:00发生了社交行为,则意味着用户A、用户B之间的社交行为次数为3次。
在上述步骤203构建社交复杂网络时进一步执行以下步骤:
针对社交复杂网络中每一用户对对应的节点(也称节点对)之间的连边,确定该用户对的社交行为次数为该连边的权值。
也就是说,执行完步骤203进一步执行的步骤后,此时的社交复杂网络就形成了以下结构:在社交复杂网络中,用户通过对应的节点表示,且节点对之间存在连边,该连边的权值为该节点对对应的用户对的社交行为次数。
基于该社交复杂网络的结构,则本实施例1中,当服务器端接收到待推荐好友的目标用户发送的推荐请求时,就在当前的社交复杂网络中识别所述目标用户对应的目标节点,之后在所述社交复杂网络中寻找与目标节点具有连边的节点;并按照与目标节点的连边的权值从高至低的顺序对寻找到的的节点进行排列,形成一个节点序列(记为第一节点序列)并存储至推荐列表库中;将所述推荐列表库存储的第一节点序列中的至少一个节点作为待推荐的好友推荐给目标用户。
优选地,本实施例1中,将所述推荐列表库存储的第一节点序列中的至少一个节点作为待推荐的好友推荐给目标用户包括:
按照从前至后的顺序从存储于推荐列表库的第一节点序列中选取出目标用户需要的好友个数N个节点;
将该选取的N个节点作为待推荐的好友推荐给目标用户,其中,在推荐给目标用户时,可将该选取的N个节点转化为一条json字符串,以http协议形式发送于目标用户对应的客户端,而当目标用户对应的客户端接收到json字符串后,恢复该选取的N个节点。
至此,即可完成向目标用户推荐好友。
优选地,在本实施例1中,上述在将第一节点序列存储至推荐列表库中可进一步包括:针对第一节点序列中每一节点,将该节点与目标节点之间连边的权值一起与该节点存储至推荐列表库中。如此,此时推荐列表库就会统一按照由节点、该节点与目标节点之间连边的权值组成的二元组存储第一节点序列。
相应地,上述将该选取的N个节点作为待推荐的好友推荐给目标用户就为:将该选取的N个节点、该N个节点分别与目标节点之间连边的权值一起推荐给目标用户,以使目标用户依据权值自行决定最可能的潜在好友。
以上对实施例1进行了描述,下面对实施例2进行描述:
实施例2:
本实施例2可应用于上述实施例1应用的社交复杂网络,也可不应用于实施例1应用的社交复杂网络,仅应用于通过图2构建的社交复杂网络。
在本实施例2中,其需要预先执行以下步骤:
在当前的社交复杂网络寻找不存在连边的所有节点对;其中,寻找到的每一节点对包含两个节点;
预测该寻找到的每一节点对之间可能存在连边的概率。这里所指的每一节点对之间可能存在连边的概率实质为每一节点对所包含的两个节点之间可能存在连边的概率。
基于上面的描述,则本实施例2中,当服务器端接收到待推荐好友的目标用户发送的推荐请求时,其从上述寻找到的所有节点对中查找包含目标节点的节点对,按照概率从高至低的顺序排列查找到的节点对中包含的除目标节点之外的节点,形成节点序列(记为第二节点序列)并存储至推荐列表库中,之后将所述推荐列表库存储的第二节点序列中的至少一个节点作为待推荐的好友推荐给目标用户。
优选地,本实施例2中,将所述推荐列表库存储的第二节点序列中的至少一个节点作为待推荐的好友推荐给目标用户包括:
按照从前至后的顺序从存储于推荐列表库的第二节点序列中选取出N个节点,将该选取的N个节点作为待推荐的好友推荐给目标用户;其中,N为目标用户需要的好友数量。
优选地,本实施例2,与实施例1类似,在将该选取的N个节点作为待推荐的好友推荐给目标用户时,可将该选取的N个节点转化为一条json字符串,以http协议形式发送于目标用户对应的客户端,而当目标用户对应的客户端接收到json字符串后,恢复该选取的N个节点。
作为本发明实施例2的一个优选方案,上述第二节点序列可通过一个单向链表的数据结构确定。
其中,为了保证第二节点序列通过一个单向链表的数据结构确定,则本实施例2中,在预测寻找到的每一节点对之间出现连边的概率之后,可进一步包括以下步骤:
按照概率从高至低的顺序排列上述寻找到的节点对,形成节点对序列;
按照从前至后的顺序将所述节点对序列中的节点对和该节点对之间可能存在连边的概率放至一个单向链表,并在所述单向链表结尾处添加一个用于表示链表结束的结束标记,在初始,所述单向链表的链表表头指向所述节点对序列中的第一个节点对。
基于此,上述上述第二节点序列可通过以下操作实现:
识别所述链表表头是否指向所述结束标记;
在所述链表表头指向所述结束标记时,结束当前流程;
在所述链表表头未指向所述结束标记时,获取所述链表表头当前指向的当前节点对,判断当前节点对是否包含目标节点,如果是,按照从前至后的顺序记录当前节点对中除目标节点之外的节点至第二节点序列,如果否,将所述链表表头移动至当前节点对在所述单向链表的下一个位置,返回识别所述链表表头是否指向所述结束标记的操作。
如此,当第二节点序列存储至推荐列表库时,就会保证第二节点序列中的节点按照与目标节点可能产生连边的概率从高到低的顺序排列。
优选地,在本实施例2中,上述按照从前至后的顺序记录当前节点对中除目标节点之外的节点至第二节点序列可进一步包括:从所述单向链表中获取当前节点对可能存在连边的概率,按照从前至后的顺序将该获取的概率、以及当前节点对中除目标节点之外的节点记录至第二节点序列。如此,此时推荐列表库就会统一按照由节点、该节点与目标节点之间可能存在连边的概率组成的二元组存储第二节点序列。
相应地,上述将该选取的N个节点作为待推荐的好友推荐给目标用户就为:将该选取的N个节点、该N个节点分别与目标节点之间可能存在连边的概率一起推荐给目标用户,以使目标用户依据概率自行决定最可能的潜在好友。
优选地,作为本实施例2的一个优选方案,在本实施例2中,预测寻找到的每一节点对之间可能存在连边的概率可包括:
基于网络中节点的局部信息相似性或基于网络中局部路径信息相似性的方式,或者,基于网络中节点的局部信息相似性和网络中局部路径信息相似性的方式,预测寻找到的每一节点对之间可能存在连边的概率。
其中,基于网络中节点的局部信息相似性的方式预测节点对之间可能存在连边的概率通过以下公式实现:
基于网络中局部路径信息相似性的方式预测节点对之间可能存在连边的概率通过以下公式实现:
Sxy=(A2)xy+α(A3)xy;
基于网络中节点的局部信息相似性和网络中局部路径信息相似性的方式预测节点对之间可能存在连边的概率通过以下公式实现:
其中,在上面描述的公式中,Sxy表示节点对(xy)中两个节点即节点x、节点y之间可能存在连边的概率,Γ(x)表示节点x的邻居节点集合,Γ(y)表示节点y的邻居节点集合,|Γ(x)∩Γ(y)|表示节点x的邻居节点集合与节点y的邻居节点集合相交的节点数量,k(z)=|Γ(z)|表示节点z的度,这里,节点z的度是指和该节点z有连边的节点数量,α为调节参数,(An)xy表示节点x和y之间相隔长度为n个节点的路径的数量。
至此,完成实施例2的描述。
实施例3:
本实施例3应用于上述实施例1应用的社交复杂网络,其具体是在应用上述实施例1所应用的社交复杂网络的前提下将实施例1和实施例2相结合实现的。
在本实施例3中,所采用的技术手段也为实施例1、实施例2相结合的手段,只不过在向目标用户推荐好友时需要分析目标用户需要的在所述社交复杂网络中与目标节点不存在连边的好友数量N1、以及目标用户需要的在所述社交复杂网络中与目标节点存在连边的好友数量N2,具体为:
按照从前至后的顺序从存储于推荐列表库的第二节点序列中选取出N1个节点,以及按照从前至后的顺序从存储于推荐列表库的第一节点序列中选取出N2个节点,将选取的N1个节点和N2个节点作为待推荐的好友推荐给目标用户。
其中,在将选取的N1个节点和N2个节点作为待推荐的好友推荐给目标用户时,可将该选取的N1个节点和N2个节点转化为一条json字符串,以http协议形式发送于目标用户对应的客户端,而当目标用户对应的客户端接收到json字符串后,恢复该选取的N1个节点和N2个节点。
至此,完成实施例3的描述。
以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
参见图4,图4为本发明实施例提供的装置结构图。该装置应用于服务器端,如图4所示,该装置可包括:
网络模块,用于构建包含多个节点的社交复杂网络,在所述社交复杂网络中,每一节点对应一个用户,且两个节点之间如果有连边,则表示该两个节点对应的用户之间有社交行为;
接收模块,用于接收待推荐好友的目标用户发送的推荐请求,在所述社交复杂网络中识别所述目标用户对应的目标节点;
推荐模块,用于依据所述社交复杂网络分析与所述目标节点具有连边和/或可能具有连边的节点,将分析出的至少一个节点作为待推荐的好友推荐给所述目标用户。
优选地,所述网络模块通过以下步骤构建社交复杂网络:
A1,依据构建社交复杂网络的规划,从本地社交信息库中抽取满足所述规划的用户社交信息日志;所述用户社交信息日志至少包括:参与社交行为的双方用户、社交行为的起始时间;
A2,按照社交复杂网络的要求对抽取的用户社交信息日志进行数据预处理;
A3,从预处理后的用户社交信息日志中统计出具有社交行为的用户对;
A4,按照以下原则构建社交复杂网络:将每一用户对中的用户对应至社交复杂网络的节点、且每一用户对对应的节点之间有连边。
优选地,本发明中,所述网络模块可按照设定的构建频率构建社交复杂网络,并用新构建的社交复杂网络更新之前的社交复杂网络;
和/或,
基于客户端的主动要求构建社交复杂网络并用新构建的社交复杂网络更新之前的社交复杂网络。
其中,作为本发明一个实施例,所述网络模块可通过以下步骤构建社交复杂网络:
A1,依据构建社交复杂网络的规划,从本地社交信息库中抽取满足所述规划的用户社交信息日志;所述用户社交信息日志至少包括:参与社交行为的双方用户、社交行为的起始时间;
A2,按照社交复杂网络的要求对抽取的用户社交信息日志进行数据预处理;
A3,从预处理后的用户社交信息日志中统计出具有社交行为的用户对;
A4,按照以下原则构建社交复杂网络:将每一用户对中的用户对应至社交复杂网络的节点、且每一用户对对应的节点之间有连边。
在上面描述中,所述本地社交信息库中的用户社交信息日志通过以下步骤获取:
接收客户端在有新的社交行为时上传该新的社交行为对应的、且被转换成可传输格式的用户社交信息日志;
将所述客户端上传的被转换成可传输格式的用户社交信息日志还原为初始的格式,并同步存储至本地社交信息库,所述初始的格式是指用户社交信息日志在被客户端转换成可传输格式之前的格式。
优选地,如图4所示,所述装置进一步包括:
连边预测模块,用于在所述社交复杂网络寻找不存在连边的节点对,预测寻找到的每一节点对之间可能存在连边的概率;
基于此,所述推荐模块从寻找到的所有节点对中查找包含目标节点的节点对,按照概率从高至低的顺序排列查找到的节点对中包含的除目标节点之外的节点,形成节点序列1并存储至推荐列表库中,将所述推荐列表库存储的节点序列1中的至少一个节点作为待推荐的好友推荐给目标用户。
优选地,本发明中,所述连边预测模块进一步按照概率从高至低的顺序排列寻找到的节点对,形成节点对序列,按照从前至后的顺序将所述节点对序列中的节点对和该节点对之间可能存在连边的概率放至一个单向链表,并在所述单向链表结尾处添加一个用于表示链表结束的结束标记,在初始,所述单向链表的链表表头指向所述节点对序列中的第一个节点对;
基于此,所述推荐模块从寻找到的所有节点对中查找包含目标节点的节点对,按照概率从高至低的顺序排列查找到的节点对中包含的除目标节点之外的节点,形成节点序列1包括:
识别所述链表表头是否指向所述结束标记;
在所述链表表头指向所述结束标记时,结束当前流程;
在所述链表表头未指向所述结束标记时,获取所述链表表头当前指向的当前节点对,判断当前节点对是否包含目标节点,如果是,按照从前至后的顺序记录当前节点对中除目标节点之外的节点至节点对序列,如果否,将所述链表表头移动至当前节点对在所述单向链表的下一个位置,返回识别所述链表表头是否指向所述结束标记的操作。
优选地,本发明中,所述连边预测模块基于网络中节点的局部信息相似性或基于网络中局部路径信息相似性的方式,或者,基于网络中节点的局部信息相似性和网络中局部路径信息相似性的方式,预测寻找到的每一节点对之间可能存在连边的概率。
基于网络中节点的局部信息相似性的方式预测寻找到的每一节点对之间可能存在连边的概率通过以下公式实现:
基于网络中局部路径信息相似性的方式预测寻找到的每一节点对之间可能存在连边的概率通过以下公式实现:
Sxy=(A2)xy+α(A3)xy;
基于网络中节点的局部信息相似性和网络中局部路径信息相似性的方式预测寻找到的每一节点对之间可能存在连边的概率通过以下公式实现:
其中,Sxy表示节点对(xy)中两个节点即节点x、节点y之间可能存在连边的概率,Γ(x)表示节点x的邻居节点集合,Γ(y)表示节点y的邻居节点集合,|Γ(x)∩Γ(y)|表示节点x的邻居节点集合与节点y的邻居节点集合相交的节点数量,k(z)=|Γ(z)|表示节点z的度,α为调节参数,(An)xy表示节点x和y之间相隔长度为n个节点的路径的数量。
优选地,本发明中,所述推荐模块将所述推荐列表库存储的节点序列1中的至少一个节点作为待推荐的好友推荐给目标用户具体为:
按照从前至后的顺序从存储于推荐列表库的节点对序列1中选取出N个节点作为待推荐的好友推荐给目标用户;
其中,N为目标用户需要的好友数量。
优选地,本发明中,所述网络模块在步骤A3中进一步包括:计算每一用户对之间的社交行为次数;
所述网络模块在步骤A4中进一步包括:针对社交复杂网络中每一用户对对应的节点之间的连边,确定该用户对的社交行为次数为该连边的权值;
基于此,在上面描述中,所述推荐模块将所述推荐列表库存储的节点序列1中的至少一个节点作为待推荐的好友推荐给目标用户具体为:
在所述社交复杂网络中寻找与目标节点具有连边的节点,按照与目标节点的连边的权值从高至低的顺序对寻找到的节点进行排列,形成节点序列2并存储至推荐列表库中;
按照从前至后的顺序从存储于推荐列表库的节点序列1中选取出N1个节点,以及按照从前至后的顺序从存储于推荐列表库的节点序列2中选取出N2个节点,将选取的N1个节点和N2个节点作为待推荐的好友推荐给目标用户;
其中,N1为目标用户需要的在所述社交复杂网络中与目标节点不存在连边的好友数量、N2为目标用户需要的在所述社交复杂网络中与目标节点存在连边的好友数量。
优选地,本发明中,所述网络模块在步骤A3中进一步包括:计算每一用户对之间的社交行为次数;
所述网络模块在步骤A4中进一步包括:针对社交复杂网络中每一用户对对应的节点之间的连边,确定该用户对的社交行为次数为该连边的权值;
所述推荐模块在所述社交复杂网络中寻找与目标节点具有连边的节点,按照与目标节点的连边的权值从高至低的顺序对寻找到的节点进行排列,形成节点序列2并存储至推荐列表库中;
按照从前至后的顺序从存储于推荐列表库的节点序列2中选取出N个节点,将选取的N节点作为待推荐的好友推荐给目标用户;
其中,N为目标用户需要的好友数量。
至此,完成图4所示装置。
由以上技术方案可以看出,本发明中,通过构建社交复杂网络,分析出与所述目标节点具有连边和/或可能具有连边的节点作为目标用户的潜在好友户推荐给目标用户。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (13)
1.一种好友推荐方法,其特征在于,该方法应用于服务器端,包括:
A,构建包含多个节点的社交复杂网络,在所述社交复杂网络中,每一节点对应一个用户,且两个节点之间如果有连边,则表示该两个节点对应的用户之间有社交行为;
B,接收待推荐好友的目标用户发送的推荐请求,在所述社交复杂网络中识别所述目标用户对应的目标节点;
在所述社交复杂网络寻找不存在连边的节点对;
预测寻找到的每一节点对之间可能存在连边的概率;
C,依据所述社交复杂网络分析与所述目标节点具有连边和/或可能具有连边的节点,将分析出的至少一个节点作为待推荐的好友推荐给所述目标用户;
其中,步骤A包括:
A1,依据构建社交复杂网络的规划,从本地社交信息库中抽取满足所述规划的用户社交信息日志;所述用户社交信息日志至少包括:参与社交行为的双方用户、社交行为的起始时间;
A2,按照社交复杂网络的要求对抽取的用户社交信息日志进行数据预处理;
A3,从预处理后的用户社交信息日志中统计出具有社交行为的用户对;
A4,按照以下原则构建社交复杂网络:将每一用户对中的用户对应至社交复杂网络的节点、且每一用户对对应的节点之间有连边;
步骤C包括:
C1,从寻找到的所有节点对中查找包含目标节点的节点对,按照概率从高至低的顺序排列查找到的节点对中包含的除目标节点之外的节点,形成节点序列1并存储至推荐列表库中;
C2,将所述推荐列表库存储的节点序列1中的至少一个节点作为待推荐的好友推荐给目标用户;
所述预测寻找到的每一节点对之间存在连边的概率进一步包括:
按照概率从高至低的顺序排列寻找到的节点对,形成节点对序列;
按照从前至后的顺序将所述节点对序列中的节点对和该节点对之间可能存在连边的概率放至一个单向链表,并在所述单向链表结尾处添加一个用于表示链表结束的结束标记,在初始,所述单向链表的链表表头指向所述节点对序列中的第一个节点对;
步骤C1中形成节点序列1的操作包括:
识别所述链表表头是否指向所述结束标记;
在所述链表表头指向所述结束标记时,结束当前流程;
在所述链表表头未指向所述结束标记时,获取所述链表表头当前指向的当前节点对,判断当前节点对是否包含目标节点,如果是,按照从前至后的顺序记录当前节点对中除目标节点之外的节点至节点对序列,如果否,将所述链表表头移动至当前节点对在所述单向链表的下一个位置,返回识别所述链表表头是否指向所述结束标记的操作。
2.根据权利要求1所述的方法,其特征在于,步骤A按照设定的构建频率构建社交复杂网络,并用新构建的社交复杂网络更新之前的社交复杂网络;
和/或,
步骤A基于客户端的主动要求构建社交复杂网络并用新构建的社交复杂网络更新之前的社交复杂网络。
3.根据权利要求1所述的方法,其特征在于,所述本地社交信息库中的用户社交信息日志通过以下步骤获取:
接收客户端在有新的社交行为时上传该新的社交行为对应的、且被转换成可传输格式的用户社交信息日志;
将所述客户端上传的被转换成可传输格式的用户社交信息日志还原为初始的格式,并同步存储至本地社交信息库,所述初始的格式是指用户社交信息日志在被客户端转换成可传输格式之前的格式。
4.根据权利要求1所述的方法,其特征在于,所述预测寻找到的每一节点对之间可能存在连边的概率包括:
基于网络中节点的局部信息相似性或基于网络中局部路径信息相似性的方式,或者,基于网络中节点的局部信息相似性和网络中局部路径信息相似性的方式,预测寻找到的每一节点对之间可能存在连边的概率。
5.根据权利要求4所述的方法,其特征在于,基于网络中节点的局部信息相似性的方式预测寻找到的每一节点对之间可能存在连边的概率通过以下公式实现:
基于网络中局部路径信息相似性的方式预测寻找到的每一节点对之间可能存在连边的概率通过以下公式实现:
Sxy=(A2)xy+α(A3)xy;
基于网络中节点的局部信息相似性和网络中局部路径信息相似性的方式预测寻找到的每一节点对之间可能存在连边的概率通过以下公式实现:
其中,Sxy表示节点对(xy)中两个节点即节点x、节点y之间可能存在连边的概率,Γ(x)表示节点x的邻居节点集合,Γ(y)表示节点y的邻居节点集合,|Γ(x)∩Γ(y)|表示节点x的邻居节点集合与节点y的邻居节点集合相交的节点数量,k(z)=|Γ(z)|表示节点z的度,α为调节参数,(An)xy表示节点x和y之间相隔长度为n个节点的路径的数量。
6.根据权利要求1所述的方法,其特征在于,步骤C2包括:
按照从前至后的顺序从存储于推荐列表库的节点对序列1中选取出N个节点作为待推荐的好友推荐给目标用户;
其中,N为目标用户需要的好友数量。
7.根据权利要求1、4、或5所述的方法,其特征在于,步骤A3中进一步包括:计算每一用户对之间的社交行为次数;
步骤A4中进一步包括:针对社交复杂网络中每一用户对对应的节点之间的连边,确定该用户对的社交行为次数为该连边的权值;
步骤C2包括:
在所述社交复杂网络中寻找与目标节点具有连边的节点,按照与目标节点的连边的权值从高至低的顺序对寻找到的节点进行排列,形成节点序列2并存储至推荐列表库中;
按照从前至后的顺序从存储于推荐列表库的节点序列1中选取出N1个节点,以及按照从前至后的顺序从存储于推荐列表库的节点序列2中选取出N2个节点,将选取的N1个节点和N2个节点作为待推荐的好友推荐给目标用户;
其中,N1为目标用户需要的在所述社交复杂网络中与目标节点不存在连边的好友数量、N2为目标用户需要的在所述社交复杂网络中与目标节点存在连边的好友数量。
8.根据权利要求1所述的方法,其特征在于,步骤A3中进一步包括:计算每一用户对之间的社交行为次数;
步骤A4中进一步包括:针对社交复杂网络中每一用户对对应的节点之间的连边,确定该用户对的社交行为次数为该连边的权值;
步骤C包括:
在所述社交复杂网络中寻找与目标节点具有连边的节点,按照与目标节点的连边的权值从高至低的顺序对寻找到的节点进行排列,形成节点序列2并存储至推荐列表库中;
按照从前至后的顺序从存储于推荐列表库的节点序列2中选取出N个节点,将选取的N节点作为待推荐的好友推荐给目标用户;
其中,N为目标用户需要的好友数量。
9.一种好友推荐装置,其特征在于,该装置应用于服务器端,包括:
网络模块,用于构建包含多个节点的社交复杂网络,在所述社交复杂网络中,每一节点对应一个用户,且两个节点之间如果有连边,则表示该两个节点对应的用户之间有社交行为;
接收模块,用于接收待推荐好友的目标用户发送的推荐请求,在所述社交复杂网络中识别所述目标用户对应的目标节点;
连边预测模块,用于在所述社交复杂网络寻找不存在连边的节点对,预测寻找到的每一节点对之间可能存在连边的概率;
推荐模块,用于依据所述社交复杂网络分析与所述目标节点具有连边和/或可能具有连边的节点,将分析出的至少一个节点作为待推荐的好友推荐给所述目标用户;
其中,所述网络模块通过以下步骤构建社交复杂网络:
A1,依据构建社交复杂网络的规划,从本地社交信息库中抽取满足所述规划的用户社交信息日志;所述用户社交信息日志至少包括:参与社交行为的双方用户、社交行为的起始时间;
A2,按照社交复杂网络的要求对抽取的用户社交信息日志进行数据预处理;
A3,从预处理后的用户社交信息日志中统计出具有社交行为的用户对;
A4,按照以下原则构建社交复杂网络:将每一用户对中的用户对应至社交复杂网络的节点、且每一用户对对应的节点之间有连边;
所述推荐模块从寻找到的所有节点对中查找包含目标节点的节点对,按照概率从高至低的顺序排列查找到的节点对中包含的除目标节点之外的节点,形成节点序列1并存储至推荐列表库中,将所述推荐列表库存储的节点序列1中的至少一个节点作为待推荐的好友推荐给目标用户;
所述连边预测模块预测寻找到的每一节点对之间可能存在连边的概率进一步包括:
按照概率从高至低的顺序排列寻找到的节点对,形成节点对序列;
按照从前至后的顺序将所述节点对序列中的节点对和该节点对之间可能存在连边的概率放至一个单向链表,并在所述单向链表结尾处添加一个用于表示链表结束的结束标记,在初始,所述单向链表的链表表头指向所述节点对序列中的第一个节点对;
所属推荐模块形成节点序列1的操作包括:
识别所述链表表头是否指向所述结束标记;
在所述链表表头指向所述结束标记时,结束当前流程;
在所述链表表头未指向所述结束标记时,获取所述链表表头当前指向的当前节点对,判断当前节点对是否包含目标节点,如果是,按照从前至后的顺序记录当前节点对中除目标节点之外的节点至节点对序列,如果否,将所述链表表头移动至当前节点对在所述单向链表的下一个位置,返回识别所述链表表头是否指向所述结束标记的操作。
10.根据权利要求9所述的装置,其特征在于,所述连边预测模块基于网络中节点的局部信息相似性或基于网络中局部路径信息相似性的方式,或者,基于网络中节点的局部信息相似性和网络中局部路径信息相似性的方式,预测寻找到的每一节点对之间可能存在连边的概率。
11.根据权利要求10所述的装置,其特征在于,所述推荐模块将所述推荐列表库存储的节点序列1中的至少一个节点作为待推荐的好友推荐给目标用户具体为:
按照从前至后的顺序从存储于推荐列表库的节点对序列1中选取出N个节点作为待推荐的好友推荐给目标用户;
其中,N为目标用户需要的好友数量。
12.根据权利要求9至11任一所述的装置,其特征在于,
所述网络模块在步骤A3中进一步包括:计算每一用户对之间的社交行为次数;
所述网络模块在步骤A4中进一步包括:针对社交复杂网络中每一用户对对应的节点之间的连边,确定该用户对的社交行为次数为该连边的权值;
所述推荐模块将所述推荐列表库存储的节点序列1中的至少一个节点作为待推荐的好友推荐给目标用户具体为:
在所述社交复杂网络中寻找与目标节点具有连边的节点,按照与目标节点的连边的权值从高至低的顺序对寻找到的节点进行排列,形成节点序列2并存储至推荐列表库中;
按照从前至后的顺序从存储于推荐列表库的节点序列1中选取出N1个节点,以及按照从前至后的顺序从存储于推荐列表库的节点序列2中选取出N2个节点,将选取的N1个节点和N2个节点作为待推荐的好友推荐给目标用户;
其中,N1为目标用户需要的在所述社交复杂网络中与目标节点不存在连边的好友数量、N2为目标用户需要的在所述社交复杂网络中与目标节点存在连边的好友数量。
13.根据权利要求9所述的装置,其特征在于,
所述网络模块在步骤A3中进一步包括:计算每一用户对之间的社交行为次数;
所述网络模块在步骤A4中进一步包括:针对社交复杂网络中每一用户对对应的节点之间的连边,确定该用户对的社交行为次数为该连边的权值;
所述推荐模块在所述社交复杂网络中寻找与目标节点具有连边的节点,按照与目标节点的连边的权值从高至低的顺序对寻找到的节点进行排列,形成节点序列2并存储至推荐列表库中;
按照从前至后的顺序从存储于推荐列表库的节点序列2中选取出N个节点,将选取的N节点作为待推荐的好友推荐给目标用户;
其中,N为目标用户需要的好友数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310634770.7A CN103678531B (zh) | 2013-12-02 | 2013-12-02 | 好友推荐方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310634770.7A CN103678531B (zh) | 2013-12-02 | 2013-12-02 | 好友推荐方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678531A CN103678531A (zh) | 2014-03-26 |
CN103678531B true CN103678531B (zh) | 2017-02-08 |
Family
ID=50316076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310634770.7A Active CN103678531B (zh) | 2013-12-02 | 2013-12-02 | 好友推荐方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678531B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156392B (zh) * | 2014-07-09 | 2017-06-13 | 中电科华云信息技术有限公司 | 好友及应用个性化推荐方法及系统 |
CN104239399B (zh) * | 2014-07-14 | 2017-08-01 | 上海交通大学 | 社交网络中的潜在好友推荐方法 |
CN104580385B (zh) * | 2014-12-16 | 2018-04-03 | 腾讯科技(深圳)有限公司 | 一种拓展用户关系链的方法及装置 |
CN105843830A (zh) * | 2015-11-30 | 2016-08-10 | 维沃移动通信有限公司 | 一种好友推荐方法及系统 |
US20170249558A1 (en) * | 2016-02-29 | 2017-08-31 | Linkedin Corporation | Blending connection recommendation streams |
CN107154862A (zh) * | 2016-03-04 | 2017-09-12 | 上海海岸展览服务有限公司 | 一种中间人推荐方法和系统 |
CN106021325B (zh) * | 2016-05-06 | 2020-07-28 | 腾讯科技(深圳)有限公司 | 一种好友推荐方法和装置 |
CN108932262B (zh) * | 2017-05-26 | 2020-07-14 | 北京小唱科技有限公司 | 一种歌曲推荐方法及装置 |
CN107346333B (zh) * | 2017-06-27 | 2020-11-17 | 浙江大学 | 一种基于链路预测的在线社交网络好友推荐方法与系统 |
WO2019014894A1 (zh) * | 2017-07-20 | 2019-01-24 | 深圳大学 | 网络链路预测方法及装置 |
CN109658120B (zh) * | 2017-10-12 | 2022-11-29 | 腾讯科技(深圳)有限公司 | 一种业务数据处理方法以及装置 |
CN110968578B (zh) * | 2018-09-28 | 2023-04-25 | 中建生态环境集团有限公司 | 污水处理工艺推荐方法及装置 |
CN109685630B (zh) * | 2019-01-09 | 2020-10-27 | 苏州大学 | 电子商务团购推荐方法及系统 |
CN111368211B (zh) * | 2020-02-20 | 2023-05-16 | 腾讯科技(深圳)有限公司 | 关系链确定方法、装置及存储介质 |
CN112287210A (zh) * | 2020-08-07 | 2021-01-29 | 北京沃东天骏信息技术有限公司 | 模板的推荐方法、装置、电子设备及计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102668457A (zh) * | 2009-09-30 | 2012-09-12 | 柯蔼文 | 用于社交图数据分析以确定社区内的连接性的系统和方法 |
CN103379158A (zh) * | 2012-04-24 | 2013-10-30 | 中国移动通信集团公司 | 一种社交网络中推荐好友信息的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281044A1 (en) * | 2009-04-29 | 2010-11-04 | Ajay Gupta | Method and system for creating a profiled social network |
-
2013
- 2013-12-02 CN CN201310634770.7A patent/CN103678531B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102668457A (zh) * | 2009-09-30 | 2012-09-12 | 柯蔼文 | 用于社交图数据分析以确定社区内的连接性的系统和方法 |
CN103379158A (zh) * | 2012-04-24 | 2013-10-30 | 中国移动通信集团公司 | 一种社交网络中推荐好友信息的方法及系统 |
Non-Patent Citations (1)
Title |
---|
复杂网络链路预测;吕琳媛;《复杂网络链路预测》;20100930;第39卷(第5期);第651-661页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103678531A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678531B (zh) | 好友推荐方法和装置 | |
Willinger et al. | Scaling phenomena in the Internet: Critically examining criticality | |
Lu et al. | Towards information diffusion in mobile social networks | |
CN106055627A (zh) | 话题领域中社交网络关键节点的识别方法 | |
JP2008107867A (ja) | コミュニティ抽出方法、コミュニティ抽出処理装置 | |
CN104008203A (zh) | 一种融入本体情境的用户兴趣挖掘方法 | |
CN106407377A (zh) | 基于人工智能的搜索方法和装置 | |
CN106375369A (zh) | 基于用户行为分析的移动Web业务推荐方法及协同推荐系统 | |
Sakib et al. | An efficient and lightweight predictive channel assignment scheme for multiband B5G-enabled massive IoT: A deep learning approach | |
Sun | [Retracted] Research on the Construction of Smart Tourism System Based on Wireless Sensor Network | |
CN107391542A (zh) | 一种基于文件知识图谱的开源软件社区专家推荐方法 | |
CN107239512A (zh) | 一种结合评论关系网络图的微博垃圾评论识别方法 | |
CN102299854B (zh) | 一种面向机会网络环境的多目标路由决策系统 | |
Liu et al. | Exploring social properties in vehicular ad hoc networks | |
CN103873364A (zh) | 域间多路径路由的实现方法 | |
Zeno et al. | Dymond: Dynamic motif-nodes network generative model | |
CN112069416B (zh) | 基于社区发现的跨社交网络用户身份识别方法 | |
CN107193945A (zh) | 机会网络中基于兴趣和相遇相关的消息自适应推荐方法 | |
CN105228215A (zh) | 车载自组织网络中基于决策树机制的多副本路由方法 | |
CN107370628A (zh) | 基于埋点的日志处理方法及系统 | |
Shen et al. | Congestion control and traffic scheduling for collaborative crowdsourcing in SDN enabled mobile wireless networks | |
CN106792971A (zh) | 基于蚁群算法的网络节点选择方法 | |
CN111460277A (zh) | 一种基于移动社交网络树状传输路径的个性化推荐方法 | |
JP5336961B2 (ja) | 画面遷移評価システム | |
CN115695280A (zh) | 基于边缘节点的路由方法及装置、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |