一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于注意力机制的问答匹配方法、装置、设备及存储介质与流程

2022-02-19 12:21:15 来源:中国专利 TAG:


1.本发明涉及人工智能领域,尤其涉及一种基于注意力机制的问答匹配方法、装置、设备及存储介质。


背景技术:

2.问答系统是信息检索系统的一种高级形式,能够用准确、简洁的自然语言回答用户提出的问题。问答系统一般是通过基于bert网络的匹配模型进行问答匹配,匹配模型通过通用领域的海量语料库对bert模型进行预训练,然后对建立在bert模型顶部的编码器进行微调,以提高匹配模型的匹配效果,从而保证问答系统的检索精度。
3.传统问答匹配方式中,建立在bert模型顶部的编码器一般为双编码器或者交叉编码器,两种双编码器或者交叉编码器均存在缺陷,导致传统问答匹配方式无法兼顾匹配效果和匹配效率。其中,双编码器的匹配模型的核心,是分别将用户问题和候选答案编码成向量,最后通过相关性判别函数,计算两个向量之间的相似度,这种问答匹配方式的匹配速度快,但双编码器会丢失部分用户问题信息,导致用户问题与答案的匹配效果不佳。而交互编码器可以在问题和候选答案之间实现更细粒度的匹配,使得交互编码器的匹配模型具有更好的匹配效果,但是该问答匹配方式需要遍历所有用户问题与候选答案的组合,并求出每一问题与答案组合的相关性,数据处理量大而耗时长,降低了问答匹配效率。


技术实现要素:

