查看原文
其他

【源头活水】联合检索和记忆块的多action的Dialog Policy Learning模型



“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

来源:知乎—DengBoCong
地址:https://zhuanlan.zhihu.com/p/415170940
https://arxiv.org/pdf/2106.02317.pdf

nlp-paper:https://github.com/DengBoCong/nlp-paper

nlp-dialogue:https://github.com/DengBoCong/nlp-dialogue

text-similarity:https://github.com/DengBoCong/text-similarity

Algorithm:https://github.com/DengBoCong/Algorithm

说明:阅读原文时进行相关思想、结构、优缺点,内容进行提炼和记录,原文和相关引用会标明出处,引用之处如有侵权,烦请告知删除。

本文的定位是在对话系统的子任务Dialogue policy learning,其目标是为了提高在task-oriented对话系统中的context-to-response的质量。作者针对现有解决对话中的one-to-many问题的模型方法进行优化,提高候选actions的多样性和对话历史表示的隐藏信息量,从而提高response生成的质量。提出的模型可以分为两部分,context-aware neural retrieval module (CARM) 和 memory-augmented multi-decoder network(MAMD)。
CARM是使用预训练语言模型将对话历史和 state 转换为每个样本的context表示,然后使用 context vector 和其他样本的 latent space 表示之间的距离度量来检索多个候选 system actions,这样是的获得的 system actions更加多样化且包含context信息。这些system actions并不是直接用于模型的解码,而是现将其编码成一个memory bank,然后使用MAMD网络在训练过程中动态地配合memory bank生成system actions。除此之外,为了更好的提升模型的稳定性,作者在训练过程中加入了 random sampling机制,即以一定概率随机替换候选的 system actions。

01

模型细节

Context-Aware Retrieval Module

首先先定义一下符号,    表示第    轮的对话context, 其中    和    分别表示第    句用户和系统的response,        分别表示 belief state 和system actions。模型的目标就是基于context   和belief state    ,生成第    轮的 system actions    和 system response    。模型结构如下:

先是将context    和 belief state    级联起来喂入BERT中,如下:

后用    的隐向量作为获取的上下文特征表示,从而用于计算相似的对话上下文,相似计算使用    距离,如下:

选出    个上下文关联的actions表示为    。为了让BERT更加适应于当前任务,作者使用actions预测任务对BERT进行预训练:

其中,    是system actions的one-hot形式,    是简单的线性分类器。

Memory-Augmented Multi-Decoder Network

Encoding Module

Encoder是Bi-GRU,首先将用户当前的语句、前一个system response、前一个 belief state和候选system actions 分别进行编码:

Belief State Generation

然后使用上面得到的Encoder 隐状态向量来生成第    轮的belief state    

其中,    是前一个token的embedding,    是最后一步解码的隐状态向量,  是整个词汇的分布,Attn的详细计算如下:

   是一个使用了复制数据增强机制的belief state 解码器,如下:

该阶段使用交叉熵进行损失计算,并获得hidden state为    。

Memory-Augmented Action Generation

如上图所示,生成system actions如下,首先计算    :

然后使用    和 memory bank    进行注意力计算:

中,    是前一个token的embedding,    是检索出的实体embedding

Response Generation

最后使用各hidden state生成response:

最后损失函数,上述三个generation的损失函数相加进行优化。

02

实验结果

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存