提示:阅读论文时进行相关思想、结构、优缺点,内容进行提炼和记录,论文和相关引用会标明出处。

文章目录

  • 前言
  • 介绍
  • 具体结构及实现
    • 问题符号化
    • 模型结构
    • Utterance-Response匹配
    • Accumulation匹配
    • Prediction和Learning匹配
    • 检索候选Response
  • 实验结果
  • 总结

前言

标题:Sequential Matching Network: A New Architecture for Multi-turn Response Selection in Retrieval-Based Chatbots
原文链接:Link
Github:NLP相关Paper笔记和实现
说明:阅读论文时进行相关思想、结构、优缺点,内容进行提炼和记录,论文和相关引用会标明出处,引用之处如有侵权,烦请告知删除。
转载请注明:DengBoCong

介绍

本文的SMN模型结构可以说影响了很多后续相关的论文,所解决的是基于检索的聊天机器人中多回合对话的回复选择。在之前的工作,基于检索的聊天机器人的做法是将context里所有的utterances都连接在一起,将这个长长的context做处理然后和response作匹配,这样做可能会丢失语句间的关系或重要的上下文信息。Sequential Matching Network(SMN)模型就是为了解决这些问题而来的。

SMN首先在多个粒度级别上将上下文中每个utterance都和response做匹配,然后通过卷积和池化操作从每对中提取重要的匹配信息作为向量,接着通过递归神经网络(RNN)按时间顺序累积矢量,该神经网络对utterance之间的关系进行建模,最后使用RNN的隐藏状态计算最终匹配分数。

构建对话机器人的现有方法中,可以分为 generation-based(生成式)和retrieval-based(检索式),相对于生成式而言,检索式拥有的信息更加丰富,且运行流畅的特点。选择response的关键在于输入response匹配。与单回合对话不同,多回合对话需要在响应和对话上下文之间进行匹配,在该上下文中,不仅需要考虑response和输入信息之间的匹配,而且还需要考虑前一回合中response和utterances之间的匹配。总结而言该领域的任务存在如下的challenges:

  • 如何根据上下文识别重要信息(单词,短语和句子),这对于选择正确的response并利用相关信息进行匹配至关重要
  • 如何对上下文中的utterances之间的关系进行建模。

下图展示了challenges的例子:第二句的“hold a drum class”和第三句的“drum”相关性很强,所以回复是高度依赖于上下文以及语句之间的关系的。

在上面粗体中描述了SMN的结构流程,具体来说,对于每个utterance-response对而言,模型通过word embeddings和带有门控递归单元(GRU)的递归神经网络的隐藏状态来构造word-word相似度矩阵和sequence-sequence相似度矩阵。这两个矩阵分别在word级别和segment(单词子序列)级别上捕获成对的重要匹配信息,并且通过交替对矩阵进行卷积和池化操作,将信息提取和融合为匹配向量。

通过这种方式,可以在response的充分监督下识别上下文中多个粒度级别的重要信息,并以最小的损失进行匹配,然后将匹配向量喂给另一个GRU,以形成context和response的匹配分数,这个GRU会根据上下文中utterances的时间顺序在其隐藏状态下累积匹配。它以匹配的方式对utterances之间的关系和依存关系进行建模,并以utterances的顺序来监督配对匹配的累积。context和response的匹配程度是由具有GRU隐藏状态的logit模型计算的。

具体结构及实现

问题符号化

数据集表示为 D={(yi,si,ri)}i=1ND=\{(y_i,s_i,r_i)\}_{i=1}^ND={(yi,si,ri)}i=1N,其中si={ui,1,...,ui,ni}s_i=\{u_{i,1},...,u_{i,n_i}\}si={ui,1,...,ui,ni}表示对话上下文,{ui,k}k=1ni\{u_{i,k}\}_{k=1}^{n_i}{ui,k}k=1ni表示utterances,rir_iri表示response的候选,yi∈{0,1}y_i\in\{0,1\}yi{0,1}表示标签(当yi=1y_i=1yi=1 时意味着 rir_irisis_isi 合适的回复,否则 yi=0y_i=0yi=0),目标是学习 DDD 的匹配模型 g(.,.)g(.,.)g(.,.),对于任何context-response pair (s,r)(s,r)(s,r)g(s,r)g(s,r)g(s,r) 衡量 sssrrr 之间的匹配程度。

