一种编码方法和装置制造方法及图纸

技术编号:25834200 阅读:37 留言:0更新日期:2020-10-02 14:15
本申请实施例提供了一种编码方法和装置,所述编码方法包括:获取向量数据;确定目标编码码本,所述目标编码码本由预设的编码函数生成;采用所述目标编码码本对所述向量数据进行编码,生成编码数据;采用所述向量数据和所述编码函数训练所述预设的编码函数,生成已训练的编码函数;依据所述已训练的编码函数更新所述目标编码码本。本申请实施例可以实现针对实时输入的向量数据进行编码,同时,能够根据向量数据和编码数据对当前的编码函数进行训练,迭代更新编码函数,从而迭代更新目标编码码本,进而实现编码函数的拟合效果随编码函数的迭代更新不断提高,每个目标编码码本对应的编码数据具备高准度。

【技术实现步骤摘要】
一种编码方法和装置
本申请涉及数据处理
,特别是涉及一种编码方法和装置。
技术介绍
大规模并行处理(MPP,MassivelyParallelProcessing)数据库是使用多个结构化查询语言(SQL,StructuredQueryLanguage)数据库节点搭建的数据仓库系统。在执行查询时,查询可以分散到多个SQL数据库节点上执行,再将查询结果汇总后返回给用户。在MPP数据库用于存储向量数据,MPP数据库中可以使用ApproximateNearestNeighborSearch(近似最近邻检索)进行查询目标向量。ANN检索是通过预先构建的索引快速检索高维空间中的最近的N个相邻向量,从而生成查询结果。索引一般是通过通过学习高维向量的空间分布特性,用更少的字节对向量编码而成,常见的向量编码包括积量化编码、标量化编码、LSH(LocalitySensitiveHashing,局部敏感哈希)编码等。上述的向量编码技术需要先针对编码数据训练出向量编码函数,再完成向量编码压缩。在MPP数据库中执行向量数据检索的场景下,未编码的数据会不断实时写入,以往的异步编码方式无法及时处理实时写入的向量数据。
技术实现思路
鉴于上述问题,提出了本申请实施例以便提供一种编码方法和装置以克服现有技术中异步编码方式无法及时处理实时写入的向量数据的问题。为了解决上述问题,本申请公开了一种编码方法,包括:获取向量数据;确定目标编码码本,所述目标编码码本由预设的编码函数生成;<br>采用所述目标编码码本对所述向量数据进行编码,生成编码数据;采用所述向量数据和所述编码函数训练所述预设的编码函数,生成已训练的编码函数;依据所述已训练的编码函数更新所述目标编码码本。可选地,所述编码函数具有版本号;所述依据所述已训练的编码函数更新所述目标编码码本的步骤,包括:确定已训练的编码函数;所述已训练的编码函数具有新的版本号;采用所述已训练的编码函数,更新所述目标编码码本;更新的目标编码码本与所述新的版本号对应。可选地,所述依据所述已训练的编码函数更新所述目标编码码本的步骤,还包括:确定训练前的编码函数为历史编码函数;确定与所述历史编码函数对应的编码码本为历史编码码本。可选地,所述方法还包括:获取待检索向量信息;采用各个版本号对应的编码码本对所述待检索向量信息进行编码,生成待检索编码信息;在所述编码数据中,确定与所述待检索编码信息匹配的目标编码信息;基于所述目标编码信息,生成检索结果。可选地,在所述采用所述向量数据和所述编码函数训练所述预设的编码函数,生成已训练的编码函数的步骤之后,所述方法还包括:确定所述编码函数的已训练次数;判断所述已训练次数是否等于目标训练次数;若否,则返回所述获取向量数据;若是,则执行所述依据所述已训练的编码函数更新所述目标编码码本;其中,所述目标训练次数为xy+1;x为预设的常数,y为当前训练的编码函数的版本号。可选地,所述方法还包括:基于相同版本号的所述编码数据,生成编码数据块。可选地,所述向量数据包括一个或多个向量信息;在所述获取向量数据之后,所述方法还包括:确定所述向量数据中当前向量信息个数;在所述当前向量信息个数与预设个数阈值相等时,执行所述确定目标编码码本。可选地,所述方法还包括:在无法确定所述目标编码码本时,存储所述向量数据;采用所述向量数据训练初始编码函数;采用所述初始编码函数,生成目标编码码本。本申请还公开了一种编码装置,包括获取模块,用于获取向量数据;确定模块,用于确定目标编码码本,所述目标编码码本由预设的编码函数生成;生成模块,用于采用所述目标编码码本对所述向量数据进行编码,生成编码数据;训练模块,用于采用所述向量数据和所述编码函数训练所述预设的编码函数,生成已训练的编码函数;更新模块,用于依据所述已训练的编码函数更新所述目标编码码本。可选地,所述编码函数具有版本号;所述更新模块包括:已训练函数确定子模块,用于确定已训练的编码函数;所述已训练的编码函数具有新的版本号;编码码本更新子模块,用于采用所述已训练的编码函数,更新所述目标编码码本;更新的目标编码码本与所述新的版本号对应。可选地,所述更新模块还包括:历史编码函数子模块,用于确定训练前的编码函数为历史编码函数;历史编码码本子模块,用于确定与所述历史编码函数对应的编码码本为历史编码码本。可选地,所述装置还包括:待检索向量模块,用于获取待检索向量信息;待检索编码模块,用于采用各个版本号对应的编码码本对所述待检索向量信息进行编码,生成待检索编码信息;编码模块,用于在所述编码数据中,确定与所述待检索编码信息匹配的目标编码信息;检索模块,用于基于所述目标编码信息,生成检索结果。可选地,所述装置还包括:训练次数模块,用于确定所述编码函数的已训练次数;训练判断模块,用于判断所述已训练次数是否等于目标训练次数;若否,则调用所述获取模块;若是,则调用所述更新模块;其中,所述目标训练次数为xy+1;x为预设的常数,y为当前训练的编码函数的版本号。可选地,所述装置还包括:数据块模块,用于基于相同版本号的所述编码数据,生成编码数据块。可选地,所述向量数据包括一个或多个向量信息;所述装置还包括:向量个数模块,用于确定所述向量数据中当前向量信息个数;个数对比模块,用于在所述当前向量信息个数与预设个数阈值相等时,调用所述确定模块。可选地,所述装置还包括:存储模块,用于在无法确定所述目标编码码本时,存储所述向量数据;初始函数训练模块,用于采用所述向量数据训练初始编码函数;初始函数生成模块,用于采用所述初始编码函数,生成目标编码码本。本申请还公开了一种装置,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的方法。本申请还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。本申请实施例包括以下优点:本申请实施例,在获取向量数据后,可以在当前的编码码本中确定目标编码码本,并采用目标编码码本对向量数据进行编码压缩,生成对应的编码数据。采用向量数据和得到的与其对应的编码数据,对生成目标编码码本的编码函数进行训练,并采用已训练的编码函数更新目标编码码本。从而实现能够针对实时输入的向量数据进行编码,同时,能够根据向量数据和编码数据对当前的编码函数进行训练,迭代更新编码函数,从而迭代更新目标编码码本,进而实现编码函数的拟合本文档来自技高网...

