0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

常识知识有助于开放域对话系统中语言的理解与生成

电子工程师 来源:未知 作者:李倩 2018-08-07 14:28 次阅读

AI 科技大本营按:2018 年 7月 13 日——19 日,ICJAI 2018 在瑞典首都斯德哥尔摩顺利召开。IJCAI(International Joint Conference on Artificial Intelligence)人工智能领域顶级学术会议之一,涵盖领域包括机器学习、图像识别、语音技术、自然语言处理、视频技术等,对全球人工智能行业有着巨大的影响力。

IJCAI 的评审历来都很严格,今年投稿数量更是达到了 3470 篇,接收论文 710 篇,接收率只有 20.5%(同比 2017 年, 2540 篇投稿,接收 660 篇,约26%的接收率);而来自国内的论文更是近达半数之多,可见国内研究的活跃。与往年不同,今年 IJCAI 没有评选出 Best Paper,但是选出了 7 篇 Distinguished Paper ,其中有 4 篇都是来自国内的研究成果。

今天 AI 科技大本营为大家采访到了本次 IJCAI 大会 Distinguished Paper 《Commonsense Knowledge Aware Conversation Generation with Graph Attention》(具有图注意力的常识知识感知会话生成系统)的第一作者——来自清华大学的博士研究生周昊,和大家分享其中更多的故事。

其实在去年,周昊和所在的课题组就有一项研究成果——Emotional Chatting Machine(情绪聊天机)获得了国内外的高度关注,MIT 科技评论、卫报和 NIVIDIA 就相继进行了追踪和报道。

(来源于 MIT Technology Review)

(此节选部分内容来源于 MIT Technology Review)

计算机无法衡量对话内容的情感,对话人的情绪,也就无法和人进行共情。而一个没有情商的聊天机器人反而会成为一个话题终结者。周昊和他所在的课题组就开发了一个能够评估对话内容情感并作出相应回应的聊天机器人,这项工作打开了通往具有情感意识的新一代聊天机器人的大门。

他们在研究中所提出的情绪聊天机(ECM),不仅可以在内容上给出适当的反应,而且能在情感上给出适当的反应(情绪一致)。这项工作已经在 TensorFlow 中实现.

摘要

常识知识对于自然语言处理来说至关重要。在本文中,我们提出了一种新的开放域对话的生成模型,以此来展现大规模的常识知识库是如何提升语言理解与生成的。若输入一个问题,模型会从知识库中检索相关的知识图,然后基于静态图注意力机制对其进行编码,图注意力机制有助于提升语义信息,从而帮助系统更好地理解问题。接下来,在语句的生成过程中,模型会逐个读取检索到的知识图以及每个图中的知识三元组,并通过动态的图注意力机制来优化语句的生成。我们首次尝试了在对话生成中使用大规模的常识知识库。此外,现有的模型都是将知识三元组分开使用的,而我们的模型将每个知识图作为完整的个体,从而获得结构更清晰,语义也更连贯的编码信息。实验显示,与当前的最高水平相比,我们提出的模型所生成的对话更为合理,信息量也更大。

简介

在许多自然语言处理工作中,尤其在处理常识知识和客观现象时,语义的理解显得尤为重要,毋庸置疑,它是一个成功的对话系统的关键要素,因为对话互动是一个基于“语义”的过程。在开放域对话系统中,常识知识对于建立有效的互动是很重要的,这是因为社会共享的常识知识是大众乐于了解并在谈话中使用的信息。

最近,在对话生成方面有很多神经模型被提出。但这些模型往往给出比较笼统的回复,大多数情况下,无法生成合适且信息丰富的答案,因为若不对用户的输入信息、背景知识和对话内容进行深度理解,是很难从对话数据中获取语义交互信息的。当一个模型能够连接并充分利用大规模的常识知识库,它才能更好地理解对话内容,并给出更合理的回复。举个例子,假如模型要理解这样一对语句,“Don’t order drinks at the restaurant , ask for free water”和“Not in Germany. Water cost more than beer. Bring your own water bottle”,我们需要的常识知识可以包括(water,AtLocation,restaurant),(free, RelatedTo, cost)等。

