CN104951442A - 一种确定结果向量的方法和装置 - Google Patents

一种确定结果向量的方法和装置 Download PDF

Info

Publication number
CN104951442A
CN104951442A CN201410112336.7A CN201410112336A CN104951442A CN 104951442 A CN104951442 A CN 104951442A CN 201410112336 A CN201410112336 A CN 201410112336A CN 104951442 A CN104951442 A CN 104951442A
Authority
CN
China
Prior art keywords
matrix
block
clustering processing
zero values
row
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
CN201410112336.7A
Other languages
English (en)
Other versions
CN104951442B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410112336.7A priority Critical patent/CN104951442B/zh
Priority to PCT/CN2015/073794 priority patent/WO2015143985A1/zh
Publication of CN104951442A publication Critical patent/CN104951442A/zh
Application granted granted Critical
Publication of CN104951442B publication Critical patent/CN104951442B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种确定结果向量的方法和装置,属于计算机技术领域。所述方法包括:获取查询条件对应的目标顶点,根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量;按照所述预设的边长,将所述查询向量划分为多个向量段;根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块;根据选取的矩阵块,以及所述包括非零数值的向量段,进行运算确定结果向量。采用本发明,可以提高查询的效率。

Description

一种确定结果向量的方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种确定结果向量的方法和装置。
背景技术
对象关系图是用于描述关系网络中对象与对象之间的关系的图,对象关系图可以由多个节点和节点之间的连线构成,这些节点称作顶点,用于表示对象,节点之间的连线称作边,用于表示对象之间的关系。连线如果有箭头则可称作有向边,相应的对象关系图为有向图,连线如果没有箭头可称作无向边,相应的对象关系图为无向图。有向图和无向图分别可以用于表示不同的关系类型,例如,顶点用于表示某网络平台中的账户,无向图中的边可以用于表示账户之间具有好友关系,有向图中的边可以用于表示一个账户关注另一个账户。
在实际应用中,经常会基于对象之间的关系进行查询,例如,微博服务器可以查询某账户关注的所有其它账户,此查询为一步出度查询,也可以查询关注某账户的所有其他账户,此查询为一步入度查询。在基于对象之间的关系进行查询时,可以根据对象关系图构造邻接矩阵,并根据查询条件构造查询向量,然后,根据查询条件确定运算方式,并运算得到结果向量,此运算方式可以为矩阵乘向量方式或矩阵转置乘向量方式,矩阵乘向量方式即将邻接矩阵与查询向量相乘得到结果向量,矩阵转置乘向量方式即将邻接矩阵的转置矩阵与查询向量相乘得到结果向量。例如,如果是一步入度查询,则将邻接矩阵与查询向量的相乘得到结果向量,如果是一步出度查询,则将邻接矩阵的转置矩阵与查询向量的相乘得到结果向量。根据结果向量便可以确定对应的查询结果。
在邻接矩阵中,基于各顶点的顺序编号,元素(i,j)的值用于表示顶点i指向顶点j的有向边,元素值不为0则表示存在有向边,元素值为0则表示不存在有向边。在查询向量中,元素k的值用于表示顶点k是否为查询条件中的顶点(可称作目标顶点),如果是则元素k的值为非0值,否则元素k的值为0,例如,某查询条件为查询账户2关注的其它账户,账户2对应顶点2,那么相应的查询向量中第二个元素值为1,其它元素值为0。在结果向量中,元素m的值用于表示顶点m是否为查询结果对应的顶点(可称作结果顶点),如果是则元素m的值为非0值,否则元素m的值为0。
为了提高处理效率,一般采用如下的方法计算结果向量:
首先,对邻接矩阵进行聚类处理,通过对顶点进行重排序将非0元素尽量聚集在一起,聚类处理的过程是在保证各顶点的连接关系不变的前提下,对各顶点在邻接矩阵中对应的顺序进行重排,重排过程表现在邻接矩阵中就是邻接矩阵的行交换和列交换同时进行。例如,在邻接矩阵中,聚类处理前顶点1对应第一行和第一列、顶点2对应第二行和第二列、顶点3对应第三行和第三列,聚类处理后顶点1对应第二行和第二列、顶点2对应第三行和第三列、顶点3对应第一行和第一列。
然后,对聚类处理后的邻接矩阵进行分块处理,按照指定的边长(如2*2)将邻接矩阵划分为多个正方形矩阵块,此边长可以根据经验设置。在存储包括非零数值的矩阵块(后面简称非零的矩阵块)时,将邻接矩阵划分为多个网格,网格的尺寸是矩阵块的整数倍,且倍数大于一,并将每个网格中的各非零矩阵块的数据存储在同一文件中。
再后,根据顶点的重排序,以及查询条件,构建查询向量,并按上述指定的边长将查询向量划分为多个向量段。选取查询条件中的顶点所在的行或列对应的网格,并获取这些网格中的非零的矩阵块。根据获取的矩阵块,在查询向量中,选取矩阵块对应的需要与其相乘的向量段,并根据获取的矩阵块和对应的向量段,计算结果向量。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
通过上述方式计算结果向量,在处理过程中,由于网格的粒度较粗,获取的非零的矩阵块中,有许多矩阵块要与零向量段相乘,这将浪费大量的处理资源,从而,降低查询的效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种确定结果向量的方法和装置,以提高查询的效率。所述技术方案如下:
第一方面,提供了一种确定结果向量的方法,所述方法执行之前,预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块,所述方法包括:
获取查询条件对应的目标顶点,根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量;
按照所述预设的边长,将所述查询向量划分为多个向量段;
根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块;
根据选取的矩阵块,以及所述包括非零数值的向量段,进行运算确定结果向量。
在所述第一方面的第一种可能的实现方式中,所述方法还包括:
预先建立顶点位置索引,记录各顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
所述根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,包括:
根据所述顶点位置索引,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
在所述第一方面的第二种可能的实现方式中,所述方法还包括:
预先记录所述聚类处理后的邻接矩阵中各行或列对应的顶点;
在所述聚类处理后的邻接矩阵中,将相邻的预设数目的行或列划分为一组,对每一组行或列对应的顶点建立一个布隆过滤器;
所述根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,包括:
根据建立的布隆过滤器,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
在所述第一方面的第三种可能的实现方式中,所述根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块,包括:
如果根据所述查询条件确定的运算方式为矩阵乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在列,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块;
如果根据所述查询条件确定的运算方式为矩阵转置乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在行,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
结合所述第一方面的第三种可能的实现方式,在所述第一方面的第四种可能的实现方式中,所述方法还包括:
预先建立第一链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在列中包含的包括非零数值的矩阵块的数据存储地址;
所述获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块,包括:
通过所述第一链表数组,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块。
结合所述第一方面的第三种可能的实现方式,在所述第一方面的第五种可能的实现方式中,所述方法还包括:
预先建立第二链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在行中包含的包括非零数值的矩阵块的数据存储地址;
所述获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块,包括:
通过所述第二链表数组,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
第二方面,提供了一种确定结果向量的装置,所述装置包括:
预处理模块,用于预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块;
确定模块,用于获取查询条件对应的目标顶点,根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量;
划分模块,用于按照所述预设的边长,将所述查询向量划分为多个向量段;
选取模块,用于根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块;
运算模块,用于根据选取的矩阵块,以及所述包括非零数值的向量段,进行运算确定结果向量。
在所述第二方面的第一种可能的实现方式中,所述预处理模块,还用于:
预先建立顶点位置索引,记录各顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
所述确定模块,用于:
根据所述顶点位置索引,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
在所述第二方面的第二种可能的实现方式中,所述预处理模块,还用于:
预先记录所述聚类处理后的邻接矩阵中各行或列对应的顶点;
在所述聚类处理后的邻接矩阵中,将相邻的预设数目的行或列划分为一组,对每一组行或列对应的顶点建立一个布隆过滤器;
所述确定模块,用于:
根据建立的布隆过滤器,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
在所述第二方面的第三种可能的实现方式中,所述选取模块,用于:
如果根据所述查询条件确定的运算方式为矩阵乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在列,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块;
如果根据所述查询条件确定的运算方式为矩阵转置乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在行,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
结合所述第二方面的第三种可能的实现方式,在所述第二方面的第四种可能的实现方式中,所述预处理模块,还用于:
预先建立第一链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在列中包含的包括非零数值的矩阵块的数据存储地址;
所述选取模块,用于:
通过所述第一链表数组,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块。
结合所述第二方面的第三种可能的实现方式,在所述第二方面的第五种可能的实现方式中,所述预处理模块,还用于:
预先建立第二链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在行中包含的包括非零数值的矩阵块的数据存储地址;
所述选取模块,用于:
通过所述第二链表数组,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块,在查询时,获取查询条件对应的目标顶点,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,按照上述预设的边长,将查询向量划分为多个向量段,根据包括非零数值的向量段在查询向量中的位置,在多个矩阵块中,选取与包括非零数值的向量段运算相关的包括非零数值的矩阵块,根据选取的矩阵块,以及包括非零数值的向量段,进行运算确定结果向量。这样,只选取与包括非零数值的向量段运算相关的矩阵块,以进行矩阵块与向量段的运算,在运算过程中无需进行矩阵块与零向量段相乘的运算,从而,可以减少处理资源的浪费,提高查询的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的确定结果向量的方法流程图;
图2是本发明实施例提供的聚类处理和分块处理的示意图;
图3a、图3b是本发明实施例提供的链表数组的示意图;
图4是本发明实施例提供的顶点位置索引的示意图;
图5是本发明实施例提供的布隆过滤器的示意图;
图6a、图6b是本发明实施例提供的根据查询向量选取矩阵块的示意图;
图7是本发明实施例提供的计算结果向量的过程的示意图;
图8是本发明实施例提供的确定结果向量的装置结构示意图;
图9是本发明实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例提供了一种确定结果向量的方法,该方法执行之前,预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块。如图1所示,该方法的处理流程可以包括如下的步骤:
步骤101,获取查询条件对应的目标顶点,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
步骤102,按照上述预设的边长,将查询向量划分为多个向量段。
步骤103,根据包括非零数值的向量段在查询向量中的位置,在多个矩阵块中,选取与包括非零数值的向量段运算相关的包括非零数值的矩阵块。
步骤104,根据选取的矩阵块,以及包括非零数值的向量段,进行运算确定结果向量。
本发明实施例中,预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块,在查询时,获取查询条件对应的目标顶点,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,按照上述预设的边长,将查询向量划分为多个向量段,根据包括非零数值的向量段在查询向量中的位置,在多个矩阵块中,选取与包括非零数值的向量段运算相关的包括非零数值的矩阵块,根据选取的矩阵块,以及包括非零数值的向量段,进行运算确定结果向量。这样,只选取与包括非零数值的向量段运算相关的矩阵块,以进行矩阵块与向量段的运算,在运算过程中无需进行矩阵块与零向量段相乘的运算,从而,可以减少处理资源的浪费,提高查询的效率。
实施例二
本发明实施例提供了一种确定结果向量的方法,该方法的执行主体可以为任意具有数据库维护和查询能力的设备,优选为网络侧的服务器设备。本发明实施例以执行主体为某网络应用的后台服务器为例进行方案的具体说明,其它执行主体的情况与之类似,本实施例中不再累述。
该方法执行之前,可以先进行预处理的过程,具体可以如下:预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块。
其中,边长可以根据实际需求任意设置,如2。这里,边长可以采用经验值,也可以根据聚类的情况来确定。
在实施中,聚类处理的过程可以如图2所示,在聚类处理前的邻接矩阵中,非零的元素较为分散,直接进行分块的话,包括非零数值的矩阵块(以后简称非零的矩阵块)数目过多,聚类处理中对各顶点在邻接矩阵和查询向量中对应的顺序进行重排,使非零的元素尽量的聚集在一起,得到如图中所示的聚类处理后的邻接矩阵。图2邻接矩阵中的编号可以认为是行、列的编号,同时也可以认为是行或列对应的顶点的编号,在聚类处理过程中进行了行、列的交换,图2聚类处理后的邻接矩阵中的编号“1、4、6、2、5、3”可以认为是相应的行、列在聚类前的编号,同时也可以认为是行或列对应的顶点的编号。
分块处理也可以参见图2,其中,边长的取值为2,矩阵块的尺寸为2*2,分块处理得到4个非零的矩阵块和5个零矩阵块。对聚类处理后的邻接矩阵进行划分得到多个矩阵块之后,可以对其中非零的矩阵块进行编号,并存储矩阵块的数据。可以根据矩阵块对应的矩阵块所在行(后面简称矩阵块行)和矩阵块所在列(后面简称矩阵块列)来进行编号,例如,图2中各矩阵块的编号可以分别为(0,0)、(0,2)、(1,1)、(2,2)。在存储各矩阵块的数据时,可以将每个矩阵块的数据分别存储在一个内存数据块中,并可以分别建立两个链表数据,一个链表数组(可称作第一链表数组)用于记录每个矩阵块列中包含的非零的矩阵块的数据存储地址(即相应内存数据块的地址),另一个链表数组(可称作第二链表数组)用于记录每个矩阵块行中包含的非零的矩阵块的数据存储地址。如图3a所示,第一链表数组中可以存储矩阵块列的列标识与矩阵块列中非零的矩阵块的数据存储地址的对应关系,如图3b所示,第二链表数组中可以存储矩阵块行的行标识与矩阵块行中非零的矩阵块的数据存储地址的对应关系。图中,B(0)可以是矩阵块(0,0)的地址,B(1)可以是矩阵块(0,2)的地址,B(1)可以是矩阵块(1,1)的地址,B(2)可以是矩阵块(2,2)的地址。
优选的,为了在查询过程中,能够基于聚类处理后的邻接矩阵,建立与查询条件对应的查询向量,可以预先设置一定的索引机制,相应的处理方式可以多种多样,以下给出了其中几种可行的处理方式:
方式一,预先建立顶点位置索引,记录各顶点在聚类处理后的邻接矩阵中对应的行或列的位置。
其中,在聚类处理后的邻接矩阵中,行或列的位置,可以采用任意的信息形式来标记,例如,可以将从0开始的整数,从左向右分配给聚类处理后的邻接矩阵中的各列,作为位置的信息,并将从0开始的整数,从上向下分配给聚类处理后的邻接矩阵中的各行,作为位置的信息。
在实施中,顶点位置索引的形式可以如图4所示,由图可知,顶点1对应的位置的信息为0,那么顶点1对应的行为聚类处理后的邻接矩阵中的第1行,顶点1对应的列为聚类处理后的邻接矩阵中的第1列,其它顶点可以依此类推。
方式二,预先记录聚类处理后的邻接矩阵中各行或列对应的顶点;在聚类处理后的邻接矩阵中,将相邻的预设数目的行或列划分为一组,对每一组行或列对应的顶点建立一个布隆过滤器。
其中,组中行或列的数目可以根据需求任意设置。布隆过滤器(bloom filter)是一种数据结构,它能够用少量的二进制位来存储一个集合的信息,而不用存储该集合中的元素,并能够快速的查询一个元素是否在该集合中,如果查询的结果表明一个元素不在该集合中那么该元素一定不在该集合中,但是如果查询结果表明元素在该集合中则只是表示元素在该集合中的概率很大。
在实施中,可以按一定顺序记录聚类处理后的邻接矩阵中各行或列对应的顶点,例如,按照列从左到右的顺序记录对应的顶点的编号,或按照行从上到下的顺序记录对应的顶点的编号,记录的内容可以如图5所示。然后可以对行或列进行分组,对每组行或列对应的顶点建立一个布隆过滤器,存储相应的信息,例如,将行或列两两分为一组,建立的布隆过滤器可以如图5所示。
下面将结合具体的处理方式,对如图1所示处理流程进行详细的说明,内容可以如下:
步骤101,获取查询条件对应的目标顶点,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
其中,查询条件是在关系网络中进行对象查询的条件信息,例如,查询关注张三账户的所有账户。目标顶点是查询条件中的作为查询基点的对象(例如前面例子中的张三)所对应的顶点。
在实施中,可以先确定查询条件中作为查询基点的对象,再通过图索引确定该对象对应的顶点,例如,张三对应的顶点为顶点1。确定目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置的方法可以多种多样,相应的确定查询向量的方法也多种多样,以下给出了两种可行的方法,分别基于上述预处理过程中的方式一和方式二:
对于预处理过程采用方式一的情况,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置确定查询向量的处理可以如下:
步骤一,根据顶点位置索引,确定目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置。
在实施中,顶点位置索引记录了所有顶点在聚类处理后的邻接矩阵中对应的行或列的位置,如图4所示,所以可以根据目标顶点的编号,在顶点位置索引中,查询对应的位置信息,例如,顶点2对应的位置的信息为3,即第四行或列。
步骤二,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
在实施中,在确定目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置后,可以将查询向量中相应位置的元素设置为非0值(此非0值具体的取值可以根据具体的应用场景来确定),将其它元素设置为0。例如,上述顶点2对应的位置的信息为3,可以将查询向量中位置信息为3的元素设置为1,即将第四个元素设置为1,其它元素设置为0。
对于预处理过程采用方式二的情况,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置确定查询向量的处理可以如下:
步骤一,根据建立的布隆过滤器,确定目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置。
在实施中,步骤(一),依次使用每个Bloom filter判断目标顶点是否在该Bloom filter对应的顶点组中,如果判断结果为否,则继续判断下一个Bloomfilter,如果判断结果为是,则执行步骤(二);步骤(二),在该Bloom filter对应的顶点组中查询目标顶点,如果查询到目标顶点,那么返回目标顶点对应的行或列的位置,如果没有查询到目标顶点,则返回步骤(一)继续判断下一个Bloom filter。
步骤二,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
具体处理与上一种情况中的步骤二类似,可以参考相应的内容,此处不再累述。
步骤102,按照上述预设的边长,将查询向量划分为多个向量段。
例如,预设的边长为2,那么可以将查询向量中的元素两两组成向量段。
在分段后还可以对个向量段编号,例如,按从前到后的顺序编号为V1、V2、V3。
步骤103,根据包括非零数值的向量段(后面简称非零的向量段)在查询向量中的位置,在多个矩阵块中,选取与包括非零数值的向量段运算相关的包括非零数值的矩阵块。
其中,与向量段运算相关的矩阵块,是在聚类处理后的邻接矩阵与查询向量进行运算的过程中,需要与该向量段进行运算(相乘或转置后相乘)的矩阵块。
具体的,对于不同的查询条件,该步骤103可以采取不同的处理方式,具体可以如下:
情况一,如果根据所述查询条件确定的运算方式为矩阵乘向量方式,则根据包括非零数值的向量段在查询向量中的位置,在聚类处理后的邻接矩阵中确定对应位置的矩阵块所在列,获取此确定出的矩阵块所在列中的包括非零数值的矩阵块。
其中,任一顶点的入方向邻居顶点,是通过有向边指向此任一顶点的其它顶点。运算方式可以为矩阵乘向量方式或矩阵转置乘向量方式。如果查询通过有向边指向某顶点的其它顶点,则可采用矩阵乘向量方式;如果查询某顶点通过有向边所指向的其它顶点,则可以采用矩阵转置乘向量方式;如果查询某顶点通过无向边连接的其它顶点,则可以采用矩阵乘向量方式或矩阵转置乘向量方式。无向边是无向图中的边,是没有箭头的边。
在实施中,可以先确定查询条件对应的运算方式为矩阵乘向量方式,例如,如果查询条件为查询某目标顶点的入方向邻居顶点(如查询关注张三账户的所有账户),那么,可以确定对应的运算方式为矩阵乘向量方式。然后,确定非零的向量段在查询向量中的位置,具体可以是确定非零的向量段在查询向量中是第几个向量段。如果非零的向量段在查询向量中是第i个向量段,那么,对应位置的矩阵块列则为第i个矩阵块列,例如,在图6a中,非零的向量段为第2个向量段,那么可以选取第2个矩阵块列。在获取确定出的矩阵块列中的非零的矩阵块时,基于上述预先建立的第一链表数组,相应的处理可以是:通过第一链表数组,获取确定出的矩阵块列中的非零的矩阵块。具体的,可以在第一链表数组中查询该矩阵块列中各非零的矩阵块的数据存储地址,然后在查询到的数据存储地址中读取相应的矩阵块的数据。
情况二,如果根据所述查询条件确定的运算方式为矩阵转置乘向量方式,则根据包括非零数值的向量段在查询向量中的位置,在聚类处理后的邻接矩阵中确定对应位置的矩阵块所在行,获取此确定出的矩阵块所在行中的包括非零数值的矩阵块。
其中,任一顶点的出方向邻居顶点,是此任一顶点通过有向边指向的其它顶点。
在实施中,可以先确定查询条件对应的运算方式为矩阵转置乘向量方式,例如,如果查询条件为查询某目标顶点的出方向邻居顶点(如查询张三账户关注的所有账户),那么,可以确定对应的运算方式为矩阵转置乘向量方式。然后,确定非零的向量段在查询向量中的位置,具体可以是确定非零的向量段在查询向量中是第几个向量段。如果非零的向量段在查询向量中是第i个向量段,那么,对应位置的矩阵块行则为第i个矩阵块行,例如,在图6b中,非零的向量段为第2个向量段,那么可以选取第2个矩阵块行。在获取确定出的矩阵块行中的非零的矩阵块时,基于上述预先建立的第二链表数组,相应的处理可以是:通过第二链表数组,获取确定出的矩阵块行中的非零的矩阵块。具体的,可以在第二链表数组中查询该矩阵块行中各非零的矩阵块的数据存储地址,然后在查询到的数据存储地址中读取相应的矩阵块的数据。
步骤104,根据选取的矩阵块,以及包括非零数值的向量段,进行运算确定结果向量。
在实施中,如果在步骤103中获取矩阵块列中的非零的矩阵块,可以将获取每个非零的矩阵块分别与此非零的向量段相乘,然后将相乘得到的向量段置于结果向量中与矩阵块对应的位置,再将结果向量中剩余的位置设置为0,矩阵块列中第i个矩阵块(非零的矩阵块)与此非零的向量段相乘得到的向量段作为结果向量段中第i个向量段,例如,在图7中,矩阵块列中第2个矩阵块与此非零的向量段相乘得到的向量段作为结果向量段中第2个向量段,结果向量中其它位置设置为0。
如果在步骤103中获取矩阵块行中的非零的矩阵块,可以将获取每个非零的矩阵块的转置矩阵分别与此非零的向量段相乘,然后将相乘得到的向量段置于结果向量中与矩阵块对应的位置,再将结果向量中剩余的位置设置为0,矩阵块行中第i个矩阵块(非零的矩阵块)的转置矩阵与此非零的向量段相乘得到的向量段作为结果向量段中第i个向量段,例如,矩阵块行中第2个矩阵块的转置矩阵与此非零的向量段相乘得到的向量段作为结果向量段中第2个向量段,结果向量中其它位置设置为0。
在计算得到结果向量后,可以根据结果向量,确定其中不为0的元素对应的顶点,并可以进一步根据图索引确定顶点对应的对象,然后,还可以获取对象对应的其它信息进行输出。
优选的,如果选取到与非零的向量段运算相关的非零的矩阵块,则可以根据选取的矩阵块,以及非零的向量段,进行运算确定结果向量,如果未选取到与非零的向量段运算相关的非零的矩阵块,则可以确定结果向量为零向量。
本发明实施例中,预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块,在查询时,获取查询条件对应的目标顶点,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,按照上述预设的边长,将查询向量划分为多个向量段,根据包括非零数值的向量段在查询向量中的位置,在多个矩阵块中,选取与包括非零数值的向量段运算相关的包括非零数值的矩阵块,根据选取的矩阵块,以及包括非零数值的向量段,进行运算确定结果向量。这样,只选取与包括非零数值的向量段运算相关的矩阵块,以进行矩阵块与向量段的运算,在运算过程中无需进行矩阵块与零向量段相乘的运算,从而,可以减少处理资源的浪费,提高查询的效率。
实施例三
基于相同的技术构思,本发明实施例还提供了一种确定结果向量的装置,如图8所示,所述装置包括:
预处理模块810,用于预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块;
确定模块820,用于获取查询条件对应的目标顶点,根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量;
划分模块830,用于按照所述预设的边长,将所述查询向量划分为多个向量段;
选取模块840,用于根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块;
运算模块850,用于根据选取的矩阵块,以及所述包括非零数值的向量段,进行运算确定结果向量。
优选的,所述预处理模块810,还用于:
预先建立顶点位置索引,记录各顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
所述确定模块820,用于:
根据所述顶点位置索引,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
优选的,所述预处理模块810,还用于:
预先记录所述聚类处理后的邻接矩阵中各行或列对应的顶点;
在所述聚类处理后的邻接矩阵中,将相邻的预设数目的行或列划分为一组,对每一组行或列对应的顶点建立一个布隆过滤器;
所述确定模块820,用于:
根据建立的布隆过滤器,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
优选的,所述选取模块840,用于:
如果根据所述查询条件确定的运算方式为矩阵乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在列,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块;
如果根据所述查询条件确定的运算方式为矩阵转置乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在行,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
优选的,所述预处理模块810,还用于:
预先建立第一链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在列中包含的包括非零数值的矩阵块的数据存储地址;
所述选取模块840,用于:
通过所述第一链表数组,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块。
优选的,所述预处理模块810,还用于:
预先建立第二链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在行中包含的包括非零数值的矩阵块的数据存储地址;
所述选取模块840,用于:
通过所述第二链表数组,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
本发明实施例中,预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块,在查询时,获取查询条件对应的目标顶点,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,按照上述预设的边长,将查询向量划分为多个向量段,根据包括非零数值的向量段在查询向量中的位置,在多个矩阵块中,选取与包括非零数值的向量段运算相关的包括非零数值的矩阵块,根据选取的矩阵块,以及包括非零数值的向量段,进行运算确定结果向量。这样,只选取与包括非零数值的向量段运算相关的矩阵块,以进行矩阵块与向量段的运算,在运算过程中无需进行矩阵块与零向量段相乘的运算,从而,可以减少处理资源的浪费,提高查询的效率。
实施例四
图9是本发明实施例提供的服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
服务器1900可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块;
获取查询条件对应的目标顶点,根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量;
按照所述预设的边长,将所述查询向量划分为多个向量段;
根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块;
根据选取的矩阵块,以及所述包括非零数值的向量段,进行运算确定结果向量。
优选的,还包括:预先建立顶点位置索引,记录各顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
所述根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,包括:
根据所述顶点位置索引,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
优选的,还包括:预先记录所述聚类处理后的邻接矩阵中各行或列对应的顶点;在所述聚类处理后的邻接矩阵中,将相邻的预设数目的行或列划分为一组,对每一组行或列对应的顶点建立一个布隆过滤器;
所述根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,包括:
根据建立的布隆过滤器,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
优选的,所述根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块,包括:
如果根据所述查询条件确定的运算方式为矩阵乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在列,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块;
如果根据所述查询条件确定的运算方式为矩阵转置乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在行,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
优选的,还包括:预先建立第一链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在列中包含的包括非零数值的矩阵块的数据存储地址;
所述获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块,包括:
通过所述第一链表数组,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块。
优选的,还包括:预先建立第二链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在行中包含的包括非零数值的矩阵块的数据存储地址;
所述获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块,包括:
通过所述第二链表数组,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
本发明实施例中,预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块,在查询时,获取查询条件对应的目标顶点,根据目标顶点在聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,按照上述预设的边长,将查询向量划分为多个向量段,根据包括非零数值的向量段在查询向量中的位置,在多个矩阵块中,选取与包括非零数值的向量段运算相关的包括非零数值的矩阵块,根据选取的矩阵块,以及包括非零数值的向量段,进行运算确定结果向量。这样,只选取与包括非零数值的向量段运算相关的矩阵块,以进行矩阵块与向量段的运算,在运算过程中无需进行矩阵块与零向量段相乘的运算,从而,可以减少处理资源的浪费,提高查询的效率。
需要说明的是:上述实施例提供的确定结果向量的装置在确定结果向量时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的确定结果向量的装置与确定结果向量的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种确定结果向量的方法,其特征在于,所述方法执行之前,预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块,所述方法包括:
获取查询条件对应的目标顶点,根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量;
按照所述预设的边长,将所述查询向量划分为多个向量段;
根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块;
根据选取的矩阵块,以及所述包括非零数值的向量段,进行运算确定结果向量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预先建立顶点位置索引,记录各顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
所述根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,包括:
根据所述顶点位置索引,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预先记录所述聚类处理后的邻接矩阵中各行或列对应的顶点;
在所述聚类处理后的邻接矩阵中,将相邻的预设数目的行或列划分为一组,对每一组行或列对应的顶点建立一个布隆过滤器;
所述根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量,包括:
根据建立的布隆过滤器,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
4.根据权利要求1所述的方法,其特征在于,所述根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块,包括:
如果根据所述查询条件确定的运算方式为矩阵乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在列,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块;
如果根据所述查询条件确定的运算方式为矩阵转置乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在行,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
预先建立第一链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在列中包含的包括非零数值的矩阵块的数据存储地址;
所述获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块,包括:
通过所述第一链表数组,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
预先建立第二链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在行中包含的包括非零数值的矩阵块的数据存储地址;
所述获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块,包括:
通过所述第二链表数组,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
7.一种确定结果向量的装置,其特征在于,所述装置包括:
预处理模块,用于预先对邻接矩阵进行聚类处理,按照预设的边长,将聚类处理后的邻接矩阵划分为多个矩阵块;
确定模块,用于获取查询条件对应的目标顶点,根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量;
划分模块,用于按照所述预设的边长,将所述查询向量划分为多个向量段;
选取模块,用于根据包括非零数值的向量段在所述查询向量中的位置,在所述多个矩阵块中,选取与所述包括非零数值的向量段运算相关的包括非零数值的矩阵块;
运算模块,用于根据选取的矩阵块,以及所述包括非零数值的向量段,进行运算确定结果向量。
8.根据权利要求7所述的装置,其特征在于,所述预处理模块,还用于:
预先建立顶点位置索引,记录各顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
所述确定模块,用于:
根据所述顶点位置索引,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
9.根据权利要求7所述的装置,其特征在于,所述预处理模块,还用于:
预先记录所述聚类处理后的邻接矩阵中各行或列对应的顶点;
在所述聚类处理后的邻接矩阵中,将相邻的预设数目的行或列划分为一组,对每一组行或列对应的顶点建立一个布隆过滤器;
所述确定模块,用于:
根据建立的布隆过滤器,确定所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置;
根据所述目标顶点在所述聚类处理后的邻接矩阵中对应的行或列的位置,确定查询向量。
10.根据权利要求7所述的装置,其特征在于,所述选取模块,用于:
如果根据所述查询条件确定的运算方式为矩阵乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在列,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块;
如果根据所述查询条件确定的运算方式为矩阵转置乘向量方式,则根据包括非零数值的向量段在所述查询向量中的位置,在所述聚类处理后的邻接矩阵中确定对应位置的矩阵块所在行,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
11.根据权利要求10所述的装置,其特征在于,所述预处理模块,还用于:
预先建立第一链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在列中包含的包括非零数值的矩阵块的数据存储地址;
所述选取模块,用于:
通过所述第一链表数组,获取所述确定出的矩阵块所在列中的包括非零数值的矩阵块。
12.根据权利要求10所述的装置,其特征在于,所述预处理模块,还用于:
预先建立第二链表数组,记录所述聚类处理后的邻接矩阵中的每个矩阵块所在行中包含的包括非零数值的矩阵块的数据存储地址;
所述选取模块,用于:
通过所述第二链表数组,获取所述确定出的矩阵块所在行中的包括非零数值的矩阵块。
CN201410112336.7A 2014-03-24 2014-03-24 一种确定结果向量的方法和装置 Active CN104951442B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410112336.7A CN104951442B (zh) 2014-03-24 2014-03-24 一种确定结果向量的方法和装置
PCT/CN2015/073794 WO2015143985A1 (zh) 2014-03-24 2015-03-06 一种确定结果向量的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410112336.7A CN104951442B (zh) 2014-03-24 2014-03-24 一种确定结果向量的方法和装置