【技术保护点】
1.一种编码方法,包括:/n获取向量数据;/n确定目标编码码本,所述目标编码码本由预设的编码函数生成;/n采用所述目标编码码本对所述向量数据进行编码,生成编码数据;/n采用所述向量数据和所述编码函数训练所述预设的编码函数,生成已训练的编码函数;/n依据所述已训练的编码函数更新所述目标编码码本。/n

【技术特征摘要】
1.一种编码方法,包括:
获取向量数据;
确定目标编码码本,所述目标编码码本由预设的编码函数生成;
采用所述目标编码码本对所述向量数据进行编码,生成编码数据;
采用所述向量数据和所述编码函数训练所述预设的编码函数,生成已训练的编码函数;
依据所述已训练的编码函数更新所述目标编码码本。


2.根据权利要求1所述的方法,所述编码函数具有版本号;所述依据所述已训练的编码函数更新所述目标编码码本的步骤,包括:
确定已训练的编码函数;所述已训练的编码函数具有新的版本号;
采用所述已训练的编码函数,更新所述目标编码码本;更新的目标编码码本与所述新的版本号对应。


3.根据权利要求2所述的方法,所述依据所述已训练的编码函数更新所述目标编码码本的步骤,还包括:
确定训练前的编码函数为历史编码函数;
确定与所述历史编码函数对应的编码码本为历史编码码本。


4.根据权利要求2或3所述的方法,所述方法还包括:
获取待检索向量信息;
采用各个版本号对应的编码码本对所述待检索向量信息进行编码,生成待检索编码信息;
在所述编码数据中,确定与所述待检索编码信息匹配的目标编码信息;
基于所述目标编码信息,生成检索结果。


5.根据权利要求2或3所述的方法,在所述采用所述向量数据和所述编码函数训练所述预设的编码函数,生成已训练的编码函数的步骤之后,所述方法还包括:
确定所述编码函数的已训练次数;
判断所述已训练次数是否等于目标训练次数;
若否,则返回所述获取向量数据;
若是,则执行所述依据所述已训练的编码函数更新所述目标编码码本;
其中,所述目标训练次数为xy+1;x为预设的常数,y为当前训练的编码函数的版本号。


6.根据权利要求2或3所述的方法,所述方法还包括:
基于相同版本号的所述编码数据,生成编码数据块。


7.根据权利要求1或2或3所述的方法,所述向量数据包括一个或多个向量信息;在所述获取向量数据之后,所述方法还包括:
确定所述向量数据中当前向量信息个数;
在所述当前向量信息个数与预设个数阈值相等时,执行所述确定目标编码码本。


8.根据权利要求1或2或3所述的方法,所述方法还包括:
在无法确定所述目标编码码本时,存储所述向量数据;
采用所述向量数据训练初始编码函数;
采用所述初始编码函数,生成目标编码码本。


9.一种编码装置,包括
获取模块,用于获取向量数据;
确定模块,用于确定目标编码码本,所述目标编码码本由预设的编码函数生成;
生成模块,用于采用所述目标编码码本对所述向量数据进行编码,生成编码数据;
训练模块,用于采用所...

【专利技术属性】
技术研发人员:楼仁杰陆元飞李飞飞占超群魏闯先
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1