在此之前,有些研究已经在对话生成中引入了外部知识。这些模型所用到的知识是非结构化的文本或特定领域的知识三元组,但存在两个问题,第一,它们高度依赖非结构化文本的质量,受限于小规模的、领域特定的知识库。第二,它们通常将知识三元组分开使用,而不是将其作为每个图的完整个体。因此,这类模型不能基于互相关联的实体和它们之间的关系来给出图的语义信息。

为解决这两个问题,我们提出了常识知识感知对话模型(Commonsense Knowledge Aware Conversational Model, CCM),以优化语言理解和开放域对话系统的对话生成。我们使用大规模的常识知识来帮助理解问题的背景信息,从而基于此类知识来优化生成的答案。该模型为每个提出的问题检索相应的知识图,然后基于这些图给出富有信息量又合适的回复,如图1所示。为了优化图检索的过程,我们设计了两种新的图注意力机制。静态图注意力机制对检索到的图进行编码,来提升问题的语义,帮助系统充分理解问题。动态图注意机制会读取每个知识图及其中的三元组,然后利用图和三元组的语义信息来生成更合理的回复。

图 1:两种模型的对比。第一行回复由我们的模型(引入常识知识)生成,

第二行回复由 Seq2Seq 模型(未引入常识知识)生成。

总地来说,本文主要做出了以下突破:

该项目是首次在对话生成神经系统中,尝试使用大规模常识知识。有了这些知识的支撑,我们的模型能够更好地理解对话,从而给出更合适、信息量更大的回复。

代替过去将知识三元组分开使用的方法,我们设计了静态和动态图注意力机制,把知识三元组看作一个图,基于与其相邻实体和它们之间的关系,我们可以更好地解读所研究实体的语义。

常识对话模型

▌2.1 背景:Encoder - Decoder 模型

首先,我们介绍一下基于 seq2seq 的 Encoder-Decoder 模型。编码器表示一个问题序列

,其隐藏层可表示为 ,可以简单写作如下形式:

这里的 的词嵌入结果,GRU (Gated Recurrent Unit) 是门控循环单元。

解码器将上下文向量 的词嵌入结果作为输入,同时使用另一个 GRU(门控循环单元)来更新其状态

这里的

结合两个向量,共同作为 GRU 网络的输入。上下文向量 是 H 的词嵌入结果,也就是编码器隐藏状态的权重和:

估量了状态 和隐藏状态 中间的相关度。

从输出的可能性分布中抽取样本,解码器会产生一个 token,可能性的计算如下:

此处

,这些词便生成了。

译者注:Seq2Seq 模型与经典模型有所不同的是,经典的 N vs N 循环神经网络要求序列要等长,但我们在做对话生成时,问题和回复长度往往不同。因此 Encoder-Decoder 结构通过 Encoder 将输入数据编码成一个上下文向量,再通过 Decoder 对这个上下文向量进行解码,这里的 Encoder 和 Decoder 都是 RNN 网络实现的。

▌2.2 任务定义与概述

我们的问题描述如下:给定一个问题

和一些常识知识的图 ,目标是生成合理的回复

。本质上来看,该模型估计了概率:

。基于问题从知识库中检索图,每个单词对应G中的一个图。每个图包含一个三元组的集合

,每个三元组(头实体、关系、尾实体)可表示为

为了把知识库与非结构化的对话本文相关联,我们采用了 MLP 模型:一个知识三元组 可以表示为k= (h, r, t) = MLP(TransE(h,r, t)),这里的h / r / t 是经过 TransE 模型分别转化处理过的 h / r / t.

图 2:CCM 结构图

我们的常识对话模型(Commonsense Conversational Model, CCM)的概览如图 2 所示。知识解析器 (Knowledge Interpreter) 将问题

和检索得到的知识图 作为输入,通过把单词向量和与其对应的知识图向量相结合,来获得对每个单词的知识感知。通过静态图注意力机制,知识图向量包含了问题 X中对应每个单词的知识图。基于我们的动态图注意力机制,知识感知生成器 (Knowledge Aware Generator) 生成了回复 。在每个解码环节,它读取检索到的图和每个图中的实体,然后在词汇表中生成通用词汇,或在知识图中生成实体。

▌2.3 知识解析器

图 3:知识解析器把单词向量和图向量相结合。