模型结构


按照上面的模型结构图,SMN首先将context-response分解为几个utterance-response pair匹配,然后通过递归神经网络将所有pairs匹配累积为基于上下文的匹配。模型分为三层:

  • 在word级别和segment级别将候选response与上下文中的每个utterance匹配,然后通过卷积提取两个层上的重要匹配信息,池化并编码为匹配向量。
  • 将上一层得到的匹配向量喂入第二层,在该层中,它们按照上下文中utterances的时间顺序在具有GRU的递归神经网络的隐藏状态下进行累积。
  • 将上一层的隐藏状态用于计算最终匹配分数

这样的模型结构有以下的优势:

  • 一个候选response可以在一开始就匹配上下文中的每个utterances,因此可以充分提取每个utterance-response pair中的匹配信息,并以最小的损失将其携带到最终匹配分数
  • 由于从每个utterance中提取信息是在不同的粒度级别上进行的,并且在response的充分监督下进行,因此可以很好地识别和提取对每个utterance中的response选择有用的语义结构。
  • 匹配和utterance关系是耦合而不是分开建模的,因此,作为一种knowledge,utterance关系(例如顺序)可以监督匹配分数的形成。

接下来针对三层的细节展开描述。

Utterance-Response匹配

给定上下文 sss 中的语句 uuu 和候选响应 rrr,然后对uuurrr 进行Embedding得到对应的表示 U=[eu,1,...,eu,nu]U=[e_{u,1},...,e_{u,n_u}]U=[eu,1,...,eu,nu]R=[er,1,...,er,nr]R=[e_{r,1},...,e_{r,n_r}]R=[er,1,...,er,nr] ,其中 eu,i,er,i∈Rde_{u,i},e_{r,i}\in \mathbb{R}^deu,i,er,iRd 分别是uuurrr 的第 iii 个单词的嵌入。然后使用 U∈Rd×nuU\in \mathbb{R}^{d\times n_u}URd×nuR∈Rd×nrR\in \mathbb{R}^{d\times n_r}RRd×nr 构造word-word相似度矩阵 M1∈Rnu×nrM_1\in \mathbb{R}^{n_u\times n_r}M1Rnu×nr,以及sequence-sequence相似度矩阵 M2∈Rnu×nrM_2\in \mathbb{R}^{n_u\times n_r}M2Rnu×nr,这两个矩阵作为卷积神经网络(CNN)的两个input channels,CNN从矩阵中提取重要的匹配信息,并将该信息编码为匹配向量 vvv。具体来说,∀i,j\forall i,ji,jM1M_1M1(i,j)(i,j)(i,j) 个元素被定义为(公式1):
e1,i,j=eu,iT⋅er,je_{1,i,j}=e_{u,i}^T\cdot e_{r,j}e1,i,j=eu,iTer,j
M1M_1M1 在单词级别上模拟 uuurrr 之间的匹配。为了构造M2M_2M2 ,我们首先使用GRU将 UUURRR 转换为隐藏向量。假设 Hu=[hu,1,...,hu,nu]H_u=[h_{u,1},...,h_{u,n_u}]Hu=[hu,1,...,hu,nu]UUU 的隐藏向量,则 ∀i,hu,i∈Rm\forall i,h_{u,i}\in \mathbb{R}^mi,hu,iRm 定义为(公式2):
zi=σ(Wzeu,i+Uzhu,i−1)z_i=\sigma (W_{ze_{u,i}}+U_zh_{u,i-1})zi=σ(Wzeu,i+Uzhu,i1) ri=σ(Wreu,i+Urhu,i−1)r_i=\sigma (W_{re_{u,i}}+U_rh_{u,i-1})ri=σ(Wreu,i+Urhu,i1) h~u,i=tanh(Wheu,i+Uh(ri⊙hu,i−1))\tilde{h}_{u,i}=tanh(W_{he_{u,i}}+U_{h}(r_i\odot h_{u,i-1}))h~u,i=tanh(Wheu,i+Uh(rihu,i1)) hu,i=zi⊙h~u,i+(1−zi)⊙hu,i−1h_{u,i}=z_i\odot\tilde{h}_{u,i}+(1-z_i)\odot h_{u,i-1}hu,i=zih~u,i+(1zi)hu,i1
其中 hu,0=0h_{u,0}=0hu,0=0ziz_izirir_iri 分别是update gate和reset gate,σ(⋅)\sigma(\cdot)σ()是一个sigmoid函数,Wz,Wh,Wr,Uz,Ur,UhW_z,W_h,W_r,U_z,U_r,U_hWz,Wh,Wr,Uz,Ur,Uh 都是参数,同样,我们有 Hr=[hr,1,...,hr,nr]H_r=[h_{r,1},...,h_{r,n_r}]Hr=[hr,1,...,hr,nr] 作为 RRR 的隐藏向量,然后 ∀i,j\forall i,ji,jM2M_2M2(i,j)(i,j)(i,j) 个元素被定义为(公式3):
e2,i,j=eu,iTAhr,je_{2,i,j}=e_{u,i}^TAh_{r,j}e2,i,j=eu,iTAhr,j
其中 A∈Rm×mA\in \mathbb{R}^{m\times m}ARm×m 是一个线性变换, ∀i\forall ii,GRU对直到位置 iii 的单词之间的顺序关系和依赖关系进行建模,并对text segment进行编码,直到第 iii 个单词为隐藏矢量为止,M2M_2M2 在segment级别上建模uuurrr 之间的匹配。

