一种基于近邻图的多模态搜索方法

文档序号:1846152 发布日期:2021-11-16 浏览:3次 >En<

阅读说明:本技术 一种基于近邻图的多模态搜索方法 (Multi-modal searching method based on neighbor graph ) 是由 徐小良 吕凌威 王梦召 于 2021-10-19 设计创作,主要内容包括:本发明涉及一种基于近邻图的多模态搜索方法,先将参照数据集中每一个参照对象的各个模态数据生成特征向量,然后根据各特征向量先独立计算,再用聚集函数融合计算得到各查询对象间的融合距离,由此构建参照对象的近邻图。接着根据查询内容生成包含多个特征向量的查询向量,使用查询向量在近邻图上执行多模态搜索得到最相似的查询目标。本发明的方法通过查询融合距离而同时对对象的多个模态进行查询,并能通过调整聚集函数而改变不同模态对融合距离的影响权重,从而实现了在搜索过程中对模态重要性的灵活操控,并提高了搜索的效率和精度。(The invention relates to a multi-modal searching method based on a neighbor graph, which comprises the steps of firstly generating characteristic vectors according to modal data of each reference object in a reference data set, then independently calculating according to the characteristic vectors, and then obtaining a fusion distance between query objects through fusion calculation of an aggregation function, thereby constructing the neighbor graph of the reference objects. And then generating a query vector containing a plurality of feature vectors according to the query content, and performing multi-modal search on the neighbor graph by using the query vector to obtain the most similar query target. The method simultaneously inquires a plurality of modes of the object by inquiring the fusion distance, and can change the influence weight of different modes on the fusion distance by adjusting the aggregation function, thereby realizing flexible control on the importance of the modes in the searching process and improving the searching efficiency and precision.)

一种基于近邻图的多模态搜索方法

技术领域

本发明属于搜索技术领域,具体涉及一种基于近邻图的多模态搜索方法。

背景技术

随着互联网的不断发展,各种应用不断地产生并最终聚集了海量的文本、图片、音频和视频数据,数据的多模态性和海量性给信息检索提出了巨大的挑战,同时随着人工智能技术的研究与进步,各种模态数据都可以通过人工智能来提取出特征并转化为特征向量用于进行各种相似度计算及其延伸出的各种应用,因此多模态搜索方法的研究非常重要。

当前多模态搜索主要采用两种方法:第一种是对多模态数据中的每个模态进行单模态搜索,然后再对搜索结果进行归并的搜索方法,显而易见这种方法的效率会随着模态数以及数据量的增加而显著降低;第二种是通过学习的方法将各个模态的数据一起映射至一个统一的多模态向量空间然后再进行搜索,这种方法的缺点是映射模型训练好后无法在搜索阶段自由控制某个模态的重要性,不够灵活且召回率很低。

发明内容

基于现有技术中存在的上述缺点和不足,本发明的目的之一是至少解决现有技术中存在的上述问题之一或多个,换言之,本发明的目的之一是提供满足前述需求之一或多个的一种基于近邻图的多模态搜索方法。

为了达到上述发明目的,本发明采用以下技术方案:

一种基于近邻图的多模态搜索方法,包括步骤:

S1,获取参照数据集,参照数据集中包含多个参照对象,每个参照对象均包含多种模态数据;每个参照对象的模态数据种类相同;

S2,为每个模态数据生成对应的特征向量,每个参照对象的所有特征向量构成一个参照对象向量;

S3,计算各个参照对象间各同种模态数据的特征向量距离;

S4,使用聚集函数将各个参照对象中所有特征向量距离融合,得到各个参照对象向量间的融合距离,聚集函数中包括不同特征向量的权重;

S5,根据各参照对象向量间的融合距离生成参照对象的近邻图;

S6,根据查询内容生成一个查询对象,查询对象包含与参照对象相同种类的多种模态数据,为查询对象的每个模态数据生成对应的特征向量;

S7,使用查询对象的各个特征向量在近邻图上查询得到最接近的参照对象。

作为优选方案,步骤S3具体为:使用相似度计算得到各个参照对象间各同种模态数据的特征向量距离。

作为优选方案,步骤S4中,融合距离的计算公式为:

;

其中,为参照对象向量e 1e 2的第k个特征向量间的距离,g(·)为聚集函数。

作为进一步优选的方案,根据场景需求变化调整聚集函数g(·)对不同种模态数据的特征向量距离的权重。

作为优选方案,步骤S5具体包括:

S5.1,选取一个对象向量e i ,选取与其融合距离最小的C个对象向量作为候选集,设定角度阈值α及连边上限K

S5.2,从候选集中选取一个与e i 融合距离最小的对象向量与其连接;

