AI热点 7 hours ago 93 Views 0 Comments

AI产品经理必修课:意图识别(1)

人人都是产品经理

Published 942 Articles

在人工智能领域,意图识别是AI产品设计中至关重要的一环,它直接影响到用户体验和产品功能的实现。本文将为你深入剖析意图识别的关键要素,从其发展历程、应用场景到构建意图体系的具体方法。

1. 引言

在前面的 4 篇文章里,我们首先铺垫了AI产品经理最重要的基石——AI 产品四层架构 (用户层、应用层、模型层、基础设施层),接着由浅入深的阐述了 RAG技术 (检索增强生成) ,包括:

RAG 能够帮助模型检索到更精准的外部知识,据此生成给一个高质量的回答返回给用户,但如果模型没有正确识别用户的意图,再好的检索与生成也难以达成预期效果。

所以,在 RAG 之前还有一个前置步骤——意图识别。经过用户输入、改写 query,意图识别就会引导系统路由到对应的处理模块,可以是知识检索,也可以导向工具调用。

比如,当你询问淘宝小二”我买的T恤什么时候发货”时,系统能够精准识别这是一个物流查询意图,自动调取订单系统的数据,查询该用户最近购买的T恤订单,返回预计发货时间。而当你抱怨”这个衣服跟图片上的色差好大”时,系统则识别为售后投诉意图,自动触发下一步的处理流程,转人工客服或启动退换货流程。

不只是智能客服这个相对成熟的场景,意图识别在物联网、金融和医疗领域也有所应用。

  • 在智能家居场景中,用户晚上十点对智能音箱说”我好冷”,系统不仅要理解冷的字面含义,更要识别出用户的真实意图——希望提高室内温度,进而触发相应的功能——打开空调暖气
  • 在医疗场景中,当患者描述”咳嗽发烧三天,喉咙很痛”时,系统需要识别这可能是呼吸道感染相关的就诊意图,并推荐挂号呼吸内科或发热门诊。这要求系统不仅要理解自然语言,还要具备一定的医学知识。
  • 在金融领域里,用户说”我想了解一下理财产品”,系统需要识别这可能是投资咨询意图,并根据用户的风险偏好、资金量等信息,推荐合适的产品。

这些应用场景都依赖于意图识别系统的三个关键能力:

a) 领域知识的储备——系统需要理解特定领域的专业术语、业务流转的逻辑。

b) 信息的综合判断——结合对话历史、用户信息、实时信息等挖掘用户当前的真实意图。

c) 动态适应的能力——根据上下文主动进行调整(涉及多轮对话,比如用户意图发生转变时,系统能够立即调整响应策略)。

2. 为什么要做意图识别?

意图识别的发展经历了从固定规则匹配到深度语义理解的演变。

早期的规则时代就像打造一本对话词典来实现你问我答。技术人员需要预先编写大量的模板和规则,试图覆盖用户所有可能的表达方式。这种方法擅长处理结构化、规范化的输入,但局限性也很明显——人类语言的多样性永远无法被规则所穷尽。比如,你提前编写了”放首歌”属于”播放音乐”的意图,如果用户说”放下杰伦的歌”这种没有编写的规则,就无法被识别。

统计学习方法的突破不再依赖人工编写的规则,从死记硬背转向了模式学习:通过大量标注数据来学习不同表达方式与对应意图之间的关系。简单说,就是让机器学习大量正确的 case 来总结规律,而不需要人为地把所有可能性都告诉它。

标注指的是为原始数据添加标签或注释,以便机器学习模型理解这些数据。对于意图识别来说,涉及意图、槽位、实体的标注 (意图就是用户的需求,槽位就是关键的字段,实体就是槽位上的信息),最常见的就是喂给文本分类模型大量的用户 query,并标注这些话的意图。当用户输入时,用训练好的模型来预测其最可能的意图类别。

比如模型学习过”想听、要听、来首、放首”等词语与”播放音乐”这个意图相关,即使你没有明确告诉过它“我想来一首周杰伦的”也属于“我想听歌”,它也也可能根据它学到的模式进行判断。但是,虽然统计学习方法不需要人手动编写所有规则,但它本质还是表面的模式匹配,无法真正理解句子的含义。

