CN112507244A - 社交数据推荐方法、装置、分布式计算集群及存储介质 - Google Patents

社交数据推荐方法、装置、分布式计算集群及存储介质 Download PDF

Info

Publication number
CN112507244A
CN112507244A CN201910879958.5A CN201910879958A CN112507244A CN 112507244 A CN112507244 A CN 112507244A CN 201910879958 A CN201910879958 A CN 201910879958A CN 112507244 A CN112507244 A CN 112507244A
Authority
CN
China
Prior art keywords
social
random walk
vertex
walker
social data
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
Application number
CN201910879958.5A
Other languages
English (en)
Other versions
CN112507244B (zh
Inventor
孙仕杰
于东海
高品
李永安
魏万敬
李本利
涂小刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910879958.5A priority Critical patent/CN112507244B/zh
Publication of CN112507244A publication Critical patent/CN112507244A/zh
Application granted granted Critical
Publication of CN112507244B publication Critical patent/CN112507244B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering

Abstract

本申请公开了一种社交数据推荐方法、装置、分布式计算集群及存储介质,该方法根据配置文件以及进程参数,执行metapath2vec随机游走进程,得到随机游走序列;其中该进程利用Alias‑Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点的顶点信息,将walker对象在同一路径下保存的顶点信息形成随机游走序列;利用随机游走序列计算目标社交用户与其他社交用户之间的相似度;根据相似度确定推荐的社交数据;该方法利用Alias‑Table在保证顶点采样可靠性的情况下降低随机采样的复杂度,利用walker对象降低网络传输数据量,在保证获取的社交数据的可靠性的情况下,提升社交数据的获取效率。

Description

社交数据推荐方法、装置、分布式计算集群及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种社交数据推荐方法、装置、分布式计算集群及存储介质。
背景技术
随着信息技术的快速发展,当前社会已经进入到大数据时代,随之而来的就是互联网社交数据的爆炸式增长。目前,社交用户在面对海量社交数据时,需要耗费很长时间才能获取到自己所需要的较为可靠的社交数据,导致社交数据获取效率低下。
因此,如何快速、高效地从海量社交数据中提取有效、可靠的社交数据推荐给相应的社交用户是当前互联网面对的主要问题。
发明内容
有鉴于此,本申请提供了一种社交数据推荐方法、装置、分布式计算集群及存储介质,通过降低推荐的社交数据在获取过程中的网络传输数据量以及顶点随机采样过程的复杂度,实现在保证获取的社交数据的可靠性的情况下,提升社交数据的获取效率。
为实现上述目的,一方面,本申请提供了一种社交数据推荐方法,应用于分布式计算集群,包括:
获取推荐任务的配置文件以及进程参数;
利用所述配置文件以及所述进程参数,执行metapath2vec随机游走进程,得到随机游走序列;所述metapath2vec随机游走进程利用Alias-Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点对应的顶点信息,将所述walker对象在同一路径下保存的顶点信息形成所述随机游走序列;
利用所述随机游走序列计算目标社交用户与其他社交用户之间的相似度;
根据所述相似度确定推荐给所述目标社交用户的社交数据。
在一种可能的实现方式中,所述利用所述随机游走序列计算目标社交用户与其他社交用户之间的相似度,包括:
将所述随机游走序列输入word2vec模型,计算社交异构网络中各个顶点对应的embedding向量;
计算目标社交用户对应顶点的embedding向量与其他社交用户对应顶点的embedding向量之间的相似度。
在又一种可能的实现方式中,所述利用所述配置文件以及所述进程参数,执行metapath2vec随机游走进程,得到随机游走序列,包括:
根据与所述配置文件对应的每个顶点的类型信息筛选起始跳点;所述起始跳点为符合所述进程参数中起始顶点类型的顶点;
为所述起始跳点初始化walker对象;所述walker对象包含跳点ID以及路径ID;
根据所述进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将所述当前跳点的ID替换所述walker对象中的跳点ID;
判断总跳数是否达到预定阈值;
若所述总跳数达到所述预定阈值时,根据所述路径ID下的各个跳点ID得到随机游走序列;若所述总跳数未达到所述预定阈值时,则继续执行所述根据所述进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将所述当前跳点的ID替换所述walker对象中的跳点ID的步骤。
在又一种可能的实现方式中,所述根据所述进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将所述当前跳点的ID替换所述walker对象中的跳点ID之后,还包括:
判断替换前后的两个跳点是否位于相同的计算节点;
若是,则继续执行所述判断总跳数是否达到预定阈值的步骤;若否,则向当前跳点所在的计算节点发送walker转移消息,同时销毁对应walker对象。
在又一种可能的实现方式中,所述Alias-Table的生成过程,包括:
利用Alias-Method算法,计算配置文件对应顶点的Alias-Table。
又一方面,本申请提供了一种社交数据推荐装置,应用于分布式计算集群,包括:
获取模块,用于获取推荐任务的配置文件以及进程参数;
随机游走模块,用于利用所述配置文件以及所述进程参数,执行metapath2vec随机游走进程,得到随机游走序列;所述metapath2vec随机游走进程利用Alias-Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点对应的顶点信息,将所述walker对象在同一路径下保存的顶点信息形成所述随机游走序列;
相似度计算模块,用于利用所述随机游走序列计算目标社交用户与其他社交用户之间的相似度;
推荐模块,用于根据所述相似度确定推荐给所述目标社交用户的社交数据。
又一方面,本申请还提供了一种分布式计算集群,包括:多个计算节点,用于执行本申请任一实施例的社交数据推荐方法。
又一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现本申请任一实施例的社交数据推荐方法。
可见,在本申请实施例中,分布式计算集群利用metapath2vec随机游走进程计算随机游走序列时,利用Alias-Table采样各个跳点,利用walker对象保存当前跳点对应的顶点信息以及路径来计算随机游走序列,并最终获取推荐的社交数据;其通过Alias-Table将随机采样跳点(即顶点)的复杂度从当前的O(logN)降低到O(1),实现了在不降低顶点采样效果的基础上显著的降低了顶点采样的执行时间;又利用walker对象记录随机游走序列,通过降低获取社交数据过程中的网络传输数据量来显著降低网络通讯开销;即,本申请通过降低推荐的社交数据在获取过程中的网络传输数据量以及随机采样过程的复杂度和执行效率,实现在保证获取的社交数据的可靠性的情况下,提升社交数据的获取效率。
相应地,本申请实施例还提供了与上述社交数据推荐方法相对应的社交数据推荐方法装置、分布式计算集群及存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请实施例的一种社交数据推荐方法所适用的硬件组成框架示意图;
图2示出了本申请实施例的一种社交数据推荐方法的一种流程示意图;
图3示出了本申请实施例的一种社交数据推荐方法的另一种流程示意图;
图4示出了本申请实施例的一种社交异构网络示意图;
图5示出了本申请实施例的一种metapath2vec随机游走进程执行流程示意图;
图6示出了本申请实施例的一种随机游走执行过程的底图;
图7示出了本申请实施例的一种随机游走执行过程的第一示意图;
图8示出了本申请实施例的一种随机游走执行过程的第二示意图;
图9示出了本申请实施例的一种社交数据推荐装置一个实施例的组成结构示框图;
图10示出了本申请实施例的一种计算节点的硬件结构示意图。
具体实施方式
由于信息技术的快速发展,互联网社交数据呈现爆炸式的增长。当前,社交用户在面对海量社交数据时,需要耗费很长时间才能获取到自己所需要的较为可靠的社交数据供自己使用,导致社交数据获取效率低下。本申请中提供的技术方案为了快速从海量社交数据中获取所需社交数据,可以使用随机游走序列快速确定与目标社交用户相关的其他社交用户,进而可以从相关的其他社交用户中获取可靠的社交数据推荐给目标社交用户。
为了便于理解,先对本申请的社交数据推荐方法对应的方案所适用的硬件组成框架进行介绍。可以参见图1,其中,图1其示出了本申请一种社交数据推荐方法所适用的硬件组成框架示意图。
可以理解的是,本申请实施例中并不对分布式计算集群中计算节点的数量进行限定,当然也不对存储集群中存储节点的数量进行限定,无论是计算节点还是存储节点的数量都根据实际需求进行设置。在一种可能的情况中,请参考图1。由图1可知,该硬件设备组成框架可以包括:终端101、分布式计算集群102、存储集群103。其中,分布式计算集群102包含n个计算节点,存储集群103包含n个存储节点,n为正整数。
其中,终端101可以通过自身预先安装的客户端,在用户交互界面上获取用户输入的推荐任务的配置文件以及进程参数,并将该配置文件以及进程参数发送给分布式计算集群102,使得分布式计算集群102中各个计算节点获取相关配置文件以及进程参数。进一步,为了便于用户获取其所需的社交数据,本申请实施例中终端101还可以输出得到的社交数据。本申请实施例并不限定终端101输出形式,如,可以利用显示器输出社交数据,也可以是通过语音设备输出社交数据。可以理解的是,本申请中的终端101包括但不限于安装了上述客户端的智能手机、平板电脑、穿戴式设备和台式计算机等。
其中,分布式计算集群102中各个计算节点,根据各自所具有的配置文件以及进程参数,执行metapath2vec随机游走进程,得到随机游走序列;例如,分布式计算机群102中各个计算节点基于MPI接口(Message Passing Interface,一种并行计算的应用程序接口)执行metapath2vec随机游走进程。分布式计算集群102利用随机游走序列计算目标社交用户与其他社交用户之间的相似度;根据相似度确定推荐给目标社交用户的社交数据。分布式计算集群102还可以将得到的社交数据发送给终端101。本申请实施例并不对该过程的具体形式进行限定,例如可以是由分布式计算集群102中计算节点0将社交数据发送给终端101。进一步,由于本申请的目的是为了提高获取推荐的社交数据的效率。因此,可以理解的是,为了提高计算效率,本申请中的计算节点可以是计算能力强的计算机,如服务器。
本申请实施例中并不限定各个计算节点获取各自所具有的配置文件以及进程参数的方式,可以根据分布式计算集群102的实际工作方式进行设置。例如,可以是终端101将社交异构网络(可以理解为图信息)中全部顶点对应的配置文件以及进程参数发送给分布式计算集群102中的计算节点0,由计算节点0为其他各个计算节点分配所需要配置文件以及进程参数。也可以是终端101将社交异构网络中全部顶点对应的配置文件以及进程参数发送给分布式计算集群102中的计算节点0,由其他各个计算节点自主的从计算节点0中获取其所需要配置文件以及进程参数。当然,本申请实施例中也不限定确定分布式计算集群中各个计算节点所需配置文件的方式。例如,可以是按照计算节点的数量平均分配,也可以是利用hash取模的方式为各个计算节点分配配置文件。即,各个计算节点按照hash取模的方法,获取社交异构网络中对应顶点的配置文件。
需要说明的是:本申请实施例中计算节点和存储节点的数量,以及计算节点和存储节点硬件参数等都根据实际需求进行相应设置,对此并不进行限定。例如,本申请可以运行在x86架构的服务器集群之上,各个服务器之间可以使用10Gbits/sec的以太网进行互联。本申请实施例在计算推荐的社交数据的过程中可以涉及2个分布式集群:第一,分布式计算集群,第二,存储集群;其中,分布式计算集群可以用于运行分布式算法,即各个计算节点执行metapath2vec随机游走进程。存储集群可以用于部署分布式文件系统,本申请实施例中可以将存储集群作为分布式算法输入输出的存储。两个分布式集群的规模和硬件配置根据实际需求进行设置。例如,当推荐任务对应的社交异构网络属于工业界的大图(如社交异构网络具有十亿顶点,千亿边),分布式计算机群通常需要30台以上的服务器运行本申请实施例所提供的社交数据推荐方法。其中,该服务器的实验机器配置可以为CPU:IntelE2560-v3,内存:128GBytes。此时,由于存储集群只要用于存储输入输出,因此,存储集群对应的存储节点的机器配置没有特别要求。
举例说明,请参考图2,图2示出了本申请实施例的一种社交数据推荐方法的一种流程示意图;存储集群103中存储有目标社交用户对应的社交异构网络的图信息,即图信息中可以包含顶点信息集合以及各个顶点对应的边集合,其可以组织成csv格式,其中,顶点信息可以包含顶点ID以及顶点类型ID,边对应的信息可以包含源顶点ID、目的顶点ID以及边的权重,以供分布式计算集群102中各个计算节点在执行metapath2vec随机游走进程时使用。终端101获取用户输入的推荐任务的配置文件以及进程参数,并将配置文件以及进程参数发送给分布式计算集群102。分布式计算集群102根据接收到的配置文件以及进程参数,执行metapath2vec随机游走进程,得到随机游走序列;其中,metapath2vec随机游走进程利用Alias-Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点对应的顶点信息,并利用walker对象在同一路径下保存的顶点信息形成随机游走序列;利用随机游走序列计算目标社交用户与其他社交用户之间的相似度;根据相似度确定推荐给目标社交用户的社交数据;将得到的社交数据发送给终端101。终端101将接收到的社交数据输出给用户。
在另一种可能的情况中,为了进一步保证根据随机游走序列得到的相似社交用户更加准确,进而提升最终推荐的社交数据的准确性。本申请实施例中可以利用word2vec模型来确定目标社交用户与各个其他社交用户之间的相似度,再根据该相似度确定相似社交用户。相应的,将随机游走序列输入word2vec模型,计算社交异构网络中各个顶点对应的embedding向量;计算目标社交用户对应顶点的embedding向量与其他社交用户对应顶点的embedding向量之间的相似度。将相似度较高的预定数量个其他社交用户作为相似社交用户;将相似社交用户对应的社交数据,作为推荐给目标社交用户的社交数据。
需要说明的是:本申请实施例中各个设备之间进行数据交互时,利用的网络可以根据实际需求来确定,既可以是无线通讯网络,如移动通讯网络或WIFI网络等,也可以是有线通讯网络;既可以是广域网,在情况允许时也可以采用局域网。
结合以上共性,参见图3,其示出了本申请一种社交数据推荐方法一个实施例的流程图,本实施例的方法可以包括:
S101、获取推荐任务的配置文件以及进程参数。
本申请实施例中并不对推荐任务的内容进行限定,例如,推荐任务可以是为目标社交用户推荐文章,也可以是为目标社交用户推荐社交网络好友,也可以是为目标社交用户推荐商品,也可以是为目标社交用户推荐歌曲,还可以是为目标社交用户推荐游戏等。即,可以理解为,本申请中社交数据相对应的可以是文章信息,也可以是社交网络好友信息,也可以是商品信息,也可以是歌曲信息,还可以是游戏信息等。
本申请实施例中每个推荐任务都会存在对应的社交异构网络,进而可以根据社交异构网络确定社交异构网络中各个顶点对应的配置文件。本申请实施例中并不限定推荐任务对应的社交异构网络的生成方式,例如,社交异构网络的生成过程可以是:获取推荐任务对应的目标社交用户和其他社交用户对应的海量社交数据,将用户以及与需要推荐的社交数据相关的类型作为社交异构网络的顶点类型,在结合各个顶点类型之间的关系形成社交异构网络的边,形成社交异构网络,即图信息。当然,最终形成的社交异构网络中可以包含需要推荐的社交数据对应的顶点类型。例如,当需要推荐的社交数据为文章时,形成社交异构网络中包含了文章对应的顶点类型。
进一步,本申请实施例中推荐任务还可以包含确定推荐的社交数据的范围参数,例如,确定最终选择的用于推荐社交数据的其他社交用户的数量,如,根据相似度数值,选择相似度较高的前5个其他社交用户,利用这5个其他社交用户来确定最终推荐给目标社交用户的社交数据。
可以理解的是,本实施例中社交异构网络中每个顶点对应一个配置文件,配置文件的内容可以包含对应顶点信息以及边信息。其中,顶点信息可以包含该顶点ID以及该顶点类型;边信息可以包含该顶点所具有的全部的边的权重,以及每个边所连接的顶点信息。
本申请实施例中使用的是metapath2vec随机游走进程来计算随机游走序列。因此,本申请实施例中进程参数的内容可以由metapath2vec随机游走进程的需求来确定,一般情况下,进程参数可以包含metapath参数、步长参数以及循环运行次数参数。其中,metapath参数,可以理解为元路径信息,用来指导随机游走过程,具体的指随机游走序列对应的随机游走路径中的各顶点类型参数,例如,当metapath参数为APA,则表明随机游走路径需要从A类型顶点跳到P类型顶点,再从P类型顶点跳往A类型顶点。步长参数指随机游走序列长度,例如,当步长参数为4,则表明随机游走序列为A→P→A→P→A。循环运行次数参数指执行获取随机游走序列的次数,例如,当循环运行次数参数为3,则表明需要循环执行metapath2vec随机游走进程3次,得到3个随机游走序列。
下面结合图4来说明上述metapath2vec随机游走进程的游走过程。图4中A类型顶点代表作者,在图4中用圆圈表示;P类型顶点代表文章,在图4中用五边形表示。metapath2vec随机游走进程依赖于社交异构网络,社交异构网络由多种类型的顶点组成,顶点与顶点之间通过有权重的边进行连接。每次随机游走按照用户提供的metapath参数进行。若用户指定图4中社交异构网络对应的metapath参数为APA,即,作者→文章→作者时,对应的随机游走过程可以是:假设选择A1顶点作为起始顶点也即起始跳点,按照metapath参数的规则(A→PA)下一跳点需要选择P类型顶点,根据A1顶点对应的配置文件中的边信息可知,A1顶点只与P1顶点相连接,因此,下一可选跳点只有P1顶点,直接移动当前顶点(A1)至P1顶点处;在当前顶点变成P1顶点后进行第二步的随机游走,此时,按照metapath参数的规则(AP→A)下一跳点需要选择A类型顶点,根据P1顶点对应的配置文件中的边信息可知,P1顶点与A1顶点以及A2顶点相连接,因此,下一可选跳点集合为[A1,A2];此时需要根据两个边的权重随机挑选一个顶点作为下一跳顶点(由于图4中给出的边并没有权重信息,因此A1顶点和A2顶点被选中概率均等),假设选择A2作为下一跳顶点并进行移动,则得到一个步长为2的随机游走序列。若将所有顶点(假设为n个)作为起始顶点,重复上述步骤m次,则可以得到一个n×m步的随机游走序列。
本申请实施例中并不限定分布式计算集群中各个计算节点获取各自所对应的配置文件以及进程参数的方式,可以根据分布式计算集群的实际工作方式进行设置。例如,可以是终端将社交异构网络中全部顶点对应的配置文件以及进程参数发送给分布式计算集群中的目标计算节点,该目标计算节点可以是分布式计算集群中任意一个计算节点,再由目标计算节点为其他各个计算节点分配所对应的配置文件以及该进程参数。也可以是终端将社交异构网络中全部顶点对应的配置文件以及进程参数发送给分布式计算集群中的目标计算节点,再由其他各个计算节点自主的从目标计算节点中获取各自所对应的配置文件以及该进程参数。
需要理解的是,本申请实施例中也不限定确定分布式计算集群中各个计算节点所对应的配置文件的方式。例如,可以是按照分布式计算集群中计算节点的总数以及配置文件总数,计算得到每个计算节点平均分配的配置文件数量,依次向每个计算节点分配对应数量的配置文件;也可以是利用hash取模的方式确定各个计算节点对应的配置文件。其中,hash取模是指对hash结果取余数(hash()mod N):对机器编号从0到N-1,按照自定义的hash()算法,对每个请求的hash()值按N取模,得到余数i,然后将请求分发到编号为i的机器。本申请实施例中可以利用各个配置文件对应的顶点ID来执行hash取模过程,进而可以确定各个配置文件所属计算节点。当然,该过程可以由各个计算节点执行,即,各个计算节点按照hash取模的方法,获取社交异构网络中对应顶点的配置文件。该过程也可以由目标计算节点执行,即,目标计算节点按照hash取模的方法,计算分布式计算集群中各个计算节点对应的配置文件。进一步,为了提高各个计算节点的计算效率,更加合理均衡各个计算节点所分配的配置文件,相应的,本申请实施例可以由各个计算节点按照hash取模的方法,获取社交异构网络中对应顶点的配置文件。
S102、利用配置文件以及进程参数,执行metapath2vec随机游走进程,得到随机游走序列;其中,metapath2vec随机游走进程利用Alias-Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点对应的顶点信息,将walker对象在同一路径下保存的顶点信息形成随机游走序列。
其中,随机游走序列是以网络图(即社交异构网络)中所有顶点为起始点,每一步按照一定的规则从当前跳点(当前跳点在第一步中即为起始顶点或起始跳点)的邻居中挑选(即采样)出一个顶点作为下一跳顶点,并移动当前跳点到选出的下一跳顶点。重复以上步骤n次,即完成了n步的随机游走过程,记录下每条游走路径即得到随机游走序列。
分布式计算机群中各个计算节点在获取进程参数以及各自对应的配置文件后,同时启动metapath2vec随机游走进程,计算生成随机游走序列。其中,metapath2vec一种异质网络的表示学习算法,通过元路径来指导随机游走,从而构造出随机游走序列。即,metapath2vec这一模型形式化基于元路径的随机游走以构建节点的异构邻域,然后利用异构的skip-gram模型来执行节点嵌入。metapath2vec不仅能够在各种异构网络挖掘任务中表现出更高的执行效率和准确性,还能够识别不同的结构和语义之间的相关性。
需要说明的是,本申请实施例中为了在不降低顶点采样效果的基础上显著的降低顶点采样的执行时间,因此,采用Alias-Table采样各个跳点。其中,本申请对每一个顶点的每一种类型的邻居均构造一个Alias-Table用于后续的随机采样,构造完毕后的数据结构可以如下标所示。由于每个顶点会对应一个配置文件,即,每个配置文件会存在其对应的Alias-Table。本申请实施例可以通过Alias-Method算法计算配置文件对应顶点的Alias-Table。
Figure BDA0002205584000000111
Figure BDA0002205584000000121
其中,Alias-Method算法为高效的离散分布采样算法,也可以称为别名算法,其在每次进行采样时的复杂度为O(1)。Alias-Table可以称之为别名表,Alias-Table里面有两个数组,一个数组存储的是事件i占第i列矩形的面积的比例,另一个数组存储第i列中不是事件i的另一个事件的编号。本申请实施例中Alias-Table的两个数组可以理解为顶点i占第i列矩阵的面积比例,第i列中不是顶点i的另一个顶点的编号。而相关技术中通过限制邻居数量的方式降低采样过程的复杂度,但是通过限定邻居数量来降低计算复杂度的方式,其实质上是使得原本可能存在于随机游走路径中的顶点无法被采样到,导致得到的随机游走序列可靠性降低。而本申请中利用Alias-Table采样各个跳点的方式,将随机采样跳点(即顶点)的复杂度从当前的O(logN)降低到O(1),实现了在不降低顶点采样效果的基础上显著的降低了顶点采样的执行时间。
需要说明的是,本申请实施例中为了降低网络通讯开销,因此,采用walker对象保存当前跳点对应的顶点信息,将walker对象在同一路径下保存的顶点信息形成随机游走序列。其中,walker对象用于保存一条随机游走路径的状态信息,仅记录当前所在顶点信息以及路径编号这2类信息。而相关技术中在计算随机游走序列时,需要在网络中传输顶点的邻居列表(即邻居消息)来实现随机游走过程。即,每计算一次下一跳顶点,就需要在网络中传输一次顶点的邻居列表,而邻居列表一般需要包含全部邻居的类型信息,名称信息等,特别是针对工业界大图(十级别亿顶点,千亿级别边)来说,相关技术利用邻居列表的方式进行计算会使系统产生不可接受的网络通讯量,导致计算效率低下。一般来说,walker对象大小通常只有邻居列表大小的百分之一甚至更低。因此,本申请利用walker对象记录随机游走序列,通过降低获取社交数据过程中的网络传输数据量来显著降低网络通讯开销,从而提高了随机游走算法的整体执行效率。即,可以使得网络通讯量从与顶点数量乘以顶点数量成正比变为只和顶点数量成正比。经试验证明在十亿级顶点,千亿边规模的图中,本申请实施例中每步随机游走的通讯量从1500GBytes减少到7.5GBytes。即,在亿级顶点,百亿边规模的图中,在30台计算节点组成的分布式计算集群中,本申请提供的方案每100轮随机游走的时间从1875秒减少到97秒,计算时间缩短至相关方案的1/20左右。
本申请实施例通过降低推荐的社交数据在获取过程中的网络传输数据量以及随机采样过程的复杂度和执行效率,实现在保证获取的社交数据的可靠性的情况下,提升社交数据的获取效率。使得本申请在十亿级别顶点,千亿边构成的社交异构网络上的随机游走过程可以在分钟级别完成,大幅缩短了随机游走过程的执行时间,使的metapath2vec随机游走进程可以应用于工业级别场景。
S103、利用随机游走序列计算目标社交用户与其他社交用户之间的相似度。
本申请实施例中并不限定根据随机游走序列计算目标社交用户与其他社交用户之间的相似度的方式,只要可以得到目标社交用户与各个其他社交用户之间的相似度即可。在一种可能的情况中,可以利用随机游走序列获取社交异构网络中各个顶点对应的embedding向量,进而根据embedding向量计算目标社交用户与各个其他社交用户之间的相似度。本申请实施例中并不限定各个顶点对应的embedding向量的计算方式,例如可以使用word2vec模型获取各个顶点对应的embedding向量;本申请实施例中也不限定根据embedding向量计算相似度的方式,例如可以使用cos距离(即余弦距离)计算两个embedding向量之间的相似度。其中,word2vec模型是一种NLP工具,它的功能是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系。一般情况下,可以利用skip-gram(Continuous Skip-gram Model)以及CBOW(Continuous Bag-Of-Words Model)来获取word2vec模型,即,word2vec模型可以使用CBOW与skip-gram来训练模型与得到词向量,其最先优化使用的数据结构是用霍夫曼树来代替隐藏层和输出层的神经元,霍夫曼树的叶子节点起到输出层神经元的作用,叶子节点的个数即为词汇表的小大,而内部节点则起到隐藏层神经元的作用。当然,本申请实施例也可以使用其他神经网络模型计算各个顶点对应的embedding向量,或者使用欧式距离、编辑距离等计算两个embedding向量之间的相似度,本申请实施例对此并不进行限定。其中,embedding向量构建一个映射f:X→Y,即将一个空间里的实体抛射到一个线性向量空间里去,这样一来可以在向量空间里计算度量它们的距离,或者从这个空间寻找到另一个目标空间的映射关系。
进一步,为了保证计算得到的相似度的可靠性,本申请实施例可以将随机游走序列输入word2vec模型,计算社交异构网络中各个顶点对应的embedding向量;计算目标社交用户对应顶点的embedding向量与其他社交用户对应顶点的embedding向量之间的相似度。即可以得到目标社交用户与每个其他社交用户之间的相似度。
S104、根据相似度确定推荐给目标社交用户的社交数据。
由于相似度可以表征目标社交用户与其他社交用户之间的相似程度,相似度越高表明两个社交用户相关性越高,对应的,这两个社交用户对应的社交数据越相似。例如,两个相关性越高的社交用户喜欢的文章基本相同,两个相关性越高的社交用户喜欢的游戏基本相同,两个相关性越高的社交用户喜欢的歌曲基本类似。因此,可以根据计算得到的相似度确定与目标社交用户相关性高的其他社交用户,进而可以根据与目标社交用户相关性高的其他社交用户来确定需要推荐给目标社交用户的社交数据。例如,可以将与目标社交用户相关性高的其他社交用户对应的社交数据作为推荐数据,推荐给目标社交用户。
需要说明的是,本申请实施例中并不限定确定与目标社交用户相关性高的其他社交用户的方式,用户可以根据实际应用场景的需求来确定。例如,可以是设置相似度阈值,将相似度超过该相似度阈值对应的其他社交用户都作为与目标社交用户相关性高的社交用户;也可以是将计算得到的相似度的数值按照从高到低的顺序排序,将排名前预定数量个相似度对应的其他社交用户都作为与目标社交用户相关性高的社交用户。当然,本申请实施例中并不限定相似度阈值以及预定数量的具体数值。
进一步,为了提高推荐的社交数据的准确性和灵活性,在一种可能的情况中,本申请实施例,确定相似社交用户;相似社交用户为相似度较高的预定数量个其他社交用户;将相似社交用户对应的社交数据,作为推荐给目标社交用户的社交数据。
其中,本申请实施例中并不限定预定数量的具体数值,其可以由用户根据实际应用场景进行确定。本申请实施例中相似社交用户指相似度排名前预定数量的相似度对应的其他社交用户。在确定相似社交用户后,需要获取相似社交用户对应的社交数据,并将获取的社交数据推荐给目标社交用户。例如,当社交数据为文章时,在确定相似社交用户后,需要获取相似社交用户对应的文章,并将这些文章作为社交数据推荐给目标社交用户。
需要说明的是,本申请实施例中并不限定获取相似社交用户对应的社交数据的方式。例如,可以是获取相似社交用户对应的全部社交数据,也可以是获取相似社交用户在预设时间段内对应的社交数据,即,如将相似社交用户在预设时间段内对应的社交数据,作为推荐给目标社交用户的社交数据,获取相似社交用户在最近1天内对应的社交数据。当然,本申请实施例中并不限定预设时间段的具体数值。当然,本申请实施例还可以对预设时间段内对应的全部社交数据进行筛选得到最终的社交数据。
在本申请实施例中,分布式计算集群利用metapath2vec随机游走进程计算随机游走序列时,利用Alias-Table采样各个跳点,并利用walker对象保存当前跳点对应的顶点信息以及路径来计算随机游走序列,并最终获取推荐的社交数据;通过Alias-Table将随机采样的复杂度从当前的O(logN)降低到O(1),避免相关技术通过限制邻居数量的方式(限制邻居数量会造成采样可靠性降低,进而降低采样效果)来降低随机采样的复杂度,进而实现了在不降低采样效果的基础上显著的降低了采样过程的执行时间;又通过walker对象的方式记录随机序列,由于walker对象仅保存当前跳点的顶点信息以及路径,避免相关技术中利用邻居消息的方式来实现随机游走过程,由于walker对象通常只有邻居消息大小的百分之一甚至更低,因此,采样walker对象记录随机序列显著降低了网络通讯开销;最后,根据高效获取的随机游走序列能够精准确定高关联性社交用户,进而可以依赖高关联性社交用户确定需要推荐的社交数据。因此,本申请通过降低推荐的社交数据在获取过程中的网络传输数据量以及随机采样过程的复杂度和执行效率,实现在保证获取的社交数据的可靠性的情况下,提升社交数据的获取效率。
在一种可能的情况中,本申请实施例给出了一种metapath2vec随机游走进程执行流程;具体请参考图5,具体执行流程如下:
S501、根据与配置文件对应的每个顶点的类型信息筛选起始跳点;起始跳点为符合进程参数中起始顶点类型的顶点;
S502、为起始跳点初始化walker对象;walker对象包含跳点ID以及路径ID;
S503、根据进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将当前跳点的ID替换walker对象中的跳点ID;
S504、判断替换前后的两个跳点是否位于相同的计算节点;若是,则执行步骤S506,若否,则执行步骤S505;
S505、向当前跳点所在的计算节点发送walker转移消息,同时销毁对应walker对象;
S506、判断总跳数是否达到预定阈值;若是,则执行步骤S507,若否,则返回继续执行步骤S503;
S507、根据路径ID下的各个跳点ID得到随机游走序列。
本申请实施例中分布式计算集群中各个计算节点在读取到对应的配置文件以及进程参数时,分布式计算集群中全部计算节点同时启动metapath2vec随机游走进程,所有metapath2vec随机游走进程遍历属于自身计算节点的所有配置文件中顶点类型信息来筛选起始跳点;若顶点类型符合进程参数中metapath参数中规定的起始顶点类型,则可以将该顶点作为起始跳点,并为该起始跳点初始化walker对象,其中,该walker对象包含跳点ID以及路径ID;即,以该起始跳点对应的跳点ID(即顶点ID)和路径ID初始化一个walker对象,保存在当前计算进程的内存中以备后用。在遍历顶点类型信息完成后,所有metapath2vec随机游走进程遍历属于自身计算节点的所有walker对象,按照进程参数中metapath参数中规定路径信息,从对应的Alias-Table中挑选一个顶点作为下一跳顶点(V),也就是作为当前跳点(V),如果不存在能够作为当前跳点(V)的对应顶点,则直接销毁当前walker对象,标明该路径上的随机游走过程以结束;如果存在能够作为当前跳点(V)的对应顶点,则将当前跳点的ID替换walker对象中的跳点ID,即,将当前跳点(V)的ID替换walker对象中的存储的顶点信息,使得walker对象中每次都仅存储当前最新的顶点ID。判断walker对象替换前后的两个跳点是否位于相同的计算节点;若位于不同计算节点,则生成一条walker转移消息,可以通过MPI接口发送给当前跳点(V)所在的计算节点,同时销毁自身计算节点所保存的walker对象,当前跳点(V)所在的计算节点接收到walker转移消息后将接收到的walker对象保存在当前计算进程的内存中以备后用;若位于相同计算节点,则判断总跳数是否达到预定阈值;若是,则根据路径ID下的各个跳点ID得到随机游走序列;若否,则继续执行根据进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将当前跳点的ID替换walker对象中的跳点ID的步骤,直到完成随机游走过程。
为了便于理解,可以参考图6-8,以两个计算节点组成的分布式计算集群为例,说明上述随机游走过程。通过图6的底图可以看到其包含了5个顶点和7条边(无向,权重均等),底图沿虚线划分为2部分,计算节点1上存储有0,1,2这3个顶点的配置文件;计算节点2上存储有3,4这2个顶点的配置文件。其中A类型顶点有:0,1,4;B类型顶点有:2,3;metapath参数为A-B-A。下面以起始顶点为0的walker对象来说明上述实施例提供的随机游走过程。
为起始跳点0初始化一个walker对象,通过图7可以看到当前顶点也就是起始跳点为0的顶点位于计算节点1中,0顶点的walker对象也位于计算节点1中,由于walker对象与当前顶点位于同一台机器上,因此根据metapath参数信息,可以使用顶点0的类型为B的Alias-Table,选出下一跳顶点,即顶点3作为当前跳点。因为顶点3位于计算节点2中,因此顶点3与顶点0不在同一台计算节点上,可以产生一条MPI消息将该walker对象发送到计算节点2上。walker对象此时位于计算节点2中顶点3上(如图8所示),且此时walker对象中记录的跳点ID为顶点3的ID,继续根据metapath参数信息,使用顶点3的类型为A的Alias-Table,选出下一跳顶点。
为了便于理解,结合本方案的一种应用场景进行介绍,下面以社交数据为文章,即推荐任务为向目标社交用户推荐文章这一应用场景,如,微信“看一看”文章推荐的场景,说明社交数据推荐方法的过程。
可以利用“用户关注公众号”,“公众号发表文章”,“用户阅读文章”三种类型的边构造社交异构网络(该社交异构网络中存在3种类型的顶点:用户,公众号,文章),可以分别使用“关注”,“发表”,“阅读”进行边的指代。“关注”类型的边使用一个用户3个月内总共阅读该公众号发表文章的次数作为边上的权重(可以是单精度浮点型,例如3次,权重为3.0),“发表”类型的边使用固定的1.0作为边上的权重,“阅读”类型的边使用阅读时长作为边上的权重(例如60秒,权重为60.0)。社交异构网络构造完毕后可以存储于存储集群中,根据社交异构网络可以得到各个顶点的配置文件,设置进程参数,如metapath参数设置为:用户-文章-公众号,步长为9,运行10轮。
终端将配置文件以及进程参数发送给分布式计算集群,分布式计算集群执行metapath2vec随机游走进程,输出随机游走序列。其中,分布式计算集群利用Alias-Method算法,计算配置文件对应顶点的Alias-Table,并利用walker对象保存当前跳点对应的顶点信息,将walker对象在同一路径下保存的顶点信息形成随机游走序列。
分布式计算集群在得到随机游走序列后,将随机游走序列输入word2vec模型进行训练,训练完成后,该社交异构网络中每个顶点都会生成一个embedding向量(可以是N维单精度浮点型数组)。计算目标社交用户对应顶点的embedding向量与各个其他社交用户对应顶点的embedding向量之间的cos相似度。2个用户顶点之间的embedding向量的cos相似度越高,在该场景下代表二者兴趣越相近。推荐过程中针对目标社交用户进行文章推荐时,首先根据随机游走序列从全局获取目标社交用户最相似的N个(如3个)用户,然后将这3个用户最近1天内阅读过的文章作为社交数据推送给目标社交用户。当然,也可以仅仅选择这3个用户最近1天内阅读过最喜欢的10篇文章作为社交数据推送给目标社交用户。
另一方面,本申请还提供了一种社交数据推荐装置。如,参见图9,其示出了本申请一种社交数据推荐装置一个实施例的组成结构示意图,本实施例的装置可以应用于如上实施例中的计算节点,该装置包括:
获取模块101,用于获取推荐任务的配置文件以及进程参数;
随机游走模块102,用于利用配置文件以及进程参数,执行metapath2vec随机游走进程,得到随机游走序列;metapath2vec随机游走进程利用Alias-Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点对应的顶点信息,将walker对象在同一路径下保存的顶点信息形成随机游走序列;
相似度计算模块103,用于利用随机游走序列计算目标社交用户与其他社交用户之间的相似度;
推荐模块104,用于根据相似度确定推荐给目标社交用户的社交数据。
可选的,获取模块101,可以包括:
配置文件获取单元,用于按照hash取模的方法,获取社交异构网络中对应顶点的配置文件。
可选的,相似度计算模块103,可以包括:
向量计算单元,用于将随机游走序列输入word2vec模型,计算社交异构网络中各个顶点对应的embedding向量;
相似度计算单元,用于计算目标社交用户对应顶点的embedding向量与其他社交用户对应顶点的embedding向量之间相似度。
可选的,推荐模块104,可以包括:
相似用户确定单元,用于确定相似社交用户;相似社交用户为相似度较高的预定数量个其他社交用户;
推荐单元,用于将相似社交用户对应的社交数据,作为推荐给目标社交用户的社交数据。
可选的,随机游走模块102,可以包括:
起始跳点单元,用于根据与配置文件对应的每个顶点的类型信息筛选起始跳点;起始跳点为符合进程参数中起始顶点类型的顶点;并为起始跳点初始化walker对象;walker对象包含跳点ID以及路径ID;
采样单元,用于根据进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将当前跳点的ID替换walker对象中的跳点ID;
第一判断单元,用于判断替换前后的两个跳点是否位于相同的计算节点;
转移单元,用于两个跳点不位于相同的计算节点,则向当前跳点所在的计算节点发送walker转移消息,同时销毁对应walker对象;
第二判断单元,用于两个跳点位于相同的计算节点,则判断总跳数是否达到预定阈值;若总跳数不满足预定阈值,则返回继续执行采样单元;
序列获取单元,用于总跳数满足预定阈值,则根据路径ID下的各个跳点ID得到随机游走序列。
另一方面,本申请还提供了一种分布式计算集群,包括:多个计算节点,该计算节点可以包括处理器和存储器。该计算节点中处理器和存储器之间的关系可以参考图10。其中,计算节点的处理器用于执行所述存储器中存储的程序;计算节点的存储器用于存储程序,所述程序至少用于实现上述所述的社交数据推荐方法。
当然,该计算节点还可以包含通信接口、显示单元以及输入装置等,具体在此不加以限制。
由图10可知,该硬件组成框架可以包括:计算节点10,其中,计算节点10可以包括:处理器11、存储器12、通信接口13、输入单元14和显示器15和通信总线16。
处理器11、存储器12、通信接口13、输入单元14、显示器15、均通过通信总线16完成相互间的通信。在本申请实施例中,该处理器11,可以为中央处理器(Central ProcessingUnit,CPU),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。该处理器可以调用存储器12中存储的程序。具体的,处理器可以执行以下故事生成方法的实施例中计算机设备侧所执行的操作。存储器12中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:
获取推荐任务的配置文件以及进程参数;
利用配置文件以及进程参数,执行metapath2vec随机游走进程,得到随机游走序列;metapath2vec随机游走进程利用Alias-Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点对应的顶点信息,将walker对象在同一路径下保存的顶点信息形成随机游走序列;
利用随机游走序列计算目标社交用户与其他社交用户之间的相似度;
根据相似度确定推荐给目标社交用户的社交数据。
在一种可能的实现方式中,该存储器12可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据,比如,用户数据、用户访问数据以及音视频数据等等。
此外,存储器12也可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
该通信接口13可以为通信模块的接口,如GSM模块的接口。
本申请还可以包括显示器14和输入单元15等等。
当然,图10所示的计算节点的结构并不构成对本申请实施例中计算节点的限定,在实际应用中计算节点可以包括比图10所示的更多或更少的部件,或者组合某些部件。其中,图10中的计算节点10可以为服务器。
在本申请实施例中,计算节点10中处理器11可以通过通信总线16从通信接口13或者输入单元14接收配置文件以及进程参数,并调用存储器12中存储的程序对配置文件以及进程参数进行处理生成随机游走序列,进而根据随机游走序列得到推荐的社交数据。
另一方面,本申请还提供了一种存储介质,该存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,用于实现如上任意一个实施例中所描述的社交数据推荐方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种社交数据推荐方法,其特征在于,应用于分布式计算集群,包括:
获取推荐任务的配置文件以及进程参数;
利用所述配置文件以及所述进程参数,执行metapath2vec随机游走进程,得到随机游走序列;所述metapath2vec随机游走进程利用Alias-Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点对应的顶点信息,将所述walker对象在同一路径下保存的顶点信息形成所述随机游走序列;
利用所述随机游走序列计算目标社交用户与其他社交用户之间的相似度;
根据所述相似度确定推荐给所述目标社交用户的社交数据。
2.根据权利要求1所述的社交数据推荐方法,其特征在于,所述获取推荐任务的配置文件,包括:
按照hash取模的方法,获取社交异构网络中对应顶点的配置文件。
3.根据权利要求1所述的社交数据推荐方法,其特征在于,所述利用所述随机游走序列计算目标社交用户与其他社交用户之间的相似度,包括:
将所述随机游走序列输入word2vec模型,计算社交异构网络中各个顶点对应的embedding向量;
计算目标社交用户对应顶点的embedding向量与其他社交用户对应顶点的embedding向量之间的相似度。
4.根据权利要求3所述的社交数据推荐方法,其特征在于,所述根据所述相似度确定推荐给所述目标社交用户的社交数据,包括:
确定相似社交用户;所述相似社交用户为相似度较高的预定数量个其他社交用户;
将所述相似社交用户对应的社交数据,作为推荐给所述目标社交用户的社交数据。
5.根据权利要求1至4任一项所述的社交数据推荐方法,其特征在于,所述利用所述配置文件以及所述进程参数,执行metapath2vec随机游走进程,得到随机游走序列,包括:
根据与所述配置文件对应的每个顶点的类型信息筛选起始跳点;所述起始跳点为符合所述进程参数中起始顶点类型的顶点;
为所述起始跳点初始化walker对象;所述walker对象包含跳点ID以及路径ID;
根据所述进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将所述当前跳点的ID替换所述walker对象中的跳点ID;
判断总跳数是否达到预定阈值;
若所述总跳数达到所述预定阈值时,根据所述路径ID下的各个跳点ID得到随机游走序列;若所述总跳数未达到所述预定阈值时,则继续执行所述根据所述进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将所述当前跳点的ID替换所述walker对象中的跳点ID的步骤。
6.根据权利要求5所述的社交数据推荐方法,其特征在于,所述根据所述进程参数中的路径信息,从对应的Alias-Table中采样当前跳点,将所述当前跳点的ID替换所述walker对象中的跳点ID之后,还包括:
判断替换前后的两个跳点是否位于相同的计算节点;
若是,则继续执行所述判断总跳数是否达到预定阈值的步骤;若否,则向当前跳点所在的计算节点发送walker转移消息,同时销毁对应walker对象。
7.根据权利要求5所述的社交数据推荐方法,其特征在于,所述Alias-Table的生成过程,包括:
利用Alias-Method算法,计算配置文件对应顶点的Alias-Table。
8.一种社交数据推荐装置,其特征在于,应用于分布式计算集群,包括:
获取模块,用于获取推荐任务的配置文件以及进程参数;
随机游走模块,用于利用所述配置文件以及所述进程参数,执行metapath2vec随机游走进程,得到随机游走序列;所述metapath2vec随机游走进程利用Alias-Table采样各个跳点,在得到跳点时利用walker对象保存当前跳点对应的顶点信息,将所述walker对象在同一路径下保存的顶点信息形成所述随机游走序列;
相似度计算模块,用于利用所述随机游走序列计算目标社交用户与其他社交用户之间的相似度;
推荐模块,用于根据所述相似度确定推荐给所述目标社交用户的社交数据。
9.一种分布式计算集群,其特征在于,包括:多个计算节点,用于执行如上权利要求1至7任一项所述的社交数据推荐方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至7任一项所述的社交数据推荐方法。
CN201910879958.5A 2019-09-16 2019-09-16 社交数据推荐方法、装置、分布式计算集群及存储介质 Active CN112507244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910879958.5A CN112507244B (zh) 2019-09-16 2019-09-16 社交数据推荐方法、装置、分布式计算集群及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910879958.5A CN112507244B (zh) 2019-09-16 2019-09-16 社交数据推荐方法、装置、分布式计算集群及存储介质

Publications (2)

Publication Number Publication Date
CN112507244A true CN112507244A (zh) 2021-03-16
CN112507244B CN112507244B (zh) 2023-09-26

Family

ID=74924041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910879958.5A Active CN112507244B (zh) 2019-09-16 2019-09-16 社交数据推荐方法、装置、分布式计算集群及存储介质

Country Status (1)

Country Link
CN (1) CN112507244B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515674A (zh) * 2021-06-10 2021-10-19 清华大学 时序图随机游走的采样方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120226651A1 (en) * 2011-03-03 2012-09-06 Xerox Corporation System and method for recommending items in multi-relational environments
CN109767008A (zh) * 2019-01-07 2019-05-17 武汉大学 一种基于元模式的高度异构网络多态特征学习方法
CN110032682A (zh) * 2019-04-17 2019-07-19 腾讯科技(上海)有限公司 一种信息推荐列表生成方法、装置及设备
CN110175299A (zh) * 2019-05-28 2019-08-27 腾讯科技(上海)有限公司 一种推荐信息确定的方法及服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120226651A1 (en) * 2011-03-03 2012-09-06 Xerox Corporation System and method for recommending items in multi-relational environments
CN109767008A (zh) * 2019-01-07 2019-05-17 武汉大学 一种基于元模式的高度异构网络多态特征学习方法
CN110032682A (zh) * 2019-04-17 2019-07-19 腾讯科技(上海)有限公司 一种信息推荐列表生成方法、装置及设备
CN110175299A (zh) * 2019-05-28 2019-08-27 腾讯科技(上海)有限公司 一种推荐信息确定的方法及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
方晨;张恒巍等: "基于随机游走和多样性图排序的个性化服务推荐方法", 《电子学报》, no. 2018, pages 2773 - 2780 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515674A (zh) * 2021-06-10 2021-10-19 清华大学 时序图随机游走的采样方法及装置
CN113515674B (zh) * 2021-06-10 2022-10-25 清华大学 时序图随机游走的采样方法及装置

Also Published As

Publication number Publication date
CN112507244B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
CN106649346B (zh) 数据重复性校验方法及装置
CN112381216B (zh) 混合图神经网络模型的训练、预测方法和装置
CN107590690B (zh) 数据处理方法、装置及服务器
US11494614B2 (en) Subsampling training data during artificial neural network training
CN109032803B (zh) 数据处理方法和装置、客户端
US9959448B2 (en) Multi-step sequence alignment
WO2015185020A1 (en) Information category obtaining method and apparatus
CN112231514B (zh) 一种数据去重方法、装置及存储介质和服务器
CN109255073B (zh) 一种个性化推荐方法、装置及电子设备
CN105022807A (zh) 信息推荐方法及装置
CN111177568A (zh) 基于多源数据的对象推送方法、电子装置及存储介质
CN112507244A (zh) 社交数据推荐方法、装置、分布式计算集群及存储介质
Ferragina Pearls of Algorithm Engineering
CN111667018B (zh) 一种对象聚类的方法、装置、计算机可读介质及电子设备
CN114332550A (zh) 一种模型训练方法、系统及存储介质和终端设备
KR20230152629A (ko) 재구성된 질의를 생성하기 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체
CN110569447B (zh) 一种网络资源的推荐方法、装置及存储介质
CN110083732B (zh) 图片检索方法、装置及计算机存储介质
CN108536759B (zh) 一种样本回放数据存取方法及装置
CN107562533B (zh) 一种数据加载处理方法及装置
CN107368281B (zh) 一种数据处理方法及装置
TWI776102B (zh) 提供躥升音源排行榜的方法及系統
CN114254204A (zh) 数据处理方法、装置、介质及电子设备
CN113010788A (zh) 信息推送方法及装置、电子设备、计算机可读存储介质
CN110069542B (zh) 关键词评估方法及装置

Legal Events

Date Code Title Description
PB01 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