论文研读:基于统计重加权的方法减少通用回复

论文提出一种统计重加权的损失函数,针对神经对话模型在开放领域对话中产生通用回复的问题。通过对回复的权重调整,降低通用和过短/过长回复的损失,以提升对话的多样性和相关性。实验表明该方法能有效减少通用回复的频率。
摘要由CSDN通过智能技术生成

论文研读:基于统计重加权的方法减少通用回复

会议名称:EMNLP2018

文章题目:Towards Less Generic Responses in Neural Conversation Models: A Statistical Re-weighting Method

原文链接:https://link.zhihu.com/?target=https://www.paperweekly.site/papers/2440

一句话概括: 针对开放对话领域的对话多对多关系并且产生通用回复的问题,文章在损失项中引入权重的概念,降低通用回复权重,降低过短或者过长语句的权重。

论文背景

    神经生成模型在机器翻译中的成功应用,即神经机器翻译(Neural Machine Translation, NMT),激发了研究人员对于神经对话模型的热情。目前最常用的框架为Seq2Seq模型,其通常通过极大似然法,最大化回复的概率得到输出结果。但在上述任务中会存在一些问题,其中最严重的的一个是模型经常会产生一个通用的回复(例如,我不知道),而不是一个有意义的特定回答。

    在开放领域的对话中,我们经常发现对于一个输入 x x x,会得到若干意思不一致,但是同样可以接受的回答。如问“你吃饭了吗”,回复“还没”,“不饿”,“刚吃完”,“不急”等等都可以被接受,因此对于 x x x y y y通常是一个一对多甚至多对多的关系,如下图所示:
file
    作者通过这些观察,提出了一种统计重加权的损失函数,减少通用回复。

论文方法

    考虑对于语料库 C C C,其对于样本 ( x , y ) (\mathbf{x,y}) (x,y),损失函数为:
l ( x , y , θ ) = − ∑ t = 1 T ′ l o g p ( y t ∣ x , y [ t − 1 ] ; θ ) l(\mathbf{x,y},\theta)=-\sum_{t=1}^{T'}logp(y_t|\mathbf{x,y}_{[t-1];}\theta) l(x,y,θ)=t=1Tlogp(ytx,y[t1];θ)
    全样本集的损失函数为:
L ( C , θ ) = ∑ ( x , y ) ∈ C l ( x , y , θ ) L(C,\theta)=\sum_{(\mathbf{x,y})\in C}l(\mathbf{x,y},\theta) L(Cθ)=(x,y)Cl(x,y,θ)
    考虑通用回复出现在很多 x \mathbf{x} x对应的回复中,因此,如果我们对于 x \mathbf{x} x的两个回复中,如果某个回复比另一个更加通用,他们会具有相同的损失项(根据公式1),公式2中会包含大量通用回复,导致模型陷入局部最优,即模型更加倾向于产生通用回复。

    基于上述观察,但是我们应该提高通用回复的损失,降低不通用回复的损失。于是提出下面的损失函数:
l w ( x , y , θ ) = w ( y ∣ x , θ ) l ( x , y , θ ) l_w(\mathbf{x,y},\theta)=w(\mathbf{y|x},\theta)l(\mathbf{x,y},\theta) lw(x,y,θ)=w(yx,θ)l(x,y,θ)

    在这里, w ( y ∣ x , θ ) w(\mathbf{y|x},\theta) w(yx,θ)作为一个权重,取值范围为 ( 0 , 1 ] (0,1] (0,1],对于样本集 C C C上的Batch,将其损失函数归一化为:
L ( B , θ ) = ∑ x , y ∈ B l w ( x , y , θ ) ∑ x , y ∈ B w ( y ∣ x ) L(\mathbb{B},\theta)=\frac{\sum_{\mathbf{x,y\in{\mathbb{B}}}}l_w(\mathbf{x,y},\theta)}{\sum_{\mathbf{x,y\in{\mathbb{B}}}}w(\mathbf{y|x})} L(B,θ)=x,yBw(yx)x,yBlw(x,y,θ)
    对于回复,作者总结了两个公共的属性:

    1. 经常出现在训练语料库中的回复模式往往是通用的。在这里,模式指的是整个句子或n-gram,可以通过回复之间的相似性来描述。

    2. 特别长或者特别短的回复都应该避免,太长包含太多特定信息,太短通用回复

    因此作者设计了权重:
w ( y ∣ x , R , C ) = Φ ( y ) m a x r ∈ R { Φ ( r ) } w(\mathbf{y|x},R,C)= \frac{\Phi(\mathbf{y}) }{max_{r\in R}\{\Phi(r)\}} w(yx,R,C)=maxrR{Φ(r)}Φ(y)
    其中 Φ ( y ) \Phi(\mathbf{y}) Φ(y)指:
Φ ( y ) = α ε ( y ) β F ( y ) \Phi(\mathbf{y})=\alpha\varepsilon(\mathbf{y}) \beta\mathfrak{F}(\mathbf{y}) Φ(y)=αε(y)βF(y)

     ε ( y ) \varepsilon(\mathbf{y}) ε(y)为:
ε ( y ) = e − a f ( y ) \varepsilon(\mathbf{y})=e^{-af\mathbf{(y)}} ε(y)=eaf(y)

     F ( y ) \mathfrak{F}(\mathbf{y}) F(y)为:
F ( y ) = e − c ∣ ∣ y ∣ − ∣ y ^ ∣ ∣ \mathfrak{F}(\mathbf{y})=e^{-c||\mathbf{y}|-|\mathbf{\hat{y}}||} F(y)=ecyy^
这里 f ( y ) f(\mathbf{y}) f(y)是回复 y \mathbf{y} y在所有回复中的出现频次, y ^ \hat y y^为所有回复的平均长度, { α , β , a , c } \{\alpha,\beta,a,c\} {α,β,a,c}均为超参数。

实验结果

    作者从社交网站爬取了700万对话作为实验,用500作为测试,对句子通顺度,句子相关性,可接受度等方面进行评测,同时对权重的多重设计的有效性进行了评测(只使用频次RWE,长度RWF,都是用RWEF等)结果如下:

file

    另外作者利用10万测试集统计了常用通用回复的频次,明显看到通用回复变少。

file

个人总结

    个人觉得方法还是很有启发性的,通过改变权重,样本原本的分布,以此来达到减少通用回复的目的。

    但是模型需要顾虑:权重改变改变了样本的分布,这种改变是否合理?噪声点是否因此被放大?在 i . i . d i.i.d i.i.d条件下,人们通用回复说得多是否代表通用回复占比本来就高,这样改变的对话系统是否不符合对话方式?(如在原文中,举例“孟记普洱茶专营店一贴”,通用回复为“我也想喝”,而文章中的模型为“我喜欢喝茶”,是否前者更符合,后者更突兀?)

    但是这篇文章依旧非常具有启发性,感谢腾讯AILAB,武汉大学,苏州大学的大牛们。

本文由飞剑客原创,如需转载,请联系私信联系知乎:@AndyChanCD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值