System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Flink的流式向量搜索方法及装置、系统制造方法及图纸_技高网
当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于Flink的流式向量搜索方法及装置、系统制造方法及图纸

技术编号:40647356 阅读:12 留言:0更新日期:2024-03-13 21:26
本发明专利技术公开了一种基于Flink的流式向量搜索方法及装置、系统,利用流式处理引擎的状态管理机制实现了大规模向量数据的实时索引和查询。将插入和查询两种不同类型的输入均作为向量流输入到Flink中进行处理,再将两个流合并为一个流,实现了两个流在同一个Flink子任务中进行处理,减少了两个流交互所需的网络传输开销;其次,将向量索引数据存储于专门的状态区中,而其插入和查询是在状态区外的JVM内存中执行,同时保证了向量索引数据在状态区中的持久化存储和在JVM内存中的高速插入和查询;最后,通过偏离时间域值,实现了精准的延时容忍度控制,从而可以满足不同场景下的不同延时需求。

【技术实现步骤摘要】

本专利技术属于实时商品推荐领域,尤其涉及一种基于flink的流式向量搜索方法及装置、系统。


技术介绍

1、实时商品推荐是一种基于用户个性化需求和实时反馈的推荐系统,通过分析用户的历史行为、兴趣爱好等信息以及商品的属性、标签、描述等信息,预测用户可能感兴趣的商品,并向用户提供个性化的推荐服务。其目的是提高用户的购物体验,增加用户的购买率和忠诚度,同时也能够提高电商平台的销售额和盈利能力。与传统的商品推荐不同,实时商品推荐强调实时性和个性化,能够更加准确地满足用户的购物需求,提供更加优质的购物体验。实时商品推荐系统通常采用机器学习、数据挖掘等技术,通过分析大量的用户行为数据和商品信息,构建模型对用户的兴趣进行预测,并提供个性化的商品推荐。为了实现实时推荐,推荐系统还需要具备高效的数据处理和实时流处理的能力,能够快速处理用户的行为数据并生成实时推荐结果。而向量搜索作为一种高效的相似性匹配方法,能够快速找到与用户偏好相似的商品。

2、向量搜索是一种基于向量相似度的检索技术,它在不同领域的信息检索中发挥着重要作用。该技术通过将数据转化为向量表示,并计算向量之间的相似度来进行搜索和排序。在向量搜索中,数据可以是文本、图像、音频、视频等形式。常用的方法是使用深度学习模型提取特征,并将其表示为高维向量。向量搜索在多个领域都有广泛应用。在电子商务中,基于向量搜索的推荐系统可以根据用户的兴趣和行为,为其提供个性化的商品推荐。在社交媒体中,可以通过向量搜索找到与用户兴趣相关的内容。


技术实现思路

1、针对现有流式向量搜索方法的短缺,本申请实施例的目的是提供一种基于flink的流式向量搜索方法及装置、系统,服务于实时商品推荐,该方法基于开源的通用流式计算引擎flink,提供低延迟、高吞吐量、性能可扩展的流式向量搜索。

2、根据本申请实施例的第一方面,提供一种基于flink的流式向量搜索方法,包括:

3、从实时商品推荐系统的上游流式处理引擎或消息队列中采集实时流入的商品表征向量,包括插入商品向量流和查询商品向量流,其中插入商品向量流表示新增的商品,查询商品向量流表示实时的用户访问,每个流均由无限产生的三元组构成,每个三元组由唯一标识符、时间戳和固定维度的向量组成;

4、将所述插入商品向量流和查询商品向量流合并为一个商品向量流,由无限产生的四元组构成,一个四元组中包括一个对应的三元组和用于表示向量类型的标识;

5、将所述商品向量流,根据向量的邻近性,利用局部敏感哈希方法构建分区索引,使得所述商品向量流中的向量分别进入对应分区中;

6、在每个独立分区中,通过flink状态,构建向量搜索索引,将每个分区的具有插入标志的向量按顺序插入到向量搜索索引当中;

7、在每个独立分区中,从flink状态中取出向量搜索索引,对当前分区中每个具有搜索标志的向量按顺序进行索引查询,得到当前分区的搜索结果;

8、对于所有的搜索结果,根据每个搜索结果对应的四元组的唯一标识符进行聚合,利用优先队列保留预定数量的查询结果,更新当前时间戳为查询结束时间戳;

9、将聚合后的搜索结果组合成搜索结果流,流入商品推荐系统的下游流式处理引擎或消息队列。

10、进一步地,所述插入商品向量流为,其中插入商品向量,为插入商品向量的唯一表示符,为插入商品向量流入的时间戳,为固定维数的插入商品向量值;查询商品向量流为,其中,为查询商品向量的唯一表示符,为查询商品向量流入的时间戳,为固定维数的查询商品向量值。

11、进一步地,将所述商品向量流,根据向量的邻近性,利用局部敏感哈希方法构建分区索引,使得所述商品向量流中的向量分别进入对应分区中,包括:

12、预设m个哈希函数,作为哈希函数族,用于计算局部敏感哈希;

