发明内容
本说明书一个或多个实施例描述了一种用于语义匹配的预训练生成句子向量的方法和装置,能够适应语言搭配的各种变化。
第一方面,提供了一种用于语义匹配的预训练生成句子向量的方法,方法包括:
在第一训练语句中屏蔽预设比例的字,通过预测所述第一训练语句中被屏蔽的各字,对嵌入模型进行第一类预训练;
获取根据历史点击数据确定的由第一问句和第二问句构成的训练句子对,以及所述训练句子对对应的用于指示语义是否相似的标签;
将所述训练句子对输入经过所述第一类预训练后的所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量;
将所述句子向量输入第一分类器,通过所述第一分类器预测所述训练句子对中包括的第一问句和第二问句是否相似;
根据所述第一分类器的预测结果和所述标签,对所述嵌入模型进行第二类预训练。
在一种可能的实施方式中,所述对所述嵌入模型进行第一类预训练,包括:
在所述第一训练语句中屏蔽所述预设比例的字,将屏蔽的各字分别用其他字或符号替代,得到第二训练语句;
将所述第二训练语句输入所述嵌入模型,通过所述嵌入模型输出所述第二训练语句中被屏蔽的各字对应的字向量;
将所述第二训练语句中被屏蔽的各字对应的字向量输入第二分类器,通过所述第二分类器预测所述第一训练语句中被屏蔽的各字;
根据所述第二分类器的预测结果是否正确,对所述嵌入模型进行所述第一类预训练。
在一种可能的实施方式中,所述预设比例包括:10%。
进一步地,所述将屏蔽的各字分别用其他字或符号替代,包括:
将屏蔽的各字分别用从字典中随机选择的其他字或预设符号替代。
进一步地,所述嵌入模型包括转换器transformer模型,所述transformer模型并行处理所述第二训练语句中的所有字或符号,同时在处理过程中利用了自注意力机制。
在一种可能的实施方式中,作为正样本的所述训练句子对通过如下方式获取:
获取针对用户问句展示标问标题后的历史点击数据,所述历史点击数据用于指示用户是否点击了标问标题;
根据所述历史点击数据,将点击了同一个标问标题对应的多个用户问句加入同一用户问句集合;
获取用户问句数大于预设数值的用户问句集合;
从获取的用户问句集合中随机选择两个用户问句,作为所述第一问句和第二问句,并将其标签确定为语义相似标签,由这两个用户问句构成作为正样本的所述训练句子对。
在一种可能的实施方式中,所述第一问问为用户问句,所述第二问句为标问标题。
在一种可能的实施方式中,所述将所述训练句子对输入所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量,包括:
在所述训练句子对中增加第一占位符和第二占位符,所述第一占位符作为所述第一问句和所述第二问句之间的分割符,所述第二占位符添加在所述训练句子对前作为输出向量的占位符,将增加了占位符的所述训练句子对输入所述嵌入模型;
将所述嵌入模型输出的所述第二占位符对应的输出向量作为所述训练句子对对应的句子向量。
进一步地,所述嵌入模型包括转换器transformer模型,所述transformer模型并行处理增加了占位符的所述训练句子对中的所有字或符号,同时在处理过程中利用了自注意力机制。
第二方面,提供了一种用于语义匹配的预训练生成句子向量的装置,装置包括:
第一训练单元,用于在第一训练语句中屏蔽预设比例的字,通过预测所述第一训练语句中被屏蔽的各字,对嵌入模型进行第一类预训练;
获取单元,用于获取根据历史点击数据确定的由第一问句和第二问句构成的训练句子对,以及所述训练句子对对应的用于指示语义是否相似的标签;
向量生成单元,用于将所述获取单元获取的训练句子对输入所述第一训练单元得到的经过所述第一类预训练后的所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量;
预测单元,用于将所述向量生成单元得到的句子向量输入第一分类器,通过所述第一分类器预测所述训练句子对中包括的第一问句和第二问句是否相似;
第二训练单元,用于根据所述预测单元得到的所述第一分类器的预测结果和所述获取单元获取的标签,对所述嵌入模型进行第二类预训练。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,首先在第一训练语句中屏蔽预设比例的字,通过预测所述第一训练语句中被屏蔽的各字,对嵌入模型进行第一类预训练;然后获取根据历史点击数据确定的由第一问句和第二问句构成的训练句子对,以及所述训练句子对对应的用于指示语义是否相似的标签;接着将所述训练句子对输入经过所述第一类预训练后的所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量;再将所述句子向量输入第一分类器,通过所述第一分类器预测所述训练句子对中包括的第一问句和第二问句是否相似;最后根据所述第一分类器的预测结果和所述标签,对所述嵌入模型进行第二类预训练。由上可见,本说明书实施例,在第一类训练中,不需要切词,直接基于字即可训练嵌入模型,在第二类训练中,由于历史点击数据的数据量巨大,包含各种表达,可以充分训练嵌入模型对新词及其搭配的拟合,通过上述两类预训练从而能够在用于语义匹配的预训练生成句子向量的过程中适应语言搭配的各种变化。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及用于语义匹配的预训练生成句子向量。如图1所示,先利用预训练后的嵌入模型将句子转化为句子向量,再根据句子向量执行句子匹配任务。上述句子匹配任务具体可以为机器人客服在回答用户问句时,对用户问句和知识点标题的匹配。通常地,可以针对用户问句匹配出多个知识点标题,将这多个知识点标题展示给用户,用户会从多个知识点标题中选择出符合其述求的知识点标题,进行点击浏览。
本说明书实施例,在对嵌入模型的预训练过程中,结合了两项任务对嵌入模型进行预训练。第一项任务,为预测训练语句中被屏蔽的字,根据预测结果是否正确对嵌入模型进行训练;第二项任务,为预测训练句子对包括的两个句子是否相似,根据预测结果与该训练句子对对应的标签对嵌入模型进行训练。其中,在第一项任务中,不需要基于切词,有利于学习到新词;在第二项任务中,训练句子对及标签根据历史点击数据获取,有利于使预训练后的嵌入模型适应后续的句子匹配任务。
图2示出根据一个实施例的用于语义匹配的预训练生成句子向量的方法流程图,该方法可以基于图1所示的应用场景。如图2所示,该实施例中用于语义匹配的预训练生成句子向量的方法包括以下步骤:步骤21,在第一训练语句中屏蔽预设比例的字,通过预测所述第一训练语句中被屏蔽的各字,对嵌入模型进行第一类预训练;步骤22,获取根据历史点击数据确定的由第一问句和第二问句构成的训练句子对,以及所述训练句子对对应的用于指示语义是否相似的标签;步骤23,将所述训练句子对输入经过所述第一类预训练后的所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量;步骤24,将所述句子向量输入第一分类器,通过所述第一分类器预测所述训练句子对中包括的第一问句和第二问句是否相似;步骤25,根据所述第一分类器的预测结果和所述标签,对所述嵌入模型进行第二类预训练。下面描述以上各个步骤的具体执行方式。
首先在步骤21,在第一训练语句中屏蔽预设比例的字,通过预测所述第一训练语句中被屏蔽的各字,对嵌入模型进行第一类预训练。可以理解的是,上述预设比例可以根据经验设定,例如设定为10%或15%等,随机屏蔽(mask)第一训练语句中预设比例的字,然后将被屏蔽的字对应位置输出的最终隐层向量送入分类器(例如softmax),来预测被屏蔽的字。
在一个示例中,在所述第一训练语句中屏蔽所述预设比例的字,将屏蔽的各字分别用其他字或符号替代,得到第二训练语句;将所述第二训练语句输入所述嵌入模型,通过所述嵌入模型输出所述第二训练语句中被屏蔽的各字对应的字向量;将所述第二训练语句中被屏蔽的各字对应的字向量输入第二分类器,通过所述第二分类器预测所述第一训练语句中被屏蔽的各字;根据所述第二分类器的预测结果是否正确,对所述嵌入模型进行所述第一类预训练。
进一步地,将屏蔽的各字分别用从字典中随机选择的其他字或预设符号替代。
例如,第一训练语句为“支付宝被盗了,保险能赔吗”,随机屏蔽第一训练语句中预设比例的字,将屏蔽的各字分别用[MASK]标记替代,得到第二训练语句为“支付[MASK]被盗了,保险能[MASK]吗”。
进一步地,所述嵌入模型包括转换器transformer模型,所述transformer模型并行处理所述第二训练语句中的所有字或符号,同时在处理过程中利用了自注意力机制。
然后在步骤22,获取根据历史点击数据确定的由第一问句和第二问句构成的训练句子对,以及所述训练句子对对应的用于指示语义是否相似的标签。可以理解的是,训练句子对用作对嵌入模型进行训练的训练样本,包括正样本和负样本,正样本的标签为语义相似,负样本的标签为语义不相似。
通常地,机器人客服在回答用户问句时,会针对用户问句输出多个标问标题,用户会从这多个标问标题中选择一个标问标题进行点击浏览。历史点击数据用于指示用户是否点击了某个标问标题,可以根据历史点击数据,将用户问句和用户点击了的标问标题作为一组正样本,将用户问句和用户未点击的标问标题作为一组负样本。
此外,由于整体数据分布情况为,用户点击了的标问标题数远低于用户未点击的标问标题数,也就是说,正样本的数目远低于负样本的数目,因此本说明书实施例进行了合理的正样本扩展。
在一个示例中,作为正样本的所述训练句子对通过如下方式获取:
获取针对用户问句展示标问标题后的历史点击数据,所述历史点击数据用于指示用户是否点击了标问标题;
根据所述历史点击数据,将点击了同一个标问标题对应的多个用户问句加入同一用户问句集合;
获取用户问句数大于预设数值的用户问句集合;
从获取的用户问句集合中随机选择两个用户问句,作为所述第一问句和第二问句,并将其标签确定为语义相似标签,由这两个用户问句构成作为正样本的所述训练句子对。
图3示出根据一个实施例的正样本的生成方法流程图。参照图3,根据历史点击数据,将用户点击了同一个标问标题Ki的多个用户问句加入同一个集合Si。假设有N个标问,筛选排除|Si|<=2的集合,得到符合要求的集合L=[S1,S2,…,Sn],用以随机生成正样本,通过该方法可以大幅扩充正样本规模。
接着在步骤23,将所述训练句子对输入经过所述第一类预训练后的所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量。可以理解的是,上述句子向量体现了所述训练句子对包括的两个句子之间是否相似的信息。
在一个示例中,在所述训练句子对中增加第一占位符和第二占位符,所述第一占位符作为所述第一问句和所述第二问句之间的分割符,所述第二占位符添加在所述训练句子对前作为输出向量的占位符,将增加了占位符的所述训练句子对输入所述嵌入模型;将所述嵌入模型输出的所述第二占位符对应的输出向量作为所述训练句子对对应的句子向量。
进一步地,所述嵌入模型包括转换器transformer模型,所述transformer模型并行处理增加了占位符的所述训练句子对中的所有字或符号,同时在处理过程中利用了自注意力机制。
再在步骤24,将所述句子向量输入第一分类器,通过所述第一分类器预测所述训练句子对中包括的第一问句和第二问句是否相似。可以理解的是,所述第一分类器用户根据所述句子向量进行二分类,分类的结果包括相似或不相似。
最后在步骤25,根据所述第一分类器的预测结果和所述标签,对所述嵌入模型进行第二类预训练。可以理解的是,预测结果可能与标签一致,也可能不一致,根据二者的比较,可以对所述嵌入模型进行第二类预训练。
通过本说明书实施例提供的方法,首先在第一训练语句中屏蔽预设比例的字,通过预测所述第一训练语句中被屏蔽的各字,对嵌入模型进行第一类预训练;然后获取根据历史点击数据确定的由第一问句和第二问句构成的训练句子对,以及所述训练句子对对应的用于指示语义是否相似的标签;接着将所述训练句子对输入经过所述第一类预训练后的所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量;再将所述句子向量输入第一分类器,通过所述第一分类器预测所述训练句子对中包括的第一问句和第二问句是否相似;最后根据所述第一分类器的预测结果和所述标签,对所述嵌入模型进行第二类预训练。由上可见,本说明书实施例,在第一类训练中,不需要切词,直接基于字即可训练嵌入模型,在第二类训练中,由于历史点击数据的数据量巨大,包含各种表达,可以充分训练嵌入模型对新词及其搭配的拟合,通过上述两类预训练从而能够在对嵌入模型的预训练过程中适应语言搭配的各种变化。
图4示出根据一个实施例的用于语义匹配的预训练生成句子向量的方法示意图。参照图4,本说明书实施例主要通过BERT结合点击数据来进行嵌入模型的训练。其中,BERT是一种基于多层transformer的文本预训练方法。本说明书实施例,主要有两个任务:屏蔽字预测任务和语句相似性预测任务。屏蔽字预测任务,在原句中屏蔽10%的字,用[MASK]或字典中随机其他字替代,最后在模型对应的输出位预测该位置原本的缺失字是什么。这部分与BERT的语言模型训练方式类似。语句相似性预测任务,构造输入句子对,句子对可以由用户问句(query)和标问标题(ktitke)构成,还可以包括场景信息(scene),其中在句子对中使用占位符[SEP]及[CLS],[SEP]作为分割符,[CLS]位作为输出向量的占位符,整个网络最后的输出向量V取自[CLS]。对输出向量V通过逻辑回归进行二分类,对于候选结果,如果用户点击了句子对中的标问标题,则分到1类别,如果用户没点击句子对中的标问标题,分到0类别。
本说明书实施例,使用BERT的预训练方法,不需要切词,直接基于字即可训练嵌入模型,而点击数据量巨大,包含各种表达,可以充分训练模型对新词及其搭配的拟合。并且,由于基于点击数据的预训练模型不仅仅训练了嵌入模型,整个模型结构及匹配也得到了充分训练,因此在进行后继的匹配任务时整个网络可以直接复用。
根据另一方面的实施例,还提供一种用于语义匹配的预训练生成句子向量的装置,该装置用于执行本说明书实施例提供的用于语义匹配的预训练生成句子向量的方法。图5示出根据一个实施例的用于语义匹配的预训练生成句子向量的装置的示意性框图。如图5所示,该装置500包括:
第一训练单元51,用于在第一训练语句中屏蔽预设比例的字,通过预测所述第一训练语句中被屏蔽的各字,对嵌入模型进行第一类预训练;
获取单元52,用于获取根据历史点击数据确定的由第一问句和第二问句构成的训练句子对,以及所述训练句子对对应的用于指示语义是否相似的标签;
向量生成单元53,用于将所述获取单元52获取的训练句子对输入所述第一训练单元51得到的经过所述第一类预训练后的所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量;
预测单元54,用于将所述向量生成单元53得到的句子向量输入第一分类器,通过所述第一分类器预测所述训练句子对中包括的第一问句和第二问句是否相似;
第二训练单元55,用于根据所述预测单元54得到的所述第一分类器的预测结果和所述获取单元52获取的标签,对所述嵌入模型进行第二类预训练。
可选地,作为一个实施例,所述第一训练单元51,包括:
屏蔽子单元,用于在所述第一训练语句中屏蔽所述预设比例的字,将屏蔽的各字分别用其他字或符号替代,得到第二训练语句;
向量生成子单元,用于将所述屏蔽子单元得到的第二训练语句输入所述嵌入模型,通过所述嵌入模型输出所述第二训练语句中被屏蔽的各字对应的字向量;
预测子单元,用于将所述向量生成子单元得到的所述第二训练语句中被屏蔽的各字对应的字向量输入第二分类器,通过所述第二分类器预测所述第一训练语句中被屏蔽的各字;
训练子单元,用于根据所述预测子单元得到的所述第二分类器的预测结果是否正确,对所述嵌入模型进行所述第一类预训练。
可选地,作为一个实施例,所述预设比例包括:10%。
进一步地,所述屏蔽子单元,具体用于将屏蔽的各字分别用从字典中随机选择的其他字或预设符号替代。
进一步地,所述嵌入模型包括转换器transformer模型;所述向量生成子单元,具体通过所述transformer模型并行处理所述第二训练语句中的所有字或符号,同时在处理过程中利用了自注意力机制。
可选地,作为一个实施例,作为正样本的所述训练句子对通过如下方式获取:
获取针对用户问句展示标问标题后的历史点击数据,所述历史点击数据用于指示用户是否点击了标问标题;
根据所述历史点击数据,将点击了同一个标问标题对应的多个用户问句加入同一用户问句集合;
获取用户问句数大于预设数值的用户问句集合;
从获取的用户问句集合中随机选择两个用户问句,作为所述第一问句和第二问句,并将其标签确定为语义相似标签,由这两个用户问句构成作为正样本的所述训练句子对。
可选地,作为一个实施例,所述第一问问为用户问句,所述第二问句为标问标题。
可选地,作为一个实施例,所述向量生成单元,具体用于:
在所述训练句子对中增加第一占位符和第二占位符,所述第一占位符作为所述第一问句和所述第二问句之间的分割符,所述第二占位符添加在所述训练句子对前作为输出向量的占位符,将增加了占位符的所述训练句子对输入所述嵌入模型;
将所述嵌入模型输出的所述第二占位符对应的输出向量作为所述训练句子对对应的句子向量。
进一步地,所述嵌入模型包括转换器transformer模型;所述向量生成单元53,具体用于通过所述transformer模型并行处理增加了占位符的所述训练句子对中的所有字或符号,同时在处理过程中利用了自注意力机制。
通过本说明书实施例提供的装置,首先第一训练单元51在第一训练语句中屏蔽预设比例的字,通过预测所述第一训练语句中被屏蔽的各字,对嵌入模型进行第一类预训练;然后获取单元52获取根据历史点击数据确定的由第一问句和第二问句构成的训练句子对,以及所述训练句子对对应的用于指示语义是否相似的标签;接着向量生成单元53将所述训练句子对输入经过所述第一类预训练后的所述嵌入模型,通过所述嵌入模型输出所述训练句子对对应的句子向量;再由预测单元54将所述句子向量输入第一分类器,通过所述第一分类器预测所述训练句子对中包括的第一问句和第二问句是否相似;最后第二训练单元55根据所述第一分类器的预测结果和所述标签,对所述嵌入模型进行第二类预训练。由上可见,本说明书实施例,在第一类训练中,不需要切词,直接基于字即可训练嵌入模型,在第二类训练中,由于历史点击数据的数据量巨大,包含各种表达,可以充分训练嵌入模型对新词及其搭配的拟合,通过上述两类预训练从而能够在对嵌入模型的预训练过程中适应语言搭配的各种变化。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。