【对话系统】Knowledge-Grounded Dialogue Generation with a Unified Knowledge Representation
链接:http://arxiv.org/abs/2010.08824v1
简介
本文提出了一种基于知识的对话系统PLUG。
什么是基于知识的对话系统(Knowledge-grounded dialogue systems)呢?
传统的对话系统大多是一个端到端系统,将历史对话和人类的问题作为输入,从而输出应答。但是,这种方法的一个弊端是:只考虑了历史对话,而没有考虑到话题本身,即:话题的知识。
比方说,我们在谈论NBA比赛,那我们会在脑海里回忆有关NBA的各种信息。
为了将话题本身的知识加入到对话系统中,基于知识的对话系统被提出了。系统可以基于对话语境和外部知识来源,生成信息丰富且有意义的回答。
然而,目前的系统大多有两个问题:
- 数据太少。我们需要的数据是基于知识的对话,基本上只能人工生成,又耗钱又耗时,因此大部分数据集都很小(如表1)。
- 格式太杂。这也是上一条带来的后遗症了:每个数据集太小,那就只能多用几个数据集。但是呢,在不同的任务中,知识的格式也不同。例如,REDIAL的电影数据库利用了图结构,而Wikipedia的Wizard是以文档为基础的对话任务,两者没法一起应用。
对此,本文提出了一个可以统一不同知识格式的模型:PLUG。
首先,我们将不同的知识格式转换为非结构化文本,然后使用预先训练好的语言模型将其处理成统一的密集表示,从而将知识表示整合到对话生成中。
我们对PLUG进行了不同知识背景对话语料库的预训练,包括来自Reddit的大规模开放领域对话数据集。这使得PLUG能够从不同的任务中以不同的形式学习知识,并通过少量的学习技巧转移到任何基于知识的对话任务中。
经过基准测试,PLUG可以达到与最先进的方法相当的效果。在zero-shot和few-shot条件下,它在两个任务上都优于其他方法,这PLUG可以基于不同知识来源的世界知识,并推广到不同的下游任务。
Approach
基于知识的预训练
传统的知识对话包括三个主要步骤:信息抽取、知识预测和响应生成。PLUG选择T5作为主干网络。
T5是一种先进的序列到序列的预训练Transformer模型,可以用于迁移学习。T5的训练方法是将各种语言任务转换为文本到文本的任务。在对对话数据集进行微调后,T5可以生成流畅而连贯的响应。
然而,答案往往过于笼统,因为它们没有以具体的知识为基础。PLUG是在普通的T5模型上训练的,但在训练过程中是基于现实世界的知识,使它继承了T5产生类似人类反应的能力,但包含了更多的知识。
PLUG
我们将基于知识的对话表述为:
D={C,R,S}D = \{C, R, S\}D={C,R,S}
其中C={Ci}i=1nC = \{C_i\} ^n_{i=1}C={Ci}i=1n是对话上下文,R={Ri}i=1nR = \{R_i\} ^n_{i=1}R={Ri}i=1n是有n个回合的对话中的应答。SSS是任务ttt的外部知识来源。
对于每个对话回合,我们可以在单个域ddd上制定一个基于知识的对话生成任务,即p(Ri∣Ci,S)p(R_i|C_i, S)p(Ri∣Ci,S)。
如图1所示,每个任务都有自己的知识源(例如文档、数据库和知识图谱)。
因为我们的对话系统只接受文本输入,为了统一格式,我们用T5的办法,从知识源SSS中提取基本知识,并将其表示为三元组文本。然后连接上下文Ci={c1,c2.…,cm}C_i = \{c_1, c_2.…,c_m\}Ci={c1,c2.…,cm}和基本知识三元组Ki={k1,k2,…,kn}K_i = \{k_1, k_2,…,k_n\}Ki={k1,k2,…,kn}作为标记序列。我们训练模型来预测应答token序列R={r1,r2,….rk}R = \{r_1, r_2,….r_k\}R={r1,r2,….rk}。
回答的概率公式为:
那怎么提取知识并表示为三元组呢?请看下节。
训练过程
PLUG使用了两个数据集:Reddit Conversation和OpenDialKG。我们将以Reddit Conversation为例讲解数据清理的3步过程。
Reddit Conversation
Reddit Conversation Galley等人(2018)是一个大型开放域会话数据集。它从Reddit数据中提取基于文档的会话线程。
我们只是将对话建立在维基百科的段落基础上,以便进行预训练,以便更好地识别对话中使用的知识。由于Reddit Conversation中基于文档的普通对话在每个对话回合中都没有知识标签,所以我们采用分层信息抽取方法来获取每个回合的基本知识。我们的信息抽取方法包括三个步骤:知识检索、统计排序和语义排序。
知识检索
我们使用知识检索器在一个回合的应答中检索所有相关的知识。
我们首先在对话中提取维基百科的基础段落的标题。
然后,我们从DBpedia (Lehmann et al., 2015)的大规模知识图中检索相关的知识三元组。具体来说,我们通过一个公共SPARQL端口查询DBpedia数据集,然后收集主题或对象是对话中的Wikipedia段落的三元组。
例如,对于有关巴拉克·奥巴马的对话,我们保留了三元组 <奥巴马,他的母校,哥伦比亚大学> 和 <米歇尔·奥巴马,配偶,巴拉克·奥巴马> 。
为了携带足够的知识进行下一步的提炼,我们从知识图中为每一段检索500个三元组。
统计排序
在检索到足够的知识后,我们对相应的三元组进行排序以细化知识。
具体地说,我们得到所有检索到的三元组的TF-IDF(term frequency–inverse document frequency)值。为了找到与上下文相关的三元组,我们将对话历史和响应作为查询连接起来。然后我们计算查询和每个三元组之间的余弦相似度。因为每个三元组都以维基百科文章名称作为主题或对象,余弦相似度得分越高,意味着查询的文本与三元组中不同文本的相似度越高。
我们对查询文档相似度评分进行排序,在这一步中只保留前50个三元组。
语义排序
基于TF-IDF的余弦相似度评分只计算三元组和查询之间重叠的单词。它将引入重叠的单词在上下文和响应中没有意义的三元组。此外,Reddit会话数据集是从Reddit会话线程获得的。它包含了许多没有任何知识基础的反应。
为了找到与响应具有最佳语义相似度的三元组,并过滤掉没有根据的响应,在这一步中,我们使用Sentence-Bert 估计语义相似度得分。
我们根据第二步的分数对50个三元组重新排序。
此外,我们放弃了最佳语义相似度低于阈值的对话转折,因为响应不能找到合适的知识,而我们想用基于知识的转折对模型进行预训练。
OpenDialKG
为了将我们的模型推广到各种任务,我们还使用OpenDialKG来丰富我们的训练前数据集。
OpenDialKG包含两种类型的任务:建议和聊天;跨越四个域。
与需要在每个回合中找到知识基础的Reddit Conversation数据集不同,原始的OpenDialKG为每个对话都有一个知识图路径标签,并为每个对话回合提供一个三重标签。
在数据收集期间,响应基于标记的三元组。因此,我们在训练前的例子中使用数据集中的三元组作为基本知识。
实验
表3显示了使用Wikipedia测试seen和测试unseen的结果。
可以看到,PLUG比T5略胜一筹。
如图二所示,除了knowledge F1得分,PLUG获取知识的速度也快于T5。
为啥knowledge F1得分和其他指标不一致呢?因为knowledge F1只考虑应答包含的知识词汇,其他指标还要语言的本身特性(流畅度,语法)。
在小数据下,T5会胡言乱语,随便复制知识词汇,PLUG还是会根据章法行事。
表4中列出了REDIAL的结果。
可以看到PLUG与T5还是不相上下。
表5列出了人类评判的指标。
可以看出,在流畅度、连贯性、知识性上,PLUG更占优势。
【对话系统】Knowledge-Grounded Dialogue Generation with a Unified Knowledge Representation相关推荐
- Commonsense and Named Entity Aware Knowledge Grounded Dialogue Generation
摘要 motivation: 以外部知识为基础,在对话历史背景下解释语言模式,如省写.回指和共同引用,对对话的理解和生成至关重要. this paper: 在本文中,我们提出了一种新的开放域对话生成模 ...
- 论文总结之对话生成《Improving Knowledge-aware Dialogue Generation via Knowledge Base Question Answering》
11.Improving Knowledge-aware Dialogue Generation via Knowledge Base Question Answering 本篇论文是ACL最新的20 ...
- 【论文翻译】UniT: Unified Knowledge Transfer for Any-Shot Object Detection and Segmentation
UniT: Unified Knowledge Transfer for Any-Shot Object Detection and Segmentation UniT:任意样本量的目标检测和分割的统 ...
- AAAI2020 A pre-training based personalized dialogue generation model with persona-sparse data
文章目录 论文背景 论文想要解决的问题 论文贡献 模型 变量解释 框架 Encoding Attention 自动计算persona比重 language model 最终的目标函数 A pre-tr ...
- Think Before You Speak: Explicitly Generating Implicit Commonsense Knowledge for Response Generation
论文阅读:Think Before You Speak: Explicitly Generating Implicit Commonsense Knowledge for Response Gener ...
- 《论文阅读》Commonsense Knowledge Aware Conversation Generation with Graph Attention
<论文阅读>Commonsense Knowledge Aware Conversation Generation with Graph Attention 简介 论文试图解决什么问题? ...
- 【论文笔记】Commonsense Knowledge Aware Conversation Generation with Graph Attention
Commonsense Knowledge Aware Conversation Generation with Graph Attention 文章目录 Commonsense Knowledge ...
- 《论文阅读》PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable
<论文阅读>PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable 简介 论文试图解决什么问题 ...
- 论文解读:Question Answering over Knowledge Base with Neural Attention Combining Global Knowledge Info...
论文解读:Question Answering over Knowledge Base with Neural Attention Combining Global Knowledge Informa ...
- 知识跟踪的深度知识跟踪和动态学生分类 Deep Knowledge Tracing and Dynamic Student Classification for Knowledge Tracing
Deep Knowledge Tracing and Dynamic Student Classification for Knowledge Tracing(译) 知识跟踪的深度知识跟踪和动态学生分 ...
最新文章
- 诺曼门的十个产品_用户决策与产品设计
- 《孤岛惊魂5》游戏中的地形渲染技术-网格生成
- IDEA报错:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql
- cvs配电保护断路器_电工电器(三)-配电电器-断路器类-剩余电流保护断路器
- 用python做采集时相对路径转换成绝对路径
- 防护针对SQL Server数据库的SQL注入攻击
- 连载8:时域信号相乘相当于频域卷积
- JS--微信浏览器复制到剪贴板实现
- char op c语言,C语言基本编程练习.doc
- python课程典范选优_python 实现选课系统
- html 标签的语义化
- 【Python实现】微信防撤回
- 快速上手Ubuntu之安装常用软件篇——打造一个满足基本娱乐办公的Ubuntu
- 单片机c语言控制步进电机发脉冲,单片机如何写用脉冲控制步进电机呢?
- 浅谈C++中的多线程(一)
- 微信小程序链接后台接口,进行数据交互
- [CF796E Round#408 Div.2]Exam Cheating——[计数DP]
- 解决Identify and stop the process that‘s listening on port 8080 端口问题
- notepad删除包含/不包含的字符
- 【mac安装开发工具】
热门文章
- matlab基于凹点匹配的分割算法,一种基于凹点匹配的重叠图像分割算法
- 关于浏览器及其内核以及什么是浏览器兼容性
- 密码学小知识(2):密码学三大顶会,信息安全四大顶会,网络与信息安全CCF推荐会议和期刊
- CTEX加中英文摘要
- 【可视化】盒须图 散点图 柱状图 折线图 饼图
- PR免费转场 PR剪辑视频图形转场PR动态图形模板MOGRT
- TCP—为什么是AIMD?
- CSS盒子模型box-sizing属性详解
- 假设有一个英文文本文件,编写一个程序读取其内容并将里面的大写字母变成小写字母,小写字母变成大写字母
- nas设备在通用服务器的基础上对文件服务,NAS网络存储设备将取代文件服务器