英语原文共 6 页
AliMe聊天:基于序列到序列和重排的聊天机器人引擎
Minghui Qiu,Feng-Lin Li,Siyu Wang,Xing Gao,
Yan Chen,Weipeng Zhao,Haiqing Chen,Jun Huang,Wei Chu
Alibaba Group, Hangzhou, China
{minghui.qmh,fenglin.lfl}@alibaba-inc.com
摘要
我们推出了AliMe聊天,一个开放领域的聊天机器人引擎,它将信息检索(IR)的联合结果和序列到序列(Seq2Seq)的生成模型相结合。 AliMe聊天使用基于序列到序列的重排模型来优化联合结果。大量的实验证明我们的引擎比IR和生成模型都要出色。我们推出了AliMe聊天,以实现真实的工业应用,并获得比其他公共聊天机器人更好的结果。
目录
1引言 1
2基于序列到序列的重排模型 2
2.1 QA知识库 2
2.2 IR模型 3
2.3 生成模型 3
2.4 序列到序列重排模型 4
3实验 5
3.1 评估重排模型 5
3.2 评估候选方法 5
3.3 线上 A/B测试 6
3.4 与公共聊天机器人的比较 6
3.5 在线服务 7
4 相关工作 9
5 结论 10
6致谢 11
7参考文献 12
1引言
在过去的几年里,聊天机器人蓬勃发展,例如微软的小冰、苹果的Siri、谷歌的谷歌助手。与传统的应用程序不同,用户通过简单和结构化的语言与他们进行交互(例如,“提交”,“取消”,“预定”等。),聊天机器人允许用户使用自然语言、文本或语音(甚至图像)与他们进行交流。
我们正在努力使机器人能够在电子商务领域回答客户的问题。目前,我们的机器人每天服务数百的客户问题(主要是中文,也有一些英文)。其中大多数是与商业有关的,但也有大约5%是以聊天为方向的(数千个)。为了提供更好的用户体验,建立一个开放域的聊天机器人引擎是必要的。
用于构建开放域的聊天机器人的常用技术包括IR模型(Ji et al., 2014; Yan et al., 2016b)和生成模型((Bahdanau et al., 2015; Sutskever et al., 2014; Vinyals and Le, 2015)。给定一个问题,前者在问答(QA)知识库中检索最接近的问题,并接受成对的答案,后者根据预先训练的序列到序列模型生成答案。通常,IR模型无法处理在QA库中不相近的长尾问题,并且生成模型可能产生不一样的或没有意义的答案(Li et al., 2016; Serban et al., 2016)。
为了解决这些问题,我们提出了一种集成IR和生成模型的混合方法。在我们的方法中,我们使用序列到序列的重排模型来优化联合结果。具体地说,对于一个问题,我们首先使用一个IR模型来检索一组QA对,并使用它们作为候选答案,然后使用序列到序列模型对候选答案进行重排:如果最高的候选所得分高于一个确定的阈值,它将被选为答案。否则答案将由生成模型提供(详细过程见图1)。
我们的论文做出如下贡献:
bull; 我们提出了一种新颖的混合方法,利用一个序列到序列模型来优化IR和生成模型的联合结果。
bull; 我们进行了一系列的实验来评估这种方法。结果表明,我们方法在IR和生成两方面表现都很出色。
bull; 我们将我们的聊天机器人引擎和一个公共的聊天机器人进行了比较。证据表明我们的引擎性能更好。
bull; 我们启用了AliMe聊天,用于真实的工业应用。
论文的其余部分结构如下:第2节介绍我们的混合方法,接着在第3节中的实验,相关的工作在第4节,第5节总结我们的工作。
2基于序列到序列的重排模型
我们在图1中概述了我们的方法。首先,我们从在线客服中的聊天记录中构建了一个QA知识库。基于这个QA知识库,我们开发了三种模型:IR模型、生成模型和重排模型。有两点值得注意:(1)这三种模式都是基于单词的(即需要分词):IR模型的输入特征是单词,而生成模型和重排模型的输入特征是单词向量表示,这些都是使用fasttext(Bojanowski et al., 2016)预先训练和在两个模型中进行进一步调整的。(2)我们的生成模型和重排模型是建立于同一序列到序列结构,前者生成输出,后者则是对输入问题的候选答案进行评分。
图1:我们的混合方法的概述。
给定一个输入问题和一个阈值,我们的方法的过程如下:
bull; 首先,我们使用IR模型检索一组候选QA对。
bull; 第二,我们将每个问题与其候选答案配对,并为每一个问答对使用重排模型中的计分公式Eqn. 2计算置信度得分。
bull; 第三,我们考虑答案使用最大分数如果,采取答案;否则输出一个基于生成模型的回复。
在这里,阈值是通过实证研究得到的,在第3.2节中讨论。
2.1 QA知识库
我们在2016 -01- 01到2016 -06-01之间使用我们在线客服中心的聊天记录作为我们原始的数据源(客户和员工之间的对话)。我们通过将每个问题与一个相邻近的答案配对来构建QA对。在需要的时候,我们把连续的问题(或答案)连接在一起。之后,我们过滤出包含业务相关关键字的QA对。最后,我们获得了9164,834个QA对。
2.2 IR模型
我们的检索模型采用搜索技术为每个输入找到最相似的问题,然后获得相匹配的答案。通过分词,我们为全部9,164,834个问题构建了一个反向索引,将每个单词映射到包含该单词的一系列问题中。给定一个问题,我们将其划分为一组单词,删除停用词,将设置扩展为它们的同义词,并使用细化的集合来调用一组QA候选对。然后我们使用BM25 (Robertson et al., 2009) 来计算输入问题和检索到的问题之间的相似度,并采用最相似的匹配的答案作为答案。
2.3 生成模型
我们的生成模型建立在序列到序列结构上 (Bahdanau et al., 2015)。
让,通过积分公式Eqn.1在位置上生成一个单词的概率,是一个计算概率的非线性函数,是位置的输出的隐藏状态,是上下文向量,取决于,输入序列的隐藏状态:由一个对准模型给出,该模型计算位置的输入与的输出的匹配程度 (Bahdanau et al., 2015)。如图2所示,其中。
图2:序列到序列模型,我们的模型主要针对中文。
我们选择门循环单元(GRU)作为循环神经网络(RNN)。下面讨论一些重要的实现。
存储桶和填充。为了处理不同长度的问题和答案,我们采用了在Tensorflow中提出的存储桶机制。我们使用五个存储桶 (5, 5), (5, 10), (10, 15), (20, 30),(45, 60)来容纳不同长度的QA对,例如,长度为4的问题和一个长度为8的答案将被放在存储桶(5, 10),并在需要时使用特殊符号“_PAD”填充问题和答案。
运用softmax函数于采样单词。为了加快训练过程,我们将softmax应用于一组抽样词汇(目标单词和512随机单词),而不是整个集合。这个想法与(Jean et al., 2014)的重要性抽样策略相似。
集束搜索解码。在解码相位时,我们使用定向搜索,在每个时刻维持top 输出序列,而不是贪婪搜索,每个时刻只保留一个,以使我们的生成更加合理。
2.4 序列到序列重排模型
我们的重排模型使用同样的序列到序列模型来为输入问题的候选答案进行评分。具体地说,我们选择的是平均概率,在积分公式Eqn.2中表示为,作为我们的积分函数(一个候选答案被视为一个单词序列)。我们还尝试过平均互熵和调和平均值,但它们的性能较差。
(2)
3实验
在我们的实验中,我们首先使用评分标准平均概率考察了序列到序列模型的有效性;然后我们评估了IR, Generation, IR Rerank,IR Rerank Generation(我们的方法)的有效性;我们还对我们的方法与一个基准聊天机器人引擎进行了在线A/B测试;最后,我们将我们的引擎与一个公共聊天机器人进行了比较。
为了评估,我们让业务分析人员回答每个测试问题的答案(两个实验的分析师与其他公共聊天机器人进行比较,一个用于其他实验),并标记为三个等级标签:“0”是不合适的,“1”表示这个答案只适用于某些情况,“2”表示答案是合适的。为了确定一个答案是否合适,我们定义了五个评价规则,即“语法正确”,“语义相关”、“口语流利”、“语境独立”和“不过度推广”。一个答案只有当它满足所有的规则将会被标记为合适的,中立的如果它满足前三,并打破后两者中的任何一个,否则不合适。
我们使用top-1精度()作为标准,因为某些方法的输出可以不止一个(例如,IR)。该指标衡量的是 top-1候选是否适合或中立,并按以下方法计算:,表示被标记为合适的问题的数量(其他符号的定义相似)。
3.1 评估重排模型
我们首先比较了两个序列到序列模型(在(Cho et al., 2014)中提出的基础模型,在第2.4节中介绍了细节),在3个平均标准(平均概率,平均互熵和调和平均数)中使用一组随机抽取的的500个问题。表1显示了的结果,这表明带有的序列到序列模型具有最好的性能。我们在重排模型中使用。
IR Rerank
|
IR |
|||
Basic |
0.48 |
0.48 |
0.47 |
0.47 |
Attentive |
0.54 |
0.53 |
0.53 |
表1:不同的重排模型的比较。
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。