S5.3,以由近到远的顺序依次从候选集中选取对象向量e j 尝试与对象向量e i 连边,仅在 e i 的连边与e i 的现有所有连边夹角大于α时才能够成功连边,直到对象向量e i 的连边数量达到K或尝试完候选集中的全部对象向量;

S5.4,判断是否仍有对象向量没在步骤S5.1中被选取,若是则返回步骤S5.1,若否则完成近邻图G(V, E)的生成,其中V为顶点集,一个顶点代表一个对象向量,E为边集。

作为优选方案,步骤S7具体包括:

S7.1,设近邻图的顶点集为V,设查询向量为q,选取若干顶点构成查询起始顶点集合BV

S7.2,从B中选取与q融合距离最小的未访问顶点xV,获取x的邻居顶点集N(x) =(y 1, y 2, …, y l ),其中y l x的第l个邻居顶点,lx的邻居个数;标记x为已访问顶点;

S7.3,计算N(x)中每个邻居顶点与q的融合距离,并用距离q更近的邻居顶点取代B中距离q最远的顶点;

S7.4,判断B中是否存在未被访问过的顶点,若是则返回步骤S7.2,若否则结束查询并返回B作为查询结果,B中的顶点即为最接近的参照对象;

上述查询过程中查询向量与对象向量e i 的融合距离d(q, e i )为

其中,为查询向量q和对象向量e i 的第k个特征向量间的距离,f(·)为聚集函数。

作为进一步优选的方案,根据场景需求变化调整聚集函数f(·)对不同种模态数据的特征向量距离的权重。

本发明与现有技术相比,有益效果是:

本发明的方法能同时对多模态进行搜索,并在搜索时通过调整聚集函数改变不同模态的权重,还具有更高的搜索效率。

附图说明

图1是本发明实施例的一种基于近邻图的多模态搜索方法的流程图;

图2是本发明实施例的一种基于近邻图的多模态搜索方法的举例流程图。

具体实施方式

为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

实施例:

本实施例提供的一种基于近邻图的多模态搜索方法,其流程图如图1所示,本实施例中以基于近邻图对菜谱进行多模态搜索举例,进一步举例说明的流程图如图2所示。

首先进行步骤S1,获取参照数据集,参照数据集中包含多个参照对象,每个参照对象均包含多种模态数据;每个参照对象的模态数据种类相同。

然后进行步骤S2,为每个模态数据生成对应的特征向量,每个参照对象的所有特征向量构成一个参照对象向量。其中特征向量的生成使用预模型进行,比如对于原料数据及料理过程数据这类文本数据可采用现有的BERT模型进行训练并提取特征转变为原料特征向量和料理过程特征向量,对于成品图片数据采用ResNet-50进行训练并提取特征转变为成品图片特征向量。

在本实施例中,参照数据集即为食谱数据集,将食谱数据集中每一个对象,即每一个食谱数据所包含的原料数据、料理过程数据、成品图片数据分别提取特征转变为原料特征向量、料理过程特征向量、成品图片特征向量,一个食谱数据的原料特征向量、料理过程特征向量、成品图片特征向量合称为一个食谱向量,所有食谱向量构成食谱向量集。

食谱数据集表示为:O = {o i i = 1, 2, …, N};

其中o i 为食谱数据集O中的第i个食谱数据,N为食谱数据集中食谱数据个数。

食谱数据o i 表示为:

为食谱数据o i 的原料数据,为食谱数据o i 的料理过程数据,为食谱数据o i 的成品图片数据。

食谱向量集S表示为:

S = {e i i = 1, 2, …, N};

其中e i 为食谱向量集中的第i个食谱向量,N为食谱向量集中食谱向量个数。

食谱向量e i 表示为:

为食谱向量e i 的原料向量,为食谱向量e i 的料理过程向量,为食谱向量e i 的成品图片向量。

然后进行步骤S3,计算各个参照对象间各同种模态数据的特征向量距离。

在本实施例中,通过独立的相似度计算得出各个食谱数据的原料向量、料理过程向量及成品图片向量的距离,相似度计算可以使用l2距离计算,对于向量X(x 1, x 2, …,x n )和向量Y(y 1, y 2, …, y n )的l2距离为(∑(x i -y i )2)1/2

计算出特征向量距离后,进行步骤S4,使用聚集函数将各个参照对象中所有特征向量距离融合,得到各个参照对象向量间的融合距离。

在本实施例中,具体为通过一个聚集函数来融合原料向量、料理过程向量及成品图片向量间的距离得到食谱向量间的融合距离,融合距离的计算公式为:

