笔记整理 | 韩振峰,天津大学硕士。


链接:https://ojs.aaai.org//index.php/AAAI/article/view/6474

动机

之前有关开放域对话生成的神经模型没有有效的机制来管理聊天主题,并且往往会生成不连贯的对话。受到人与人对话策略的启发,本文将多轮开放域对话生成任务分为两个子任务:明确的目标(有关主题的聊天)序列规划和通过主题阐述的目标补全。为此,本文提出了一个三层的基于知识的分层强化学习模型(KnowHRL)。对于第一个子任务,上层策略学习如何遍历知识图谱,从而规划一个高层次的目标序列,以便在对话连贯性和用户兴趣的主题一致性之间取得良好的平衡。对于第二个子任务,中层策略和下层策略协同工作,使用目标驱动的生成机制就单个主题进行深入的多轮对话。目标序列规划的能力使得聊天机器人可以针对推荐主题进行主动的开放域对话,这种类型的对话具有很多实际的应用。

亮点

KnowHRL的亮点主要包括:

(1)本文首次尝试将多轮开放域对话生成任务分为两个子任务:目标序列规划和基于对话阐述的目标补全。

(2)在知识图谱的帮助下,本文提出精确、可解释的对话状态和用于策略学习的行为。这有两种优点:一是能够很方便地设计与目标相关的奖励来优化目标和方面的规划;二是使用目标和方面的信息来知道生成更连贯和更具信息的回复。

(3)实验表明模型在用户兴趣的一致性、对话连贯性和知识准确性等方面很有效。

概念及模型

KnowHRL有三个层级策略,且能够分为两个子任务:目标序列规划和基于主题阐述的目标补全。目标序列规划:上层策略学习如何遍历知识图谱来规划目标序列,并且需要在对话连贯性和用户兴趣一致性之间取得平衡。基于主题阐述的目标补全:中层策略从当前目标节点的一跳邻居中选择一个作为主题方面;下层策略使用给定的目标和主题方面中的一个来指导下层策略生成一个深入的多轮对话。

模型整体框架如下:

  • State

状态S由对话历史g、主题方面历史f、上下文语句u和特殊符号ut组成。其中ut表示是否在上一个语句中提到了一个新的话题,是则ut=1,否则ut=0;u定义为之前对话中的两个语句。

三层策略分别有不同的行为空间,上层使用当前目标节点的所有邻居节点和用户提及的所有主题所谓行为空间;中层使用当前目标节点的所有邻居节点并删去其中已经在之前的对话中被提到的节点;下层回复向量的集合作为行为,每一个向量代表一种生成回复的方式。

  • Policy

本文使用分层策略,共分为三层,每层策略的定义如下:

上层策略:

中层策略:

下层策略:

  • Multi-mapping generator

此模块使用的现有的模型,如上图所示,其中:

损失函数:

  • Rewards

为三层策略分别设计了不同的奖励因素,其中上层策略包括:目标序列的连贯性、用户兴趣的一致性、多样性、可持续性、来自中层策略的目标补全信息。中层策略包括:主题方面连贯性、来自下层的奖励。下层策略包括:语句相关性、语句的信息量、主题方面补全。

实验

本文使用公开的知识驱动的对话数据集DuConv来预训练多映射生成器、基准模型和用户模拟器,并且此数据集提供了一个电影和名人领域的知识图谱。本文使用2个基线对比算法,CCM和CCM+LaRL。本文使用人工在Session-level和Turn-level两个纬度对模型进行了评价。

  • Session-level

从主题内一致性(Intra.)、主题间一致性(Inter.)、独特性(Dist-2)、知识准确性(K.A.)和用户兴趣一致性(Cons.)等方面对模型在Session-level的表现进行评价。表2和表3分别为模型在与用户模拟器和真实用户聊天时的得分,可以看出KnowHRL在5个指标上均达到最好的效果。

  • Turn-level

从合理性(Appr.)、信息量(Info.)量方面对模型在Turn-level的表现进行评价。表4可以看出KnowHRL在2个指标上均达到最好的效果。

总结

本文将多轮开放域对话生成任务分为两个子任务:目标序列规划和通过主题阐述的目标补全,并提出了基于知识的分层强化学习模型(KnowHRL)来展示在知识图谱上的层级目标规划如何进行聊天主题管理和回复生成。实验结果证明了KnowHRL在对话连贯性、用户兴趣一致性和知识准确性等方面达到最好的效果。


OpenKG

开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 网站。

论文浅尝 | 以知识图谱为基础的开放域对话生成的目标规划相关推荐

  1. 论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述

    随着监督学习在机器学习领域取得的巨大发展,如何减少人工在样本方面的处理工作,以及如何使模型快速适应层出不穷的新样本,成为亟待解决的问题.零样本学习(Zero-Shot Learning, ZSL)的提 ...

  2. 论文浅尝 | 动态知识图谱对齐

    论文笔记整理:谭亦鸣,东南大学博士生 来源:AAAI'21 链接:https://ojs.aaai.org/index.php/AAAI/article/view/16585 概述 本文提出了一种动态 ...

  3. 论文浅尝 - ICLR2020 | 知识图谱中数值规则的可微学习

    论文笔记整理:许泽众,浙江大学博士研究生.研究方向:知识图谱,规则挖掘等. 论文链接:https://openreview.net/pdf?id=rJleKgrKwS 本文解决的是规则的学习问题,学习 ...

  4. 论文浅尝 - ESWA | 知识图谱的自动扩充方法

    论文笔记整理:谭亦鸣,东南大学博士. 来源:ESWA141(2020) 链接:https://www.sciencedirect.com/science/article/abs/pii/S095741 ...

  5. 论文浅尝 \ 联合知识图谱实例和本体概念的通用表示学习

    论文笔记整理:周虹廷,浙江大学研究生.研究方向:知识图谱,图表示学习等. 论文链接: http://web.cs.ucla.edu/~yzsun/papers/2019_KDD_JOIE.pdf 本文 ...

  6. 论文浅尝 | 解决知识图谱补全中的长尾关系和不常见实体问题

    论文笔记整理:汪寒,浙江大学硕士. 链接:https://www.aclweb.org/anthology/P19-1024.pdf 动机 KG的分布遵循长尾分布,大部分关系只有很少的三元组,且大体趋 ...

  7. 论文浅尝 | 利用知识图谱嵌入和图卷积网络进行长尾关系抽取

    论文笔记整理:王狄烽,南京大学硕士,研究方向为关系抽取.知识库补全. 链接:https://arxiv.org/pdf/1903.01306.pdf 发表会议:NAACL2019 动机 现有的利用远程 ...

  8. 论文浅尝 | 从知识图谱流中学习时序规则

    论文笔记整理:汪寒,浙江大学硕士,研究方向为知识图谱.自然语言处理. 链接:http://ceur-ws.org/Vol-2350/paper15.pdf 动机 知识图谱是现在十分流行的数据管理方式, ...

  9. 论文浅尝 | 对于知识图谱嵌入表示的几何形状理解

    论文链接:http://anthology.aclweb.org/attachments/P/P18/P18-1012.Presentation.pdf 发表会议:ACL 2018 摘要 知识图谱的嵌 ...

最新文章

  1. SAP Spartacus 产品明细页面的 url 设计和数据源
  2. hello world_建立无服务器的“ Hello World”功能
  3. 重温《数据库系统概论》【第一篇 基础篇】【第3章 关系数据库标准语言SQL】
  4. python 什么是序列_从零起步学Python——什么是序列?
  5. 【elasticsearch】 es 路由错误 不到 也可能 查询到的分析
  6. 微信视频不能连接到服务器,微信无法连接到服务器
  7. PL/SQL Developer主界面窗口左边窗口默认设置
  8. Java将彩色PDF转为灰度
  9. C# int与byte之间转换的方法
  10. Cfree5可以JAVA_C语言中free函数的使用详解
  11. 2.Hadoop_入门_模板机IP地址和主机名称配置
  12. 5、vRealize Operations Manager 报告配置(虚拟化巡检报告)
  13. 在控制面板找不到程序的情况下,卸载流氓软件
  14. 昭和書体 全書体一览
  15. windows 空会话 ipc$域控 SYSVOL 和NETLOGON共享
  16. oa系统云服务器租赁,新睿云小编手把手教您用云服务器安装办公OA系统
  17. 201621123030《Java程序设计》第5周学习总结
  18. 白鹭引擎开发微信小游戏: API 调用教程文档
  19. 【OpenCV 例程 300篇】249. 特征描述之视网膜算法(FREAK)
  20. JS组合函数(Composition):原来如此!

热门文章

  1. 2011年影响3G手机发展四大因素
  2. 何可欣(为奥运冠军名字作诗)
  3. 《STL源码剖析》相关面试题总结
  4. c++现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
  5. c/c++整理--c++面向对象(1)
  6. 在大公司天天调参数,感觉快废了~
  7. 对存储还搞不清楚,先看看这篇文章-从51单片机上去理解存储器
  8. 工作后和在学校最大的区别是什么?
  9. python数据类型有哪些、分别有什么用途_python中的数据类型有哪些
  10. net.conn read 判断数据读取完毕_1.5 read, write, exit系统调用