Language to Logical Form with Neural Attention论文解读

  • 摘要:

语义解析的目的是将自然语言映射到机器可解释的意义表示。传统的方法依赖于高质量的词典、手工构建的模板和语言特征,它们要么是特定域的,要么是特定表示的。在本文中,我们提出了一种基于注意力增强的encoder-decoder模型的一般方法。我们将输入的自然语言编码为向量表示,并通过调节编码向量上的输出序列或树来生成它们的逻辑形式。四个数据集上的实验结果表明,我们的方法执行竞争力,而不使用手工工程的特点,很容易适应跨域和意义表示。

  • 概括:

这篇文章,用到了当下最火的深度学习方法,用带有attention机制的encoder-decoder模型,将自然语言作为输入,得到机器能看懂的逻辑表示作为输出。

Language to Logical Form with Neural Attention论文解读

文章提出了两种模型变体,第一种将语义分析视为序列转化任务,而我们的第二种模型配备了分层树解码器,其明确地捕获逻辑形式的组成结构。

传统的方法依赖于高质量的词典、手工构建的模板和语言特征,它们要么是特定域的,要么是特定表示的。相反,文章提出了一种通用方法,可以很容易地适应不同的域和意义表示。

3. 问题公式化

自然语言输入  q = x1 · · · x|q|   它的意义表示的逻辑形式 a = y1 · · · y|a|. 条件概率:

Language to Logical Form with Neural Attention论文解读

文章的方法包括一个编码器,将自然语言输入q编码成矢量表示形式,解码器以编码矢量为条件学习并生成y1...ya。 在下文中,我们描述两个模型,其中计算p(a | q)的方式不同。

3.1 seq2seq模型

Language to Logical Form with Neural Attention论文解读

将输入q和输出a都看作是序列。如上图所示,编码器和解码器是两个不同的具有长期短期记忆(LSTM)单元的递归处理序列的L层递归神经网络。并且!编码器和解码器所使用的LSTM参数不同,即不共享参数!

隐层单元:其中LSTM()是使用的LSTM函数。

Language to Logical Form with Neural Attention论文解读

3.2 seq2tree模型

seq2seq模型忽略了逻辑形式的层次结构性。因此,提出一种层次树解码器,能够更有效的解决自然语言表示的组合性质。

Language to Logical Form with Neural Attention论文解读

seq2tree模型的encoder部分与seq2seq模型相同,但是decoder部分完全不同,因为它以自顶向下的方式生成逻辑形式。为了表示树的结构,用非终结符<n>来表示一棵子树subtree。特殊符号<s>和<(>表示序列的开始以及非终结的序列。符号</s>表示一个序列的结束。

将输入序列编码后,层次树decoder用RNN在对应于逻辑形式a的部分的子树以1的深度生成符号。如果预测符号为<n>,则进行非终结的隐层的解码。这一过程直到没有非终结符出现为止。为了更好地利用父非终结者的信息,文章引入了一个parent-feeding连接,其中父非终结者的隐藏矢量与输入串联并馈送到LSTM中。

Language to Logical Form with Neural Attention论文解读

这个例子的解码分为两步:

1. 一旦输入序列q编码后,首先在深度为1的这层生成y1,...,y4,直到预测符出现</s>。

2. 接下来,通过非终结符t3的隐层向量生成y5,y6。


3.3 注意力机制 attention mechanism

Language to Logical Form with Neural Attention论文解读

3.4 模型训练

模型训练的目标是在给定自然语言作为输入的情况下,最大化生成的逻辑形式的可能性。目标函数为:

Language to Logical Form with Neural Attention论文解读

3.5 推理inference

测试时,对于输入序列q,预测逻辑形式:

Language to Logical Form with Neural Attention论文解读

其中,a'表示一个候选输出。然而,想要遍历所有可能的结果来得到最优预测是不现实的。所以,将p(a|q)进行分解,然后用贪心搜索greedy search或者beam search来一个一个的生成tokens。

Language to Logical Form with Neural Attention论文解读

4. Experiments

实验在4⃣️个数据集上进行,JOBS,GEO,ATIS,IFTTT。

领域越复杂,seq2tree模型优于seq2seq的优势越明显。总体来说,seq2tree模型优于seq2seq。