如何让人机对话更自然?
来源:投稿 作者:顾相欢
编辑:学姐
AAAI-2022|定制对话的人设和知识背景
原文标题:
Call for Customized Conversation: Customized Conversation Grounding Persona and Knowledge
原文链接:
https://arxiv.org/abs/2112.08619
一、Introduction
人类在对话时,考虑到的除了知识信息,还与人设信息有关。比如你向一个素食主义者推荐餐厅的时候,总归不会说哪家炸鸡店好吃。根据这一点,在人机对话中结合先验知识和人设信息是非常重要的。
(下图第二种回答是不是比第一种更自然?)

二、FoCus Dataset
在本项目中,作者构建了一个新的数据集,叫做FoCus。
将对话的情景设定为谈论一些地标,与其相关的知识有地标的历史、艺术设计、建筑结构、作用、旅游业和地质信息。会话代理就要根据人设来告知用户不同方面的地标信息。

1、Dataset Creation
地标信息来自于维基百科上5316个页面,每个页面内容超过8000字,涵盖了历史、旅游、建筑等多方面信息。同时,数据集中还包含27170个有关于人设的语句,这些语句中含有地标的关键词。
在创建人设时,我们先用五个句子描述角色的背景。随后在给定的维基百科页面上提取关键字,结合关键字创作角色语句。
在创建对话集时,标注者以人机交替角色的形式进行多轮对话,回答时要标记他们用了有关于人设或是知识的句子。而且我们发现,来自单人建立的数据质量更高,因为提出问题的人比其他人更清楚自己要得到怎样的回答。
2、Dataset Analysis

机器说的语句(141.13)比人类说的语句 (40.94)要长的多,因为它用到了很多专业知识。
机器语句可以被分为三类:告知、确认、建议。“告知”只有知识信息,没有人设信息。“确认”复述了用户的偏好并表达赞同。“建议”提出了用户可能喜欢的额外信息。
三、Model
本对话模型由检索模块和对话模块构成,检索模块根据问题寻找相应的知识信息,对话模块根据知识信息、人设信息和过去的对话生成回复。
检索模块计算问题与可能的知识信息之间的TF-IDF分数,将范围缩小到维基百科的五个段落之间。
对话模块由上下文相关、人设预测、知识信息预测和语言建模组成。它先生成当前对话轮次的上下文相关表示,然后模型在给定上下文相关表示的情况下学习使用哪个人设语句和知识信息。

四、Experiments
使用到的Baseline语言模型有:transfromer decoder、transfromer encoder-decoder、GPT-2\BART。
自动评估指标:ppl、BLUE、ROUGE-1-F、ROUGE-2-F,准确率Acc

人工评估指标:

五、Conclusion
本文介绍的数据集能够结合人设信息和维基百科页面中的知识信息,它的表达更自然也更难被机器模仿。FoCus数据集可以帮助构建更多更像人类的智能体,使用该数据集训练的模型可以在未来使对话代理更有吸引力,同时有更渊博的知识。
关注下方《学姐带你玩AI》🚀🚀🚀
带你了解更多人工智能前沿资讯
论文解读视频代码数据集回复“500”免费领
码字不易,欢迎大家点赞评论收藏!
相关文章:
如何让人机对话更自然?
来源:投稿 作者:顾相欢 编辑:学姐 AAAI-2022|定制对话的人设和知识背景 原文标题: Call for Customized Conversation: Customized Conversation Grounding Persona and Knowledge 原文链接: https://arxiv.org/ab…...
Python每日一练(20230224)
目录 1. 列表奇偶拆分 ★ 2. 二叉树的后序遍历 ★★ 3. 接雨水 ★★★ 附录 二叉树 特点 性质 特殊二叉树 满二叉树 完全二叉树 完全二叉树性质 二叉树的遍历 1. 列表奇偶拆分 【问题描述】 输入一个列表,包含若干个整数(允许为空ÿ…...
【Linux】-- Shell的运行原理、Linux当中的权限
目录 Shell的运行原理 Linux权限的概念 su命令 权限 文件访问权限的相关设置方法 chmod指令 chown指令 chgrp指令 sudo命令 文件的常见问题 umask 粘滞位 关于权限的总结 Shell的运行原理 Shell运行原理 —— 外壳程序。 Linux严格意义上说的是一个操作系统&…...
MOS管选型参数:VGS(th)
MOS管选型参数:VGS(th) VGS(th):开启电压(阀值电压)。当外加栅极控制电压 VGS 超过 VGS(th) 时,漏区和源区的表面反型层形成了连接的沟道。应用中,常将漏极短…...
二.线性表之顺序表
文章目录前言一.顺序表的概念及结构二.顺序表的接口实现1.顺序表的动态存储2.顺序表的初始化3.顺序表尾插#封装:扩容函数4.顺序表尾删5.顺序表头插6.顺序表头删7.顺序表查找8.顺序表在pos位置插入x9.顺序表删除pos位置的值10.顺序表销毁11.顺序表打印三.源1.Seqlist…...
ElasticSearch - SpringBoot整合ElasticSearch实现文档的增删改
文章目录1. ElasticSearch和kibana的安装和配置2. SpringBoot 项目环境搭建3. 创建索引4. 索引文档5. 更新文档6. 删除文档https://www.elastic.co/guide/en/elasticsearch/reference/current/search-your-data.htmlhttps://www.elastic.co/guide/cn/elasticsearch/guide/curre…...
JavaScript 库
文章目录JavaScript 库JavaScript 框架(库)jQueryPrototypeMooTools其他框架CDN -内容分发网络引用 jQuery使用框架JavaScript 库 JavaScript 库 - jQuery、Prototype、MooTools。 JavaScript 框架(库) JavaScript 高级程序设计…...
云解析DNS为什么要配置默认线路?
传统解析技术不会判断访客IP,而是会随机选择一个IP返回给访问者,这样就有可能造成移动用户访问电信服务器IP,北京用户访问深圳服务器IP这种跨域跨网访问的情况,产生非常大的延迟,带来很不好的访问体验。 而云解析DNS会…...
Linux命令之awk
awk是一个有强大的文本格式化能力的linux命令,早期是在Unix上实现的,linux后来也可以使用了,我们在Linux上使用的awk是gawk(GNU awk的意思) 语法 awk [option] 模式{动作} file option表示awk的可选参数,可…...
实战-缓存数据一致+binlog初始+cannel监听+数据迁移,数据一致性架构设计
前言 一. 解决缓存不命中(高并发操作击穿打挂DB的风险) 当并发量打的时候,当我们的缓存过期时,就算到数据库的比例偏小的时候,我们的请求时比较大的。那也会存在数据库崩掉的情况。解决方案想法如下(总体…...
nginx配置中proxy_pass反向代理502的bug
记录一个坑人的bug, 我今天在一台新的liunx上运行nginx来进行反向代理时候,发现怎么测都是502 我把配置全部删了从头开始配置,发现80端口正常,80端口index.html正常,反向代理转向http://127.0.0.1/也正常,…...
JavaScript 两种方案打开文件对话框
JavaScript 两种方案打开文件对话框 文章目录JavaScript 两种方案打开文件对话框一、文件对话框二、传统方案表单元素🌈三、文件系统访问API💦四、更进一步使用六、代码仓库🌐七、参考资料💘七、推荐博文🍗一、文件对话…...
Pycharm远程服务器常见问题
2023年02月23日 问题描述:Pycharm远程服务器跑代码时,不小心把Pycharm关掉了,但服务器代码还在运行? 解决办法:kill进程 先用watch -n 0.5 nvidia_smi查看进程,然后kill -9 <进程> 1、nvidia-smi…...
内容团队如何快速出稿
对于内容团队而言,每个内容选题就相当于一个小项目,它们并非简单的线性工作流,相反其复杂程度不亚于一个小型工厂。一个内容选题会涉及内容形式,选题类型等多个变量,这些变量因素组合起来就是十几种不同类型的工作流。…...
es-08索引的批量操作
索引的批量操作 批量查询和批量增删改 批量查询 GET /_mget#批量查询 GET product/_search GET /_mget {"docs": [{"_index": "product","_id": 2},{"_index": "product","_id": 3}] }GET product/_mge…...
诈金花的概率
游戏使用一副除去大小王的扑克牌,共4个花色52张牌。 1、豹子(AAA最大,222最小)。2、同花顺(AKQ最大,A23最小)。3、同花(AKQ最大,352最小)。4、顺子ÿ…...
ESP32设备驱动-MLX90393磁场传感器驱动
MLX90393磁场传感器驱动 文章目录 MLX90393磁场传感器驱动1、MLX90393介绍2、硬件准备3、软件准备4、驱动实现1、MLX90393介绍 MLX90393 磁场传感器可以在运行时重新编程为不同的模式和不同的设置。 该传感器使用 Melexis 专有的 Triaxis 技术提供与沿 XYZ 轴感应的磁通密度成…...
Java面试题-Spring框架
Spring框架 1. BeanFactory和ApplicationContext有何区别 BeanFactory是Spring最底层的接口,是IoC的核心,定义IoC的基本功能。 BeanFactory具有:延迟实例化的特性。在启动的时候,不会实例化Bean,只有有需要从容器…...
【计算机物理模拟】-力矩、转动惯量和角速度之间的关系
力矩和角速度之间的关系可以通过牛顿第二定律和角动量定理来描述。 牛顿第二定律表明,物体的加速度与作用在物体上的合力成正比,加速度的方向与合力的方向相同。而对于旋转运动的物体,其加速度可以表示为半径 rrr 乘以角加速度 α\alphaα&a…...
async和await用法理解和快速上手 , 同步任务和异步任务顺序安排和轻松理解 , js代码执行顺序表面知道
学习关键语句 : async , await 用法 await 怎么使用 同步任务和异步任务 微任务和宏任务 js中代码执行顺序 写在前面 虽然说 async 和 await 是 Promise 的语法糖 , 但是用惯了Promise 的人(我) , 还真不能超快速使用上这个语法糖 , 所以赶紧写一篇文章出来让各位了解了解这个…...
实战利器:借助快马平台构建磁盘空间分析器,cmd命令深度应用
今天想和大家分享一个非常实用的工具开发经验——如何用cmd命令构建一个磁盘空间分析器。这个工具在我们日常系统维护和磁盘管理中特别有用,尤其是当C盘突然变红或者需要清理大文件的时候。 工具核心功能设计 这个磁盘空间分析器主要解决几个实际问题:…...
从STFT到ISTFT:窗函数、填充与流式处理的实战指南
1. 窗函数一致性:信号重建的隐形守护者 第一次用STFT处理语音信号时,我踩过一个典型坑:用汉宁窗做分析,却忘了在重建时指定相同窗函数。结果重建后的语音像被掐着脖子说话,高频部分全是毛刺。这个教训让我明白…...
学习框架和推理引擎有什么区别
学习框架和推理引擎通常分别应用在 AI 大模型的训练和推理 (运行)阶段。模型的核心任务是从大量数据中学习规律,完成特定预测或者生成任务,前者即“模型训练”,后者即“模型运行”。在模型训练时ÿ…...
云容笔谈效果对比评测: vs Stable Diffusion 3.5东方人像生成质量深度分析
云容笔谈效果对比评测: vs Stable Diffusion 3.5东方人像生成质量深度分析 1. 评测背景与目的 东方人像生成一直是AI图像生成领域的特殊挑战。西方模型在生成东方人脸时常常出现面部结构不自然、表情僵硬、缺乏东方神韵等问题。本次评测将深入对比「云容笔谈」和S…...
快速部署Python3.10环境:Miniconda镜像实战教学
快速部署Python3.10环境:Miniconda镜像实战教学 1. 为什么选择Miniconda搭建Python环境? 在Python开发中,最让人头疼的问题之一就是环境管理。不同项目可能需要不同版本的Python和依赖库,直接安装会导致版本冲突。Miniconda提供…...
C++ 智能指针的生命周期陷阱
C智能指针的生命周期陷阱:隐藏的坑与破解之道 在现代C开发中,智能指针作为资源管理的利器,极大减轻了开发者手动管理内存的负担。看似简单的shared_ptr、unique_ptr和weak_ptr背后,却隐藏着微妙的生命周期陷阱。这些陷阱可能导致…...
保姆级教程:在PX4 SITL仿真中为Iris无人机挂载Kinect、RPLidar和FPV摄像头
PX4仿真环境多传感器集成实战:从零搭建SLAM无人机开发平台 无人机仿真开发中最令人头疼的,莫过于将各类传感器完美集成到飞行平台上。我曾花了整整两周时间调试Kinect和RPLidar在Gazebo中的兼容性问题,直到找到这套经过验证的解决方案。本文将…...
嵌入式开发者的效率利器:在VS Code里实时看到MISRA-C违规提示(含头文件路径配置避坑)
嵌入式开发实战:用VS Code打造MISRA-C实时检查工作流 每次保存代码后才发现MISRA-C违规有多痛苦?想象一下这样的场景:你正在编写一段关键的车载控制逻辑,反复调试后终于通过了编译,却在提交前的静态检查中被揪出二十多…...
高效低成本馈电保护电路设计与应用
1. 为什么需要馈电保护电路? 有源天线在通信系统中扮演着重要角色,但实际使用中经常会遇到一些棘手的问题。比如在野外作业时,技术人员可能会频繁插拔天线;或者在长期运行过程中,天线内部电路可能出现故障。这些情况都…...
uboot移植实战:DDR初始化参数优化与调试指南
1. 理解DDR初始化在uboot移植中的重要性 第一次接触uboot移植时,我完全不明白为什么DDR初始化这么麻烦。直到有一次,我把开发板直接烧成砖头,才真正意识到这个环节有多关键。简单来说,DDR初始化就像是给电脑装内存条,但…...
