[dialog system] 阅读笔记 - 2016__VHRED
Ref
- A Hierarchical Latent Variable Encoder-Decoder Model for Generating Dialogues,Iulian Vlad Serban, Alessandro Sordoni, Ryan Lowe, Laurent Charlin, Joelle Pineau, Aaron Courville, Yoshua Bengio,2016
introduction
- 作者发表的上一篇 HRED的扩展
- 对话序列通常具有层次依赖结构,提出基于神经网路的生成模型来建模
- 该模型引入 stochastic latent variables
z 来表示 high-level variability - 有助于生成 meaningful, diverse on-topic response
- 数据集: Twitter Dialogue Corpus
problem
- 现有的RNNs 通常遵循一个受限的浅层生成过程(The Restricted Shallow Generation Process),模型的可变性和随机性同行发生在生成每个word时;而在生成每个word时,都是基于前面已生成的words,而忽略了前面的utterances;也就是说,唯一的变化来源是通过条件输出分布来建模的;
- 浅层生成过程存在的问题
- 从概率的角度来看,仅仅依赖每一步的output 来生成全部的high-level structure。这种模型对于long-term structure 来说是非常困难的。
- 从计算学习的角度来看,encode 阶段的最后一个隐藏状态
hm 蕴含了前面所有的信息,并用hm 来生成下一个token(short-term objective), 以及在 embedding space 中占据一个位置,用于维持一个输出轨迹,用于将来生成相关token所需(long-term objective)。由于梯度弥散问题,short-term goals会主导output distribution。
基于以上问题,作者提出了VHRED 模型,该模型是对 HRED模型的扩展。
model
VHRED 模型采用两步生成过程建模:第一步采样出潜在变量
- encode RNN: 将一段utterance 编码为一个固定长度的确定的向量
hencn−1 ; - context RNN: 将
hencn−1 送入到contextRNN, 以便计算hconn ;之后对hconn 做了一些变换,同事加入了zn 的信息(通过μprior,∑prioir 体现 )。 潜在变量zn 通过优化变分下界进行推断。如VAE中一样,变分下界包含了两个部分:一个是关于潜在变量zn 后验概率对先验概率的逼近,一个是先验概率在后验概率上的最大似然估计(理解不到位,相关的资料还没有看到)。 - decodeRNN: 首先从先验概率
N(μprior(w<n),∑prior(w<n)) 采样出zn ,然后将hdecn,m−1,wn,m,hconn−1,zn 作为输入送入到decodeRNN中用于生成wn,m+1。
comment
- VHRED与HRED的区别:虽然HRED也采用了分层的方式分别对token和untterances进行建模,但是在utterance-level并没有引入variability or stochasticity, 而variability or stochasticity还是仅仅存在于token-level。
- 在基于对话上下文对对话的topic 进行建模时,如果不看这篇paper,能够想到的方式是将LDA引入进来,比如说,首先基于大量的对话语料用LDA建模,在具体的对话中,通过LDA采样出topic
- 对于分层结构,在每个level均可以加入attention, 在token-level 加入attention 自不必说,在untterance-level 加入attention, 感觉和本文有点类似,attention 也相当于聚焦到历史对话中某点或某几个点。
以上全是个人理解,由于水平有限,有不对的理解还望指正。