1.一种金融知识问答的文本交互匹配方法,其特征在于,该方法包括如下步骤:S1、构建问题对知识库:从金融知识问答平台爬取问题对,并对问题对进行预处理,初步构建问题对知识库;
S2、构建问题对匹配模型训练数据集:对于每个问题,在问题对知识库中至少有一个与该问题相匹配的标准问题,将标准问题与该问题构建训练正例;将除标准问题以外的问题与该问题构建训练负例;
S3、构建问题对匹配模型:利用注意力机制的文本编码模型构建问题对匹配模型,具体步骤如下:S301、构建字符映射转换表;
S302、构建输入层:输入层包括两个输入,从问题对知识库中分别获取question1、question2,将其形式化为:(question1,question2);再根据步骤S301中得到的字符映射转换表将输入数据中的字符转化为数字表示;
S303、构建字符向量映射层;
S304、构建注意力机制的文本编码模型;具体步骤如下:
S30401、将步骤S303处理后的输入文本进行编码和语义提取;
S30402、使用双向长短期记忆网络BiLSTM对文本进行编码;
S30403、编码结果作为注意力机制编码层输入,进行二次编码及特征提取,具体公式如下:其中,i表示相应词向量在句子中的相对位置;pi为句子question1中每个字符的相应向量表示; 表示经过BiLSTM编码后的question1句子向量; 表示再次经过BiLSTM编码后的question1句子向量; 表示对 和 二者进行连接,作为注意力编码层的输入;
表示使用注意力机制编码的句子向量,即为句子编码的最终向量表示;使用vectorquestion1、vectorquestion2来具体表示question1、question2编码结果的最终向量;
S305、构建文本交互匹配层;具体步骤如下:
S30501、将步骤S304得到的question1、question2最终向量表示为vectorquestion1、vectorquestion2;
S30502、针对步骤S30501中得到的两个向量分别按照如下公式计算两个向量之间的差异:其中,abs_m表示向量vectorquestion1与其均值作差以及vectorquestion2与其均值作差后逐元素之间求差取绝对值;add_m表示向量vectorquestion1与vectorquestion2的均值作差以及vectorquestion2与vectorquestion1的均值作差后逐元素之间求和取绝对值;
S30503、将步骤S30502中得到的结果进行连接,作为问题对的相似度的全面表征,公式如下;
con=[abs_m,add_m];
其中,con表示将步骤S30502中的两个结果进行连接后得到的相似度表征;
S30504、将步骤S30503中得到的相似度表征向量经过全连接层进行解码,采用sigmoid函数进行相似度计算,得到处于[0,1]之间的相似度表示ypred,通过相似度的值判别问题对相似程度;
S4、训练问题对匹配模型和意图相同的问题选择:在步骤S2所得的训练集上对步骤S3构建的问题对匹配模型进行训练;具体步骤如下:S401、构建损失函数:为了解决在匹配过程中出现的过拟合问题,使模型在优化时将注意力更集中于难以分类的样本,利用单位阶跃函数来修正均方误差损失函数,公式如下:得到新的均方误差损失函数,公式如下:
其中,ypred为根据步骤S305得到的相似度计算结果;ytrue为两个句子相似与否的真实表+示,取值为0或1;m表示阈值,m∈(0.5,1);n为数据集大小,n∈N;
S402、构建优化函数:使用Adam算法作为模型的优化函数,学习率设置为0.002,超参数使用Keras中的默认值即可;
S403、问题对选择:将一个新的问题与问题对知识库中的所有候选的意图相同的问题组成输入样本;再分别利用步骤S3训练完成的问题对匹配模型,计算问题与候选意图相同的问题之间相似度的数值;最后从所有结果中选取相似度值最高的一组作为新问题最有可能匹配的问题并将该问题推送给用户。
2.根据权利要求1所述的金融知识问答的文本交互匹配方法,其特征在于,所述S1中构建问题对知识库的具体步骤如下:S101、利用爬虫技术,从金融知识问答平台爬取问题对,问答社区均采用Web形式进行展示,利用Scrapy工具获取意图相似的问题集合,构建问题对知识库;
S102、对问题对知识库进行预处理,对句子进行断字处理:将金融问答知识库中的每个问题对,以汉字字符为基本单位,进行断字处理,每个字之间用空格分开,保留文本中所有内容,文本中所有内容包括数字、标点及特殊字符。
3.根据权利要求1所述的金融知识问答的文本交互匹配方法,其特征在于,所述步骤S2中构建问题对匹配模型训练数据集的具体步骤如下:S201、构建训练正例:将问题与其意图相同的问题进行组合,可构建正例;正例形式化为:(question1,question2,1);
其中,question1表示问题1,question2表示问题2,1表示正例,即问题1和问题2两者意图相同;
S202、构建训练负例:选中一个问题q1,再从问题对知识库中随机选择一个与问题q1不同的问题q2,将q1与q2组合,构建负例;负例形式化为:(question1,question2,0);
其中,question1指问题q1,question2指问题q2,0表示负例,即问题q1和问题q2二者意图不同;
S203、构建训练数据集:将步骤S201和步骤S202所得的全部问答的正例样本和负例样本组合在一起,并随机打乱顺序构成最终的训练数据集;其中,正例和负例均包含三个维度,即question1、question2、1或0,前两个维度根据实际包含的词语构建二维的张量表示,第三个维度构建一个数值类型表示相似度;
所述步骤S301中构建字符映射转换表的具体为:根据步骤S102断字处理后的问题对知识库,构建字符表;并将字符表中的每个字符映射为唯一的数字表示,按照字符加入字符表的顺序从1开始依次递增,据此构建字符映射转换表;
所述步骤S303中构建字符向量映射层的具体为:用户指定的字符向量的维度大小为embedding_dim,步骤S301中获取的字符表大小为len(tokenizer.word_index),使用[‑1,
1]的均匀分布定义(len(tokenizer.word_index)+1)×embedding_dim的二维矩阵并将其作为模型的字符向量映射层的权重矩阵;其中,每一行对应问题对知识库中单个字符的向量表示。
4.一种金融知识问答的文本交互匹配装置,其特征在于,该装置包括,问题对知识库构建单元,用于利用爬虫技术,从互联网上的金融知识问答平台爬取问题对,再进行问题对知识库预处理,进行问题对的句子断字处理,构建问题对知识库;
问题对匹配模型训练数据集生成单元,用于根据问题对知识库构建训练正例和训练负例,再利用训练正例和训练负例构建训练数据;
问题对匹配模型构建单元,用于利用注意力机制的文本编码模型构建问题对匹配模型;
问题对匹配模型训练单元,用于在问题对匹配模型训练数据集生成单元所得的训练集上对问题对匹配模型构建单元构建的问题对匹配模型进行训练并选择出意图相同的问题;
其中,问题对匹配模型构建单元包括,
字符映射转换表构建单元,用于将问题对知识库中的所有字符构建为字符表,并将字符表中的每个字符映射为唯一的数字表示,按照字符加入字符表的顺序从1开始依次递增,据此构建字符映射转换表;
输入层构建单元,用于从问题对中获取输入数据,分别获取question1、question2,将其形式化为:(question1、question2);
字符向量映射层构建单元,用于构建并存储字符映射转换表中每个字符的向量表示;
文本交互匹配层构建单元,用于基于注意力机制的神经网络针对输入的文本进行编码和语义提取,双向长短期记忆网络对文本进行编码;同时使用注意力机制对BiLSTM层输出进行编码,得到语义表征信息;其中,文本交互匹配层构建单元的工作过程具体如下:S30401、将步骤S303处理后的输入文本进行编码和语义提取;
S30402、使用双向长短期记忆网络BiLSTM对文本进行编码;
S30403、编码结果作为注意力机制编码层输入,进行二次编码及特征提取,具体公式如下:其中,i表示相应词向量在句子中的相对位置;pi为句子question1中每个字符的相应向量表示; 表示经过BiLSTM编码后的question1句子向量; 表示再次经过BiLSTM编码后的question1句子向量; 表示对 和 二者进行连接,作为注意力编码层的输入;
表示使用注意力机制编码的句子向量,即为句子编码的最终向量表示;使用vectorquestion1、vectorquestion2来具体表示question1、question2编码结果的最终向量;
相似度匹配构建单元,用于将句子对的编码结果进行相似度匹配,区分问题之间是否匹配;相似度匹配构建单元的工作过程具体如下:S30501、将步骤S304得到的question1、question2最终向量表示为vectorquestion1、vectorquestion2;
S30502、针对步骤S30501中得到的两个向量分别按照如下公式计算两个向量之间的差异:其中,abs_m表示向量vectorquestion1与其均值作差以及vectorquestion2与其均值作差后逐元素之间求差取绝对值;add_m表示向量vectorquestion1与vectorquestion2的均值作差以及vectorquestion2与vectorquestion1的均值作差后逐元素之间求和取绝对值;
S30503、将步骤S30502中得到的结果进行连接,作为问题对的相似度的全面表征,公式如下;
con=[abs_m,add_m];
其中,con表示将步骤S30502中的两个结果进行连接后得到的相似度表征;
S30504、将步骤S30503中得到的相似度表征向量经过全连接层进行解码,采用sigmoid函数进行相似度计算,得到处于[0,1]之间的相似度表示ypred,通过相似度的值判别问题对相似程度;
问题对匹配模型训练单元的工作过程具体如下:
S401、构建损失函数:为了解决在匹配过程中出现的过拟合问题,使模型在优化时将注意力更集中于难以分类的样本,利用单位阶跃函数来修正均方误差损失函数,公式如下:得到新的均方误差损失函数,公式如下:
其中,ypred为根据步骤S305得到的相似度计算结果;ytrue为两个句子相似与否的真实表+示,取值为0或1;m表示阈值,m∈(0.5,1);n为数据集大小,n∈N;
S402、构建优化函数:使用Adam算法作为模型的优化函数,学习率设置为0.002,超参数使用Keras中的默认值即可;
S403、问题对选择:将一个新的问题与问题对知识库中的所有候选的意图相同的问题组成输入样本;再分别利用步骤S3训练完成的问题对匹配模型,计算问题与候选意图相同的问题之间相似度的数值;最后从所有结果中选取相似度值最高的一组作为新问题最有可能匹配的问题并将该问题推送给用户。
5.根据权利要求4所述的金融知识问答的文本交互匹配装置,其特征在于,所述问题对知识库构建单元包括,爬虫单元,用于从互联网上抓取金融知识问答平台中的内容,将结果保存为问题对的形式;
爬虫数据处理单元,用于将爬虫获取的问题对组合构建训练正例和训练负例,并将问题对的句子进行断字处理,构建问题对知识库;
所述问题对匹配模型训练数据集生成单元包括,
训练正例构建单元,用于将问题对意图相似的进行组合,构建为训练正例;
训练负例构建单元,用于从问题对知识库选中一个问题q1,再从问题对知识库中随机选择一个与问题q1意图不同的问题q2,将q1与q2组合,构建训练负例;
训练数据集构建单元,用于将训练正例构建单元和训练负例构建单元所得的全部问题对的正例样本、负例样本组合在一起,并随机打乱顺序构成最终的训练数据集;
所述问题对匹配模型训练单元包括,
损失函数构建单元,用于计算问题1和问题2的相似度之间的误差;
优化函数构建单元,用于调整模型中的参数,减小模型训练中问题1与问题2的相似度与真实相似度之间误差;
意图相同的问题选择单元,用于处理新的问题时,从问题对知识库中使用训练好的模型选择与新问题意图相同的问题对。
6.一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行权利要求1‑3中任一项所述的金融知识问答的文本交互匹配方法的步骤。
7.一种电子设备,其特征在于,所述电子设备包括:
权利要求6所述的存储介质;以及
处理器,用于执行所述存储介质中的指令。