在该例子中,单词 rays 对应第一个图,sunlight 对应第二个图。

每个图都用图向量表示。关键实体 (Key Entity) 表示当前问题中的实体。

知识解析器 (Knowledge Interpreter) 旨在优化问题理解这一环节。它通过引入每个单词对应的图向量,来增强单词的语义,如图 3 所示。知识解析器把问题中的每个单词 xt 作为关键实体,从整个常识知识库中检索图

(图中黄色部分)。每个检索到的图包含一个关键实体(图中红色圆点),与其相邻的实体(图中蓝色圆点)以及实体之间的关系。对一些常用词汇(如:of)来说,常识知识图中没有与其匹配的图,这类词汇用一个带有特殊标志 Not_A_Fact(图中灰色圆点)的图来表示。接下来,知识解析器会基于静态图注意力机制,来计算检索到的图的图向量 。把单词向量 和知识图向量 相结合,就得到了向量

,然后把它喂给编码器中的 GRU(门控循环单元,见图 1)。

静态图注意力

静态图注意力机制的设计旨在为检索到的知识图提供一个表现形式,我们设计的机制不仅考虑到图中的所有节点,也同时考虑节点之间的关系,因此编码的语义信息更加结构化。

静态图注意力机制会为每个图生成一个静态的表现形式,因而有助于加强问题中每个单词的语义。

形式上,静态图注意力把图中的知识三元组向量 作为输入,来生成如下的图向量

这里的 分别是头实体、关系、尾实体的权重矩阵。注意力的权重估量了“实体间关系” 和“头实体” 以及“尾实体” 之间的关联度。

本质上来说,图向量 的权重和。

▌2.4 知识感知生成器

图 4: 知识感知生成器动态地处理着图

知识感知生成器 (Knowledge Aware Generator) 旨在通过充分利用检索到的图,来生成相应的回复,如图 4 所示。知识感知生成器扮演了两个角色:1) 读取所有检索到的图,来获取一个图感知上下文向量,并用这个向量来更新解码器的状态;2) 自适应地从检索到的图中,选择通用词汇或实体来生成词语。形式上来看,解码器通过如下过程来更新状态:

这里 是单词向量 和前一个知识三元组向量 的结合,其来自上一个所选单词

是式 2 中的上下文向量, 分别是作用于知识图向量

和知识三元组向量

的上下文向量。

动态图注意力

动态图注意力机制是一个分层的、自上而下的过程。首先,它读取所有的知识图和每个图中的所有三元组,用来生成最终的回复。若给定一个解码器的状态 , 它首先作用于知识图向量

,以计算使用每个图的概率,如下:

这里

都是参数, 是处于第 t 步时选择知识图 的概率。图的上下文向量 是图向量的权重和,这个权重估量了解码器的状态

接下来,该模型用每个图

,来计算选择某个三元组来生成答案的概率,过程如下:

这里 可被看作每个知识三元组向量 和解码器状态 的相似度,

是处于第 t 步时从图 的所有三元组中选择 的概率。

最后,知识感知生成器选取通用词汇或实体词汇,基于如下概率分布:

这里 是用来平衡实体词汇 和通用词汇 之间选择的标量, 分别是通用词汇和实体词汇的概率。最终的概率 由两种概率结合所得。

译者注:在语言生成过程中,引入动态图注意力机制,模型可以通过当前解码器的状态,注意到最合适的知识图以及对应的知识三元组,再基于此来选择合适的常识与词汇来生成回复,从而使对话的信息量更大,内容更加连贯合理。与很多动态优化算法相类似,状态不断地更新与反馈,随之自适应地调整下一步决策,在对话生成系统中引入该机制有效地改善了生成结果。

实验

▌3.1 数据集

常识知识库

我们使用语义网络 (ConceptNet) 作为常识知识库。语义网络不仅包括客观事实,如“巴黎是法国的首都”这样确凿的信息,也包括未成文但大家都知道的常识,如“狗是一种宠物”。这一点对我们的实验很关键,因为在建立开放域对话系统过程中,能识别常见概念之间是否有未成文但真实存在的关联是必需的。

常识对话数据集

我们使用了来自 reddit 上一问一答形式的对话数据,数据集大小约为 10M。由于我们的目标是用常识知识优化语言理解和生成,所以我们滤出带有知识三元组的原始语料数据。若一对问答数据与任何三元组(即一个实体出现在问题中,另一个在答复中)都没有关联,那么这一对数据就会被剔除掉。具体数据概况可见表 1。

表 1: 数据集与知识库概况

▌3.2 实验细节

我们的模型是在 Tensorflow 下运行的。编码器与解码器均有两层 GRU 结构,每层有 512 个隐藏单元,它们之间不会共享参数。词嵌入时的长度设置为 300。词汇表大小限制在 30000。

我们采用了 Adam 优化器,学习率设置为 0.0001。具体代码已共享在 github上,文末附有地址。

▌3.3 对比模型

我们选取了几种合适的模型作为标准来进行对比:

Seq2Seq,一种 seq2seq 模型,它被广泛应用于各种开放域对话系统中。

MemNet,一个基于知识的模型,其中记忆单元用来存储知识三元组经 TransE 嵌入处理后的数据。

CopyNet,一种拷贝网络模型,它会从知识三元组中拷贝单词或由词汇表生成单词。

▌3.4 自动评估

指标:我们采用复杂度 (perplexity)来评估模型生成的内容。我们也计算了每条回复中的实体个数,来估量模型从常识知识库中挑选概念的能力,这项指标记为 entity score.

结果:如表 2 所示,CCM 获得了最低的复杂度,说明 CCM 可以更好地理解用户的问题,从而给出语义上更合理的回复。而且与其他模型相比,在对话生成中,CCM 从常识知识中选取的实体最多,这也可以说明常识知识可以在真正意义上优化回复的生成。

表 2: 基于 perplexity 和 entity score 的模型自动评估

▌3.5 人工评估

我们借助于众包服务 Amazon Mechanical Turk,从人工标记过的数据中随机采集 400 条数据。我们基于此来将 CCM 和另外几个模型对同一问题生成的回复进行对比。我们有三个对比模型,总计 1200 个问答数据对。

指标:我们定义了两项指标:appropriateness 在内容质量上进行评估(基于语法、主题和逻辑);informativeness 在知识层面进行评估(基于生成的答复是否针对问题提供了新的信息和知识)。

结果:如表 3 所示,CCM 在两项指标下都比另外几个模型表现更为突出。其中 CopyNet 是将知识三元组分开单独使用的,这也证明了图注意力机制的有效性。

很明显,在 OOV(out-of-vocabulary)数据集的表现上, CCM 比 Seq2Seq 突出得多。这也进一步说明常识知识在理解生僻概念上很有效,而 Seq2Seq 并没有这个能力。对于 MemNet 和 CopyNet,我们未发现在这一点上的差别,是因为这两个模型都或多或少引入使用了常识知识。

表 3: 基于 appropriateness (app.) 和 informativeness (inf.) 的人工评估

▌3.6 案例研究

如表 4 所示,这是一个对话示例。问题中的红色单词 "breakable" 是知识库里的一个单词实体,同时对于所有模型来说,也是一个词汇表以外的单词。由于没有使用常识知识,且 "breakable" 是词汇表之外的单词,所以 Seq2Seq 模型无法理解问题,从而给出含有OOV的回复。MemNet 因为读取了记忆中嵌入的三元组,可以生成若干有意义的词汇,但输出中仍包含OOV。CopyNet 可以从知识三元组中读取和复制词汇。然而,CopyNet 生成的实体单词个数比我们的少(如表 2 所示),这是因为 CopyNet 将知识三元组分开使用了。相比之下,CCM 将知识图作为一个整体,通过相连的实体和它们之间的关系,与信息关联起来,使解码更加结构化。通过这个简单的例子,可以证明相比于其他几个模型,CCM 可以生成更为合理、信息也更丰富的回复。

表 4: 对于同一问题,所有模型生成的回复

总结和未来的工作

在本文中,我们提出了一个常识知识感知对话模型 (CCM),演示了常识知识有助于开放域对话系统中语言的理解与生成。自动评估与人工评估皆证明了,与当前最先进的模型相比,CCM 能够生成更合理、信息量更丰富的回复。图注意力机制的表现,鼓舞了我们在未来的其他项目中也将使用常识知识。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3356

    浏览量

    131421
  • 自然语言处理

    关注

    1

    文章

    507

    浏览量

    13096
收藏 人收藏

    评论

    相关推荐

    请问AD2S1210外围电路,更改哪些元件有助于提高抗干扰能力?

    AD2S1210外围电路,更改哪些元件有助于提高抗干扰能力。线缆较短时,驱动器以及电机工作正常,现将电缆加长到40米,AD输出的解码值乱跳,电机无法工作。求各位大佬指点原因,给点意见。第二张手画
    发表于 08-01 08:47

    RF功率测量及控制有助于确保系统安全、高效地运行

    作者:齐凌杰 应用工程师 世强电讯 目前,包括通信收发机、仪器、工业控制和雷达等在内的许多系统都需要控制射频功率,因此需要准确测量射频功率。在这些系统,RF功率测量及控制有助于确保
    发表于 06-25 08:08

    LTC1436-PLL低噪声开关稳压器有助于控制EMI

    DN141-LTC1436-PLL低噪声开关稳压器有助于控制EMI
    发表于 07-19 11:58

    C语言编程的基础知识

    机器人创新实验室培训(软件篇)--01前言C语言编程的基础知识c语言的介绍c语言中的数据类型与变量的介绍功能快捷键合理的创建标题,有助于目录
    发表于 11-30 08:25

    介绍一些与变量相关的存储属性与作用

    为大家介绍一些变量相关的存储属性、作用、生命周期以及链接属性的一些知识,有助于大家更好地理解程序,分析程序。一、存储类&作用&生命周期&
    发表于 02-14 07:00

    东芝新款车载直流无刷电机栅极驱动IC有助于提升车辆电气元件的安全性

    检测(AOI)系统对焊点进行目视检查,并有助于提高焊点可靠性。此外,东芝已验证其可在贴装温度循环测试承受3000次循环,并获得了相关数据,从而让客户能够完全放心地使用该QFN封装。与现有产品相比,通过
    发表于 02-28 14:11

    系统演示平台有助于加快原型开发和评估

    系统演示平台有助于加快原型开发 和评估 .
    发表于 01-04 17:52 0次下载

    现代DAC和DAC缓冲器有助于提升系统性能、简化设计

    现代DAC和DAC缓冲器有助于提升系统性能、简化设计
    发表于 01-04 17:50 0次下载

    知识图会成为 NLP 的未来吗?IJCAI杰出论文背后的思考

    在本文中,我们提出了一个常识知识感知对话模型 (CCM),演示了常识知识有助于
    的头像 发表于 08-07 14:31 2737次阅读

    有助于提高FPGA调试效率的技术与问题分析

    本文重点介绍在调试FPGA系统时遇到的问题及有助于提高调试效率的技术,针对Altera和Xilinx的FPGA调试提供了最新的方法和工具。
    的头像 发表于 11-28 08:43 2123次阅读
    <b class='flag-5'>有助于</b>提高FPGA调试效率的技术与问题分析

    数字电源遥测有助于降低能耗,并延长系统运行时间

    数字电源遥测有助于降低能耗,并延长系统运行时间
    发表于 03-21 15:04 1次下载
    数字电源遥测<b class='flag-5'>有助于</b>降低能耗,并延长<b class='flag-5'>系统</b>运行时间

    基于知识对话生成任务

    基于知识对话生成任务(Knowledge-Grounded Dialogue Generation,KGD)是当前对话系统的研究热点,这个
    的头像 发表于 09-05 09:54 1346次阅读

    有助于检测心率的设备

    电子发烧友网站提供《有助于检测心率的设备.zip》资料免费下载
    发表于 11-17 10:41 0次下载
    <b class='flag-5'>有助于</b>检测心率的设备

    孔环是什么?深入了解孔环有助于实现PCB设计

    本文将探讨孔环,因为更深入的了解孔环有助于确保成功地实现PCB设计。
    的头像 发表于 07-19 10:21 2658次阅读
    孔环是什么?深入了解孔环<b class='flag-5'>有助于</b>实现PCB设计

    多层pcb生产,更有助于高精度布线

    多层pcb生产,更有助于高精度布线
    的头像 发表于 11-15 11:02 247次阅读