出处&团队:2019,微软&北航,Can Xu,Wei Wu,Yu Wu(未找到刊物)
创新点
1、把对话行为引入对话系统,可以提高对话的质量。
2、通过统计数据分析影响对话长短和内容的原因,比如问句的信息量低于陈述句等;
3、使用监督学习方法实现基础的R生成,并通过强化学习(机器自我博弈)的方法进一步提升模型的质量。
4、向量的构建:标签位于句子前面的构建方法值得注意。原文参考谷歌zero-shot机器翻译论文,可以看一下原方法出处。
方法
-
数据集构成(见实验部分)
-
构建自动标注(对话行为)分类器
方法: 双向RNN+双向GRUs+MLP
(1)训练集为500组人工标注对话数据模型
(2)输入为无标注对话序列模型对序列进行循环标注(对话行为标注)
(3)对话行为标注为7种:CM.S(上下文内容陈述)/CM.Q(上下文内容提问)/CM.A(上文回复)/CS.S(话题转变陈述)/CS.Q(转变话题提问)/CS.A(不回复上文直接转变话题)/O(其他) -
对话生成模型
对话生成模型使用监督学习的方法,分成标注模型(policy network)和回复生成模型(generation network)两部分。首先对用对话进行行为标注,一共分为7种标注(CM.A/CM.S等),如图b所示。
图b左下角表示一段话,左上角a是对应每句话的行为标签(使用DAMSL标注体系标注)。
回复生成模型使用seq-seq结构。值得注意的一个点是在编码时把标签放在了句子的前面,这个技巧参考谷歌zero-shot翻译论文。
监督学习模型
(1)对话行为标注模型
1、编码
(1)utterance—— 句子中的词使用biGRUs进行编码后,句子间使用GRU进行编码。(注意:一轮对话不一定只有一句话)
(2)行为标签—— 一句话对应一个行为标签,标签之间使用GRU进行编码
2、uteerance与对话行为标注向量拼接
3、拼接向量送MLP网络
4、得到行为分类(CS.A/CS.Q.等)(2)回复生成模型:Sqe-seq结构
1、句子编码
2、编码后的向量送注意力网络
3、向量解码+softmax
强化学习模型
机器和机器进行对话
奖励函数:单轮对话长度+相关性
其中相关性用了一个对偶LSTM网络
对话停止的3个条件
条件1:连续3句R语义重复
条件2:连续两次给出重复的R
条件3:达到预设对话长度
实验部分
数据集及处理
-
数据集
在DAMSL标注体系基础上扩展了42个标签,扩展使用Jurafsky(1997)和Stolcke(2006)。
数据来源:百度贴吧
数据格式:对话二元组
数据量:3千万 -
生成模型学习数据
训练集九百万、交叉验证集九万、测试集一千
(均为对原始数据集的随机采样) -
对话标注
数据:从训练集中随机采样500组数据
3个native同时标注
标注一致性检测:Fleiss’ kappa系数 -
baseline
S2SA
sequence- to-sequence with attention
HRED
hierarchical encoder-decoder model
VHRED
RL-S2S
- 实验1:验证模型是否能根据给定的上下文生成高质量R
(1) 评估标准
1、人工评估打分
2、机器衡量指标
BLEU 双语评估替换
embedding based metrics(Embedding Average/ Extrema/ Greedy/ distinct-1/ distinct-2)
(2) 对话行为如何影响生成R
R描述:distinct-1、distinct-2、、上下文外的词(OOC)的比率、 R的平均长度——Ave len
(3) 一般性结论
cs生成的R比cs更长,信息量更大,新词更多
语句和答案一般比问句信息量高
- 实验2:会话参与研究
两组实验:
(1)机器-机器
(2)机器-人
评估标准: 对话平均长度