CN115909419A - 图数据处理方法、装置、计算机设备及存储介质 - Google Patents
图数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115909419A CN115909419A CN202111151811.8A CN202111151811A CN115909419A CN 115909419 A CN115909419 A CN 115909419A CN 202111151811 A CN202111151811 A CN 202111151811A CN 115909419 A CN115909419 A CN 115909419A
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- neighborhood
- features
- embedded features
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 45
- 230000000977 initiatory effect Effects 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims description 100
- 239000003999 initiator Substances 0.000 claims description 56
- 238000005070 sampling Methods 0.000 claims description 43
- 238000005192 partition Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 17
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 5
- 239000011159 matrix material Substances 0.000 description 17
- 238000012546 transfer Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000017105 transposition Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- UFHFLCQGNIYNRP-UHFFFAOYSA-N Hydrogen Chemical compound [H][H] UFHFLCQGNIYNRP-UHFFFAOYSA-N 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 229910052739 hydrogen Inorganic materials 0.000 description 2
- 239000001257 hydrogen Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005295 random walk Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/12—Fingerprints or palmprints
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种图数据处理方法、装置、计算机设备及存储介质,属于计算机技术领域,能够应用于云技术、人工智能以及智慧交通等场景。方法包括:基于对象数据,获取目标图;基于M个节点和M个节点之间的有向边进行多轮迭代,得到M个节点对应的发起嵌入特征和接收嵌入特征;其中,第z轮迭代的步骤包括:从M个节点中获取N个节点;基于N个节点关联的有向边,确定N个节点关联的多个第一邻域节点以及N个节点关联的多个第二邻域节点;基于N个节点的第一嵌入特征、多个第一邻域节点的第二嵌入特征以及多个第二邻域节点的第三嵌入特征,确定N个节点的第四嵌入特征。该方案,使得各节点的嵌入特征能够最大化的保存第一邻域和第二邻域的信息。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种图数据处理方法、装置、计算机设备及存储介质。
背景技术
图嵌入技术已成为大规模图数据挖掘的一种有效技术手段。图嵌入的主要思想是将高维稀疏的原始图数据,映射成低维度稠密的向量,即图中每个节点的嵌入向量,从而在嵌入空间中尽可能地保留图的拓扑结构信息。如何高效的对图数据进行图嵌入是一个研究方向。
目前,常用的图嵌入技术有DeepWalk(深度游走)、Node2Vec(节点到向量)、LINE(Large-scale Information Network Embedding,大规模信息网络嵌入)等,基于随机游走算法来确定图数据中的节点和节点之间的业务关系,最后每个节点的编码向量。
然而,对于有向图来说,有向图中的一对节点分别表示业务关系的发起者和接收者,该对节点之间的有向边从发起者指向接收者,但是上述三种算法最终得到的都是图中每个节点对应的一个编码向量,既不能表示节点的双重身份,又不能体现有向边的指向关系。
发明内容
本申请实施例提供了一种图数据处理方法、装置、计算机设备及存储介质,使得各节点的嵌入特征能够最大化的保存第一邻域和第二邻域的信息,进而基于有向边连接的两个节点的嵌入特征之间的内积即可确定该有向边的指向关系,从而既能表示节点的双重身份,又能表示有向边的指向关系。所述技术方案如下:
一方面,提供了一种图数据处理方法,所述方法包括:
基于对象数据,获取目标图,所述目标图包括表示对象的M个节点,M为正整数,所述目标图中的有向边用于表示所连接的节点对应的对象之间存在业务关系,且所述有向边的指出节点为所述业务关系的发起者,所述有向边的指向节点为所述业务关系的接收者;
基于所述M个节点和所述M个节点之间的有向边进行多轮迭代,得到所述M个节点对应的发起嵌入特征和接收嵌入特征,所述发起嵌入特征用于表示对应的节点作为发起者的特征,所述接收嵌入特征用于表示对应的节点作为接收者的特征;
其中,第z轮迭代的步骤包括:
从所述M个节点中获取N个节点,N为正整数,z为正整数;
基于所述N个节点关联的有向边,确定所述N个节点关联的多个第一邻域节点以及所述N个节点关联的多个第二邻域节点,所述第一邻域节点指出的有向边指向所述N个节点,所述N个节点指出的有向边指向所述多个第二邻域节点;
基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的第四嵌入特征。
另一方面,提供了一种图数据处理装置,所述装置包括:
图获取模块,用于基于对象数据,获取目标图,所述目标图包括表示对象的M个节点,M为正整数,所述目标图中的有向边用于表示所连接的节点对应的对象之间存在业务关系,且所述有向边的指出节点为所述业务关系的发起者,所述有向边的指向节点为所述业务关系的接收者;
迭代模块,用于基于所述M个节点和所述M个节点之间的有向边进行多轮迭代,得到所述M个节点对应的发起嵌入特征和接收嵌入特征,所述发起嵌入特征用于表示对应的节点作为发起者的特征,所述接收嵌入特征用于表示对应的节点作为接收者的特征;
其中,所述迭代模块,包括:
获取单元,用于从所述M个节点中获取N个节点,N为正整数;
节点确定单元,用于基于所述N个节点关联的有向边,确定所述N个节点关联的多个第一邻域节点以及所述N个节点关联的多个第二邻域节点,所述第一邻域节点指出的有向边指向所述N个节点,所述N个节点指出的有向边指向所述多个第二邻域节点;
特征确定单元,用于基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的第四嵌入特征。
在一些实施例中,所述特征确定单元,包括:
第一确定子单元,用于基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征、节点入度分布信息以及多个第一节点的第五嵌入特征,确定第一函数,所述节点入度分布信息用于表示所述N个节点的节点入度的分布,所述多个第一节点基于所述N个节点的第一邻域负采样得到,所述第一邻域包括所述多个第一邻域节点;
第二确定子单元,用于基于所述N个节点的第一嵌入特征、所述多个第二邻域节点的第三嵌入特征、节点出度分布信息以及多个第二节点的第六嵌入特征,确定第二函数,所述节点出度分布信息用于表示所述N个节点的节点出度的分布,所述多个第二节点基于所述N个节点的第二邻域负采样得到,所述第二邻域包括所述多个第二邻域节点;
第一优化子单元,用于对基于所述第一函数和所述第二函数构成的第一目标函数进行优化,得到所述N个节点的第四嵌入特征。
在一些实施例中,所述第一确定子单元,用于从所述N个节点的第一嵌入特征中,获取N个第一中间嵌入特征,所述N个第一中间嵌入特征用于表示所述N个节点作为所述接收者的特征;从所述多个第一邻域节点的第二嵌入特征中,获取多个第二中间嵌入特征,所述多个第二中间嵌入特征用于表示所述多个第一邻域节点作为所述发起者的特征;基于所述节点入度分布信息,确定第一期望信息,所述第一期望信息用于表示所述多个第一节点满足所述节点入度分布信息的数学期望;从所述多个第一节点的第五嵌入特征中,获取多个第三中间嵌入特征,所述多第三中间嵌入特征用于表示所述多个第一节点作为所述发起者的特征;基于所述N个第一中间嵌入特征、所述多个第二中间嵌入特征、所述第一期望信息以及所述多个第三中间嵌入特征,确定所述第一函数。
在一些实施例中,所述第二确定子单元,用于从所述N个节点的第一嵌入特征中,获取N个第四中间嵌入特征,所述N个第四中间嵌入特征用于表示所述N个节点作为所述发起者的特征;从所述多个第二邻域节点的第三嵌入特征中,获取多个第五中间嵌入特征,所述多个第五中间嵌入特征用于表示所述多个第二邻域节点作为所述接收者的特征;基于所述节点出度分布信息,确定第二期望信息,所述第二期望信息用于表示所述多个第二节点满足所述节点出度分布信息的数学期望;从所述多个第二节点的嵌入特征中,获取多个第六中间嵌入特征,所述多个第六中间嵌入特征用于表示所述多个第二节点作为所述接收者的特征;基于所述N个第四中间嵌入特征、所述多个第五中间嵌入特征、所述第二期望信息以及所述多个第六中间嵌入特征,确定所述第二函数。
在一些实施例中,所述特征确定单元,包括:
第三确定子单元,用于基于所述N个节点的第一嵌入特征和所述多个第一邻域节点的第二嵌入特征,确定第一概率信息,所述第一概率信息用于指示基于所述N个节点确定所述多个第一邻域节点的概率;
第四确定子单元,用于基于所述N个节点的第一嵌入特征和所述多个第二邻域节点的第三嵌入特征,确定第二概率信息,所述第二概率信息用于指示基于所述N个节点确定所述多个第二邻域节点的概率;
第五确定子单元,用于基于所述第一概率信息和所述第二概率信息,确定第二目标函数;
第二优化子单元,用于对所述第二目标函数进行优化,得到所述N个节点的第四嵌入特征。
在一些实施例中,所述第三确定子单元,用于从所述N个节点的第一嵌入特征中,获取N个第一中间嵌入特征,所述N个第一中间嵌入特征用于表示所述N个节点作为所述接收者的特征;从所述多个第一邻域节点的第二嵌入特征中,获取多个第二中间嵌入特征,所述多个第二中间嵌入特征用于表示所述多个第一邻域节点作为所述发起者的特征;获取所述M个节点的M个第七中间嵌入特征,所述M个第七中间嵌入特征用于表示所述M个节点作为所述发起者的特征;基于所述N个第一中间嵌入特征、所述多个第二中间嵌入特征以及所述M个第七中间嵌入特征,确定所述第一概率信息。
在一些实施例中,所述第四确定子单元,用于从所述N个节点的第一嵌入特征中,获取N个第四中间嵌入特征,所述N个第四中间嵌入特征用于表示所述N个节点作为所述发起者的特征;从所述多个第二邻域节点的第三嵌入特征中,获取多个第五中间嵌入特征,所述多个第五中间嵌入特征用于表示所述多个第二邻域节点作为所述接收者的特征;获取所述M个节点的M个第八中间嵌入特征,所述M个第八中间嵌入特征用于表示所述M个节点作为所述接收者的特征;基于所述N个第四中间嵌入特征、所述多个第五中间嵌入特征以及所述M个第八中间嵌入特征,确定所述第二概率信息。
在一些实施例中,所述装置还包括:
划分模块,用于将所述目标图被划分为至少一个图分区;
存储模块,用于对于任一图分区,将所述图分区中的节点存储至参数服务器中;
所述存储模块,还用于将所述图分区对应的边表,存储至所述图分区对应的执行器中;
采样模块,用于对于任一执行器,基于所述执行器存储的边表,从所述目标图中采样得到多个采样边,所述多个采样边连接的节点为所述N个节点;
所述获取单元,用于基于所述多个采样边,确定N个节点标识;从所述参数服务器获取所述N个节点标识对应的所述N个节点。
在一些实施例中,所述特征确定单元,用于基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的N个特征梯度;将所述N个特征梯度上传至所述参数服务器,由所述参数服务器基于所述N个节点的第一嵌入特征和所述N个特征梯度,确定所述N个节点的第四嵌入特征。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行以实现本申请实施例中的图数据处理方法所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一段计算机程序,所述至少一段计算机程序由处理器加载并执行以实现如本申请实施例中图数据处理方法所执行的操作。
另一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从该计算机可读存储介质读取该计算机程序代码,该处理器执行该计算机程序代码,使得该计算机设备执行上述各个方面的各种可选实现方式中提供的图数据处理方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供了一种新颖的图数据处理的技术方案,通过每轮迭代时从目标图中获取N个节点,然后基于该N个节点的第一嵌入特征,该N个节点关联的多个第一邻域节点的第二嵌入特征和多个第二邻域节点的第三嵌入特征,来确定该N个节点的第四嵌入特征,从而完成一轮迭代过程,实现对N个节点的嵌入特征的更新,由于并非是对M个节点进行处理,因此能够大幅度的减少运算量,在多轮迭代之后,即可得到该M个节点作为发起者的发起嵌入特征和作为接收者的接收嵌入特征,使得各节点的嵌入特征能够最大化的保存第一邻域和第二邻域的信息,进而基于有向边连接的两个节点的嵌入特征之间的内积即可确定该有向边的指向关系,从而既能表示节点的双重身份,又能表示有向边的指向关系。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例提供的一种图数据处理方法的实施环境示意图;
图2是根据本申请实施例提供的一种图数据处理方法的流程图;
图3是根据本申请实施例提供的另一种图数据处理方法的流程图;
图4是根据本申请实施例提供的一种有向图的示意图;
图5是根据本申请实施例提供的一种有向图邻域定义的示意图;
图6是根据本申请实施例提供的一种分布式计算架构的示意图;
图7是根据本申请实施例提供的一种图数据处理装置的框图;
图8是根据本申请实施例提供的另一种图数据处理装置的框图;
图9是根据本申请实施例提供的一种终端的结构框图;
图10是根据本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上。
以下,对本申请涉及的术语进行解释。
图(Graph),在数学中图是描述于一组对象的结构,其中某些对象对在某种意义上是“相关的”。这些对象对应于称为节点的数学抽象(也称为顶点或点),并且每个相关的节点对通过边(也称为链接或线)来连接。在本申请实施例中,该对象为用户账号、物品、虚拟资源、职位以及虚拟直播间等,本申请实施例对此不进行限制。如对象为用户账号,图中的不同节点表示不同的用户账号,图中的边表示用户账号之间的业务关系,如转账、申请好友等。
有向图(Oriented Graph)是全部由有向边构成的图。有向图中的一个节点具有两种不同的身份或角色。例如,从节点1和节点2指出的有向边指向节点3,则节点3相对于节点1和节点2的身份为接收者(也可以称为响应者或目标角色);从节点3指出的有向边指向节点4和节点五,则节点3相对于节点4和节点5的身份为发起者(也可以称为发送者或源角色)。
有向关系不对称:有向图中一对节点的边关系是不对称的,如有向图中存在由节点1指向节点3的有向边,而不存在由节点3指向节点1的有向边,则节点1和节点3的关系不对称。
图嵌入(Graph Embedding,也称图表示学习),是一种将图数据(通常为高维稠密的矩阵)映射为低微稠密向量的过程,能够很好地解决图数据难以高效输入机器学习算法的问题。
边表,也称边集表,图的储存结构之一。边表由表头结点和表结点两部分组成,图中每个顶点均对应一个存储在数组中的表头结点。
出度:由某个节点指出的边的个数称为该节点的出度。
入度:指向某个节点的边的个数称为该节点的入度。
本申请实施例提供的图数据处理方法,能够应用于各种场景,包括但不限于云技术、人工智能、智慧交通以及辅助驾驶等。以下介绍本申请实施例的实施环境。
本申请实施例提供的图数据处理方法,能够由计算机设备执行,该计算机设备为终端或服务器。下面首先以计算机设备为服务器为例,介绍一下本申请实施例提供的图数据处理方法的实施环境,图1是根据本申请实施例提供的一种图数据处理方法的实施环境示意图。参见图1,该实施环境包括终端101和服务器102。
终端101和服务器102能够通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一些实施例中,终端101是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能家电以及车载终端等,但并不局限于此。终端101安装和运行有应用程序。该应用程序是社交程序、购物程序、多媒体程序以及游戏程序等,本申请实施例对此不进行限制。在一些实施例中,终端101是用户使用的终端,该终端101运行有社交程序,该社交程序登录有该用户的用户账号。在一些实施例中,上述终端101的数量可以更多或更少。比如上述终端101仅为一个,或者上述终端101为几十个或几百个,或者更多数量。本申请实施例对终端101的数量和设备类型不加以限定。
在一些实施例中,服务器102是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。服务器102用于为终端101运行的上述应用程序提供后台服务。在一些实施例中,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,服务器102和终端101二者之间采用分布式计算架构进行协同计算。
在该实施环境中,以终端101安装的应用程序为购物程序为例进行说明。
例如,终端101安装的购物程序登录有用户账号,服务器102将用户账号数据和商品数据作为对象数据,基于该对象数据构建目标图,该目标图中的节点表示用户账号或商品,该目标图中的有向边表示用户账号与物品之间的业务关系,如顾客使用用户账号购买某个物品,表示顾客的用户账号的节点1与表示物品的节点2之间的有向边表示购买这一业务关系,该有向边由节点1指向节点2,此时节点1为购买的发起者,节点2为购买的接收者;同理,商家使用用户账号上架某个物品,表示商家的用户账号的节点3与表示物品的节点2之间的有向边表示上架这一业务关系,该有向边由节点3指向节点2,此时节点3为上架的发起者,节点2为上架的接收者。服务器102能够采用本申请实施例提供的图数据处理方法,获取该目标图中每个节点的嵌入特征。然后将该嵌入特征应用于物品推荐业务、社交推荐业务以及广告宣传业务等,本申请实施例对此不进行限制。
在另一实施例中,以计算机设备为终端,终端安装有多媒体程序为例。
例如,终端在用户授权之后,获取用户收听歌曲的历史记录数据,该历史记录数据包括歌手名称、歌曲名称以及歌曲类型等对象。终端以该历史记录数据为对象数据,构建目标图,该目标图中的节点表示歌手名称、歌曲名称以及歌曲类型等,该目标图中的有向边表示对象之间的业务关系,如某歌手演唱某歌曲,某歌曲属于某类型,则表示该歌手的节点A与该歌曲的节点B之间的有向边由节点A指向节点B,表示该歌曲的节点B与表示该类型的节点C之间的有向边由节点B指向节点C。终端101能够采用本申请实施例提供的图数据处理方法,获取该目标图中每个节点的嵌入特征。然后将该嵌入特征应用于物品推荐业务、社交推荐业务以及广告宣传业务等,本申请实施例对此不进行限制。
图2是根据本申请实施例提供的一种图数据处理方法的流程图,如图2所示,在本申请实施例中以由服务器执行为例进行说明。该图数据处理方法包括以下步骤:
201、基于对象数据,获取目标图,该目标图包括表示对象的M个节点,M为正整数,该目标图中的有向边用于表示所连接的节点对应的对象之间存在业务关系,且该有向边的指出节点为该业务关系的发起者,该有向边的指向节点为该业务关系的接收者。
在本申请实施例中,该对象数据中的对象包括用户账号、物品、多媒体资源、虚拟资源、虚拟服务以及虚拟直播间等,该对象数据中包括对象之间的关系信息,该关系信息包括对象之间的业务关系以及关联关系等。服务器基于不同的对象数据,能够构建不同的目标图,如社交关系图、购物图以及虚拟直播图等。其中,该对象数据为经过充分授权后采集和使用的数据。目标图中的有向边能够表示对象之间的业务关系,如有向边连接的两个节点对应的对象为两个用户账号,则该有向边表示的业务关系可以为转账关系、关注关系以及点赞关系等。对于任一有向边,指出该有向边的节点为该有向边所表示的业务关系的发起者;该有向边指向的节点为该有向边所表示的业务关系的接收者。
202、基于该M个节点和该M个节点之间的有向边进行多轮迭代,得到该M个节点对应的发起嵌入特征和接收嵌入特征,该发起嵌入特征用于表示对应的节点作为发起者的特征,该接收嵌入特征用于表示对应的节点作为接收者的特征。
在本申请实施例中,服务器能够基于多轮迭代,确定M个节点中每个节点作为发起者的发起嵌入特征以及每个节点作为接收者的接收嵌入特征。在每轮迭代过程中,对于任一节点,服务器能够基于节点之间的有向边,获取以该节点为接收者的第一邻域节点,以及以该节点为发起者的第二邻域节点,进而采用梯度下降的方式,逐步确定该节点的发起嵌入特征和接收嵌入特征。
下面以第z轮迭代为例,z为正整数。第z轮迭代的步骤包括:服务器从上述M个节点中获取N个节点,N为正整数。然后服务器基于该N个节点关联的有向边,确定该N个节点关联的多个第一邻域节点以及该N个节点关联的多个第二邻域节点。其中,该第一邻域节点指出的有向边指向该N个节点,该N个节点指出的有向边指向该多个第二邻域节点。然后服务器基于上述N个节点的第一嵌入特征、多个第一邻域节点的第二嵌入特征以及多个第二邻域节点的第三嵌入特征,确定该N个节点的第四嵌入特征,完成本轮迭代。需要说明的是,上述N个节点的第一嵌入特征、多个第一邻域节点的第二嵌入特征以及多个第二邻域节点的第三嵌入特征,由服务器执行第z-1轮迭代后得到。
本申请实施例提供了一种新颖的图数据处理方法,通过每轮迭代时从目标图中获取N个节点,然后基于该N个节点的第一嵌入特征,该N个节点关联的多个第一邻域节点的第二嵌入特征和多个第二邻域节点的第三嵌入特征,来确定该N个节点的第四嵌入特征,从而完成一轮迭代过程,实现对N个节点的嵌入特征的更新,由于并非是对M个节点进行处理,因此能够大幅度的减少运算量,在多轮迭代之后,即可得到该M个节点作为发起者的发起嵌入特征和作为接收者的接收嵌入特征,使得各节点的嵌入特征能够最大化的保存第一邻域和第二邻域的信息,进而基于有向边连接的两个节点的嵌入特征之间的内积即可确定该有向边的指向关系,从而既能表示节点的双重身份,又能表示有向边的指向关系。
图2示例性的示出了本申请实施例提供的图数据处理方法的主要流程,下面基于一种应用场景,对该图数据处理方法进行进一步的介绍。图3是根据本申请实施例提供的另一种图数据处理方法的流程图,如图3所示,在本申请实施例中以由服务器执行,应用于社交场景为例进行说明。该图数据处理方法包括以下步骤:
301、基于对象数据,获取目标图,该目标图包括表示对象的M个节点,M为正整数,该目标图中的有向边用于表示所连接的节点对应的对象之间存在业务关系,且该有向边的指出节点为该业务关系的发起者,该有向边的指向节点为该业务关系的接收者。
在本申请实施例中,该对象数据包括对象信息及关系信息,该对象信息用于表示对象的属性,该关系信息用于表示对象之间的业务关系。在该对象数据为用户账号数据时,该用户账号数据包括用户账号信息和账号关系信息。该用户账号信息包括用户账号标识、用户账号等级等用户账号的属性。该账号关系信息包括该用户账号与其他用户账号之间的业务关系等,本申请实施例对该对象数据所包括的内容不进行限制。
在本申请实施例中,服务器能够基于上述对象数据构建目标图,该目标图中包括M个节点和该M个节点之间的有向边。其中,该M个节点表示对象数据中包括的M个不同的用户账号,M为正整数。该M个节点中,任意两个节点之间的有向边用于表示该两个节点对应的用户账号之间存在业务关系,如好友关系、群组关系、收藏关系以及转账关系等。对于任一有向边,该指出该有向边的节点为该有向边所表示的业务关系的发起者,该有向边指向的节点为该有向边所表示的业务关系的接收者。
例如,图4是根据本申请实施例提供的一种有向图的示意图。参见图4所示,该有向图示例性的示出了A、B、C、D、E、F这个6个表示用户账号的节点。以节点C为例,节点C指出两条有向边,且有两条有向边指向节点C。节点C相对于节点A和节点B来说,扮演着业务关系的接收者,也可以称为目标角色;节点C相对于节点E和节点F来说,扮演着业务关系的发起者,也可以称为源角色。如节点A和节点B表示的用户账号分别向节点C表示的用户账号发起转账业务,节点A和节点B为该转账业务的发起者,节点C为该转账业务的接收者;如节点C表示的用户账号创建的群组中包括节点E表示的用户账号,则节点C为该群组业务的发起者,节点E为该群组业务的接收者;如节点C表示的用户账号收藏有节点F表示的用户账号发布的内容,则节点C为该收藏业务的发起者,节点F为该收藏业务的接收者。
在一些实施例中,服务器还能够将上述对象数据发送至图创建服务器,由该图创建服务器基于上述对象数据,创建目标图。当然,服务器还能够从本地数据库中获取基于已基于上述对象数据创建完毕的目标图。本申请实施例对目标图的来源不进行限制。
在本申请实施例中,服务器能够基于该M个节点和该M个节点之间的有向边进行多轮迭代,以确定每个节点作为业务关系的发起者时的特征,以及每个节点作为业务关系的接收者时的特征。每轮迭代时,服务器能够对该M个节点分别进行处理,也能够采用分布式处理的方式,基于多个执行器分别处理M个节点中的部分节点,以提高处理效率。
在一些实施例中,服务器能够将目标图划分为至少一个图分区,每个图分区包括多个节点和该多个节点之间的有向边。对于任一图分区,服务器将该图分区中的节点存储至参数服务器中,将该图分区对应的边表,存储至该图分区对应的执行器中。通过将目标图划分为图分区,将节点分布式存储在参数服务器中,使得服务器能够基于多个执行器,实现分布式计算,显著的提高计算图嵌入的效率。
服务器中设置有多个执行器,该多个执行器能够同步执行图数据处理任务。以任一执行器为例,该执行器能够采用小批量随机梯度下降的方式确定该图分区中各个节点的嵌入特征,每轮迭代该执行器能够从对应的图分区中获取N个节点,N为正整数。
下面,以任一执行器的第z轮迭代为例进行介绍,z是正整数,步骤302-步骤307示例性的示出了第z轮迭代的一种实现方式,步骤302、步骤303以及步骤308-步骤310示例性示出了第z轮迭代的另一种实现方式。
302、从该M个节点中获取N个节点,N为正整数。
在本申请实施例中,服务器能够对上述M个节点进行采样,得到N个节点,该N个节点为第z轮迭代将处理的节点。
在一些实施例中,每个执行器均获取N个节点进行处理。对于任一执行器,服务器基于执行器存储的边表,采用Alias Table(别名表)的方法,从该目标图中采样得到多个采样边,该多个采样边连接的节点为上述N个节点。服务器能够基于该多个采样边,确定N个节点标识,然后从该参数服务器中获取该N个节点标识对应的N个节点。当然,服务器还能够采用其他方式确定采样边,或者直接采样节点,本申请实施例对此不进行限制。
303、基于该N个节点关联的有向边,确定该N个节点关联的多个第一邻域节点以及该N个节点关联的多个第二邻域节点,该第一邻域节点指出的有向边指向该N个节点,该N个节点指出的有向边指向该多个第二邻域节点。
在本申请实施例中,对于任一节点,服务器能够对该节点的邻域进行建模,根据节点的双重身份,将节点的邻域分为第一邻域和第二邻域,然后从第一邻域获取该节点关联的至少一个第一邻域节点,从第二邻域获取该节点关联的至少一个第二邻域节点。其中,第一邻域中的第一邻域节点与该节点之间的有向边指向该节点;第二邻域中的第二邻域节点与该节点之间的有向边由该节点指出。需要说明的是,根据节点与节点之间的距离,将节点的邻域划分为1阶至R阶(也可以称为1跳邻居至R跳邻居),R为正整数。其中,第一邻域也可以称为源邻域,第二邻域也可以称为目标邻域。
例如,以业务关系为转账关系为例,对于任一节点,该节点关联的至少一个第一邻域节点所表示的用户账号,均转账给该节点所表示的用户账号;该节点关联的至少一个第二邻域节点所表示的用户账号,均接收到该节点所表示的用户账号的转账。
对于任一节点vn,该节点的R阶内第一邻域和第二邻域的表示方式,参见公式(1)和公式(2)所示:
例如,图5是根据本申请实施例提供的一种有向图邻域定义的示意图。参见图5所示,节点A的一阶第一邻域包括节点B、节点C和节点D,节点A的二阶第一邻域包括节点H和节点I;节点A的一阶第二邻域包括节点E、节点F和节点G,节点A的二阶第二邻域包括节点J和节点K。其中,一阶第一邻域中的任一节点与节点A之间的有向边指向节点A,二阶第一邻域中任一节点连接的有向边指向一阶第一邻域中的节点;一阶第二邻域中的任一节点与节点A之间的有向边由节点A指出,二阶第二邻域中任一节点连接的有向边由一阶第二邻域中的节点指出。
需要说明的是,本申请实施例提供了两种实现方式,第一种实现方式基于节点确定第一邻域节点和第二邻域节点的概率信息,来确定该节点的嵌入特征,参见步骤304-步骤307所示;第二种实现方式,通过对节点的第一邻域和第二邻域进行负采样,来确定该节点的嵌入特征,参见步骤308-步骤310所示。
304、基于该N个节点的第一嵌入特征和该多个第一邻域节点的第二嵌入特征,确定第一概率信息,该第一概率信息用于指示基于该N个节点确定该多个第一邻域节点的概率。
在本申请实施例中,对于图中的节点vn,在embedding(嵌入)空间中该节点vn对应有一个发起嵌入特征sn(也可以称为源角色表征向量)和一个接收嵌入特征tn(也可以称为目标角色表征向量),则最终目标为确定目标图中M个节点的发起嵌入特征构成的发起嵌入矩阵S′和M个节点的接收嵌入特征构成的接收嵌入矩阵T′。其中,发起嵌入矩阵S′中的元素表示目标图中各个节点的发起嵌入特征,接收嵌入矩阵T′中的元素表示目标图中各个节点的接收嵌入特征。
在本申请实施例中,第一嵌入特征是指该N个节点的嵌入特征,对于N个节点中的任一节点,该节点的第一嵌入特征包括该节点的发起嵌入特征和该节点的接收嵌入特征。其中,N个节点中的每个节点对应至少一个第一邻域节点。第二嵌入特征是指该多个第一邻域节点的嵌入特征,对于任一第一邻域节点,该第一邻域节点的第二嵌入特征包括该第一邻域节点的发起嵌入特征和该第一邻域节点的接收嵌入特征。
在一些实施例中,对于节点vn,基于该节点vn确定该节点的第一邻域节点vi时,该节点vn为业务关系的接收者,该第一邻域节点vi为业务关系的发起者,则基于softmax(归一化)函数去定义节点vn在整个目标图中确定第一邻域节点vi的概率,得到第一概率信息。服务器基于N个节点的第一嵌入特征和多个第一邻域节点的第二嵌入特征,确定第一概率信息的步骤包括:服务器从该N个节点的第一嵌入特征中,获取N个第一中间嵌入特征,该N个第一中间嵌入特征用于表示该N个节点作为该接收者的特征,也即该N个节点的接收嵌入特征。服务器从该多个第一邻域节点的第二嵌入特征中,获取多个第二中间嵌入特征,该多个第二中间嵌入特征用于表示该多个第一邻域节点作为该发起者的特征,也即该多个第一邻域节点的发起嵌入特征。服务器获取该M个节点的M个第七中间嵌入特征,该M个第七中间嵌入特征用于表示该M个节点作为该发起者的特征,也即该个节点的发起嵌入特征。最后基于该N个第一中间嵌入特征、该多个第二中间嵌入特征以及该M个第七中间嵌入特征,确定该第一概率信息。相应的,该第一概率信息的计算方式,参见公式(3)所示:
其中,ps(vi|vn)表示第一概率信息中,基于节点vn在整个目标图中确定第一邻域节点vi的概率;exp(·)表示以e为底的指数函数;tn表示节点vn的第一中间嵌入特征;T表示矩阵转置;si表示第一邻域节点vi的第二中间嵌入特征;M表示目标图中节点的总数,M为正整数;sm表示节点vm的第七中间嵌入特征,节点vm表示目标图中的第m个节点。
305、基于该N个节点的第一嵌入特征和该多个第二邻域节点的第三嵌入特征,确定第二概率信息,该第二概率信息用于指示基于该N个节点确定该多个第二邻域节点的概率。
在本申请实施例中,与步骤304同理,对于节点vn,基于该节点vn确定该节点的第二邻域节点vj时,该节点vn为业务关系的发起者,该第二邻域节点vj为业务关系的接收者,则基于softmax函数去定义节点vn在整个目标图中确定第二邻域节点vj的概率,得到第二概率信息。
在本申请实施例中,N个节点中的每个节点对应至少一个第二邻域节点。第三嵌入特征是指该多个第二邻域节点的嵌入特征,对于任意第二邻域节点,该第二邻域节点的第三嵌入特征包括该第二邻域节点的发起嵌入特征和该第二邻域节点的接收嵌入特征。
服务器基于该N个节点的第一嵌入特征和该多个第二邻域节点的第三嵌入特征,确定第二概率信息的步骤包括:服务器从该N个节点的第一嵌入特征中,获取N个第四中间嵌入特征,该N个第四中间嵌入特征用于表示该N个节点作为该发起者的特征,也即该N个节点的发起嵌入特征。服务器从该多个第二邻域节点的第三嵌入特征中,获取多个第五中间嵌入特征,该多个第五中间嵌入特征用于表示该多个第二邻域节点作为该接收者的特征,也即该多个第二邻域节点的接收嵌入特征。服务器获取该M个节点的M个第八中间嵌入特征,该M个第八中间嵌入特征用于表示该M个节点作为该接收者的特征,也即该M个节点的接收嵌入特征。最后基于该N个第四中间嵌入特征、该多个第五中间嵌入特征以及该M个第八中间嵌入特征,确定该第二概率信息。相应的,该第二概率信息的计算方式,参见公式(4)所示:
其中,pt(vj|vn)表示第二概率信息中,基于节点vn在整个目标图中确定第二邻域节点vj的概率;exp(·)表示以e为底的指数函数;sn表示节点vn的第四中间嵌入特征;T表示矩阵转置;tj表示第二邻域节点vj的第五中间嵌入特征;M表示目标图中节点的总数,M为正整数;tm表示节点vm的第八中间嵌入特征,节点vm表示目标图中的第m个节点。
306、基于该第一概率信息和该第二概率信息,确定第二目标函数。
在本申请实施例中,为了最大化的保存节点的第一邻域和第二邻域中的信息,采用最大似然估计的思想构建目标函数,则对于给定的节点vn,多轮迭代的目标是最大化基于该节点vn确定该节点vn的邻居节点的似然函数,该邻居节点包括第一邻域节点和第二邻域节点。假设节点vn确定邻居节点的概率相互独立,则该似然函数参见公式(5)所示:
其中,表示最大似然函数;S′表示发起嵌入矩阵;T′表示接收嵌入矩阵;Ns(vn)表示节点vn的R阶内第一邻域;Nt(vn)表示节点vn的R阶内第二邻域;П(·)表示连乘函数;ps(vi|vn)表示第一概率信息中,基于节点vn在整个目标图中确定第一邻域节点vi的概率;pt(vj|vn)表示第二概率信息中,基于节点vn在整个目标图中确定第二邻域节点vj的概率。
在一些实施例中,服务器能够基于负对数似然函数(Negative Log Likelihood)将上述公式(5)中的最大化问题转换为最小化问题,从而得到第二目标函数,该第二目标函数参见公式(6)所示:
其中,Llikelihood表示负对数似然函数;Ns(vn)表示节点vn的R阶内第一邻域;Nt(vn)表示节点vn的R阶内第二邻域;vi表示第一邻域节点;vj表示第二邻域节点;log(·)表示对数函数;exp(·)表示以e为底的指数函数;tn表示节点vn的第一中间嵌入特征;T表示矩阵转置;si表示第一邻域节点vi的第二中间嵌入特征;M表示目标图中节点的总数,M为正整数;sm表示节点vm的第七中间嵌入特征,节点vm表示目标图中的第m个节点;sn表示节点vn的第四中间嵌入特征;tj表示第二邻域节点vj的第五中间嵌入特征;tm表示节点vm的第八中间嵌入特征。
307、对该第二目标函数进行优化,得到该N个节点的第四嵌入特征。
在本申请实施例中,服务器能够基于第二目标函数进行迭代,以获取N个节点的第四嵌入特征。该第四嵌入特征表示该N个节点经过迭代更新后的发起嵌入特征和接收嵌入特征。由于该第二目标函数的优化目标为最小化,因此服务器基于随机梯度下降方法进行多轮迭代,从而得到该N个节点的发起嵌入特征和接收嵌入特征。
在一些实施例中,由于直接优化上述第二目标函数的复杂度较高,因此服务器能够采用负采样对比学习的方式来实现优化。相应的,服务器通过执行步骤308-步骤310,取代执行步骤304-步骤307,能够将优化第二目标函数的问题转换为优化第一目标函数的问题,第一目标函数详见步骤308-步骤310。
需要说明的是,对于图中的节点vn,该节点vn的第一邻域和第二邻域具有不同的负样本分布,该第一邻域包括节点vn的第一邻域节点vi,该第二邻域包括节点vn的第二邻域节点vj。当对节点vn的第一邻域负采样时,负采样关注的是有向边指向节点vn的第一邻域节点vi,则得到节点入度分布信息,即表示指向当前节点vn的有向边的数量的分布。当对节点vn的第二邻域负采样时,负采样关注的是节点vn指出的有向边所指向的第二邻域节点vj,则得到节点出度分布信息,即表示当前节点vn指出的有向边的数量的分布。节点入度分布信息和节点出度分布信息的计算方式参见公式(7)和公式(8)所示:
其中,表示节点入度分布信息中,指向节点vn的有向边的数量的分布;表示指向节点vn的有向边的数量;M表示目标图中节点的总数,M为正整数;表示指向节点vm的有向边的数量,节点vm表示目标图中的第m个节点。
其中,表示节点出度分布信息中,节点vn指出的有向边的数量的分布;表示节点vn指出的有向边的数量;M表示目标图中节点的总数,M为正整数;表示节点vm指出的有向边的数量,节点vm表示目标图中的第m个节点。
308、基于该N个节点的第一嵌入特征、该多个第一邻域节点的第二嵌入特征、节点入度分布信息以及多个第一节点的第五嵌入特征,确定第一函数,该节点入度分布信息用于表示该N个节点的节点入度的分布,该多个第一节点基于该N个节点的第一邻域负采样得到,该第一邻域包括该多个第一邻域节点。
在本申请实施例中,在得到节点入度分布信息之后,服务器能够从参数服务器获取该N个节点在第z-1轮迭代后的第一嵌入特征、该多个第一邻域节点的第二嵌入特征以及该多个第一节点的第五嵌入特征,然后基于获取到的上述特征确定第一函数。对于图中的节点vn,在embedding空间中该节点vn对应有一个发起嵌入特征sn和一个接收嵌入特征tn,则最终目标为确定目标图中M个节点的发起嵌入特征构成的发起嵌入矩阵S′和M个节点的接收嵌入特征构成的接收嵌入矩阵T′。其中,发起嵌入矩阵S′中的元素表示目标图中各个节点的发起嵌入特征,接收嵌入矩阵T′中的元素表示目标图中各个节点的接收嵌入特征。
在本申请实施例中,该第五嵌入特征是指该多个第一节点的嵌入特征,对于任一第一节点,该第一节点的第五嵌入特征包括该第一节点的发起嵌入特征和该第一节点的接收嵌入特征。
对于节点vn,基于该节点vn确定该节点的第一邻域节点vi时,该节点vn为业务关系的接收者,该第一邻域节点vi为业务关系的发起者,如业务关系为转账,第一邻域节点vi表示的用户账号均转账给节点vn表示的用户账号。基于负采样得到的节点入度分布信息,能够确定第一函数。
在一些实施例中,服务器基于该N个节点的第一嵌入特征、该多个第一邻域节点的第二嵌入特征、节点入度分布信息以及多个第一节点的第五嵌入特征,确定第一函数的步骤包括:服务器从该N个节点的第一嵌入特征中,获取N个第一中间嵌入特征,该N个第一中间嵌入特征用于表示该N个节点作为该接收者的特征,也即该N个节点的接收嵌入特征。服务器从该多个第一邻域节点的第二嵌入特征中,获取多个第二中间嵌入特征,该多个第二中间嵌入特征用于表示该多个第一邻域节点作为该发起者的特征,也即该多个第一邻域节点的发起嵌入特征。服务器基于该节点入度分布信息,确定第一期望信息,该第一期望信息用于表示该多个第一节点满足该节点入度分布信息的数学期望。服务器从该多个第一节点的第五嵌入特征中,获取多个第三中间嵌入特征,该多第三中间嵌入特征用于表示该多个第一节点作为该发起者的特征,也即该多个第一节点的发起嵌入特征。最后服务器基于上述N个第一中间嵌入特征、多个第二中间嵌入特征、第一期望信息以及多个第三中间嵌入特征,确定第一函数。通过基于负采样得到的节点入度分布信息来确定第一函数,由于不需要基于目标图中所有节点的嵌入特征进行计算,能够显著的减少计算的复杂度,从而提高计算效率,节约计算资源。
其中,第一函数参见公式(9)所示:
其中,L1表示第一函数,Ns(vn)表示节点vn的R阶内第一邻域;vi表示第一邻域节点;log(·)表示对数函数;σ(·)表示sigmoid函数,tn表示节点vn的第一中间嵌入特征;T表示矩阵转置;si表示第一邻域节点vi的第二中间嵌入特征;K表示对第一邻域进行负采样得到的第一节点的数量,K为正整数;表示第一期望信息;vk表示第k个第一节点;表示节点入度分布信息中,指向节点vn的有向边的数量的分布;sk表示第一节点vk的第三中间嵌入特征。
309、基于该N个节点的第一嵌入特征、该多个第二邻域节点的第三嵌入特征、节点出度分布信息以及多个第二节点的第六嵌入特征,确定第二函数,该节点出度分布信息用于示该N个节点的节点出度的分布,该多个第二节点基于该N个节点的第二邻域负采样得到,该第二邻域包括该多个第二邻域节点。
在本申请实施例中,与步骤308同理,对于节点vn,基于该节点vn确定该节点的第二邻域节点vj时,该节点vn为业务关系的发起者,该第二邻域节点vj为业务关系的接收者,如业务关系为转账,第二邻域节点vj表示的用户账号均接收到节点vn表示的用户账号的转账。基于负采样得到的节点出度分布信息,能够确定第二函数。
在本申请实施例中,该第六嵌入特征是指该多个第二节点的嵌入特征,对于任一第二节点,该第二节点的第六嵌入特征包括该第二节点的发起嵌入特征和该第二节点的接收嵌入特征。
在一些实施例中,服务器基于N个节点的第一嵌入特征、多个第二邻域节点的第三嵌入特征、节点出度分布信息以及多个第二节点的第六嵌入特征,确定第二函数的步骤包括:服务器从N个节点的第一嵌入特征中,获取N个第四中间嵌入特征,该N个第四中间嵌入特征用于表示该N个节点作为该发起者的特征,也即该N个节点的发起嵌入特征。服务器从多个第二邻域节点的第三嵌入特征中,获取多个第五中间嵌入特征,该多个第五中间嵌入特征用于表示该多个第二邻域节点作为该接收者的特征,也即该多个邻域节点的接收嵌入特征。服务器基于节点出度分布信息,确定第二期望信息,该第二期望信息用于表示该多个第二节点满足该节点出度分布信息的数学期望。服务器从多个第二节点的嵌入特征中,获取多个第六中间嵌入特征,该多个第六中间嵌入特征用于表示该多个第二节点作为该接收者的特征,也即该多个第二节点的接收嵌入特征。最后服务器基于上述N个第四中间嵌入特征、多个第五中间嵌入特征、第二期望信息以及多个第六中间嵌入特征,确定该第二函数。通过基于负采样得到的节点出度分布信息来确定第二函数,由于不需要基于目标图中所有节点的嵌入特征进行计算,能够显著的减少计算的复杂度,从而提高计算效率,节约计算资源。
其中,第二函数参见公式(10)所示:
其中,L2表示第二函数,Nt(vn)表示节点vn的R阶内第二邻域;vj表示第二邻域节点;log(·)表示对数函数;σ(·)表示sigmoid函数,sn表示节点vn的第四中间嵌入特征;T表示矩阵转置;tj表示第二邻域节点vj的第五中间嵌入特征;L表示对第一邻域进行负采样得到的第二节点的数量,L为正整数;表示第二期望信息;vl表示第1个第二节点;表示节点出度分布信息中,节点vn指出的有向边的数量的分布;tl表示第二节点vl的第六中间嵌入特征。
310、对基于该第一函数和该第二函数构成的第一目标函数进行优化,得到该N个节点的第四嵌入特征。
在本申请实施例中,服务器能够基于第一函数和第二函数构建第一目标函数,该第一目标函数参见公式(11)所示:
Lneg=L1+L2 (11);
其中,Lneg表示第一目标函数;L1表示第一函数;L2表示第二函数。
服务器采用小批量随机梯度下降方法,基于多轮迭代来优化该第一目标函数,得到上述N个节点的第四嵌入特征。
在一些实施例中,在保留一阶邻域的情况下,能够在高稀疏的图数据上达到期望的效果。并且,在保留节点的一阶第一邻域和一阶第二邻域的情况下,第一目标函数中对节点的邻域求和等价于对图中所有边求和,因此服务器能够将第一目标函数转化为第三目标函数。
其中,第三目标函数是以边的视角进行表示的函数,对于一条有向边(vx,vy),节点vx为该有向边对应的业务关系的发起者,节点vy为该有向边对应的业务关系的接收者,也即节点vx扮演源角色,节点vy扮演目标角色。在正向观察该有向边(vx,vy)时,关注基于节点vx确定节点vy的概率,并对节点vx的一阶第二邻域进行负采样得到负采样节点vf;在反向观察该有向边(vx,vy)时,关注基于节点vy确定节点vx的概率,并对节点vy的一阶第一邻域进行负采样得到负采样节点vg,也即同时考虑了正反两个方向的信息,则该第三目标函数对应的算法可以称为双向图嵌入算法(Bidirectional Graph Embedding,BGE)。
其中,第三目标函数如公式(12)所示:
其中,L3表示第三目标函数;(vx,vy)表示目标图中节点vx和节点vy之间的有向边,该有向边由节点vx指出,指向节点vy;Egraph表示目标图中有向边的集合;log(·)表示对数函数;σ(·)表示sigmoid函数;sx表示节点vx的发起嵌入特征;T表示矩阵转置;ty表示节点vy的接收嵌入特征;F表示对节点vx的一阶第二邻域进行负采样得到负采样节点vf的数量,F为正整数;表示节点出度分布信息中,节点vx指出的有向边的数量的分布;tf表示节点vf的接收嵌入特征;G表示对节点vy的一阶第一邻域进行负采样得到负采样节点vg的数量,G为正整数;表示节点入度分布信息中,指向节点vy的有向边的数量的分布;sg表示节点vg的发起嵌入特征。
需要说明的是,服务器基于上述步骤302-步骤307示出的实现方式进行多轮迭代后,执行步骤311,或者服务器基于上述步骤302、步骤303以及步骤308-步骤310示出的实现方式进行多轮迭代后,执行步骤311。
311、响应于多轮迭代结束,得到该M个节点对应的发起嵌入特征和接收嵌入特征,该发起嵌入特征用于表示对应的节点作为发起者的特征,该接收嵌入特征用于表示对应的节点作为接收者的特征。
在本申请实施例中,服务器在迭代目标轮数后结束迭代,得到目标图中每个节点作为发起者的发起嵌入特征以及每个节点作为接收者的接收嵌入特征。
在一些实施例中,对于任一节点,服务器能够将该节点的发起嵌入特征和接收嵌入特征与该节点表示的用户账号的账号特征进行拼接,然后基于拼接得到的拼接特征来确定该节点与其他节点之间的业务是否存在风险。如该节点对应的用户账号向另一节点对应的用户账号发起转账请求时,服务器能够在上述两个用户账号的账号特征的基础上,拼接对应的发起嵌入特征和接收嵌入特征,将拼接得到的特征输入反欺诈模型,从而判断该转账请求是否是欺诈业务。通过将基于本申请实施例提供的图数据处理方法得到的嵌入特征引入至反欺诈模型,使得该反欺诈模型的欺诈笔数命中率由14%-21%的相对提升,欺诈金额的命中率由27%-47%的相对提升。并且,本申请提供的图数据处理方法在获取节点的嵌入特征的效率上,是现有技术方案的2-5倍,效率显著提高。
需要说明的是,为了使服务器分布式执行本申请实施例提供的图数据处理方法的流程更容易理解,参见图6所示,图6是根据本申请实施例提供的一种分布式计算架构的示意图。在图6中,该分布式计算架构包括多个执行器和多个参数服务器。服务器对目标图进行图分区,将各图分区对应的边表存储在执行器中,各图分区对应的节点存储在对应的参数服务器中,每个节点有两个嵌入特征,一个表示节点作为源角色的嵌入特征,一个表示节点作为目标角色的嵌入特征。参数服务器对各节点的嵌入特征做初始化,各执行器分别在对应的图分区内按照batch(批次)从参数服务器拉取N个节点的第一嵌入特征、多个第一邻域节点的第二嵌入特征以及多个第二邻域节点的第三嵌入特征,确定该N个节点的N个特征梯度。然后将该N个特征梯度上传至参数服务器,由参数服务器基于该N个节点的第一嵌入特征和N个特征梯度,确定N个节点的第四嵌入特征,以实现节点的嵌入特征的更新。最后迭代至目标轮数后结束。
需要说明的是,本申请实施例提供的图数据处理方法还能与已有的模型结合,以实现不同的业务。以和推荐模型结合,如应用于社交场景时,将基于本申请实施例提供的图数据处理方法得到的节点的发起嵌入特征和接收嵌入特征,引入好友推荐模型中,使得该推荐模型能够更为精准的为用户推荐好友等。再如应用于购物场景时,将基于本申请实施例提供的图数据处理方法得到的节点的发起嵌入特征和接收嵌入特征,引入物品推荐模型中,使得该推荐模型能够更为精准的为用户推荐商品等。在此不再一一举例说明。
需要说明的是,本申请实施例以节点之间具有一种类型的业务关系进行说明,由于对象数据中对象之间可能存在多种类型的业务关系,如对象甲和对象乙之间存在转账关系和关注关系,对象甲和对象丙之间存在转账关系和点赞关系,由于关注关系和点赞关系属于同一种类型的业务关系,通常发生在相同的业务场景,如观看直播场景;而转账关系与上述两种关系属于不同类型的业务关系,通常发生在不同的业务场景,如转账关系发生在社交场景。因此,服务器能够根据节点之间的关系类型,基于图数据确定多个目标图,同一目标图中的有向边表示同一种类型的业务关系,不同目标图中的有向边表示不同类型的业务关系。服务器基于本申请实施例提供的图数据处理方法,分别对该多个目标图进行处理,然后将同一节点基于不同目标图得到的发起嵌入特征和接收嵌入特征进行拼接或者加权融合,得到该节点的最终的发起嵌入特征和接收嵌入特征。通过按照不同类型的业务关系进行处理,使得节点在具有两种以上的身份时,能够确定多个身份的嵌入特征,从而便于针对不同业务场景使用对应身份的嵌入特征。
本申请实施例提供了一种新颖的图数据处理方法,通过每轮迭代时从目标图中获取N个节点,然后基于该N个节点的第一嵌入特征,该N个节点关联的多个第一邻域节点的第二嵌入特征和多个第二邻域节点的第三嵌入特征,来确定该N个节点的第四嵌入特征,从而完成一轮迭代过程,实现对N个节点的嵌入特征的更新,由于并非是对M个节点进行处理,因此能够大幅度的减少运算量,在多轮迭代之后,即可得到该M个节点作为发起者的发起嵌入特征和作为接收者的接收嵌入特征,使得各节点的嵌入特征能够最大化的保存第一邻域和第二邻域的信息,进而基于有向边连接的两个节点的嵌入特征之间的内积即可确定该有向边的指向关系,从而既能表示节点的双重身份,又能表示有向边的指向关系。
图7是根据本申请实施例提供的一种图数据处理装置的框图。该装置用于执行上述图数据处理方法中的步骤,参见图7,装置包括:图获取模块71和迭代模块72,其中迭代模块72包括获取单元721、节点确定单元722以及特征确定单元723。
图获取模块71,用于基于对象数据,获取目标图,该目标图包括表示对象的M个节点,M为正整数,该目标图中的有向边用于表示所连接的节点对应的对象之间存在业务关系,且该有向边的指出节点为该业务关系的发起者,该有向边的指向节点为该业务关系的接收者;
迭代模块72,用于基于该M个节点和该M个节点之间的有向边进行多轮迭代,得到该M个节点对应的发起嵌入特征和接收嵌入特征,该发起嵌入特征用于表示对应的节点作为发起者的特征,该接收嵌入特征用于表示对应的节点作为接收者的特征;
其中,该迭代模块72,包括:
获取单元721,用于从该M个节点中获取N个节点,N为正整数;
节点确定单元722,用于基于该N个节点关联的有向边,确定该N个节点关联的多个第一邻域节点以及该N个节点关联的多个第二邻域节点,该第一邻域节点指出的有向边指向该N个节点,该N个节点指出的有向边指向该多个第二邻域节点;
特征确定单元723,用于基于该N个节点的第一嵌入特征、该多个第一邻域节点的第二嵌入特征以及该多个第二邻域节点的第三嵌入特征,确定该N个节点的第四嵌入特征。
在一些实施例中,图8是根据本申请实施例提供的另一种图数据处理装置的框图,参见图8所示,该特征确定单元723,包括:
第一确定子单元7231,用于基于该N个节点的第一嵌入特征、该多个第一邻域节点的第二嵌入特征、节点入度分布信息以及多个第一节点的第五嵌入特征,确定第一函数,该节点入度分布信息用于表示该N个节点的节点入度的分布,该多个第一节点基于该N个节点的第一邻域负采样得到,该第一邻域包括该多个第一邻域节点;
第二确定子单元7232,用于基于该N个节点的第一嵌入特征、该多个第二邻域节点的第三嵌入特征、节点出度分布信息以及多个第二节点的第六嵌入特征,确定第二函数,该节点出度分布信息用于表示该N个节点的节点出度的分布,该多个第二节点基于该N个节点的第二邻域负采样得到,该第二邻域包括该多个第二邻域节点;
第一优化子单元7233,用于对基于该第一函数和该第二函数构成的第一目标函数进行优化,得到该N个节点的第四嵌入特征。
在一些实施例中,参见图8所示,该第一确定子单元7231,用于从该N个节点的第一嵌入特征中,获取N个第一中间嵌入特征,该N个第一中间嵌入特征用于表示该N个节点作为该接收者的特征;从该多个第一邻域节点的第二嵌入特征中,获取多个第二中间嵌入特征,该多个第二中间嵌入特征用于表示该多个第一邻域节点作为该发起者的特征;基于该节点入度分布信息,确定第一期望信息,该第一期望信息用于表示该多个第一节点满足该节点入度分布信息的数学期望;从该多个第一节点的第五嵌入特征中,获取多个第三中间嵌入特征,该多第三中间嵌入特征用于表示该多个第一节点作为该发起者的特征;基于该N个第一中间嵌入特征、该多个第二中间嵌入特征、该第一期望信息以及该多个第三中间嵌入特征,确定该第一函数。
在一些实施例中,该第二确定子单元7232,用于从该N个节点的第一嵌入特征中,获取N个第四中间嵌入特征,该N个第四中间嵌入特征用于表示该N个节点作为该发起者的特征;从该多个第二邻域节点的第三嵌入特征中,获取多个第五中间嵌入特征,该多个第五中间嵌入特征用于表示该多个第二邻域节点作为该接收者的特征;基于该节点出度分布信息,确定第二期望信息,该第二期望信息用于表示该多个第二节点满足该节点出度分布信息的数学期望;从该多个第二节点的嵌入特征中,获取多个第六中间嵌入特征,该多个第六中间嵌入特征用于表示该多个第二节点作为该接收者的特征;基于该N个第四中间嵌入特征、该多个第五中间嵌入特征、该第二期望信息以及该多个第六中间嵌入特征,确定该第二函数。
在一些实施例中,该特征确定单元723,包括:
第三确定子单元7234,用于基于该N个节点的第一嵌入特征和该多个第一邻域节点的第二嵌入特征,确定第一概率信息,该第一概率信息用于指示基于该N个节点确定该多个第一邻域节点的概率;
第四确定子单元7235,用于基于该N个节点的第一嵌入特征和该多个第二邻域节点的第三嵌入特征,确定第二概率信息,该第二概率信息用于指示基于该N个节点确定该多个第二邻域节点的概率;
第五确定子单元7236,用于基于该第一概率信息和该第二概率信息,确定第二目标函数;
第二优化子单元7237,用于对该第二目标函数进行优化,得到该N个节点的第四嵌入特征。
在一些实施例中,该第三确定子单元7234,用于从该N个节点的第一嵌入特征中,获取N个第一中间嵌入特征,该N个第一中间嵌入特征用于表示该N个节点作为该接收者的特征;从该多个第一邻域节点的第二嵌入特征中,获取多个第二中间嵌入特征,该多个第二中间嵌入特征用于表示该多个第一邻域节点作为该发起者的特征;获取该M个节点的M个第七中间嵌入特征,该M个第七中间嵌入特征用于表示该M个节点作为该发起者的特征;基于该N个第一中间嵌入特征、该多个第二中间嵌入特征以及该M个第七中间嵌入特征,确定该第一概率信息。
在一些实施例中,该第四确定子单元7235,用于从该N个节点的第一嵌入特征中,获取N个第四中间嵌入特征,该N个第四中间嵌入特征用于表示该N个节点作为该发起者的特征;从该多个第二邻域节点的第三嵌入特征中,获取多个第五中间嵌入特征,该多个第五中间嵌入特征用于表示该多个第二邻域节点作为该接收者的特征;获取该M个节点的M个第八中间嵌入特征,该M个第八中间嵌入特征用于表示该M个节点作为该接收者的特征;基于该N个第四中间嵌入特征、该多个第五中间嵌入特征以及该M个第八中间嵌入特征,确定该第二概率信息。
在一些实施例中,参见图8所示,该装置还包括:
划分模块73,用于将该目标图被划分为至少一个图分区;
存储模块74,用于对于任一图分区,将该图分区中的节点存储至参数服务器中;
该存储模块74,还用于将该图分区对应的边表,存储至该图分区对应的执行器中;
采样模块75,用于对于任一执行器,基于该执行器存储的边表,从该目标图中采样得到多个采样边,该多个采样边连接的节点为该N个节点;
该获取单元721,用于基于该多个采样边,确定N个节点标识;从该参数服务器获取该N个节点标识对应的该N个节点。
在一些实施例中,该特征确定单元723,用于基于该N个节点的第一嵌入特征、该多个第一邻域节点的第二嵌入特征以及该多个第二邻域节点的第三嵌入特征,确定该N个节点的N个特征梯度;将该N个特征梯度上传至该参数服务器,由该参数服务器基于该N个节点的第一嵌入特征和该N个特征梯度,确定该N个节点的第四嵌入特征。
本申请实施例提供的图数据处理装置,通过每轮迭代时从目标图中获取N个节点,然后基于该N个节点的第一嵌入特征,该N个节点关联的多个第一邻域节点的第二嵌入特征和多个第二邻域节点的第三嵌入特征,来确定该N个节点的第四嵌入特征,从而完成一轮迭代过程,实现对N个节点的嵌入特征的更新,由于并非是对M个节点进行处理,因此能够大幅度的减少运算量,在多轮迭代之后,即可得到该M个节点作为发起者的发起嵌入特征和作为接收者的接收嵌入特征,使得各节点的嵌入特征能够最大化的保存第一邻域和第二邻域的信息,进而基于有向边连接的两个节点的嵌入特征之间的内积即可确定该有向边的指向关系,从而既能表示节点的双重身份,又能表示有向边的指向关系。
需要说明的是:上述实施例提供的图数据处理装置在处理图数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图数据处理装置与图数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在本申请实施例中,计算机设备能够被配置为终端或者服务器,当计算机设备被配置为终端时,可以由终端作为执行主体来实施本申请实施例提供的技术方案,当计算机设备被配置为服务器时,可以由服务器作为执行主体来实施本申请实施例提供的技术方案,也可以通过终端和服务器之间的交互来实施本申请提供的技术方案,本申请实施例对此不作限定。
图9是根据本申请实施例提供的一种终端900的结构框图。该终端900可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器901所执行以实现本申请中方法实施例提供的图数据处理方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。在一些实施例中,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置在终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在另一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。在一些实施例中,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置在终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图10是根据本申请实施例提供的一种服务器的结构示意图,该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(CentralProcessing Units,CPU)1001和一个或一个以上的存储器1002,其中,该存储器1002中存储有至少一条计算机程序,该至少一条计算机程序由该处理器1001加载并执行以实现上述各个方法实施例提供的图数据处理方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一段计算机程序,该至少一段计算机程序由计算机设备的处理器加载并执行以实现上述实施例的图数据处理方法中计算机设备所执行的操作。例如,所述计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在一些实施例中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行上述各种可选实现方式中提供的图数据处理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种图数据处理方法,其特征在于,所述方法包括:
基于对象数据,获取目标图,所述目标图包括表示对象的M个节点,M为正整数,所述目标图中的有向边用于表示所连接的节点对应的对象之间存在业务关系,且所述有向边的指出节点为所述业务关系的发起者,所述有向边的指向节点为所述业务关系的接收者;
基于所述M个节点和所述M个节点之间的有向边进行多轮迭代,得到所述M个节点对应的发起嵌入特征和接收嵌入特征,所述发起嵌入特征用于表示对应的节点作为发起者的特征,所述接收嵌入特征用于表示对应的节点作为接收者的特征;
其中,第z轮迭代的步骤包括:
从所述M个节点中获取N个节点,N为正整数,z为正整数;
基于所述N个节点关联的有向边,确定所述N个节点关联的多个第一邻域节点以及所述N个节点关联的多个第二邻域节点,所述第一邻域节点指出的有向边指向所述N个节点,所述N个节点指出的有向边指向所述多个第二邻域节点;
基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的第四嵌入特征。
2.根据权利要求1所述的方法,其特征在于,所述基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的第四嵌入特征,包括:
基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征、节点入度分布信息以及多个第一节点的第五嵌入特征,确定第一函数,所述节点入度分布信息用于表示所述N个节点的节点入度的分布,所述多个第一节点基于所述N个节点的第一邻域负采样得到,所述第一邻域包括所述多个第一邻域节点;
基于所述N个节点的第一嵌入特征、所述多个第二邻域节点的第三嵌入特征、节点出度分布信息以及多个第二节点的第六嵌入特征,确定第二函数,所述节点出度分布信息用于表示所述N个节点的节点出度的分布,所述多个第二节点基于所述N个节点的第二邻域负采样得到,所述第二邻域包括所述多个第二邻域节点;
对基于所述第一函数和所述第二函数构成的第一目标函数进行优化,得到所述N个节点的第四嵌入特征。
3.根据权利要求2所述的方法,其特征在于,所述基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征、节点入度分布信息以及多个第一节点的第五嵌入特征,确定第一函数,包括:
从所述N个节点的第一嵌入特征中,获取N个第一中间嵌入特征,所述N个第一中间嵌入特征用于表示所述N个节点作为所述接收者的特征;
从所述多个第一邻域节点的第二嵌入特征中,获取多个第二中间嵌入特征,所述多个第二中间嵌入特征用于表示所述多个第一邻域节点作为所述发起者的特征;
基于所述节点入度分布信息,确定第一期望信息,所述第一期望信息用于表示所述多个第一节点满足所述节点入度分布信息的数学期望;
从所述多个第一节点的第五嵌入特征中,获取多个第三中间嵌入特征,所述多第三中间嵌入特征用于表示所述多个第一节点作为所述发起者的特征;
基于所述N个第一中间嵌入特征、所述多个第二中间嵌入特征、所述第一期望信息以及所述多个第三中间嵌入特征,确定所述第一函数。
4.根据权利要求2所述的方法,其特征在于,所述基于所述N个节点的第一嵌入特征、所述多个第二邻域节点的第三嵌入特征、节点出度分布信息以及多个第二节点的第六嵌入特征,确定第二函数,包括:
从所述N个节点的第一嵌入特征中,获取N个第四中间嵌入特征,所述N个第四中间嵌入特征用于表示所述N个节点作为所述发起者的特征;
从所述多个第二邻域节点的第三嵌入特征中,获取多个第五中间嵌入特征,所述多个第五中间嵌入特征用于表示所述多个第二邻域节点作为所述接收者的特征;
基于所述节点出度分布信息,确定第二期望信息,所述第二期望信息用于表示所述多个第二节点满足所述节点出度分布信息的数学期望;
从所述多个第二节点的嵌入特征中,获取多个第六中间嵌入特征,所述多个第六中间嵌入特征用于表示所述多个第二节点作为所述接收者的特征;
基于所述N个第四中间嵌入特征、所述多个第五中间嵌入特征、所述第二期望信息以及所述多个第六中间嵌入特征,确定所述第二函数。
5.根据权利要求1所述的方法,其特征在于,所述基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的第四嵌入特征,包括:
基于所述N个节点的第一嵌入特征和所述多个第一邻域节点的第二嵌入特征,确定第一概率信息,所述第一概率信息用于指示基于所述N个节点确定所述多个第一邻域节点的概率;
基于所述N个节点的第一嵌入特征和所述多个第二邻域节点的第三嵌入特征,确定第二概率信息,所述第二概率信息用于指示基于所述N个节点确定所述多个第二邻域节点的概率;
基于所述第一概率信息和所述第二概率信息,确定第二目标函数;
对所述第二目标函数进行优化,得到所述N个节点的第四嵌入特征。
6.根据权利要求5所述的方法,其特征在于,所述基于所述N个节点的第一嵌入特征和所述多个第一邻域节点的第二嵌入特征,确定第一概率信息,包括:
从所述N个节点的第一嵌入特征中,获取N个第一中间嵌入特征,所述N个第一中间嵌入特征用于表示所述N个节点作为所述接收者的特征;
从所述多个第一邻域节点的第二嵌入特征中,获取多个第二中间嵌入特征,所述多个第二中间嵌入特征用于表示所述多个第一邻域节点作为所述发起者的特征;
获取所述M个节点的M个第七中间嵌入特征,所述M个第七中间嵌入特征用于表示所述M个节点作为所述发起者的特征;
基于所述N个第一中间嵌入特征、所述多个第二中间嵌入特征以及所述M个第七中间嵌入特征,确定所述第一概率信息。
7.根据权利要求5所述的方法,其特征在于,所述基于所述N个节点的第一嵌入特征和所述多个第二邻域节点的第三嵌入特征,确定第二概率信息,包括:
从所述N个节点的第一嵌入特征中,获取N个第四中间嵌入特征,所述N个第四中间嵌入特征用于表示所述N个节点作为所述发起者的特征;
从所述多个第二邻域节点的第三嵌入特征中,获取多个第五中间嵌入特征,所述多个第五中间嵌入特征用于表示所述多个第二邻域节点作为所述接收者的特征;
获取所述M个节点的M个第八中间嵌入特征,所述M个第八中间嵌入特征用于表示所述M个节点作为所述接收者的特征;
基于所述N个第四中间嵌入特征、所述多个第五中间嵌入特征以及所述M个第八中间嵌入特征,确定所述第二概率信息。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
将所述目标图被划分为至少一个图分区;
对于任一图分区,将所述图分区中的节点存储至参数服务器中;
将所述图分区对应的边表,存储至所述图分区对应的执行器中;
对于任一执行器,基于所述执行器存储的边表,从所述目标图中采样得到多个采样边,所述多个采样边连接的节点为所述N个节点;
所述从所述M个节点中获取N个节点,包括:
基于所述多个采样边,确定N个节点标识;
从所述参数服务器获取所述N个节点标识对应的所述N个节点。
9.根据权利要求8所述的方法,其特征在于,所述基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的第四嵌入特征,包括:
基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的N个特征梯度;
将所述N个特征梯度上传至所述参数服务器,由所述参数服务器基于所述N个节点的第一嵌入特征和所述N个特征梯度,确定所述N个节点的第四嵌入特征。
10.一种图数据处理装置,其特征在于,所述装置包括:
图获取模块,用于基于对象数据,获取目标图,所述目标图包括表示对象的M个节点,M为正整数,所述目标图中的有向边用于表示所连接的节点对应的对象之间存在业务关系,且所述有向边的指出节点为所述业务关系的发起者,所述有向边的指向节点为所述业务关系的接收者;
迭代模块,用于基于所述M个节点和所述M个节点之间的有向边进行多轮迭代,得到所述M个节点对应的发起嵌入特征和接收嵌入特征,所述发起嵌入特征用于表示对应的节点作为发起者的特征,所述接收嵌入特征用于表示对应的节点作为接收者的特征;
其中,所述迭代模块,包括:
获取单元,用于从所述M个节点中获取N个节点,N为正整数;
节点确定单元,用于基于所述N个节点关联的有向边,确定所述N个节点关联的多个第一邻域节点以及所述N个节点关联的多个第二邻域节点,所述第一邻域节点指出的有向边指向所述N个节点,所述N个节点指出的有向边指向所述多个第二邻域节点;
特征确定单元,用于基于所述N个节点的第一嵌入特征、所述多个第一邻域节点的第二嵌入特征以及所述多个第二邻域节点的第三嵌入特征,确定所述N个节点的第四嵌入特征。
11.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行权利要求1至9任一项权利要求所述的图数据处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储至少一段计算机程序,所述至少一段计算机程序用于执行权利要求1至9任一项权利要求所述的图数据处理方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序代码,所述计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序代码,所述处理器执行所述计算机程序代码,使得所述计算机设备执行权利要求1至9任一项权利要求所述的图数据处理方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111151811.8A CN115909419A (zh) | 2021-09-29 | 2021-09-29 | 图数据处理方法、装置、计算机设备及存储介质 |
EP22874475.1A EP4318375A4 (en) | 2021-09-29 | 2022-08-19 | GRAPH DATA PROCESSING METHOD AND APPARATUS, COMPUTER DEVICE, MEDIUM AND COMPUTER PROGRAM PRODUCT |
PCT/CN2022/113580 WO2023051080A1 (zh) | 2021-09-29 | 2022-08-19 | 图数据处理方法、装置、计算机设备、存储介质及计算机程序产品 |
US18/333,530 US20230334096A1 (en) | 2021-09-29 | 2023-06-12 | Graph data processing method and apparatus, computer device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111151811.8A CN115909419A (zh) | 2021-09-29 | 2021-09-29 | 图数据处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115909419A true CN115909419A (zh) | 2023-04-04 |
Family
ID=85742981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111151811.8A Pending CN115909419A (zh) | 2021-09-29 | 2021-09-29 | 图数据处理方法、装置、计算机设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230334096A1 (zh) |
EP (1) | EP4318375A4 (zh) |
CN (1) | CN115909419A (zh) |
WO (1) | WO2023051080A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200265090A1 (en) * | 2019-02-20 | 2020-08-20 | Oracle International Corporation | Efficient graph query execution engine supporting graphs with multiple vertex and edge types |
US11403700B2 (en) * | 2019-04-23 | 2022-08-02 | Target Brands, Inc. | Link prediction using Hebbian graph embeddings |
CN111507543B (zh) * | 2020-05-28 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 用于预测实体间业务关系的模型训练方法及装置 |
CN112085172B (zh) * | 2020-09-16 | 2022-09-16 | 支付宝(杭州)信息技术有限公司 | 图神经网络的训练方法及装置 |
CN112541575B (zh) * | 2020-12-06 | 2023-03-10 | 支付宝(杭州)信息技术有限公司 | 图神经网络的训练方法及装置 |
-
2021
- 2021-09-29 CN CN202111151811.8A patent/CN115909419A/zh active Pending
-
2022
- 2022-08-19 WO PCT/CN2022/113580 patent/WO2023051080A1/zh active Application Filing
- 2022-08-19 EP EP22874475.1A patent/EP4318375A4/en active Pending
-
2023
- 2023-06-12 US US18/333,530 patent/US20230334096A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230334096A1 (en) | 2023-10-19 |
EP4318375A4 (en) | 2024-10-09 |
EP4318375A1 (en) | 2024-02-07 |
WO2023051080A1 (zh) | 2023-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110097019B (zh) | 字符识别方法、装置、计算机设备以及存储介质 | |
CN110083791B (zh) | 目标群组检测方法、装置、计算机设备及存储介质 | |
CN111182453B (zh) | 定位方法、装置、电子设备及存储介质 | |
CN110795625B (zh) | 推荐方法、装置、计算机设备及存储介质 | |
CN111104980B (zh) | 确定分类结果的方法、装置、设备及存储介质 | |
CN111897996A (zh) | 话题标签推荐方法、装置、设备及存储介质 | |
CN112052354A (zh) | 视频推荐方法、视频展示方法、装置及计算机设备 | |
CN114282035A (zh) | 图像检索模型的训练和检索方法、装置、设备及介质 | |
CN110503160A (zh) | 图像识别方法、装置、电子设备及存储介质 | |
CN113918767A (zh) | 视频片段定位方法、装置、设备及存储介质 | |
CN113886609A (zh) | 多媒体资源推荐方法、装置、电子设备及存储介质 | |
CN110166275B (zh) | 信息处理方法、装置及存储介质 | |
CN113570510A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN111563201A (zh) | 内容推送方法、装置、服务器及存储介质 | |
CN112699268A (zh) | 训练评分模型的方法、设备及存储介质 | |
CN115909419A (zh) | 图数据处理方法、装置、计算机设备及存储介质 | |
CN111062709B (zh) | 资源转移方式推荐方法、装置、电子设备及存储介质 | |
CN114297493A (zh) | 对象推荐方法、对象推荐装置、电子设备及存储介质 | |
CN113139614A (zh) | 特征提取方法、装置、电子设备及存储介质 | |
CN113822916A (zh) | 图像匹配方法、装置、设备及可读存储介质 | |
CN111429106A (zh) | 资源转移凭证的处理方法、服务器、电子设备及存储介质 | |
CN111652432A (zh) | 用户属性信息的确定方法、装置、电子设备及存储介质 | |
CN113888291B (zh) | 虚拟空间处理方法、装置、电子设备及存储介质 | |
CN112990424A (zh) | 神经网络模型训练的方法和装置 | |
CN109886226B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40084249 Country of ref document: HK |