受到 GAN 的启发,作者还提出了一个 Adversarial evaluation,用一半真一半假的数据作为样本训练出一个分类器,再对比不同模型生成的句子有多少能骗过这个分类器,这个 evaluation 被用在 Imputing missing words 这个任务上,VAE 的表现同样比 RNNLM 出色。 最后,作者展示模型的确学到了平滑的 sentence representation。选取两个 sentence 的 code z1 和 z2,z1 和 z2 可以看做向量空间的两个点,这两个点连线之间的点对应的句子也都符合语法且 high-level 的信息也保持局部一致。
— 02 — Neural Variational Inference for Text Processing 论文链接: https://arxiv.org/pdf/1511.06038.pdf 其实这篇 paper 和第一篇是一起投的 ICLR,后来转投了 ICML 2016,所以时间上其实和第一篇是一样的(两篇文章也有互相引用)。不同于第一篇,作者的出发点是构建一个 generative neural variational framework。为了证明 framework 的优越性,分别在 unsupervised 和 supervised 的任务上提出了两个模型,结果也很令人满意。
第一个任务是 unsupervised document modeling,模型叫 Neural Variational Document Model(NVDM)。h 和第一篇的 z 一样,在这里代表 latent document semantics,但 document 是以 bag-of-words 的形式(个人以为这里作者主要还是受到 LDA 的影响)。encoder 采用MLP,decoder 是一层 softmax。 第二个任务是 supervised answer selection,模型叫 Neural Answer Selection Model(NASM)。文本的建模方式采用 LSTM(在第二个任务用 LSTM,第一个任务用词袋,可能为了证明普适性)。h 代表 latent question semantics。如上图所示,Zq 和 Za 用来表示 question 和 answer,y 代表 answer 是不是正确答案,用 Zq 和 Za 预测 y。那么 Zq 和 Za 是怎么得到的呢?Zq 延用 LSTM 的 last state,而 Za 则较为复杂,所谓脱离问题谈答案都是耍流氓,所以对 Za 建模时要显式的放入 question 的信息。可这里该怎么表示 question 呢?如果还用 Zq,模型很容易 overfitting。这里我们的 latent h 终于可以出场了,引入 h 不仅起到了 muti-modal 的效果,还让模型更 robust,再把基于 attention 的 c(a,h)和 answer 的 LSTM last state 组合得到 Za。这种做法对我们在寻找 representation 时有很好的借鉴作用。最后通过推导 variational lower bound 确定 h 的先验是 p(h|q)(第一个任务中先验是 p(h)), 这里就不赘述了。 — 03 — Language as a Latent Variable: Discrete Generative Models for Sentence Compression 论文链接: https://arxiv.org/pdf/1609.07317v1.pdf 这篇 paper 发表在 EMNLP 2016,同样出自第二篇 paper 的作者。传统的 VAE 是把数据 encode 成 continuous latent variable,这篇 paper 的贡献在于提出了一个 generative model 用来学到 language 的 discrete representation—一个带有 sequential discrete latent variable 的 VAE。所谓的 discrete latent variable 就是指一个单词,加上 sequential 其实就是一个句子,由于 VAE 本身是压缩数据的,换句话说是用短一点的句子来表示原来的句子,也就是句子压缩。我觉得作者的 intuition 在于每个句子可以有多个缩写,开奖,且都可以表示原句,有一点点 distribution 的意思,所以用 latent variable 很合适。
原句和压缩句分别是 s 和 c ,模型整体是 encoder -> compressor -> decoder。我们分解开看,encoder -> compressor 采用 pointer network[4]只从 s 里选取合适的词而不是整个词典,从而大大减少了 search space。compressor -> decoder 是一个带 soft attention 的 seq2seq。这个模型的好处是不需要 label 数据,但是如果我们有足够的 label 数据(真实数据里 c 里的词可不仅仅来自 s),需要额外加个 softmax 从整个词典里选词,同时再定义一个 latent factor 判断是从 s(pointer network)还是从词典里选,更加符合任务需求。 值得一提的是 Variational lower bound 里的 p(c)是 pre-train 好的 language model。因为 Language model 的一个特点是比较喜欢短句子,很适合句子压缩的场景。由于 reparameterisation trick 并不适用 discrete latent variable,作者还采用了 REINFORCE[5]的方法(凡是 discrete 的问题,GAN/VAE 都可以采用 REINFORCE)。 — 04 — A Hierarchical Latent Variable Encoder-Decoder Model for Generating Dialogues 论文链接: https://arxiv.org/pdf/1605.06069.pdf (责任编辑:本港台直播) |