CN112199600A - 目标对象识别方法和装置 - Google Patents
目标对象识别方法和装置 Download PDFInfo
- Publication number
- CN112199600A CN112199600A CN202011184205.1A CN202011184205A CN112199600A CN 112199600 A CN112199600 A CN 112199600A CN 202011184205 A CN202011184205 A CN 202011184205A CN 112199600 A CN112199600 A CN 112199600A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- types
- candidate
- network graph
- 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
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/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了目标对象识别方法,包括:获取基于不同类型的对象构建的网络图,其包括与对象对应的节点以及节点间的边,边的权重表示节点对应的对象间的关联度;确定包括转移参数、最近转移数量、最大游走长度和元路径的游走参数,转移参数控制当前节点到邻居节点的转移概率,最近转移数量控制下一跳节点的节点类型以便与最近转移数量个节点的节点类型不同,最大游走长度控制游走节点序列的最大节点数量,元路径定义游走时经过的节点的节点类型;基于游走参数、边的权重得到游走节点序列;基于游走节点序列确定节点的嵌入向量;根据节点的嵌入向量,确定与种子节点的相似度小于阈值的目标节点;将目标节点对应的对象识别为目标对象。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及目标对象识别方法和装置。
背景技术
随着互联网技术以及人工智能的快速发展,目标对象识别技术被广泛使用。例如,在向用户推荐对象的场景(例如,向用户推荐商品或者内容等的场景)中,为不同的用户准确推荐对象是至关重要的,这直接关系到用户的体验度。再例如,在识别具有类似性质的对象的场景(例如,识别恶意用户、低俗文章、新用户等场景)中,如何准确识别与具有已知性质的对象相似的对象是至关重要的,这关系到对对象识别的准确率。所有这些场景中的关键均为目标对象识别技术。
在相关技术中,通常训练机器学习模型来识别网络中的目标对象。例如,预先收集已标注标签的对象,然后根据已标注标签的对象训练机器学习模型;在识别阶段,利用训练好的机器学习模型识别待识别对象的标签,通过标签来确定待识别对象是否为期望的目标对象。然而,相关技术中机器学习模型的识别准确性取决于训练数据的规模以及训练数据的标签的准确性,由于通常很难采集到大量具有准确标签的训练数据,导致利用训练出的机器学习模型进行对象识别的准确性较低。
发明内容
有鉴于此,本公开提供了目标对象识别方法和装置,期望克服上面提到的部分或全部缺陷以及其它可能的缺陷。
根据本公开的第一方面,提供了一种目标对象识别方法,包括:获取基于不同类型的多个对象构建的网络图,其中所述网络图包括与所述多个对象对应的多个节点以及在节点间进行连接的边,节点的节点类型对应于对象的类型,每条边具有权重以表示所述每条边连接的两个节点对应的对象间的关联度;确定游走参数,所述游走参数包括转移参数、最近转移数量、最大游走长度以及元路径,其中,所述转移参数控制在所述网络图中随机游走到的当前节点到邻居节点的转移概率,最近转移数量控制当前节点的下一跳节点的节点类型以使其与最近游走到的所述最近转移数量个节点的节点类型不同,最大游走长度控制通过随机游走得到的游走节点序列的最大节点数量,以及元路径定义了随机游走时将依次经过的节点的节点类型;在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列;基于所述游走节点序列确定网络图中的节点的嵌入向量;根据网络图中的节点的嵌入向量,从网络图中确定与节点中的种子节点的相似度小于相似度阈值的目标节点;将所述目标节点对应的对象识别为针对种子节点对应的对象的目标对象。
在一些实施例中,在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列,包括:从网络图中选择游走的起始节点并将其作为当前节点添加到游走节点序列中;迭代执行如下步骤,直到游走节点序列中的节点数量达到所述最大节点数量:基于所述游走参数中的元路径以及最近转移数量确定当前节点的下一跳节点的候选节点类型的集合;根据下一跳节点的候选节点类型的集合以及网络图中当前节点与邻居节点间的边的权重从当前节点的邻居节点中采样下一跳候选节点;响应于下一跳候选节点为游走节点序列中的第二个节点的候选节点,则将下一跳候选节点确定为当前节点的下一跳节点以添加到游走节点序列中并将其作为当前节点;响应于下一跳候选节点不是游走节点序列中的第二个节点的候选节点,在确定下一跳候选节点是可接受的下一跳候选节点时,将下一跳候选节点确定为当前节点的下一跳节点以添加到游走节点序列中并将其作为当前节点。
在一些实施例中,基于所述游走参数中的元路径以及最近转移数量确定当前节点的下一跳节点的候选节点类型的集合,包括:响应于所述游走参数中的元路径为空集,则确定网络图中节点的节点类型中最近游走到的所述最近转移数量个节点的节点类型之外的节点类型的第一集合,并且:在所述节点类型的第一集合为空集时,则将网络图中节点的节点类型的全集确定为下一跳节点的候选节点类型的集合;在所述节点类型的第一集合不为空集时,则将所述节点类型的第一集合确定为下一跳节点的候选节点类型的集合;以及,响应于所述游走参数中的元路径不为空集,则将下一跳节点的候选节点类型的集合确定为包括所述元路径中的对应节点类型。
在一些实施例中,根据下一跳节点的候选节点类型的集合以及网络图中当前节点与邻居节点间的边的权重从当前节点的邻居节点中采样下一跳候选节点,包括:确定下一跳节点的有效节点类型集合,所述有效节点类型集合包括在当前节点的邻居节点的节点类型中以及下一跳节点的候选节点类型的集合中同时存在的节点类型;以选择概率从有效节点类型集合中选择节点类型,其中有效节点类型集合中相应节点类型的选择概率正相关于所述相应节点类型对应的权重与有效节点类型总权重之比,所述相应节点类型对应的权重包括邻居节点中具有所述相应节点类型的节点与当前节点间的边的权重之和,以及有效节点类型总权重包括邻居节点中具有有效节点类型集合中各节点类型的节点与当前节点间的边的权重之和;从具有所述选择的节点类型的邻居节点中采样下一跳候选节点。
在一些实施例中,从具有所述选择的节点类型的邻居节点中采样下一跳候选节点,包括:以采样概率从具有所述选择的节点类型的邻居节点中采样下一跳候选节点,其中下一跳候选节点的采样概率正相关于下一跳候选节点对应的权重与邻居节点总权重之比,下一跳候选节点对应的权重包括下一跳候选节点与当前节点间的边的权重,邻居节点总权重包括具有所述选择的节点类型的邻居节点与当前节点间的边的权重之和。
在一些实施例中,所述转移参数包括第一接受系数、第二接受系数和第三接受系数,其中所述第一接受系数用于控制从当前节点游走到邻居节点中当前节点的前一节点的转移概率,所述第二接受系数用于控制从当前节点游走到与邻居节点中与当前节点的前一节点不相邻的节点的转移概率,所述第三接受系数用于控制从当前节点游走到与邻居节点中与当前节点的前一节点相邻的节点的转移概率。
在一些实施例中,所述方法还包括:响应于下一跳候选节点不是游走节点序列中的第二个节点的候选节点,并且所述第一接受系数、第二接受系数与第三接受系数的值相同,则确定下一跳候选节点是可接受的下一跳候选节点。
在一些实施例中,所述方法还包括:响应于下一跳候选节点不是游走节点序列中的第二个节点的候选节点,并且所述第一接受系数或第二接受系数中的至少一个与第三接受系数的值不同,则:确定第一接受系数、第二接受系数以及第三接受系数之间的最大值并且在零到所述最大值之间取随机数;响应于确定下一跳候选节点是当前节点的前一节点且所述随机数小于所述第一接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点;响应于确定下一跳候选节点是与当前节点的前一节点不相邻的节点,且所述随机数小于所述第二接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点;响应于确定下一跳候选节点是与当前节点的前一节点相邻的节点,且所述随机数小于所述第三接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点。
在一些实施例中,所述网络图中的节点具有节点标识符,所述节点标识符识别所述节点的编号和所述节点的节点类型的编号。
在一些实施例中,所述不同类型的多个对象包括用户类型的对象以及内容类型的对象,其中表示用户类型的对象的节点与表示内容类型的对象的节点间的关联度是基于所述用户类型的对象对应的用户对所述内容类型的对象对应的内容的关注度而确定的。
在一些实施例中,所述种子节点包括表示用户类型的对象的节点,以及所述目标节点包括表示内容类型的对象的节点。
根据本公开的第二方面,提供了一种目标对象识别装置,包括:网络图获取模块,被配置成获取基于不同类型的多个对象构建的网络图,其中所述网络图包括与所述多个对象对应的多个节点以及在节点间进行连接的边,节点的节点类型对应于对象的类型,每条边具有权重以表示所述每条边连接的两个节点对应的对象间的关联度;参数确定模块,被配置成确定游走参数,所述游走参数包括转移参数、最近转移数量、最大游走长度以及元路径,其中,所述转移参数控制在所述网络图中随机游走到的当前节点到邻居节点的转移概率,最近转移数量控制当前节点的下一跳节点的节点类型以使其与最近游走到的所述最近转移数量个节点的节点类型不同,最大游走长度控制通过随机游走得到的游走节点序列的最大节点数量,以及元路径定义了随机游走时将依次经过的节点的节点类型;序列获取模块,被配置成在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列;嵌入向量确定模块,被配置成基于所述游走节点序列确定网络图中的节点的嵌入向量;目标节点确定模块,被配置成根据网络图中的节点的嵌入向量,从网络图中确定与节点中的种子节点的相似度小于相似度阈值的目标节点;目标对象识别模块,被配置成将所述目标节点对应的对象识别为针对种子节点对应的对象的目标对象。
根据本公开的第三方面,提供了一种计算设备,包括处理器;以及存储器,配置为在其上存储有计算机可执行指令,当计算机可执行指令被处理器执行时执行如上面所述的任意方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如上面所述的任意方法。
在本公开要求保护的目标对象识别方法和装置中,通过利用不同类型的多个对象构建的网络图,并且基于转移参数、最近转移数量、最大游走长度以及元路径这样的游走参数在网络图中获取游走节点序列,更准确地捕获到了节点在图中的隐藏信息(也称为上下文信息),使得网络图中的节点的嵌入向量被更准确地确定,从而使得针对种子节点对应的对象所识别的目标对象的准确度更高。而且,本发明的技术方案避免了对训练数据的规模以及大量具有准确标签的训练数据的需要,节省了大量的计算开销。
根据下文描述的实施例,本公开的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本公开的这些和其它优点。
附图说明
现在将更详细并且参考附图来描述本公开的实施例,其中:
图1图示了根据本公开的实施例的技术方案可以实施在其中的示例性应用场景;
图2图示了根据本公开的一个实施例的一种目标对象识别方法的示意性流程图;
图3图示了根据本公开的一个实施例的skip-gram神经网络的示意图;
图4图示了根据本公开的一个实施例的在图2中所述的网络图中基于游走参数、网络图中的边的权重进行随机游走以得到游走节点序列的方法的示意性流程图;
图5图示了根据本公开的一个实施例确定网络图中的节点的邻居节点的信息的示意图;
图6图示了根据本公开的一个实施例的一种采样下一跳候选节点的方法的示例性流程图;
图7图示了根据本公开的实施例的第一接受系数、第二接受系数以及第三接受系数的示意图;
图8示出了根据本公开的一个实施例的目标对象识别装置的示例性结构框图;
图9图示了一个示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备。
具体实施方式
下面的描述提供了本公开的各种实施例的特定细节,以便本领域的技术人员能够充分理解和实施本公开的各种实施例。应当理解,本公开的技术方案可以在没有这些细节中的一些细节的情况下被实施。在某些情况下,本公开并没有示出或详细描述一些熟知的结构或功能,以避免这些不必要的描述使对本公开的实施例的描述模糊不清。在本公开中使用的术语应当以其最宽泛的合理方式来理解,即使其是结合本公开的特定实施例被使用的。
首先,对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
随机游走:是一种数学统计模型,它是一连串的轨迹所组成,其中每一次都是随机的。随机游走能用来表示不规则的变动形式,它可以在各种空间上进行。本文中主要指在图上的随机游走,给定一个图和一个起始节点,随机选择一个邻居节点,走到该处后再随机选择一个邻居,重复指定的次数。
Uniform游走策略:在选择下一跳节点时,等概率地选择邻居节点中的一个节点作为下一跳节点,从而获取随机游走序列。
Frequency游走策略:在选择下一跳节点时,邻居节点中每个节点被选中的概率与边的权重值正相关,从而获取随机游走序列。
node2vec游走策略:在选择下一跳节点时,综合当前节点以及访问过的节点的信息进行选择。可以预先设定返回参数和出入参数,返回参数控制重复访问刚刚访问过的顶点的概率,出入参数控制着游走的方向使得游走时偏向宽度优先还是广度优先,通过两个参数的控制来获取随机游走序列。
Metapath游走策略:在选择下一跳节点时,按照预先设定的随机游走序列中各个节点的节点类型,来随机选择邻居节点作为下一跳节点。
本申请实施例提供的技术方案涉及人工智能和机器学习等技术。人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
图1图示了根据本公开的实施例的技术方案可以实施在其中的示例性应用场景100。如图1所示,所述应用场景100包括服务器110、终端120、130以及网络140。终端120、130通过网络140与服务器110可通信地耦合在一起。作为示例,用户A和B可以通过终端120、130上的应用程序或客户端观看内容,所述内容例如可以是视频、音频、图文等。这里仅示出了两个终端,事实上可以存在三个或更多个终端。
作为示例,所述服务器110可以收集各终端上的用户对各种类型的内容的观看历史或者点击历史。然后,服务器110可以将所述观看历史或点击历史中涉及的用户和内容作为对象构建网络图。所述网络图包括与所述多个对象对应的多个节点以及在节点间进行连接的边,节点的节点类型对应于对象的类型(例如用户或者内容),每条边具有权重以表示所述每条边连接的两个节点对应的对象间的关联度,关联度例如可以根据用户对内容的观看时长、点击率等确定。
服务器110可以进一步确定游走参数,所述游走参数包括转移参数、最近转移数量、最大游走长度以及元路径。所述转移参数控制在所述网络图中随机游走到的当前节点到各邻居节点的转移概率,最近转移数量控制当前节点的下一跳节点的节点类型以使其与最近游走到的所述最近转移数量个节点的节点类型不同,最大游走长度控制通过随机游走得到的游走节点序列的最大节点数量,以及元路径定义了随机游走时将依次经过的节点的节点类型。然后,服务器110可以在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列,并且基于所述游走节点序列确定网络图中的节点的嵌入向量。例如,服务器可以将所述游走节点序列输入到Word2vec模型中进行训练,以得到网络图中的节点的嵌入向量。
基于此,服务器110根据网络图中的节点的嵌入向量从网络图中确定与节点中的种子节点的相似度小于相似度阈值的目标节点,然后将所述目标节点对应的对象识别为针对种子节点对应的对象的目标对象。作为示例,所述种子节点对应的对象是用户,以及所述目标节点对应的对象是内容。在这种情况下,目标节点对应的内容极大可能是种子节点对应的用户感兴趣或关注的内容,因此可以将所述内容推荐给所述用户。也即,服务器可以将所述目标对象推荐给所述种子节点对应的对象。作为另一示例,所述种子节点对应的对象是内容、以及所述目标节点对应的对象也是内容。在这种情况下,所述目标节点对应的内容与所述种子节点对应的内容极大概率具有相同的性质,如果种子节点对应的内容为低俗内容,则可以确定所述目标节点对应的内容也为低俗内容。作为又一示例,所述种子节点对应的对象是用户,以及所述目标节点对应的对象也用户。在这种情况下,所述目标节点对应的用户与所述种子节点对应的用户极大概率具有相同的性质,如果种子节点对应的用户为新用户、则可以确定所述目标节点对应的用户也为新用户。当然,这里的示例性应用场景仅仅举例,而不是穷举。
可选地,服务器110可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端120、130可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、台式PC机、数字电视等可以呈现内容的终端。所述网络140例如可以是广域网(WAN)、局域网(LAN)、无线网络、公用电话网、内联网以及本领域的技术人员熟知的任何其它类型的网络。还应当指出,上面描述的场景仅仅是本公开的实施例可以被实施在其中的一个示例,并不是限制性的。
应当指出,上面描述的场景仅仅是本公开的实施例可以被实施在其中的一个示例,并不是限制性的。例如,在一些实施例性场景中,也可能在特定终端上实现目标对象识别。
图2图示了根据本公开的一个实施例的一种目标对象识别方法200的示意性流程图。所述方法200例如可以实施于诸如图1中的服务器120上,当然这不是限制性的。如图2所示,所述方法200包括如下步骤。
在步骤210,获取基于不同类型的多个对象构建的网络图。所述网络图包括与所述多个对象对应的多个节点以及在节点间进行连接的边,节点的节点类型对应于对象的类型,每条边具有权重以表示所述每条边连接的两个节点对应的对象间的关联度。换句话说,所述网络图为异构图。
所述不同类型的多个对象可以包括但不限于用户类型的对象以及内容类型的对象等。所述内容类型的对象例如是可以供用户观看或关注的对象,例如视频、网页、商品、物品等。节点的节点类型对应于对象的类型。即,两个对象的类型不同,则与所述两个对象对应的节点的节点类型也是不同的。在网络图中,每个对象可以视为或对应于一个节点,在两个节点之间进行连接的边表示这两个节点之间存在关系。由网络中的各个节点,以及各个节点之间的边构成的图就是上述网络图。例如,以网络中的网页为例,每个网页可以视为一个节点,当某一个网页A中包含另一个网页B的链接时,在网络图中,该网页A和网页B各自对应的节点之间就存在一条边。再例如,以网络中的用户为例,每个用户可以视为一个节点,当用户a和用户b是网络中的好友时,在网络图中,该用户a和用户b各自对应的节点之间就存在一条边。再例如,以网络中的用户和网页为例,每个用户和网页都可以视为一个节点,当用户a观看了所述网页C,则在网络图中,该用户a和网页C各自对应的节点之间就存在一条边。应当指出,上面描述的仅仅为一些示例。例如,对象还可以包括商品、视频等,当用户关注、喜欢、购买、阅读、评论或分享过所述商品或视频,则对象对应的节点与用户对应的节点之间就可以存在一条边。
节点之间的边可以有各自不同的权重,节点之间的边的权重表示所述边连接的两个节点对应的对象间的关联度。作为示例,表示用户类型的对象的节点与表示内容类型的对象的节点间的关联度可以是基于所述用户类型的对象对应的用户对所述内容类型的对象对应的内容的关注度而确定的。例如,用户a观看了所述网页C的次数越多或时间越长,说明用户a对网页C的关注度越高或者两者之间的关联度越高,因此,用户a和网页C各自对应的节点之间的边的权重就越高。再例如,当用户a和用户b是网络中的好友且共同好友较多时时,说明用户a和用户b之间的关联度越高,因此,在网络图中,该用户a和用户b各自对应的节点之间的边的权重就越高。权重值的具体确定方式可以是任意合适的方式,这里不做限定。
在一些实施例中,所述网络图中的节点具有节点标识符,所述节点标识符识别所述节点的编号和所述节点的节点类型的编号。相关技术中,通常采用邻接表方式存储网络图上节点间连接关系,异构图的邻接表包含以下三类信息:邻居节点编号,其中相同类型的节点的编号存储位置连续;边的权重集合,其中边的顺序与节点的编号的一一对应;节点类型索引,用于记录节点类型对应的节点在邻居节点编号集合中第一次出现的位置。在本公开的实施例中,通过使用同时识别所述节点的编号和节点类型的编号的节点标识符能够节省单独存储节点类型索引的需要,从而节省大量的存储空间。
作为示例,可以使用节点标识符的高16位表示节点类型的编号,低48位表示节点的编号。节点标识符的编码公式可以表示为:节点标识符=(节点类型的编号<< 48) | (节点的编号& 0x0000ffffffffffff)。
在步骤220,确定游走参数。所述游走参数包括转移参数、最近转移数量、最大游走长度以及元路径。所述转移参数控制在所述网络图中随机游走到的当前节点到各邻居节点的转移概率,最近转移数量控制当前节点的下一跳节点的节点类型以使其与最近游走到的所述最近转移数量个节点的节点类型不同,最大游走长度控制通过随机游走得到的游走节点序列的最大节点数量,以及元路径定义了随机游走时将依次经过的节点的节点类型。
作为示例,最近转移数量可以被设为正整数N,则其可以控制在随机游走时选择当前节点的下一跳节点的节点类型使得其与最近游走到的N个节点的节点类型不同。作为示例,元路径可以表示为由类型M(0), M(1), M(2), …, M(|M|-1), M(0), M(1)…构成的序列,其中序列的长度为|M|,即序列中有|M|个节点类型。所述元路径定义了随机游走时将依次经过的节点的节点类型为M(0), M(1), M(2), …, M(|M|-1), M(0), M(1)…,也即指定了生成的游走节点序列中的节点类型的序列为该序列。例如,所述元路径可以为序列(用户,内容,用户),其指定了生成的游走节点序列中的节点类型需要是用户、内容、用户。
在步骤230,在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列。应当理解,所述游走节点序列为网络图中的部分节点的序列。在本文中,游走节点序列与随机游走序列可互换地使用。作为示例,可以使用任何合适的策略来基于所述游走参数、网络图中的边的权重获取所述游走节点序列。作为示例,可以获取所述网络图的多条游走节点序列,使得所述多条游走节点序列包括或者覆盖网络图中的所有节点。可选地,可以以网络图中的每个节点为起点(即,遍历所述网络图中的节点)获取游走节点序列,这可以使得后续确定的节点的嵌入向量更加准确。当然,这不是限制性的。下面参照图4将进一步描述了在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列的示例性方法。
在步骤240,基于所述游走节点序列确定网络图中的节点的嵌入向量。在本公开的实施例中,可以使用Word2vec模型来处理所述游走节点序列。Word2vec是将单词转化为嵌入向量的方法。相似的词应具有相似的嵌入向量。Word2vec使用只有一个隐藏层的skip-gram神经网络进行训练,如图3所示。训练的目标是预测句子中当前词的相邻词。由于这样的任务只会在训练阶段出现,skip-gram的上下文单词预测也被称为伪任务。网络的输入为一个单词,通过优化神经网络权重来最大化该单词在句子中相邻单词的概率。skip-gram神经网络由输入层、一个隐藏层和输出层组成。如图3所示,输入层输入当前词的one-hot编码(one-hot编码是长度为字典数量的向量,其中除当前词位置为1外其余位均为0);隐藏层没有激活函数,该层输出表示单词的嵌入向量;输出层通过softmax分类器输出邻域词的预测概率。通过这样的训练,具有相似含义的两个词很可能具有相似的邻域词,于是得到相似的嵌入向量。在本公开中,可以将随机游走得到游走节点序列类比为word2vec中的句子,节点类比为句子中的单词。skip-gram神经网络将游走节点序列中的一个节点的one-hot向量作为输入,并最大化其相邻节点的预测概率。训练后的神经网络的隐藏层的输出即为节点的嵌入向量。
在步骤250,根据网络图中的节点的嵌入向量,从网络图中确定与节点中的种子节点的相似度小于相似度阈值的目标节点。作为示例,两个节点间的相似度可以由两个节点的嵌入向量间的欧式距离或者余弦相似度等来表示。例如,欧式距离越小,两个节点的相似度越高。作为示例,遍历种子节点之外的其它节点,可以确定与种子节点的相似度小于相似度阈值的全部目标节点。具体地,利用种子节点的嵌入向量和其它节点的嵌入向量计算相似度可以作为种子节点对应的对象与所述其它节点对应的对象间的相似度。在一些实施例中,可以根据网络图中的节点的嵌入向量,从网络图中确定与节点中的种子节点的相似度大于相似度阈值且具有预定节点类型的目标节点。
在步骤260,将所述目标节点对应的对象识别为针对种子节点对应的对象的目标对象。将所述目标节点对应的对象识别为针对种子节点对应的对象表示目标对象与种子节点对应对象具有较高的关联度,例如目标对象是种子节点对应的对象感兴趣或关注的对象,或者目标对象与种子节点对应的对象具有相同或类似的性质等。作为示例,所述种子节点对应的是用户类型的对象,以及所述目标节点对应的是内容类型的对象。在这种情况下,所述内容类型的对象极大可能是种子节点对应的用户感兴趣或关注的,因此可以将所述内容类型的对象推荐给所述用户。也即,服务器可以将所述目标对象推荐给所述种子节点的对象。作为另一示例,所述种子节点对应的对象是内容、以及所述目标节点对应的对象也是内容。在这种情况下,所述目标节点对应的内容与所述种子节点对应的内容极大概率具有相同的性质,如果种子节点对应的内容为低俗内容,则可以确定所述目标节点对应的内容也为低俗内容。作为又一示例,所述种子节点对应的对象是用户,以及所述目标节点对应的对象也用户。在这种情况下,所述目标节点对应的用户与所述种子节点对应的用户极大概率具有相同的性质,如果种子节点对应的用户为新用户、则可以确定所述目标节点对应的用户也为新用户。
在本公开的实施例中描述的目标对象识别方法200中,通过利用不同类型的多个对象构建的网络图,并且基于转移参数、最近转移数量、最大游走长度以及元路径这样的游走参数在网络图中获取游走节点序列,更准确地捕获到了节点在图中的隐藏信息(称为上下文信息,这类似于词语在句子中的上下文信息),使得网络图中的节点的嵌入向量被更准确地确定,从而使得针对种子节点对应的对象所识别的目标对象的准确度更高。而且,本发明的技术方案避免了对训练数据的规模以及大量具有准确标签的训练数据的需要,节省了大量的计算开销。
图4图示了根据本公开的一个实施例在图2中所述的网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列的方法400的示意性流程图。所述方法400例如可以实施参照图2描述的步骤230。如图4所示,所述方法400包括如下步骤。
在步骤410,从网络图中选择随机游走的起始节点并将其作为当前节点添加到游走节点序列中。作为示例,所述起始节点可以从网络图中随机选择,或者可以是遍历选择到的起始节点。
在步骤420,确定游走节点序列中的节点数量是否达到所述最大节点数量。所述最大节点数量是由游走参数中的最大游走长度确定的。如果游走节点序列中的节点数量小于所述最大节点数量,则转到步骤430。如果游走节点序列中的节点数量达到所述最大节点数量,则转到步骤480,并在步骤480输出得到的游走节点序列以结束游走过程。
在步骤430,基于所述游走参数中的元路径以及最近转移数量确定当前节点的下一跳节点的候选节点类型的集合。元路径定义了随机游走时将依次经过的节点的节点类型,最近转移数量控制当前节点的下一跳节点的节点类型以使其与最近游走到的所述最近转移数量个节点的节点类型不同。
在一些实施例中,如果所述游走参数中的元路径为空集,则首先确定网络图中节点的节点类型中最近游走到的所述最近转移数量个节点的节点类型之外的节点类型构成的第一集合,并且如果所述节点类型的第一集合为空集,则将网络图中节点的节点类型的全集确定为下一跳节点的候选节点类型的集合;而如果所述节点类型的第一集合不为空集,则将所述节点类型的第一集合确定为下一跳节点的候选节点类型的集合。如果所述游走参数中的元路径不为空集,则将下一跳节点的候选节点类型的集合确定为包括所述元路径中的对应节点类型。
作为示例,假设元路径为由类型M(0), M(1), M(2), …, M(|M|-1), M(0), M(1)…, 构成的序列,其中序列的长度为|M|,即序列中有|M|个节点类型。如果M不为空集,则下一跳节点的候选节点类型的集合T确定为包括所述元路径中的对应节点类型。例如当前节点的元路径类型为M(1),下一跳节点的候选节点类型的集合T则为M(2)。作为示例,最近转移数量为k,最近k个访问节点S(i), S(i-1)…S(i-k+1)的节点类型集合为H,如果所述游走参数中的元路径为空集,则首先确定网络图中节点的所有节点类型A中最近游走到的所述最近k个节点的节点类型之外的节点类型构成的第一集合(A\H),并且如果所述节点类型的第一集合为空集,则可以确定下一跳节点的候选节点类型的集合T为网络图中节点的所有节点类型A;而如果所述节点类型的第一集合不为空集,则可以确定下一跳节点的候选节点类型的集合T为第一集合(A\H)。
在步骤440,根据下一跳节点的候选节点类型的集合以及网络图中当前节点与邻居节点间的边的权重从当前节点的邻居节点中采样下一跳候选节点。这里的采样为层次采样,即先采样下一跳节点的候选节点类型,然后从下一跳节点的候选节点类型对应的节点中采样下一跳候选节点。在采样的过程,对于与当前节点间的边具有较高权重的节点的节点类型以及节点可以赋予较高的采样概率。作为示例,下面结合图6描述了一种采样下一跳候选节点的方法的示例性流程图,当然这不是限制性的。
在步骤450,确定下一跳候选节点是否为游走节点序列中的第二个节点的候选节点。游走节点序列中的第二个节点为游走节点序列中紧跟在起始节点之后的节点。该步骤主要是判断所述下一跳候选节点是否是意图用于游走节点序列中的第二个节点。如果在步骤450确定下一跳候选节点为游走节点序列中的第二个节点的候选节点,则在步骤460中将下一跳候选节点确定为当前节点的下一跳节点以添加到游走节点序列中并将其作为当前节点。
如果在步骤450确定下一跳候选节点不是游走节点序列中的第二个节点的候选节点,则在步骤470确定下一跳候选节点是否是可接受的下一跳候选节点。在一些实施例中,可以根据转移参数来确定下一跳候选节点是否是可接受的下一跳候选节点。转移参数可以包括第一接受系数、第二接受系数和第三接受系数,所述第一接受系数用于控制从当前节点游走到邻居节点中当前节点的前一节点的第一转移概率,所述第二接受系数用于控制从当前节点游走到与邻居节点中与当前节点的前一节点不相邻的节点的第二转移概率,所述第三接受系数用于控制从当前节点游走到与邻居节点中与当前节点的前一节点相邻的节点的第三转移概率。可选地,第一转移概率取决于所述第一接受系数以及在当前节点和前一节点间的边的权重;第二转移概率取决于所述第二接受系数以及在当前节点和所述不相邻的节点间的边的权重;以及第三转移概率取决于第三接受系数以及在当前节点和所述相邻的节点间的边的权重。
作为示例,图7示出了根据本公开的实施例的第一接受系数、第二接受系数以及第三接受系数的示意图。如图7所示,节点v为当前节点,节点t为随机游走的游走节点序列中节点v的前一节点,节点v的邻居节点包括节点t、节点x1、节点x2、节点x3。在从节点v向节点v的下一跳节点x(其可能是节点t、节点x1、节点x2、节点x3)转移时,到各个邻居节点具有不同的转移概率,从节点v到节点x的转移概率的计算方法是,其中是节点v和节点x之间的边的权重的归一化值,接受系数的定义如下:
其中为节点t与节点x之间的最短路径距离。例如,指示节点t与节点x重合,即同一节点,对应的第一接受系数为1/p;如果t与x不相连(即,不相邻),对应的第二接受系数1/q;如果t与x相连(即,两者相邻),对应的第三接受系数为基准值1。可以通过设置返回参数p和出入参数q的值来确定所述第一接受系数和第二接受系数的值。
在一些实施例中,响应于下一跳候选节点不是游走节点序列中的第二个节点的候选节点,并且所述第一接受系数、第二接受系数与第三接受系数的值相同(例如,图7中接受系数的值均为1),则确定下一跳候选节点是可接受的下一跳候选节点。在一些实施例中,响应于下一跳候选节点不是游走节点序列中的第二个节点的候选节点,并且所述第一接受系数或第二接受系数中的至少一个与第三接受系数的值不同(例如,图7中1/p和1/q中至少一个不为1),则:确定第一接受系数、第二接受系数以及第三接受系数之间的最大值并且在零到所述最大值之间取随机数。响应于确定下一跳候选节点是当前节点的前一节点且所述随机数小于所述第一接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点;响应于确定下一跳候选节点是与当前节点的前一节点不相邻的节点,且所述随机数小于所述第二接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点;响应于确定下一跳候选节点是与当前节点的前一节点相邻的节点,且所述随机数小于所述第三接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点。否则,可以确定下一跳候选节点不是可接受的下一跳候选节点。
当在步骤470确定下一跳候选节点是可接受的下一跳候选节点时,转到在步骤460,即:将下一跳候选节点确定为当前节点的下一跳节点以添加到游走节点序列中并将其作为当前节点。当在步骤470确定下一跳候选节点不是可接受的下一跳候选节点时,返回到步骤440,即:根据下一跳节点的候选节点类型的集合以及网络图中当前节点与邻居节点间的边的权重从当前节点的邻居节点中采样下一跳候选节点。可选地,此时在步骤440中,可以使用之前确定下一跳节点的候选节点类型,仅从下一跳节点的候选节点类型对应的节点中重新采样下一跳候选节点。
在一些实施例中,所述方法400在步骤410之前还可以包括步骤405。在步骤405处,确定网络图中的节点的邻居节点的信息。这可以包括确定网络中各节点的邻居节点,并确定各节点和其邻居节点间的边的权重,这有利于后续各步骤的实施,因为相比于每次需要邻居节点的信息时进行确定节省了大量的计算资源。如果节点的邻居节点数为n,则构建一个节点的邻居节点的集合的时间复杂度为O(nlogn)。
可选地,在步骤405中,还可以包括按照节点类型对节点的邻居节点进行排序,并且根据节点和其邻居节点间的边的权重构建邻居节点部分和数组。可选地,还可以进一步按照邻居节点的节点编号对邻居节点进行排序。作为示例,图5图了确定网络图中的节点的邻居节点的信息的示意图,其中图示了构建邻居节点部分和数组的示意图,其中邻居节点按照节点类型进行了排序,如邻居节点的集合所示。为了描述简化起见,在图5中节点标识符被表示为x-y,其中x表示节点的节点类型编号,y表示的节点的节点编号。节点间连接的边上的数字表示边的权重。例如,节点标识符3-4表示节点的节点类型编号为3,节点编号为4。图5所示,节点标识符为0-1的节点的邻居节点包括4种类型共8个节点。构建的邻居节点部分和数组C如图所示,其中,表示节点的邻居节点集合中第j个节点对应的边的权重,如图中边的权重E所示。构建一个节点的部分和数组C的时间和空间复杂度均为O(n)。对邻居节点进行排序以及构建邻居节点部分和数组能够避免每次需要邻居节点的相关信息时进行查找的复杂度,节省后续各步骤实施时的计算量。
通过本公开的实施例提供的方法400,提供了一种新颖的随机游走机制,其基于游走参数、网络图中的边的权重进行随机游走以得到游走节点序列,使得随机游走过程灵活高效,通过设置不同的游走参数可以使用不同的随机游走策略以适应于不同的应用场景。例如,当最近转移数量被设置为0且元路径为空集,本技术方案可以退化为node2vec游走策略。当所述第一接受系数、第二接受系数与第三接受系数的值相同(例如,图7中1/p和1/q都为1),近转移数量被设置为0且元路径为空集,则本技术方案退化为frequency游走策略,而且若网络图中的节点间的边的权重都相同,则进一步相当于为uniform游走策略。当所述第一接受系数、第二接受系数与第三接受系数的值相同(例如,图7中1/p和1/q都为1),最近转移数量被设置为0且元路径不为空集,则本技术方案可以退化为metapath游走策略。可见,本技术方案不仅随机游走过程灵活高效,还可以兼容相关技术中的多种游走策略。
图6图示了根据本公开的一个实施例的一种采样下一跳候选节点的方法600的示例性流程图。所述方法600例如可以实施参照图4描述的步骤440。如图6所示,所述方法600包括如下步骤。
在步骤610,确定下一跳节点的有效节点类型集合。所述有效节点类型集合包括在当前节点的邻居节点的节点类型中以及下一跳节点的候选节点类型的集合中同时存在的节点类型。以按照节点类型对节点的邻居节点进行排序并构建了如图5所示的邻居节点部分和数组C为例,可以初始化有效节点类型集合V为空,有效节点部分和数组PartialSum为空,有效节点部分和Sum为0。然后,遍历下一跳节点的候选节点类型的集合T中的候选节点类型t,判断当前节点的邻居节点集合中是否存在候选节点类型为t的节点;若不存在,则忽略;若存在,则返回节点类型为t的节点在其中的起止位置Pt_start和Pt_end,并将t加入到V中,更新Sum=Sum+C[Pt_end]-C[pt_start-1],将当前的sum值加入到PartialSum中,其中C[-1]被预设为0。
在步骤620,以选择概率从有效节点类型集合中选择节点类型。有效节点类型集合中相应节点类型的选择概率正相关于所述相应节点类型对应的权重与有效节点类型总权重之比。所述相应节点类型对应的权重包括邻居节点中具有所述相应节点类型的节点与当前节点间的边的权重之和,以及有效节点类型总权重包括邻居节点中具有有效节点类型集合中各节点类型的节点与当前节点间的边的权重之和。特别地,这里所述的“正相关”可以是成正比例的关系。
作为示例,可以使用如下简化计算法。可以首先判断有效节点类型集合V是否为空集,如果是空集,可以直接结束流程,当然这不是限制性的。如果V不为空集,可以从[0,sum)随机生成一个数,根据该数落在PartialSum的位置确定选择的节点类型。参照图5,如果有效节点类型集合V包括节点类型1、2、3、4,则可以确定如图5所示的PartialSum,并且sum值为23。如果随机生成的数为4(处于PartialSum值0到8的区间内),则可以从有效节点类型集合中选择节点类型1。
在步骤630,从具有所述选择的节点类型的邻居节点中采样下一跳候选节点。作为示例,可以从选择的节点类型1中的节点编号为2、7、5的节点中随机采样下一跳候选节点。在一些实施例中,可以以采样概率从具有所述选择的节点类型的邻居节点中采样下一跳候选节点,其中下一跳候选节点的采样概率正相关于下一跳候选节点对应的权重与邻居节点总权重之比,下一跳候选节点对应的权重包括下一跳候选节点与当前节点间的边的权重,邻居节点总权重包括具有所述选择的节点类型的邻居节点与当前节点间的边的权重之和。特别地,这里所述的“正相关”可以是成正比例的关系。
作为示例,可以使用如下简化计算法。可以获取选择的节点类型在邻居节点集合中的节点的起止位置P_start和P_end,从[C[p_start-1],C[p_end]]中随机生成一个数,根据该数落在的位置确定采样的下一跳候选节点。参照图5,如果选择的节点类型1,节点类型1在邻居节点集合中的节点的起止位置0和2。如果随机生成的数为7(位于部分和C的值5和8之间),则采样下一跳候选节点的节点编号为5,即节点1-5。
通过参照图6描述的方法,可以方便高效地采样采样下一跳候选节点,并且使得采样得到的候选节点是最具代表性的节点,也有利于使如上文得到的游走节点序列更好地体现上下文信息,从而有利于确定的节点的嵌入向量的准确性。
图8示出了根据本公开的一个实施例的目标对象识别装置800的示例性结构框图。如图8所示,所述目标对象识别装置800包括网络图获取模块810,参数确定模块820,序列获取模块830、嵌入向量确定模块840、目标节点确定模块850、目标对象识别模块860。
所述网络图获取模块810被配置成获取基于不同类型的多个对象构建的网络图。所述网络图包括与所述多个对象对应的多个节点以及在节点间进行连接的边,节点的节点类型对应于对象的类型,每条边具有权重以表示所述每条边连接的两个节点对应的对象间的关联度。
所述参数确定模块820被配置成确定游走参数。所述游走参数包括转移参数、最近转移数量、最大游走长度以及元路径。所述转移参数控制在所述网络图中随机游走到的当前节点到各邻居节点的转移概率,最近转移数量控制当前节点的下一跳节点的节点类型以使其与最近游走到的所述最近转移数量个节点的节点类型不同,最大游走长度控制通过随机游走得到的游走节点序列的最大节点数量,以及元路径定义了随机游走时将依次经过的节点的节点类型;
所述序列获取模块830被配置成在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列。应当理解,所述游走节点序列为网络图中的部分节点的序列。作为示例,所述序列获取模块可以被配置成使用任何合适的策略来基于所述游走参数、网络图中的边的权重获取所述游走节点序列。作为示例,可以获取所述网络图的多条游走节点序列,使得所述多条游走节点序列包括或者覆盖网络图中的所有节点。可选地,可以以网络图中的每个节点为起点(即,遍历所述网络图中的节点)获取游走节点序列,这可以使得后续确定的节点的嵌入向量更加准确。
所述嵌入向量确定模块840被配置成基于所述游走节点序列确定网络图中的节点的嵌入向量。在本公开的实施例中,所述嵌入向量确定模块840可以被配置成使用Word2vec模型来处理所述游走节点序列以确定网络图中的节点的嵌入向量。
所述目标节点确定模块850被配置成根据网络图中的节点的嵌入向量,从网络图中确定与节点中的种子节点的相似度小于相似度阈值的目标节点。在一些实施例中,所述目标节点确定模块850可以被配置成根据网络图中的节点的嵌入向量,从网络图中确定与节点中的种子节点的相似度大于相似度阈值且具有预定节点类型的目标节点。
所述目标对象识别模块860可以被配置成将所述目标节点对应的对象识别为针对种子节点对应的对象的目标对象。将所述目标节点对应的对象识别为针对种子节点对应的对象表示目标对象与种子节点对应对象具有较高的关联度,例如目标对象是种子节点对应的对象感兴趣或关注的对象,或者目标对象与种子节点对应的对象具有相同或类似的性质等。
图9图示了示例系统900,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备910。计算设备910可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其它合适的计算设备或计算系统。上面参照图8描述的目标对象识别装置800可以采取计算设备910的形式。替换地,目标对象识别装置800可以以应用916的形式被实现为计算机程序。
如图示的示例计算设备910包括彼此通信耦合的处理系统911、一个或多个计算机可读介质912以及一个或多个I/O接口913。尽管未示出,但是计算设备910还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
处理系统911代表使用硬件执行一个或多个操作的功能。因此,处理系统911被图示为包括可被配置为处理器、功能块等的硬件元件914。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件914不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质912被图示为包括存储器/存储装置915。存储器/存储装置915表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置915可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置915可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质912可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O接口913代表允许用户使用各种输入设备向计算设备910输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备910可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备910还包括应用916。应用916可以例如是目标对象识别装置800的软件实例,并且与计算设备910中的其他元件相组合地实现本文描述的技术。
本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”,“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备910访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备910的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其它无线介质的无线介质。
如前所述,硬件元件914和计算机可读介质912代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件914体现的一个或多个指令和/或逻辑。计算设备910可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件914,可以至少部分地以硬件来实现将模块实现为可由计算设备910作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备910和/或处理系统911)可执行/可操作以实现本文所述的技术、模块和示例。
在各种实施方式中,计算设备910可以采用各种不同的配置。例如,计算设备910可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备910还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备910还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
本文描述的技术可以由计算设备910的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台922而在“云”920上全部或部分地实现。
云920包括和/或代表用于资源924的平台922。平台922抽象云920的硬件(例如,服务器)和软件资源的底层功能。资源924可以包括在远离计算设备910的服务器上执行计算机处理时可以使用的应用和/或数据。资源924还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台922可以抽象资源和功能以将计算设备910与其他计算设备连接。平台922还可以用于抽象资源的分级以提供遇到的对于经由平台922实现的资源924的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统900内。例如,功能可以部分地在计算设备910上以及通过抽象云920的功能的平台922来实现。
应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其它功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
将理解的是,尽管第一、第二、第三等术语在本文中可以用来描述各种设备、元件、部件或部分,但是这些设备、元件、部件或部分不应当由这些术语限制。这些术语仅用来将一个设备、元件、部件或部分与另一个设备、元件、部件或部分相区分。
尽管已经结合一些实施例描述了本公开,但是其不旨在被限于在本文中所阐述的特定形式。相反,本公开的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其它元件,并且术语“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。
Claims (14)
1.一种目标对象识别方法,包括:
获取基于不同类型的多个对象构建的网络图,其中所述网络图包括与所述多个对象对应的多个节点以及在节点间进行连接的边,节点的节点类型对应于对象的类型,每条边具有权重以表示所述每条边连接的两个节点对应的对象间的关联度;
确定游走参数,所述游走参数包括转移参数、最近转移数量、最大游走长度以及元路径,其中,所述转移参数控制在所述网络图中随机游走到的当前节点到邻居节点的转移概率,最近转移数量控制当前节点的下一跳节点的节点类型以使其与最近游走到的所述最近转移数量个节点的节点类型不同,最大游走长度控制通过随机游走得到的游走节点序列的最大节点数量,以及元路径定义了随机游走时将依次经过的节点的节点类型;
在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列;
基于所述游走节点序列确定网络图中的节点的嵌入向量;
根据网络图中的节点的嵌入向量,从网络图中确定与节点中的种子节点的相似度小于相似度阈值的目标节点;
将所述目标节点对应的对象识别为针对种子节点对应的对象的目标对象。
2.根据权利要求1所述的方法,其中,所述在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列,包括:
从网络图中选择游走的起始节点并将其作为当前节点添加到游走节点序列中;
迭代执行如下步骤,直到游走节点序列中的节点数量达到所述最大节点数量:
基于所述游走参数中的元路径以及最近转移数量确定当前节点的下一跳节点的候选节点类型的集合;
根据下一跳节点的候选节点类型的集合以及网络图中当前节点与邻居节点间的边的权重从当前节点的邻居节点中采样下一跳候选节点;
响应于下一跳候选节点为游走节点序列中的第二个节点的候选节点,则将下一跳候选节点确定为当前节点的下一跳节点以添加到游走节点序列中并将其作为当前节点;
响应于下一跳候选节点不是游走节点序列中的第二个节点的候选节点,在确定下一跳候选节点是可接受的下一跳候选节点时,将下一跳候选节点确定为当前节点的下一跳节点以添加到游走节点序列中并将其作为当前节点。
3.根据权利要求2所述的方法,其中,所述基于所述游走参数中的元路径以及最近转移数量确定当前节点的下一跳节点的候选节点类型的集合,包括:
响应于所述游走参数中的元路径为空集,则确定网络图中节点的节点类型中最近游走到的所述最近转移数量个节点的节点类型之外的节点类型的第一集合,并且:
在所述节点类型的第一集合为空集时,则将网络图中节点的节点类型的全集确定为下一跳节点的候选节点类型的集合;
在所述节点类型的第一集合不为空集时,则将所述节点类型的第一集合确定为下一跳节点的候选节点类型的集合;
响应于所述游走参数中的元路径不为空集,则将下一跳节点的候选节点类型的集合确定为包括所述元路径中的对应节点类型。
4.根据权利要求2所述的方法,其中,所述根据下一跳节点的候选节点类型的集合以及网络图中当前节点与邻居节点间的边的权重从当前节点的邻居节点中采样下一跳候选节点,包括:
确定下一跳节点的有效节点类型集合,所述有效节点类型集合包括在当前节点的邻居节点的节点类型中以及下一跳节点的候选节点类型的集合中同时存在的节点类型;
以选择概率从有效节点类型集合中选择节点类型,其中有效节点类型集合中相应节点类型的选择概率正相关于所述相应节点类型对应的权重与有效节点类型总权重之比,所述相应节点类型对应的权重包括邻居节点中具有所述相应节点类型的节点与当前节点间的边的权重之和,以及有效节点类型总权重包括邻居节点中具有有效节点类型集合中各节点类型的节点与当前节点间的边的权重之和;
从具有所述选择的节点类型的邻居节点中采样下一跳候选节点。
5.根据权利要求4所述的方法,其中,所述从具有所述选择的节点类型的邻居节点中采样下一跳候选节点,包括:
以采样概率从具有所述选择的节点类型的邻居节点中采样下一跳候选节点,其中下一跳候选节点的采样概率正相关于下一跳候选节点对应的权重与邻居节点总权重之比,下一跳候选节点对应的权重包括下一跳候选节点与当前节点间的边的权重,邻居节点总权重包括具有所述选择的节点类型的邻居节点与当前节点间的边的权重之和。
6.根据权利要求2所述的方法,其中,所述转移参数包括第一接受系数、第二接受系数和第三接受系数,其中所述第一接受系数用于控制从当前节点游走到邻居节点中当前节点的前一节点的转移概率,所述第二接受系数用于控制从当前节点游走到与邻居节点中与当前节点的前一节点不相邻的节点的转移概率,所述第三接受系数用于控制从当前节点游走到与邻居节点中与当前节点的前一节点相邻的节点的转移概率。
7.根据权利要求6所述的方法,还包括:
响应于下一跳候选节点不是游走节点序列中的第二个节点的候选节点,并且所述第一接受系数、第二接受系数与第三接受系数的值相同,则确定下一跳候选节点是可接受的下一跳候选节点。
8.根据权利要求6所述的方法,还包括:响应于下一跳候选节点不是游走节点序列中的第二个节点的候选节点,并且所述第一接受系数或第二接受系数中的至少一个与第三接受系数的值不同,则:
确定第一接受系数、第二接受系数以及第三接受系数之间的最大值并且在零到所述最大值之间取随机数;
响应于确定下一跳候选节点是当前节点的前一节点且所述随机数小于所述第一接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点;
响应于确定下一跳候选节点是与当前节点的前一节点不相邻的节点,且所述随机数小于所述第二接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点;
响应于确定下一跳候选节点是与当前节点的前一节点相邻的节点,且所述随机数小于所述第三接受系数的值,则确定下一跳候选节点是可接受的下一跳候选节点。
9.根据权利要求1所述的方法,其中,所述网络图中的节点具有节点标识符,所述节点标识符识别所述节点的编号和所述节点的节点类型的编号。
10.根据权利要求1所述的方法,其中,所述不同类型的多个对象包括用户类型的对象以及内容类型的对象,其中表示用户类型的对象的节点与表示内容类型的对象的节点间的关联度是基于所述用户类型的对象对应的用户对所述内容类型的对象对应的内容的关注度而确定的。
11.根据权利要求10所述的方法,其中,所述种子节点包括表示用户类型的对象的节点,以及所述目标节点包括表示内容类型的对象的节点。
12.一种目标对象识别装置,包括:
网络图获取模块,被配置成获取基于不同类型的多个对象构建的网络图,其中所述网络图包括与所述多个对象对应的多个节点以及在节点间进行连接的边,节点的节点类型对应于对象的类型,每条边具有权重以表示所述每条边连接的两个节点对应的对象间的关联度;
参数确定模块,被配置成确定游走参数,所述游走参数包括转移参数、最近转移数量、最大游走长度以及元路径,其中,所述转移参数控制在所述网络图中随机游走到的当前节点到邻居节点的转移概率,最近转移数量控制当前节点的下一跳节点的节点类型以使其与最近游走到的所述最近转移数量个节点的节点类型不同,最大游走长度控制通过随机游走得到的游走节点序列的最大节点数量,以及元路径定义了随机游走时将依次经过的节点的节点类型;
序列获取模块,被配置成在所述网络图中基于所述游走参数、网络图中的边的权重进行随机游走以得到游走节点序列;
嵌入向量确定模块,被配置成基于所述游走节点序列确定网络图中的节点的嵌入向量;
目标节点确定模块,被配置成根据网络图中的节点的嵌入向量,从网络图中确定与节点中的种子节点的相似度小于相似度阈值的目标节点;
目标对象识别模块,被配置成将所述目标节点对应的对象识别为针对种子节点对应的对象的目标对象。
13.一种计算设备,包括
存储器,其被配置成存储计算机可执行指令;
处理器,其被配置成当所述计算机可执行指令被处理器执行时执行如权利要求1-11中的任一项所述的方法。
14.一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如权利要求1-11中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011184205.1A CN112199600A (zh) | 2020-10-29 | 2020-10-29 | 目标对象识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011184205.1A CN112199600A (zh) | 2020-10-29 | 2020-10-29 | 目标对象识别方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112199600A true CN112199600A (zh) | 2021-01-08 |
Family
ID=74012043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011184205.1A Pending CN112199600A (zh) | 2020-10-29 | 2020-10-29 | 目标对象识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199600A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112907334A (zh) * | 2021-03-24 | 2021-06-04 | 杭州网易再顾科技有限公司 | 一种对象推荐方法及装置 |
CN112995283A (zh) * | 2021-02-03 | 2021-06-18 | 杭州海康威视系统技术有限公司 | 一种对象关联方法、装置及电子设备 |
CN113641919A (zh) * | 2021-10-12 | 2021-11-12 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113641906A (zh) * | 2021-08-16 | 2021-11-12 | 公安部第三研究所 | 基于资金交易关系数据实现相似目标人员识别处理的系统、方法、装置、处理器及其介质 |
CN113807457A (zh) * | 2021-09-26 | 2021-12-17 | 北京市商汤科技开发有限公司 | 确定路网表征信息的方法、装置、设备及存储介质 |
CN115048554A (zh) * | 2022-05-26 | 2022-09-13 | 支付宝(杭州)信息技术有限公司 | 图数据分析方法、装置、设备、介质及程序产品 |
-
2020
- 2020-10-29 CN CN202011184205.1A patent/CN112199600A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995283A (zh) * | 2021-02-03 | 2021-06-18 | 杭州海康威视系统技术有限公司 | 一种对象关联方法、装置及电子设备 |
CN112907334A (zh) * | 2021-03-24 | 2021-06-04 | 杭州网易再顾科技有限公司 | 一种对象推荐方法及装置 |
CN112907334B (zh) * | 2021-03-24 | 2024-04-26 | 杭州网易再顾科技有限公司 | 一种对象推荐方法及装置 |
CN113641906A (zh) * | 2021-08-16 | 2021-11-12 | 公安部第三研究所 | 基于资金交易关系数据实现相似目标人员识别处理的系统、方法、装置、处理器及其介质 |
CN113807457A (zh) * | 2021-09-26 | 2021-12-17 | 北京市商汤科技开发有限公司 | 确定路网表征信息的方法、装置、设备及存储介质 |
CN113641919A (zh) * | 2021-10-12 | 2021-11-12 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113641919B (zh) * | 2021-10-12 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN115048554A (zh) * | 2022-05-26 | 2022-09-13 | 支付宝(杭州)信息技术有限公司 | 图数据分析方法、装置、设备、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199600A (zh) | 目标对象识别方法和装置 | |
CN111966914B (zh) | 基于人工智能的内容推荐方法、装置和计算机设备 | |
CN105210064B (zh) | 使用深度网络将资源分类 | |
CN109471978B (zh) | 一种电子资源推荐方法及装置 | |
CN111382283B (zh) | 资源类别标签标注方法、装置、计算机设备和存储介质 | |
CN113158554B (zh) | 模型优化方法、装置、计算机设备及存储介质 | |
CN112100504B (zh) | 内容推荐方法、装置、电子设备及存储介质 | |
CN113806582B (zh) | 图像检索方法、装置、电子设备和存储介质 | |
CN113011172B (zh) | 文本处理方法、装置、计算机设备和存储介质 | |
US20210034975A1 (en) | Artificial intelligence job recommendation neural network machine learning training based on embedding technologies and actual and synthetic job transition latent information | |
CN114492601A (zh) | 资源分类模型的训练方法、装置、电子设备及存储介质 | |
CN115062709A (zh) | 模型优化方法、装置、设备、存储介质及程序产品 | |
CN113033507B (zh) | 场景识别方法、装置、计算机设备和存储介质 | |
CN112905809B (zh) | 知识图谱学习方法和系统 | |
CN113111917B (zh) | 一种基于双重自编码器的零样本图像分类方法及装置 | |
CN112712056A (zh) | 视频语义分析方法、装置、存储介质及电子设备 | |
CN115129902B (zh) | 媒体数据处理方法、装置、设备及存储介质 | |
CN111414538A (zh) | 基于人工智能的文本推荐方法、装置及电子设备 | |
CN116703531B (zh) | 物品数据处理方法、装置、计算机设备和存储介质 | |
CN117010480A (zh) | 模型训练方法、装置、设备、存储介质及程序产品 | |
CN117194777A (zh) | 推荐模型的推荐结果优化方法、装置、设备及介质 | |
CN116992918A (zh) | 一种训练方法、推荐方法及装置 | |
CN115357770A (zh) | 一种社区搜索方法、模型训练方法及相关装置 | |
CN117216548A (zh) | 推荐数据评估模型的构建方法、推荐数据评估方法和装置 | |
CN117216395A (zh) | 一种内容推荐方法、装置及电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40038202 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |