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> 开放域聊天<b>非面向目标、语义意图不明确。</b>用户通常期望的是语义相关性和渐进性,对准确率要求较低。开放域聊天在现有的人机对话系统中,主要起到拉近距离,建立信任关系,情感陪伴,顺滑对话过程(例如在任务类对话无法满足用户需求时)和提高用户粘性的作用。这一形态的典型产品代表有微软小冰,助理来也,siri,度秘...</p><p> 开放域聊天与以下的几种对话(task oriented etc.)有较为明显的区别,因为用户可能不涉及具体任务,场景更加开放,休闲。相应的,用户期望也会产生变化,从期望帮助完成某个硬性/客观的任务(如多轮对话)到期望机器理解主观的情感,并进行情感交流。借用 Google对话式交互设计指南中的话来说,就是<b>“人们会对媒介角色(如虚拟助理)产生像对真人一样的心理反应,我们会本能地将人类个性与性格迁移到数字对话中去”。</b><b> </b>因此相较而言,这种产品的用户体验与交互设计就显得格外重要。用户希望跟一个有温度的机器人聊天,希望自己的情感被理解并得到正向的反馈,当你在想象 ta 的时候,第一印象不是你的智能手机,而是在脑海里刻画出一个或萌或可爱或闷骚的真实形象(比如 Her)。</p><p> 开放域聊天的技术路线通常有 <b>GenerationModel(生成模型)和 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与具体场景的结合,是不是真正地提高了用户效率。
恩,那么就先到这里,午休结束,要上班啦!
下次有空聊聊所谓的“智能助理”~