4.本发明提供一种基于注意力机制的问答匹配方法、装置、设备及存储介质,以解决传统问答匹配方式无法兼顾匹配效果和匹配效率的问题。
5.提供一种基于注意力机制的问答匹配方法,包括:
6.获取用户输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量;
7.将用户问题转化为字向量序列,并将用户问题的字向量序列输入bert模型中,以获得bert模型输出的多个隐藏状态问题向量;
8.基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,m为大于1的整数;
9.根据答案向量对m个问题特征向量进行转换,以获得答案向量对应的用户问题向量;
10.根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案。
11.提供一种基于注意力机制的问答匹配装置,其特征在于,包括:
12.获取模块,用于获取用户输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量;
13.编码模块,用于将用户问题转化为字向量序列,并将用户问题的字向量序列输入
bert模型中,以获得bert模型输出的多个隐藏状态问题向量;
14.第一转换模块,用于基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,m为大于1的整数;
15.第二转换模块,用于根据答案向量对m个问题特征向量进行转换,以获得答案向量对应的用户问题向量;
16.确定模块,用于根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案。
17.提供一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于注意力机制的问答匹配方法的步骤。
18.提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述基于注意力机制的问答匹配方法的步骤。
19.上述基于注意力机制的问答匹配方法、装置、设备及存储介质所提供的一个方案中,通过获取用户输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量;然后将用户问题转化为字向量序列,并将用户问题的字向量序列输入bert模型中,以获得bert模型输出的多个隐藏状态问题向量;并基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,m为大于1的整数;再根据答案向量对m个问题特征向量进行转换,以获得答案向量对应的用户问题向量;最后根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案;本发明中,基于注意力机制对用户问题向量进行改进,以获得m个问题特征向量,可以表征更多的全局特征,然后根据答案向量将m个问题特征向量加权为对应的用户问题向量,能够使候选答案与用户问题进行相互融合,提高了对应的用户问题向量与答案向量的匹配值的准确性,进而提高了候选答案与用户问题的匹配效果,在此基础上,减少了匹配过程的数据处理量,从而提高了问答匹配的效率。
附图说明
20.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明一实施例中基于注意力机制的问答匹配方法的一应用环境示意图;
22.图2是本发明一实施例中基于注意力机制的问答匹配方法的一流程示意图;
23.图3是图2中步骤s30的一实现流程示意图;
24.图4是图2中步骤s40的一实现流程示意图;
25.图5是图2中步骤s50的一实现流程示意图;
26.图6是图2中步骤s10的一实现流程示意图;
27.图7是图2中步骤s10的另一实现流程示意图;
28.图8是图7中步骤s03的一实现流程示意图;
29.图9是本发明一实施例中基于注意力机制的问答匹配装置的一结构示意图;
30.图10是本发明一实施例中计算机设备的一结构示意图。
具体实施方式
31.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.本发明实施例提供的基于注意力机制的问答匹配方法,可应用在如图1的应用环境中,其中,终端设备通过网络与服务器进行通信。服务器获取用户通过终端设备输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量;然后将用户问题转化为字向量序列,并将用户问题的字向量序列输入bert模型中,以获得bert模型输出的多个隐藏状态问题向量;并基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,m为大于1的整数;再根据答案向量对m个问题特征向量进行转换,以获得答案向量对应的用户问题向量;最后根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案;本发明中,基于注意力机制对用户问题向量进行改进,以获得m个问题特征向量,可以表征更多的全局特征,然后根据答案向量将m个问题特征向量加权为对应的用户问题向量,能够使候选答案与用户问题进行相互融合,提高了对应的用户问题向量与答案向量的匹配值的准确性,进而提高了候选答案与用户问题的匹配效果,在此基础上,减少了匹配过程的数据处理量,从而提高了问答匹配的效率。最终,进一步提高了问答系统的人工智能化,提高了用户体验。
33.其中,多个候选答案和候选答案对应的答案向量等相关数据存储在服务器的数据库中,在需要对用户问题进行答案匹配时,直接从服务器的数据库获取相关数据,提高对问答匹配的效率。
34.本实施例中的数据库存储于区块链网络中,用于存储基于注意力机制的问答匹配方法中用到、生成的数据,如候选答案和候选答案对应的答案向量等相关数据。本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。将数据库部署于区块链可提高数据存储的安全性。
35.其中,终端设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
36.在一实施例中,如图2所示,提供一种基于注意力机制的问答匹配方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
37.s10:获取用户输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量。
38.获取用户通过终端设备输入的用户问题,然后从数据库中获取多个候标准答案,将用户问题与标准答案进行关键词匹配,以获取多个候选答案,进而可以获取多个候选答
案对应的答案向量。其中,答案向量是将候选答案进行特征向量提取后的答案向量。
39.其中,答案向量可以通过如下方式获取:
40.第一种:在数据库中获取一个候选答案,然后将候选答案输入bert模型中,得到bert模型输出的多个隐藏状态答案向量,然后将多个隐藏状态答案向量进行聚合,以获得候选答案的答案向量。以便在获得用户问题之后,对答案向量和用户问题的用户问题向量进行匹配,若答案向量和用户问题向量不匹配,则继续从数据库中获取一个候选答案,将候选答案转化为答案向量,以与用户问题向量进行匹配。
41.第二种,在明确多个标准答案之后,对多个标准答案进行离线转化,以获得多个标准答案对应的答案向量,将多个标准答案和标准答案对应的答案向量以一一对应的方式存储在数据库中,以在获取用户输入的用户问题之后,在数据库中确定用户问题对应的标准答案,作为用户问题的候选答案,然后在数据库中直接拉取候选答案对应的答案向量即可,无需对候选答案进行线上转换,减少计算量,提高问答匹配效率。在离线转换中,是在线下预先将标准答案输入bert模型中,得到bert模型输出的多个隐藏状态答案向量,然后将多个隐藏状态答案向量进行聚合,以获得标准答案的答案向量,从而在线下获得所有标准答案的答案向量。
42.s20:将用户问题转化为字向量序列,并将用户问题的字向量序列输入bert模型中,以获得bert模型输出的多个隐藏状态问题向量。
43.在获取用户输入的用户问题之后,将用户问题进行单字切分,获得用户问题的字向量序列,然后将用户问题的字向量序列输入bert模型中进行编码,以获得bert模型的隐藏状态,作为bert模型对用户问题编码后的输出的多个隐藏状态问题向量。将bert模型的隐藏状态作为用户问题的表征,使得向量与用户问题信息之间具有更高的相关性,便于后续基于隐藏状态问题向量进行特征提取,以保证提取特征向量的准确性。
44.例如,用户问题为q,用户问题的字向量序列表示为:将用户问题的字向量序列输入bert模型进行编码,得到bert模型的transformer最后一层的隐藏状态,作为用户问题的表征向量h
j
,即获得bert模型输出的多个隐藏状态问题向量,隐藏状态问题向量通过如下公式表示:
[0045][0046]
其中,n
x
用户问题的字向量序列的长度,为用户问题中的第n
x
个字向量,h
j
为用户问题中第j字的隐藏状态问题向量,j∈[0,n
x
]。
[0047]
s30:基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量。
[0048]
在获得bert模型输出的多个隐藏状态问题向量之后,基于注意力机制对多个隐藏状态问题向量进行转换,以筛选获得m个用于表征用户问题的问题特征向量。其中,m为大于1的整,m可以根据实际需要进行取值。
[0049]
基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,具体过程为:先根据多个隐藏状态问题向量确定注意力权重矩阵,并根据注意力权重矩阵中的多个注意力权重,对多个隐藏状态问题向量进行加权求和,筛选获得一个用于表征用户问题的问题特征向量;然后更新注意力权重矩阵,并根据更新后的注意力权重矩阵中的多个注意力权重,对多个隐藏状态问题向量进行加权求和,筛选获得下
一个问题特征向量,依次循环进行多次筛选,直至获得m个用于表征用户问题的问题特征向量。基于注意力机制获得m个问题特征向量,能够使得问题特征向量具有较好的语义相关性,在保证问题特征向量准确性的基础上,捕获m个问题特征向量也减少了计算量。
[0050]
s40:根据答案向量对m个问题特征向量进行转换,以获得答案向量对应的用户问题向量。
[0051]
在获得m个用于表征用户问题的问题特征向量后,根据答案向量对m个问题特征向量进行加权求和,以获得答案向量对应的用户问题向量。其中,答案向量对应的用户问题向量的计算,也是基于注意力机制的向量计算。先根据答案向量和用户问题向量确定注意力权重矩阵,并根据注意力权重矩阵中的m个注意力权重对m个问题特征向量进行合并计算,获得答案向量对应的用户问题向量。基于双层注意力机制的向量处理,并在第二次基于注意力机制的向量计算时,将答案向量与m个问题特征向量进行交互融合,以获得用户问题向量,提高了用户问题向量与答案向量相关性,便于进行匹配。
[0052]
s50:根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案。
[0053]
在获得答案向量对应的用户问题向量之后,采用点积运算的方式,确定对应的用户问题向量与答案向量的匹配值,然后根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案。
[0054]
其中,答案向量对应的用户问题向量与答案向量的匹配值(匹配得分),通过如下公式计算:
[0055][0056]
其中,q为用户问题;y
q
为用户问题的用户问题向量;a
i
为第i个候选答案;为第i个候选答案的答案向量;s(q,a
i
)为第i个候选答案的答案向量与用户问题向量的匹配值。
[0057]
本实施例中,通过获取用户输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量;然后将用户问题转化为字向量序列,并将用户问题的字向量序列输入bert模型中,以获得bert模型输出的多个隐藏状态问题向量;并基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,m为大于1的整数;再根据答案向量对m个问题特征向量进行加权求和转化,以获得答案向量对应的用户问题向量;最后根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案;本实施例中,基于注意力机制对用户问题向量进行改进,以获得m个问题特征向量,可以表征更多的全局特征,然后根据答案向量将m个问题特征向量合并为对应的用户问题向量,能够使候选答案与用户问题进行相互融合,提高了用户问题向量与答案向量的匹配值的准确性,进而提高了候选答案与用户问题的匹配效果,在此基础上,无需对答案和问题进行大量交互,减少了匹配过程的数据处理量,从而提高了问答匹配的效率。
[0058]
在一实施例中,如图3所示,步骤s30中,即基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,具体包括如下步骤:
[0059]
a.确定一个初始权重,并根据多个隐藏状态问题向量和初始权重确定第一权重矩阵。
[0060]
在获取多个隐藏状态问题向量之后,需要随机确定一个初始权重,以根据多个隐藏状态问题向量和初始权重确定第一权重矩阵。其中,由于存在m个隐藏状态问题向量,则
需要循环取值m次初始权重,每次取值的初始权重记为c
i
,则最终经过m次初始权重取值后,m各初始权重组成的初始权重矩阵为(c1..c
m
),初始权重矩阵中包括多个初始权重,每个初始权重均与多个隐藏状态问题向量计算生成第一权重矩阵。其中,初始权重矩阵(c1..c
m
),为用来衡量bert模型中transformer最后一层的隐藏状态的权重矩阵。
[0061]
其中,第一权重矩阵中的各权重为该初始权重与各隐藏状态问题向量的乘积,即第一权重矩阵为:(c
i
·
h1,...,c
i
·
h
j
),i∈[0,m]。
[0062]
其中,c
i
为初始权重矩阵中的第i个初始权重,h
j
为第j个隐藏状态问题向量,m为初始权重的数量。
[0063]
b.采用归一化指数函数对第一权重矩阵进行归一化处理,以获得多个注意力权重。
[0064]
在确定第一权重矩阵之后,采用归一化指数函数(soffmax)对第一权重矩阵进行归一化处理,以获得该初始权重对应的多个注意力权重。
[0065]
其中,多个注意力权重通过如下公式表示:
[0066][0067]
其中,softmax为归一化指数函数,c
i
为第i个初始权重,h
j
为第j个隐藏状态问题向量,为第i个初始权重对应的第j个注意力权重。
[0068]
c.根据多个注意力权重对多个隐藏状态问题向量进行加权求和,以获得一个用于表征用户问题的问题特征向量。
[0069]
在获得多个注意力权重之后,根据多个注意力权重对多个隐藏状态问题向量进行加权求和,以获得一个用于表征用户问题的问题特征向量。
[0070]
问题特征向量的计算公式如下:
[0071][0072]
其中,为第i个初始权重对应的第j个注意力权重,i∈[0,m];h
j
为第j个隐藏状态问题向量;为第i个用于表征用户问题的问题特征向量。
[0073]
d.重复步骤a