深度学习时代的到来标志着意图识别进入了语义理解的新阶段。基于Transformer架构的大语言模型(如BERT) 就像语境理解器,能够捕捉词语在不同上下文中的细微含义差异,实现了对复杂、模糊表达的准确理解。

仅需设计一个系统 Prompt,将用户输入与所有意图描述一并发送给 LLM,由 LLM 直接判断最佳匹配意图。无需训练数据,迭代速度极快,新增意图只需在 Prompt 工具列表中添加相应描述,显著提升了灵活性。

3. 什么是意图体系?

意图识别是一个基于意图模型的初始分类器,它的整一个流程是用户查询、query 改写、意图识别、工具和服务的调度。

  1. 用户查询:就是用户在对话框里的输入。
  2. query改写:对用户的原始查询进行改写,提高模型输出的准确率。比如,用户在生活服务类app的AI对话系统里输入”深圳湾今晚的房”,实际上用户需要的是”提前订一个今晚的在深圳湾附近的酒店”。
  3. 意图识别:通过改写query与不同意图的相关性打分,将意图分类到对应的工具和服务,从而满足用户的需求。比如,与刚刚的query相关性最高的是酒店查询,所以它就归到酒店查询这个意图。query里有很多槽位,”今天”就是时间槽位里的实体,”深圳湾”就是地点槽位的实体。当然也还有其他的意图,包括美食团购、火车票查询、家政服务、兼职接单等等。
  4. 工具调度:将实体填充到对应的工具和服务里,承接下一步的动作。

一套完整的意图体系是意图识别的基石,支撑意图识别的运转,它包含几个重要的组成部分:

意图名称:通常来说是”动作+名词”的动宾结构,同时保证简洁易懂、没有歧义,比如加入购物车、搜索宝贝、投诉商家等等。

意图描述:对每个功能的完善的定义,尽可能覆盖到用户所有可能涉及的用途和场景的关键词,可以显著提高”LLM+Prompt”策略的意图识别的召回率与准确率。

典型 case:通过收集并分析常见的用户 query 以及 bad case,来进一步完善意图描述。通常来说,用户 query 分为直接询问和模糊表达,如果设置提问示例需要覆盖到这两种场景。

意图关系 (一般适用于用户意图或产品功能较为复杂的情况)

1)意图层级

意图层级通常是2-4个层级。

一级意图:业务大类,对应核心功能模块。

二级意图:一级大类下的细分场景。

三级意图:细分场景下对应的功能。

四级意图:某功能内更具体的动作。

意图层级举个例子,比如在电商 AI 生图工具的产品里:

一级意图:电商生图工具里有”模特图、商品图、素材生成”。

二级意图:素材生成下有”POD 素材、场景素材、图片处理”。

三级意图:图片处理下有”智能修图、局部消除、智能扩图、高清放大、批量生图”。

四级意图:批量生图下有”批量图片翻译、批量智能扩图、批量高清放大、批量场景裂变”。

2)意图边界

就是需要在意图描述里明确,该意图包含什么和排除什么,避免与其他意图混淆。

意图边界举个例子,比如在修图场景里,局部消除、消除文字、局部重绘,为了避免这三个意图的混淆,就需要在意图描述内明确各自的边界。

a)局部消除:可去除图片中指定内容,同时能自动修补周围纹理和色彩,效果自然无痕 (侧重于无痕的消除图片内局部的元素)。

b)消除文字:一键消除图片中的文字或水印,最多处理100张图片 (侧重于消除图片内所有的文字或水印)。

c)局部重绘:输入文字进行指定,对图片的指定区域进行更改或修复,支持各类商品图片 (侧重于对图片内部分区域的重新绘制)。

比如:我要去掉图片里的水印=消除文字,重新画一下左下角的猫=局部重绘,抹掉书桌子上的马克杯=局部消除。

承接动作:根据意图路由到的具体工具或服务,确保整个查询到响应的一个闭环。

兜底意图:用户所有的query都应该有对应的动作,保证用户的体验。如果 query什么意图都没有命中,那么就需要有一个兜底的意图。比如生活服务类的产品,它的意图模型整体的兜底意图就可以是转人工。

本文由 @黄晓泽 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

人人都是产品经理

人人都是产品经理

942 Articles 131842 Views 58654 Fans

Comment (0)

睡觉动画