一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据推荐方法、装置、计算设备及计算机可读存储介质与流程

2022-02-20 05:27:33 来源:中国专利 TAG:


1.本发明实施例涉及数据处理技术领域,具体涉及一种数据推荐方法、装置、计算设备及计算机可读存储介质。


背景技术:

2.目前主流推荐系统主要有三个核心且关键的步骤阶段,包括特征工程、召回、排序。其中近邻推荐根据不同的应用和场景可体现在召回或排序阶段或同时出现在这两个阶段,且也依赖于特征工程阶段的输出作为其输入。近邻推荐技术实现多采用协同过滤的思想,先构建向量或关系矩阵,通过一些相似度计算方法(如余弦相似度)或一些权重量化方式两两计算向量间相似度,根据相似度及向量、矩阵间关系等形成物品间相似度矩阵或相似用户物品关系或建立模型形成对关系矩阵中缺失项目的预测评分,并根据评分和相似度等进行排序从而生成最终推荐结果,数据处理效率较低。


技术实现要素:

3.鉴于上述问题,本发明实施例提供了一种数据推荐方法、装置、计算设备及计算机可读存储介质,用于解决现有技术中存在的无法高效进行数据推荐的技术问题。
4.根据本发明实施例的一个方面,提供了一种数据推荐方法,所述方法包括:
5.获取查询请求,所述查询请求中包括待匹配数据;
6.将所述待匹配数据处理为目标embedding向量;
7.根据所述目标embedding向量生成目标embedding向量哈希键值对;
8.根据所述目标embedding向量哈希键值对在预先构建的embedding向量数据库中查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表;所述预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对,所述embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及所述embedding向量本身;
9.根据所述embedding向量哈希键值对列表生成推荐结果。
10.在一种可选的方式中,所述所述embedding向量数据库的构建方法,包括:流式或批量获取用户行为数据;针对获取到的每个用户行为数据,将所述用户行为数据处理为embedding向量;根据所述embedding向量生成embedding向量哈希键值对;将生成的embedding向量哈希键值对存储到embedding向量数据库中。
11.在一种可选的方式中,所述根据所述目标embedding向量生成目标embedding向量哈希键值对,包括:生成与所述embedding向量相同维度的哈希树;所述哈希树中包括多个随机向量;分别计算所述embedding向量与所述哈希树中各个随机向量的夹角;根据所述夹角确定所述局部敏感哈希值;根据所述目标局部敏感哈希值及所述目标embedding向量生成所述目标embedding向量哈希键值对。
12.在一种可选的方式中,所述embedding向量数据库中包括基础索引数据、近邻集合索引数据、embedding向量索引数据;所述embedding向量数据库的构建方法,包括:在
embedding向量数据库中建立近邻集合索引数据;所述近邻集合索引数据中包括按embedding向量哈希键值对的关键字key对应存储的多个近邻集合,所述近邻集合中包括有相似的embedding向量哈希键值;在embedding向量数据库中建立基础索引数据;所述基础索引数据中包括按照主题对应存储的多个主题集合,所述主题集合中包括多个主题相同的embedding向量哈希键值对;在embedding向量数据库中建立embedding向量索引数据;所述embedding向量索引数据中包括按主题及用户标识或内容标识存储的多个embedding向量的集合。
13.在一种可选的方式中,embedding向量数据库采用embedding索引数据结构进行数据存储,所述embedding索引数据结构包括行键列以及数据存储列簇;所述近邻集合索引数据包括第一行键列及第一数据存储列簇,第一行键列包括多个第一行键信息,第一数据存储列簇包括与所述第一行键信息对应的至少一个近邻集合,近邻集合中存储有embedding向量哈希键值对;第一行键信息根据embedding向量哈希键值对的关键字key生成;所述基础索引数据包括第二行键列及第二数据存储列簇,所述第二行键列包括多个第二行键信息,所述第二数据存储列簇包括与所述第二行键信息对应的embedding向量哈希键值对;所述第二行键信息根据主题生成;所述embedding向量索引数据包括第三行键列及第三数据存储列簇,所述第三行键列包括多个第三行键信息,第三数据存储列簇包括与第三行键信息对应的embedding向量,所述第三行键信息根据主题及用户标识或内容标识生成。
14.在一种可选的方式中,所述方法还包括:获取待传入的用户行为数据;确定所述待传入的用户行为数据的embedding向量哈希键值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项;确定所述待传入的用户行为数据的embedding向量哈希键值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项在所述索引数据库中搜索匹配的目标行键列,所述目标行键列为所述第一行键列、所述第二行键列及所述第三行键列中的任一个或多个;根据所述目标行键列及对应的目标数据存储列簇确定所述待传入的用户行为数据是否为重复数据;所述目标行键列存储有关键字key、主题、以及主题及用户标识或内容标识中的一项或多项,所述目标数据存储列簇存储有与所述目标行键列对应的embedding向量;当所述待传入的用户行为数据为重复数据时,删除所述待传入的用户行为数据;当所述待传入的用户行为数据不为重复数据中时,将所述待传入的用户行为数据添加至所述embedding向量数据库中。
15.在一种可选的方式中,所述在embedding向量数据库中建立近邻集合索引数据之后,包括:根据所述近邻集合索引数据构建索引结构;所述索引结构包括一级索引、一级索引对象、二级索引、二级索引对象;所述一级索引包括所述embedding向量哈希键值对的关键字key的索引截断,所述一级索引对象为包含所述索引截断的所述embedding向量哈希键值对中的局部敏感哈希值;所述二级索引为所述embedding向量哈希键值对中的局部敏感哈希值,所述二级索引对象为所述embedding向量哈希键值对。
16.在一种可选的方式中,所述在embedding向量数据库中建立基础索引数据,包括:根据局部敏感哈希值大小对所有的embedding向量哈希键值对进行排序;对排序后的embedding向量哈希键值对按照预设的存储阈值顺序存储在多个主题集合中;所述预设的存储阈值为各个主题集合存储embedding向量哈希键值对数量的阈值。
17.在一种可选的方式中,根据所述目标embedding向量哈希键值对在预先构建的
embedding向量数据库中查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表,包括:将所述目标embedding向量哈希键值对中的目标局部敏感哈希值,在所述近邻集合索引数据中进行索引,确定与所述目标局部敏感哈希值匹配的目标近邻集合;计算所述目标局部敏感哈希值与所述目标近邻集合中的各个embedding向量哈希键值对中的局部敏感哈希值的相似度;根据所述相似度,确定所述embedding向量哈希键值对列表。
18.根据本发明实施例的另一方面,提供了一种数据推荐装置,包括:
19.获取模块,用于获取查询请求,所述查询请求中包括待匹配数据;
20.处理模块,用于将所述待匹配数据处理为目标embedding向量;
21.生成模块,用于根据所述目标embedding向量生成目标embedding向量哈希键值对;
22.匹配模块,用于根据所述目标embedding向量哈希键值对在预先构建的embedding向量数据库中查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表;所述预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对;所述embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及所述embedding向量本身;
23.推荐模块,用于根据所述embedding向量哈希键值对列表生成推荐结果。
24.根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在计算设备上运行时,使得计算设备执行所述的数据推荐方法的操作。
25.本发明实施例通过将embedding向量映射成局部哈希值,保证局部敏感性,与局部敏感哈希技术建立深度的转换和结合,将不仅限于静态文本或一维空间,对于高维物体或事物可做进一步的降维表征,从而在获取查询请求后,将查询请求中的待匹配数据处理为目标embedding向量,根据目标embedding向量生成目标embedding向量哈希键值对,根据目标embedding向量哈希键值对在预先构建的embedding向量数据库中查询,得到与待匹配数据匹配的embedding向量哈希键值对列表,其中,预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对,embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及embedding向量,最终根据embedding向量哈希键值对列表生成推荐结果,从而有效提高了近邻数据推荐的效率。
26.进一步地,通过建立索引数据及进行特殊的分裂排序,在待去重的数据入库时,结合多级索引的构建使得全局数据动态规则地不断移动,使得数据入库完成则已同步完成精确去重的增量计算,且这一过程是增量累加而非每次的全量计算,使得构建索引过程高效,并且精确去重值可实时查询,在查询时不存在计算过程,与数据量完全无关,进一步提高了数据处理效率。
27.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
28.附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用
相同的参考符号表示相同的部件。在附图中:
29.图1示出了本发明实施例提供的数据推荐方法的流程示意图;
30.图2示出了本发明实施例提供的数据推荐方法的应用环境图;
31.图3示出了本发明实施例提供的数据推荐方法中近邻集合索引数据的结构示意图;
32.图4示出了本发明实施例提供的数据推荐方法中基础索引数据的结构示意图;
33.图5示出了本发明实施例提供的数据推荐方法中embedding向量索引数据的结构示意图;
34.图6示出了本发明实施例提供的数据推荐方法中数据同步及索引构建计算的流程示意图;
35.图7示出了本发明实施例提供的数据推荐方法中近邻搜索及精确去重的流程示意图;
36.图8示出了本发明实施例提供的数据推荐装置的结构示意图;
37.图9示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
38.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
39.本技术的发明人在实施本发明实施例的过程中发现,在现有技术中,近邻推荐技术实现多采用协同过滤的思想,模型计算资源消耗大,尤其在召回阶段,通常面对数据量较大甚至海量数据情况下,会增加资源消耗和负担。同时,向量间挨个计算相似度(如计算余弦相似度)在工程上对资源消耗较大且通常效率较低,一般需要提前离线计算完成而不能达到准实时的效果来满足对实效性敏感的场景;而一些时效性较高的近邻搜索或推荐方案,对于最关键的相似度计算通常会利用聚类算法等,通过与聚类中心的计算比较来避免挨个计算相似度以此来提升效率,但相对挨个对比,这通常又会存在准确性的缺失;同时,现有技术无法同时支持海量数据高效近邻推荐和精确去重两种能力。除此之外,可通过局部敏感哈希来计算相似性,而局部敏感哈希的生成,在现有技术中多针对的是文本内容(网页)对象,其内容都是文字内容,具有实际含义或词义,但对机器学习生成的embedding向量则无法用同样方法映射,不能保留向量的空间性所代表的意义。同时,面对大规模数据情况下,挨个对比也存在效率问题。
40.本发明实施例通过设计并实现特定embedding索引数据结构以及进行索引构建、分裂排序、近邻聚合及近邻搜索等关键过程,来实现近邻推荐并提升在海量数据场景下推荐的实效性,这种实效性不再受准确性的制约。其关键解决的问题是能够支持海量数据(亿级)的高效实时(最高能达到毫秒级)近邻推荐以及数据的精确去重(精确去重数据量理论可无上限并可实时获取),且基于多级/分类索引构建和全局数据动态规则地不断移动,使得同一套系统装置可同时支持海量数据近邻推荐及精确去重。
41.图1示出了本发明实施例提供的数据推荐方法的流程图,该方法由计算设备执行。该计算设备可以是计算机设备、终端设备、云处理设备、服务器等,本发明实施例不做具体
限制。如图1所示,该方法包括以下步骤:
42.步骤110:获取查询请求,查询请求中包括待匹配数据。
43.其中,该查询请求可以是在获取到用户点击或浏览行为时所触发的请求。该待匹配数据可以是用户点击或浏览行为产生的数据,包括用户id、用户性别等用户信息数据,以及浏览或点击内容等内容数据。
44.步骤120:将待匹配数据处理为目标embedding向量。
45.其中,embedding向量又称embedding向量,为词嵌入式自然语言处理(nlp)中的一组语言建模和特征学习技术的统称,其中来自词汇表的单词或短语被映射到实数的向量,其涉及从每个单词一维的空间到具有更低维度的连续向量空间的数学嵌入。
46.本发明实施例中,在得到待匹配数据后,对待匹配数据进行embedding向量处理,得到目标embedding向量,具体地,基于统一的标签分类,通过无监督建模(针对序列数据采用word2vec或item2vec等;针对图数据采用deepwalk或node2vec等)、矩阵分解(如协同过滤矩阵分解的方法)、dnn深度学习的方法(例如一个dnn模型中,embedding层的weights)等方式,来得到目标embedding向量。
47.其中,待匹配数据中包括用户信息数据及内容数据。对于用户信息数据和内容数据,可分别进行embedding向量处理,得到用户embedding及内容embedding。
48.步骤130:根据目标embedding向量生成目标embedding向量哈希键值对。
49.本发明实施例中,根据目标embedding向量生成目标embedding向量哈希键值对的具体过程包括:
50.生成与所述embedding向量相同维度的哈希树,本发明实施例中64个随机向量x组成哈希树。其中,对于两个embedding向量s和embedding向量v,定义其相似度(距离)为:p=s.v/|s||v|。从与embedding向量的维度相同的n维向量空间中生成一个n维的随机向量x,以此随机向量x作为法向量,其对应的一个随机平面为px。
51.计算目标embedding向量y与所述随机向量x的夹角。
52.根据所述夹角确定目标embedding向量哈希键值对。其中,目标embedding向量y与随机向量x进行哈希计算,在于该随机向量x方向所指一侧空间代表1,相反一侧为0。目标embedding向量y与随机向量x的夹角可以判断该目标embedding向量所属空间方向,也即:y
·
x>0则取哈希值1,否则取哈希值为0。每一个随机向量x分别与目标embedding向量y进行夹角计算,从而将目标embedding向量y映射成为由0和1组成的64个比特位的哈希值,从而得到目标局部敏感哈希值。
53.本发明实施例采用特定的局部哈希生成算法,与传统局部敏感哈希生成算法(如minhash或simhash等)的关键区别在于:minhash或simhash其主要是针对的是文本(网页)对象,其内容都是文字内容,具有实际含义或词义。通过这种映射转换,使得任何涉及空间向量的技术(如embedding技术)可以与局部敏感哈希技术建立深度的转换和结合,将不仅限于静态文本或一维空间,对于高维物体或事物可做进一步的降维表征。
54.本发明实施例中,在得到目标embedding向量对应的目标局部敏感哈希值后,构建得到目标embedding向量哈希键值对。具体地,将目标局部敏感哈希值作为关键字key,目标embedding向量作为值value,从而可以得到目标embedding向量哈希键值对。其中,目标embedding向量哈希键值对的值value还可以包括目标embedding向量与对应对象的id值。
55.步骤140:根据目标局部敏感哈希值在预先构建的embedding向量数据库中查询,得到与待匹配数据匹配的embedding向量哈希键值对列表。
56.其中,预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对;embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及embedding向量本身。
57.本发明实施例中,在根据所述目标embedding向量哈希键值对在预先构建的embedding向量数据库中查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表之前,还包括:在embedding向量数据库中建立索引数据,本发明实施例中,从功能上区分,embedding向量数据库中分别构建了近邻集合索引数据、基础索引数据及embedding向量索引数据。具体地,在embedding向量数据库中建立近邻集合索引数据;所述近邻集合索引数据中包括按embedding向量哈希键值对的关键字key对应存储的多个近邻集合,所述近邻集合中包括有相似的embedding向量哈希键值对及embedding向量哈希键值对信息。在embedding向量数据库中建立基础索引数据;所述基础索引数据中包括按照主题对应存储的多个主题集合,所述主题集合中包括多个主题相同的embedding向量哈希键值对及embedding向量哈希键值对信息。在embedding向量数据库中建立embedding向量索引数据;所述embedding向量索引数据中包括按主题及用户标识或内容标识存储的多个embedding向量的对集合。
58.其中,从存储形式上来说,embedding向量数据库采用embedding索引数据进行数据存储,所述embedding索引数据的存储形式包括行键列以及数据存储列簇。所述行键列包括embedding向量哈希键值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项;所述数据存储列簇包括所述行键列所对应的embedding向量哈希键值对集合。该步骤基于预设的数据推荐装置实现,该数据推荐装置包括embedding向量数据库。如图2所示,本发明实施例中预先构建该数据推荐装置,该数据推荐装置可以实现对数据按照主题构造数据索引、按局部敏感哈希值构造数据索引、以及按照主题及用户标识或内容标识构造数据索引。具体地,该数据推荐装置包括特征工程器、索引构建器、embedding向量数据库及近邻推荐器几个模块。其中,特征工程器将实时或定期获取的数据进行embedding向量处理,得到对应的embedding向量,并通过上述的局部敏感哈希值生成算法生成对应的局部敏感哈希值,根据该局部敏感哈希值及对应的embedding向量,构建得到目标embedding向量哈希键值对。具体地,将局部敏感哈希值作为关键字key,embedding向量作为值value,从而可以得到embedding向量哈希键值对。其中,embedding向量哈希键值对的值value还可以包括embedding向量与对应对象的id值,如用户id、用户群id、内容id、标识id等。
59.在得到数据的embedding向量哈希键值对后,将这些embedding向量哈希键值对作为索引数据存储至embedding向量数据库。具体地,embedding向量数据库在存储时,每个索引数据在整体上包含行键列[row_key]以及以列簇为单位的数据存储列簇两部分。其中,行键列[row_key]的结构为[row_hash_key]l[dim_type][key_name].[datetime],其中[row_hash_key]为防止数据热点而进行的哈希散列,计算方式为将“[dim_type][key_name].[datetime]”的值求哈希编码后再取模预分区数,所得结果取绝对值后即得到该哈希散列值,其计算方式为将“[dim_type][key_name].[datetime]”的值求哈希编码后再取模预分区数,所得结果取绝对值后即得到该哈希散列值。数据存储列簇用于存储与行键列[row_
key]对应的embedding向量哈希键值对及相关数据信息。下面具体阐述近邻集合索引数据、基础索引数据及embedding向量索引数据从存储形式上来说的具体构建过程。
[0060]
在embedding向量数据库中建立近邻集合索引数据:如图3所示,近邻集合索引数据的结构包括第一行键列及第一数据存储列簇,第一行键列包括多个第一行键信息,第一数据存储列簇包括与所述第一行键信息对应的至少一个近邻集合,近邻集合中存储有embedding向量哈希键值对及embedding向量哈希键值对信息;第一行键信息根据embedding向量哈希键值对的关键字key生成。也即,第一行键列[row_key]的结构如前所述,其中,[dim_type]的编码用于区分当前第一行键值[row_key]对应的数据列是集合索引位置还是集合本身;[key_name]为embedding向量哈希键值对的关键字key。其中,该第一数据存储列簇的结构包括[ni][nv][nt][ns1][ns2][...][nsi],第一数据存储列簇中的[ni]为对应[row_key]的[nsi]集合的位置(索引),[nv]为当前新插入的embedding向量哈希键值对,[nt]为当前[row_key]下所有集合列([nsi])的个数的总和,[nsi]为一组相似向量的集合,其内的元素包括多个相似的embedding向量哈希键值对,其中embedding向量哈希键值对中的值value中还添加有时间戳。
[0061]
在embedding向量数据库中建立基础索引数据:该基础索引数据为对应某一主题下各个指标所对应的embedding向量哈希键值对集合。如图4所示,基础索引数据的结构包括第二行键列[row_key]及第二数据存储列簇,所述第二行键列包括多个第二行键信息,所述第二数据存储列簇包括与所述第二行键信息对应的embedding向量哈希键值对;所述第二行键信息根据主题生成。具体地,第二行键列[row_key]的结构如前所述,其中,[dim_type]为维度或分类编码,在该基础索引数据中用于区分不同的数据主题,该主题可依据具体场景进行相应设置;[key_name]为某一指标编码,在该基础索引数据中为n位由0和1组成的二进制串或对应某指标的编码,该指标的编码可以用于指标的精确去重计算;[datetime]为日期时间编码。其中,该第二数据存储列簇的结构包括[qv][st][sd][s1][s2][...][si],第二数据存储列簇中的[qv]列为当前[row_key]下所有集合[si]的个数的总和,[st]为当前[row_key]下预存储的对象值的队列,[sd]为存储于所有集合[si]中的元素按关键字key去重值,[si]为具体数值存储集合,其存储的元素为有序map类型的数据结构,存储键值对形式的对象数据,也即embedding向量哈希键值对。需要说明的是,本发明实施例中某一主题下对应有多个指标,每个指标可能又对应有不同维度。通过同一指标下各个维度的对比,可以反映某一主题下的指标情况。指标,用于衡量事物发展程度的单位或方法,也称为度量。例如:人口数、gdp、收入、用户数、利润率、留存率、覆盖率等。维度:是事物或现象的某种特征,如性别、地区、时间等都是维度。
[0062]
在embedding向量数据库中建立embedding向量索引数据:该embedding向量索引数据为embedding直接映射索引,该embedding向量索引数据包括第三行键列及第三数据存储列簇。其中,如图5所示,第三行键列包括多个第三行键信息,第三数据存储列簇包括与第三行键信息对应的embedding向量,第三行键信息根据主题及用户标识或内容标识生成。具体地,第三行键列[row_key]的结构如前述结构相同,其中,[key_name]为用户或用户群id、或内容id或标识id,根据[dim_type]进行分类。第三数据存储列簇结构为[ev][version],其中[ev]为对应的具体embedding向量值,[version]为[ev]对应的版本号。
[0063]
在构建了近邻集合索引数据、基础索引数据及embedding向量索引数据后,通过索
引构建器对这些embedding向量数据库中的embedding向量索引数据构建索引。具体地,对于近邻集合索引数据构建索引结构,该近邻集合索引数据对应的索引结构包括一级索引、一级索引对象、二级索引、二级索引对象。其中,一级索引包括embedding向量哈希键值对的关键字key的索引截断,一级索引对象为包含索引截断的所述embedding向量哈希键值对中的局部敏感哈希值;二级索引为所述embedding向量哈希键值对中的局部敏感哈希值,二级索引对应的索引对象为所述embedding向量哈希键值对。具体地,将embedding向量哈希键值对的值key(也即n个比特位的二进制局部敏感哈希值)按比特位由低位到高位顺序截断分段,作为一级索引。其索引的对象(也即以及索引对象)则是包含该索引截断的全哈希值所组成的二级索引。二级索引的key为完整的局部敏感哈希值,二级索引对象则是具体的embedding向量哈希键值对,从而避免后续在计算相似性时一开始就按位挨个对比和计算。其中,基础索引数据对应的索引结构与上述近邻集合索引数据对应的索引结构一致,此处不再赘述。
[0064]
构建索引之后,即通过该索引进行近邻搜索,具体地,获取与待匹配数据匹配的embedding向量哈希键值对列表的过程为:将所述目标embedding向量哈希键值对中的目标局部敏感哈希值,在所述近邻集合索引数据中进行索引,确定与所述目标局部敏感哈希值匹配的目标近邻集合;计算所述目标局部敏感哈希值与所述目标近邻集合中的各个embedding向量哈希键值对中的局部敏感哈希值的相似度;根据所述相似度,确定所述embedding向量哈希键值对列表。其中,由于近邻集合索引数据的第一行键信息根据embedding向量哈希键值对的关键字key生成,因此确定待匹配数据的目标embedding向量哈希键值对中的目标局部敏感哈希值,获取与该目标局部敏感哈希值对应的近邻集合索引数据中行键格式的第一行键列[row_key],根据第一行键列[row_key]在上述索引结构中进行索引,先获取数据存储簇中的[ni]值,得到近邻集合位置,再根据位置先从内存缓存中获取集合[nsi],根据embedding向量哈希键值对的关键字key直接判断是否存在于集合[nsi]中,若存在,再看[nv]值是否与当前的embedding向量哈希键值对一致,若一致则直接返回对应集合[nsi]中指定前n个元素的值value所组成的集合作为推荐的embedding向量哈希键值对列表,若不一致,则将[nsi]集合中元素的key与当前embedding向量哈希键值对的关键字key进行海明距离计算,按海明距离从小到大进行排序后返回指定的前n个元素的值value作为推荐的embedding向量哈希键值对列表。在查询获取时,先从内存缓存中进行获取,若没有获取到对应值再从底层索引数据结构的近邻集合索引中获取;若[nsi]中不存在当前的embedding向量哈希键值对的key值,则进行相似性计算及近邻聚合操作来获取指定top n的排序集合并返回,同步刷新到近邻集合索引中对应的[nsi]集合中并加载刷新到内存。若仍未获取到近邻值,则默认返回热点内容列。对于索引截断,待匹配的局部敏感哈希值按位做截断(如16位作为一个截断分段)且按一级索引逐级检索到某一个链或集合,对比待匹配的哈希值与集合中哈希值,假设分隔为4个截断(每个截断16位),并生成对应的4个row_key,以此4个row_key遍历近邻集合索引数据,根据embedding向量哈希键值对的key值,在基础索引中根据三级索引找到对应row_key的数据集合列[si],并直接判断key值是否存在与集合中,若存在,再依次与集合中元素的key进行相似度计算,如此可提高效率,例如原来有2^32条待匹配计算的数据,每条哈希值数据为64位,每16位一个截断,则每个16位则有2^16个组合,则每个截断索引的候选结果为2^(32-16)个,若为4个截断,则总共为4*2^
(32-16)个,相比与原来2^32个挨个对比计算,提升了初步检索和构建的效率。
[0065]
本发明实施例中,该方法还包括数据去重,具体包括以下步骤:获取待传入的用户行为数据;确定所述待传入的用户行为数据的embedding向量哈希键值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项;确定所述待传入的用户行为数据的embedding向量哈希键值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项在所述embedding向量数据库中搜索匹配的目标行键列;所述目标行键列为所述第一行键列、所述第二行键列及所述第三行键列中的任一个或多个;根据所述目标行键列及对应的目标数据存储列簇确定所述待传入的用户行为数据是否为重复数据;所述目标行键列存储有关键字key、主题、以及主题及用户标识或内容标识中的一项或多项,所述目标数据存储列簇存储有与所述目标行键列对应的embedding向量哈希键值对或embedding向量;当所述待传入的用户行为数据为重复数据时,删除所述待传入的用户行为数据;当所述待传入的用户行为数据不为重复数据中时,将所述待传入的用户行为数据添加至所述embedding向量数据库中。
[0066]
仅通过上述方式构建近邻集合索引数据、基础索引数据及embedding向量索引数据,可以对比计算某一哈希值在待匹配库是否具备相似性对象,但还不足以实现高效的近邻推荐和精确去重,同时,每个截断索引(一级索引)内对象的检索仍不高效,因此需首先通过特殊的分裂排序,将一级索引的对象元素(二级索引结构)按二级索引的key进行全局排序和移动,每个集合的链首之间是有序的,并以链首元素作为三级索引,可最高以o(logn)时间复杂度索引到串行链中某一个链(集合),这种全局排序和移动是一种实时地不断动态的分裂过程,分裂后的多个集合是逻辑上呈现首尾相连的串行链式结构。因此,本发明实施例在建立索引数据时,还通过索引构建器对该索引数据进行排序,包括以下步骤:
[0067]
对所述embedding向量哈希键值对集合中的embedding向量哈希键值对进行排序;其中,可以按照embedding向量哈希键值的大小进行排序,具体地,以基础索引数据为例:
[0068]
根据局部敏感哈希值大小对所有的embedding向量哈希键值对进行排序;
[0069]
对排序后的embedding向量哈希键值对按照预设的存储阈值顺序存储在多个主题集合中;所述预设的存储阈值为各个主题集合存储embedding向量哈希键值对数量的阈值。
[0070]
本发明实施例,可分别对近邻集合索引数据、基础索引数据及embedding向量索引数据进行排序。例如,对基础索引数据进行排序的过程包括:在数据写入时进行分裂排序,并发地获取不同row_key的写入队列中的待写入对象值,也即[qv]中的值。对于某一[row_key],若初始数据集合[si]为空,则直接写入第一个集合[s1]中。若[s1]中已存在值,则以embedding向量哈希键值对的关键字key为基准升序排序写入,若s1集合中元素个数达到了设定的预设阀值,则分裂出第二个集合[s2],并将[s1]集合中末尾也即关键字key最大的embedding向量哈希键值对移入到[s2]集合中若[s2]集合也满了,则同样将末尾元素移入下一个集合也即[s3]中,以此类推。以此保证[si](i=1,2,

)集合中元素是升序排序且数据是不断移动变化的,这些集合逻辑上形成首位相连的串行链式结构,即每个链(集合)中第一个元素的key最小,末尾元素的key最大,每个集合的链首之间是有序的。后续的写入先判断所有[si]集合的第一个元素的关键字key值与当前待插入的关键字key值的大小,以链首元素(也即某一[row_key]对应的[qv]下[si]的首个元素)作为三级索引找到待插入的位置,可最高以o(logn)时间复杂度索引到串行链中某一个链(集合)。再按序插入对应的集合
中并进行数据移动(若需要),若待插入元素的key在集合[si]中匹配到了相同值,则更新对应key的元素的value值。排序模块完成排序写入后,将当前集合个数原子性更新写入到[st]列,并原子性将[sd]值加一,作为当前集合中元素个数的去重值。
[0071]
其中,在实现指标数据精确去重时,由于不涉及局部敏感哈希的相似性计算和比对,因此索引构建过程不涉及局部敏感哈希的索引构建,可以更高效。也即对于基础索引数据,其一级索引的关键字key为指标编码,二级索引的关键字key是指标数据的标识id(如用户id等),索引的对象则是指标数据标识对应的数据,这些数据进行上述分裂排序过程并加入某个链中,在加入时会通过前述的一级、二级、三级索引会按关键字key直接检索该指标是否存在,若已存在则丢弃或更新值;若不存在,则加入数据元素并累加更新动态去重值作为当前时间节点的全局指标去重值,对于不同时间范围,则根据数据时间戳和数据位置分类信息同步累加更新到对应范围的去重值中,至此完成数据的精确去重增量计算,这一过程是伴随着不断增加的指标数据而不断迭代执行的,是一个动态过程。从而通过预先进行排序处理,从而实现了实时动态的精确去重并存量更新。
[0072]
结合2及图6,在本发明的一个实施例中,预先构建的embedding向量数据库可按照预设周期或实时的流式或批处理的原始数据,根据原始数据更新近邻集合索引数据(近邻推荐索引构建)及基础索引数据(精确去重索引构建),并更新在预先构建的embedding向量数据库中。因此,在增量存储时需要确定该数据是否是重复的指标数据,以及能够快速的将其更新在近邻集合索引中。具体地,如图6所示,对于近邻推荐索引构建:当获取到流式或批处理的原始数据后,近邻推荐索引构建模块获取原始数据对应的embedding向量哈希键值对,并将其输入基础索引模块,将embedding向量哈希键值对的key值按上述截断方式分段,作为一级索引,其索引对象是包含该索引截断的全局部敏感哈希值所组成的二级索引结构,二级索引结构的key是全局部敏感哈希值,索引对象是具体的embedding向量哈希键值对。接入排序模块,进行分类排序,由于排序模块通过特殊的分裂排序,将一级索引的对象元素(二级索引结构)按二级索引的key进行全局排序和移动,这种全局排序和移动是一种实时地不断动态的分裂过程,分裂后的多个集合是逻辑上呈现首尾相连的串行链式结构,同时每个集合的链首之间是有序的,以链首元素作为三级索引。因此可以根据该输入的embedding向量哈希键值对确定索引到串行链中某一个链,也即近邻集合。接入近邻索引模块,数据更新后,将触发近邻索引模块进行相似性计算及近邻聚合操作,从而得到原始数据对应的embedding向量哈希键值对所对应的近邻数据,将生成的近邻计算结果去重后更新到近邻集合索引中对应的近邻集合中,从而实现对近邻集合索引数据的构建或更新。对于基础索引数据构建(精确去重索引构建):原始数据处理后得到精确去重指标键值对数据,其中其key为标识id,value为明细数据,按指标分类接入基础索引模块后,由于在基础索引数据中的第二行键值row_key作为一级索引,其索引对象是二级索引结构,key是标识id,value为对应的明细数据,通过在排序模块检索后,可以确定该精确去重指标键值对数据是否为重复数据。由于在排序模块对一级索引的对象元素(二级索引结构)按二级索引的key进行全局排序和移动,这种全局排序和移动是一种实时地不断动态的分裂过程,分裂后的多个集合是逻辑上呈现首尾相连的串行链式结构,同时每个集合的链首之间是有序的,以链首元素作为三级索引,因此,可以快速的确定三级索引中是否存在与该精确去重指标键值对数据重复的数据,若存在,则删除该精确去重指标键值对数据,若不存在,则相应的增
量累加至对应的集合中。该过程通过结合多级/分类索引的构建,使得全局数据动态规则的不断移动,使得数据入库完成则已同步完成精确去重的增量计算,这一过程是增量累加而非每次的全量计算。通过这样的方式可以实现对海量数据进行存储时的快速、精确去重。通过上述的步骤从而完成了一个迭代的数据同步及索引构建计算,该预先构建的embedding向量数据库持续的按照预设周期或实时的流式或批处理的原始数据,从而不断地更新该预先构建的embedding向量数据库中的索引数据。
[0073]
步骤150:根据embedding向量哈希键值对列表生成推荐结果。
[0074]
在得到该embedding向量哈希键值对列表后,获取该embedding向量哈希键值对对应的目标数据列表,将该目标数据列表推荐给用户。
[0075]
如图7所示,本发明实施例通过上述的方式,可以实现海量数据的近邻推荐及精确去重。对于近邻搜索,在近邻集合索引数据构建完成之后,通过近邻搜索模块按照上述的近邻搜索方法,从近邻集合中可直接检索获取到某一embedding向量的近邻集合,从而最终输出作为召回/推荐列表。同时,精确去重的过程中,去重检索可通过索引规则直接查询动态更新的全局指标去重或范围指标去重值来直接实时获取当前该指标数据的精确去重,此时不存在计算的过程,且与数据量无关,达到了o(1)复杂度获取海量数据精确去重值。
[0076]
本发明实施例通过将embedding向量映射成局部哈希值,保证局部敏感性,与局部敏感哈希技术建立深度的转换和结合,将不仅限于静态文本或一维空间,对于高维物体或事物可做进一步的降维表征,从而在获取查询请求后,将查询请求中的待匹配数据处理为目标embedding向量,根据目标embedding向量生成目标局部敏感哈希值,根据目标局部敏感哈希值在预先构建的embedding向量数据库中查询,得到与待匹配数据匹配的embedding向量哈希键值对列表,其中,预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对,目标embedding向量哈希键值对为多个embedding向量哈希键值对中的任一个,embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及embedding向量,最终根据embedding向量哈希键值对列表生成推荐结果,从而有效提高了近邻数据推荐的效率。
[0077]
进一步地,通过建立索引数据及进行特殊的分裂排序,在待去重的数据入库时,结合多级索引的构建使得全局数据动态规则地不断移动,使得数据入库完成则已同步完成精确去重的增量计算,且这一过程是增量累加而非每次的全量计算,使得构建索引过程高效,并且精确去重值可实时查询,在查询时不存在计算过程,与数据量完全无关,进一步提高了数据处理效率。
[0078]
图8示出了本发明实施例提供的数据推荐装置的结构示意图。如图8所示,该装置300包括:
[0079]
获取模块310,用于获取查询请求,所述查询请求中包括待匹配数据。
[0080]
处理模块320,用于将所述待匹配数据处理为目标embedding向量。
[0081]
生成模块330,用于根据所述目标embedding向量生成目标embedding向量哈希键值对。
[0082]
匹配模块340,用于根据所述目标embedding向量哈希键值对在预先构建的embedding向量数据库中查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表;所述预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对;
所述embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及所述embedding向量本身。
[0083]
推荐模块350,用于根据所述embedding向量哈希键值对列表生成推荐结果。
[0084]
本发明实施例的数据推荐装置300的工作流程与上述数据推荐方法的具体实施步骤基本一致,此处不再赘述。
[0085]
本发明实施例通过将embedding向量映射成局部哈希值,保证局部敏感性,与局部敏感哈希技术建立深度的转换和结合,将不仅限于静态文本或一维空间,对于高维物体或事物可做进一步的降维表征,从而在获取查询请求后,将查询请求中的待匹配数据处理为目标embedding向量,根据目标embedding向量生成目标局部敏感哈希值,根据目标局部敏感哈希值在预先构建的embedding向量数据库中查询,得到与待匹配数据匹配的embedding向量哈希键值对列表,其中,预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对,目标embedding向量哈希键值对为多个embedding向量哈希键值对中的任一个,embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及embedding向量,最终根据embedding向量哈希键值对列表生成推荐结果,从而有效提高了近邻数据推荐的效率。
[0086]
进一步地,通过建立索引数据及进行特殊的分裂排序,在待去重的数据入库时,结合多级索引的构建使得全局数据动态规则地不断移动,使得数据入库完成则已同步完成精确去重的增量计算,且这一过程是增量累加而非每次的全量计算,使得构建索引过程高效,并且精确去重值可实时查询,在查询时不存在计算过程,与数据量完全无关,进一步提高了数据处理效率。
[0087]
图9示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
[0088]
如图9所示,该计算设备可以包括:处理器(processor)402、通信接口(communications interface)404、存储器(memory)406、以及通信总线408。
[0089]
其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述用于数据推荐方法实施例中的相关步骤。
[0090]
具体地,程序410可以包括程序代码,该程序代码包括计算机可执行指令。
[0091]
处理器402可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0092]
存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0093]
程序410具体可以被处理器402调用使计算设备执行以下操作:
[0094]
获取查询请求,所述查询请求中包括待匹配数据;
[0095]
将所述待匹配数据处理为目标embedding向量;
[0096]
根据所述目标embedding向量生成目标embedding向量哈希键值对;
[0097]
根据所述目标embedding向量哈希键值对在预先构建的embedding向量数据库中
查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表;所述预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对;所述embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及所述embedding向量本身;
[0098]
根据所述embedding向量哈希键值对列表生成推荐结果。
[0099]
在一种可选的方式中,所述所述embedding向量数据库的构建方法,包括:流式或批量获取用户行为数据;针对获取到的每个用户行为数据,将所述用户行为数据处理为embedding向量;根据所述embedding向量生成embedding向量哈希键值对;将生成的embedding向量哈希键值对存储到embedding向量数据库中。
[0100]
在一种可选的方式中,所述根据所述目标embedding向量生成目标embedding向量哈希键值对,包括:生成与所述embedding向量相同维度的哈希树;所述哈希树中包括多个随机向量;分别计算所述embedding向量与所述哈希树中各个随机向量的夹角;根据所述夹角确定所述局部敏感哈希值;根据所述目标局部敏感哈希值及所述目标embedding向量生成所述目标embedding向量哈希键值对。
[0101]
在一种可选的方式中,所述embedding向量数据库中包括基础索引数据、近邻集合索引数据、embedding向量索引数据;所述embedding向量数据库的构建方法,包括:在embedding向量数据库中建立近邻集合索引数据;所述近邻集合索引数据中包括按embedding向量哈希键值对的关键字key对应存储的多个近邻集合,所述近邻集合中包括有相似的embedding向量哈希键值;在embedding向量数据库中建立基础索引数据;所述基础索引数据中包括按照主题对应存储的多个主题集合,所述主题集合中包括多个主题相同的embedding向量哈希键值对;在embedding向量数据库中建立embedding向量索引数据;所述embedding向量索引数据中包括按主题及用户标识或内容标识存储的多个embedding向量的集合。
[0102]
在一种可选的方式中,embedding向量数据库采用embedding索引数据结构进行数据存储,所述embedding索引数据结构包括行键列以及数据存储列簇;所述近邻集合索引数据包括第一行键列及第一数据存储列簇,第一行键列包括多个第一行键信息,第一数据存储列簇包括与所述第一行键信息对应的至少一个近邻集合,近邻集合中存储有embedding向量哈希键值对;第一行键信息根据embedding向量哈希键值对的关键字key生成;所述基础索引数据包括第二行键列及第二数据存储列簇,所述第二行键列包括多个第二行键信息,所述第二数据存储列簇包括与所述第二行键信息对应的embedding向量哈希键值对;所述第二行键信息根据主题生成;所述embedding向量索引数据包括第三行键列及第三数据存储列簇,所述第三行键列包括多个第三行键信息,第三数据存储列簇包括与第三行键信息对应的embedding向量,所述第三行键信息根据主题及用户标识或内容标识生成。
[0103]
在一种可选的方式中,所述方法还包括:获取待传入的用户行为数据;确定所述待传入的用户行为数据的embedding向量哈希键值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项;确定所述待传入的用户行为数据的embedding向量哈希键值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项在所述索引数据库中搜索匹配的目标行键列,所述目标行键列为所述第一行键列、所述第二行键列及所述第三行键列中的任一个或多个;根据所述目标行键列及对应的目标数据存储列簇确定所述待传入的用户行为数据是否为重复数据;所述目标行键列存储有关键字key、主题、以及主
题及用户标识或内容标识中的一项或多项,所述目标数据存储列簇存储有与所述目标行键列对应的embedding向量;当所述待传入的用户行为数据为重复数据时,删除所述待传入的用户行为数据;当所述待传入的用户行为数据不为重复数据中时,将所述待传入的用户行为数据添加至所述embedding向量数据库中。
[0104]
在一种可选的方式中,所述在embedding向量数据库中建立近邻集合索引数据之后,包括:根据所述近邻集合索引数据构建索引结构;所述索引结构包括一级索引、一级索引对象、二级索引、二级索引对象;所述一级索引包括所述embedding向量哈希键值对的关键字key的索引截断,所述一级索引对象为包含所述索引截断的所述embedding向量哈希键值对中的局部敏感哈希值;所述二级索引为所述embedding向量哈希键值对中的局部敏感哈希值,所述二级索引对象为所述embedding向量哈希键值对。
[0105]
在一种可选的方式中,所述在embedding向量数据库中建立基础索引数据,包括:根据局部敏感哈希值大小对所有的embedding向量哈希键值对进行排序;对排序后的embedding向量哈希键值对按照预设的存储阈值顺序存储在多个主题集合中;所述预设的存储阈值为各个主题集合存储embedding向量哈希键值对数量的阈值。
[0106]
在一种可选的方式中,根据所述目标embedding向量哈希键值对在预先构建的embedding向量数据库中查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表,包括:将所述目标embedding向量哈希键值对中的目标局部敏感哈希值,在所述近邻集合索引数据中进行索引,确定与所述目标局部敏感哈希值匹配的目标近邻集合;计算所述目标局部敏感哈希值与所述目标近邻集合中的各个embedding向量哈希键值对中的局部敏感哈希值的相似度;根据所述相似度,确定所述embedding向量哈希键值对列表。
[0107]
本发明实施例通过将embedding向量映射成局部哈希值,保证局部敏感性,与局部敏感哈希技术建立深度的转换和结合,将不仅限于静态文本或一维空间,对于高维物体或事物可做进一步的降维表征,从而在获取查询请求后,将查询请求中的待匹配数据处理为目标embedding向量,根据目标embedding向量生成目标局部敏感哈希值,根据目标局部敏感哈希值在预先构建的embedding向量数据库中查询,得到与待匹配数据匹配的embedding向量哈希键值对列表,其中,预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对,目标embedding向量哈希键值对为多个embedding向量哈希键值对中的任一个,embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及embedding向量,最终根据embedding向量哈希键值对列表生成推荐结果,从而有效提高了近邻数据推荐的效率。
[0108]
进一步地,通过建立索引数据及进行特殊的分裂排序,在待去重的数据入库时,结合多级索引的构建使得全局数据动态规则地不断移动,使得数据入库完成则已同步完成精确去重的增量计算,且这一过程是增量累加而非每次的全量计算,使得构建索引过程高效,并且精确去重值可实时查询,在查询时不存在计算过程,与数据量完全无关,进一步提高了数据处理效率。
[0109]
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在计算设备上运行时,使得所述计算设备执行上述任意方法实施例中的数据推荐方法。
[0110]
可执行指令具体可以用于使得计算设备执行以下操作:
[0111]
获取查询请求,所述查询请求中包括待匹配数据;
[0112]
将所述待匹配数据处理为目标embedding向量;
[0113]
根据所述目标embedding向量生成目标embedding向量哈希键值对;
[0114]
根据所述目标embedding向量哈希键值对在预先构建的embedding向量数据库中查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表;所述预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对;所述embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及所述embedding向量本身;
[0115]
根据所述embedding向量哈希键值对列表生成推荐结果。
[0116]
在一种可选的方式中,所述所述embedding向量数据库的构建方法,包括:流式或批量获取用户行为数据;针对获取到的每个用户行为数据,将所述用户行为数据处理为embedding向量;根据所述embedding向量生成embedding向量哈希键值对;将生成的embedding向量哈希键值对存储到embedding向量数据库中。
[0117]
在一种可选的方式中,所述根据所述目标embedding向量生成目标embedding向量哈希键值对,包括:生成与所述embedding向量相同维度的哈希树;所述哈希树中包括多个随机向量;分别计算所述embedding向量与所述哈希树中各个随机向量的夹角;根据所述夹角确定所述局部敏感哈希值;根据所述目标局部敏感哈希值及所述目标embedding向量生成所述目标embedding向量哈希键值对。
[0118]
在一种可选的方式中,所述embedding向量数据库中包括基础索引数据、近邻集合索引数据、embedding向量索引数据;所述embedding向量数据库的构建方法,包括:在embedding向量数据库中建立近邻集合索引数据;所述近邻集合索引数据中包括按embedding向量哈希键值对的关键字key对应存储的多个近邻集合,所述近邻集合中包括有相似的embedding向量哈希键值;在embedding向量数据库中建立基础索引数据;所述基础索引数据中包括按照主题对应存储的多个主题集合,所述主题集合中包括多个主题相同的embedding向量哈希键值对;在embedding向量数据库中建立embedding向量索引数据;所述embedding向量索引数据中包括按主题及用户标识或内容标识存储的多个embedding向量的集合。
[0119]
在一种可选的方式中,embedding向量数据库采用embedding索引数据结构进行数据存储,所述embedding索引数据结构包括行键列以及数据存储列簇;所述近邻集合索引数据包括第一行键列及第一数据存储列簇,第一行键列包括多个第一行键信息,第一数据存储列簇包括与所述第一行键信息对应的至少一个近邻集合,近邻集合中存储有embedding向量哈希键值对;第一行键信息根据embedding向量哈希键值对的关键字key生成;所述基础索引数据包括第二行键列及第二数据存储列簇,所述第二行键列包括多个第二行键信息,所述第二数据存储列簇包括与所述第二行键信息对应的embedding向量哈希键值对;所述第二行键信息根据主题生成;所述embedding向量索引数据包括第三行键列及第三数据存储列簇,所述第三行键列包括多个第三行键信息,第三数据存储列簇包括与第三行键信息对应的embedding向量,所述第三行键信息根据主题及用户标识或内容标识生成。
[0120]
在一种可选的方式中,所述方法还包括:获取待传入的用户行为数据;确定所述待传入的用户行为数据的embedding向量哈希键值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项;确定所述待传入的用户行为数据的embedding向量哈希键
值对的关键字key、主题、以及主题及用户标识或内容标识中的一项或多项在所述索引数据库中搜索匹配的目标行键列,所述目标行键列为所述第一行键列、所述第二行键列及所述第三行键列中的任一个或多个;根据所述目标行键列及对应的目标数据存储列簇确定所述待传入的用户行为数据是否为重复数据;所述目标行键列存储有关键字key、主题、以及主题及用户标识或内容标识中的一项或多项,所述目标数据存储列簇存储有与所述目标行键列对应的embedding向量;当所述待传入的用户行为数据为重复数据时,删除所述待传入的用户行为数据;当所述待传入的用户行为数据不为重复数据中时,将所述待传入的用户行为数据添加至所述embedding向量数据库中。
[0121]
在一种可选的方式中,所述在embedding向量数据库中建立近邻集合索引数据之后,包括:根据所述近邻集合索引数据构建索引结构;所述索引结构包括一级索引、一级索引对象、二级索引、二级索引对象;所述一级索引包括所述embedding向量哈希键值对的关键字key的索引截断,所述一级索引对象为包含所述索引截断的所述embedding向量哈希键值对中的局部敏感哈希值;所述二级索引为所述embedding向量哈希键值对中的局部敏感哈希值,所述二级索引对象为所述embedding向量哈希键值对。
[0122]
在一种可选的方式中,所述在embedding向量数据库中建立基础索引数据,包括:根据局部敏感哈希值大小对所有的embedding向量哈希键值对进行排序;对排序后的embedding向量哈希键值对按照预设的存储阈值顺序存储在多个主题集合中;所述预设的存储阈值为各个主题集合存储embedding向量哈希键值对数量的阈值。
[0123]
在一种可选的方式中,根据所述目标embedding向量哈希键值对在预先构建的embedding向量数据库中查询,得到与所述待匹配数据匹配的embedding向量哈希键值对列表,包括:将所述目标embedding向量哈希键值对中的目标局部敏感哈希值,在所述近邻集合索引数据中进行索引,确定与所述目标局部敏感哈希值匹配的目标近邻集合;计算所述目标局部敏感哈希值与所述目标近邻集合中的各个embedding向量哈希键值对中的局部敏感哈希值的相似度;根据所述相似度,确定所述embedding向量哈希键值对列表。
[0124]
本发明实施例通过将embedding向量映射成局部哈希值,保证局部敏感性,与局部敏感哈希技术建立深度的转换和结合,将不仅限于静态文本或一维空间,对于高维物体或事物可做进一步的降维表征,从而在获取查询请求后,将查询请求中的待匹配数据处理为目标embedding向量,根据目标embedding向量生成目标局部敏感哈希值,根据目标局部敏感哈希值在预先构建的embedding向量数据库中查询,得到与待匹配数据匹配的embedding向量哈希键值对列表,其中,预先构建的embedding向量数据库中包括预存的多个embedding向量哈希键值对,目标embedding向量哈希键值对为多个embedding向量哈希键值对中的任一个,embedding向量哈希键值对中包括embedding向量的局部敏感哈希值以及embedding向量,最终根据embedding向量哈希键值对列表生成推荐结果,从而有效提高了近邻数据推荐的效率。
[0125]
进一步地,通过建立索引数据及进行特殊的分裂排序,在待去重的数据入库时,结合多级索引的构建使得全局数据动态规则地不断移动,使得数据入库完成则已同步完成精确去重的增量计算,且这一过程是增量累加而非每次的全量计算,使得构建索引过程高效,并且精确去重值可实时查询,在查询时不存在计算过程,与数据量完全无关,进一步提高了数据处理效率。
[0126]
本发明实施例提供一种数据推荐装置,用于执行上述数据推荐方法。
[0127]
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使计算设备执行上述任意方法实施例中的数据推荐方法。
[0128]
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的数据推荐方法。
[0129]
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0130]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0131]
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
[0132]
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0133]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献