前段时间一直在啃论文,看了一些文本生成和person Re id的内容。将自己看的较吃力的一篇论文
《Low-Resource Response Generation with Template Prior》
拿过来简要介绍一下,主要介绍思路,方便日后回忆,具体细节见原论文。
一、简介
文本生成的一个领域是自动对话。情感类的自动对话训练样本较少,非情感类的自动对话训练样本较多,本论文设法将非情感类的训练样本拿来辅助情感类自动对话的训练。
感觉本论文主要是想改进《Learning Neural Templates for Text Generation》获得的灵感
二、大致思路
1、通过从非情感类训练样本抽取出模板来辅助情感类训练样本的训练。
模板的主要作用是能够将想要生成的话按照逻辑进行分段。例如
Message :真的假的?我瘦了斤
Responses: 【你 】 【瘦了】 【吗】
模板在其中的作用就是先将答案分为3部分,之后一次生成每部分的答案。对每一个message会有很多模板,筛选模板的方法有很多,最简单的就是,哪个能与Message匹配上就用哪个,复杂的就涉及到一系列搜索方法。
2、有了模板每一个答案是怎么生成的呢,其实是在每一个部分加入一个RNN,以隐含状态及之前的答案为输入进行生成答案。
三、模型解析
1、不妨先看《Learning Neural Templates for Text Generation》中的模型
摘要:虽然神经编码器-解码器模型在文本生成方面取得了很大的成功,但这种生成方式仍存在一些尚未解决的问题。编码器-解码器模型在很大程度上无法解释文本,并且难以控制其措辞或内容。本文提出了一种使用隐藏的半马尔可夫模型(HSMM)解码器的神经生成系统,它学习潜在的、离散的模板并生成。我们展示了该模型学习有用模板的能力,并且这些模板让生成变得更具解释性和可控性。
![](https://img.haomeiwen.com/i17624987/1d0393c6c4b0fdc7.png)
可以简单理解为对每一个编码后的隐藏态结合之前的隐藏态、输入,输出单词。
如 隐藏态 z1 和 x 经过 Rnn 输出单词y1 , y2 , y3 。
2、上面是将马尔可夫模型与RNN结合进行文本生成的一般思路,下面介绍本论文模型。
本论文作者进行了改进,加入了模板,为了加入模板。在每个隐状态中又加入了一个变量l,l的意义是图1中zt能够发射出几个词。例如z1的l为3,因为它能够发出3个词,z2的l为1,因为它能够发出1个词。本论文的模型名称为S2S-Temp
![](https://img.haomeiwen.com/i17624987/47f8226f3f6e620d.png)
(1)输入 message 首先经过一个GRUx(encoder)编码,得到的结果这里简记为src_enc。
(2)输入message 经过一个分割网络 加上 模板 得到 马尔科夫链中的第一个隐藏态states,即图中的z1,z1的l为2,所以此状态能发射2个词。
(3)[<s> ; z1 ]通过GRU,ATTENTION,GRU,softmax,linear function 得到第一个输出结果it 。
(4)[it ; z1] 通过GRU,ATTENTION ,GRU,softmax,linear function得到第二个输出结果 ' s 。
(5)根据马尔可夫链的求解算法Viterbi algorithm.得到z2
(6) ['s ;z2] 通过GRU,ATTENTION,GRU,softmax,linear function得到第三个输出结果a 。
(7) ...
这其中有很多细节不一一介绍。
四、模型训练方法
"直觉的,我们可以通过最大化与数据对的相似度来训练编码器和解码器以及NHSMM。然而数据对太少,会面临一些问题。比如提前停止训练,会欠拟合,此实,无监督得到的模板会发挥更重要的作用。如果训练过度,会丢失模板的一些知识,使得编码器解码器在文本生成中占据主要作用。”
因此采用对抗学习,来平衡模板知识和编码器解码器之间的关系。
1、鉴别模型的更新:
鉴别模型是一个基于线性分类器的卷积神经网络。
通过max(logD(X,Y) + log(1-D(X,^Y)))来训练。(涉及对抗学习的一些知识)
2、生成器的训练:
关键为需要在max(logD(X,Y) + log(1-D(X,^Y))的过程中需要计算网络中每一块的梯度问题。
PS:这一块没具体看,等到需要实现是再看看;同时关于模板的训练问题现在突然间看不懂了,打算过段时间再看下论文想想。
五、论文的一些细节
1、数据集的词向量。
"我们保留了20,000个最频繁的单词,作为编码器,解码器和NHSMM的词汇表。词汇表覆盖了消息,响应和问题中出现的95.8%的单词。否则,用“ UNK”代替。"
2、评价(自动,人工)
自动:BLEU-1
3、Baseline
S2S、CVAE、HTD、ECM
论文中均给出github代码地址
参考:
HMM
https://www.zhihu.com/question/20962240
https://zhuanlan.zhihu.com/p/85454896
对抗
https://www.zhihu.com/question/63493495/answer/253693995
文本生成
网友评论