步骤c,以获得m个问题特征向量。
[0074]
重复步骤a

步骤c,即可以获得m个问题特征向量。
[0075]
本实施例中,通过:a.确定一个初始权重,并根据多个隐藏状态问题向量和初始权重确定第一权重矩阵;b.采用归一化指数函数对第一权重矩阵进行归一化处理,以获得多个注意力权重;c.根据多个注意力权重对多个隐藏状态问题向量进行加权求和,以获得一个用于表征用户问题的问题特征向量;d.重复步骤a

步骤c,以获得m个问题特征向量,明确了基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量的具体过程,根据隐藏状态问题向量确定注意力权重,以筛选出m个问题特征向量,为后续计算提供了基础。
[0076]
在一实施例中,如图4所示,步骤s40中,即根据答案向量对m个问题特征向量进行转化,以获得答案向量对应的用户问题向量,具体包括如下步骤:
[0077]
s41:根据答案向量和m个问题特征向量,确定答案向量对应的第二权重矩阵。
[0078]
在获得候选答案的答案向量和m个问题特征向量之后,根据候选答案的答案向量和m个问题特征向量,确定答案向量对应的第二权重矩阵。
[0079]
其中,答案向量对应的第二权重矩阵中,各权重为候选答案的答案向量与问题特征向量的乘积,第二权重矩阵通过表示为:其中,为m个问题特征向量中的第i个问题特征向量,为多个候选答案中第i个候选答案对应的答案向量。
[0080]
s42:采用归一化指数函数对第二权重矩阵进行归一化处理,以获得多个目标权重。
[0081]
在确定答案向量对应的第二权重矩阵之后,采用归一化指数函数softmax对第二权重矩阵进行归一化处理,以获得多个目标权重。
[0082]
其中,多个目标权重通过如下公式表示:
[0083][0084]
其中,softmax为归一化指数函数,为m个问题特征向量中的第i个问题特征向量,为多个候选答案中第i个候选答案对应的答案向量,w
i
为第i个目标权重,i∈[0,m]。
[0085]
s43:根据多个目标权重对m个问题特征向量进行求和,以获得答案向量对应的用户问题向量。
[0086]
在获得多个目标权重之后,根据多个目标权重对m个问题特征向量进行加权求和,以获得答案向量对应的用户问题向量。
[0087]
答案向量对应的用户问题向量,通过如下公式计算:
[0088][0089]
其中,y
q
为答案向量对应的用户问题向量,为m个问题特征向量中的第i个问题特征向量,w
i
为第i个目标权重,i∈[0,m]。
[0090]
本实施例中,根据答案向量和m个问题特征向量,确定答案向量对应的第二权重矩阵;采用归一化指数函数对第二权重矩阵进行归一化处理,以获得多个目标权重;根据多个目标权重对m个问题特征向量进行求和,以获得答案向量对应的用户问题向量,明确了根据答案向量对m个问题特征向量进行转化,以获得答案向量对应的用户问题向量的过程,基于注意力机制确定候选答案的答案向量所对应的用户问题向量,为候选根据用户问题向量和候选答案的答案向量的匹配值提供了基础,且将候选答案的答案向量引入用户问题向量的过程,增加了用户问题与候选答案的交互,提高了用户问题向量的准确性,进而提高了候选匹配值的准确性,有利于增加匹配效果。
[0091]
在一实施例中,如图5所示,步骤s50中,即根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案,具体包括如下步骤:
[0092]
s51:计算对应的用户问题向量与答案向量的匹配值。
[0093]
在获得答案向量对应的用户问题向量之后,通过点积运算的方式,计算答案向量对应的用户问题向量与答案向量之间的匹配值,其中,答案向量对应的用户问题向量与答案向量的匹配值,通过如下公式计算:
[0094][0095]
其中,s(q,a
i
)为第i个候选答案a与用户问题q的匹配值;y
q
为用户问题q的用户问
题向量;为第i个候选答案a的答案向量。
[0096]
s52:将匹配值作为候选答案与用户问题的目标匹配值。
[0097]
在计算对应的用户问题向量与答案向量的匹配值之后,将匹配值作为候选答案与用户问题的目标匹配值。
[0098]
s53:依据目标匹配值的大小,对多个候选答案进行升序排序,以获得候选答案列表。
[0099]
在将匹配值作为候选答案与用户问题的目标匹配值之后,依据目标匹配值的大小,对多个候选答案进行升序排序,以获得候选答案列表,即候选答案列表中的多个候选答案,依据对应目标匹配值的大小进行排序。
[0100]
s54:将候选答案列表中排序第一的候选答案,作为用户问题的正确答案。
[0101]
在依据目标匹配值的大小,对多个候选答案进行升序排序,以获得候选答案列表之后,候选答案列表中排序第一的候选答案的目标匹配值最大,表示排序第一的候选答案与用户问题最匹配,则将候选答案列表中排序第一的候选答案,作为用户问题的正确答案,可以用户获得最准确的答案,提高了用户体验。
[0102]
本实施例中,通过计算对应的用户问题向量与答案向量之间的匹配值;将匹配值作为候选答案与用户问题的目标匹配值;依据目标匹配值的大小,对多个候选答案进行升序排序,以获得候选答案列表;将候选答案列表中排序第一的候选答案,作为用户问题的正确答案,明确了根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案的过程,将
[0103]
在一实施例中,如图6所示,步骤s10中,即确定用户问题的多个候选答案和候选答案对应的答案向量,具体包括如下步骤:
[0104]
s11:获取存储在数据库中的多个标准答案。
[0105]
在获得用户输入的用户问题之后,需要获取存储在数据库中的多个标准答案。
[0106]
s12:确定用户问题中的命名实体,并将包含命名实体的标准答案作为用户问题的候选答案。
[0107]
在获取存储在数据库中的多个标准答案之后,根据用户问题在多个标准答案中确定多个候选答案,其中,通过关键词(实体)匹配的方式,在多个标准答案中确定多个候选答案。
[0108]
首先,需要确定用户问题中的命名实体,确定标准答案是否包含用户问题中的命名实体,若标准答案包含用户问题中的命名实体,则将包含用户问题中的命名实体的标准答案,作为用户问题的候选答案。通过在多个标准答案中确定具有相同命名实体的标准答案作为候选答案,可以减少候选的匹配计算量,从而可以提高问答匹配效率,进而能够快速回复用户,提高用户体验。
[0109]
s13:在数据库中获取候选答案对应的答案向量,以获得多个候选答案对应的答案向量。
[0110]
本实施例中,数据库存储有标准答案和标准答案的答案向量,标准答案和标准答案的答案向量一一对应。在确定用户问题的候选答案之后,在数据库中获取候选答案对应的答案向量,以获得多个候选答案对应的答案向量,通过离线的方式预先将标准答案转化为答案向量进行存储,便于后续服务器可以根据实际用户问题,快速地确定候选答案的答
案向量,无需线上计算候选答案的答案向量,减少了服务器的计算量,起到降低服务器负载、提高问答匹配效率和服务器反应速度的效果。
[0111]
本实施例中,通过获取存储在数据库中的多个标准答案,确定用户问题中的命名实体,并将包含命名实体的标准答案作为用户问题的候选答案,在数据库中获取候选答案对应的答案向量,以获得多个候选答案对应的答案向量,明确了获取多个候选答案对应的答案向量的具体过程,无需线上计算候选答案的答案向量,减少了服务器的计算量,起到降低服务器负载、提高问答匹配效率和服务器反应速度的效果。
[0112]
在一实施例中,如图7所示,即获取候选答案对应的答案向量,具体包括如下步骤:
[0113]
s01:将候选答案进行单字切分,以获得候选答案的字向量序列。
[0114]
在获得候选答案之后,将候选答案进行单字切分,以获得候选答案的字向量序列。采用字向量序列作为bert模型的输入,获得候选答案的字向量,比传统词向量划分更加精确,获得的向量更加准确。
[0115]
s02:将候选答案的字向量序列输入bert模型中进行编码,以获得bert模型输出的多个隐藏状态答案向量。
[0116]
在获得候选答案的字向量序列之后,将候选答案的字向量序列输入bert模型中进行编码,以获得bert模型中transformer最后一层的隐藏状态,作为bert模型输出的候选答案的多个隐藏状态答案向量。
[0117]
s03:基于预设聚合方式对多个隐藏状态答案向量进行聚合,以获得候选答案对应的答案向量。
[0118]
在获得bert模型输出的多个隐藏状态答案向量之后,基于预设聚合方式对多个隐藏状态答案向量进行聚合,以获得候选答案对应的答案向量。
[0119]
其中,候选答案a的字向量序列为则候选答案对应的答案向量的计算公式为:
[0120][0121]
其中,bert为bert模型的函数,concat表示聚合函数(预设聚合方式),n
y
为候选答案a的字向量序列的长度,为用户问题中的第n
x
个字向量,为第i个候选答案对应的答案向量,i∈[0,n
y
]。
[0122]
例如,用户问题为:中国的首都是哪里?候选答案(正确答案)为:中国的首都是北京,则将中国的首都是北京进行单字切分,以获得候选答案的字向量序列,将候选答案的字向量序列输入bert模型中进行编码,以获得bert模型输出的多个隐藏状态答案向量,基于预设聚合方式对多个隐藏状态答案向量进行聚合,以获得候选答案对应的答案向量。根据上述过程,候选答案

