AI学习笔记--人机对话的四种形态

><div class="show-content-free"><p>最近在筹备转行 AI PM 由于之前的产品线也有做过类似 AI 的智能客服产品,所以打算先从人机对话这个角度入手。</p><p>以下文章结合了一些 case,对人机对话的四种形态做了较为浅显的概念介绍,其中“以任务为驱动的多轮对话”做重点介绍。这篇文章比较适合想要简单了解 AI 人机对话技术逻辑的 0 技术基础PM 。学习资料来源有三角兽、图灵机器人、携程技术中心(知乎)。</p><p>“人机对话,是人工智能领域的一个子方向,通俗的讲就是<b><i>让人可以通过人类的语言(即自然语言)与计算机进行交互</i></b>。作为人工智能的终极难题之一,一个完整的人机对话系统涉及到的技术极为广泛,例如计算机科学中的语音技术,自然语言处理,机器学习,规划与推理,知识工程,甚至语言学和认知科学中的许多理论在人机对话中都有所应用。”</p><p><b><i>人机对话可以分为以下四种形态:开放域聊天、任务驱动的多轮对话、问答和推荐。当然,一个人机对话产品很可能是以上四种形态的混合。</i></b></p><h3><b>一、开放域聊天(open domain):</b></h3><p>&nbsp; &nbsp; &nbsp;开放域聊天<b>非面向目标、语义意图不明确。</b>用户通常期望的是语义相关性和渐进性,对准确率要求较低。开放域聊天在现有的人机对话系统中,主要起到拉近距离,建立信任关系,情感陪伴,顺滑对话过程(例如在任务类对话无法满足用户需求时)和提高用户粘性的作用。这一形态的典型产品代表有微软小冰,助理来也,siri,度秘...</p><p>&nbsp; &nbsp; &nbsp;开放域聊天与以下的几种对话(task oriented etc.)有较为明显的区别,因为用户可能不涉及具体任务,场景更加开放,休闲。相应的,用户期望也会产生变化,从期望帮助完成某个硬性/客观的任务(如多轮对话)到期望机器理解主观的情感,并进行情感交流。借用 Google对话式交互设计指南中的话来说,就是<b>“人们会对媒介角色(如虚拟助理)产生像对真人一样的心理反应,我们会本能地将人类个性与性格迁移到数字对话中去”。</b><b>&nbsp;</b>因此相较而言,这种产品的用户体验与交互设计就显得格外重要。用户希望跟一个有温度的机器人聊天,希望自己的情感被理解并得到正向的反馈,当你在想象 ta 的时候,第一印象不是你的智能手机,而是在脑海里刻画出一个或萌或可爱或闷骚的真实形象(比如 Her)。</p><p>&nbsp; &nbsp; &nbsp; 开放域聊天的技术路线通常有&nbsp;<b>GenerationModel(生成模型)和&nbsp;RetrievalModel(检索模型)</b>。IR模型的优势在于有良好的<b>可读性</b>,较好的回复<b>多样性,</b>同时容易测评和分析;其缺点在于严重依赖数据,对于 context 的理解处理较差。生成模式通常会基于 seq2seq 框架,好处在于不需要维护一个巨大的 Q-R dataset,且是 E2E 的学习模式;缺点在于可读性差,回复单一,难以测评。两种模型共同面临的挑战主要有:context的处理以及如何把 user profile 运用在回答的个性化处理上。以下是两种模型对query 的处理过程:</p><p>(1)IR模型:</p><div class="image-package">

(2)基于生成的技术路线

目前,open domain的人机对话存在有以下主要问题:(1)短文本语义关系计算;(2)基于IR的自动聊天框架下的上下文相关模型;(3)外部知识在聊天模型中的引入;(4)readability & diversity;(5)引入 user profile 的个性元素。

开放域聊天的评价指标主要涉及单轮相关度;整体满意度;用户活跃度。

单轮相关度:

(1)相关性:不相关=-1;略相关=0;相关=1

(2)趣味性:相关但无趣=0;相关且有趣=1

