链接: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相关推荐

  1. Commonsense and Named Entity Aware Knowledge Grounded Dialogue Generation

    摘要 motivation: 以外部知识为基础,在对话历史背景下解释语言模式,如省写.回指和共同引用,对对话的理解和生成至关重要. this paper: 在本文中,我们提出了一种新的开放域对话生成模 ...

  2. 论文总结之对话生成《Improving Knowledge-aware Dialogue Generation via Knowledge Base Question Answering》

    11.Improving Knowledge-aware Dialogue Generation via Knowledge Base Question Answering 本篇论文是ACL最新的20 ...

  3. 【论文翻译】UniT: Unified Knowledge Transfer for Any-Shot Object Detection and Segmentation

    UniT: Unified Knowledge Transfer for Any-Shot Object Detection and Segmentation UniT:任意样本量的目标检测和分割的统 ...

  4. AAAI2020 A pre-training based personalized dialogue generation model with persona-sparse data

    文章目录 论文背景 论文想要解决的问题 论文贡献 模型 变量解释 框架 Encoding Attention 自动计算persona比重 language model 最终的目标函数 A pre-tr ...

  5. Think Before You Speak: Explicitly Generating Implicit Commonsense Knowledge for Response Generation

    论文阅读:Think Before You Speak: Explicitly Generating Implicit Commonsense Knowledge for Response Gener ...

  6. 《论文阅读》Commonsense Knowledge Aware Conversation Generation with Graph Attention

    <论文阅读>Commonsense Knowledge Aware Conversation Generation with Graph Attention 简介 论文试图解决什么问题? ...

  7. 【论文笔记】Commonsense Knowledge Aware Conversation Generation with Graph Attention

    Commonsense Knowledge Aware Conversation Generation with Graph Attention 文章目录 Commonsense Knowledge ...

  8. 《论文阅读》PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable

    <论文阅读>PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable 简介 论文试图解决什么问题 ...

  9. 论文解读:Question Answering over Knowledge Base with Neural Attention Combining Global Knowledge Info...

    论文解读:Question Answering over Knowledge Base with Neural Attention Combining Global Knowledge Informa ...

  10. 知识跟踪的深度知识跟踪和动态学生分类 Deep Knowledge Tracing and Dynamic Student Classification for Knowledge Tracing

    Deep Knowledge Tracing and Dynamic Student Classification for Knowledge Tracing(译) 知识跟踪的深度知识跟踪和动态学生分 ...

最新文章

  1. 诺曼门的十个产品_用户决策与产品设计
  2. 《孤岛惊魂5》游戏中的地形渲染技术-网格生成
  3. IDEA报错:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql
  4. cvs配电保护断路器_电工电器(三)-配电电器-断路器类-剩余电流保护断路器
  5. 用python做采集时相对路径转换成绝对路径
  6. 防护针对SQL Server数据库的SQL注入攻击
  7. 连载8:时域信号相乘相当于频域卷积
  8. JS--微信浏览器复制到剪贴板实现
  9. char op c语言,C语言基本编程练习.doc
  10. python课程典范选优_python 实现选课系统
  11. html 标签的语义化
  12. 【Python实现】微信防撤回
  13. 快速上手Ubuntu之安装常用软件篇——打造一个满足基本娱乐办公的Ubuntu
  14. 单片机c语言控制步进电机发脉冲,单片机如何写用脉冲控制步进电机呢?
  15. 浅谈C++中的多线程(一)
  16. 微信小程序链接后台接口,进行数据交互
  17. [CF796E Round#408 Div.2]Exam Cheating——[计数DP]
  18. 解决Identify and stop the process that‘s listening on port 8080 端口问题
  19. notepad删除包含/不包含的字符
  20. 【mac安装开发工具】

热门文章

  1. matlab基于凹点匹配的分割算法,一种基于凹点匹配的重叠图像分割算法
  2. 关于浏览器及其内核以及什么是浏览器兼容性
  3. 密码学小知识(2):密码学三大顶会,信息安全四大顶会,网络与信息安全CCF推荐会议和期刊
  4. CTEX加中英文摘要
  5. 【可视化】盒须图 散点图 柱状图 折线图 饼图
  6. PR免费转场 PR剪辑视频图形转场PR动态图形模板MOGRT
  7. TCP—为什么是AIMD?
  8. CSS盒子模型box-sizing属性详解
  9. 假设有一个英文文本文件,编写一个程序读取其内容并将里面的大写字母变成小写字母,小写字母变成大写字母
  10. nas设备在通用服务器的基础上对文件服务,NAS网络存储设备将取代文件服务器