首页> 中国专利> 建立节点表示模型的方法、装置、设备和计算机存储介质

建立节点表示模型的方法、装置、设备和计算机存储介质

摘要

本申请公开了一种建立节点表示模型的方法、装置,涉及深度学习技术领域。本申请在建立节点表示模型时所采用的方案为:获取异构图,所述异构图中包含不同类型的节点、节点之间的边以及各节点的属性特征;根据不同的元路径对所述异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据;分别将所述异构图中各节点的属性特征进行拼接,将拼接结果作为各节点的初始化特征;根据所述训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型。本申请能够提升训练得到的节点表示模型在生成节点表示时的准确性。

著录项

  • 公开/公告号CN112508115A

    专利类型发明专利

  • 公开/公告日2021-03-16

    原文格式PDF

  • 申请/专利权人 北京百度网讯科技有限公司;

    申请/专利号CN202011477926.1

  • 申请日2020-12-15

  • 分类号G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11412 北京鸿德海业知识产权代理有限公司;

  • 代理人田宏宾

  • 地址 100085 北京市海淀区上地十街10号百度大厦2层

  • 入库时间 2023-06-19 10:16:30

说明书

技术领域

本申请涉及计算机技术领域,尤其涉及深度学习技术领域中的一种建立节点表示模型的方法、装置、电子设备和可读存储介质。

背景技术

目前,图网络表示可以用于多种下游任务,包括节点分类、链路预测、社区检测等。现实世界中,存在大量的异构图,异构图中包含多种节点类型和边的类型。为了学习出不同类型节点的语义信息,现有技术通常采用的方法为:通过所定义的元路径采样得到不同的游走路径,通过word2vec等训练方法对游走路径进行训练,最终得到异构图中节点的表示结果。但是现有技术中的节点表示学习方法,仅使用了元路径来学习节点与节点之间的结构关系,而忽略了节点本身的特征信息,导致训练得到的节点表示模型所生成的节点表示不够准确。

发明内容

本申请为解决技术问题所采用的技术方案是提供一种建立节点表示模型的方法,包括:获取异构图,所述异构图中包含不同类型的节点、节点之间的边以及各节点的属性特征;根据不同的元路径对所述异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据;分别将所述异构图中各节点的属性特征进行拼接,将拼接结果作为各节点的初始化特征;根据所述训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型。

本申请为解决技术问题所采用的技术方案是提供一种建立节点表示模型的装置,包括:获取单元,用于获取异构图,所述异构图中包含不同类型的节点、节点之间的边以及各节点的属性特征;采样单元,根据不同的元路径对所述异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据;处理单元,用于分别将所述异构图中各节点的属性特征进行拼接,将拼接结果作为各节点的初始化特征;训练单元,用于根据所述训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型。

一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法。

一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述方法。

一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述方法。

上述申请中的一个实施例具有如下优点或有益效果:本申请能够提升节点表示模型在生成节点表示时的准确性。因为采用了在异构图中引入节点本身的属性特征的技术手段,所以克服了现有技术中仅使用游走路径训练得到的节点表示模型无法准确生成节点表示的技术问题,实现了训练所得到的节点表示模型能够生成更为准确的节点表示的技术效果。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是根据本申请第一实施例的示意图;

图2是根据本申请第二实施例的示意图;

图3是根据本申请第三实施例的示意图;

图4是用来实现本申请实施例的建立节点表示模型的方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本申请第一实施例的示意图。如图1中所示,本实施例的建立节点表示模型的方法,具体可以包括如下步骤:

S101、获取异构图,所述异构图中包含不同类型的节点、节点之间的边以及各节点的属性特征;

S102、根据不同的元路径对所述异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据;

S103、分别将所述异构图中各节点的属性特征进行拼接,将拼接结果作为各节点的初始化特征;

S104、根据所述训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型。

本实施例的建立节点表示模型的方法,在异构图中引入节点本身的属性特征,丰富了异构图中节点的表征力度,且通过结合基于元路径采样得到的游走路径与各节点的属性特征的方式来训练神经网络模型,使得训练得到的节点表示模型除了关注异构图中节点之间的结构关系之外,还能够关注节点本身的信息,提升了节点表示模型所生成的节点表示的准确性。

现有技术中的异构图通常仅包含不同类型的节点以及节点之间的边,本实施例执行S101所获取的异构图中还会包含各节点的属性特征,即通过在异构图中引入节点本身的特征信息的方式,来丰富异构图中节点的表征力度。其中,节点的属性特征为特征向量。

举例来说,若异构图中包含三种不同类型的节点,分别为B、U、A三种类型的节点,若B、U、A这三种类型的节点分别表示新闻、用户与兴趣,则对应B类型的节点的属性特征可以包含新闻标题、新闻领域等,对应U类型的节点的属性特征可以包含用户性别、用户年龄、用户学历等,对应A类型的节点的属性特征可以包含兴趣名称、兴趣类别等。