13、对于所述商品向量流中的每一个四元组,判断四元组中的时间戳与当前时间偏离值是否超过了预定的偏离时间阈值,若是则跳过当前四元组,并处理下一个四元组;

14、对于每个满足偏离时间阈值的四元组,为商品向量的唯一标识符,为商品向量的时间戳,为商品向量值,为用于区分插入或查询的标识符,若的,则基于预设的哈希函数对进行哈希转换,计算其哈希码,根据哈希码的值,将该向量映射到某一个哈希桶中,即,其中表示桶编号,桶的总数等于当前分区的总数量;

15、对于每个满足偏离时间阈值的四元组,若的,则同样对进行哈希转换,计算其哈希码,根据哈希码的值,将其映射到一个已有的哈希桶中,若哈希桶不存在则创建一个新的哈希桶,并映射到该哈希桶中。

16、进一步地,在每个独立分区中,通过flink状态,构建向量搜索索引,将当前分区的具有插入标志的向量按顺序插入到向量索引当中,包括:

17、s31:在每个分区内部,基于flink keyedstate构建独立的状态区;

18、s32:分配用于存储状态区的内存初始大小,取出状态区数据至分配好的内存中;

19、s33:初始化向量搜索索引,为当前系统时间,根据keyedstate的键使用哈希函数计算出一个索引,根据该索引,于flink状态后端中读取状态数据,从中取出向量搜索索引,并根据索引类型和参数进行向量搜索索引的初始化;

20、s34:对于每一个分区后的四元组,为商品向量的唯一标识符,为商品向量的时间戳,为商品向量值,为用于区分插入或查询的标识符,若的,则将向量插入到索引中,若的,则跳过并处理下一个四元组;

21、s35:将向量搜索索引写回至状态区,释放所用的内存,返回步骤s32进行下一个状态区的初始状态大小分配。

22、进一步地,在每个独立分区中,从flink状态中取出向量搜索索引,对当前分区中每个具有搜索标志的向量按顺序进行索引查询,得到当前分区的搜索结果,包括:

23、取出状态区中的向量搜索索引,读取当前状态区大小;

24、根据所述向量搜索索引和当前状态区大小,分配对应大小的jvm内存,并在jvm内存中初始化向量搜索索引,为当前系统时间;

25、对于当前分区中的每一个四元组,为商品向量的唯一标识符,为商品向量的时间戳,为商品向量值,为用于区分插入或查询的标识符,若的,则跳过该四元组,若的,则在中搜索的所有邻居商品向量,作为四元组的搜索结果,为邻居商品集合。

26、根据本申请实施例的第二方面,提供一种基于flink的流式向量搜索装置,包括:

27、向量流获取模块,用于从实时商品推荐系统的上游流式处理引擎或消息队列中采集实时流入的商品表征向量,包括插入商品向量流和查询商品向量流,其中插入商品向量流表示新增的商品,查询商品向量流表示实时的用户访问,每个流均由无限产生的三元组构成,每个三元组由唯一标识符、时间戳和固定维度的向量组成;

28、向量流合并模块,用于将所述插入商品向量流和查询商品向量流合并为一个商品向量流,由无限产生的四元组构成,一个四元组中本文档来自技高网...

【技术保护点】

1.一种基于Flink的流式向量搜索方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述插入商品向量流为,其中插入商品向量,为插入商品向量的唯一表示符,为插入商品向量流入的时间戳,为固定维数的插入商品向量值;查询商品向量流为,其中,为查询商品向量的唯一表示符,为查询商品向量流入的时间戳,为固定维数的查询商品向量值。

3.根据权利要求1所述的方法,其特征在于,将所述商品向量流,根据向量的邻近性,利用局部敏感哈希方法构建分区索引,使得所述商品向量流中的向量分别进入对应分区中,包括:

4.根据权利要求1所述的方法,其特征在于,在每个独立分区中,通过Flink状态,构建向量搜索索引,将当前分区的具有插入标志的向量按顺序插入到向量索引当中,包括:

5.根据权利要求1所述的方法,其特征在于,在每个独立分区中,从Flink状态中取出向量搜索索引,对当前分区中每个具有搜索标志的向量按顺序进行索引查询,得到当前分区的搜索结果,包括:

6.一种基于Flink的流式向量搜索装置,其特征在于,包括:

7.一种基于Flink的流式向量搜索系统,其特征在于,包括:

8.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述的方法。

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-5中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种基于flink的流式向量搜索方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述插入商品向量流为,其中插入商品向量,为插入商品向量的唯一表示符,为插入商品向量流入的时间戳,为固定维数的插入商品向量值;查询商品向量流为,其中,为查询商品向量的唯一表示符,为查询商品向量流入的时间戳,为固定维数的查询商品向量值。

3.根据权利要求1所述的方法,其特征在于,将所述商品向量流,根据向量的邻近性,利用局部敏感哈希方法构建分区索引,使得所述商品向量流中的向量分别进入对应分区中,包括:

4.根据权利要求1所述的方法,其特征在于,在每个独立分区中,通过flink状态,构建向量搜索索引,将当前分区的具有插入标志的向量按顺序插入到向量...

【专利技术属性】
技术研发人员:龚盛豪高云君房子荃孙浩波陈璐
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1