Publications (2)

Publication Number Publication Date
CN104951442A true CN104951442A (zh) 2015-09-30
CN104951442B CN104951442B (zh) 2018-09-07

Family

ID=54166105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410112336.7A Active CN104951442B (zh) 2014-03-24 2014-03-24 一种确定结果向量的方法和装置

Country Status (2)

Country Link
CN (1) CN104951442B (zh)
WO (1) WO2015143985A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664447A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种矩阵与矢量的乘法运算方法及装置
WO2019001071A1 (zh) * 2017-06-28 2019-01-03 浙江大学 一种基于邻接矩阵的图特征提取系统、图分类系统和方法
WO2019001070A1 (zh) * 2017-06-28 2019-01-03 浙江大学 一种基于邻接矩阵的连接信息规整系统、图特征提取系统、图分类系统和方法
CN111798363A (zh) * 2020-07-06 2020-10-20 上海兆芯集成电路有限公司 图形处理器
CN111798363B (zh) * 2020-07-06 2024-06-04 格兰菲智能科技有限公司 图形处理器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560273B (zh) * 2020-12-21 2023-11-10 北京轩宇信息技术有限公司 面向数据流模型的模型组件执行顺序确定方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986299A (zh) * 2010-10-28 2011-03-16 浙江大学 基于超图的多任务个性化网络服务方法
US20110307685A1 (en) * 2010-06-11 2011-12-15 Song William S Processor for Large Graph Algorithm Computations and Matrix Operations
CN102405495A (zh) * 2009-03-11 2012-04-04 谷歌公司 使用稀疏特征对信息检索进行音频分类
US20120143932A1 (en) * 2010-12-06 2012-06-07 International Business Machines Corporation Data Structure For Tiling And Packetizing A Sparse Matrix
WO2013124522A1 (en) * 2012-02-22 2013-08-29 Nokia Corporation A system, and a method for providing a predition for controlling a system
CN103336758A (zh) * 2013-06-29 2013-10-02 中国科学院软件研究所 一种稀疏矩阵的存储方法CSRL及基于该方法的SpMV实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230409A1 (en) * 1998-08-31 2004-11-18 Nutech Solutions, Inc. Method for performing social computation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102405495A (zh) * 2009-03-11 2012-04-04 谷歌公司 使用稀疏特征对信息检索进行音频分类
US20110307685A1 (en) * 2010-06-11 2011-12-15 Song William S Processor for Large Graph Algorithm Computations and Matrix Operations
CN101986299A (zh) * 2010-10-28 2011-03-16 浙江大学 基于超图的多任务个性化网络服务方法
US20120143932A1 (en) * 2010-12-06 2012-06-07 International Business Machines Corporation Data Structure For Tiling And Packetizing A Sparse Matrix
WO2013124522A1 (en) * 2012-02-22 2013-08-29 Nokia Corporation A system, and a method for providing a predition for controlling a system
CN103336758A (zh) * 2013-06-29 2013-10-02 中国科学院软件研究所 一种稀疏矩阵的存储方法CSRL及基于该方法的SpMV实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
叶爽利: ""基于稀疏矩阵技术的网络拓扑分析"", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 *
霍华 等: ""基于压缩稀疏矩阵矢量相乘的文本相似度计算"", 《小型微型计算机系统》 *
魏继承: ""矩阵局部相乘法网络拓扑分析"", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664447A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种矩阵与矢量的乘法运算方法及装置
CN108664447B (zh) * 2017-03-31 2022-05-17 华为技术有限公司 一种矩阵与矢量的乘法运算方法及装置
WO2019001071A1 (zh) * 2017-06-28 2019-01-03 浙江大学 一种基于邻接矩阵的图特征提取系统、图分类系统和方法
WO2019001070A1 (zh) * 2017-06-28 2019-01-03 浙江大学 一种基于邻接矩阵的连接信息规整系统、图特征提取系统、图分类系统和方法
US11461581B2 (en) 2017-06-28 2022-10-04 Zhejiang University System and method of connection information regularization, graph feature extraction and graph classification based on adjacency matrix
US11531710B2 (en) 2017-06-28 2022-12-20 Zhejiang University System and method of graph feature extraction based on adjacency matrix
CN111798363A (zh) * 2020-07-06 2020-10-20 上海兆芯集成电路有限公司 图形处理器
CN111798363B (zh) * 2020-07-06 2024-06-04 格兰菲智能科技有限公司 图形处理器

