1.一种输入中包含错误信息场景下的文档检索方法,其特征在于,包括如下步骤:
步骤1,通过拼写错误、顺序替换、停用词删除和同义替换技术,对原始的查询文本进行攻击,生成一个包含错误信息的查询文本,以扩充数据集;
步骤2,对生成的包含错误信息的查询文本进行预处理,检测其文本单词个数,并在其文本中随机插入MASK特殊字符;
步骤3,将数据集中的不包含特殊字符的原始查询文本,插入了特殊字符的包含错误的查询文本以及原始查询和插入了特殊字符的包含错误的查询所对应的文档文本,即用于回答查询的一串文字表示,输入到文档检索网络进行训练,获得文档检索模型;
所述文档检索网络包括用于将输入的文本转换为字符嵌入序列的字符编码模块、用于将字符嵌入序列转换为单词级向量表示的CharacterCNN模块、用于将单词级向量表转换为上下文特征表示的Highway层和用于进一步学习上下文特征中包含的隐藏信息的Transformer编码器层;
输入的原始查询文本通过文档检索网络得到原始查询的文本词向量,输入的扩充及预处理后的包含错误的查询文本通过文档检索网络得到包含错误信息的查询文本词向量,输入的文档文本通过文档检索网络得到文档的文本词向量,然后采用交叉熵和余弦相似度作为损失函数以加快模型训练的收敛速度;
通过原始查询的文本词向量与文档的文本词向量进行矩阵相乘得到原始查询与文档之间的相似度分布,通过 损失函数计算相似度分布与真实标签的交叉熵损失,公式如下:;
其中ore表示的是原始查询的文本词向量与文档的文本词向量通过矩阵相乘得到的相似度分布矩阵,下标pos表示的是相似度分布矩阵中,原始查询与真实标签对应的位置,下标neg表示的是相似度分布中,除原始查询与真实标签对应的位置的其他位置;
通过包含错误信息的查询的文本词向量与文档的文本词向量进行矩阵相乘得到包含错误信息的查询与文档之间的相似度分布,通过 损失函数计算相似度分布与真实标签的交叉熵损失,公式如下:;
其中mae表示的是包含错误信息的查询的文本词向量与文档的文本词向量通过矩阵相乘得到的相似度分布矩阵,下标pos表示的是相似度分布矩阵中,原始查询与真实标签对应的位置,下标neg表示的是相似度分布中,除原始查询与真实标签对应的位置的其他位置;
通过 损失函数计算原始查询的文本词向量与包含错误信息的查询词向量之间的相似度损失,公式如下:;
其中A是原始查询的文本词向量,B是包含错误信息的查询词向量;
最终的损失函数是由上述三个损失函数的值进行加权求和得到的;
步骤4,使用训练好的文档检索模型进行结果测试,当输入一个查询时输出一系列与该查询最相关的文档。
2.根据权利要求1所述的一种输入中包含错误信息场景下的文档检索方法,其特征在于:步骤2中插入MASK特殊字符的个数为文本中单词个数的20%,且至少为1个。
3.根据权利要求1所述的一种输入中包含错误信息场景下的文档检索方法,其特征在于:所述字符编码模块的具体处理过程如下;
首先,构建包括字符和特殊标记在内的词汇表,然后对所有单词进行字符级分割,而插入的特殊标记不会进行分割,将每一个字符转化为一个one‑hot向量,如果字符不在字符表内就用全零向量表示以保证输入的维度一致,然后将one‑hot向量拼接成一个矩阵,表示为字符嵌入序列。
4.根据权利要求1所述的一种输入中包含错误信息场景下的文档检索方法,其特征在于:所述CharacterCNN模块用于将字符嵌入序列转换为单词级的向量表示,CharacterCNN模块由7个不同的一维卷积层组成,卷积核的大小和卷积核的个数为:[1,32],[2,32],[3,
64],[4,128],[5,256],[6,512],[7,1024];一维卷积层是通过滑动窗口和卷积核对输入特征进行局部特征提取,然后通过ReLU激活函数增加非线性,然后每个卷积层的输出在字符序列中进行最大池化,并且与单词中其他字符经过卷积层的输出进行连接以将字符级向量合成为单词级向量表示。
5.根据权利要求1所述的一种输入中包含错误信息场景下的文档检索方法,其特征在于:所述Highway层的公式如下:;
其中H是一个全连接层加一个ReLU激活函数,T是一个全连接层加一个sigmoid激活函数, 和 是可学习的权重矩阵,x是输入向量,y是输出向量;
其中,所述文档检索网络中包括两个Highway层。
6.根据权利要求1所述的一种输入中包含错误信息场景下的文档检索方法,其特征在于:首先,将单词级上下文特征表示通过组合拼接为整个查询文本的上下文特征表示,然后再输入到Transformer编码器层,其中,所述文档检索网络中包括12个预设的Transformer编码器层;所述Transformer编码器层包含两个子层:多头自注意力和前馈神经网络,在多头自注意力子层中,会将嵌入向量分成多个头,每个头都进行自注意力操作,具体来说,计算输入序列中每个词与其他词之间的相关性,并根据相对性对输入序列进行加权平均,然后预设的编码器将多个头的输出拼接起来,并进行线性变换;在前馈神经网络子层中,预设的编码器将多头自注意力子层的输出送入一个全连接层和一个激活函数ReLU,再送入另一个全连接层,这相当于对每个词进行非线性变换;输入的上下文特征表示在经过每一个Transformer层后,还会进行残差连接和层归一化以提高模型的稳定性和收敛速度;残差连接就是将子层的输入和输出相加,层归一化就是将每个词向量沿着维度方向进行标准化,使其均值为0,方差为1。
7.根据权利要求1所述的一种输入中包含错误信息场景下的文档检索方法,其特征在于:步骤4的具体实现方式为:当接收到用户输入的一个查询时,无论是否包含错误信息,将查询文本通过步骤3的四部分操作后,得到最终的查询文本向量,为节省检索时的时间消耗,所有的文档采用离线编码的方法,具体来说,当文档检索模型训练完成后,对所有的文档直接进行编码并且直接保存文档的向量表示,查询文本经过文档检索模型生成最终的向量表示后,与磁盘上保存的文档向量进行相似度计算,并且文档检索模型将最终返回一系列与该查询最相关的文档。