然后,CNN将 M1M_1M1M2M_2M2 处理为 vvv∀f=1,2\forall f=1,2f=1,2,CNN视 MfM_fMf 为输入通道,交替进行卷积和最大池化操作。假设∀f=1,2\forall f=1,2f=1,2z(l,f)=[zi,j(l,f)]I(l,f)×J(l,f)z^{(l,f)}=[z_{i,j}^{(l,f)}]_{I^{(l,f)}\times J^{(l,f)}}z(l,f)=[zi,j(l,f)]I(l,f)×J(l,f) 表示 lll 层上类型为 fff 的特征图的输出,其中 z(0,f)=Mfz^{(0,f)}=M_fz(0,f)=Mf。在卷积层上,我们使用窗口大小为 rw(l,f)×rh(l,f)r_w^{(l,f)}\times r_h^{(l,f)}rw(l,f)×rh(l,f) 的2D卷积运算,并将 zi,j(l,f)z_{i,j}^{(l,f)}zi,j(l,f) 定义为(公式4):
zi,j(l,f)=σ(∑f′=0Fl−1∑s=0rw(l,f)∑t=0rh(l,f)Ws,t(l,f)⋅zi+s,j+t(l−1,f′)+bl,k)z_{i,j}^{(l,f)}=\sigma(\sum_{f^{'}=0}^{F_{l-1}}\sum_{s=0}^{r_{w}^{(l,f)}}\sum_{t=0}^{r_{h}^{(l,f)}}W_{s,t}^{(l,f)}\cdot z_{i+s,j+t}^{(l-1,f^{'})}+b^{l,k})zi,j(l,f)=σ(f=0Fl1s=0rw(l,f)t=0rh(l,f)Ws,t(l,f)zi+s,j+t(l1,f)+bl,k)
其中,σ(⋅)\sigma(\cdot)σ()是一个ReLU,W(l,f)∈Rrw(l,f)×rh(l,f)W^{(l,f)}\in \mathbb{R}^{r_w^{(l,f)}\times r_h^{(l,f)}}W(l,f)Rrw(l,f)×rh(l,f)bl,kb^{l,k}bl,k 是参数,Fl−1F_{l-1}Fl1 是第 (l−1)(l-1)(l1) 层上的特征图的数量,最大池化操作基于卷积操作,可以表示为(公式5):
zi,j(l,f)=maxpw(l,f)>s≥0maxph(l,f)>t≥0zi+s,j+tz_{i,j}^{(l,f)}=\underset{p_w^{(l,f)}>s\geq0}{max} \underset{p_h^{(l,f)}>t\geq0}{max}z_{i+s,j+t}zi,j(l,f)=pw(l,f)>s0maxph(l,f)>t0maxzi+s,j+t
其中 pw(l,f)p_w^{(l,f)}pw(l,f)ph(l,f)p_h^{(l,f)}ph(l,f) 分别是2D池的宽度和高度,最终特征图的输出被串联并映射到低维空间,并通过线性变换作为匹配向量 v∈Rqv\in \mathbb{R^q}vRq