中国的首都是北京进行归一化的答案向量为:0.2341、0.4353、0.2352、0.6436、

、0.3453;答案向量的长度为1*128。
[0123]
本实施例中,通过将候选答案进行单字切分,以获得候选答案的字向量序列,然后将候选答案的字向量序列输入bert模型中进行编码,以获得bert模型输出的多个隐藏状态答案向量;最后基于预设聚合方式对多个隐藏状态答案向量进行聚合,以获得候选答案对应的答案向量,明确了答案向量的获取过程,为后续根据候选答案对应的答案向量和用户问题向量的匹配值,确定正确答案提供了基础。
[0124]
在一实施例中,如图8所示,步骤s03中,即基于预设聚合方式对多个隐藏状态答案向量进行聚合,以获得候选答案对应的答案向量,具体包括如下步骤:
[0125]
s031:在多个隐藏状态答案向量中,确定bert模型输出的第一位隐藏状态答案向量。
[0126]
在获得bert模型输出的多个隐藏状态答案向量之后,在多个隐藏状态答案向量中,确定bert模型输出的第一位隐藏状态答案向量,第一位隐藏状态答案向量即为bert模型中[cls]对应的向量。
[0127]
s032:将bert模型输出的第一位隐藏状态答案向量,作为候选答案对应的答案向量。
[0128]
在确定将bert模型输出的第一位隐藏状态答案向量之后,将bert模型输出的第一位隐藏状态答案向量,作为候选答案对应的答案向量。在bert模型中,[cls]对应的向量能够更公平地融合文本中各个字/词的语义信息,比其他字/词更能代表候选答案,且直接将bert模型输出的第一位隐藏状态答案向量,作为候选答案对应的答案向量,能够减少计算量,提高候选答案对应的答案向量的获取速度,从而提高问答匹配效率。
[0129]
在其他实施例中,预设聚合方式还可以是:确定多个隐藏状态答案向量的均值,将多个隐藏状态答案向量的均值作为候选答案对应的答案向量,以提高候选答案对应的答案向量的准确性;或者,确定bert模型输出的多个隐藏状态答案向量中的前m个隐藏状态答案向量,并确定前m个隐藏状态答案向量的均值,将前m个隐藏状态答案向量的均值作为候选答案对应的答案向量,减少无意义的向量处理,减少计算量。
[0130]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0131]
在一实施例中,提供一种基于注意力机制的问答匹配装置,该基于注意力机制的问答匹配装置与上述实施例中基于注意力机制的问答匹配方法一一对应。如图9所示,该基于注意力机制的问答匹配装置包括获取模块901、编码模块902、转换模块903、第二转换模块904和确定模块905。各功能模块详细说明如下:
[0132]
获取模块901,用于获取用户输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量;
[0133]
编码模块902,用于将用户问题转化为字向量序列,并将用户问题的字向量序列输入bert模型中,以获得bert模型输出的多个隐藏状态问题向量;
[0134]
第一转换模块903,用于基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,m为大于1的整数;
[0135]
第二转换模块904,用于根据答案向量对m个问题特征向量进行转换,以获得答案向量对应的用户问题向量;
[0136]
确定模块905,用于根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案。
[0137]
进一步地,第一转换模块903具体用于:
[0138]
a.确定一个初始权重,并根据多个隐藏状态问题向量和初始权重确定第一权重矩阵;
[0139]
b.采用归一化指数函数对第一权重矩阵进行归一化处理,以获得多个注意力权重;
[0140]
c.根据多个注意力权重对多个隐藏状态问题向量进行加权求和,以获得一个用于表征用户问题的问题特征向量;
[0141]
d.重复步骤a

