论文简读—Imitation learning for language generation from unaligned data

文章目录

背景

在阅读其他论文时看到有引用这篇文章的LOLS-NLG模型,所以来看看这是个什么玩意儿。
原文项目代码(Java版)

首先说一下LOLS,是Locally Optimal Learning to Search的缩写,是模仿学习中对Structure Prediction的一种算法,其他的算法还有数据聚合(DAgger)、基于搜索的结构预测(SEARN)等。

如果对模仿学习不甚了解,可以先通过这篇综述预热一下。

再说一下NLG。从机器学习角度(ML_based)来看,文本生成就是一个结构化输出预测的过程,可按照训练集分为基于aligned训练集和unaligned训练集两类。这里的align是指要指定好MR数据集的每一个词和相关语法模板,所以需要很多先验知识。

这篇论文就是使用模仿学习在unaligned数据上进行文本生成的研究。示例如下:
在这里插入图片描述

1 NLG

这里我们的NLG的输入是属性集合 C C 和属性值词典 D c D_c ,词典中的词是和该属性共现的所有词。输出是一个动作序列 A = ( A c , A w ) A=(A_c, A_w) a c a_c 是属性选择动作, a w a_w 是属性值选择动作。
在这里插入图片描述
整个过程非常简单,先选择属性,再选择这个属性的一个属性值。但是选择方式是通过一个分类器进行选择的。这个分类器是怎么来的呢?就要说我们的LOLS了

2 LOLS-NLG

回顾一下模仿学习,首先提供专家决策数据,每个决策包含状态和动作序列,然后构建新的【状态-动作对】集合,然后把状态作为feature,动作作为label,进行分类(离散动作)或回归(连续动作)学习,目的是找到最优策略使得输出的状态-动作轨迹分布和输入的相似。
套着来看LOLS-NLG过程,
输入部分介绍一下CSCL是cost-sensitive learning algorithm,对不同的分类错误赋予不同的代价,CSC模型以最小的代价为目标。
输出的是学到的最优策略,包含两个分类器,一个用于预测属性,一个用于预测既定属性的值。

在这里插入图片描述 挖坑后续补这个过程。反正两个训练器都是通过CSC进行训练的。