基于神经网络的知识图谱问答方法 阅读笔记+翻译

2019-arXiv-Introduction to Neural Network based Approaches for Question Answering over Knowledge Graphs
阅读笔记+翻译
摘要:介绍KGQA的挑战、现有方法、进展和趋势。

1 Introduction

KGQA(Knowledge Graph Query Answering):系统提供接口,接受用户使用自身的术语构造的自然语言查询,将其转化为对后台KG的结构化查询,从而为用户提供准确的查询结果。

Traditional approaches: a composition of template extraction, feature engineering, and traditional semantic parsing based methods.

Now: Neural Network based methods.

2 Background

2.1 KG

2.2 Formal Query Languages

SPARQL: standard query language for RDF

lambda calculus: a formal language for defining computable functions.

λ \lambda λ-DCS (Liang, 2013) and FunQL (Kate and Mooney, 2006) both provide a more concise query representation than SPARQL or lambda calculus by avoiding variables and making quantifiers from lambda calculus implicit.

The FunQL language operates over sets. The language consists of the following components:

(1) entities symbols (e.g. Barack Obama) whose denotation is the singleton set containing that entity (e.g. [Barack Obama] = {Barack Obama}),

(2) relation functions (e.g. spouse()), which return the set of entities that are reached by following the relation from its argument (e.g. [spouse(Barack Obama)] = {Michelle Obama}) and

