对话系统学习概述(仅够参考)

news2024/10/6 20:33:48

对话系统(仅够参考)

目录

  • 对话系统(仅够参考)
    • 背景
    • 类人对话系统的关键特征
      • 1、知识运用
      • 2、个性体现
      • 3、情感识别与表达
    • 数据集
    • 评价方式
      • 评价的一些指标
      • 训练模型需要的资源
    • 任务型对话系统预训练最新研究进展
    • 参考文献

背景

在这里插入图片描述

  对话系统一般包括领域内(任务型)对话(比如订票,订餐等)和开放领域对话。前者主要是靠识别特定的意图+反复确认来实现,整体来说难度不高,而后者实现起来相对来说较为困难,目前也较为不成熟。之前一些开发领域对话的解决方案如微软的小冰都是一套很复杂的架构,但是随着最近几年预训练模型取得的成功,对话系统领域也开始探索端到端的实现方式,尤其在2019,2020,2021这三年涌现出了很多相关研究。比如2020年1月份google发表的Meena、4月份Facebook的Blender以及百度PLATO系列包括PLATO、PLATO-2、PLATO-XL等等,前两篇分别发表在ACL2020和ACL-IJCNLP2021,PLATO-XL则是今年9月在arxiv上预印,目前效果比较好的就是百度的PLATO-XL系列。 这里做一个简单的总结:

在这里插入图片描述

  更多的对话Bot可以看https://zhuanlan.zhihu.com/p/428694878

类人对话系统的关键特征

  类人对话系统应同时具备情商智商,能在多领域多场景综合运用多技能,来满足用户的信息需求和社交需求。在智商方面,能够帮助用户完成任务、信息获取、推荐等;在情商方面,能够理解情感情绪,表达共情,实现情感陪伴、情绪疏导等社交类任务。因此,我们可以从满足信息需求能力满足社交需求的能力这两个维度去衡量对话系统的类人水平,这主要体现在以下三个关键特征:

1、有知识,言之有物:实现一定程度的理解,并运用知识生成高质量的回复。
2、有个性,拟人化:要求机器体现固定、一致的个性和风格,具有固定的人设和个性。
3、有情感,有温度:具备情绪感知、情感支持和心理疏导的能力,从而让聊天过程更有温度,满足用户的情感需求。

  然而,当前的对话系统在理解力、拟人化和与人互动方面面临着巨大的挑战,距离人类水平的对话互动能力还相去甚远。比如任务导向型对话系统具有很强的任务完成能力,但是社交能力比较低;而对于开放域对话系统来讲,它的主要目标是社交,任务完成能力相对较弱。为了提高对话系统的信息处理和社交连接能力,需要综合考虑不同系统的技术实现思路并进行融合。

  比如,借鉴任务型对话系统的实体识别、意图理解、语义分析以及填槽等技术,以提高对话系统的理解力;对于开放域对话系统,我们注重其弱语义处理的能力,包括利用数据驱动的方法、端到端的系统框架,以及如何充分利用当前的深度学习模型以及大规模语言模型。

  因此,在构建下一代类人对话系统时,我们应综合考虑任务型和开放域对话系统的技术方法,从知识运用、个性体现、情感识别与表达三个层次入手,综合运用多种技能,提高对话系统的理解力、拟人化和互动性,使其在多种场景和领域中实现更接近于人类的对话能力,以满足用户的需求。

1、知识运用

  在知识运用层面,通过引入知识,来加强对话系统的理解力和推理能力。在下图所示的对话中,讨论的是一个关于歌手汪峰的主题 。在这样的对话过程中,系统将对话内容对应到一个特定的知识领域,从而使对话过程言之有物。在进行会话时,将相关的实体与知识图谱进行了联系,然后将结构知识表达为向量,实现了知识的编码与解码。通过这样的编码和解码处理,可以达到某种程度的理解,让回答变得更有说服力,增加了对话过程中产生的信息量。

在这里插入图片描述

2、个性体现

  高质量的对话活动需要赢得对方的信任,而具有固定、一致的个性、身份是其中的关键因素。具有固定一致个性的对话交互技术,在情感陪护、心理咨询等对话场景中有着非常重要的应用。在对话的过程中缺乏一致的身份和个性,会使得系统在对话的过程中难以取得用户的信任,因此难以进行有效的社交互动。

  围绕类人对话系统的个性体现,以 Emohaa 与用户的对话为例:在对话中,Emohaa先是用语言直接地表达了自己的身份(女生)和很可爱的个性,面对客户的反问“为什么觉得自己很可爱”,Emohaa也能够回复“因为可爱,所以可爱”这样的个性化描述,强化自己可爱的特性。

在这里插入图片描述

  个性体现还涉及到更深层次的说话风格。在说话风格的研究中,我们发现对话可以实现正式与非正式互相之间的转换,以及礼貌和非礼貌之间的转换。但这种用自然语言表达角色和个性通常是微妙和含蓄的,研究也极具挑战。

3、情感识别与表达

  1997年,MIT教授Picard提出了情感计算的概念,指出「情感感知和情绪表达是人类智能行为中的重要特征」。情绪感知和情感表达在人类的智能交互里至关重要,这不仅能提高系统表现和用户满意度,还能很大程度上体现系统的情商,避免对话陷入僵局。

  清华大学的CoAI课题组在2018年提出了情绪化聊天机器人(Emotional Chatting Machine, ECM)系统,希望能够让对话系统像人类一样表达喜怒哀乐。当指定一个情绪类别时,对话系统能生成对应情绪类别、且适合对话上文的回复内容。

在这里插入图片描述

  实现情绪化的对话过程,是类人对话系统实现情感智能的一小步。而在日常对话中对他人表达同理心,是情绪有效表达的必要条件之一。它使系统能够理解、感知和适当地回应用户的情况和感受,从而很大程度地改善用户体验和满意度。因此,如何让对话系统中具备共情能力,是迈向类人对话系统的关键一步。体现共情,通常要求对话系统具备情绪疏导或心理疏导的能力,以完成复杂的情感交流任务。

在这里插入图片描述

  为此,CoAI课题组借鉴心理咨询的中助人技巧理论,提出了一个三阶段理论模型。第一阶段先确认用户的具体问题,第二阶段通过共情、理解表达支持,第三个阶段为用户提供解决方案、出路。在每一个阶段都设计了相应的策略,如提供信息、直接指导、挑战、解释等。通过这些策略,才能实现有效的情绪疏导和心理疏导。这个技术,正是Emohaa背后最核心的技术,Emohaa学习了人类咨询师的助人技术,能实现一定程度的共情技巧,真正帮人实现情绪支持和心理疏导。

在这里插入图片描述
  共情是一个广泛的概念,包括情感认知两个方面。情感方面涉及对用户体验的情感模拟,而认知方面旨在理解用户的处境和隐性的情感。现有的研究方法通常只关注情感方面,即通过检测和利用用户的情感来产生共情的交互。

  然而,实现共情,除了识别用户的情绪外,还应该考虑对用户处境的认知。为此,CoAI课题组提出了一种新的共情响应生成方法,即利用常识来加强认知,获取更多关于用户情况的信息,并利用这些额外的信息进一步增强生成响应中的共情表达
在这里插入图片描述

数据集

  这里主要介绍一下常用的公开数据集和评价方式以及训练这些模型需要的一个资源。

  英文公开数据集:Reddit and Twitter 爬取的数据集。

在这里插入图片描述

  中文公开数据集:chatterbot,豆瓣多轮,PTT八卦语料,青云语料,电视剧对白语料,贴吧论坛回语料,微博语料,小黄鸡语料。

在这里插入图片描述

评价方式

在这里插入图片描述

评价的一些指标

在这里插入图片描述

训练模型需要的资源

在这里插入图片描述

任务型对话系统预训练最新研究进展

  近年来,随着预训练模型的发展,对话领域的研究也逐渐开始关注基于预训练的端到端对话系统,2019-2021 这三年的时间涌现出很多关于开放域对话系统预训练的相关研究,基于英文的包括 google 在 2020 年 1 月发表的 Meena、Facebook 在 4 月发表的 Blender,基于中文的主要以百度 PLATO 系列模型为代表。这些模型的成功一定程度上表明海量数据和更大的模型能为对话系统带来很好的性能收益。

  然而,这种依靠参数量、数据量来提升系统性能的方式对于任务型对话而言并不完全适用。一方面,任务型对话数据集本身比闲聊型对话更难收集,想要获取一个非常大的数据集来对任务型对话系统进行预训练是非常困难的;另一方面,预训练模型参数过大,训练和运行需要很高的计算成本,会存在无法快速部署的问题。由于以上问题的存在,任务型对话预训练的发展速度明显不如开放域对话,但最近两年也逐渐有一些针对任务型对话进行预训练的相关工作。

  主要的工作有:

• 2020EMNLP:TOD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogue [2]
• 2021TACL:Soloist: Building task bots at scale with transfer learning and machine teaching [3]
• 2021arXiv:PPTOD:Multi-Task Pre-Training for Plug-and-Play Task-Oriented Dialogue System(PPTOD)[4]
• 2022AAAI:GALAXY: A Generative Pre-trained Model for Task-Oriented Dialog with Semi-Supervised[5] Learning and Explicit Policy Injection

【待补充。。。。】

参考文献

1、https://mp.weixin.qq.com/s/FeOm2gRoNVt1S4adnBeV7Q
2、https://mp.weixin.qq.com/s/-ZbDqxS7RsS7B__6oKbSHA
3、https://mp.weixin.qq.com/s/b3JSE1o9dr7loafwhEWomA
4、https://mp.weixin.qq.com/s/c11ksniOBG8-Q0fWxNZX6Q
5、https://mp.weixin.qq.com/s/cVT3jt777lL7meJ24-N2GA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis三 高级篇-3. 最佳实践

《Redis三 高级篇-3. 最佳实践》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《Redis三 高级篇-3. 最佳实践》《Redis三 高级篇-3. 最佳实践》1、Redis键值设计1.1、优雅的key结构1.2、拒绝BigKey1.2.1、BigKey的危害1.2.2、如何发现BigKey①redis-cli…

Redis 数据类型

我们知道 Redis 是 Key-Value 类型缓存型数据库,Redis 为了存储不同类型的数据,提供了五种常用数据类型,如下所示: string(字符串)hash(哈希散列)list(列表)…

多线程事务怎么回滚

背景介绍1,最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败&…

返回数组的上三角和下三角np.triu()和np.tril()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 返回数组的上三角和下三角 np.triu()和np.tril() 选择题 以下说法错误的是? import numpy as np anp.array([[1,2,3],[4,5,6],[7,8,9]]) print("【显示】a:\n",a) pri…

一、Python时间序列小波分析——实例分析

小波分析是在Fourier分析基础上发展起来的一种新的时频局部化分析方法。小波分析的基本思想是用一簇小波函数系来表示或逼近某一信号或函数。 小波分析原理涉及到傅里叶变换,并有多种小波变换,有点点小复杂。但是不会原理没关系,只要会应用并…

单臂路由配置

单臂路由实现不同VLAN间通信 链路类型 交换机连接主机的端口为access链路 交换机连接路由器的端口为Trunk链路 子接口 路由器的物理接口可以被划分成多个逻辑接口 每个子接口对应一个VLAN网段的网关 我们需要知道的是单臂路由和虚拟机软件原理比较相似。他们都是依托于物理设备…

按键70秒,Root轻松得:Linux惊现高危漏洞

导读E安全11月16日讯 Linux被发现高危漏洞(CVE-2016-4484),攻击者可以通过持续按下Enter键70秒钟来获取 root initramfs shell,进而破坏Linux boxes。漏洞存在于Linux流行变体中的统一密钥设置(LUKS)。通过访问shell,攻击者可以解密Linux机…

标签管理系统

电子墨水屏最大的不便利之处在于它是单色屏,显示速度不够快,因为显示内容的单色性,要求需要显示的数据处理好后,以单色位图的方式把数据信息发送到屏幕上才可以正常显示。 我们把这个制作显示内容的方式叫做模版,有了…

Zynq 裸机 PS + PL 双网口实现之 lwip 库文件修改

基于 xilinx vivado 2017.4 库文件 lwip141_v2_0 的修改: 添加对 PHY 芯片 ksz9031 的支持; 添加 SDK 中 LWIP 参数设置对话框 emio_options 选项; 添加 XPAR_GMII2RGMIICON_0N_ETH0_ADDR 和 XPAR_GMII2RGMIICON_0N_ETH1_ADDR 宏配置&#…

布隆过滤器和布谷鸟过滤器详解

今天和大家分享下布隆过滤器和布谷鸟过滤器 一.布隆过滤器 1.简单介绍 布隆过滤器是用于检索一个元素是否在一个集合中的算法,是一种用空间换时间的查询算法。 2.实现原理 布隆过滤器的存储结构是一个bitmap结构,初始值都是0,如下图所示&am…

内核模块(传参和依赖)

目录 一、模块传参 二、模块依赖 三、内核空间和用户空间 四、执行流 五、模块编程与应用编程的比较 六、内核接口头文件查询 七、小作业 一、模块传参 module_param(name,type,perm);//将指定的全局变量设置成模块参数 name:全局变量名 type: 使用符号 …

MFC消息机制

1.消息映射消息映射是一个将消息和成员函数相互关联的表。比如,框架窗口接收到一个鼠标左击消息,MFC将搜索该窗口的消息映射,如果存在一个处理WM_LBUTTTONDOWN消息的处理程序,然后就调用OnButtonDown。2.消息映射机制2.1 声明宏 写…

教务查询系统简介

教务查询系统简介 项目核心代码展示 service层如下: Teacher老师Service层: public interface TeacherService {//根据id更新老师信息void updateById(Integer id, TeacherCustom teacherCustom) throws Exception;//根据id删除老师信息void removeB…

SheetJS的通用电子表格对象简介和使用

简言 “通用电子表格格式”&#xff08;CSF&#xff09;是SheetJS使用的对象模型。 例如使用xlsx插件时&#xff0c;获得的excel文件数据对象就是依据这个模型设计的。 SheetJs通用电子表格对象 介绍 cdn导入&#xff1a; <script lang"javascript" src"ht…

uprobe 实战

观测数据源 目前按照我的理解&#xff0c;和trace相关的常用数据源–探针 大致分为四类。 内核 Trace point kprobe 用户程序 USDT uprobe 在用户程序中&#xff0c;USDT是所谓的静态Tracepoint。和内核代码中的Trace point类似。实现方式是在代码开发时&#xff0c;使用USDT…

Visual Studio开启clang-tidy代码检查

在CLion中有针对C的静态代码检查工具clang-tidy&#xff0c;感觉非常好用&#xff0c;能养成好的编码习惯&#xff0c;后来写Qt转入了VS平台&#xff0c;想要继续使用功能一致的clang-tidy体验&#xff0c;所以研究出来在VS中开启clang-tidy的方法。 版本&#xff1a;Visual S…

XML 基础知识 XXE 漏洞原理解析及实验(基础篇)

XML 介绍 XXE全称XML外部实体注入&#xff0c;所以在介绍XXE漏洞之前&#xff0c;先来说一说什么是XML以及为什么使用XML进而再介绍一下XML的结构。 XML全称 可拓展标记语言&#xff0c;与HTML相互配合后&#xff1a; HMTL用来显示数据 HTML的焦点在于数据的外观&#xff08;…

双网卡(有线和wifi)同时连接内网和外网

双网卡&#xff08;有线和wifi&#xff09;同时连接内网和外网 Win10技巧&#xff1a;如何修改有线/WiFi网络优先级&#xff1a;https://www.ithome.com/html/win10/253612.htm双网卡实现两个网络的自由访问&#xff1a;https://blog.51cto.com/ghostlan/1299090Linux服务器安…

【Linux】网络编程 - 基础概念

目录 一.OSI七层模型vsTCP/IP五层模型 1.一些周边概念 2.OSI七层模型 3.TCP/IP五层模型 4.网络传输流程图 二.什么是MAC地址 三.什么是IP/IP地址 1.什么是IP 2.什么是IP地址 四.什么是端口号 一.OSI七层模型vsTCP/IP五层模型 1.一些周边概念 局域网vs广域网 网络互…

LeetCode——2341. 数组能形成多少数对

一、题目 给你一个下标从 0 开始的整数数组 nums 。在一步操作中&#xff0c;你可以执行以下步骤&#xff1a; 从 nums 选出 两个 相等的 整数 从 nums 中移除这两个整数&#xff0c;形成一个 数对 请你在 nums 上多次执行此操作直到无法继续执行。 返回一个下标从 0 开始、…