paper link: Cluster-based Beam Search for Pointer-Generator Chatbot Grounded by Knowledge
1. intro
本文研究的问题如下:给定一段对话历史和一些与对话相关的文章片段,目标是生成有意义的、与给定背景信息密切相关的答复,本文重点关注的是以下三个方面:
- 对话历史建模
- 如何充分使用非结构化的外部知识
- 生成回复的多样性和相关性
本文的主要贡献在于:
- 提出了一个泛化的指针生成机制(pointer generator),使得同时从对话历史和外部知识中复制实体。
- 提出了一种聚类Beam Search算法,可以在解码的时候动态地将相似语义地序列分组归类,避免生成通用回复。
总体模型架构如下图:

图1. 模型结构
2. Data Cleaning and Fact Retrieval
论文中认为片段的每一句话是一个事实(fact),因为文章很多,所以作者使用了tfidf来选取与对话最相关的前topk个事实
sim(H,F)=w∈H∑idf(w)×count(winF)
其中,H是对话历史, F是事实句子(来自事实文章中),w是对话中的一个词,idf(w)是倒文档频率(此处是指w在所有对话中出现的频率的倒数)上式的含义是在对话中出现频率低,而在文档某句话中出现次数多的词,决定了对话与该事实的相关度。最后将得到的前topk个事实按照初始出现的顺序拼接到一起。
3. encoder
对于对话历史和背景事实,模型使用两个独立的单层双向LSTM网络进行编码,得到两个隐层状态:
HH=(h1H,h2H,…,hLH)HF=(h1F,h2F,…,hTF)
然后将对话历史的第一个和最后一个隐藏状态连接,然后线性投影结果作为decoder的初始状态
3. decoder
Decoder主要包含三个模块:
- 分别针对于对话历史和背景事实的注意力机制
- 生成回复的模式预测
- 词生成
3.1 Attention Mechanism
在解码的每个时刻 t ,利用解码器的隐层状态 htR分别对HH和HF计算attention:
etiH=vHT⋅tanh(WhH⋅hiH+WrH⋅htR+bH)αtiH=Softmax(etiH)htH∗=∑i=1LαtiHhiH
其中WhH, WrH, bH, vHT是可训练参数
etjFαtjFhtF∗=vHF⋅tanh(WhF⋅hjF+WrF⋅htR+bF)=Softmax(etjF)=j=1∑TαtjFhjF
3.2 Mode Prediction
本模块主要是借鉴自pointer generator (See, Liu, and Manning 2017),解决生成过程中的OOV问题,它有两种模式:(1)生成一个词;(2)复制一个词。而在该模型中,对指针生成器进行了扩展,转换成三种模式:(1)生成一个词;(2)从对话历史中复制一个词;(3)从事实中复制一个词。
在解码的每个时间步t,使用softmax多分类器来得到每次模式的概率:
Pr(mode=m∣t,H,F)=softmax(FF(htF∗⊕htH∗⊕htR⊕xt))
其中 xt 表示解码器在时间步 t 的输入向量
3.3 Word prediction
最终,模型生成一个词的概率等于三种模式生成的概率相加:
Pr(w∣t,H,F)=m=1∑3Pr(m∣t,H,F)⋅Prm(w∣t,H,F)
对于 Seq2Seq生成一个词:
Prm(w∣t,H,F)=softmax(WghtR)
对于从对话历史或者背景事实中复制一个词:
Prm(w∣t,H,F)=αtiH or αtiF
4. Cluster-based Beam Search
传统的 beam search 有一个固定大小的候选集上限k,而这 k 个最有可能的候选项有很多是语义相似的,例如i donot known, i donnot see,i donot understand,虽然它们的概率都很高,但是对于生成的多样性来讲没有意义。因此,作者提出了一种新的基于聚类的 Beam Search 算法:
主要过程如下:
- 首先根据对数似然概率选取前
BS*2个候选项
- 然后使用K-means聚成K个簇,聚类的特征为已解码序列的词向量平均
- 在每一个簇中选取前
BS/K个候选项作为下一步解码的候选集
其中BS表示束宽(beam size)
作用:语义相似的候选项会在一个簇中,不同簇中候选项含义不同,这样就可以在不增加Beam Search容量的前提下,增加不同语义回复的可能性。
5. Remove Repeated N-grams
论文介绍到:因为使用了注意力机制,模型似乎更加注意之前那些在对话历史和事实中关注的词,因此会重复生成 N-grams。为了提高流畅性,在波束搜索过程中,不再进一步考虑具有重复二元图的假设。
6. Filter Meaningless Response using LM
在无意义的响应上使用KenLM训练一个三元语言模型
reference
Cluster-based Beam Search for Pointer-Generator Chatbot Grounded by Knowledge
paper link: Cluster-based Beam Search for Pointer-Generator Chatbot Grounded by Knowledge