论文笔记《Paraphrase generation with latent bag of words》
论文来源:2019 NIPS
论文代码:https://github.com/FranxYao/dgm_latent_bow
论文主要内容
作者提出了一个a latent bag of words(BOW)模型来进行paraphrase生成。作者首先使用source word取预测他们自己的邻近词,然后用他们的softmax分布去预测target word,在从softmax分布中取词时,作者采用了Gumble top-k的重参化技巧。
首先,传统的使用词替换的方式来生成paraphrase,主要分为两步:plan stage和relization stage
- plan stage:从wordNet中找到source word的邻近词
- realization stage:把词替换掉,并且从组织新句子
作者使用来自source sentence中的词去预测他们的邻近词,把target sentence中的词作为target BOW,这一步可以看做是plan stage。从plan stage的所有词中,sample出一个词子集,然后去重新组织这些词,形成新的句子,这就是realization stage。在sample这一步中,作者使用了Gumble top-k 重参化的技巧。
模型
模型主要分为两部分: the sequence to sequence base model, bag of words for content planning
the sequence to sequence base model
传统的seq2seq模型的框架,encoder和decoder,其中encoder和decoder采用的都是LSTM

bag of words for content planning
作者有一个假设,就是说从target sentence构建的BOW,应该和source sentence的邻近词构建的BOW基本相似。
首先第一步,对于每一个source word获取他们的邻近词表示,对于 w o r d x i word x_i wordxi,它的邻近词 z i j z_{ij} zij是一个V维的(V代表词表大小)one-hot向量,并且每一个词的邻近词数目固定为l个,source word 共有m个。
p ( z i j ∣ x i ) = C a t e g o r i c a l ( ϕ i j ( x i ) ) p(z_{ij}|x_i) = Categorical(\phi_{ij}(x_i)) p(zij∣xi)=Categorical(ϕij(xi))
其实在实现时,作者是在encoder时,对于LSTM的每一个隐层输出,作者采用了一个softmax层接在每个隐层输出的后面,然后由于固定了每个词的邻近词数目l个,所以可以从词表V中选出每个词的l个邻近词。
然后把这ml个邻近词混合在一起进行表示【每个source word的邻近词都是一个one-hot表示的V维向量】,得到一个向量 z ~ \tilde{z}

论文提出了一种利用潜在词袋(latent bag of words, BOW)的模型来生成同义句。该模型结合序列到序列基础模型与词袋内容规划,通过源句词预测邻近词,采用Gumble top-k重参数化技术采样目标词,以生成新的句子。实验在Quora和MSCOCO数据集上进行,与seq2seq LSTM基线和β-VAE模型对比,展示了其效果。"
119865763,8684379,使用Yocto Project进行Linux内核开发,"['Linux内核开发', 'Yocto项目', 'devtool', 'BitBake', '内核配置']
最低0.47元/天 解锁文章
3356

被折叠的 条评论
为什么被折叠?



