---
# System prepended metadata

title: Unsupervised data-to-text with Scheme-guided Cycle-Training

---

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
