-
做的任务是句子压缩。
-
方法也和其他无监督方法一样就是构建重建损失。
-
对于要压缩的长度,作者的方法是用了带个超参,然后在超参间均匀采样,使用
5
保底,但是压缩的长度并不是直接截断而是超过压缩的长度的话有一个length
的penalty
。
-
几个
loss
比较有意思,首先作者在题目中说了是可微的,但是生成句子的时候有一个可读的句子采样的时候是不可微的,因此作者的放发就是采样的时候使用正常的采样,反向传播的时候使用gamble-max tricks
或者是soft-argmax
,这个方法还有一个术语叫straight-through estimator
,前向传播的时候不使用这两个技巧是因为,这两种方法产生的都是embedding
的mixture
,利用了全局的信息,而且后面的时候还需要使用language model
所以必须要是可以读懂的句子。
-
本文最大的创新点就是两个
loss
用的十分精妙,LM Prior Loss
和Topic Loss
,前者是生成词的时候计算和lm
的kl
散度,不直接使用一个language model初始化而是直接计算交叉熵相当于对language model
进行了知识蒸馏,这样允许我们使用更大预训练好的language model
,但是还有一个问题是language model
生成出来的句子一般是最大似然的句子,因此作者引入了一个基于tf-idf
的topic loss
,让topic
联系的更加紧密,因此和lm
损失形成了一个trade-off
,理想情况下就是生成既通顺又符合主题的句子。
-
topic loss
竟然是关键,因为topic loss起到的是一个引导程序的做阴,其他的loss
在前期可能都因为smaple
的效果太差了,所以找不到优化的方向,但是topic loss
有引导作用,引导采样到一个很小范围内的单词
-
此外作者发现了一个很有意思的现象是seq3总是会倾向于复制源文章中前面几个单词,作者解释可能的原因是因为重建是自回归的,所有的后面单词的生成都要银行仰仗前面单词的生成,因此前面单词生成的对错至关重要,因此
compressor
更加倾向于直接复制前面的几个单词,这样reconstruer
,所以这也印证了生成的时候第一个单词的生成总是最为重要的,他决定了从哪一个流行的附近开始生成接下来的单词。
-
问题:因为有重建损失所以差不多是大段落复制原始的文本。
-
感觉这个文章其实最大的贡献点是提出了
topic loss
这么一个东西,给embedding
根据topic loss
加上attention
,引导在sample
中单词的选择,不加直接就爆跌了,反而language model
没有很大的作用。
MeanSum : A Neural Model for Unsupervised Multi-Document Abstractive Summarization
上一篇是
naacl19
的这一篇是icml19
的,感觉方法很类似,naacl
给我的实验上的启发多一点,这个做了很多的实验分析(没有理论分析也能中icml
)-
两个都是做摘要的,不同的一点是上一篇是做单文档摘要的,这个是做多文档摘要的,这个主要用于比如说亚马逊上有很多商品的评价有好评有差评,然后将所有的好评和差评总结成一个摘要,这个样子。放一个例子,可以看到作者生成摘要的长度差不多是一个文本的长度因此没有必要做
length penalty
。 作者在
contribution
中argue
的一点是强调自己与无监督机器翻译最大的不同是只有输入的需要总结的句子,连输出的语料都没有。-
最主要的模型的图。需要注意的一点是里面的encoder和encoder共享参数,
decoder
和decoder
共享参数,从直觉上来说,autoencoderReconstructionLoss
强迫训练出一个比较好的encoder
和decoder
,然后后面的encoder
和decoder
也能受益 -
损失函数,就是一个重建损失和一个语义相似的损失,作者说了自己尝试过更换不同loss的比例但是效果不变。所以说基本上加了loss的都拟合了,并没有
trade-off
的情况
本文的亮点是ablation study
做的很好。
-
首先是使用
language model
初始化encoder
和decoder
重要吗?不是很重要,只是有轻微的下降,也就是说模型可以找到优化的方向,如果仅仅只用一个language model
做摘要,也就是作者文中说到的no-training
的方法相关度和情感一致性都很蹦。
-
有两个模型是完全崩了,一个是不使用
auto-encoder
,因为只要两个encoder
学习到不管输入是什么东西统统输出一样的东西,那么相似度是最小的,因此学不到有用的东西,个人感觉还是监督信号太弱了,只用一个similarity
当监督信号无法训练好一个encoder
和decoder
,还有一个模型是如果decoder
的参数不共享那么不能映射到同一个语言空间,因此也崩了,decoder
的参数不共享summary
端训练不好,用gumbel softmax
采样不好,反而相当于dropout
,因此可以将encoder
训练的很好,重建端的decoder
训练的也很好,但是真实在测试的时候summary decoder
端还是训练的不充分。
-
reconstruction
模型虽然能够work
但是效果很差,作者认为是学习的难度太大了,尽管有Gumbel softmax
但是梯度还是bias
很大或者方差依赖于温度(尽管可以是退火的),因为只有一个损失函数就是gumbel softmax
因此很难优化,而且作者认为从一个平均的向量中重建出来所有的文档,这个任务本身就很难。
- 此时
decoder
不是训练的一部分了因此生成的句子很不流畅。
-
encoder
不共享的时候效果是不变的,但是为了减少参数作者还是共享了参数,所以说decoder
不共享会蹦,但是encoder
不共享却没事。
- 各自的
ppl