基于对比学习的多模态数据特征表达方法、装置及介质与流程

文档序号:27510697发布日期:2021-11-22 17:18阅读:493来源:国知局
基于对比学习的多模态数据特征表达方法、装置及介质与流程

1.本发明涉及人工智能及数字医疗技术领域,尤其是涉及一种基于对比学习的多模态数据特征表达方法、装置、存储介质及计算机设备。


背景技术:

2.随着人工智能领域的不断发展,多模态学习已成为近年来不断研究的热点之一。模态(modality)指的是信息的来源或者形式,例如,一种信息可以通过语音、视频、文字、图像等多种形式进行表达,那么,该信息的每一种形式的表达都可以称为该信息的一种模态,该信息也称为多模态信息。在此基础上,多模态学习(multimodal machine learning,mmml)指的是通过机器学习的方法实现处理和理解多源模态信息的能力,例如,目前较为热门的研究方向是图像、视频、音频、语义之间的多模态学习。
3.在现有技术中,多模态数据处理模型大多是基于深度学习的方法训练得到的,但是在模型的训练过程中,同时建立多个模态之间的关系难度较大,并且,收集同一样本的所有相关模态信息也是极其困难的,可利用样本很少,因此,这种基于深度学习的多模态数据处理模型在实际中很难应用,且训练难度非常大,相应的,基于深度学习得到的多模态数据特征表达通常也很难达到预期。


技术实现要素:

4.有鉴于此,本技术提供了一种基于对比学习的多模态数据特征表达方法、装置、存储介质及计算机设备,主要目的在于解决现有的多模态数据处理模型样本不足、训练难度大以及特征表达不准确的技术问题。
5.根据本发明的第一个方面,提供了一种基于对比学习的多模态数据特征表达方法,该方法包括:
6.获取多个多模态数据样本,并对多个多模态数据样本进行预处理,得到多个多模态数据样本的特征向量组合;
7.将多个多模态数据样本的特征向量组合中的至少一个特征向量替换为与原有的特征向量不同的特征向量,得到多个多模态数据样本的对比特征向量组合;
8.将多个多模态数据样本的特征向量组合和对比特征向量组合分别输入到初始化的多层编码解码模型中,得到多个多模态数据样本的正向特征表达和负向特征表达;
9.根据多个多模态数据样本的正向特征表达和负向特征表达,计算多个多模态数据样本的损失函数,并利用损失函数对多层编码解码模型的参数进行训练,得到多模态数据处理模型;
10.获取待处理的多模态数据,并将待处理的多模态数据输入到多模态数据处理模型中,得到待处理的多模态数据的特征表达。
11.根据本发明的第二个方面,提供了一种基于对比学习的多模态数据特征表达装置,该装置包括:
12.样本预处理模块,用于获取多个多模态数据样本,并对多个多模态数据样本进行预处理,得到多个多模态数据样本的特征向量组合;
13.样本替换模块,用于将多个多模态数据样本的特征向量组合中的至少一个特征向量替换为与原有的特征向量不同的特征向量,得到多个多模态数据样本的对比特征向量组合;
14.样本处理模块,用于将多个多模态数据样本的特征向量组合和对比特征向量组合分别输入到初始化的多层编码解码模型中,得到多个多模态数据样本的正向特征表达和负向特征表达;
15.模型训练模块,用于根据多个多模态数据样本的正向特征表达和负向特征表达,计算多个多模态数据样本的损失函数,并利用损失函数对多层编码解码模型的参数进行训练,得到多模态数据处理模型;
16.数据处理模块,用于获取待处理的多模态数据,并将待处理的多模态数据输入到多模态数据处理模型中,得到待处理的多模态数据的特征表达。
17.根据本发明的第三个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述基于对比学习的多模态数据特征表达方法。
18.根据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于对比学习的多模态数据特征表达方法。
19.本发明提供的一种基于对比学习的多模态数据特征表达方法、装置、存储介质及计算机设备,通过将原始样本解码得到的正向特征表达和替换了特征向量的负向特征表达进行对比,基于对比学习的思想弥补了多模态数据处理模型训练过程中数据量不足的问题。并且,上述多模态数据处理模型的训练过程不需要任何标签信息,属于无监督学习中的自监督方式,大幅消减了人工干预的强度,降低了构建多模态数据样本的成本,极大程度地提高了样本利用率。此外,上述方法还能够缓解目前主流方法在处理多种模态数据时的瓶颈,所得到的模型通用性较强,输出的多模态数据的特征表达更为准确,可以较为容易的迁移到多模态数据的分类和回归等下游任务中。
20.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
21.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
22.图1示出了本发明实施例提供的一种基于对比学习的多模态数据特征表达方法的流程示意图;
23.图2示出了本发明实施例提供的一种多模态数据样本的特征向量组合的结构示意图;
24.图3示出了本发明实施例提供的一种多模态数据样本的对比特征向量组合的结构示意图;
25.图4示出了本发明实施例提供的一种基于对比学习的多模态数据特征表达装置的结构示意图。
具体实施方式
26.下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
27.多模态数据的特征表达是多模态数据处理过程中的一个非常重要的环节。通过多模态数据的特征表达,可以对多模态数据进行信息检索、信息分类和数据回归等各项处理操作,如在智慧医疗领域,借助于多模态数据的特征表达,可以对病人各模态的医疗数据,如医学图像数据、病人语音数据和文字病历数据进行综合性的特征表达,从而便于后续对病人的多模态医疗数据进行准确的分类。相较于传统的单模态数据的特征表达,多模态的特征表达要复杂很多,传统的单模态数据的特征表达仅需要将信息表示为计算机可以处理的数值向量或者进一步抽象为更高层的特征向量即可,而多模态数据的特征表达则需要通过多模态之间的互补性,剔除掉模态间的冗余性,从而学习到更好的特征表示。
28.目前,基于深度学习的多模态特征表达方法仅能较好的应用于双模态领域,按照双模态数据的处理方法直接处理多模态数据是不可行的。一方面,受限于建立多个模态之间关系的难度较大,有时甚至无法找到各个模态之间较好的对应关系,另一方面,受限于对于同一条样本来说,收集所有相关模态的信息是极其困难的,可利用的样本很少。这里,仅以包含图片信息、文本信息和语音信息的三模态数据为例,受限于模型训练过程中只能使用同时具备三个模态的数据,模型仅能通过小规模的数据训练完成。可以设想,当真实场景所需要的的模态信息不断增加时,将会给模型的训练带来极大的难度,并且当模态数量不断增加时,如何合理有效的利用多个模态的信息进行互补也是尤为重要的,简单的多模态数据处理方式很难满足实际需求。
29.基于此,在一个实施例中,如图1所示,提供了一种基于对比学习的多模态数据特征表达方法,以该方法应用于服务器等计算机设备为例进行说明,其中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。上述方法包括以下步骤:
30.101、获取多个多模态数据样本,并对多个多模态数据样本进行预处理,得到多个多模态数据样本的特征向量组合。
31.其中,模态(modality)指的是信息的来源或者形式。例如,一种数据可以分别用视频、文本和语音进行表达,那么这三种形式的表达就是该数据的三种模态。再如,一种数据可以分别用两种不同语言进行表达,那么这两种语音的表达也可以是该数据的两种模态。或者,在不同情况下采集到的多个数据集,亦可认为是数据的多种不同的模态。在此基础上,多模态数据即指的是由多个模态组成的数据,例如,在智慧医疗领域,多模态数据可以指由病人的医学图像数据、病人语音数据和文字病历数据数据组成的医疗数据。
32.具体的,在训练多模态数据处理模型之前,可以首先获取多个多模态数据样本。对于获取到的每个多模态数据样本,计算机设备可以对每个样本中的每一个模态采用适合的预处理方式,将每个多模态数据样本的每个模态转换为各个模态对应的特征向量,然后再
将每个样本的各个特征向量进行拼接,得到每个多模态数据样本的特征向量组合。例如,一个多模态数据样本有三个模态,分别为文本模态、图像模态和语音模态,那么,对于该多模态数据样本就可以分别用文本预处理方式,图像预处理方式和语音预处理方式对该样本的三个模态分别进行预处理,以得到该样本的三个模态的特征向量,然后再将该样本的文本模态特征向量、图像模态特征向量和语音模态特征向量进行拼接,即可得到该样本的特征向量组合,其中,上述示例中多模态数据样本的预处理方式可以参照以下内容实现。
33.首先,对于该多模态数据样本的文本模态,可以通过分词操作将文本转换成字或者词的序列,再通过词向量模型将每个字或者词转成成特征向量。例如,“我今天很高兴”可以转换为“我”“今天”“很”“高兴”序列,通过词向量模型,可以将序列中的每个字或者词转换为一个特征向量,在本例中,文本模态的数据可转换为4个特征向量,分别对应“我”“今天”“很”“高兴”,这四个向量均为文本模态的特征向量,且每个特征向量均有一定的维度,例如,文本模态的每个向量的维度可以为300维。
34.其次,对于该多模态数据样本的图像模态,可以通过vgg模型或者resnet模型,提取出图片的指定层后的特征层(feature map)作为其特征向量,假设特征层为[7,7,2048]的特征向量,通过特征维度转换操作进行变换,可以得到[49,2048]的特征向量,即可以得到维度为2048的49个特征向量。在本例中,指定层一搬是最后一层或者倒数第二层这种经过深度学习后的特征层,特征层的三个维度可以分别代表图像模态的r、g、b三个颜色通道,通过将三维特征向量转换为二维特征向量可以便于后续的特征向量的拼接,而对于单色图像,如ct图像来说,一般可得到1个图像模态的特征向量,向量的维度也可以是2048维。
[0035]
最后,对于该多模态数据样本的语音模态,可以先设置语音采样频率,例如每隔25ms采样一次,滑动窗口10ms,然后再通过mfcc操作进行特征提取,得到若干个39维的特征向量,其中,39维特征向量中包含了语音的音色音调等特征,在本例中,语音模态的特征向量的数量与采样的数量相关。
[0036]
进一步的,对于上述多模态数据样本的预处理结果,可以将该样本的各模态的特征向量变换为统一维度的特征向量后再进行拼接,以得到该多模态数据样本的特征向量组合。例如,可以将上例中的若干个300维文本特征向量、若干个2048维图像特征向量和若干个39维语音特征向量均转换为统一的n维特征向量后再进行拼接,以得到该多模态数据样本的特征向量组合。可以理解的是,多模态数据样本的预处理方式并不限于上述内容,可以根据模态的形式和实际情况做具体选择。
[0037]
102、将多个多模态数据样本的特征向量组合中的至少一个特征向量替换为与原有的特征向量不同的特征向量,得到多个多模态数据样本的对比特征向量组合。
[0038]
具体的,对于预处理后的多个多模态数据样本的特征向量组合,计算机设备可以采用预设的策略或规则,将每个多模态数据样本的特征向量组合中的至少一个特征向量替换为不属于该样本的其他特征向量,以得到每个多模态数据样本的至少一个对比特征向量组合。在本实施例中,多模态数据样本的特征向量组合中被替换的特征向量可以是其他样本的相同模态的特征向量,也可以是在原有的特征向量基础上更改了部分信息的特征向量。此外,每个多模态数据样本的对比特征向量组合的数量可以为一个或多个,可以理解的是,多模态数据样本的对比特征向量组合越多,对比学习的效果越佳。
[0039]
需要说明的是,多模态数据样本可替换的特征向量可以为1个,也可以为多个,但
不能是多模态数据样本中的全部特征向量,否则就失去了对比学习的意义。此外,替换的特征向量可以是一个模态的全部特征向量,也可以是一个模态的部分特征向量。例如,可以将一个样本中的文本模态“我今天很高兴”替换为“我今天头很痛”。在实际应用中,可以在模型训练的初始阶段先替换掉一个模态的全部特征向量,然后在模型训练到一定程度后再替换掉一个模态的部分特征向量,以此来提高模型的准确度。
[0040]
103、将多个多模态数据样本的特征向量组合和对比特征向量组合分别输入到初始化的多层编码解码模型中,得到多个多模态数据样本的正向特征表达和负向特征表达。
[0041]
在本实施例中,正向特征表达和负向特征表达的生成方法通过自监督学习方法中的对比学习方法实现。在自监督学习任务中,输入数据同时被用作数据源和目标数据。对比学习的核心思想是:将正样本与原始样本的距离拉近,将正样本和负样本的距离拉远,为了实现这一目的,就需要构建多组正样本和负样本进行对比学习,从而使模型能够分辨出哪些样本是正样本,哪些样本是负样本。在本实施例中,多模态数据样本的特征向量组合在经过模型处理后得到的正向特征表达可以代表原始样本的信息,因此,正向特征表达可以作为原始样本的正样本;而对比特征向量组合在经过模型处理后得到的负向特征表达被替换了部分特征向量,无法再代表原始样本的信息,因此,负向特征表达可以作为原始样本的负样本。可以理解的是,一个原始样本的负样本的数量越多,对比学习的效果越佳。
[0042]
具体的,在得到多个多模态数据样本的特征向量组合和对比特征向量组合之后,计算机设备可以逐一的将每个多模态数据样本的特征向量组合输入到初始化的多层编码解码模型中,以得到每个多模态数据样本的正向特征表达,然后再将每个多模态数据样本的对比特征向量组合输入到同样初始化的多层编码解码模型中,得到每个多模态数据样本的负向特征表达。通过这种方式,可以得到模型训练过程中每个多模态数据样本的正样本和负样本,其中,每个多模态数据样本的正样本为对应样本的正向特征表达,每个多模态数据样本的负样本为对应样本的负向特征表达。例如,如图2和图3所示,图2为某样本的特征向量组合,图3为替换了模态3和模态4的对比特征向量组合,其中,图2和图3中的multi

layer transformer指的是多层编码解码模型,进一步的,通过将图2所示的特征向量组合和图3所示的对比特征向量组合分别输入到多层编码解码模型中,即可以得到该样本的正向特征表达和负向特征表达,即得到该样本的正样本和负样本。可以理解的是,初始化的多层编码解码模型的模型参数是随机的,因此,此阶段输出的正向特征表达和负向特征表达均无法代表多模态数据样本的的特征表达,只能作为模型训练的样本。
[0043]
104、根据多个多模态数据样本的正向特征表达和负向特征表达,计算多个多模态数据样本的损失函数,并利用损失函数对多层编码解码模型的参数进行训练,得到多模态数据处理模型。
[0044]
具体的,在得到多个多模态数据样本的正向特征表达和负向特征表达之后,可以利用这两种正负样本,分别计算出每个多模态数据样本的损失函数以及所有多模态数据样本的损失函数之和,然后采用一定的模型参数训练策略对上述初始化的多层编码解码模型中的参数进行不断更新,以使所有多模态数据样本的损失函数之和达到一个设定值,并最终得到一个多模态数据处理模型。在本实施例中,通过多个多模态数据样本的正向特征表达和负向特征表达计算多模态数据样本的损失函数的方式可以根据实际情况进行选择,本实施例在此不做具体限定。
[0045]
105、获取待处理的多模态数据,并将待处理的多模态数据输入到多模态数据处理模型中,得到待处理的多模态数据的特征表达。
[0046]
具体的,在训练得到多模态数据处理模型之后,计算机设备可以随时通过数据接口获取待处理的多模态数据,并将该待处理的多模态数据输入到训练后的多模态数据处理模型中,得到该多模态数据的特征表达。在本实施例中,在得到待处理的多模态数据之后,计算机设备还可以对该多模态数据重复执行上述步骤101至步骤104,以此增加多模态数据样本的数据量并优化多模态数据处理模型的参数,从而提高多模态数据处理模型参数的准确度。在一个可选的实施例中,待处理的多模态数据具体可以为多模态医疗数据,通过将多模态医疗数据输入到上述多模态数据处理模型中,可以得到多模态医疗数据的特征表达,通过这种方式,可以提高多模态医疗数据得特征表达准确度。
[0047]
本实施例提供的基于对比学习的多模态数据特征表达方法,通过将原始样本解码得到的正向特征表达和替换了特征向量的负向特征表达进行对比,基于对比学习的思想弥补了多模态数据处理模型训练过程中数据量不足的问题。并且,上述多模态数据处理模型的训练过程不需要任何标签信息,属于无监督学习中的自监督方式,大幅消减了人工干预的强度,降低了构建多模态数据样本的成本,极大程度地提高了样本利用率。此外,上述方法还能够缓解目前主流方法在处理多种模态数据时的瓶颈,所得到的模型通用性较强,输出的多模态数据的特征表达更为准确,可以较为容易的迁移到多模态数据的分类和回归等下游任务中。
[0048]
在一个实施例中,上述步骤101可以通过以下方法实现:首先获取多个多模态数据样本,并对每个多模态数据样本的每个模态数据采用适合的方式进行数据转换,得到每个多模态数据样本的每个模态数据的特征向量,然后在每个多模态数据样本的每个模态数据的特征向量之间进行分隔,并对分隔后的特征向量进行拼接,以得到每个多模态数据样本的特征向量组合。在本实施例中,参照图2和图3,在对多模态数据样本的各模态进行预处理后,可以得到各样本所有模态的特征向量,此时,可以以[sep]为分隔符对各个模态的特征向量进行分隔,并在每个样本的开始处拼接[cls]分隔符,然后再将分隔后的各个模态的特征向量拼接在一起,得到各样本的特征向量组合,其中,[sep]分隔符可以将样本中各模态的特征向量分隔开,[cls]分隔符可以便于后续特征向量组合的提取。本实施例通过分隔和拼接的方式得到多模态数据样本的特征向量组合,可以有效的提高特征向量组合的生成效率和提取效率。
[0049]
在一个实施例中,上述步骤102可以通过以下方法实现:计算机设备可以对每个多模态数据样本的特征向量组合中的至少一个特征向量进行至少一次随机替换,以得到每个多模态数据样本的至少一个对比特征向量组合。即对于每个多模态数据样本来说,均可以进行至少一次的特征向量替换,且每次均可以随机选择至少一个特征向量,并将选择出的特征向量替换为与原有的特征向量不同的特征向量,以得到一个对比特征向量组合,此外,被替换的特征向量可以来自于其他任意样本,也可以改编自自身样本原有的特征向量。例如,参照图2和图3,图2为某样本拼接后的特征向量组合,图3为该样本替换了模态3和模态4后得到的对比特征向量组合,对于该样本来说,还可以只替换掉该样本的模态1,以得到该样本的另一个对比特征向量组合。在本实施例中,多模态数据样本的对比特征向量组合越多,对比学习的效果越佳,但是考虑到模型训练的训练难度,对比特征向量组合需要控制在
一个合理的范围内,例如,可以控制在3至10个左右。
[0050]
在一个实施例中,上述步骤103可以通过以下方法实现:首先,计算机设备可以将每个多模态数据样本的特征向量组合依次输入到初始化的多层编码解码模型中,得到每个多模态数据样本的正向特征表达,然后再将每个多模态数据样本的至少一个对比特征向量组合依次输入到同样初始化的多层编码解码模型中,得到每个多模态数据样本的至少一个负向特征表达。在本实施例中,对于每个多模态数据样本来说,由于正向特征表达是由多模态数据样本的特征向量组合转换得到的,因此,正向特征表达可以作为该多模态数据样本的正样本使用,而负向特征表达是由多模态数据样本替换了特征向量的对比特征向量组合转换得到的,因此,负向特征表达可以作为该多模态数据样本的负样本使用。例如,参照图2和图3,图2中的特征向量组合输入到初始化的多层编码解码模型中后,取出的以[cls]分隔符对应位置的向量即为该样本的正向特征表达,这里简记为h0,由于图2中的特征向量组合中的所有模态的特征向量均来自于同一个样本,因此,h0可作为模型训练的正样本。进一步的,图3中的对比特征向量组合输入到初始化的多层编码解码模型中后,取出的以[cls]分隔符对应位置的向量为该样本的负向特征表达,这里简记为h11,由于图3中的对比特征向量组合中的部分模态的特征向量并不是来自于同一个样本,因此,h11可作为模型训练的负样本,同样的,经过随机多次的对原始样本中的模态替换为与原有的特征向量不同的特征向量,并将替换后的对比特征向量组合输入到原始的多层编码解码模型中后,还可以依次得到h12,h13,h14,h15等多个负向特征表达作为模型训练的负样本。本实施例采用对比学习的思想弥补了多模态数据处理模型训练过程中数据量不足的问题,巧妙的利用了其他样本的模态信息来和自身模态信息进行对比,从理论上讲,在不考虑资源和时间的情况下,对比的情形越多,最终模型性能越好。
[0051]
在一个实施例中,上述步骤104可以通过以下方法实现:首先将每个多模态数据样本的正向特征表达和至少一个负向特征表达转换为一个归一化多维向量,然后利用多个多模态数据样本的归一化多维向量,计算各个多模态数据样本的损失函数和多个多模态数据样本的损失函数之和,最后通过预设的参数调整策略,利用各个多模态数据样本的损失函数,对多层编码解码模型的参数进行更新,得到多模态数据处理模型。进一步的,上述方法中将正向特征表达和负向特征表达转换为归一化多维向量的方法可以通过以下方式实现:首先将每个多模态数据样本的正向特征表达和至少一个负向特征表达进行拼接,然后通过全连接层转换得到每个多模态数据样本的多维向量,最后通过归一化指数函数,将每个多模态数据样本的多维向量转换为向量元素和为1的归一化多维向量。本实施例通过将正向特征表达和负向特征表达转换为向量元素和为1的归一化多维向量,可以便于损失函数的计算,从而降低模型训练的难度。
[0052]
为了清楚说明上述实施例中步骤104的具体实现过程,这里接上一个实施例中的示例进行具体的解释说明。在本例中,在得到多模态数据样本的正向特征表达h0,以及负向特征表达h11,h12,h13,h14,h15之后,计算机设备可以将上述6个向量进行拼接,并通过全连接层将这六个向量转换为一个6维向量s=[s0,s1,s2,s3,s4,s5],然后将6维向量s通过数量比例转换函数转成向量元素和为1的向量ss,其中,向量ss中的每个向量元素是一个概率值,转换后的向量ss与向量s均是对应的,即向量ss也包含6个向量元素,但是,与向量s中的向量元素不同的是,向量ss中的每个向量元素都是一个比例数值,并反应了每个向量元
素占全体向量元素的比值。在得到向量ss之后,通过计算每个样本的损失函数以及所有样本的损失函数之和,并采用一定的参数调整策略,即可对模型的参数进行不断的更新,最终得到一个训练好的多模态数据处理模型,在本例中,损失函数的公式可以采用loss=

logss[0]=

logs0,所有样本的损失函数为l=∑
i
li,其中i表示样本数量,l表示所有样本loss之和。可以理解的是,上述损失函数只作为本实施例的一种举例,并不作为本实施例的一种限定,在模型的实际训练过程中,损失函数的设计方式可以根据实际情况进行选择,本实施例在此不做具体限定。
[0053]
在一个实施例中,上述实施例中对多层编码解码模型的参数进行更新的方法可以通过以下方式实现:计算机设备可以采用随机梯度下降算法和深度学习框架,对多层编码解码模型的模型参数进行不断更新,以使各个多模态数据样本的损失函数之和达到预设损失值后,得到多模态数据处理模型。进一步的,在后续获取到新的多模态数据样本之后,还可以对新获取的多模态数据样本重新进行预处理,并采用对比学习的方式扩充新样本的正向特征表达和负向特征表达,以此增加来多模态数据样本的数据量并优化多模态数据处理模型的参数,从而提高多模态数据处理模型参数的准确度。在其他实施例中,计算机设备也可以采用其他参数调整策略和模型框架对模型的参数进行更新,本实施例在此不做具体限定。
[0054]
进一步的,作为上述各实施例具体实施方式的细化和扩展,为了完整说明本实施例的实施过程,本实施例提供了一种多模态数据处理方法,该方法包括以下步骤:1、采集多个多模态数据样本,并对各样本的各模态数据分别进行预处理,得到所有样本各模态数据对应的特征向量,例如,某样本数据共包含3个模态,分别为文本模态、图像模态和语音模态,那么经过各自模态的预处理之后,可以分别得到该样本的文本特征向量、图像特征向量和语音特征向量;2、将各样本中所有模态数据的特征向量以[sep]为分隔符,起始处以[cls]为分隔符进行拼接,得到各样本的特征向量组合,例如,对于步骤1中的样本来说,拼接后可得到该样本3种特征向量的特征向量组合;3、将各样本的特征向量组合输入到初始的多层transformer(编码解码)模型中,得到各样本的多模态特征向量h0,其中,h0可作为模型训练的正样本;4、以各样本的特征向量组合作为原始样本,多次随机地将其他样本的模态数据对应的特征向量更换至原始样本中,并将更换了模态数据的特征向量组合重新输入至transformer模型中,得到多个特征向量h1至hn,其中,h1至hn可作为模型的负样本;更换原始样本,重复上述操作,得到所有样本的更换了模态特征的特征向量h1至hn;5、将各样本的h0至hn进行拼接,并通过全连接层转换得到各样本的六维向量s=[s0,s1,s2,s3,s4,s5];6、通过softmax函数将各样本的六维向量s转换成向量元素和为1的向量ss,并利用向量ss计算各样本的损失函数l,以及计算各样本的损失函数之和l;7、通过随机梯度下降算法优化和pytorch框架,更新transformer模型的参数,使模型的损失函数之和l越来越小,最终得到训练后的多模态数据处理模型。8、获取待处理的多模态数据,并将待处理的多模态数据输入到多模态数据处理模型中,得到待处理的多模态数据的特征表达。
[0055]
本方案与现有的多模态特征表示方法相比,巧妙地利用某一样本自身的模态信息与其他样本的模态信息进行对比,根据对比学习的思想解决了现有技术中对多模态模型的训练时多模态样本量少的问题。并且,采用无监督学习中的自监督方式可以使得训练的过程不需要标签信息,从而减少了人工干预,降低了样本构建的难度,提高了样本利用率。
[0056]
进一步的,作为图1所示方法的具体实现,本实施例提供了一种基于对比学习的多模态数据特征表达装置,如图4所示,该装置包括:样本预处理模块31、样本替换模块32、样本处理模块33、模型训练模块34、数据处理模块35。
[0057]
样本预处理模块31,可用于获取多个多模态数据样本,并对多个多模态数据样本进行预处理,得到多个多模态数据样本的特征向量组合;
[0058]
样本替换模块32,可用于将多个多模态数据样本的特征向量组合中的至少一个特征向量替换为与原有的特征向量不同的特征向量,得到多个多模态数据样本的对比特征向量组合;
[0059]
样本处理模块33,可用于将多个多模态数据样本的特征向量组合和对比特征向量组合分别输入到初始化的多层编码解码模型中,得到多个多模态数据样本的正向特征表达和负向特征表达;
[0060]
模型训练模块34,可用于根据多个多模态数据样本的正向特征表达和负向特征表达,计算多个多模态数据样本的损失函数,并利用损失函数对多层编码解码模型的参数进行训练,得到多模态数据处理模型;
[0061]
数据处理模块35,可用于获取待处理的多模态数据,并将待处理的多模态数据输入到多模态数据处理模型中,得到待处理的多模态数据的特征表达。
[0062]
在具体的应用场景中,所述样本预处理模块31,具体可用于获取多个多模态数据样本,并对每个多模态数据样本的每个模态数据进行数据转换,得到多个多模态数据样本的每个模态数据的特征向量,在多个多模态数据样本的每个模态数据的特征向量之间进行分隔,并对分隔后的特征向量进行拼接,得到多个多模态数据样本的特征向量组合。
[0063]
在具体的应用场景中,所述样本替换模块32,具体可用于对于每个多模态数据样本,将多模态数据样本的特征向量组合中的至少一个特征向量至少一次的随机替换为与原有的特征向量不同的特征向量,得到多个多模态数据样本的至少一个对比特征向量组合。
[0064]
在具体的应用场景中,所述样本处理模块33,具体可用于将多个多模态数据样本的特征向量组合输入到初始化的多层编码解码模型中,得到多个多模态数据样本的正向特征表达,将多个多模态数据样本的至少一个对比特征向量组合分别输入到初始化的多层编码解码模型中,得到多个多模态数据样本的至少一个负向特征表达。
[0065]
在具体的应用场景中,所述模型训练模块34,具体可用于将每个多模态数据样本的正向特征表达和至少一个负向特征表达转换为一个归一化多维向量,利用多个多模态数据样本的归一化多维向量,计算各个多模态数据样本的损失函数,通过预设的参数调整策略,利用各个多模态数据样本的损失函数,对多层编码解码模型的参数进行更新,得到多模态数据处理模型。
[0066]
在具体的应用场景中,所述模型训练模块34,具体可用于将每个多模态数据样本的正向特征表达和至少一个负向特征表达进行拼接,通过全连接层转换得到每个多模态数据样本的多维向量,通过归一化指数函数,将每个多模态数据样本的多维向量转换为向量元素和为1的归一化多维向量。
[0067]
在具体的应用场景中,所述模型训练模块34,具体可用于采用随机梯度下降算法和深度学习框架,对多层编码解码模型的模型参数进行更新,以使各个多模态数据样本的损失函数之和达到预设损失值后,得到多模态数据处理模型。
[0068]
需要说明的是,本实施例提供的一种基于对比学习的多模态数据特征表达装置所涉及各功能单元的其它相应描述,可以参考图1中的对应描述,在此不再赘述。
[0069]
基于上述如图1所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1所示的基于对比学习的多模态数据特征表达方法。
[0070]
基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该待识别软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
[0071]
基于上述如图1所示的方法,以及图4所示的基于对比学习的多模态数据特征表达装置实施例,为了实现上述目的,本实施例还提供了一种多模态数据的处理的实体设备,具体可以为个人计算机、服务器、智能手机、平板电脑、智能手表、或者其它网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1所示的方法。
[0072]
可选的,该实体设备还可以包括用户接口、网络接口、摄像头、射频(radio frequency,rf)电路,传感器、音频电路、wi

fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如wi

fi接口)等。
[0073]
本领域技术人员可以理解,本实施例提供的一种多模态数据的处理的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0074]
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述实体设备硬件和待识别软件资源的程序,支持信息处理程序以及其它待识别软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
[0075]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。本技术通过获取多模态数据样本,并对多模态数据样本进行预处理,得到特征向量组合,然后将特征向量组合中的至少一个特征向量替换为与原有的特征向量不同的特征向量,得到对比特征向量组合,继而将特征向量组合和对比特征向量组合分别输入到初始化的多层编码解码模型中,得到多模态数据样本的正向特征表达和负向特征表达,以及根据多模态数据样本的正向特征表达和负向特征表达,对多层编码解码模型的参数进行训练,得到多模态数据处理模型,最后获取待处理的多模态数据,并将待处理的多模态数据输入到多模态数据处理模型中,得到待处理的多模态数据的特征表达。与现有技术相比,上述方法通过对比学习的方式弥补了多模态数据处理模型训练过程中数据量不足的问题,大幅消减了人工干预的强度,降低了构建多模态数据样本的成本,极大程度地提高了样本利用率,此外,上述方法还能够缓解目前主流方法在处理多种模态数据时的瓶颈,所得到的模型通用性较强,输出的多模态数据的特征表达更为准确,可以较为容易的迁移到多模态数据的分类和回归等下游任务中。
[0076]
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或
流程并不一定是实施本技术所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0077]
上述本技术序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本技术的几个具体实施场景,但是,本技术并非局限于此,任何本领域的技术人员能思之的变化都应落入本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1