1.一种基于多视角对比学习的文本检索方法,其特征在于:包括如下步骤:S1:对于一个有标签的语料库;
S11:通过BM25算法召回和查询相关的top‑k文档,在剔除查询对应的地面真值文档后,构建BM25负样本;
S12:利用BM25负样本通过InfoNCE损失训练一个基于BERT的双编码器,然后使用训练好的双编码器在语料库中检索最相关的top‑k文档,在剔除地面真值后构建神经负样本;
通过S12得到训练实例集T,T中的每个训练实例由一组文本对组成,q1表示第一个查询,表示第一个查询对应的正样本文档, 表示第一个查询对应的负样本文档,qn表示第n个查询, 表示第n个查询对应的正样本文档, 表示第n个查询对应的负样本文档;
S2:构建和训练MvCR整体框架:包括Cross‑type对比学习模块和Inner‑type对比学习模块,其中Cross‑type对比学习模块包括两个独立的稠密编码器EP(·)和EQ(·),采用两个预训练好的BERTq和BERTp分别对应的初始化EP(·)和EQ(·);
克隆BERTq为 克隆BERTp为 和 构成Inner‑type对比学习模块,中提供查询和文档的正样本表示的编码器;
对于BERTq将来自BERT最后一层的[CLS]向量对应的查询的整体表示cq,对于BERTp将来自BERT最后一层的[CLS]向量对应的文档的整体表示cp,并进行一次Cross类型的对比学习,其优化目标是让查询与正样本的距离更接近,与负样本的距离更远,形式上定义为Cross_Loss1:cq=BERTq(query)[cls] (2)cp=BERTp(document)[cls] (3)其中sim(·)函数计算两个向量之间的点积,n为负样本的个数;
S21:Inner‑type对比学习模块:
和 在训练的时候被固定;
采用一个额外的平均池化层对 和 的最后一层输出取平均值生成查询和文档的正样本表示,同时采用In‑batch负样本以无监督的对比学习方式训练;
对于查询对比学习模块BERTq和 Inner‑type的优化定义为Inner Loss1:对于文档对比学习模块BERTp和 定义Inner Loss2为:在公式(7)和公式(8)中,N为批次的大小,sim(·)函数计算两个向量之间的点积;
S22:Cross‑type对比学习模块:
希望 与cq具有相同的正负文档样本,也就是 和 数量相同,优化目标为让嵌入空间中的 与 的距离更接近, 与 的距离更远,优化目标被形式化为Cross_Loss2: 与两者与原文档表示具有相同的查询,即cq,优化目标是让 与cq的距离更加接近,同时让与cq距离更远,优化目标被形式化为Cross_Loss3:其中,sim(·)函数计算两个向量之间的点积,n为负样本的个数;
S23:联合上述损失,采用线性组合定义最终的训练损失函数:将S1得到的训练实例集T中的训练实例输入MvCR整体框架,当损失Losstotal不再变化时,得到训练好的MvCR整体框架;
S3:对于一个新查询,将该新查询输入训练好的MvCR整体框架,训练好的MvCR整体框架输出在语料库中检索的最相关的top‑k’文档。
2.如权利要求1所述的一种基于多视角对比学习的文本检索方法,其特征在于:所述S2训练MvCR的整体框架时,考虑采用动态权重去组合Losstotal:其中,α表示Cross_Loss1的权重,β表示Cross_Loss2的权重,γ表示Cross_Loss3的权重,δ表示Inner Loss1的权重,ε表示Inner Loss2的权重。