Also Published As

Publication number Publication date
WO2015143985A1 (zh) 2015-10-01
CN104951442B (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
US11580441B2 (en) Model training method and apparatus
Kulturel-Konak et al. A large-scale hybrid simulated annealing algorithm for cyclic facility layout problems
Neelakandan et al. Large scale optimization to minimize network traffic using MapReduce in big data applications
CN107710193A (zh) 分布式计算环境的数据放置控制
CN105389324A (zh) 用于图形数据的分布式计算的系统和方法
CN106209989A (zh) 基于spark平台的空间数据并行计算系统及其方法
CN104462222A (zh) 一种卡口车辆通行数据的分布式存储方法及系统
CN110020353B (zh) 网页表单的构建方法及装置
CN105511801A (zh) 数据存储的方法和装置
CN104951442A (zh) 一种确定结果向量的方法和装置
CN109063194A (zh) 基于空间编码的数据检索方法及装置
CN111258978A (zh) 一种数据存储的方法
CN109586950A (zh) 网络场景识别方法、网络管理设备、系统及存储介质
CN112100450A (zh) 一种图计算数据分割方法、终端设备及存储介质
CN105786619A (zh) 虚拟机分配方法及装置
CN106471501A (zh) 数据查询的方法、数据对象的存储方法和数据系统
CN104239470A (zh) 一种面向分布式环境的空间数据复合处理系统和方法
TWI740895B (zh) 應用歸屬服務集群的分配方法和裝置
CN107257356B (zh) 一种基于超图分割的社交用户数据优化放置方法
CN110069453A (zh) 运维数据处理方法和装置
CN109815303B (zh) 一种基于位置的移动数据存储系统
CN108182243A (zh) 一种基于Spark的分布式进化算法岛模型并行化方法
CN110109751B (zh) 分布式切图任务的分配方法、装置及分布式切图系统
CN106919712A (zh) 报表的数据统计方法和系统
CN108664322A (zh) 数据处理方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant