干货 | NIPS 2015 中有趣又看得懂的工作

干货 | NIPS 2015 中有趣又看得懂的工作

今天会跟大家分享一些 NIPS 2015 中,我觉得还挺有趣的 general 工作,有优化相关的,有新鲜任务的,也有基于一些经典模型改进的,甚至还有一些系统工程上的经验。虽然大家可能有做视觉,有做语言,有做语音的,但是总归都多多少少会涉及一些 general 的机器学习知识。了解一些这方面的进展,丰富一下自己的眼界,也很有可能启发自己在某个小任务上的研究。

 

今天包含的论文有:

《Variational Dropout and the Local Reparameterization Trick》

《Hidden Technical Debt in Machine Learning Systems

《Rethinking LDA: Moment Matching for Discrete LDA

《End-to-end Learning of LDA by Mirror-Descent Back Propagation over a Deep Architecture》

《Convergence rates of sub-sampled Newton methods》

《Semi-supervised Sequence Learning

《Grammar as a Foreign Language》

《Deep Knowledge Tracing

《Teaching Machine to Read and Comprehend》

 

 

1Variational Dropout and the Local Reparameterization Trick

这篇文章是我比较推荐的,它属于现在很火的 Variational Auto-Encoder(VAE)的一个分支工作。详细的关于 VAE 的介绍我会放在以后专门写一期(NTM 也是一期,VAE 也是一期,欠债好多……),这次简单说下背景。当我们有了 data x,假设了隐变量 z,我们其实是建立了一个 p(x,z) 的 Bayesian model。那么 Bayesian inference 关心的就是 p(z|x) 这个后验概率,可惜这个概率 p(z|x) = p(x,z)/p(x) 很多时候根本没法计算,所以只能估算。像我们熟悉的 MAP 和 MCMC 都是一种 non-variational 的 inference method,它们都有各自的缺点。而 Variational Infenrece(VI),则是另一种思想,它会引入一种新的 parametric model q_\phi 去 model 真实的 p(z|x) 后验。那么这个 \phi 参数(或者参数集合)就叫 variational parameter。与此同时,VI 的目标就变成了去最小化这个 parametric model 和真实后验概率之间的差,即最小化 KL-divergence

以上,我们把 inference methods 分为了 non-variational 和 variational 的,但是后者其实还可以再分为 non-gradient based 和 gradient based,而这个后者中的后者 gradient based method,又有非常多的变化和优点。比如 Stochastic Gradient Variational Inference(SGVI)就可以利用 reparameterization trick 去 inference 几乎所有 p(x,z) 下的 q(z|x)。所以 SGVI 也被作者称为 Inference 界的瑞士军刀 = =|||。


万物有利有弊,那么这个 SGVI 总得有点(至少是暂时性的)缺点吧?大家肯定都猜到了,就是慢呗。那么这篇工作就是来分析和试图解决,SGVI 为啥慢,它的 efficiency 的决定性因素是啥,知道了这些因素我们不就能想办法解决它了么。于是它们发现,SGVI 这个东西的效率严重依赖于(1)gradient variance,就是你这个东西要稳定点;(2)是否可以并行计算。这俩东西都一致指向了 global parameters,在 neural networks 中的 parameters,多数是 global 而且是在 linear operation 里面的,这样原始的 global parameters 特别多,variance 大,并行很难。为此,它们使用了 local reparameterization 的方法,与其做这些成百上千的 parameters 的估算,不如直接做 linear operation 外面的 activation 的估算——即 reparameterization。这样改造后的 inference methods,使得 gradient 的参数大大减少,也就减少了 variance,完成了 minibatch parallerism。第二,它们在这个 SGVI 的框架下,把 Gaussian dropout 看作是 SG dropout 的特例,使得 dropout 的参数可以 learned from data,instead of pre-defined。所以也就提高了 generalization。这就是这个工作的两大贡献。

 

 

 

2Hidden Technical Debt in Machine Learning Systems

 

这篇内容推荐给每一个致力于减少编程中的“无用功”的人看。文章没有任何理论分析,只是讲述了一个个可能带来可怕后果的 conditions。简单来说,当我们为了贪图一时的方便,无论是调用别人的 package,还是做原型开发,等等等等,都可能在得到“快速的结果“的同时,埋下了隐患——我们快速地取得了结果,却同时欠下了technical debt

在机器学习相关的系统中,作者们具体分析了很多种 technical debt 产生的原因,比如code dependency,这个不仅是 ML systems 会有的,不多说;还比如 data dependency,这个会更高频地出现在 ML systems 中,甚至更可怕。因为 code dependency 可以通过静态分析等方法检测出来,而 data dependency 的检测还几乎没人去做。data dependency 又分为 unstable 和 underutilized。对于前者,很容易理解,就是相互依赖的 data 之间可能因为一方的改变,而导致另一方 unintended 被改变从而导致非预期的错误。对于 unstable data dependency,作者的建议是多保留 frozen copy。另一种 underutilized data dependency,其实也很常见。就是当我们遇到了一些依赖包更新到了新版本,又可能不再支持一些旧功能,或者改变了接口。为了快速开发和减少修改代码的时间(贪图一时方便),我们可能会把新旧版本的 package 都保留,都载入。这个检测起来就很麻烦,几乎是暴力搜索排除……


篇幅问题,我不详述每一种 debt 了。最推荐的除了上面两种和我们很相关的,还有一种 configuration debt。configuration debt是说当我们越是想维护一个比较大型的成熟的项目,越需要考虑各种 configuration 的情况,为此甚至可能写出的 configuration lines 要超过 code lines。作者提出了几条建议,可以尽量减少这些超多的 configuration lines 可能带来的危害。之所以推荐这个部分,是觉得现在 research community 的开源项目越来越多,大家如果想贡献,或者自己发起一个好一点的项目,在这方面应该多留意。在贡献自己的代码和阅读别人的代码时,都会有所收获。

 

 

 

3Rethinking LDA: Moment Matching for Discrete LDA

 

这篇文章有很多结论和中间结论,对于 topic modeling/probablistic modeling 感兴趣的同学很推荐看一下。我们以前熟悉的 LDA,其实没有把 document length 作为 random variable model 进去,这就导致 LDA 并不是一个完整的 probablistic model。如果把这个 document length 作为 random variable(negative binomial)model 进去的话,就会发现 LDA 可以等价为一种 Gamma-Poisson model(GP model),而如果我们再把 topic intensities alpha 再加一些独立约束,这个 GP model 就变成了我们更熟悉的 discrete independent component analysis(DICA)model。以上就是这个工作的第一步,建立 LDA 和 DICA 的联系。


这个联系是一种启发,使得作者尝试使用 DICA 中的一些计算技巧来优化 LDA 的 sampling 过程。具体地,他们提出了三个cumulant tensor(一个 set),并且把 tensor 和 LDA moment 对应起来,从而提出了更高效和更稳定的 LDA estimator。这个 estimator 是基于 text data 中的 word counts,而不是基于一个个 document token 的。基于这个 estimator 的算法,参数更少,也就减少了以前 LDA 中对于 topic intensities 参数 alpha 的依赖(这个参数很影响 LDA 的效果,又无法很好的 evaluate)。从而整个工作相当于提高了 topic modeling 的稳定性

 

 

 

4End-to-end Learning of LDA by Mirror-Descent Back Propagation over a Deep Architecture

上一篇介绍了 LDA 的一种变体优化,再来一篇 LDA 和凸优化结合的工作。这篇工作的亮点是,他们把 LDA 优化过程和 deep network architecture 结合起来,比起以前的一些结合工作,这篇无疑结合的更 generic。我个人还挺推荐的。这篇工作是说,大家都知道 LDA 的 posterior of topic distribution 很难计算,所以在做 supervised LDA 的时候,joint training 就更难了。过去的方法都没有实现 end-to-end training,因为都不是 fully differentiable 的。那他们这篇工作是怎么实现的呢,它们首先把 supervised LDA 的优化目标转换了一下,不是去 joint training topic distribution posterior (z),而是去优化 z 的那个参数 \theta。这个转换前提使得他们的工作,可以使用 MAP point inference + Mirror Descent 的方式去实现 end-to-end differentiable。我个人的疑惑是 MAP point inference 最大的缺陷是 biased,这篇文章并没有清楚地说明他们的工作如何去避免这种 biased。个人感觉是,他们的工作主要是针对大规模预料下的 supervised LDA 优化,所以 biased 问题并不那么显著。最后他们在实验中使用的数据集也确实非常大。
使用 MAP 方法和 Bayesian rule + constraints,他们把 supervised LDA 优化转变成了一个可以用 Mirror Decent Back Propagation 的问题。这样转换后,整个优化过程(\theta 和 y 的 inference)就可以看做一个 deep 的架构,而 Mirror Descent Algorithm 层就可以看做 deep networks 中的 feature extractor。

 


最后,这种方法 MDA based MAP inference for supervised LDA 的 方法,在实验结果上不仅 scalability 更好,而且 prediction 效果也更好。

 

 

 

5Convergence rates of sub-sampled Newton methods

这篇是针对大家都很熟悉的 Newton methods for convex optimization 的改进。大家都知道 Newton methods 是 second order 的,它最大的计算瓶颈(也是大部分 second order methods 的)是 Hessian matrix 计算和 inverse Hessian 的计算。这俩东西不好算,尤其是在 sample size 一大的时候,就更难了……可能大家会想到拟牛顿法,Quasi-Newton Method,这种方法是通过改变 update 的计算方式来“绕开”这种大规模计算的。而这篇工作,并不是基于这种“绕开”的思想。而是基于 sub-sampled Hessian,就是你 sample size 太大的时候 Hessian 不好计算是吧,我就让你变成 sub-sampled size 的时候计算 Hessian。那可以想到,这种 subsampling 技术必须要和很好的 approximation 技术结合才可以。


于是,这篇工作就是利用 subsampling technique + low-rank approximation。为啥 low-rank approximation 会好用呢,因为对于 second order 的方法,其绝大多数信息都会被存储于其 Hessian 矩阵的几个最大特征值里。利用这种思想,他们在 (Q^t)^{-1} 更新计算时就可以利用 sub-sampled Hessian 的 (r+1)-th 特征值的信息来完全近似。他们这种算法叫 NewSamp,可以实现从多项式时间到线性时间的收敛速率。

 

 

 

 

6Semi-supervised Sequence Learning

这文章看起来超轻松,我还是一个月前读完的。当时读完了其实感受不深,觉得写出来都是别人已经在用的东西。但是现在再重看发现有点不一样的体会。先说一下他们做了什么,他们提出了两种方式去做 semi-supervised sequence learning,就是可以用一个 unsupervised fashion 的 framework 去 pretrain 另一个 supervised learning model/network。因此叫 Semi-supervised sequence learning。那么这两种方式都是什么呢,大家都很熟悉了,其实就是把 encoder-decoder framework 中的 encoder 做了改变,一种 encoder 是 RNN language model,一种是 encoder = decoder 的 sequence autoencoder。也就是说,你要学会 reconstruct 自己,encoder 和 decoder 的 weight 是 share 的。最后结果中,他们发现,这样 semi-supervised/pretraining 的结果比 random initialization for supervised learning network 要好

不知道大家有否看我前几期的内容,我有提过两个和 reconstruction error 有关的工作,一个是 ICLR 2016 Yan LeCun 教授组的《Stacked What-Where AutoEncoders》,一个是诺亚方舟李航博士组的改进版的 NTM。这两个工作中都强调了 reconstruction error 的重要,如果一个 model 中没有 reconstruction objective,其效果会大打折扣。这也是我现在对于这篇 NIPS 2015 semi-supervised learning 的感受,它很简单,但是它提供了一种有效快捷的 reconstruction objective from large unannotated data 的方式。当然,我现在还觉得它和 teacher-student network 有点关系,但是这个关系很 implicit,根本无法从理论证明。

 

 

7Grammar as a Foreign Language

 


这篇论文其实是 2014年底就放在 arXiv 上的了,所以现在看起来它的结论可能并不是那么 astonishing。而且我到现在还有一个疑惑,这文章和这个题目……一点都不呼应真的好么。它其实就是用简单的 LSTM+attention 机制做了 parsing。它的结论是,虽然以前做 parsing 的都说,如果要准确率高,都只能 focus 具体的 domain,专门用 domain specific data train,结果好的同时还不够 efficient。然后他们用简单的 LSTM+attention,没怎么调参,随便 pre-train 了个 embedding,inverse 了一下 input sequence,就发现可以媲美大部分 domain specific 的 parser 了。而且他们这个 LSTM+attention based parsing,还很快,只用在比较粗糙的general 的 training data上,用以前的 existing parsing 的结果 training 就 OK 啦。结果展示上,他们也发现,attention 机制确实是很有用的,甚至从 visualization 中看到,attention 机制下,确实会 skip 某些 words 进行 parsing。就是这样一篇自由的论文。

 

8Deep Knowledge Tracing

这篇文章也是很简单地把 RNN 和 LSTM 应用到一个新任务上。任务可能大家不熟悉,但是数据集一定熟悉,就是 Coursera 啊这样的 online learning platform。而所谓的Knowledge Tracing任务,就是预测学生在这种 online learning platform 中的表现。这种表现现在暂时来看,被局限于回答作业问题的正确与否。换句话说,这篇工作,就是,已知学生在过往问题上的答题结果,预测学生在接下来的问题中的答题结果。That's the so called Knowledge Tracing。那么 deep knowledge tracing,就是可以把这个预测的 sequence 变得长一点,而且变得准确点。同时,又因为 RNN 和 LSTM 的这种 latent content 的隐性建模,使得他们即使不知道即将预测的问题类型(tag)也可以预测学生的答题结果。这是以往的一些传统方法做不到的。


那么这种 knowledge tracing 还可以干嘛呢,还可以做个性化课程/作业推荐,or 发现作业题目之间的关联性。就大概是这么个工作吧……

 

 

 

9Teaching Machine to Read and Comprehend

来自 Google DeepMind 团队。这篇论文有两个主要贡献,个人觉得最大的贡献还是在于构造了一个 supervised document-query based 的数据集,虽然说是供 machine comprehend 使用,其实依然没有超过 QA 范畴,就是基于一篇 document,一个 query(document-query pair)回答一个 entity form 的 answer。数据集在此不表。来看他们 attention-based 的相关 model。


论文一共提出三个新 model,其中只有后两个(图中 (a)(b))是 attention-based 的。input 都是一个 document query pair。作者尝试了两种机制,一种是 document 按一小段句子(以标点分割)输入,一小段句子+一个query,这样算一次输入;另一种是一篇 document 全部输入完毕再输入 query,这种方法被认为失去了 query 的 mention 作用。

两个 attention-based model,(a) Attentive Reader 和 (b) Impatient Reader。(a) 非常好理解,看 (a) 左边就是标准的 attention mechanism 的结构啊。再看 (b) Impatient Reader,这个 model 很有趣,尤其和我下面想说的非 NLP 那篇有点像。我按我的理解来解读,这个 model 强调“reread”,就是说,对于每一个 query,有许多个 token,按照 query token 一个个输入,每一个 query token(不再是每一个 query),就都读一遍 document,然后下一个 token,再来一遍——reread。

我会把这种 reread 机制,理解为一种“逐渐”获取(理解)文章的过程,就像我们读一篇艰深的文章,读一遍不成,读两遍,读三遍。这个机制的 motivation 很好,但是如果只用来预测一个 token(the answer),我会认为起不到 motivation 的作用。个人理解。

 

今天这期是2015年最后一次干货,小S 要回北京和大S 团聚过新年了。虽然2015倒计时咯,还是希望大家能对于相关内容多【写评论】跟我们讨论,推荐一些更有趣的 NIPS 论文 or 对某个论文有自己的看法都非常欢迎!

 

其他相关文章,点击文章标题即可跳转阅读:

ICLR 2016 Submission Highlights

NIPS 2015 Deep Learning Symposium(一)

NIPS 2015 Deep Learning Symposium(二)

NIPS 2015 Reasoning, Attention, Memory Workshop

posted @ 2015-12-23 19:15  菜鸡一枚  阅读(2316)  评论(0编辑  收藏  举报