步骤c,以获得m个问题特征向量。
[0142]
进一步地,第二转换模块904具体用于:
[0143]
根据答案向量和m个问题特征向量,确定答案向量对应的第二权重矩阵;
[0144]
采用归一化指数函数对第二权重矩阵进行归一化处理,以获得多个目标权重;
[0145]
根据多个目标权重对m个问题特征向量进行求和,以获得答案向量对应的用户问题向量。
[0146]
进一步地,确定模块905具体用于:
[0147]
计算对应的用户问题向量与答案向量的匹配值;
[0148]
将匹配值作为候选答案与用户问题的目标匹配值;
[0149]
依据目标匹配值的大小,对多个候选答案进行升序排序,以获得候选答案列表;
[0150]
将候选答案列表中排序第一的候选答案,作为用户问题的正确答案。
[0151]
进一步地,获取模块901具体用于:
[0152]
获取存储在数据库中的多个标准答案;
[0153]
确定用户问题中的命名实体,并将包含命名实体的标准答案作为用户问题的候选答案;
[0154]
在数据库中获取候选答案对应的答案向量,以获得多个候选答案对应的答案向量。
[0155]
进一步地,获取模块901还具体用于通过如下方式,获取候选答案对应的答案向量:
[0156]
将候选答案进行单字切分,以获得候选答案的字向量序列;
[0157]
将候选答案的字向量序列输入bert模型中进行编码,以获得bert模型输出的多个隐藏状态答案向量;
[0158]
基于预设聚合方式对多个隐藏状态答案向量进行聚合,以获得候选答案对应的答案向量。
[0159]
进一步地,获取模块901还具体用于:
[0160]
在多个隐藏状态答案向量中,确定将bert模型输出的第一位隐藏状态答案向量;
[0161]
将bert模型输出的第一位隐藏状态答案向量,作为候选答案对应的答案向量。
[0162]
关于基于注意力机制的问答匹配装置的具体限定可以参见上文中对于基于注意力机制的问答匹配方法的限定,在此不再赘述。上述基于注意力机制的问答匹配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0163]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包
括存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储候选答案和后续答案对应的答案向量等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于注意力机制的问答匹配方法。
[0164]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
[0165]
获取用户输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量;
[0166]
将用户问题转化为字向量序列,并将用户问题的字向量序列输入bert模型中,以获得bert模型输出的多个隐藏状态问题向量;
[0167]
基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量,m为大于1的整数;
[0168]
根据答案向量对m个问题特征向量进行转换,以获得答案向量对应的用户问题向量;
[0169]
根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案。
[0170]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0171]
获取用户输入的用户问题,并确定用户问题的多个候选答案和候选答案对应的答案向量;
[0172]
将用户问题转化为字向量序列,并将用户问题的字向量序列输入bert模型中,以获得bert模型输出的多个隐藏状态问题向量;
[0173]
基于注意力机制对多个隐藏状态问题向量进行转换,以获得m个用于表征用户问题的问题特征向量;
[0174]
根据答案向量对m个问题特征向量进行转换,以获得答案向量对应的用户问题向量,m为大于1的整数;
[0175]
根据对应的用户问题向量与答案向量的匹配值,在多个候选答案中确定用户问题的正确答案。
[0176]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0177]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0178]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献