本发明属于自然语言理解,具体涉及一种基于双曲嵌入进行深度学习以面向多意图检测与槽位填充任务的方法。
背景技术:
1、口语理解是对话系统的关键组成部分,旨在理解用户的查询。它通常包括两个子任务:意图检测和槽位填充。由于意图和槽位填充任务紧密联系,任务之间具有相关性,一般采用联合模型来进行求解。多意图理解是指模型可以处理包括多个意图的对话,在现实场景中显示出更强的实用性。现有的方法虽然通过联合求解两个任务获得了性能的提升,但是确忽略了意图与槽位的全局关系,往往只能对句子进行独立的建模,本发明尝试通过双曲嵌入获得意图与槽位的全局表示,这也是本文的发明动机。接下来详细介绍这一领域中相关的背景技术。
2、(一)槽位填充与意图检测
3、对给定的语言序列x=(x1,…,xn)作为输入信息,多意图检测任务可以定义为输出一系列的意图标签这里n是指输入的语言序列的长度,m是在这个给定的话语中意图的数量。槽位填充任务可以看作是将输入的序列x映射到槽位序列在早期的研究中,意图检测与槽位填充作为联合任务被研究。多意图检测因为可以更好的处理有多个意图的语句,更加贴近真实情况,逐渐受到关注。近些年里,多意图检测与槽填充联合模型被提出,并且获得了巨大的成功。qin等在2020年提出一种自适应交互网络,实现细粒度的多意图信息集成,实现令牌级槽填充,达到最先进的性能。他们的方法采用自回归结构进行联合多意图检测和槽填充。并且,在后来推出了非自回归结构的gl-gin模型,对模型进行了进一步的升级。然而,目前这些方法并没有考虑到意图与槽位的全局关系,只是在句子的层面对意图与层次进行建模,通常最后都是利用嵌入直接计算概率分布,如gl-gin中槽位计算公式如下:
4、
5、
6、是前面学习到的槽位的嵌入表示,ws是可以学习的参数。
7、(二)双曲空间
8、双曲空间是只那些曲率设定为常负数的非欧几里得空间。与欧几里得空间相比,双曲空间具有优越的表征能力。双曲空间的表示能力随着空间半径呈指数增长,使其善于捕捉数据的潜在层次属性,而欧式空间的表示能力随空间半径只呈现多项式级别的增长。常见的双曲空间有庞加莱空间、洛伦兹空间等。其中常负曲率为-1的n维庞加莱流形被定义为黎曼流形
9、dn={x∈rn|<x,x>2<1},
10、
11、这里ge是n维的标准单位阵。注意到,在欧式空间中的四则运算对双曲空间并不满足封闭性,为了能够将双曲空间应用于深度学习中,我们将利用到双曲空间的切空间。切空间是一个局部的欧式空间,我们将这个局部的性质假设其在全局成立,这样可以在切空间中完成运算后将切空间中的结果投影回到双曲空间。我们将数据从双曲空间投影到切空间的函数称为对数函数,将数据重新投影回到双曲空间的函数称为指数函数。这一对函数在庞加莱空间中都有明确的定义,分别记做:
12、
13、
14、其中分别代表了莫比乌斯加法。
15、(三)图神经网络用于自然语言处理
16、图神经网络直接作用于图结构,对结构信息进行建模,已成功应用于各种自然语言处理任务。liu应用图神经网络对序列标注任务的非局部上下文信息进行编码建模。feng成功地将图网络应用于摘要生成任务的话语信息建模,取得了令人满意的性能。
17、斯坦福的实验室于2019年提出双曲图神经网络hgcn,借助双曲空间的优秀分层能力来进一步的提升对树状结构图的建模能力,可以在建模的过程中发现拓扑图结构的潜在层次信息。双曲图神经网络的主要实现方式是通过双曲空间的切空间,在切空间实施运算与聚合后将信息回传到双曲空间中。主要的公式可以记作:
18、
19、
20、其中k是指双曲空间的负曲率,h代表了双曲空间的表示,log与exp分别是对数函数与指数函数,负责将嵌入信息从切空间映射到双曲空间,而另一个函数对应着逆向的运算。
21、现有的方法没有考虑到意图与槽位的全局表示,将意图嵌入与槽位嵌入作为一种句子的局部嵌入。然而,由联合任务的有效性就可以推测,意图与槽位之间存在关系。并且通常是一个意图对应着多个特定槽位,显然意图有着更加高级的语义,本发明尝试利用双曲图神经网络来揭示他们的层次关系,辅助最终的意图检测于槽位填充任务。
技术实现思路
1、为了突破现有的多意图检测与槽位填充方法的缺陷,本发明通过使用基于双曲空间的图神经网络来赋予意图与槽位全局的嵌入表示来提升方法的预测效果。同时,我们改进了最终关于概率分布的表示学习,利用前面学习到的全局表示来增强结果。本发明将提出了一种基于全局双曲嵌入的多意图检测与语义槽位填充方法。
2、本发明的技术方案:
3、一种面向自然语言理解的多意图检测与槽位填充方法,步骤如下:
4、第一步:对语言序列数据进行预处理
5、1.1建立字母表:对于的语言数据,为了能够让其成为能够输入模型的输入,首先需要建立一个字母表,使得每个输入的单词获得一个标号,并且根据对应的标号在建立一个单词的初始嵌入en×d,n为建立的字母表中的元素个数,d为嵌入的初始维度。注意,字母表中包括空字符的对应。并且,对所有的意图与槽位信息,也应该以编号记录。
6、1.2建立全局意图槽位图:对已知的槽位与意图的关系,去建立一个全局关系图,记为gglobal。首先将已知的槽位与意图作为节点,对句子中同时出现的槽位-意图关系建立连边并计数,对存在多意图的句子,建立意图-意图的连边并计数。此外,需要注意对槽位中连续的b-i槽位,建立槽位-槽位的连边并计数。然后,获得了有关槽位与意图信息的全局图,每条边的权值代表了出现的次数。然后,根据权值占总数的数量,将边进行分类。将权值小于一定阈值a的这部分边舍弃,将权值在阈值a到阈值b之间的边设定为关系1,将权值大于阈值b的边设定为关系2。这里的阈值a,b与图中所有边的权值和有关。在这样处理之后,构建逆向的关系,原本的全局图可以看作一种由不同的关系构成的简单知识图谱。
7、第二步:构建基于全局双曲嵌入的多意图检测与槽位填充方法,该方法由全局意图槽位图编码器、局部语言编码器以及预测模块这三部分构成。
8、2.1全局意图槽位图编码器
9、使用全局意图槽位编码器,可以获取意图与槽位的全局表示,可以利用全局的表示来提升局部学习的效率。首先,对ggbobal中的所有节点,借助之前在字母表中的编号,获得对应的嵌入记作φemb(os)与φemb(oi),代表槽位与意图的嵌入。为了能够获得意图与槽位之间的全局关系,揭示他们之间的层次关系,我们利用先验知识构成了全局图,并且使用基于双曲空间的图神经网络进行编码。
10、由于我们可以将整个全局图看作一种简易的知识图谱,所以我们利用经典的知识图谱嵌入方法transe的庞加莱空间版本来学习嵌入。transe作为一种经典的知识图谱嵌入方法,可以简单且快速的完成编码任务。我们使用双曲空间中的平行位移的方法,使得可以区分不同的头节点对关系与尾节点的影响。对头节点h,具体的公式如下:
11、
12、其中,我们使用带下划线的字母表示双曲空间中的表示,用不带下划线的字母表示在对应原点切空间中的表示。我们用表示第l+1层的切空间的图谱中间结果的表示,与分别是庞加莱空间对应点上的对数运算与指数运算。平行位移是指将对应双曲空间中某个点对应的切空间平移到另一个点对应的切空间中,式子中是指将庞加莱原点切空间中的点平移到头节点对应的切空间中。再经过多层的迭代之后,我们可以获得意图与槽位的全局表示与
13、2.2局部语言编码器
14、语言编码器可以有效的编码有序的语句,将语句中的单词编码为局部的意图嵌入与槽位嵌入。对于输入的句子{x1,…,xn},我们首先进行自注意力编码,使得每个词的嵌入在句子中更加准确。先将其输入双向的长短期记忆网络(bilstm)获得输出h={h1,…,hn},有:
15、hi=bilstm(φemb(xi),hi-1,hi+1),
16、然后再输入自注意力网络,获得输出e=h‖c,有e∈rn×2d。将e再次输入双向的长短期记忆网络中,我们可以获得输入序列中每一个词的在句子中表示:
17、
18、其中,ei是指e中的第i个位置的嵌入表示,即序列中第i个词在经过长短期记忆模型与自注意力网络后链接得到的结果。为了能够方便后面的预测模块学习然后将上一步的结果输入多层感知机使得输出维度与全局表示的维度一致:
19、
20、这里wi、wh、bh、bi都是可以学习的参数。获得了输入的序列中每个词的意图的局部表示。将这个输入最终的预测层后,经过投票操作可以获得这个序列的意图标签
21、然后,对于槽位标签的预测,我们在将前面求解得到的意图表示融合进来一起学习。这里使用长短期记忆模型来对信息进行融合:
22、st=bilstm(it‖et,st-1,st+1),
23、在这之后,利用局部的槽位图与局部槽位-意图图对结果进行进一步的编码。使用经典的图注意力网络(gat)对这两种图进行编码。图注意力网络是图神经网络的一种变体,它融合了模型内的图结构信息和节点特征。它的掩码自关注层允许节点关注邻域特征并学习不同的关注权重,从而自动确定当前节点与其邻域之间的重要性和相关性。具体来说,给定n个节点,用表示节点的嵌入,对k个多头的图注意力网络,对任意的节点i有公式:
24、
25、
26、这里wh、at是可学习的参数。softmax的计算是针对指定节点的邻居节点。σ是非线性的激活函数。
27、局部槽位图是在输入的序列中按照一定的窗口长度进行滑动获得的图,在图中使用上述的gat网络进行学习嵌入。而局部槽位-意图图则是在此基础上将在上一步的预测中的意图结果加入到图中,进行学习。在经过l层的图神经网络的迭代之后,获得了表示序列中第t位置的输出。同样的,我们也将结果输入多层神经网络中,使得最终的输出结果与全局的输出结果的维度相同:
28、
29、与之前的方法类似,这里ws、wg、bg、bs都是可以学习的参数。
30、2.3预测模块
31、对现有的一些方法往往都是直接使用学习到的局部意图与槽位嵌入,通过多层感知器直接获得对各个意图与槽位的概率分布。本发明则是利用学习到的意图与槽位的全局嵌入计算结果。对槽位的结果计算,我们通过计算与全局槽位表示的相似度可以直接获取:
32、
33、对于意图结果的计算,因为是多分类任务,则需要在计算完相似度之后再进行投票:
34、
35、
36、这里1[·]表示当中括号中条件满足时为1,否则为0。n为句子的长度。
37、第三步:模型训练与性能评估
38、3.1模型训练:将批量的语言序列输入到模型当中后获得模型预测结果,选择合适的损失函数并根据模型预测结果与标签值计算损失值,选择合适的优化算法计算模型参数的最优解。在模型训练期间,可根据验证集拟合情况调整模型超参数。
39、3.2性能评估:确定评价指标,用于衡量测试集中模型预测结果与标签值的拟合情况,进而评估模型整体预测效果。
40、本发明的有益效果:
41、(1)本发明提出了基于全局双曲嵌入的多意图检测与槽位填充方法,并设计了基于双曲空间之间的特征交互,从而有效地学习到意图与槽位的全局表示。现有的方法忽略了意图与槽位的全局关系,本发明通过对全局图的构建,利用了两者的先验知识,这些都是现有的多意图检测与槽位填充方法不具备的。
42、(2)本发明突破了现有的基于欧式空间来进行计算的框架,利用双曲空间挖掘的意图与槽位之间的潜在层级关系,提升了整体的学习效果。
1.一种面向自然语言理解的多意图检测与语义槽位填充方法,其特征在于,步骤如下:
2.如权利要求1所述的一种面向自然语言理解的多意图检测与语义槽位填充方法,其特征在于,所述的第一步,具体操作如下:
3.如权利要求1或2所述的一种面向自然语言理解的多意图检测与语义槽位填充方法,其特征在于,所述的第三步,具体操作如下:
4.如权利要求1或2所述的一种面向自然语言理解的多意图检测与语义槽位填充方法,其特征在于,所述的1.2步中,对槽位中连续的b-i槽位,建立槽位-槽位的连边并计数;然后,获得了有关槽位与意图信息的全局图,每条边的权值代表了出现的次数;然后,根据权值占总数的数量,将边进行分类;将权值小于一定阈值a的这部分边舍弃,将权值在阈值a到阈值b之间的边设定为关系1,将权值大于阈值b的边设定为关系2。
5.如权利要求3所述的一种面向自然语言理解的多意图检测与语义槽位填充方法,其特征在于,所述的1.2步中,对槽位中连续的b-i槽位,建立槽位-槽位的连边并计数;然后,获得了有关槽位与意图信息的全局图,每条边的权值代表了出现的次数;然后,根据权值占总数的数量,将边进行分类;将权值小于一定阈值a的这部分边舍弃,将权值在阈值a到阈值b之间的边设定为关系1,将权值大于阈值b的边设定为关系2。