本实施例在执行S101获取了异构图之后,执行S102根据不同的元路径对所述异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据。

本实施例中的元路径(meta path)是预先设置的,本实施例可以根据异构图的结构与需要获得的结果信息来具体设置元路径,所设置的元路径中会指定节点的类型以及节点之间的连接关系。

举例来说,若异构图中包含B(新闻)、U(用户)与A(兴趣)这三种类型的节点,元路径U-B-U(用户-新闻-用户)描述了一个新闻被两个用户点击的关系,元路径U-A-U描述了两个用户具有相同兴趣的关系。可见,根据元路径的不同,异构图中节点之间的关系可以有不同的语义。

本实施例在执行S102根据不同的元路径对异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据时,可以采用的可选实现方式为:针对每条元路径,在异构图中按照该元路径指定的节点类型以及节点之间的连接关系,采样得到对应该元路径的游走路径;将对应各元路径的游走路径作为训练数据。

举例来说,若异构图中包含的节点为U1、U2、U3,B1、B2、B3、B4与A1、A2、A3、A4;若元路径为U-B-U,则针对该元路径从异构图中采样得到的游走路径可以为U1-B2-U2-B4-U3;若元路径为U-A-U,则针对该元路径从异构图中采样得到的游走路径可以为U1-A2-U2-A4-U3。

本实施例在执行S102将采样得到的游走路径作为训练数据之后,执行S103分别将异构图中各节点的属性特征进行拼接,将拼接结果作为各节点的初始化特征。

本实施例在执行S103得到各节点的初始化特征时,可以仅将各节点的属性特征的拼接结果作为各节点的初始化特征,也可以在获取各节点的类型特征之后,将各节点的属性特征与各节点的类型特征进行拼接,将拼接结果作为各节点的初始化特征。其中,本实施例所获取的节点的类型特征用于表示节点的类型。

也就是说,本实施例能够根据节点的类型特征与属性特征得到节点的初始化特征,丰富了节点的特征信息,使得初始化特征更加准确。

本实施例在执行S103得到各节点的初始化特征之后,执行S104根据训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型。

其中,本实施例训练得到的节点表示模型,能够根据带有节点的属性特征的异构图,来生成异构图中各节点的节点表示,各节点的节点表示即为各节点的语义信息。本实施例对所使用的神经网络模型的类型不进行限定,例如可以为跳字(skip gram)模型。

具体地,本实施例在执行S104根据训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型时,可以采用的可选实现方式为:将异构图中的各节点分别作为目标节点;针对各目标节点,将训练数据中与该目标节点相邻的节点的初始化特征作为该目标节点的正样本,将不与目标节点相邻的、且与目标节点具有相同类型的节点的初始化特征作为该目标节点的负样本;根据各目标节点的初始化特征、各目标节点的正样本与负样本来训练神经网络模型,直至神经网络模型收敛,得到节点表示模型。

也就是说,本实施例通过对目标节点的负样本进行限定,使得神经网络模型能够更好地学习节点的表示,提升了训练得到的节点表示模型所生成的节点表示的准确性。

可以理解的是,本实施例中与目标节点相邻的节点为训练数据中位于目标节点前后预设距离的节点,若预设距离可以为2,则本实施例将距离目标节点2个距离的节点作为目标节点的相邻节点。

本实施例在执行S104根据各目标节点的初始化特征、正样本与负样本来训练神经网络模型时,将目标节点的初始化特征与正样本或者负样本中的一种作为神经网络模型的输入,根据神经网络模型的输出结果得到损失函数,进而根据损失函数来调整神经网络模型的参数,直至神经网络模型收敛,得到节点表示模型。

可以理解的是,本实施例中神经网络模型的损失函数可以使用二分类的交叉熵损失函数进行表示,也可以使用其他类型的损伤函数进行表示。另外,本实施例在确定神经网络模型收敛时可以包括,确定损失函数小于或等于预设阈值,或者确定在预设次数内得到的损失函数相等,或者确定在预设次数内得到的损失函数之间的差值小于或等于预设阈值,等等。

通过上述实施例所提供的方法,在异构图中引入节点的属性特征,进而结合基于元路径采样得到的游走路径与各节点的属性特征的方式来训练神经网络模型,使得训练得到的节点表示模型除了关注异构图中节点之间的结构关系之外,还能够关注节点本身的信息,提升了节点表示模型所生成的节点表示的准确性。

图2是根据本申请第二实施例的示意图。图2示出了本实施例建立节点表示模型的流程图:

