AI TIME欢迎每一位AI爱好者的加入!
在开放领域对话系统中,由于缺少包含知识标注、涵盖多个话题的多轮对话语料的支撑,知识驱动对话中的知识交互的研究受到了一定的限制。如可以在多轮对话中有效的对知识的交互进行建模,则可以极大地提升对话系统的逻辑性,信息量,可解释性等智能化程度,从而带来更好的用户体验。
在本次分享中,讲者将介绍一个最新构造的知识驱动的中文多轮对话数据集KdConv,并分析知识建模在对话系统中的应用。
郑楚杰,清华大学计算机系2020级博士生,交互式人工智能组(CoAI)成员,师从黄民烈副教授。主要研究方向为开放域对话系统。已在ACL上发表数篇论文。
本次分享论文地址:https://arxiv.org/abs/2004.04100
所构建的数据库已经开源:https://github.com/thu-coai/KdConv
一、介绍
a)
研究背景
背景知识对对话系统至关重要,有两大类主要应用:1) 搜索和问答类型的场景;2) 自然语言理解类的场景。
对于任务导向对话系统,背景知识一般被定义为槽值对,为问答和推荐提供了必要的信息;
对于开放域对话系统,它有助于生成更具有信息量和吸引力的回复;
从形态上来说,背景知识可以划分成结构化知识图谱或非结构化文本。
现有的带有外部知识的开放域对话语料中,根据收集方式的不同,大致可以分为两个类别:
利用现有的对话数据集,根据上下文标注相关的外部知识:
常用的标注方法有:命名实体识别(NER),字符串匹配,人工评分和规则过滤等;
但是也有缺点,不匹配的知识会为数据集带来噪音,不利于模型的训练;
基于给定的背景知识,由人类标注者从头开始构造对话数据集:
有些语料可能缺少轮次级别的标注;
对话内容局限于1-2个给定的话题,或缺少话题之间的关系:限制了对多样化的话题转移和知识规划的建模。
b)
研究动机
当前带有知识标注的涵盖多个话题的对话数据集有所欠缺;
对于进一步的知识交互的建模方面(例如话题转移和知识规划),现有的基于知识的对话数据集存在局限性
二、调研部分
a)
与现有的基于知识的对话数据集进行对比
可以看到,KdConv中的知识形式包含了非结构化的文本和结构化的图谱,并提供了轮次级别的知识标注。语料涵盖三个领域(电影,音乐和旅游),可以用于领域迁移的研究。KdConv中的对话的平均轮次为19.0,每段对话平均涉及话题数量2.3个。
b)
KdConv样例数据
一个音乐领域的数据样例。左侧为对话内容,斜体内容为话题,下划线内容则为背景知识。右侧展示了精细的知识标注,既包含了结构化的知识(如飞得更高-发行日期-2005年3月19日等),也包含了非结构化的知识(如information一行)。
在上述对话所使用的知识三元组构成的知识图谱中,斜体文本和圆圈表示话题(指知识三元组中不同的头实体),该图谱还体现了话题转移的过程。
三、数据构造
a)
领域相关的知识图谱
构建知识图谱的过程:
1.从几个相关的网站(豆瓣、去哪儿等)中爬取热门实体,如电影和电影明星、音乐和歌手以及景点,将其作为起始实体,以减少特定领域知识的范围;
2.在XLORE(一个大型英汉双语知识图谱)中过滤知识三元组很少的起始实体;
3.以起始实体作为起点,在XLORE的三跳范围中检索其邻居实体,以支持对话能够进行合理的话题转移;
对于旅游领域,由于XLORE中有关起始实体的知识三元组较少,该领域的知识图谱仅从网站上爬取。这也导致了旅游领域的知识图谱的统计特征与其他领域有所差别。
4.将这些实体和关系整合为领域相关的知识图谱。
从下面的统计信息来看,电影领域无论是实体数量,关系数还是三元组数量都是最多的。旅游领域则由于仅基于网站爬取,关系数和三元组都较少。
b)
构建对话数集
1.在众包平台上,招募标注者,在无特定目标和约束的情况下生成多轮对话;
2.在对话过程中,两个发言者都可以访问知识图谱;
3.要求标注人员记录构造发言所用的相关的知识三元组,以提供轮次级别的知识标注;
4.指示标注人员从起始实体开始对话,并鼓励他们将对话的话题转移到其他实体;
5.过滤掉低质量的对话,例如包含语法错误、对话内容与知识事实不一致等,以保证对话数据的质量。
c)
统计指标
三个领域各自收集了1500个对话,数据集按照8:1:1切分为训练集、开发集和测试集。从对话的轮次数与对话所涉及的话题数来看,电影领域的对话与音乐、旅游领域存在明显不同。从对话数据中包含的实体数、三元组数目来看,三个领域也存在较大差别。
上图表示在前n个回合中讨论了至少k (k = 2, 3, 4) 个主题的对话数量统计。随着对话轮次的增长,包含3个或4个主题的对话比例会变大。
这验证了深入讨论多个话题通常需要足够多的对话轮次,因为简短的对话通常不足以涵盖多个话题,更难以产生话题之间的自然过渡。
上面的表格显示了电影领域的1跳、2跳、3跳范围内,各自频次最高的三种话题转移模式,其中Tn表示对话的第n个主题,Tn →X→Tn + 1表示Tn经由关系X跳转到Tn + 1。可以看到KdConv中话题转移的模式多样而复杂。“−Information→”则表示Tn + 1出现在了有关Tn的非结构化知识文本中,而经由知识文本跳转话题的模式出现得相对更少,表明比起非结构化文本,人们更倾向于基于结构化关系转移话题。
四、实验部分
a)
实验所用基准模型
包含了三个基于生成的模型,一个基于检索的模型,以及通过键值存储模块进行知识增强的模型。
基于生成的模型:
1.Language Model:建模对话内容的语言模型;
2.Seq2Seq:带注意力机制的序列到序列模型;
3.HRED:带有层次化结构的Seq2Seq模型。
基于检索的模型:BERT,训练任务是在给定上下文的情况下预测候选回复是否是真实回复。
通过键值存储模块进行知识增强:将头实体和关系作为键、尾实体作为值,在上述模型中引入对话相关的知识图谱以利用知识信息。
工具:CoTK
一种开源工具包,用于语言生成模型的快速开发和公平测评,包含了当前主流的语言生成任务的评价方法。
Paper: https://arxiv.org/abs/2002.00583
GitHub: https://github.com/thu-coai/cotk
b)
评价
(1)自动评价
生成模型和检索模型的最佳结果分别用粗体和下划线标出。“+know”表示知识增强的模型。
实验结果表明,模型可以通过引入背景知识来增强性能,但多轮对话中的知识建模仍有很大的研究空间。
结果还显示,各个模型的性能以及知识增强的效果在不同领域之间差别较大,说明迁移学习和领域转换方面同样值得进一步研究。
(2)人工评估:
指标(0-2分制):
流利度:回复是否流畅自然;
连贯性:回复是否与上下文及背景知识相关、一致;
评价方式:
每个领域500个样本,3个标注者对样本打分,打分结果如上图所示;
从标注一致性的角度来看,Fleiss卡帕值:在0.37到0.74之间
3个标注者打分相同的比例:在68.14%至81.33%之间
从结果来看,融入知识图谱的信息后,HRED模型获得了一定的性能提升。
c)
案例分析
上图包含了旅游领域和电影领域的两个案例,融入知识图谱信息后,模型生成的对话能够更有效地利用知识,但仍然不能有效处理需要利用非结构化文本构建回复的场景。
五、结论
本工作提出一个知识驱动的中文多领域对话数据集:KdConv。该语料库包含4.5K个对话和86K条语句,平均对话轮数为19.0;
实验表明,通过引入背景知识,基准模型的性能可以获得一定的提升,但对话中的知识交互建模在未来的工作中仍然有很大的研究空间。
竞赛:
SMP2020-ECDT(中文人机对话技术评测,任务2)
六、提问与回答
请问有没有尝试过基于BERT/GPT做生成的基准模型的对比结果呢,这种情况下是否会削弱knowledge的辅助提升的效果?
没有在KdConv上做过,但我在后续的工作中做了类似的尝试。如果用BERT作为编码器,不影响知识的作用。如果用GPT作为解码器,可能会和拷贝机制效果冲突(个人猜想GPT的优势在于多样性与human-like,但拷贝机制优势在于可控性,两者是冲突的)
这个训练和评价过程,是所有domain混在一起的,还是分domain分别训练评测?
分domain测评。
分开训练测评,是出于什么考量吗?还是说皆可呢?
主要是想观察不同domain知识的gap会为模型性能带来怎样的gap。
整理:闫昊
审稿:郑楚杰
AI Time欢迎AI领域学者投稿,期待大家剖析学科历史发展和前沿技术。针对热门话题,我们将邀请专家一起论道。同时,我们也长期招募优质的撰稿人,顶级的平台需要顶级的你,请将简历等信息发至[email protected]!
微信联系:AITIME_HY
AI Time是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,打造一个知识分享的聚集地。
更多资讯请扫码关注
(点击“阅读原文”下载本次报告ppt)
(直播回放:https://b23.tv/bE9nHZ)
文章浏览阅读2.7k次。http 500内部服务器错误--------------------------------------------------------------------------------一.错误表现 iis5的http 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现就是asp程序不能浏览但htm静态网页不受影响。另外当错误发生时,系统事件日志和安全事件日志都会有..._http500
文章浏览阅读575次。Oracle Temp临时表空间及其故障处理 Oracle 11g中Temp临时表空间、文件的新特性 临时表空间是Oracle体系结构中比较特殊的结构。通常情境下,数据库..._ora临时表空间报错,无法打开文件
文章浏览阅读5.4k次,点赞5次,收藏27次。进入burpsuite工具,配置代理,端口与夜神模拟器保持一致,地址选择指定地址,输入本机IPV4地址;打开burp suite工具进入Proxy,如图,点击open browser。代理选择手动,代理服务器主机名输入本机的IPV4地址(使用。查询),代理服务器端口随便输入,只要不冲突即可;输入证书名,确定,安装成功!_burp抓取手机app数据包
文章浏览阅读401次。目录一、修改数据结构中的Compare二、向二维数组中快速填充同一个元素:三、StringBuilder的常用方法:四、Math的常用方法:参考链接菜鸟教程五、字符串六、容器类一、修改数据结构中的CompareComparable和Comparator的区别:[https://blog.csdn.net/qq_37768971/article/detai..._java的妙用方法
文章浏览阅读9k次,点赞7次,收藏53次。目录引言一、可选处理方法二、Python中Pandas库处理缺失值1.查看数据缺失值得分布情况2.删除包含缺失值的数据 2.1. 删除包含缺失值的行或列 2.2. 根据条件删除包含缺失值的数据三、Python中其他库处理缺失值四、缺失值处理案例(一)----疝气病数据集预处理1.处理缺失值,以便使用分类算法引言 数据中的缺失值是..._特征工程 空值处理
文章浏览阅读2.8w次,点赞16次,收藏92次。1 入门示例1.1 新建一个Java工程,导入包log4j-1.2.17.jar,整个工程最终目录如下1.2 src同级创建并设置log4j.properties### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.Conso..._log4j.properties
文章浏览阅读654次。写这个项目的直接原因是最近推galgame推得有点过头,gal推过头的直接结果就是YY能力上涨,抱着“我也想写好玩的剧本”的轻率念头,也就开始了这个项目。不过从直接感觉来说,galgame毕竟也是开发成本(个人)以及技术要求最低的游戏类别之一,这当然也算是原因。于是到了现在,一个半成品式的框架就搭好了。实话实说,gal引擎开发,技术难度不算大。但是,需要考虑的方面却相当多,许多看起来很简单的东西开..._galgame的代码很难写吗
文章浏览阅读1.4w次,点赞9次,收藏11次。在使用eclipse过程中,特喜欢删除一行和复制一行的的快捷键。而恰巧Xcode不支持这两个快捷键,再一次的恰巧让笔者发现了一个小窍门来增加这两个快捷键,以下是步骤: 修改权限 修改Xcode里快捷键的配置文件(plist)权限,打开终端输入如下两条命令:sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.fram_ios 修改复制粘贴快捷键
文章浏览阅读1.7k次。http://blog.sina.com.cn/s/blog_6b94d5680101p7fm.htmlGCC:GNU开发的程序编译器 GNU:“GNU‘s Not Unix”,最初是为了实现一个类似unix的自由操作系统,感觉现在已经通常泛指遵循GPL自由软件精神的组织。GPL:GNU通用公共许可证(GNU General Public License),简单的说就是遵循GPL的
文章浏览阅读716次,点赞2次,收藏2次。1、导入selenium库,第三方库要下载pip install selenium_selenium地图
文章浏览阅读3.4k次。做一个点上的项目的时候遇到一个问题,就是商城首页的布局要覆盖状态栏,可以这么理解,上图:就像京东的首页一样的效果我的项目是 MainActivity + 四个Fragment,第一步:需要把状态栏的背景色变为透明色,这个网上很多博客都写过,我就不写了第二部:我先说一下这个属性fitSystemWindows,因为不管是做状态栏变色和一体化布局,都相关这个属性_android immersionbar设置黑色字体
文章浏览阅读137次。该楼层疑似违规已被系统折叠隐藏此楼查看此楼CREATE OR REPLACE TYPE IM_CHECKLIST_PARAM IS OBJECT(ID RAW(16),SCORE INTEGER,DESCRIPTION NVARCHAR2(300),FOLLOWPLAN NVARCHAR2(300));CREATE OR REPLACE TYPE IM_CHECKLIST_T..._oracle自定义数据类型的数据怎么传到procedure c#