Unsupervised data-to-text with Scheme-guided Cycle-Training = ## Motivation Data-to-text 有广泛的引用,因为不同任务所采用的数据格式不同,很多时候收集到的data样本是不完整或不足的,但几乎所有情况下,我们是有明确的scheme的,这是因为这些数据都是人工按某种规范来生成的,比如表格中每个列是有定义的,语义标签是事先定义好的,以及对话中每个步骤是有语法规定的(有限状态自动机或上下文无关文法)。总而言之,data-to-text中的data是有范围,符合某种固定规范的。那么是否可以通过数据规范和海量文本,无监督的构架二者之的联系? ## Assumption 我们有scheme $\mathbb{S}$和文本集$D$,$D$所对应的结构化数据为$S^*$(不要求提供,不是每一个$d$都有合法的$s^*$对应) - 在收集到的 $D$ 上,$S^*$不为空 - 对每一个$d$来讲,要么不存在对应的$s^*$,要么仅存在一个$s^*$与之对应 (可放宽到少量的$s^*$,但会增加优化难度) ## Method 定义 cycle loss如下,第一步只优化f,第二步只优化g \begin{gather} f: S \rightarrow D, g: D \rightarrow S\\ L_1 = Loss(d, f(g(d)))\\ L_2 = Loss(s, g(f(s))) \end{gather} 在此之上,我们需要额外引入一个评估环节 $$ c = P_s(s) $$ 这里的$P_s$是由scheme决定的,表达了一个$s$合法的概率是多少或其在语法规范中出现的概率。 以此,我们可以定义新的Scheme-guided Cycle-Training,对于每个$d$,先估计其对应的$s$,然后经过语法打分得到$c$,如果其分数高,再进行学习。如果一个$d$的分数在整个数据集中长期靠后,则剔除训练。在每个epoch之后,根据语法规范和上一轮生成的$S$,重新估计$P_s$。 $$P_s(s) = \frac{s}{\sum_{s \in S_i}},$$ 其中$i$表示训练的epoch