Abstract
这篇文章也是关于semantic parser的文章,发在了ACL 2019年上,以往一些基于深度学习的semantic parser取得了很大的进步,但是如果手动去验证这些生成的程序就会发现有很多的问题,比如生成的程序不协调,不合适。这篇文章提出的reranker对n个最好的predicted MRs做排序,也就是利用ranking方法做优化。rank的优化方法的文章之前有一篇NEURAL PROGRAM PLANNER FOR STRUCTURED PREDICTIONS Jacob有点像,也是用ranking做的优化。实验在semantic parser和python code generation上测试。
Introduction
在一些semantic parser中,他们通常会出现一些错误,语义不匹配,不兼容等。
top 1的语句其实不正确。
作者发现在n个候选者中,作者发现这些list中是包含有gold-standard的,于是作者希望能提出一个reranking方法重新对这些list排序。rerank方法是基于两个特征。1)依照生成的logic form重新构建input text评估他们的兼容性。2)matching model用于评价logic form 和 input text的兼容性。
Reranking Model
reranker R是对n个list排序的工具。
z
=
a
r
g
m
a
x
z
∈
Z
R
(
z
,
x
)
z = argmax_{z \in Z}{R(z, x)}
z=argmaxz∈ZR(z,x)。
ranking model主要是通过两个feature来完成。
Generative Reconstruction Feature
作者是用一个带了注意力机制的sequence to sequence模型实现,然后通过极大似然估计出 p ( z − > x ) p(z -> x) p(z−>x)。
Discriminative Matching Feature
matching model主要是给出x和z的匹配程度。这个模型也是通过神经网络实现。
将z和x的token用注意力机制计算出结果。
Token Count Feature Besides
加入z的长度,防止生成过短的程序。
Train
上面的feature和我们人为构建的feature都不一样,这些由神经网络给出的feature是需要训练的。训练有三个步骤1)训练base parser。2)训练reranking model。3)微调特征权重。
第一步的训练base parser是采用官方所给的配置,然后使用beam search训练模型。
第二步是利用dataset的training里面的gold MR训练,看到这我才意识到原来他的数据集是带有MR的,我还以为是个无监督的训练。
但是他这个数据集有监督的学习都比别人无监督要差那么多,我怀疑是数据集的问题。
Conclusion
这篇文章能够发在ACL我觉得有两点原因,最主要的应该是提出的模型在数据集上都有不同程度的提升,实验做的非常多,虽然模型上贡献不太够,但是实验做的多。其次是模型本身也有创新点。ranking做优化的文章在semantic parser若监督里面很少见到,应该是无监督的原因。这篇文章提出的模型带有了表格,我还以为是无监督,很好奇他的ranking,后来才发现他这个是有监督的。