整体满意度:

(1)顺畅度

(2)自然度

用户活跃度:

(1)平均持续对话轮次

(2)用户平均对话次数

二、以任务为驱动的多轮对话

1、定义:用户带着一定的目标前来使用产品,且由于任务的复杂性,用户需要将需求分多轮进行描述。机器则需要给出每一轮的限制条件下的最佳决策,并且对当前状态(context)进行记录。

2、作用:能够帮助用户完成复杂任务;缩短完成任务需要的路径;减少为了完成任务,搜集信息的时间成本

3、典型代表:阿里小蜜,京东JIMI等智能客服

4、特点和适用场景:用户任务目标 / 任务完成路径清晰。

个人认为,这种任务驱动的多轮对话形式,非常适合在一些专业性要求高的垂直领域,例如买车,理财(智能投顾),教育(课程匹配)...同时适合一些需要大量搜集信息才能完成的任务场景,例如股票的买卖(往往需要大量信息支撑决策),二手车交易etc. 智能机器人能够把大量的信息整合,通过对话理解用户需求,只从知识库中抽取用户需要的信息进行返回,节约信息获取的时间成本。

5、产品评估指标:

自然语言理解程度:准确率、召回率、F-score

对话状态追踪(DST):概率分布的优劣

对话结果准确性(最直观的业务指标):对话轮次,任务完成率

6、交互过程分析(以一轮对话为例):

人键入自然语言→预处理成结构化语义表示(dialogue act=communicative function+slot-value pair)→意图识别 当前状态下的最优决策结果输出 → 记录上下文语境(context,即需要维护当前状态),对话状态追踪→人对于结果进行操作(认同结果 or 继续交互)

step1 结构化语义表示:

即将自然语言的 query 识别成结构化的语义表示。在对话系统中,这个结构化的语义表示通常被称作 dialogue act 由 communicative function 和 slot-value pairs 组成,其中 communicative function 表示 query 的类型(如:陈述需求,询问属性,否定,选择疑问,等等)而每个 slot-value pair(槽) 则表达一个限制条件(constraint),也可理解为用户目标的一个组成单元。常见的 communicative function 类型:

语义结构化表示case: query = “帮我选一辆 3 月上市的国产 SUV”

对应的 dialogue act 可以表示为 inform(model = suv,nation = 国产,time=Mar.)。这里  communicative function 是 inform ,表示陈述需求。而 “model = suv,nation = 国产,time=Mar.” 是限制条件。有时候我们也把model,nation,time等称之为“槽”,而suv,国产,Mar.等称之为槽值。下图可以很好的解释填槽的过程(图源:https://yq.aliyun.com/articles/276269)

step 2 意图识别与管理:

(i)用户偏向于短句的表达。因此,识别用户的意图,要与上下文(context)进行结合

(ii)在多轮交互中用户会不断的添加或修改意图的子意图,需要维护一份当前识别的意图集合

(iii)商品意图之间存在着互斥,相似,上下位等关系。不同的关系对应的意图管理也不同。

(iv)属性意图存在着归类和互斥的问题。

**这里有几条 Google 的对话式交互设计指南中的几条准则适用于 PM 和开发者:

(i)串联(Threading):设计师要考虑到用户键入的自然语言的特点,注意上下文和语境

(ii)短语句效率:人们在日常聊天中倾向使用短语句,因为与我们对话的人会自动地把短语句进行潜台词填充。因此机器也要注意对短语句的潜台词填充

(iii)用户行为的多样性:对于机器的一个回复,不同的用户会采用不同的词汇表达方式,产品设计应该支持这种多样性,设计师应该关注“愉悦路径”,并在所有的场景下保持体验的稳定性

step 3 当前状态下的最优决策结果输出 & 对话状态追踪(DST)

对用户意图进行识别后,系统要反馈给当前意图下的最优决策结果,流程如下图所示。

忘记是在哪里截到的图了,有可能是携程技术中心的专栏哈.. 侵删

然而用户的需求并不是一成不变的,目标也往往需要多轮对话才能达成。那么就需要我们对对话状态进行追踪,去结合上文语境,了解用户目标到底是什么,给出全局的最优策略解(而非单个对话轮次)。

eg:

第一轮对话:“帮我选一辆国产 SUV” ,slot-value pairs:nation = 国产,model=SUV.

第二轮对话:“想看看最新出的车”,slot-value pairs:nation =国产,model=SUV,time=latest

我们要做的,是对 user goal 的识别。而 user goal 可以表示成 slot-value pairs 的组合。每一个 slot 上都可能有 value,每个 value对应一个置信概率,于是能够形成每个 slot 上的边缘置信状态(marginal belief);然后所有slot-value pairs的组合的概率分布就形成联合置信状态。随着slot-value的数量变化,概率分布同样发生变化,则会影响到我们输出的结果。

这里有一点需要注意,即【槽继承】

譬如,第一轮对话:

user:帮我选一辆国产 SUV      bot:好的,你想要大概什么价位区间的呢?

user:20万左右的吧                  bot:好的(输出结果)

user:算了,还是看看轿车吧

bot:这里要输出 nation=国产,price=20w+-5w,model=轿车,即继承前序对话的 nation 和 price 部分,而非再次询问用户的价格等意愿

step 4 人与结果的交互

关注人与结果的交互,意义在于两个方面:

(i)产品是否真的有效率:即正确识别用户意图,并通过较少的对话轮次帮助用户达成目标。

(ii)用户画像的建立:例如某些金融领域智能客服,记录用户与理财产品推荐列表这一结果的交互(浏览,仅点击,点击后成交...)能够构建更为丰富的用户画像,了解用户的风险偏好,资产配置倾向,从而不断提高理财产品与用户的匹配程度。

Reward 设计思路:

某篇文章把这种交互称之为 Reward,并给出了电商商品推荐场景下 Reward 的设计思路:

a) 用户的点击的reward设置成1;

b) 成交设置成[1 + math.log(price + 1.0) ];

c) 其余的设置成0.1

三、问答

此处的问答,指的是一问一答,即直接根据用户问题给出精准答案,如”北京今天多少度“。问答更类似信息检索,虽然可能也涉及上下文处理,如”那么明天多少度“,但通常是通过只带消解和 query 补全来完成。问答与多伦对话最根本的区别在于”系统是否需要维护一个用户目标状态的表示(我的理解是上述所说的slot-value pair的变化)和是否需要一个决策过程来完成任务。

四、推荐

上述三种对话模式基本上都基于用户的主动 query,而推荐则是系统主动发起的。推荐往往基于用户画像做个性化定制;或基于已有的大量对话数据、给出用户最可能询问的query model,例如阿里客服界面中,用户未发起 query时,系统即给出”猜你可能想问....“的question cards。

以上就是常见的 4种借助 AI 技术的人机对话式产品。

个人认为,产品经理想要向AI PM 转型,首先要对基础概念有一定了解,同时要花费更多精力去验证需求的真伪:AI与具体场景的结合,是不是真正地提高了用户效率。

恩,那么就先到这里,午休结束,要上班啦!

下次有空聊聊所谓的“智能助理”~

AI学习笔记--人机对话的四种形态相关推荐

  1. AI学习笔记(十四)CNN之图像分割

    AI学习笔记之CNN之图像分割 图像分割 问题引入 实现技术手段及分类 语义分割-FCN(Fully Convolutional Networks) FCN--deconv 反卷积的具体步骤 Unpo ...

  2. 学习笔记 | c++中四种类型cast(强制)转换

    c++中四种cast转换 C++四种强制转换方式,应用场景,细节 1.const_cast 用于将const变量转为非const. 用来修饰类型的const或volatile属性.除了去掉const或 ...

  3. AI学习笔记(四)相机模型、图像聚类算法

    AI学习笔记之相机模型.图像聚类算法 相机模型 相机与图像 坐标系 相机成像 世界坐标系到摄像机坐标系 摄像机坐标系到图像物理坐标系 图像物理坐标系到图像像素坐标系 摄像机坐标系到图像像素坐标系 世界 ...

  4. AI学习笔记(六)三维计算机视觉与点云模型

    AI学习笔记之三维计算机视觉与点云模型 立体视觉 立体视觉的概念 立体视觉的原理 单目系统 双目系统和视差 对极几何约束 SIFT sift特征的特点 sift算法总体介绍 sift特征提取和匹配具体 ...

  5. AI学习笔记(十五)自然语言处理基本概念

    目录 AI学习笔记之自然语言处理 自然语言处理(Natural Language Processing) 自然语言简介 自然语言处理的难点 自然语言处理的现状 基于深度学习的自然语言处理 NLP的处理 ...

  6. AI学习笔记(十二)物体检测(上)

    AI学习笔记之物体检测(上) 物体检测简介 常见检测网络 IOU TP.TN.FP.FN precision(精确度)和recall(召回率) 边框回归 边框回归具体方法 Selective Sear ...

  7. AI学习笔记(九)从零开始训练神经网络、深度学习开源框架

    AI学习笔记之从零开始训练神经网络.深度学习开源框架 从零开始训练神经网络 构建网络的基本框架 启动训练网络并测试数据 深度学习开源框架 深度学习框架 组件--张量 组件--基于张量的各种操作 组件- ...

  8. AI学习笔记(三)特征选择与提取、边缘提取

    AI学习笔记之特征选择与提取.边缘提取 1.特征选择 (1)特征的概念 (2)为什么要做特征选择 (3)什么是特征选择 (4)怎么做特征选择 (5)特征选择算法 (6)搜索方法 2.特征提取 (1)特 ...

  9. AI学习笔记(二)图像与视频

    AI学习笔记之图像与视频 1.图像相关概念 像素 分辨率 灰度 色调 通道 对比度 RGB模型 频率 2.图像的取样与量化 数字图像 取样 量化 3.上采样与下采样 上采样 常用的插值方法 1.最邻近 ...

最新文章

  1. P2P Device Discovery流程分析
  2. python机械臂api_使用高斯机械臂的API开发
  3. Java的java.util.function.Function接口中identity方法解析
  4. 网站开发常用jQuery插件总结(15)上传插件blueimp
  5. 设计模式学习笔记三——Abstract Factory模式
  6. 【学习笔记】ABAP OOD设计模式 - 桥接模式
  7. mysql 存储过程cursor_MySQL 的存储过程写法和Cursor的使用
  8. 别让Vue3.0的谣言害了你!
  9. Java8 Math新增方法
  10. SpringCloud_Eureka集群配置
  11. 拓端tecdat|R语言中进行期权定价的Heston模型
  12. C++primer 7.4节练习
  13. 如何以最好的方式实现游戏关卡
  14. linux中中文转换程序,Linux下在程序中如何进行繁体中文和简体中文的转换
  15. 文本数据的机器学习自动分类方法(转)
  16. vue项目设置footer始终处于页面底部
  17. linux rc目录,linux /etc/rc.d/目录及rc.local的详解
  18. python爬取学校题库_Python爬虫实战-获取某网站题库
  19. 云服务器上安装 R语言 以及 RStudio Server 详细图文操作(全)
  20. python_day6_面向对象的介绍/构造函数/类变量和实例变量/析构函数/私有属性和私有方法/继承、多继承和继承实例/多态

热门文章

  1. a.out.h 头文件分析 \linux-1.0\linux\include\linux\a.out.h
  2. 看嵌入式大神直播,送开发板!
  3. 嵌入式杂谈之makefile补充
  4. Android内核学习笔记
  5. 屏上有一层紫色(正在找原因)
  6. 小程序背景图满屏_竞赛答题小程序
  7. mysql存储过程触发器游标_MySQL存储过程,触发器,游标
  8. 数据结构之二叉树:二叉查找树的先序、中序、后序、层序遍历,Python代码实现——10(续)
  9. Django之验证码的实现,简单快捷的方法
  10. 一、PHP基础——表单传值、上传文件