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

他们在研究中所提出的情绪聊天机(ECM),不仅可以在内容上给出适当的反应,而且能在情感上给出适当的反应(情绪一致)。这项工作已经在 TensorFlow 中实现,我们在文末附上了关于这项研究工作的论文和 GitHub 访问链接。
以下为对话内容。
周昊:我是在开幕式的时候才知道被评为Distinguished Paper 的,之前没有收到任何通知,当时就觉得比较幸运吧,论文能被评审认可。
周昊:在会议上听了 LeCun 的演讲《 Learning World Models: the Next Step Towards AI》,感觉 World Models 或者 Commonsense Knowledge 在机器学习中的应用可能会成为新的研究方向。
周昊:当时最早开始想做知识驱动的对话生成模型,是因为对话或者语言其实是一种知识交流的媒介,而现有的从大规模语料中学习的生成式对话模型尽管能学习到不错的语法知识,但是对语言背后本质的知识却缺少建模能力。所以我们设计了这个引入常识知识的对话模型想利用知识驱动对话生成。
然而在实际工作中,我们发现无论是常识知识图还是对话语料中都存在许多噪声,并且数据稀疏性也是个大问题。所以我们最后选择了一度邻域子图进行数据集的过滤与创建。感兴趣的同学可以继续探索知识推理在对话中的应用。
周昊:图注意力机制是一种层次化的概率模型,通过不同层次知识图的概率计算,可以提取知识图中不同层次的知识,同时生成知识的推理路径。
周昊:知识在nlp中已经有了很多应用,未来应用会更广泛,至于是否会以知识图的方式加入进来取决于技术和模型的发展了。
周昊:在研究方面,我比较喜欢发现一些新的问题。大致过程就像做产品一样:
然后寻找资源构造数据(数据没有必要十分旁大,因为数据处理,模型训练会浪费很多时间,从小数据做起验证想法,一步步扩展也是不错的思路)。
最后就是对比实验(不同会议偏好的实验也不同,比如 AAAI、IJCAI 之类 AI 的会议比较偏向能够解释说明 motivation 的实验,ACL、EMNLP 之类 NLP 的会议比较偏向统计性指标、多组 baseline 对比以及 ablation test 等实验)。通过实验结果的反馈不断迭代修改整个流程,最后得到一个满意的结果。
周昊:清华大学进行 NLP 研究的课题组有很多,研究方向各不相同。我们组(指导老师:朱小燕、黄民烈)主要研究的是交互式人工智能,即通过对话、交互体现出来的智能行为,通常智能系统通过与用户或环境进行交互,并在交互中实现学习与建模。我们组的主要研究方向有深度学习、强化学习、问答系统、对话系统、情感理解、逻辑推理、语言生成等。其他如孙茂松老师组的诗词生成,刘洋老师组的机器翻译,等等。如果有对 NLP 研究感兴趣的同学们欢迎来各个课题组交流。
摘要
我们首次尝试了在对话生成中使用大规模的常识知识库。此外,现有的模型都是将知识三元组分开使用的,而我们的模型将每个知识图作为完整的个体,从而获得结构更清晰,语义也更连贯的编码信息。实验显示,与当前的最高水平相比,我们提出的模型所生成的对话更为合理,信息量也更大。
在许多自然语言处理工作中,尤其在处理常识知识和客观现象时,语义的理解显得尤为重要,毋庸置疑,它是一个成功的对话系统的关键要素,因为对话互动是一个基于“语义”的过程。 在开放域对话系统中,常识知识对于建立有效的互动是很重要的,这是因为社会共享的常识知识是大众乐于了解并在谈话中使用的信息。
举个例子,假如模型要理解这样一对语句,“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) 等。
第一,它们高度依赖非结构化文本的质量,受限于小规模的、领域特定的知识库。
因此,这类模型不能基于互相关联的实体和它们之间的关系来给出图的语义信息。
该模型为每个提出的问题检索相应的知识图,然后基于这些图给出富有信息量又合适的回复,如图 1 所示。为了优化图检索的过程,我们设计了两种新的图注意力机制。静态图注意力机制对检索到的图进行编码,来提升问题的语义,帮助系统充分理解问题。动态图注意机制会读取每个知识图及其中的三元组,然后利用图和三元组的语义信息来生成更合理的回复。

总地来说,本文主要做出了以下突破:
代替过去将知识三元组分开使用的方法,我们设计了静态和动态图注意力机制,把知识三元组看作一个图,基于与其相邻实体和它们之间的关系,我们可以更好地解读所研究实体的语义。
2.1 背景:Encoder - Decoder 模型




3.1 数据集
我们使用语义网络 (ConceptNet) 作为常识知识库。语义网络不仅包括客观事实,如“巴黎是法国的首都”这样确凿的信息,也包括未成文但大家都知道的常识,如“狗是一种宠物”。这一点对我们的实验很关键,因为在建立开放域对话系统过程中,能识别常见概念之间是否有未成文但真实存在的关联是必需的。
我们使用了来自 reddit 上一问一答形式的对话数据,数据集大小约为 10M。由于我们的目标是用常识知识优化语言理解和生成,所以我们滤出带有知识三元组的原始语料数据。若一对问答数据与任何三元组(即一个实体出现在问题中,另一个在答复中)都没有关联,那么这一对数据就会被剔除掉。具体数据概况可见表 1。
3.2 实验细节
我们采用了 Adam 优化器,学习率设置为 0.0001。具体代码已共享在 github上,文末附有地址。
我们选取了几种合适的模型作为标准来进行对比:
MemNet,一个基于知识的模型,其中记忆单元用来存储知识三元组经 TransE 嵌入处理后的数据。
3.4 自动评估
结果:如表 2 所示,CCM 获得了最低的复杂度,说明 CCM 可以更好地理解用户的问题,从而给出语义上更合理的回复。而且与其他模型相比,在对话生成中,CCM 从常识知识中选取的实体最多,这也可以说明常识知识可以在真正意义上优化回复的生成。
3.5 人工评估
指标:我们定义了两项指标:appropriateness 在内容质量上进行评估(基于语法、主题和逻辑);informativeness 在知识层面进行评估(基于生成的答复是否针对问题提供了新的信息和知识)。
很明显,在 OOV (out-of-vocabulary) 数据集的表现上, CCM 比 Seq2Seq 突出得多。这也进一步说明常识知识在理解生僻概念上很有效,而 Seq2Seq 并没有这个能力。对于 MemNet 和 CopyNet,我们未发现在这一点上的差别,是因为这两个模型都或多或少引入使用了常识知识。
3.6 案例研究