Cluster-based Beam Search for Pointer-Generator Chatbot Grounded by Knowledge

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 i d f ( w ) × count ⁡ ( w in ⁡ F ) \operatorname{sim}(H, F)=\sum_{w \in H} i d f(w) \times \operatorname{count}(w \operatorname{in} F) sim(H,F)=wHidf(w)×count(winF)

其中, H H H是对话历史, F F F是事实句子(来自事实文章中), w w w是对话中的一个词, i d f ( w ) idf(w) idf(w)是倒文档频率(此处是指 w w w在所有对话中出现的频率的倒数)上式的含义是在对话中出现频率低,而在文档某句话中出现次数多的词,决定了对话与该事实的相关度。最后将得到的前topk个事实按照初始出现的顺序拼接到一起。

3. encoder

对于对话历史和背景事实,模型使用两个独立的单层双向LSTM网络进行编码,得到两个隐层状态:
H H = ( h 1 H , h 2 H , … , h L H ) H F = ( h 1 F , h 2 F , … , h T F ) \begin{array}{l} H^{H}=\left(h_{1}^{H}, h_{2}^{H}, \ldots, h_{L}^{H}\right) \\ \\ H^{F}=\left(h_{1}^{F}, h_{2}^{F}, \ldots, h_{T}^{F}\right) \end{array} HH=(h1H,h2H,,hLH)HF=(h1F,h2F,,hTF)

然后将对话历史的第一个和最后一个隐藏状态连接,然后线性投影结果作为decoder的初始状态

3. decoder

Decoder主要包含三个模块:

  • 分别针对于对话历史和背景事实的注意力机制
  • 生成回复的模式预测
  • 词生成

3.1 Attention Mechanism

在解码的每个时刻 t t t ,利用解码器的隐层状态 h t R h_t^{R} htR分别对 H H H^H HH H F H^F HF计算attention:
e t i H = v H T ⋅ tanh ⁡ ( W h H ⋅ h i H + W r H ⋅ h t R + b H ) α t i H = Softmax ⁡ ( e t i H ) h t H ∗ = ∑ i = 1 L α t i H h i H \begin{array}{l} e_{t i}^{H}=v_{H}^{T} \cdot \tanh \left(W_{h}^{H} \cdot h_{i}^{H}+W_{r}^{H} \cdot h_{t}^{R}+b^{H}\right) \\ \\ \alpha_{t i}^{H}=\operatorname{Softmax}\left(e_{t i}^{H}\right) \\ \\ h_{t}^{H *}=\sum_{i=1}^{L} \alpha_{t i}^{H} h_{i}^{H} \end{array} etiH=vHTtanh(WhHhiH+WrHhtR+bH)αtiH=Softmax(etiH)htH=i=1LαtiHhiH

其中 W h H W_h^H WhH, W r H W_r^H WrH, b H b^H bH, v H T v_H^T vHT是可训练参数

e t j F = v H F ⋅ tanh ⁡ ( W h F ⋅ h j F + W r F ⋅ h t R + b F ) α t j F = Softmax ⁡ ( e t j F ) h t F ∗ = ∑ j = 1 T α t j F h j F \begin{aligned} e_{t j}^{F} &=v_{H}^{F} \cdot \tanh \left(W_{h}^{F} \cdot h_{j}^{F}+W_{r}^{F} \cdot h_{t}^{R}+b^{F}\right) \\ \\ \alpha_{t j}^{F} &=\operatorname{Softmax}\left(e_{t j}^{F}\right) \\ h_{t}^{F *} &=\sum_{j=1}^{T} \alpha_{t j}^{F} h_{j}^{F} \end{aligned} etjFαtjFhtF=vHFtanh(WhFhjF+WrFhtR+bF)=Softmax(etjF)=j=1TαtjFhjF

3.2 Mode Prediction

本模块主要是借鉴自pointer generator (See, Liu, and Manning 2017),解决生成过程中的OOV问题,它有两种模式:(1)生成一个词;(2)复制一个词。而在该模型中,对指针生成器进行了扩展,转换成三种模式:(1)生成一个词;(2)从对话历史中复制一个词;(3)从事实中复制一个词。

在解码的每个时间步 t t t,使用softmax多分类器来得到每次模式的概率:
Pr ⁡ (   m o d   e = m ∣ t , H , F ) = softmax ⁡ ( F F ( h t F ∗ ⊕ h t H ∗ ⊕ h t R ⊕ x t ) ) \operatorname{Pr}(\bmod e=m \mid t, H, F)=\operatorname{softmax}\left(F F\left(h_{t}^{F *} \oplus h_{t}^{H *} \oplus h_{t}^{R} \oplus x_{t}\right)\right) Pr(mode=mt,H,F)=softmax(FF(htFhtHhtRxt))

其中 x t x_t xt 表示解码器在时间步 t t t 的输入向量

3.3 Word prediction

最终,模型生成一个词的概率等于三种模式生成的概率相加:
Pr ⁡ ( w ∣ t , H , F ) = ∑ m = 1 3 Pr ⁡ ( m ∣ t , H , F ) ⋅ Pr ⁡ m ( w ∣ t , H , F ) \operatorname{Pr}(w \mid t, H, F)=\sum_{m=1}^{3} \operatorname{Pr}(m \mid t, H, F) \cdot \operatorname{Pr}_{m}(w \mid t, H, F) Pr(wt,H,F)=m=13Pr(mt,H,F)Prm(wt,H,F)

对于 Seq2Seq生成一个词:
P r m ( w ∣ t , H , F ) = softmax ⁡ ( W g h t R ) P_{r m}(w \mid t, H, F)=\operatorname{softmax}\left(W_{g} h_{t}^{R}\right) Prm(wt,H,F)=softmax(WghtR)

对于从对话历史或者背景事实中复制一个词:
P r m ( w ∣ t , H , F ) = α t i H  or  α t i F P_{r_{m}}(w \mid t, H, F)=\alpha_{t i}^{H} \text { or } \alpha_{t i}^{F} Prm(wt,H,F)=αtiH or αtiF

4. Cluster-based Beam Search

传统的 beam search 有一个固定大小的候选集上限k,而这 k 个最有可能的候选项有很多是语义相似的,例如i donot known, i donnot seei donot understand,虽然它们的概率都很高,但是对于生成的多样性来讲没有意义。因此,作者提出了一种新的基于聚类的 Beam Search 算法:

主要过程如下:

  1. 首先根据对数似然概率选取前BS*2个候选项
  2. 然后使用K-means聚成K个簇,聚类的特征为已解码序列的词向量平均
  3. 在每一个簇中选取前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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值