Accumulation匹配

假设 [v1,...,vn][v_1,...,v_n][v1,...,vn] 是第一层的输出(对应 nnn pairs),在第二层,GRU取 [v1,...,vn][v_1,...,v_n][v1,...,vn] 作为输入,并将匹配序列编码为其隐藏状态 Hm=[h1′,...,hn′]∈Rq×nH_m=[h_1^{'},...,h_n^{'}]\in \mathbb{R^{q\times n}}Hm=[h1,...,hn]Rq×n。 其详细参数设置与公式(2)相似,这个层有两个函数:

  • 它在上下文中建模utterances的依存关系和时间关系
  • 它利用时间关系来监督对accumulation的累积,作为基于上下文的匹配

Prediction和Learning匹配

存在 [h1′,...,hn′][h_1^{'},...,h_n^{'}][h1,...,hn],我们将 g(s,r)g(s,r)g(s,r) 定义为(公式6):
g(s,r)=softmax(W2L[h1′,...,hn′]+b2)g(s,r)=softmax(W_2L[h_1^{'},...,h_n^{'}]+b_2)g(s,r)=softmax(W2L[h1,...,hn]+b2)
其中,W2W_2W2b2b_2b2 是参数,我们考虑 L[h1′,...,hn′]L[h_1^{'},...,h_n^{'}]L[h1,...,hn] 的三个参数化:

  • 仅使用最后一个隐藏状态, L[h1′,...,hn′]=hn′L[h_1^{'},...,h_n^{'}]=h_n^{'}L[h1,...,hn]=hn
  • 隐藏状态线性组合, L[h1′,...,hn′]=∑i=1nwihi′L[h_1^{'},...,h_n^{'}]=\sum_{i=1}^{n}w_ih_i^{'}L[h1,...,hn]=i=1nwihi,其中 wi∈Rw_i\in \mathbb{R}wiR
  • 我们遵循并运用注意力机制来组合隐藏状态,则 L[h1′,...,hn′]L[h_1^{'},...,h_n^{'}]L[h1,...,hn] 被定义为(公式7):
    ti=tanh(W1,1hui,nu+W1,2hi′+b1)t_i=tanh(W_{1,1}h_{u_i,n_u}+W_{1,2}h_i^{'}+b_1)ti=tanh(W1,1hui,nu+W1,2hi+b1) ai=exp(tiTts)∑i(exp(tiTts))a_i=\frac{exp(t_i^Tt_s)}{\sum_i(exp(t_i^Tt_s))}ai=i(exp(tiTts))exp(tiTts) L[h1′,...,hn′]=∑i=1naihi′L[h_1^{'},...,h_n^{'}]=\sum_{i=1}^{n}a_ih_i^{'}L[h1,...,hn]=i=1naihi
    其中, W1,1∈Rq×mW_{1,1} \in \mathbb{R^{q\times m}}W1,1Rq×mW1,2∈Rq×qW_{1,2}\in \mathbb{R^{q\times q}}W1,2Rq×qb1∈Rqb_1\in \mathbb{R^{q}}b1Rq 是参数, hi′h_i^{'}hihui,nuh_{u_i,n_u}hui,nu 分别是第 iii 个匹配向量和第 iii 个utterance的最终隐藏状态, ts∈Rqt_s\in \mathbb{R^{q}}tsRq 是一个虚拟上下文向量,它是随机初始化的,并在训练中共同学习。我们用 L[h1′,...,hn′]L[h_1^{'},...,h_n^{'}]L[h1,...,hn] 的三个参数化来表示我们的模型,分别是 SMNlastSMN_{last}SMNlastSMNstaticSMN_{static}SMNstaticSMNdynamicSMN_{dynamic}SMNdynamic,并在实验中进行比较。

我们通过用 DDD 最小化交叉熵来学习 g(⋅,⋅)g(\cdot,\cdot)g(,)。令 θ\thetaθ 表示 SMNSMNSMN 的参数,则学习的目标函数 L(D,θ)L(D,\theta)L(D,θ) 可表示为(公式8):
−∑i=1N[yilog(g(si,ri))+(1−yi)log(1−g(si,ri))]-\sum_{i=1}^{N}[y_ilog(g(s_i,r_i))+(1-y_i)log(1-g(s_i,r_i))]i=1N[yilog(g(si,ri))+(1yi)log(1g(si,ri))]

检索候选Response

作者利用启发式方法从索引中获取候选response,将前一轮的utterances {u1,...,un−1}\{u_1,...,u_{n-1}\}{u1,...,un1}unu_nun 进行计算,根据他们的tf-idf得分,从 {u1,...,un−1}\{u_1,...,u_{n-1}\}{u1,...,un1} 中提取前 555 个关键字,然后,我们将扩展后的message用于索引,并使用索引的内联检索算法来检索候选response。最后,我们使用 g(s,r)g(s,r)g(s,r) 对候选进行排名,并返回第一个作为对上下文的response。

实验结果

  • Ubuntu语料
  • 豆瓣多轮语料:下图给出三组的统计数据。

    下图显示两个数据集的评估结果:

    我们使用Ubuntu语料库中的示例对第二层中的相似性矩阵和GRU的gates进行可视化,以进一步阐明我们的模型如何在上下文中识别重要信息,以及如何使用前文所述的GRU的门机制选择重要的匹配向量,示例及可视化图如下:
{u1: how can unzip many rar (_number_ for example ) files at once; u2: sure you can do that in bash; u3: okay how? u4: are the files all in the same directory? u5: yes they all are; r: then the command glebihan should extract them all from/to that directory
}


下面是消融(Ablation)实验的结果:

**跨context长度的效果:**显示了豆瓣语料库上不同长度间隔的MAP的比较

**最大context长度:**展示了在最大context长度方面,SMN在Ubuntu Corpus和Douban Corpus上的性能

错误分析:

  • 逻辑一致性。 SMN在语义级别上对context和response进行建模,但很少关注逻辑一致性
  • 检索后没有正确的候选

总结

论文提出了一个新的基于上下文的模型,用于基于检索的聊天机器人中的多轮响应选择,论文还详尽的介绍了豆瓣对话语料库,并且做了实验去研究应该在context中取多少个utterance,即取多少轮对话,实验证明轮数取10的时候效果最好,很值得学习的论文。

论文阅读笔记:Sequential Matching Network: A New Architecture for Multi-turn Response Selection in Retrieva相关推荐

  1. 【论文阅读笔记】Incremental Network Quantizatio:Towards Lossless CNNs with Low-Precision Weights

    全文概括   先前的量化方法(同时量化所有的weight)都太粗暴了,这导致了量化损失严重,作者提出一种分组量化-分组re-train的方法来拟补量化带来的损失.   INQ方法步骤: 将为量化的参数 ...

  2. 论文阅读笔记《Matching Images With Multiple Descriptors: An Unsupervised Approach for Locally Adaptive》

    核心思想   本文提出一种将多种特征描述算法融合起来实现更好图像匹配的方法.近些年来,图像特征的描述算法层出不穷如SIFT.LIOP .DAISY等等,每种方法都有各自的优势和侧重点,对于不同图像其效 ...

  3. Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记

    Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记 这篇论文介绍 ...

  4. 论文阅读笔记:Geography-Aware Sequential Location Recommendation

    论文阅读笔记:Geography-Aware Sequential Location Recommendation 文章目录 论文阅读笔记:Geography-Aware Sequential Loc ...

  5. Self-Attentive Sequential Recommendation论文阅读笔记

    SASRec论文阅读笔记 论文标题:Self-Attentive Sequential Recommendation 发表于:2018 ICDM 作者:Wang-Cheng Kang, Julian ...

  6. LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记)

    LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记) 环形扫描骨干网络.动态漂移.一致性驱动的融合 一.重点内容 ...

  7. 论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering,SENet,用于大规模子空间聚类的自表达网络

    论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering. SENet--用于大规模子空间聚类的自表达网络 前言 摘要 ...

  8. 【异构图笔记,篇章3】GATNE论文阅读笔记与理解:General Attributed Multiplex HeTerogeneous Network Embedding

    [异构图笔记,篇章3]GATNE论文阅读笔记与理解:General Attributed Multiplex HeTerogeneous Network Embedding 上期回顾 论文信息概览 论 ...

  9. PolyFormer: Referring Image Segmentation as Sequential Polygon Generation 论文阅读笔记

    PolyFormer: Referring Image Segmentation as Sequential Polygon Generation 论文阅读笔记 一.Abstract 二.引言 三.相 ...

  10. 论文阅读笔记:《Hyperspectral image classification via a random patches network》(ISPRSjprs2018)

    论文阅读笔记:<Hyperspectral image classification via a random patches network>(ISPRSjprs2018) 论文下载地址 ...

最新文章

  1. 【LeetCode-704 | 二分查找】
  2. java ajax datatype_理解jquery ajax中的datatype属性选项值
  3. layui 下拉选择框可以选择但不显示数据值_你想做的quot;基因药物疾病quot;网络数据在这里!...
  4. js操作样式自动prefix
  5. follow up transaction type determination
  6. eclipse pmd使用_使用您自己的规则在Eclipse中自定义PMD
  7. MATLAB字符串和ASCII码的转换
  8. Dreamweaver Flash Photoshop网页设计综合应用 (智云科技) [iso] 1.86G​
  9. mysql有实例名这个概念,MySQL的一些概念笔记
  10. 火狐中国区linux无法同步,教大家火狐浏览器同步数据失败的几点原因
  11. lavaral中文手册_Laravel5.3手册下载
  12. tem_search_shop-获得店铺的所有商品
  13. C# 实现DES加密解密
  14. 在 Kali Linux安装环境中,配置网络出现DHCP错误,解决方案。(安装kali Linux的网络配置失败问题)
  15. Chrome debugger调试技巧
  16. 对话现实版“谢耳朵”:多重宇宙和引力、超弦理论、暗能量
  17. Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on pr
  18. 翻译翻译什么叫HTML5(六)“开门,js来查水表啦”
  19. 飞行模拟器V1.0正式版
  20. 当年明月致新浪朋友的信

热门文章

  1. 正确区分CRM、OA、协同办公平台
  2. 阿里云·天池大数据竞赛,快商通突破专业屏障,算法能力领跑全球
  3. MongoDB下载安装教程 全
  4. 大牛给计算机专业学生的 7 个建议
  5. java求极限值_高等数学——讲透求极限两大方法,夹逼法与换元法
  6. 目标实现,时间、知识管理体系
  7. 腾讯随星播 v2.2.1 官方版​
  8. ensp下载与安装问题
  9. mysql 唯一索引_mysql创建唯一索引
  10. oracle学习之oracle基础