Paper 链接
0. Abstract部分
0.1 用于生成对话的Seq2Seq NN(序列到序列神经网络模型)
倾向于产生安全,平常的反应(例如,我不知道,任何问题都能这么回答)而不考虑输入如何。
我们发现使用传统的目标函数,即输出的可能性(响应)
给定的输入(消息)不适合回复生成任务(Response generation task)。 因此,我们建议使用最大相互信息(MMI)作为神经模型中的目标函数。 实验结果表明,提出的MMI模型可产生更加多样化,有趣且适当的回复,从而在两个会话数据集和人工评估中的BLEU得分中获得实质性收益。
1. Introduction部分
1.1 对话代理(Conversational agent)越来越重要于促进人与人之间(及其电子设备)的顺畅互动,然而传统的对话系统仍在继续面临重大挑战。健壮性,可伸缩性和领域适应性的形式。 因此,注意力转向了从数据中学习会话模式:研究人员已经开始在统计机器的框架内探索数据驱动的会话响应的生成翻译, 要么基于句子(phrase-based), 要么通过神经网络,要么直接就通过sequence2sequence的模型。SEQ2SEQ模型提供了可扩展性和语言独立性的承诺,以及隐式学习线对之间的语义和句法关系以及以传统SMT方法无法实现的方式捕获上下文相关性的能力。
1.2 一个好的的回复生成系统应该能够输出多种多样且有趣的语法,连贯的句子回复。 但是在实践中,神经对话模型往往会产生琐碎的
或不置可否的回应,通常涉及一些高频短语比如I don‘t know, I’m OK(万能回答). 如table1(下方)所示,一个四层seq2seq模型,在2千万对话配对中学习
这种现象的部分原因可以归因于I don‘t know这种句子的高频率出现,相反,更具有意义的回复一般在数据集中比较稀疏(sparsity)。 因为神经网络在训练中会给这些安全的(万能的)回复分配更高的概率。这种模型中的目标函数,通常在类似于机器翻译等任务中非常常见,但可能不适合涉及输出本质上不同的任务。(就是说生成不了过于有意义,及新意的回复。)所以,直观上,似乎不仅要考虑响应对消息的依赖性,而且还要考虑将消息提供给给定响应的可能性的倒数。(出现频率小的回答,倒数更大,这里有点像Tfidf, 就是要考虑倒数,从而更加注意一些低频词,因为高频词通常都是the,a,that等一些没有实际意义的词)。
1.3 于是该文章提议用MMI,一个在对话识别(Speech recognition)中第一次被提到的东西,MMI可以作为一种优化目标函数,用来衡量输入和输出之间的相互依赖度(mutual dependence)。然后文章发现使用MMI可以有效减少万能回复所占的比例,以及生成一些显而易见的更有辨识度,更多样性,更有趣的回答。
2. Related works
2.1 反正说自己的模型好,以前的模型都是template模版化的,即时考虑了概率模型,也不够好。而他们的新模型,受启发于SMT(statistical machine translation 统计机器翻译)。然后提到有些用了LSTM的seq2seq模型可以捕捉隐式组成性和大跨度的依赖。但是,我们的目标是产生单个非平凡的输出,并且我们的方法不需要识别词汇重叠即可促进多样性
3. Sequence-to-Sequence Model
3.1
其中
e
k
e_k
ek 是一个在时刻k关于词或者句子的向量,
h
k
−
1
h_{k-1}
hk−1就是上一个时刻的输入,把上一个时刻的输入和
e
k
e_k
ek放到LSTM中从而生成新的
h
k
h_k
hk。
3.2 会用到softmax
并且,输入和输出会用到不同的LSTM参数,从而捕捉不同的patterns。
3.3 解码过程中(把生成的向量转回人类可读的句子),一旦EOS token被识别就停止解码,解码可以用到贪心的算法(选择候选词表中概率最大的那个词作为当前位置的词),或者beam search
4. MMI models
4.1 Notation
S作为一个输入序列, S = { s 1 , s 2 , s 3 , s 4 . . . s N s } S=\{s_1, s_2, s_3, s_4...s_{Ns}\} S={s1,s2,s3,s4...sNs} ,其中 N s N_s Ns是S中词表的长度。 T是一个回复序列 T = { t 1 , t 2 , t 3 . . . t N t , E O S } T = \{t_1, t_2, t_3... t_{Nt}, EOS\} T={t1,t2,t3...tNt,EOS}, 其中 N t N_t Nt是回复的长度
4. 2 MMi Criterion
标准的seq2seq目标函数是关于T的log-likelihood,
T
^
=
a
r
g
m
a
x
T
l
o
g
p
(
T
∣
S
)
\hat{T} = argmax_T \ {log\ p(T|S)}
T^=argmaxT log p(T∣S)
在test的时候会产生统计决策问题(statistical decision problem)。
而在MMI中,会增加互信息,
l
o
g
p
(
S
,
T
)
p
(
S
)
p
(
T
)
log\frac{p(S, T)}{p(S)p(T)}
logp(S)p(T)p(S,T), 这种目标函数会阻止选择无条件拥有最高概率的那些选项(即万能回复),而是偏向于与输入有关的特定的回答,所以MMI目标函数可以写成:
T ^ = a r g m a x T { l o g p ( T ∣ S ) − l o g p ( T ) } \hat{T} = argmax_T \{log\ p(T|S) - log\ p(T)\} T^=argmaxT{log p(T∣S)−log p(T)}
加入惩罚项之后:
T
^
=
a
r
g
m
a
x
T
{
l
o
g
p
(
T
∣
S
)
−
λ
l
o
g
p
(
T
)
}
(
9
)
\hat{T} = argmax_T \{log\ p(T|S) - \lambda log\ p(T)\} \ (9)
T^=argmaxT{log p(T∣S)−λlog p(T)} (9)
中间还有几步省略,最后写成了这样:
T
^
=
a
r
g
m
a
x
T
{
(
1
−
λ
)
l
o
g
p
(
T
∣
S
)
−
λ
l
o
g
p
(
S
∣
T
)
}
(
10
)
\hat{T} = argmax_T \{(1-\lambda)log\ p(T|S) - \lambda log\ p(S|T)\} \ (10)
T^=argmaxT{(1−λ)log p(T∣S)−λlog p(S∣T)} (10)
这种方式可以在输入输出之间取得平衡。
4.3 Pratical consideration
上面的等式(9) 被当成MMI-antiLM,(10)被当成MMI-bidi, 但是这两种策略都不适合直接解码,(9)会导致无语法规则的回复(ungrammatical response), (10) 会导致解码很难,后面会讲如何解决。
4.3.1 MMI-antiLM
(9)式中的惩罚项
λ
l
o
g
p
(
T
)
\lambda log\ p(T)
λlog p(T)项不仅会惩罚高频,万能回答,还包括很流利的句子(fluent ones, 会导致无语法结构的output), 理论情形下当
λ
<
1
\lambda<1
λ<1时不会出现这种情况,因为无语法结构的句子总是会被第一项
l
o
g
p
(
T
∣
S
)
log\ p(T|S)
log p(T∣S)惩罚的很严重。但实际情况是,模型倾向于选择逃脱了被
p
(
T
∣
S
)
p(T|S)
p(T∣S)惩罚的无语法结构的output。
Solution 解决方法: 让
N
t
N_t
Nt当做序列集T的长度, 等式(9)可以写成:
p ( T ) = Π k = 1 N t p ( t k ∣ t 1 , t 2 . . . t k − 1 ) ( 11 ) p(T) = \Pi_{k=1}^{N_t}\ p(t_k|t_1, t_2...t_{k-1}) \ \ (11) p(T)=Πk=1Nt p(tk∣t1,t2...tk−1) (11)
用
U
(
T
)
U(T)
U(T)代替
p
(
T
)
p(T)
p(T), 其中
U
(
T
)
U(T)
U(T)是适应了标准语言模型,通过随着当前的token k递增乘上一个单调递减的
g
(
k
)
g(k)
g(k):
U
(
T
)
=
Π
i
=
1
N
t
p
(
t
k
∣
t
1
,
t
2
.
.
.
t
k
−
1
)
∗
g
(
k
)
(
12
)
U(T) =\Pi_{i=1}^{N_t}\ p(t_k|t_1, t_2...t_{k-1}) *g(k) \ (12)
U(T)=Πi=1Nt p(tk∣t1,t2...tk−1)∗g(k) (12)
首先,神经解码将先前构建的表示形式与当前步骤预测的单词结合起来。 随着解码的进行,初始输入对解码(即源句)的影响,由于向量表示中编码了其他先前预测的单词,因此表示减少。换句话说,要预测的第一个单词会显著决定句子的其余部分。语言模型对较早预测的单词的惩罚比对较晚预测的单词的惩罚更有助于句子的多样性。
其次,随着输入对解码的影响下降,语言模型的影响将占主导地位。 我们已经观察到不合语法的句段倾向于出现在句子的后半部分,特别是在长句子中。
本文采用最简单形式的 g ( k ) g(k) g(k) 通过给他设定一个阈值( γ \gamma γ),从而惩罚前 γ \gamma γ个词。
于是等式(9)最终变成 l o g p ( T ∣ S ) − λ l o g U ( T ) log\ p(T|S) - \lambda log\ U(T) log p(T∣S)−λlog U(T), 从而直接解码是容易的。
4.3.2 MMI-bidi
解码等式(11)也是不容易的,因为第二项中的 l o g p ( S ∣ T ) log\ p(S|T) log p(S∣T)要求 目标生成结束了才能计算,即不能变生成句子变计算, 由于目标T搜索空间巨大(比如这个句子要生成多少个字也是不确定的,答案长度不唯一,每一个位置的词也是不唯一的),考虑所有可能性是不现实的。
因此,出于实际原因,我们转向一种近似方法,该方法涉及首先根据目标函数的第一部分生成N个最佳List (N best list),然后根据目标函数的第二项对这个N-list重新排序, 由于通过seq2seq生成的N-best list通常都是语法正确的句子,所以最终选择都是格式很好的(不用担心语法问题)。 但模型重排序是有巨大缺点的,通过首先强调标准seq2seq目标函数,他会产生非全局最优解(局部最优), 更重要的是它依赖于模型生成一个多样性的候选set,从而要求每条消息都生成一个很长的List(大概是想说计算量很大,每个输入都要生成一堆候选答案)。
但是呢,这两个MMI变种却在实际中表现很好,显著提升了(回复的)有趣性和多样性。
4.4 Training
最近研究表明在seq2seq问题上,深度LSTM表现的比单层LSTM好, 所以采用了四层的编码和解码结构, 编码和解码层参数是不同的,每一层都有1000个隐神经元,word embedding的维度也是1000。
其他配置: LSTM参数和embedding的初始化都是在-0.8到0.8之间均匀分布的,随机梯度下降+固定学习率0.1,batch size256,当norm超过1时会有梯度裁剪( Gradient clipping)
4.5 Decoding
4.5.1 MMI-antiLM
如前面所说使用 l o g p ( T ∣ S ) − λ l o g U ( T ) log\ p(T|S) - \lambda log\ U(T) log p(T∣S)−λlog U(T)可以很轻松地在每个时间点预测,在实验中发现考虑解码长度也是很有必要的,所以最后给loss function也加入了对长度的惩罚项:
S c o r e ( T ) = l o g p ( T ∣ S ) − λ l o g U ( T ) + γ N t Score(T) = log\ p(T|S) - \lambda log\ U(T) + \gamma N_t Score(T)=log p(T∣S)−λlog U(T)+γNt ,其中T是Target, N t N_t Nt是Target长度, γ \gamma γ 是相应的权重。 通过使用MERT优化 γ , λ \gamma, \lambda γ,λ, N-best list通过设定beam size B=200的解码生成,生成的候选项最大长度20,在每一个解码时刻有B x B个候选,然后选出最优的B个进入下一步。
4.5.2 MMI-bidi
通过 l o g p ( T ∣ S ) log\ p(T|S) log p(T∣S) 生成N-best list, 然后根据线性地组合 p ( T ∣ S ) , λ p ( S ∣ T ) , γ N t p(T|S), \lambda p(S|T), \gamma N_t p(T∣S),λp(S∣T),γNt 重排序, 还是通过MERT来调参 γ , λ \gamma, \lambda γ,λ。
5. Expriments
5.1 Dataset
有Twitter Conversation Triple Dataset, OpenSubtitles dataset
5.2 Evaluation
对于参数调优和evaluation,都会用到BLUE, 而对于OpenSubtitles dataset只有single refrence BLUE score会被用到。对于Open这个数据集,由于一些限制,在evaluation的时候会用Internet Movie Script Database(IMSDB)数据集。
为了计算多样度,回复response中独立的unigrams和bigrams的数量会被计算,分别以distinct-1和distinct-2表示。这两个值都被标准化了,通过除以总的token数,从而使模型不会倾向于长句子(长句字更多unigrams和bigrams)
5.3 Results
Twitter数据集的结果
Baseline 是seq2seq+标准目标函数,beam size200, 和greedy search seq2seq比较。其他的对比模型还有SMT,以及SMT+neural reranking。
Open数据集的表现比twitter都低,原因可能是因为IMSDB数据集只用了single reference BLEU,他们注意到baseline seq2seq 模型在Open数据集上产生了unigrams多样性更低的表现,相对于Twitter数据集而言。可能原因是电影对话的信息丰富性更大。
然后就开始说自己的proposed methods了,MMI-antiLM和MMI-bidi 有性能提升。
后面基本就没啥好讲的了