“小会话,大学问”:如何让聊天机器人读懂对话历史?

做者 | 吴俣,武威,星辰,李舟军,周明(北航&微软研究院)

特约记者 | 曹东岩(哈尔滨工业大学)

人工智能如今的火热程度你们有目共睹,凯文凯利在《必然》中预测将来时代的人工智能可能会从新定义人类的意义,但时下的人工智能发展水平显然尚未你们想象得那么美好,仍然须要咱们不断地探索。目前众多研究人员正深耕其中,做为其中表明的聊天机器人(Chatbot),已然成为科研界研究的热点。git

一般来讲聊天机器人实现方式有两种:一种是基于生成式,即机器人“本身说话”,一个字一个字创做出回复语句来。另一种是基于检索式,即机器人“转发”别人的话。从互联网你们的话语中寻找到合适的回答予以转发。github

现有的生成结果因为技术所限,或多或少都存在语句不流畅的问题,但可以作到“有问必答”偶尔还能蹦出“彩蛋”。检索的模型通常流畅性方面无须担忧,不过随着目前网络资源的日益丰富,语料规模也愈来愈大,如何从众多语句中选择合适的句子做为回复是检索式聊天机器人的核心问题。微信

虽然目前市场上的聊天机器人众多,但咱们见到的那些貌似都不是那么聪明。最直观的一个体现就是先后不连贯,上下难衔接,所以在进行检索的时候考虑历史信息则显得尤其重要。那么如何让机器人理解对话历史信息从而聪明地进行回复呢?微软亚洲研究院的研究员们提出了一个模型 Sequential Matching Network(SMN)。相关论文的做者吴俣谈到“SMN 模型可让聊天机器人准确的理解当前和用户的对话历史,并根据历史给出最相关的回复,与用户进行交流,达到人机对话的目的。”网络

但这在实现的过程当中也遇到很多难点,“精准计算聊天历史和候选回复的语义类似度十分困难,主要的挑战有两个方面:(1)因为聊天历史信息繁多,如何将历史中重要的词语、短语以及句子选择出来,并经过这些重要部分刻画聊天历史,是一个亟待解决的问题;(2)如何对聊天历史中的各轮对话进行建模,如何判断对话历史中的跳转,顺承等关系,也是一个棘手的问题。” 那么论文做者提出的 SMN 模型又是如何解决这两个问题的呢,接下来咱们将为您解读。架构

“小会话,大学问”:如何让聊天机器人读懂对话历史?

▲ 图1:SMN网络架构学习

SMN 模型一共分为三层。第一层为信息匹配层,对以前的历史信息和待回复的句子进行匹配度计算:同时进行词语(embedding 向量)和短语级别(GRU 表示)的类似度计算。而后再把这两个矩阵分别做为卷积神经网络的一个 channel,利用 CNN 的 max-pooling 进行特征抽象,造成一个匹配向量。第二层为匹配积累层,利用一个 GRU 神经网络,将每一句话和回复所计算出的匹配信息进一步融合。第三层为匹配结果预测层,利用融合的匹配信息计算最终的匹配得分,在预测时他们使用三种策略,分别是只利用 GRU2 最后一个隐藏层(SMN_last),静态加权隐藏层(SMN_static),和动态加权隐藏层(SMN_dynamic)。在进行检索的时候,他们将最后一句的信息结合上文历史信息中的 5 个关键词(历史信息中用 tf-idf 进行筛选,选择 Top 5 关键词)在系统中进行检索,而后用上述 SMN 网络对候选结果打分从而选出回复句。人工智能

做者分别在 Ubuntu 语料(大型公开计算机相关求助与解答语料)和豆瓣语料(做者从豆瓣小组的公开信息中爬取并在论文中公布)上进行了实验,分别以 Rn@K 和 MAP、MRR、P@1 为评价指标,取得的结果均为目前最好。3d

做者表示“SMN不一样以往的模型,第一步不进行上下文的建模学习,而是让每句话和回复进行匹配度计算,这样能够尽量多的保留上下文的信息,以免重要信息在学习上下文的向量表示时丢失。并且 SMN 在对上下文句子关系建模时,考虑了当前回复的影响,使得回复成为一个监督信号,这样能够更准确的对上下文历史进行建模。”而且吴俣向咱们透露“据咱们所知,咱们公布的豆瓣语料是第一我的工标注的中文多轮对话语料。”blog

在谈及目前的方法还有哪些不足之处时,做者表示“目前咱们的检索方式有时找不到正确的候选句,因此第一步的检索方法还有待改善,另外虽然咱们的模型能够建模当前回复和历史信息的关系,但仍是没法避免一些逻辑上的问题,不过这也是咱们将来工做的重点,咱们将继续提升候选回复在逻辑上的连贯性”,让咱们共同期待他们的将来工做。资源

✎ 文末福利

论文中公布的豆瓣语料和代码连接:

github.com/MarkWuNLP/M…

欢迎点击查看论文:

Sequential Match Network: A New Architecture for Multi-turn Response Selection in Retrieval-based Chatbots

关于PaperWeekly:

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。若是你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

微信公众号:PaperWeekly

新浪微博:@ PaperWeekly

相关文章
相关标签/搜索