图2中最左侧为带有节点的属性特征的异构图,该异构图中包含B、U以及A三种类型的节点;图2中间为根据预设的元路径采样得到的游走路径,例如元路径U-B-U-A-U对应的游走路径为U1-B3-U3-A4-U2;图2中最右侧中的W(t)表示一个目标节点的初始化特征,初始化特征为拼接节点的属性特征与类型特征所得到的,W(t-2)表示位于目标节点之前2个距离的相邻节点的初始化特征,W(t-1)表示位于目标节点之前1个距离的相邻节点的初始化特征,W(t+1)表示位于目标节点之后1个距离的相邻节点的初始化特征,W(t+2)表示位于目标节点之后2个距离的相邻节点的初始化特征,各相邻节点之后的内容表示目标节点的负样本。

图3是根据本申请第三实施例的示意图。如图3中所示,本实施例的建立节点表示模型的装置,包括:

获取单元301、用于获取异构图,所述异构图中包含不同类型的节点、节点之间的边以及各节点的属性特征;

采样单元302、用于根据不同的元路径对所述异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据;

处理单元303、用于分别将所述异构图中各节点的属性特征进行拼接,将拼接结果作为各节点的初始化特征;

训练单元304、用于根据所述训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型。

现有技术中的异构图通常仅包含不同类型的节点以及节点之间的边,获取单元301所获取的异构图中还会包含各节点的属性特征,即通过在异构图中引入节点本身的特征信息的方式,来丰富异构图中节点的表征力度。其中,节点的属性特征为特征向量。

本实施例在由获取单元301获取了异构图之后,由采样单元302根据不同的元路径对所述异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据。

本实施例中的元路径(meta path)是预先设置的,本实施例可以根据异构图的结构与需要获得的结果信息来具体设置元路径,所设置的元路径中会指定节点的类型以及节点之间的连接关系。

采样单元302在根据不同的元路径对异构图进行采样,将采样得到的对应于各元路径的游走路径作为训练数据时,可以采用的可选实现方式为:针对每条元路径,在异构图中按照该元路径指定的节点类型以及节点之间的连接关系,采样得到对应该元路径的游走路径;将对应各元路径的游走路径作为训练数据。

本实施例在由采样单元302将采样得到的游走路径作为训练数据之后,由处理单元303分别将异构图中各节点的属性特征进行拼接,将拼接结果作为各节点的初始化特征。

处理单元303在得到各节点的初始化特征时,可以仅将各节点的属性特征的拼接结果作为各节点的初始化特征,也可以在获取各节点的类型特征之后,将各节点的属性特征与各节点的类型特征进行拼接,将拼接结果作为各节点的初始化特征。其中,处理单元303所获取的节点的类型特征用于表示节点的类型。

本实施例在由处理单元303得到各节点的初始化特征之后,由训练单元304根据训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型。

其中,训练单元304训练得到的节点表示模型,能够根据带有节点的属性特征的异构图,来生成异构图中各节点的节点表示,各节点的节点表示即为各节点的语义信息。训练单元304对所使用的神经网络模型的类型不进行限定,例如可以为跳字(skip gram)模型。

具体地,训练单元304在根据训练数据与各节点的初始化特征对神经网络模型进行训练,得到节点表示模型时,可以采用的可选实现方式为:将异构图中的各节点分别作为目标节点;针对各目标节点,将训练数据中与该目标节点相邻的节点的初始化特征作为该目标节点的正样本,将不与目标节点相邻的、且与目标节点具有相同类型的节点的初始化特征作为该目标节点的负样本;根据各目标节点的初始化特征、各目标节点的正样本与负样本来训练神经网络模型,直至神经网络模型收敛,得到节点表示模型。

也就是说,训练单元304通过对目标节点的负样本进行限定,使得神经网络模型能够更好地学习节点的表示,提升了训练得到的节点表示模型所生成的节点表示的准确性。

可以理解的是,训练单元304中与目标节点相邻的节点为训练数据中位于目标节点前后预设距离的节点,若预设距离可以为2,则训练单元304将距离目标节点2个距离的节点作为目标节点的相邻节点。

训练单元304在根据各目标节点的初始化特征、正样本与负样本来训练神经网络模型时,将目标节点的初始化特征与正样本或者负样本中的一种作为神经网络模型的输入,根据神经网络模型的输出结果得到损失函数,进而根据损失函数来调整神经网络模型的参数,直至神经网络模型收敛,得到节点表示模型。

可以理解的是,训练单元304中神经网络模型的损失函数可以使用二分类的交叉熵损失函数进行表示,也可以使用其他类型的损伤函数进行表示。另外,训练单元304在确定神经网络模型收敛时可以包括,确定损失函数小于或等于预设阈值,或者确定在预设次数内得到的损失函数相等,或者确定在预设次数内得到的损失函数之间的差值小于或等于预设阈值,等等。

根据本申请的实施例,本申请还提供了一种电子设备、一种计算机可读存储介质以及一种计算机程序产品。

图4示出了可以用来实施本申请的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。

设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如建立节点表示模型的方法。例如,在一些实施例中,建立节点表示模型的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的建立节点表示模型的方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行建立节点表示模型的方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(“Virtual Private Server”,或简称“VPS”)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号