每周论文29

本周论文:

  1. Repeat before Forgetting: Spaced Repetition for Efficient and Effective Training of Neural Networks
  2. A Simple Theoretical Model of Importance for Summarization
  3. Attending to Future Tokens for Bidirectional Sequence Generation
  4. Sequence Generation: From Both Sides to the Middle

[Repeat before Forgetting: Spaced Repetition for Efficient and Effective Training of Neural Networks]

提出一种基于核密度估计的训练神经网络的scheduler。

论文首先从实验上论证了神经网络与人类认知的相似性。接着基于此提出新的训练神经网络的方法。

背景

人类在记忆新知识时,需要不断重复,而重复的间隔时间随着重复次数而逐渐扩大。(遗忘曲线)。同时学习过程还和该知识的难度与人类记忆的强度相关。放在神经网络中,就有:

其中recall就是分类任务的准确率。

因此本文基于以上三个变量提出一种基于间隔重复训练神经网络的方法。
实际上本质就是,在快要遗忘之前重新过一遍这个sample。通过预估的方法去获得delay的时间。

在此之前的工作:

大概做法是,设定几个队列,如果当前的sample预测对了,就将该sample push到后一个队列,否则就将其push到前一个队列或第一个队列。越后面的队列被review的间隔越长。相当于认为越后面的越简单,需要被训练到的次数越少。

但这里的间隔是手动设定的(2的k次方),并不是很准。本文提出的就是动态设定这样一个间隔。

方法

设$x_{i}=\frac{d_{i} \times t_{i}}{s_{e}}$

d是该sample的loss,t是还有几个epoch被review到;s则是在validation data上的performance。

x是不同核函数的变量:

$f_{g a u}(x, \tau)=\exp \left(-\tau x^{2}\right)$

$f_{l a p}(x, \tau)=\exp (-\tau x)$

$f_{l i n}(x, \tau)=\left\{\begin{array}{ll}{1-\tau x} & {x<\frac{1}{\tau}} \\ {0} & {\text { otherwise }}\end{array}\right.$

$f_{\sec }(x, \tau)=\frac{2}{\exp \left(-\tau x^{2}\right)+\exp \left(\tau x^{2}\right)}$

等等。

不同核函数的曲线:

我们用核函数来预估一个样本被review的间隔。

如果t小于等于1,则选做当前的训练数据。一开始大家都是1。其他未被选中的记录在delayed batch里。
在训练完一个epoch后,获得valid上的accuracy。通过validation来预估当前的$\tau$:

其中$a$是accuracy。
接着利用这个$\tau$去预估当前训练数据的delay $t$。
最后将delay batch的t减1,因为已经训练过了一个epoch了。

实际上就相当于利用密度核函数去动态预估参数t。


[A Simple Theoretical Model of Importance for Summarization]

提出summary任务的几个指标,Redundancy, Relevance, and Informativeness,以及统一这三个指标的Importance。本文贡献是将信息论引入,并证明其他过去的工作可以放在这个框架下。

记semantic unit作为基本单位,$\Omega$是所有semantic unit的集合,$X$是文本。$\mathbb{P}_{X}\left(\omega_{i}\right)$则是文本$X$出现该unit的概率。

$D$是source document;$S$是candidate summary。

Redundancy

$S$的交叉熵:

引入redundancy:

可以简写为:$\operatorname{Red}(S)=-H(S)$

当所有的semantic unit的概率相同时,redundancy最大。因为这样就没有什么有用的信息了。

Relevance

衡量$S$与$D$的关联度。

A summary with a low expected surprise produces a low uncertainty about what were the original sources。summary相当于对源文档的有损压缩,因此应尽可能减小该损失。

relevance与redundancy的联系:

KL divergence is the information loss incurred by using D as an approximation of S (i.e., the uncertainty about D arising from observing S instead of D). A summarizer that minimizes the KL divergence minimizes Redundancy while maximizing Relevance.

Informativeness

relevance忽略了外部知识。将外部知识引入,a summary is informative if it induces, for a user, a great change in her knowledge about the world.

其中$K$是background knowledge。

for Informativeness, the cross-entropy between S and K should be high because we measure the amount of new information induced by the summary in our knowledge.

Importance

其实就是将relevance与informativeness结合起来。


[Attending to Future Tokens for Bidirectional Sequence Generation]

基于bert的思想,引入双向的序列生成,也即生成的过程中可以看到左右两边。

基本做法是:首先将x与y拼起来,然后将y用placeholder替代,过transformer encoder去uncover这些placeholder。

方法

在训练时候,引入Placeholder Replacement Strategy,采用伯努利分布或高斯分布随机将部分的词用placeholder替代,通过上下文将其recover。

在生成时,有几种方案:

One-step greedy: 直接同时将所有的placeholder一次性recover。
Highest probability:一步一步来,每次uncover概率最大的那个token。
Lowest entropy: 选择熵最小的,这代表了其不确定性最小。
Left-to-right:就是从左到右,但未来的placeholder也会attend到。

一点思考

这实际上就有点像任意顺序的序列生成。但似乎设计有些粗糙,且实验没有在翻译上跑,可能是在翻译上没有效果。且论文似乎没有提到如何加position encoding。
总体思想还是比较清晰的,如果用于翻译设计得应该更精巧一些。另外一个问题是停止条件是什么论文似乎也没提到,大概也是当生成到EOS就停止吧。placeholder的个数是怎么确定的?only placeholder tokens up to some pre-determined maximum sequence length。


[Sequence Generation: From Both Sides to the Middle]

提出从左到右和从右到左的同时decoding。更多的算是模型上的创新吧,但感觉没有什么insight。

为什么要从两端到中间:
inference的时候能加速;能够attend到未来的词,缓解under-translation;

方法

在decode端,先forward与backward自行做attention(intra),然后二者再做交互(inter)。

一点思考

从两端到中间的想法不错,过去应该也有论文做过这样的尝试。但本文有点像两年前的论文,从模型的结构入手,改改模型跑跑实验就发出来,有点像实验报告。并没有提供一些更有价值的insight,难以follow。同时,本文也没有提position应该如何加?这点或许很关键。