——————————————————————————————————————
论文地址:https://www.aclweb.org/anthology/P19-1003
前言:论文主要用来指导多轮交互如何进行指代消解和重写补全,在闲聊机器人和任务型机器人中都有很大的作用。
This metric measures the percentage of predictions that match any one of the ground truth answers exactly.
rouge的意思就是系统算法生成的摘要与参考摘要相同的N-gram数/参考摘要中的N-gram总数。这个公式是一个生成式摘要的评价标准。在主流的生成式摘要算法中,都使用这个公式作为测评标准。
最开始是用于机器翻译中。他的思想其实很native,对于一个给定的句子,有标准译文S1,还有一个神经网络翻译的句子S2。BLEU的思想就是对于出现机器翻译S2的所有短语,看有多少个短语出现在S1中,然后算一下这个比率就是BLEU的分数了。首先根据n-gram划分一个短语包含单词的数量,有BLEU-1,BLEU-2,BLEU-3,BLEU-4。分别就是把文章划分成长度为1个单词的短语,长度为2个单词的短语,。。然后统计她们出现在标准译文中个数,在分别除以划分总数,就是对应的BLEU-1分数,BLEU-2分数。。,其实就是准确率。看这些划分中有多少是出现在标准译文当中的。一般而言:unigram 的准确率可以用于衡量单词翻译的准确性,更高阶的 n-gram 的准确率可以用来衡量句子的流畅性,n{1,2,3,4}
但是BLEU会有个缺陷,假如我就翻译一个单词,而这个单词正好在标准译文中,那岂不是准确率100%,对于这个缺陷,BLEU算法会有个长度惩罚因子,就是翻译太短了就会有惩罚,不过,总的来说,还是偏向于短翻译分数高一点。
略
最近的研究在单轮对话建模方面取得了令人瞩目的进展。然而,在多轮对话中,当前的模型仍然远远不能令人满意。一个主要挑战是我们日常会话中经常出现的共指(coreference)和信息省略(omit),使得机器很难理解真实意图。在本文中,我们建议重写人类话语作为预处理以帮助多轮会话建模。首先重写每个话语以恢复所有共指和省略的信息。然后基于重写的话语执行下一个处理步骤。为了正确训练表达的重写模型,我们收集了一个新的具有人类注释的数据集,并使用指针网络引入基于transform的重写架构。我们表明所提出的架构在话语重写任务上实现了非常好的性能。经过训练后的表达重写器可以轻松集成到在线聊天机器人中,并在不同领域都有收益。
挑战是多方面的。 一个最重要的困难是我们日常会话中经常出现的共指和省略,特别是在中文或日文等语言中,存在70%以上的不同程度的共指和省略。
与内存网络 (memory networks)(Sukhbaatar et al。,2015)或显性信念跟踪(explicit belief tracking)(Mrksi c et al。’,2017)等其他方法相比,经过训练的话语重写器与模型无关,可以轻松集成到其他黑盒对话中系统。 它还具有更高的存储效率,因为对话历史信息反映在单个重写的话语中。
我们修改了Transformer体系结构包括指针网络机制。 得到的模型优于递归神经网络(RNN)和原始Transformer模型,在共指消解和信息完成上获得超过0.85的F1分数。 此外,我们整合了我们的训练有素的话语改写模型应用在两个在线聊天机器人平台并证明它可以实现更准确的意图检测并改善用户参与度。
总之,我们的贡献是:
我们从中文社交平台上爬了200k个多轮对话数据并找人去注释,事先过滤敏感信息,以便以后处理。 表2列出统计信息。 可以看出,只有不到30%的话语既没有共识也没有遗漏,而且有不少话语两者都有。因此这个研究很有必要。
数据的构建:
(1)选择在日常对话中更有可能被谈论的主题,
(2)尝试覆盖更广泛的领域
(3)平衡不同的指代和省略的比例。
(4)加入一些负例(不需要重写的)
在编码器中, ( H , U n ) (H,U_n) (H,Un)被展开为 ( w 1 , w 2 , … , w m ) (w_1,w_2,…,w_m) (w1,w2,…,wm), m m m是整个对话中词的个数,然后将这个序列传入transformer,transformer通过自注意机制学习其中的共指信息,对于每个词 w i w_i wi,输入嵌入是词嵌入、位置嵌入和轮数嵌入:
I ( w i ) = W E ( w i ) + P E ( w i ) + T E ( w i ) I(w_i)=WE(w_i)+PE(w_i)+TE(w_i) I(wi)=WE(wi)+PE(wi)+TE(wi)
其中轮数嵌入 T E ( w i ) TE(w_i) TE(wi)表示这个词所属的对话轮数,L堆叠编码器以获得最终编码表示。 每个编码器包含一个自我关注层,后跟一个前馈神经网络:
E ( 0 ) = [ I ( w 1 ) + I ( w 2 ) + I ( w m ) ] E^{(0)}=[I(w_1)+I(w_2)+I(w_m)] E(0)=[I(w1)+I(w2)+I(wm)]
E ( l ) = F N N ( M u l t i H e a d ( E ( l − 1 ) , E ( l − 1 ) , E ( l − 1 ) ) ) E^{(l)}=FNN(MultiHead(E^{(l-1)},E^{(l-1)},E^{(l-1)})) E(l)=FNN(MultiHead(E(l−1),E(l−1),E(l−1)))
FNN是一个前馈神经网络,MultiHead(Q,K,V)是多头注意函数,以查询矩阵Q,密钥矩阵K和值矩阵V作为输入。每个自我关注和前馈组件都带有残余连接和层标准化步骤,最终编码是第L编码器 E ( L ) E^{(L)} E(L)的输出。
模型的解码器也包含L层,每层由三个子层组成,第一个子层是多头注意力层:
M ( l ) = M u l t i H e a d ( D ( l − 1 ) , D ( l − 1 ) , D ( l − 1 ) ) ) M^{(l)}=MultiHead(D^{(l-1)},D^{(l-1)},D^{(l-1)})) M(l)=MultiHead(D(l−1),D(l−1),D(l−1)))
其中 D ( 0 ) = R D^{(0)}=R D(0)=R,第二个子层是编码器-解码器注意力,其将 E ( L ) E^{(L)} E(L)集成到解码器中。在该任务中,由于 H H H和 U n U_n Un用于不同的目的,对来自对话历史 H H H的词和来自 U n U_n Un的词使用单独的键值矩阵。从最后部分获得的编码序列 E ( L ) E^{(L)} E(L)被分成 E H ( L ) E_H^{(L)} EH(L)(来自 H H H的词的编码)和 E U n ( L ) E_{U_n}^{(L)} EUn(L)(来自 U n U_n Un的词的编码),然后单独处理。编码器-解码器向量计算如下:
C ( H ) l = M u l t i H e a d ( M ( l ) , E H ( L ) , E H ( L ) ) ) C(H)^l=MultiHead(M^{(l)},E_H^{(L)},E_H^{(L)})) C(H)l=MultiHead(M(l),EH(L),EH(L)))
C ( U n ) L = M u l t i H e a d ( M ( l ) , E U n ( L ) , E U n ( L ) ) ) C({U_n})^{L}=MultiHead(M^{(l)},E_{U_n}^{(L)},E_{U_n}^{(L)})) C(Un)L=MultiHead(M(l),EUn(L),EUn(L)))
第三个子层是一个全连接的前馈神经网络:
D ( l ) = F N N ( [ C ( H ) l ∘ C ( U n ) L ] ) D^{(l)}=FNN([C(H)^l \circ C({U_n})^{L}]) D(l)=FNN([C(H)l∘C(Un)L])
其中 ∘ \circ ∘表示向量连接。
最后的输出 R t R_t Rt取决于参数 λ \lambda λ,这个参数包含了历史句和当前句的向量信息,但是不太懂感觉 D t l D_t^l Dtl和这两个向量有点重复。
本文以基于生成的模型、基于指针的模型、指针+生成混合模型作为基线模型,从指代消解信息补全的效果以及处理过的数据集在对话系统任务的效果两个方面对表达改写的表现进行评估。
作者的实验主要想要验证以下几点:
(1)是否attention优于LSTM
(2)是否基于指针的策略优于生成模型
(3)是否引入了分割注意力参数λ,会更好
因此引入和设计了如下四个模型:
1.(L / T)-Gen:基于纯生成的模型。单词是从固定的词汇表生成的。
2.(L / T)-Ptr-Net:基于纯指针的模型(Vinyals等人2015年)。 言语只能是从输入中复制。
3.(L / T)-Ptr-Gen:混合指针+生成模型(如See等人的模型2017年)。 输出句子要么从输入复制,要么生成来自固定的词汇。
4.(L / T)-Ptr-λ:我们提出的模型引入系数λ决定注意力的最终输出。
(L / T)表示编码器 - 解码器结构是采用LSTM或Transformer。
由此产生的词汇量为5629(4813中文字符和816其他token),在测试阶段,所有模型通过集束搜索(Beam Search)解码字,beam_size大小设置为4。
实验结果如下:
结论:
机器人中做实验:
我们的面向任务的对话系统包含一个基于FastText的意图分类器(Bojanowski等,2017)和一组按顺序执行策略决策和插槽值填充的模板。
对一个输入的query,机器人会提供多个候选结果。通常,模型已经能够在单轮对话下提供相当高质量的响应,但是在多转对话中,复杂的上下文依赖性使得生成变得困难。
引入重写模型的机器人效果提升更明显且交互论数也增多了
在本文中,我们建议通过引入一个单独的表达重写模型来改进多转对话建模。 重写器用于恢复用户表达中的指代和省略信息。我们收集了一个高质量的手动注释数据集,并设计了一个Transformer的指针架构来训练表达重写器。受过训练的表达重写器表现得非常好,并且集成到任务和闲聊机器人上也取得了不错的效果,显著地改善了意图检测和用户参与度。 我们希望收集的数据集和训练的模型可以有益于未来的相关研究。
有个同事说论文的精髓在于实验,所以把实验看完了,之前都是只看到前面实验就很快扫过去了。