本发明属于自然语言处理领域,尤其涉及一种基于中心句自决定的对话式问题排序方法及系统。
背景技术:
1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
2、构建对话式信息获取系统(conversational information seeking system,cis)已经是一种新的趋势,最近几年得到了广泛关注。相对于传统的信息获取系统,例如搜索引擎,对话式信息获取系统的一个主要特征是混合驱动,即在用户意图不清晰时,通过主动询问用户明晰问题来帮助用户明晰意图。
3、现有的明晰问题生成工作分为两类:对话式问题生成(conversational questiongeneration,cqg)和对话式问题排序(conversational question ranking,cqr)。给定对话上下文,对话式问题生成通过自前往后生成问题中的每个单词来生成明晰问题。这种方式往往能生成非常灵活、流畅的问题。但是该类方法生成问题的质量往往得不到保证,而且很容易生成具有攻击性、冒犯性的问题。
4、对话式问题排序则在预定义的问题库中选择一个合适的问题作为明晰问题。问题选择的过程是通过对每个问题进行打分,并选出得分最高的作为最终选择。由于预定义问题库中的问题往往是人工给定或选择出的,其质量往往能够得到保证。因此该类方法广泛应用于商用对话系统中,例如微软小冰。
5、已有的对话式问题排序工作通过设计各种模型微调策略(fine-tuning)来提升模型性能并取得了不错的效果。但是,这些工作在设计微调策略的过程中,往往对对话上下文中的句子进行随机操作,例如,随机删除对话上下文中句子来进行微调,这会破坏对话上下文与明晰问题间的一致性与连贯性,从而造成模型性能的下降。
技术实现思路
1、为了解决上述背景技术中存在的技术问题,本发明提供一种基于中心句自决定的对话式问题排序方法及系统,其能够保证对话上下文与明晰问题的一致性与连贯性。
2、为了实现上述目的,本发明采用如下技术方案:
3、本发明的第一个方面提供一种基于中心句自决定的对话式问题排序方法。
4、一种基于中心句自决定的对话式问题排序方法,包括:
5、获取对话上下文和问题库,采用已训练的问题排序模型,得到问题排序得分,选取得分最高的问题以及该问题作为目标问题时识别出的中心句;
6、所述问题排序模型的训练过程包括:采用训练集,结合损失函数训练问题排序模型,得到在验证集上表现最优的模型作为原始模型,表现次优的模型作为影子模型;其中,训练集和验证集均包括:对话上下文、问题库和问题相关性标签;采用启发式方法,结合给定的权重因子,计算对话上下文中的每个句子得分,选取原始模型得到的对话上下文中得分最高的句子作为识别出中心句,选取影子模型得到的对话上下文中得分最高的句子作为识别出另一中心句;以识别出中心句和识别出另一中心句尽可能相同为原则,结合损失函数,优化权重因子,直到权重因子收敛;根据原始模型和收敛后的权重因子,采用训练集,设计微调任务训练原始模型,得到训练好的问题排序模型。
7、进一步地,在训练问题排序模型之前包括,构建问题排序模型的过程:
8、基于对话上下文矩阵和问题库矩阵,采用bert编码器,得到对话上下文矩阵和问题库矩阵的聚合特征;
9、基于所述聚合特征,采用全连接层,得到每个问题的得分以及该问题作为目标问题时识别出的中心句。
10、进一步地,所述损失函数包括,二分类交叉熵损失函数:
11、
12、其中,yi∈{0,1}为数据集中给定的问题相关性标签,f(u,qi)表示问题得分,对话上下文u=[u1,u2,…,ul],问题库中的问题q=[q1,q2,…,qi]。
13、进一步地,所述采用启发式方法,结合给定的权重因子,计算对话上下文中的每个句子得分,选取原始模型得到的对话上下文中得分最高的句子作为识别出中心句,选取影子模型得到的对话上下文中得分最高的句子作为识别出另一中心句的过程具体包括:
14、基于原始模型,采用启发式方法,结合给定的权重因子,计算对话上下文中的每个句子得分,选取对话上下文中得分最高的句子作为识别出中心句;
15、基于影子模型,采用启发式方法,结合给定的权重因子,计算对话上下文中的每个句子得分,选取对话上下文中得分最高的句子作为识别出另一中心句。
16、进一步地,所述启发式方法包括:
17、采用留一法,对于对话上下文中第j个句子,通过留出该句子,计算该句子对于问题排序中目标问题q*的得分:
18、
19、其中,fθ(·,·)为步骤1中的排序模型,参数为θ;u-uj表示留出uj后的上下文;
20、进一步地,所述启发式方法还包括:采用独立法,对于对话上下文中第j个句子,通过单独衡量该句子的作用,计算该句子对于问题排序中目标问题q*的得分:
21、
22、这里对话上下文只包含第j个句子,fθ(·,·)为步骤1中的排序模型,参数为θ;
23、进一步地,所述启发式方法还包括:采用上文法,对于对话上下文中第j个句子,通过衡量该句子在已知上文情况下的作用,计算该句子对于问题排序中目标问题q*的得分:
24、
25、这里u1:j表示对话上下文中前j个句子,fθ(·,·)为步骤1中的排序模型,参数为θ;由于该方法无法衡量对话上下文中第1句u1的作用,故
26、进一步地,所述启发式方法还包括:采用下文法,对于对话上下文中第j个句子,通过衡量该句子在已知下文情况下的作用,计算该句子对于问题排序中目标问题q*的得分:
27、
28、这里uj:l表示对话上下文中第j个句子到最后一个句子,fθ(·,·)为步骤1中的排序模型,参数为θ;由于该方法无法衡量对话上下文中最后一句ul的作用,故
29、进一步地,所述直到权重因子收敛的过程包括:
30、针对原始模型,基于给定的权重因子,计算对话上下文中每一个句子的得分,对于第j个句子的得分为:
31、
32、并选择对话上下文中得分最高的句子作为识别出的中心句:
33、
34、其中,c为识别出的中心句的索引,w为权重因子;表示采用启发式方法计算的j句子的得分;
35、针对影子模型,基于给定的权重因子,计算对话上下文中每一个句子的另一得分,对于第j个句子的得分为:
36、
37、并识别出另一中心句:
38、
39、sc为识别出的另一中心句的索引;表示采用启发式方法计算的j句子的另一得分;
40、以识别出中心句和识别出另一中心句尽可能相同为原则,优化权重因子w:
41、
42、其中n为训练样本的个数,cn和scn为原始模型fθ和影子模型fφ关于第n个样本的中心句预测,为示性函数,只有当cn=cn时为1,其他情况为0;
43、采用二分类交叉熵损失函数优化权重因子w:
44、
45、
46、其中,α为系数,保证的优先级;
47、优化权重因子w,直到权重因子w收敛。
48、进一步地,所述根据原始模型和收敛后的权重因子,采用训练集,设计微调任务训练原始模型,得到已训练的问题排序模型的过程具体包括:
49、随机将训练集中训练样本的对话上下文中前k个句子删除来构造新样本(′,);其中,k∈possion(λ),并且1≤k<c,c为识别出中心句的索引,u′=[uk+1,…,c,…,l],λ为超参数;且构造出新样本包含识别出中心句;
50、采用新样本,结合二分类交叉熵损失函数训练原始模型;
51、
52、其中,yi∈{0,1}为数据集中给定的问题相关性标签,f(u′,qi)表示问题得分;
53、得到已训练的问题排序模型。
54、本发明的第二个方面提供一种基于中心句自决定的对话式问题排序系统。
55、一种基于中心句自决定的对话式问题排序系统,包括:
56、排序模块,其被配置为:获取对话上下文和问题库,采用已训练的问题排序模型,得到问题排序得分,选取得分最高的问题以及该问题作为目标问题时识别出的中心句;
57、问题排序模型训练模块,其被配置为:采用训练集,结合损失函数训练问题排序模型,得到在验证集上表现最优的模型作为原始模型,表现次优的模型作为影子模型;其中,训练集和验证集均包括:对话上下文、问题库和问题相关性标签;采用启发式方法,结合给定的权重因子,计算对话上下文中的每个句子得分,选取原始模型得到的对话上下文中得分最高的句子作为识别出中心句,选取影子模型得到的对话上下文中得分最高的句子作为识别出另一中心句;以识别出中心句和识别出另一中心句尽可能相同为原则,结合损失函数,优化权重因子,直到权重因子收敛;根据原始模型和收敛后的权重因子,采用训练集,设计微调任务训练原始模型,得到训练好的问题排序模型。
58、本发明的第三个方面提供一种计算机可读存储介质。
59、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一个方面所述的基于中心句自决定的对话式问题排序方法中的步骤。
60、本发明的第四个方面提供一种计算机设备。
61、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一个方面所述的基于中心句自决定的对话式问题排序方法中的步骤。
62、与现有技术相比,本发明的有益效果是:
63、本发明在模型设计上,通过先识别能够保证一致性与连贯性的中心句,然后随机删除其他句子来进行微调;在模型训练上,采用一种无监督的学习策略,来优化中心句的识别。相比于已有的对话式问题排序方法,本发明的优势如下:
64、1.本发明提出识别对话上下文中的中心句,能够在微调中保证对话上下文与问题的一致性与连贯性,从而提高模型性能。
65、2.本发明设计了一种中心句识别的无监督训练策略,可以避免数据标注消耗人力物力,减少模型对于数据标注的依赖,提高该方法的应用能力。
66、3.本发明设计的模型可以识别出的中心句作为问题排序预测的参考,为模型提供可解释性。