Title
《Compositional Generalization by Learning Analytical Expressions》
Abstract
Compositional generalization is a basic and essential intellective capability of human beings, which allows us to recombine known parts readily. However,existing neural network based models have been proven to be extremely defificient in such a capability. Inspired by work in cognition which argues compositionality can be captured by variable slots with symbolic functions, we present a refreshing view that connects a memory-augmented neural model with analytical expressions, to achieve compositional generalization. Our model consists of two cooperative neural modules, Composer and Solver, fifitting well with the cognitive argument while being able to be trained in an end-to-end manner via a hierarchical reinforcement learning algorithm. Experiments on the well-known benchmark SCAN demonstrate that our model seizes a great ability of compositional generalization, solving all challenges addressed by previous works with 100% accuracies.
人类具有组合泛化的能力,即将已知部分进行重组,但是NN缺乏这种能力。本文发现组合性可以被带有符号函数的变量槽进行捕捉,所以将记忆增强的神经模型与解析表达式连接起来实现组合泛化。模型有两个模块组成Composer、Solver,通过分层强化学习以端到端的方式进行训练。
Introduction
如果一个人类学习了”walk”,”jump”,”walk twice”,那么”jump twice”的意思肯定能懂,这依赖于语言的特性——组合性,即复杂表达的含义取决于组成部分的含义以及他们的组合方式。
Lake and Baroni认为组合泛化对于帮助NN理解域外知识是非常重要的能力,他们使用SCAN数据集(简化版本CommAI Navigation)进行测试,发现在MT上效果并不好,没有任何基于神经的模型能够在没有额外资源的情况下成功地解决SCAN的所有组成挑战。
本文提出的模块有Composer,Solve。Composer将非结构化表达转化为结构化表达,Solver通过访问Memery来理解表达式。
Compositional Generalization Assessment
对于组合泛化的学习仍在初期,前人一般使用人工数据集进行评估,本文使用系统性和生产力来进行评估
系统性:对已知部分进行重组,三个任务:
- Add Jump.针对JUMP进行划分训练集,测试集。包含”jump”但不全是”jump”的构成测试集,其余构成训练集
- Around Right移除训练集中包含”around right”的组成命令。测试从”left”到”right”的泛化能力。
- Length输出长度超过24的命令测试中没有出现
生产力:不仅能重组已知的部分,但也要评估他们是否能有效泛化到超过训练长度的输入,语言允许一组理论上无限可能的句子。
Composer将源表达式中可识别的表达式用变量代替,通过Solver进行语义分析得到目标表达式,然后提取Memory中存储的信息替换变量获得常量目标表达式,最后使用得到的结果对Memery进行更新,循环操作直到翻译完成。

合并过程是通过首先枚举当前层的所有可能的父节点,然后选择合并得分最高的节点来实现的。