;其中,为食谱向量e 1e 2的原料向量的距离,为食谱向量e 1e 2的料理过程向量的距离,为食谱向量e 1e 2的成品图片向量的距离g(·)为聚集函数,用于融合原料向量距离、料理过程向量距离和成品图片向量距离得到融合距离。

上述聚集函数可以为g(·) = w 1*d 1+ … +w k *d k + … +w m *d m ,其中w k 为第k个特征向量的权重,d k 为第k个特征向量的距离。具体到本实施例中则为g(·) = w 1*d 1+w 2 *d 2 +w 3 *d 3 w 1即为原料向量的权重,d 1即为,其他参数同理。

作为上述方案的改进,还可以根据场景需求变化调整聚集函数g(·),使聚集函数对不同种模态数据的特征向量距离具有不同的权重,从而更倾向于某一模态。

融合距离计算之后,进行步骤S5,根据各参照对象向量间的融合距离生成参照对象的近邻图;

进一步地,近邻图的生成过程可以为:

S5.1,选取一个食谱向量即对象向量e i ,选取与其融合距离最小的C个对象向量作为候选集,设定一个角度阈值α及连边上限K

S5.2,从候选集中选取一个与e i 融合距离最小的对象向量与其连接;

S5.3,以由近到远的顺序依次从候选集中选取对象向量e j 尝试与对象向量e i 连边,仅在e i e j 的连边与e i 现有的所有连边之间夹角大于α时才能够成功连边,直到尝试完候选集中的全部对象向量;该步骤使得对象向量e i 能够连接与其融合距离d(e i , e j )较近且能保证连边多样性的K个邻居;

S5.4,判断是否仍有对象向量没在步骤S5.1中被选取,若是则返回步骤S5.1,若否则完成近邻图G(V, E)的生成,其中V为顶点集,一个顶点代表一个对象向量,E为边集,是对象向量间所连边的集合。

当参照数据集,也即本实施例中的食谱数据集的近邻图生成后,即可使用该近邻图进行查询,首先进行步骤S6:根据查询内容生成一个查询对象,查询对象包含与参照对象相同种类的多种模态数据,为查询对象的每个模态数据生成对应的特征向量。

具体到本实施例中的食谱查询,则为输入一个食谱查询对象,将食谱查询对象所包含的所包含的原料数据、料理过程数据、成品图片数据分别提取特征转变为原料向量、料理过程向量、成品图片向量,一个食谱查询对象的原料向量、料理过程向量、成品图片向量合称为一个食谱查询向量。

查询向量及其各个特征向量生成完成后,即可进行步骤S7,使用查询对象的各个特征向量在近邻图上查询得到最接近的参照对象。

具体而言,步骤S7包括:

S7.1,设近邻图的顶点集为V,设查询向量为q,选取若干顶点构成查询起始顶点集合BV

S7.2,从B中选取与q融合距离最小的未访问顶点xV,标记x为已访问顶点;获取x的邻居顶点集N(x) = (y 1, y 2, …, y l ),其中y l x的第l个邻居顶点,lx的邻居个数;

S7.3,计算N(x)中每个邻居顶点与q的融合距离,并用距离q更近的邻居顶点取代B中距离q最远的顶点;具体为依次选取N(x)中的邻居顶点y,计算yq的融合距离,若y相比B中距离q最远的顶点z更近,则将y加入B中,将z移出B

S7.4,判断B中是否存在未被访问过的顶点,若是则返回步骤S7.2,若否则结束查询并返回B作为查询结果;由于连边上限K的限制,最终B中会被限制为K个顶点,即为距离查询向量q最接近的K个顶点,也就是本次查询最接近的K个参照对象。

上述查询过程中查询向量与对象向量e i 的融合距离d(q, e i )为:

其中,为食谱查询向量q和食谱向量e i 的原料向量的距离,为食谱查询向量q和食谱向量e i 的料理过程向量的距离,为食谱查询向量q和食谱向量e i 的成品图片向量的距离。f(·)为聚集函数,用于融合原料向量距离、料理过程向量距离和成品图片向量距离得到融合距离,可以根据客户需求来灵活设置聚集函数,用来调整原料数据、料理过程数据或成品图片数据的重要性,从而获得需要的结果。

另外需要额外说明的是,上述实施例的方法在两个阶段分别对聚集函数g(·)和f(·)进行了调整,调整聚集函数g(·)是从宏观上考虑某个模态的重要性来突出该模态的权重,而在查询时调整聚集函数f(·)则可以根据用户需要自由调整对某个模态的倾向性。

上述方法通过查询融合距离而同时对对象的多个模态进行查询,并能通过调整聚集函数而改变不同模态对融合距离的影响权重,从而实现了在搜索过程中对模态重要性的灵活操控,和提高了搜索的效率和精度。

应当说明的是,以上仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用户搜索方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!