(3) additional set functions, including (a) count(), which returns the cardinality of a set (e.g. count(spouse(Barack Obama)) =1, (b) various filtering functions, which filter a set using a relation and a filtering value (e.g. [filter<(spouse(Barack Obama), birthdate, 1990)] = {Michelle Obama}), as well as © argmax(), argmin() and (d) set intersection (and()) and union (or()).

2.3 Question Answering Over Knowledge Graphs

Let K \mathcal{K} K be a KG and let q q q be an NLQ then we define the set of all possible answers A \mathcal{A} A as the union of (i) the power set P ( E ∪ L ) P(\mathcal E \cup \mathcal{L}) P(EL) of entities E \mathcal E E and literals L \mathcal{L} L in K \mathcal{K} K, (ii) the set of the numerical results of all possible aggregation functions f : P ( E ∪ L ↦ R ) f : P(\mathcal E \cup\mathcal{L} \mapsto \mathbb R) f:P(ELR) (such as SUM or COUNT), and (iii) the set {True, False} of possible boolean outcomes, which is needed for yes/no questions. The task of KGQA then is defined as returning the correct answer a ∈ A a \in \mathcal{A} aA, for a given question q q q.

KGQA systems often use a semantic parser to accomplish their task. Semantic parsing is the task of translating an NLQ q q q into an executable meaning representation f ∈ F f \in \mathcal F fF of q q q (see also Kamath and Das (2019) for a recent survey on semantic parsing). F \mathcal F F is the set of all formal queries that can be generated by combining entities and relations from K \mathcal{K} K as well as arithmetic/logical aggregation functions available in the formal query language.

The correct logical form f f f must satisfy the following conditions: (1) the execution of f f f on K \mathcal{K} K (which we denote by f ( K ) f(\mathcal{K}) f(K)) yields the correct answer a a a, as implied by the NLQ and (2) f f f accurately captures the meaning of the question q q q. We call logical forms that satisfy the first constraint but not the second spurious logical forms.

A note on terminology: The natural language question (which we abbreviate to NLQ), is also referred to as question or utterance. The meaning representation is also referred to as logical forms or formal queries. The execution results or answers for a formal query are also referred to as denotations.

2.4 KGQA Subtasks

语义解析器必须执行的不同任务:

1.实体链接:KGQA语境下的实体链接是指确定NLQ q q q(的某个特定短语)指向哪个KG实体的任务。由于实体的数量太多,创建完全带标注的训练集来学习所有实体的词法映射几乎不可行。统计实体链接系统需要很好地泛化到未见实体。大多数现代KGQA系统通过使用独立的实体链接系统将实体链接的任务外部化,如DBpedia Spotlight(Mendes et al., 2011)用于DBpedia或S-Mart(Yang and Chang, 2016)用于Freebase。

2.识别关系:确定查询 f f f中某个位置使用哪个关系也至关重要。与实体链接类似,我们需要学习将自然语言表达映射到KG中的关系。但是,与实体链接不同,在实体链接中,实体是由特定于实体的名词短语表示的,而关系通常由名词和动词短语模式表达的,所使用的词不特定于关系。

3.识别逻辑/数字运算符:有时问题在中间变量/集合上包含其他运算符。像实体和关系一样,识别此类运算符主要是词汇学习问题。但是,与实体和关系不同,一般有一组固定的运算符,这取决于所选择的形式语言,而不取决于KG。

4.确定逻辑形式的结构:为了得出具体的逻辑形式,必须对逻辑形式的结构做出一系列决定,即如何安排操作符、关系和实体,使得执行生成的对象可以得到预期的答案。

问答通常在一个过程中解决多个子任务。 例如,基于翻译的系统(请参阅第4.3节)原则上可以在单个序列解码过程中生成整个查询,因此可以立即解决所有子任务。 但是,实际上,可以使用专门的模块,例如实体链接模块,以限制主模型的搜索空间。

3 Datasets

KGQA领域的数据集研究已经从基于手动特征工程的解决方案转变为基于神经网络的数据驱动方法。这些数据驱动方法的关键要求之一是要获得包含大量NLQs标签对的大型数据集。因此,人们可以观察到KGQA数据集中规模的变化,以及最近问题的复杂性的变化。表1总结了最流行的KGQA数据集的属性。

创建大规模KGQA数据集的最早尝试之一是Cai and Yates (2013)开发的Free917数据集,其中包括917个问题/形式查询对,涉及600多个Freebase关系。类似地,Berant et al. (2013)开发了另一个名为WebQuestions的数据集,方法是使用Google Suggest API查找问题,并在使用Freebase的Amazon Mechanical Turk(AMT)工作人员的帮助下回答这些问题。尽管此数据集比Free917大得多,但有两个缺点。首先,它不提供NLQ对应的形式查询,仅提供问题—答案对,限制了依赖逻辑形式的KGQA模型的有监督训练。其次,它主要由简单的问题组成,很少需要复杂推理的问题。为了解决第一个问题,Yih et al. (2016)引入了WebQuestionSP,它是WebQuestions的子集,具有答案以及与每个问题相对应的形式查询。为了提供更多的结构变化和问题表达能力,Bao et al. (2016)和Su et al. (2016)发布了ComplexQuestions和GraphQuestions,分别由成对的问题及其形式查询组成,通过类型约束、隐式和显式时间约束、聚合操作等扩展了WebquestionSP的子集。Trivedi et al. (2017)发布了LC-QuAD,这是针对DBpedia KG的复杂问题数据集。**他们首先生成针对DBpedia的形式查询,然后使用问题模板对它们进行半自动表达,然后利用众包将这些基于模板的问题转换为NLQ,并在此过程中执行措词和语法更正。**Dubey et al. (2019)使用类似的机制创建了一个更大且变化较大的数据集LC-QuAD2。QALD(Usbeck et al., 2018)是另一个基于DBpedia的重要KGQA数据集。尽管它比LC-QuAD小得多,但是它是由领域专家直接创建的,包含更为复杂和更口语化的问题。SQA和CSQA是用于对KG进行序列问答(你一句我一句)的数据集,其中每个数据样本均由具有共享上下文的一系列QA对组成。在这些数据集中,尽管序列中的单个问题通常很短,但具有上下文相关性。

但到目前为止,大多数讨论的数据集由于其相对较小,并未完全覆盖KG中存在的实体和关系。为了部分弥补这一点并支持更多种类的关系,Bordes et al. (2015)创建了SIMPLE QUESTION数据集,包含超过10万个问题。这些问题可以通过KG中的单个三元组来回答,因此可以认为相应的形式查询简单地由主语实体和该三元组的谓词组成。Serban et al. (2016)综合扩展了上述数据集,以创建由30M个问题—答案对组成的FACTOID QUESTIONS数据集。

4 基于神经网络的KGQA系统

如2.3节所述,KGQA问题通常被转换为语义解析问题。语义解析器是一种给定上下文(即KG K \mathcal K K和带有表达式 F \mathcal F F的形式目标语言)的算法,将给定的NLQ q q q映射为逻辑形式 f ∈ F f \in \mathcal F fF,该算法(1)在 K \mathcal K K上执行时将返回正确的答案 a a a (2)准确地捕捉 q q q的含义。基于神经网络的语义解析算法使用预测模型,在给定的数据集上训练参数。使用合适的训练步骤对模型进行训练,这取决于模型、解析算法和为训练解析器而提供的数据。

在本文中,我们将语义解析中常用的预测模型分为三个主要类别,即:(i)分类,(ii)排序和(iii)翻译。在接下来的小节(分别为第4.1、4.2和4.3节)中,我们将解释每种模型,并概述使用这些不同模型的KGQA系统。我们还将讨论这些模型以及如何在定义的上下文中使用和训练它们。

在下面讨论的所有训练过程中,都使用随机梯度下降(SGD)或其变体对模型进行优化。根据模型的类型,可以使用不同的损失函数。此外,取决于语义解析算法,需要在优化算法中对数据采用不同的处理和使用方式以训练模型。这些选择定义了后续各节中讨论的不同训练过程。另一个重要方面是所提供的训练数据的类型,它导致两种不同的训练设置:全监督,其中数据集由 N N N对NLQ和形式查询 { ( q ( i ) , f ( i ) ) } i = 1 N \{(q^{(i)},f^{(i)})\}_{i =1}^N {(q(i),f(i))}i=1N组成,以及弱监督,其中语义解析器在NLQ和相应的执行结果对 { ( q ( i ) , a ( i ) ) } i = 1 N \{(q^{(i)}, a^{(i)})\}_{i = 1}^N {(q(i),a(i))}i=1N数据集上训练。尽管预测模型本身通常不受此差异影响,但确实会导致不同的训练过程。

全监督可以通过简单地最大化预测正确逻辑形式的似然来训练模型,弱监督的设置则更具挑战性,我们必须间接推断和“鼓励”(隐)逻辑形式,执行它可以获得正确答案,同时避免可能会影响泛化的伪逻辑形式。这带来了两个挑战:首先,由于搜索空间的大小通常会随着逻辑形式中符号数量指数级增长,因此要找到一致的逻辑形式(执行它可以获得正确答案)是一项挑战。其次,处理假的候选,即伪逻辑形式(那些没有捕获源问题含义的逻辑形式)但执行它也能得到正确答案,从而误导了提供给语义解析器的监督信号(Cheng and Lapata, 2018)。

4.1 基于分类的KGQA

一般情况下,给定输入NLQ,语义解析器应能够生成任意大小和复杂度的结构化输出(即相应的形式查询)。在某些情况下,我们可以为形式查询假设一个固定的结构。例如,在基于单个事实的问题(例如SimpleQuestions)中,仅需要预测单个主语实体和关系。对于此类固定结构的预测任务,我们可以利用简单的文本分类方法来预测目标形式查询的不同部分(另请参见Hakimov et al. (2019)有关简单问题的深度学习架构的最新综述)。

4.1.1 分类模型

考虑关系分类任务。给定一个NLQ q q q和KG K \mathcal K K,关系分类任务是预测 q q q中包含 n r n_r nr个关系 r 1 , … , r n ∈ P K r_1, \ldots , r_n\in P_\mathcal K r1,,rnPK中的哪一个的描述。第一步,可以使用编码器网络将 q q q的可变长度输入序列映射到固定长度的向量 q ∈ R d \textbf q \in \mathbb R^d qRd上,这称为潜表示或 q q q的编码表示。编码器网络可以是循环神经网络(RNN)(Hochreiter and Schmidhuber, 1997),卷积神经网络(CNN)(LeCun and Bengio, 1998)或Transformer(Vaswani et al., 2017)。编码后的问题随后送入仿射变换以计算得分向量如下:
s ( q ) = W o q + b o (2) s(q)= W_o\textbf q + \textbf {b}_\textbf o\tag{2} s(q)=Woq+bo(2)
这里, W o ∈ R n r × d W_o \in \mathbb R ^{n_r\times d} WoRnr×d b o ∈ R n r \textbf b_\textbf o \in \mathbb R^{n_r} boRnr与编码器网络的参数一起构成了分类模型的可训练参数。输出层使用softmax函数将得分向量转换为 n r n_r nr个关系上的条件概率分布
p ( r k ∣ q ) = e s k ( q ) ∑ j = 1 n r e s j ( q ) (3) p(r_k|q)= \frac{e^{s_k(q)}}{\sum_{j=1}^{n_r}e^{s_j(q)}}\tag{3} p(rkq)=j=1nresj(q)esk(q)(3)
k = 1 , … , n r k = 1, \ldots , n_r k=1,,nr。然后分类就是选择给定 q q q条件下最高概率的关系。

给定一个包含 N N N个NLQ和基于单个事实的形式查询对的数据集 D = { ( q ( i ) , f ( i ) ) } i = 1 N \mathcal D = \{(q^{(i)}, f^{(i)})\}_{i = 1}^N D={(q(i),f(i))}i=1N,(对于SimpleQuestions, f ( i ) f^{(i)} f(i)是一个实体关系元组: f ( i ) = ( e ( i ) , r ( i ) ) f{(i)}=(e^{(i)}, r{(i)}) f(i)=(e(i),r(i))),通过最大化模型参数 θ \theta θ 的对数似然训练关系分类模型,由下式给出
∑ i = 1 N log ⁡ p θ ( r ( i ) ∣ q ( i ) ) (4) \sum_{i=1}^N \log p_\theta(r^{(i)}|q^{(i)})\tag{4} i=1Nlogpθ(r(i)q(i))(4)
其中 r ( i ) r^{(i)} r(i)是形式查询 f ( i ) f^{(i)} f(i)中使用的谓词。

4.1.2 基于分类的解析算法

对于基于单事实的预测任务,如上所述的依靠标准分类模型的系统可以实现sota的性能(Mohammed et al., 2018, Petrochuk and Zettlemoyer, 2018)。由于目标形式查询仅由一个主语实体和一个关系组成,因此原则上可以使用两个单独的分类器进行预测,接收NLQ作为输入并分别生成所有实体和KG中所有关系的输出分布。该方法可以成功地用于预测问题中提到或暗示的KG关系。但是,像Freebase这样的大型KG包含数量巨大的实体,训练数据集只能覆盖其中的一小部分。这使得很难将上述用于关系分类的方法应用于实体预测。因此,使用SimpleQuestions数据集的一些工作最初仅进行关系分类,而实体链接则使用一个包含两个步骤的方法进行。首先应用实体范围(span)检测器以识别NLQ中的实体提及(mention)。然后,使用基于简单文本的检索方法来查找有限数量的合适候选实体。这样就可以基于简单的字符串相似度和基于图的特征从候选集中选择给定 q q q的最佳实体。实体范围检测器也可以基于分类器来实现,可以作为一对分类器(一个用于预测范围的开始位置,一个用于预测范围的结束位置)或作为独立分类器的集合(每个针对输入的每个位置,类似于符号分类器网络),其中每个分类器预测相应位置的符号是否属于实体范围。

为了给出依赖分类模型的完整KGQA语义解析算法的具体示例,我们将描述Mohammed et al. (2018)提出的方法,由于其简单性和在SimpleQuestions上的竞争表现而被选中。此QA系统遵循以下步骤来预测构成形式查询的实体关系对:

  1. 实体范围检测:双向长短时记忆网络(BiLSTM)(Hochreiter and Schmidhuber, 1997)用于序列标记,以确定NLQ q q q中提到实体的范围 a a a
  2. 生成实体候选:给定实体范围,选择所有标签与预测范围(几乎)完全匹配的KG实体。
  3. 关系分类:双向门控循环单元(BiGRU)(Cho et al., 2014)编码器用于编码 q q q。 softmax输出层使用BiGRU的最终状态计算所有关系上的概率,如等式(2)和(3)中所述。
  4. 逻辑形式的构建:采用先前步骤中得分最高的实体和关系,并根据它们的组件得分和其他启发式对所有可能的组合进行排序。然后将得分最高的对作为问题的预测逻辑形式返回。

为了训练整个系统,将数据集里形式查询中给出的关系用作正确的输出类。对于范围检测器,我们首先需要提取“pseudo-gold”实体范围,因为数据集中没有提供实体范围。这通过自动将NLQ与训练集中提供的正确实体的标签对齐来完成,即NLQ中与实体标签最匹配的部分用作训练序列标注BiLSTM的正确范围。

Mohammed et al. (2018)研究了基于不同RNN和卷积神经网络(CNN)的关系检测器以及基于LSTM+CRF的实体提及检测器,发现基于BiLSTM的简单序列标注器在实体范围预测上可以获得与sota相比较的结果。

与以前的工作类似,Petrochuk and Zettlemoyer (2018)和Mohammed et al. (2018)都先识别实体范围,但是不使用神经网络对实体消歧。Petrochuk and Zettlemoyer (2018)采用BiLSTM+CRF用于范围预测,该模型不再被视为独立分类器的简单集合,而是形成了结构化的预测模型,可以捕获输出形式查询的不同部分之间的依赖性(在这种情况下,每个位置都是一个二分类标签)。

4.2基于排序的KGQA

如果不能像上一节中那样假设所有形式查询都遵循固定的结构,则将NLQ映射为其逻辑形式的任务将变得更具挑战性。由于所有可能形式查询的集合 F \mathcal F F随形式查询的长度呈指数增长,因此KGQA系统需要压缩可能输出的集合。因此,基于排序的语义解析器采用某种搜索过程来找到给定NLQ q q q和KG的一组候选形式查询 C ( q ) = { f 1 , … , f N } \mathcal C(q) = \{f_1, \ldots , f_N\} C(q)={f1,,fN},然后使用基于神经网络的排序模型来找到其中的最佳匹配。

4.2.1 排序模型

形式上,给定一个NLQ q q q和一组候选形式查询 C ( q ) \mathcal C(q) C(q),排序模型的任务是为$\mathcal C(q) $中每个候选形式查询输出一个分数以对其排序,其中较高的分数表示更贴近给定的NLQ q q q。神经排序通常包括两步。第一步,采用神经编码器模型将 q q q和每个候选形式查询 f ∈ C ( q ) f \in \mathcal C(q) fC(q)映射到一个潜在表示空间,从而得到NLQ的向量 q \textbf q q和每个候选的向量 f \textbf f f。第二步,将每个 f \textbf f f q \textbf q q配对,送入一个可微打分函数,函数返回匹配分数 s ( q , f ) s(q, f) s(q,f),指示形式查询 f f f与问题 q q q的匹配程度。打分函数 s ( ⋅ , ⋅ ) s(\cdot, \cdot) s(,)可以是无参函数,例如嵌入向量之间的点积,也可以是有参函数,例如接收嵌入作为输入的另一个神经网络。然后返回得分最高的形式查询候选作为模型的预测:
f ∗ = argmax f ∈ C ( q ) N s θ ( q , f ) (5) f ^* = \mathop{\text{argmax}}\limits_{f\in \mathcal C(q)}^N s_\theta(q, f)\tag{5} f=fC(q)argmaxNsθ(q,f)(5)
当给定问题可能有多个答案时,会考虑那些得分接近于最佳得分的候选(Dong et al., 2015),利用下面等式确定一组输出:
F a ∗ = { f ∣ f ∈ C ( q )  and  s θ ( q , f ∗ ) − s θ ( q , f ) < γ } . (6) \mathcal F _a^* = \{f |f \in \mathcal C(q) \text{ and } s_\theta (q,f^*)-s_\theta(q,f)<\gamma\}.\tag{6} Fa={ffC(q) and sθ(q,f)sθ(q,f)<γ}.(6)
我们可以训练排序模型使用(i)全监督,其中训练数据由问题和相应的逻辑形式组成;以及(ii)弱监督,其中缺少正确的逻辑形式,仅有问题和相应的答案(即KG的执行结果)对可供训练。下面分别讨论这两种情况。

全监督 根据给定NLQ及其对应的形式查询数据集 D + = { q ( i ) , f ( i ) } i = 1 N \mathcal{D}^+ = \{ q^{(i)}, f^{(i)} \}_{i=1}^N D+={q(i),f(i)}i=1N,生成一组负样本 D − = { ( q ( i ) , f ^ ( i ) ) } i = 1 N \mathcal{D}^- = \{(q^{(i)}, \hat f^{(i)})\}_{i=1}^N D={(q(i),f^(i))}i=1N。也就是说,对于训练集中的每个NLQ q ( i ) q^{(i)} q(i),都创建一个错误的形式查询 f ^ ( i ) \hat f^{(i)} f^(i),执行该查询不会返回 q ( i ) q^{(i)} q(i)的正确答案。通常,此过程称为负采样,它依赖于随机或基于启发式的搜索过程。

训练排序模型就等于通过最小化逐点或成对排序目标函数来拟合打分函数和神经编码器的参数。流行的排序目标是成对铰链损失(pairwise hinge loss ),可以通过成对的正负样本来计算:
∑ ( q , f ) ∈ D + ∑ ( q , f ^ ) ∈ D − max ⁡ ( 0 , s θ ( q , f ^ ) − s θ ( q , f ) + γ ) , (7) \sum_{(q, f)\in\mathcal{D}^+} \sum_{(q, \hat f)\in\mathcal{D}^-} \max(0, s_\theta (q, \hat f)-s_\theta(q, f)+\gamma),\tag{7} (q,f)D+(q,f^)Dmax(0,sθ(q,f^)sθ(q,f)+γ),(7)
通过最小化该函数来优化模型参数 θ \theta θ,激励模型对正样本给出高于负样本的评分,其中 γ > 0 \gamma > 0 γ>0指定了正样本与负样本分数边界之间的宽度。也可以通过计算各个正样本和负样本之间的logistic损失,以逐点方式训练排序模型。
∑ ( q , f ) ∈ D + , ( q , f ^ ) ∈ D − − s θ ( q , f ) log ⁡ s θ ( q , f ^ ) − ( 1 − s θ ( q , f ) ) ( 1 − log ⁡ s θ ( q , f ^ ) ) \sum_{(q, f)\in\mathcal{D}^+, (q, \hat f)\in\mathcal{D}^-} -s_\theta(q,f)\log s_\theta(q,\hat f)-(1-s_\theta(q,f))(1-\log s_\theta(q,\hat f)) (q,f)D+,(q,f^)Dsθ(q,f)logsθ(q,f^)(1sθ(q,f))(1logsθ(q,f^))
弱监督 为了在弱监督下训练排序目标,给定问题和对应的执行答案对数据集 D + = { ( q ( i ) , a ( i ) ) } i = 1 N \mathcal{D}^+ = \{ (q^{(i)}, a^{(i)})\}_{i=1}^N D+={(q(i),a(i))}i=1N,对于可以执行得到正确答案 a ( i ) a^{(i)} a(i)的每个问题 q ( i ) q^{(i)} q(i),查找pseudo gold逻辑形式 F p ( i ) = { f ∣ f ( K ) = a ( i ) } \mathcal F_p^{(i)}= \{f|f(\mathcal K)= a^{(i)}\} Fp(i)={ff(K)=a(i)}。然后,利用上面介绍的方法,使用问题及对应的pseudo gold逻辑形式对来训练排序模型。

(Peng et al., 2017)介绍的maximum margin reward(MMR)方法修改公式(7),称为most-violation margin objective。对于每个训练样本 ( q , a ) (q, a) (q,a),从 F p \mathcal F_p Fp中找到得分最高的逻辑形式 f ∗ f^ ∗ f,作为参考逻辑形式。他们定义了reward-base margin function : δ : F × F × A → R :\delta :\mathcal {F\times F\times A}\to \mathbb R δF×F×AR,并找到最违反边界的(violates the margin the most)逻辑形式:
f ^ = argmax f ∈ F ( s θ ( q , f ) − s θ ( q , f ∗ ) + δ ( f ∗ , f , a ) ) (8) \hat f = \mathop{\text{argmax}}_{f\in \mathcal F} (s_\theta (q, f)-s_\theta (q, f^∗)+\delta (f^∗, f, a))\tag{8} f^=argmaxfF(sθ(q,f)sθ(q,f)+δ(f,f,a))(8)
其中 δ ( f ∗ , f , a ) = R ( f ∗ , a ) − R ( f , a ) \delta (f^*, f, a)= R(f^∗, a)-R(f, a) δ(f,f,a)=R(f,a)R(f,a) R ( f , a ) R(f, a) R(f,a)是标量值奖励,可以通过比较标注的答案 a a a和答案 a ′ = f ( K ) a'=f(\mathcal K) a=f(K)来计算。Peng et. al (2017)选择的奖励函数是F1分数。训练示例 ( q , a ) (q, a) (q,a)的最违反边界目标因此定义为:
max ⁡ ( 0 , s θ ( q , f ^ ) − s θ ( q , f ∗ ) + δ ( f ∗ , f ^ , a ) ) , (9) \max(0, s_\theta (q, \hat f )-s_\theta (q, f^∗)+\delta (f^∗, \hat f, a )),\tag{9} max(0,sθ(q,f^)sθ(q,f)+δ(f,f^,a)),(9)
其中 f ^ \hat f f^是使用等式(8)计算的。 请注意,MMR方法仅更新参考逻辑形式和最违反(most-violating)逻辑形式的分数。 MMR从本质上泛化了非二元奖励函数的成对铰链损失。

下面,我们讨论现有方法如何设计打分函数 s θ ( q , f ) s_\theta (q, f) sθ(q,f),然后讨论用于在基于排序的方法中查找候选逻辑形式的解析算法。

编码方法和打分函数 用于编码问题和逻辑形式的基于神经网络的模型的复杂度各不相同,从基于简单嵌入的模型到循环或卷积模型。

Bordes et al. (2014)提出了第一个基于神经网络的KGQA方法来回答与涉及多个实体和关系的形式查询相对应的问题,并在WebQuestions上评估他们的方法。他们将问题表示为问题中词的词袋向量,将逻辑形式也表示为词袋向量,该向量表示逻辑形式中是否存在某个关系或实体(例如,10101表示逻辑形式中存在词典中第1、3、5个词作为关系或实体)。然后,使用神经嵌入模型对这些稀疏的词袋表示进行编码,并计算出问题中词的嵌入和、以及逻辑形式中实体和关系的嵌入的和,从而得出问题和逻辑形式的的固定长度向量表示。通过计算所得向量之间的点积来对它们的匹配程度进行打分。

Dong et al. (2015)通过引入多列CNN改进了基于简单嵌入的方法,该CNN产生了三种不同的基于向量的NLQ表示。类似于上述方法,他们使用基于嵌入的模型,对于每个NLQ表示,为逻辑形式创建三种不同的向量表示,分别通过编码(i)问题中提到的实体与答案实体之间的关系路径,(ii)连接到上述路径的实体和关系的1跳子图,以及(iii)答案类型信息。计算问题表示及其对应的逻辑形式表示之间的点积之和,以获得最终分数。(2019-AAAI-Improving Natural Language Inference Using External Knowledge in the Science Questions Domain有类似思想)

Zhang et al. (2016)提出了一种基于注意力的NLQ表示,并通过使用预训练的TransE模型(Bordes et al., 2013)嵌入实体和关系,将KG的结构信息加入到基于排序的KGQA模型中。他们采用多任务训练策略分别优化TransE和KGQA目标。

在Dai et al.(2016)和Lukovnikov et al. (2017)中,使用结构信息(例如实体类型向量和预训练的KG嵌入)也被证明对KGQA任务有益。此外,Lukovnikov et al. (2017)探索了构建词级和字符级的问题表示。请注意,这些方法专注于任务的子集,即回答只有一个实体和关系的简单问题,并相应地在SimpleQuestions上训练其模型。这些以及其他有关简单问题的工作通常对逻辑形式中的主语实体和关系分别编码,并根据给定的NLQ对它们进行排序,而不是将它们一起看做形式查询语言表达式。Bordes et al. (2015)是一个例外,对整个三元组进行排序。

Luo et al. (2018)不是将KG的结构信息,而是将本地语义特征合并到NLQ表示中。为此,他们提取NLQ中提到的实体与标注的wh-token(包括 “what”, “where”, “when”, “who”, “which” or “how”)之间的依赖关系路径,并对依赖关系路径和NLQ符号进行编码。

Yih et al. (2015)使用CNN对图结构化逻辑形式(称为查询图)进行编码,通过将其展平为符号序列。 Yu et al. (2017)扩展了他们的方法,使用双向LSTM编码逻辑形式。他们使用两种嵌入对关系进行编码:特定于关系的向量表示以及关系中符号的词级向量表示。

上面讨论的方法是在Freebase知识图谱上实现的。 Maheshwari et al. (2019)提出了一种基于注意力的方法,为逻辑形式中每个关系计算NLQ的不同表示,并在LC-QuAD和QALD-7上评估其方法。通过在LC-QuAD上预训练模型并在QALD上进行微调,他们证明跨KGQA数据集进行转移学习是抵消普遍缺乏训练数据的有效方法。此外,他们的工作表明,KGQA使用预训练的语言模型(Devlin et al., 2019; Radford et al., 2019; Yang et al., 2019)是进一步提高模型性能的潜在有益技术。 Lukovnikov et al. (2019)还探讨了在SimpleQuestions(使用Freebase)上执行KGQA任务的过程中使用预训练的语言模型。

4.2.2 基于排序的解析算法

本节和嵌入部分的内容可以用于KG based commonsense inference

如上所述,搜索候选逻辑形式是训练和推理基于排序的解析算法的关键步骤。在推理过程中,将使用搜索过程来创建形式化查询候选集 C ( q ) \mathcal C(q) C(q),然后使用评分函数对其进行排序。搜索空间的大小主要取决于系统要解决的NLQ的复杂性。在弱监督的情况下,在没有正确标注的(gold annotated)形式查询的情况下,训练期间需要额外的搜索过程,以猜测能解决给定NLQ的正确答案的隐形式查询。可以使用类似的搜索过程来生成训练排序模型所需的负样本。

一般来说,搜索过程基于多种技术来限制候选空间,例如:

(i)使用现成的实体链接工具生成候选实体,并将搜索空间限制为这样的形式查询,它们仅包含与候选实体的一定距离内找到的实体和关系(通常以关系遍历的数量来衡量,也称为hop),

(ii)限制形式查询中使用的关系数量,

(iii)采用波束搜索,这是一种启发式搜索算法,维护大小为K的一个波束,即,在当前模型下,一组最多为K个具有最高概率的不完整输出序列;在预测过程中的每个时间步上,波束中的每个序列都会使用所有可能的下一个动作或符号进行扩展,并且扩展后的序列的概率将通过打分函数给出,随后仅在波束中保留K个最可能的序列,

(iv)严格修剪无效或冗余的逻辑形式,包括违反形式语言的语法约束,或者不符合KG结构以及其他规则和启发式的语法形式。

Bordes et al. (2014)和Dong et al. (2015)使用(i)和(iii),即他们找到问题中提到的实体,并使用波束搜索机制和排序模型迭代构建逻辑形式,一次预测一个。Xu et al. (2016)则提出了一种多阶段方法,以更好地处理具有多个约束条件的问题。他们使用句法规则将复杂问题分解为多个简单问题,并使用多通道CNN共同预测基于事实的简单问题中的实体和关系候选对象。 CNN的预测通过从相应实体的非结构化Wikipedia页面提取的文本证据进行验证。他们训练SVM排序分类器(Joachims, 2006)为每个简单问题选择最佳的实体—关系对。

Yih et al. (2015)采用启发式奖励函数,通过多步骤过程生成逻辑形式,首先确定NLQ中提到的实体,然后构建仅由指向答案实体的关系组成的核心链,最后向逻辑形式中添加诸如聚合运算符等约束。逻辑形式(称为查询图)可以视为 λ \lambda λ-DCS中形式查询的语法树(Liang, 2013)。对于给定的NLQ,将在搜索过程的每个阶段生成的部分查询图展平为符号序列。 NLQ和形式查询符号分别由CNN模型编码,并且输出表示的点积作为最终输出得分。

4.3 基于翻译的KGQA

在本节中,我们将重点研究通过训练学到生成构成逻辑形式的符号序列的方法,而不是学习在一组预先生成的候选者中选择正确的逻辑形式的方法。

这时,语义解析被建模为翻译问题,我们需要将NLQ q q q翻译为形式查询 f f f,当在源KG K \mathcal K K上执行时,可以期望返回预期的答案。将一种语言的序列映射为另一种语言的序列的一种流行方法是使用神经序列到序列(seq2seq)模型。此类模型首先引入机器翻译,即将一种自然语言的句子映射到另一种自然语言的对应句子 (Bahdanau et al., 2014; Luong et al., 2015)。经过一些修改,该神经体系结构已广泛应用于语义解析 (Dong and Lapata, 2016; Jia and Liang, 2016; Guo et al., 2018a; Zhong et al., 2017; Xu et al., 2017; Sun et al., 2018),尤其是针对KGQA任务 (He and Golub, 2016; Liang et al., 2017; Yin et al., 2018; Cheng and Lapata, 2018; Guo et al., 2018b)。

4.3.1 翻译模型

典型的神经序列到序列模型由编码器、解码器和注意力机制组成。编码器对输入序列进行编码,为输入序列中的每个符号创建上下文相关的表示。解码器生成输出序列,一次生成一个符号,根据先前生成的符号以及输入序列来生成。注意力机制(Bahdanau et al., 2014; Luong et al., 2015)建模输入和输出序列之间的对齐,这已被证明是翻译模型非常有用的归纳偏置( https://en.wikipedia.org/wiki/Inductive_bias)。在神经序列到序列模型中,通常使用RNN编码输入并预测输出标记。也可以选择其他编码器/解码器网络,例如CNN和Transformer(Vaswani et al., 2017)。由于逻辑形式通常是树结构的,并且基本的序列解码器没有显式地利用树的依赖关系,因此有许多工作着眼于开发更多结构化的解码器(请参见第4.3.1节Model Variations)。

形式上,给定输入词汇表 V I \mathcal V^I VI T T T个符号的输入序列 q 0 … T q_{0 \ldots T} q0T和输出词汇表 V O \mathcal V^O VO T ∗ T^* T个符号的输出序列 f 0 … T ∗ f_{0 \ldots T^*} f0T,带有参数 θ \theta θ的翻译模型建模给定输入序列生成整个输出序列的概率 p θ ( f 0 … T ∗ ∣ q 0 … T ) p_\theta (f_{0 \ldots T^*}| q_{0 \ldots T}) pθ(f0Tq0T)。整个输出序列的概率可以分解为生成符号的概率积
p θ ( f 0 … T ∗ ∣ q 0 … T ) = ∏ j = 0 T ∗ p θ ( f j ∣ f < j , q 0 … T ) , (10) p_\theta (f_{0 \ldots T^*}| q_{0 \ldots T})= \prod_{j=0}^{T^*}p_\theta (f_j|f _{pθ(f0Tq0T)=j=0Tpθ(fjf<j,q0T),(10)
其中 f < j f_{f<j是到目前为止生成的符号的序列,即f < j = ( f 0 , … , f j − 1 ) _{<j=(f0,,fj1)。预测时,通常在每个时间步选取最可能的标记来生成输出序列,这也称为贪婪搜索,即
f j = argmax f ∈ V O p θ ( f ∣ f < j , q 0 … T ) , (11) f_j = \mathop{\text{argmax}}\limits_{f\in\mathcal V^O}p_\theta (f|f_{fj=fVOargmaxpθ(ff<j,q0T),(11)
或使用波束搜索(请参阅第4.2.2节)。

在下文中,我们讨论在全监督和弱监督的条件下训练基于翻译的KGQA模型的常见方法。

全监督 在全监督的设置中,模型 p θ ( f j ∣ f < j , q 0 … T ) p_\theta (f_j|f_{pθ(fjf<j,q0T)的参数 θ \theta θ通常在给定训练集中 D = { ( q ( i ) , f ( i ) ) } i = 1 N \mathcal{D} = \{ (q^{(i)}, f^{(i)})\}_{i=1}^N D={(q(i),f(i))}i=1N的序列对的情况下,通过似然最大化训练,即通过最大化以下目标:
∑ ( q , f ) ∈ D p θ ( f 0 … T ∗ ∣ q 0 … T ) . (12) \sum_{(q,f)\in \mathcal D}p_\theta (f_{0 \ldots T^*}| q_{0 \ldots T}).\tag{12} (q,f)Dpθ(f0Tq0T).(12)
弱监督 在弱监督的情况下,训练数据 D = { ( q ( i ) , a ( i ) ) } i = 1 N \mathcal{D} = \{ (q^{(i)}, a^{(i)})\}_{i=1}^N D={(q(i),a(i))}i=1N仅由成对的NLQ和相应的执行结果组成。已经提出了仅使用弱监督来训练语义解析器的翻译模型的不同方法。即使所提出的方法在目标函数和训练过程上有所不同,但它们都基于使产生正确执行结果的似然最大化的一般原理。

以下训练方法通常用于弱监督基于翻译的语义解析模型:

  1. 最大边界似然(MML):最大边界似然方法遵循与全监督中使用的最大似然(ML)方法类似的思想,但不是最大化产生正确的逻辑形式的概率,而是最大化产生正确执行结果的概率。为此,MML在所有可能的逻辑形式上边缘化( f f f的边缘概率),从而最大化以下目标函数:
    ∑ ( q , a ) ∈ D log ⁡ p ( a ∣ q ) = ∑ ( q , a ) ∈ D log ⁡ ∑ f ∈ F p ( a ∣ f ) p θ ( f ∣ q ) (13) \sum_{(q, a) \in \mathcal{D}} \log p(a | q)=\sum_{(q, a) \in \mathcal{D}} \log \sum_{f \in \mathcal{F}} p(a | f) p_{\theta}(f | q)\tag{13} (q,a)Dlogp(aq)=(q,a)DlogfFp(af)pθ(fq)(13)
    其中 a a a是对NLQ q q q的正确答案,并且在所有可能的逻辑形式 F \mathcal F F的空间中所有 f f f上计算和。由于语义解析环境通常是确定性的(即,当KG保持固定时,执行相同的查询始终得到相同的答案) ,则 p ( a ∣ f ) p(a | f) p(af)项为1(如果 f f f的执行产生了正确的结果 a a a,即 f ( K ) = a f(\mathcal{K})=a f(K)=a)或0,则可以简化符号
    ∑ ( q , a ) ∈ D log ⁡ ∑ f ∈ F ∗ p θ ( f ∣ q ) (14) \sum_{(q, a) \in \mathcal{D}} \log \sum_{f \in \mathcal{F}^{*}} p_{\theta}(f | q) \tag{14} (q,a)DlogfFpθ(fq)(14)
    其中 F ∗ \mathcal F^{*} F是通过执行可以得到正确答案 a ( i ) a^{(i)} a(i)的一组一致逻辑形式。通常使用在线波束搜索来近似 F ∗ \mathcal F^{*} F。但是,也可以事先计算出 F ∗ \mathcal F^{*} F的近似值(Pasupat and Liang, 2016),并在整个训练过程中保持固定。

  2. 使用预期奖励(ER)进行强化学习:弱监督语义分析的问题也可以作为强化学习(RL)问题来解决。实际上,我们可以将翻译模型视为参数化的策略,给定一个状态,该状态由KG K \mathcal K K,输入 q q q和解码历史 f < t f_{f<t组成,决定采取什么措施才能使奖励最大化。在我们的例子中,奖励函数 R ( f , a ) R(f,a) R(f,a)可以是一局(episode)结束时(解码阶段结束)的二元奖励,如果执行产生的轨迹(trajectory,这里是逻辑形式) f f f得到正确答案 a a a,则奖励为1,否则为0。用于语义解析的RL的特征如下(1)确定性环境(通过对当前状态执行操作而产生的下一个状态始终相同)和(2)稀疏的奖励(奖励仅在一局结束时给出,并且鉴于大量可能的逻辑形式,大多数情况下可能为0)。此外,语义解析的弱监督训练的特点是奖励不足(Agarwal et al., 2019),这可能导致学习到伪逻辑形式。但是,仅基于执行结果的奖励函数不能考虑这一点。

    通过优化预期奖励来训练策略梯度方法:
    ∑ ( q , a ) ∈ D ∑ f ∈ F R ( f , a ) p θ ( f ∣ q ) (15) \sum_{(q, a) \in \mathcal{D}} \sum_{f \in \mathcal{F}} R(f, a) p_{\theta}(f | q)\tag{15} (q,a)DfFR(f,a)pθ(fq)(15)
    公式对所有可能的逻辑形式求和,实际上是使用近似策略(例如蒙特卡洛积分)(即基于从策略中采样的轨迹)进行估算的。

  3. 迭代最大似然(IML):迭代最大似然(IML)目标(Liang et al., 2017)最大化了在所有样本上解码所有一致逻辑形式的概率:
    ∑ ( q , a ) ∈ D ∑ f ∈ F ∗ log ⁡ p θ ( f ∣ q ) (16) \sum_{(q, a) \in \mathcal{D}} \sum_{f \in \mathcal{F}^{*}} \log p_{\theta}(f | q)\tag{16} (q,a)DfFlogpθ(fq)(16)
    当使用ER训练策略梯度方法时,(Liang et al., 2017)证明,通过使用IML填充各种轨迹(即逻辑形式)的初始缓冲区可以实现更好的探索,然后这些轨迹将用于预训练RL模型。

  4. MAPO:为了减少ER估计器的方差,Liang et al. (2018)提出了一种集成内存缓冲区的新颖方法。他们将ER目标重新构造为内存缓冲区 C ( q ) \mathcal C(q) C(q)内部和外部的动作序列之和:

∑ ( q , a ) ∈ D ∑ f ∈ C ( q ) R ( f , a ) p θ ( f ∣ q ) + ∑ f ∉ C ( q ) R ( f , a ) p θ ( f ∣ q ) (17) \sum_{(q, a) \in \mathcal{D}} \sum_{f \in \mathcal C(q)} R(f, a) p_{\theta}(f | q)+\sum_{f \notin \mathcal C(q)} R(f, a) p_{\theta}(f | q)\tag{17} (q,a)DfC(q)R(f,a)pθ(fq)+f/C(q)R(f,a)pθ(fq)(17)

使用系统探索填充每个样本 i i i的内存缓冲区 C ( q ) \mathcal C(q) C(q),这可以防止重新访问已经探索的序列。当进一步探索这两个term时(请参见Liang et al. (2018)),我们可以看到在训练开始时为内存缓冲区中轨迹分配的权重较低,这时策略为缓冲的轨迹分配低概率。为了加快训练,Liang et al. (2018)提出了内存权重裁剪,相当于给缓冲的轨迹分配至少一定值的重要性权重。Liang et al. (2018)的实验结果显示了所提出的MAPO步骤与通用基线相比有显着改进,并表明系统探索和内存权重裁剪对于实现高性能至关重要。

Agarwal et al. (2019)认为,除了可选的熵项之外,MAPO并不鼓励探索,这可能是有问题的。他们提出了一个称为MAPOX的MAPO变体,其中初始缓冲区还额外用IML找到的序列来填充。

Guu et al. (2017)和Agarwal et al. (2019)指出,RL和MML方法的缺点是在当前模型策略的指导下进行轨迹的探索,这意味着在当前模型下具有较高概率的逻辑形式更有可能被探索。因此,探索可能会忽略低概率的逻辑形式。在存在许多伪逻辑形式而只有少数正确逻辑形式的情况下,更有可能首先探索伪逻辑形式。一旦策略确定了这些高回报(但是伪)逻辑形式,在训练过程中探索就会越来越偏重于它们,从而导致泛化性差。一种常见的解决方案是执行 ϵ \epsilon ϵ-贪婪探索,Guu et al. (2017)将其从RL扩展到MML。Guu et al. (2017)还提出了一项精英更新规则(meritocratic update rule),该规则可以更新参数,从而使概率在一致的逻辑形式中更均匀地分布。对于MML和ER目标的更详细讨论,我们请读者参考Guu et al. (2017),Norouzi et al. (2016),Roux (2017)和Misra et al. (2018)的工作。

Agarwal et al. (2019)提出了一种元学习方法,用于学习一个辅助奖励函数,用于减少MAPOX目标中伪逻辑形式的影响。训练辅助奖励函数,以使在由辅助奖励函数增强的奖励下对策略的更新导致对验证集数据更好的泛化。

Cheng and Lapata(2018)提出了一种基于神经解析器排序器的弱监督语义解析方法,其中序列到序列解析模型(用波束搜索和IML训练)与基本排序模型(用MML训练)以及逆解析模型结合使用。逆解析模型是一种生成模型,可以从解析模型生成的逻辑形式中重构原始问题。重建损失用于进一步完善解析模型,以解决伪逻辑形式的问题。请注意,此处的逻辑形式被视为隐变量。

KGQA的另一类弱监督神经方法以完全可微的端到端方式执行多步知识库推理。TensorLog是最近开发的可微逻辑,它通过对矩阵进行一系列可微数值运算来执行近似一阶逻辑推理。受TensorLog启发的NeuralLP(Yang et al., 2017)通过可微的图遍历操作执行多步知识库推理,学习将输入问题映射到答案。

神经程序员(Neelakantan et al., 2015)是一种基于完全可微的编码器/解码器的体系结构,并增加了一组手工定义的离散运算符(例如argmax和count),该结构可用于基于表的复杂问答Neelakantan et al. (2017)。离散运算符允许模型通过以可微的方式组合算术和逻辑运算来归纳出隐逻辑形式(latent logic forms )。使用弱监督信号,即执行正确程序的结果,来训练模型。

相比之下,神经符号机框架(Liang et al., 2017)组合了(i)可微的神经程序员,这是一个seq2seq模型加上一个键—变量内存,可以将自然语言的查询转换为程序,以及( ii)一种符号计算机(具体地说是Lisp解释器),使用内置函数和代码辅助来实现特定于域的语言,代码辅助用于修剪语法或语义无效的候选逻辑形式并执行它们以获取结果用于计算监督信号。 REINFORCE加上迭代最大似然训练,用于优化奖励程序。Liang et al. (2018)展示了程序内存缓冲区的有效性,以及稳定和扩大训练范围以及减少方差和偏差的技术。

模型的变化 已提出了对标准序列到序列模型的几个扩展,尝试改进用于语义解析的翻译模型,以及一些特定于任务或数据集的扩展。

具有结构化解码器的语义解析器使用相同的序列编码器对NLQ进行编码,但利用查询的分层树结构,在基于常规注意力的序列解码器之上归纳出其他结构。

Dong and Lapata(2016)提出了一种树解码模型,以自上而下的广度优先顺序对查询树进行解码。例如,解码器不将lambda演算逻辑形式(argmin $0 (state:t $0) (size:i $0))(对应于问题“Which state is the smallest?”)解码为序列,而是先解码查询树的最顶层(argmin $0 )​。这里,和是用来表示树结构的人工拓扑符号:是非终端符号,指示期望在其位置上有一个子树,而是序列结束符号,指示其兄弟序列的末尾。在解码此顶层序列之后,两个孩子子树 (state:t $0)和(size:i $0),根据其在两个非终结状态上进行解码。从Geo880,ATIS,JobQueries和IFTTT上的实验结果来看,树解码器引入的归纳偏置似乎可以提高泛化能力。

Alvarez-Melis and Jaakkola (2016)提出了一种改进的树解码器,其中父—子和兄弟—兄弟的信息流是通过两个独立的RNN建模。使用此模型,每个节点都有一个父状态和一个先前的兄弟状态,这两个状态都用于预测节点符号和拓扑决策。他们没有像Dong and Lapata(2016)那样通过人工拓扑符号来建模拓扑决策(即节点是否有子节点或其他兄弟节点),而是在每个时间步使用辅助分类器来预测节点是否有子节点以及节点是否为兄弟节点中的最后节点。消除人工拓扑符号可减少生成序列的长度,这将减少错误。与Dong and Lapata (2016)相似,解码以自上而下的广度优先的方式进行。在IFTTT语义解析数据集上的实验结果表明,通过引入的变化获得了改进。

Cheng et al.(2017; 2018; 2019)开发了基于过渡(transition-based)的神经语义解析器,采用Dyer et al. (2015)提出的Stack-LSTM。 Stack-LSTM以深度优先的顺序对逻辑形式进行解码,在继续处理其兄弟之前对子树进行完全解码。Cheng and Lapata (2018)的Stack-LSTM在子树完成时使用改编的LSTM更新:它回溯到已完成子树的父状态,并计算已完成子树的摘要编码并将其用作下一个LSTM更新的输入。Cheng et al. (2019)还展示了如何使用Stack-LSTM执行基于自底向上的过渡语义解析。Cheng et al. (2017)在GraphQuestions和Spades上获得了最先进的结果,并且在WebQuestions和GeoQueries上与先前工作可比较的结果。Cheng and Lapata (2018)通过使用生成排序器,在弱监督的GraphQuestions、Spades和WebQuestions数据集上进一步提高了Stack-LSTM模型的性能。

复制机制(Vinyals et al., 2015; See et al., 2017; Gu et al., 2016; Jia and Liang, 2016)是seq2seq神经体系结构的增强,可直接从输入序列中复制符号或子序列到输出。尽管语义解析通常不需要它,但对于某些任务或数据集可能很有用。例如,在WikiSQL中,需要一种复制机制来将SQL条件值复制到查询中(Shi et al., 2018; Xu et al., 2017; Zhong et al., 2017)。它也已用于语义解析(Jia and Liang, 2016; Damonte et al., 2019)。

另一个重要方面是符号表示。在大规模知识图谱上回答问题时,我们面临训练数据中不存在的大量实体和关系。因此,一个重要的挑战是找到一种学习实体和关系的表示的方法,可以很好地泛化到未见的实体和关系。将实体和谓词以其表面形式的词、字符或子词单元(BPE / WordPiece)序列表示,而不是对于每个实体或谓词随意赋予一个唯一的符号,这为这些未见或罕见的符号提供了一定程度的泛化。例如,如果表示是在子词级别上学习的,则遇到来自未见的关系的子词时,表示构建网络(编码器)的参数可以利用在可见和不可见的关系之间共享的子词,因此,未见的关系将不再具有不为人知的随机向量表示。

关于问答和语义解析(以及其他NLP任务)的一些工作已经使用了这种计算表示。例如,在WikiSQL上的一些工作还对词级的列名进行编码,以产生表示列的向量(Shi et al., 2018; Sun et al., 2018; Yu et al., 2018)。关于KGQA的一些工作(Yu et al., 2017; Lukovnikov et al., 2017; Maheshwari et al., 2019; He and Golub, 2016)也将KG关系和/或实体分解为词和/或子词级。除了子符号级编码之外,有关符号的其他信息也可以编码并添加到其表示中。例如,Yu et al. (2018)还为针对Spider数据集的模型对表名和列数据类型以及列名词进行了编码。

4.3.2 基于翻译的解析算法

在纯粹基于翻译的语义解析的情况下,解析算法的重点是序列解码,这通常使用如上所述的贪婪搜索或波束搜索完成。

约束解码 如上所述的简单序列到序列模型没有利用目标语言的形式性质。实际上,要生成的输出序列遵循严格的语法规则,这些规则确保了解码表达式的有效性,即可以在给定的KG上执行它们。因此,许多基于翻译的解析算法通过在解码期间使用基于语法的约束来利用这些语法规则,以便仅生成有效的逻辑形式。在训练期间使用这样的约束还有助于将学习和模型能力放在有效逻辑形式的空间上。根据特定的应用程序和数据集,可以对逻辑形式做出合理的假设。这些选择反映在逻辑形式语言定义中。例如,在SimpleQuestions的情况下,假设逻辑形式仅由单个实体和单个关系组成。因此,如果我们要使用翻译模型解决SimpleQuestions,则可以约束解码器在第一步中仅在所有实体中选择,而在第二步中仅在所有关系中进行选择(而不是考虑形式查询语言中所有可能符号的全部输出词汇),此后会自动终止解码。

对于更一般的情况,我们希望表达更广泛的形式查询结构,但是仍然要根据到目前为止解码的序列,在特定时间步上对输出符号施加一些限制。例如,在Cheng et al. (2017, 2019)使用的FunQL语言定义中,限制argmax( x , r x, r x,r)函数的第二个参数为关系符号 r r r。通过仅将允许符号的集合视为在特定时间步的可能输出,可以轻松实现约束解码。但是,根据选定的逻辑形式语言,计算特定时间步允许的符号可能更具挑战性。

增强的解码步骤 Dong and Lapata (2018)的两级Coarse2Fine解码器可以看作是序列解码器和树解码器之间的中间地带。解码器包括两个解码阶段:(1)解码查询模板;(2)填写具体细节。与其他树解码器相比,Coarse2Fine解码器也以自上而下的广度优先的方式进行,但仅限于两个级别。对于查询模板数量有限的情况,Dong and Lapata (2018)还研究了在第一个解码阶段使用模板分类器(而不是解码模板)并在WikiSQL上进行评估。在使用输出状态对细节进行解码之前,可以通过使用双向RNN对生成的模板进行编码来获得两步解码方案的另一项改进。这允许根据模板的整个结构来决定模板的特定参数的生成。

Cheng and Lapata (2018)的工作训练并使用翻译模型进行语义解析。使用波束搜索,从翻译模型中解码出几种逻辑形式,并使用附加的排序模型(请参见第4.3.1节)对波束中的逻辑形式进行重新排序。

5 新兴趋势

在过去的十年中,知识图谱问答一直是重要的研究领域。最新的方法包括查询图候选的使用(Yih et al., 2015; Yu et al., 2017; Maheshwari et al., 2019),神经符号机的使用(Liang et al., 2017),转向回答多实体问题(Luo et al., 2018),迁移学习的应用(Maheshwari et al., 2019)以及基于可微查询执行的弱监督模型的提出(Yang et al., 2017)。 Petrochuk and Zettlemoyer (2018)提出,SimpleQuestions的性能正在接近上限。此外,正如在第3节中讨论的那样,人们普遍将注意力转移到更复杂的逻辑形式上,最近的数据集(Trivedi et al., 2017; Bao et al., 2016; Dubey et al., 2019)证明了这一点。 这些进步为该领域的进一步改进铺平了道路,也是我们在下文概述的新兴趋势和挑战的基础。

查询复杂度:通过WebQuestions(Freebase上的数据集)的比较评估表明,多年来KGQA方法在该任务上的性能不断提高 (Bao et al., 2016)。最近Petrochuk and Zettlemoyer (2018)证明“数据的歧义将[SimpleQuestions上的]性能限制在83.4%”,从而表明该任务的进度比通常认为的要遥遥领先。例如,Yu et al. (2017)提出的,以前表现最佳的基准对SimpleQuestions的准确度为77%,可以视为92.3%(相对83.4)。在WebQuestions中,几个KGQA系统都显示出高性能,大约有85%的问题同样是简单的问题 (Bao et al., 2016),在这种情况下可能会有类似的说法,有待进一步调查。

KGQA社区中常用的知识图谱以及用于促进KGQA的形式化查询语言,可以支持更多细微差别信息检索,涉及更长的核心链、多个三元组、联接、联合和过滤等。这些细微差别的检索机制在社区中日益被视为下一组挑战。最近发布的数据集,例如 ComplexQuestions (Bao et al., 2016),GraphQuestions (Su et al., 2016) ,LC-QuAD (Trivedi et al., 2017)和LC-QuAD 2(Dubey et al., 2019)等数据集重点在于创建具有聚合、约束和更长关系路径的复杂问题,而当前系统在这些问题上表现不佳,并且有可能实现重大改进。

稳健性:在过去的几年中,基于深度学习的系统已在多项任务上达到了最先进的性能,但是,越来越多的发现指出了这些系统的脆弱性。例如,Jia and Liang (2017)通过在输入段落(给定问题,系统需要从中选择相关范围)中对抗性地添加另一句话,证明了在SQuAD上训练的阅读理解任务的16个模型的F1得分下降了35%-75%(Rajpurkar et al., 2016)。随后,发布了上述数据集的新版本,其中包含无法回答的问题(Rajpurkar et al., 2018),从而导致了更强大的阅读理解方法(Hu et al., 2018; Kundu and Ng, 2018)。据我们所知,还没有任何工作可以量化或改善KGQA模型的鲁棒性。这样的进步将对KGQA系统在生产环境中的适用性起重要作用。我们认为,健壮性查询的一个很好的起点是利用最近的通用对抗输入框架。 Ribeiro et al. (2018)提出了一种简单,可泛化的方式来生成语义上等效的对抗句子。

KG之间的互操作性:在上一节中讨论大量KGQA方法时,我们发现只有少数技术在其实验中包括DBpedia和Freebase的数据集,尽管它们都是通用KG。这是因为两个KG的固有数据模型相差很大,这使得即使在不考虑花在迁移查询执行和候选生成子系统上的工程工作量的情况下,提取对应于一组(question, Freebase answer)对的(question, DBpedia answer)对也不是一件容易的事(反之亦然)。Tanon et al. (2016)最好地说明了这一点,讨论了将知识从Freebase迁移到Wikidata的不同障碍及其解决方案。遵循类似的方法,Diefenbach et al. (2017)将SimpleQuestions数据集迁移到Wikidata,在该KG上产生21,957个可回答问题。 Azmy et al. (2018)将其迁移到DBpedia(2016年10月发行),并提供43,086个可回答的问题。

相应地,KGQA系统间的互操作性是另一个挑战,直到最近才引起社区的关注(Abbas et al., 2016)。下面的双重挑战(i)学习识别出给定NLQ中提到的多个KG实体或关系,以及(ii)学习与多个KG的数据模型相对应的多个解析结构,尽管很困难(Ringler and Paulheim, 2017),最新的(即将推出的)DBpedia版本在一定程度上有所帮助,其数据模型与Wikidata的数据模型兼容。对于知识建模策略的深入讨论以及主要的大型开放式KG的比较,我们向有兴趣的读者推荐(Ismayilov et al., 2018; Ringler and Paulheim,2017; Farber et al., 2018)。

多语言能力:多语言能力,即以多种语言理解和回答问题的能力对于KGQA系统的广泛接受和使用至关重要。随着覆盖范围的变化,包括DBpedia和Wikidata在内的大部分知识图谱具有对应于资源的多语言形式,这为在KGQA系统中启用多语言提供了一个重大挑战。

QALD挑战,目前是第9次迭代,将多语言问答作为其任务之一。数据集以及DBpedia上的QALD-9多语言QA包含多达八种语言的250多个问题,包括英语、西班牙语、德语、意大利语、法语、荷兰语、罗马尼亚语、北印度语和波斯语。(Diefenbach et al., 2018)提出了一种非神经生成和排序方法,该方法具有最少的语言相关组件,可以替换以支持新语言。(Radoev et al., 2018)建议使用一组多语言的词汇—句法模式来理解法语和英语问题的意图。但是,在数据驱动的KGQA方法中,我们还需要多种语言(数据集)的涌现。由于这些方法依靠监督数据来学习KG实体或关系与问题中符号之间的映射;缺乏大规模、多语言的KGQA数据集阻碍了这些方法。

6 结束语

知识图谱问答已经成为一个多学科的研究领域,吸纳了语义网、机器学习和自然语言理解社区的见解和解决方案。在本文中,我们概述了针对该任务的基于神经网络的方法。

我们将现有方法大致分为三类:(i)基于分类的方法,其中给定一个问题,使用神经模型预测它属于一组固定的类中的哪一个,(ii)基于排序的方法,其中神经网络用于比较不同的候选逻辑形式与问题,以选择排序最高的逻辑形式,以及(iii)基于翻译的方法,网络学习将自然语言问题(NLQ)转换成其相应的(可执行)逻辑形式。在对现有方法进行概述的同时,我们还将讨论一些用于弱监督模型训练的技术,以应对由于训练数据缺乏逻辑形式而引起的挑战。我们总结了通常用于对这些方法进行基准测试的现有数据集和任务,并注意到该领域的进步已使现有数据集(例如SimpleQuestions)的性能饱和,从而出现了更新、更困难的挑战以及更强大的机制应对这些挑战。

在本文结尾处,我们讨论了KGQA研究领域中的一些新兴趋势和存在的差距,得出结论,就有效应用这些系统而言,需要对这些方法的互操作性、多语言性和鲁棒性进行调查和创新。

你可能感兴趣的:(NLP,深度学习)