一、意图识别应用领域
1、搜索引擎
2、对话系统:基于意图识别了解用户想要什么 业务 或者 闲聊,并采用不用的子模型来处理
1.1 闲聊
技术:闲聊机器人需要有较高的召回率,因此常常用:seq2seq + attention / transformer / bert ....
1.2 基于业务,例如 电商、买票、查询天气
技术:基于上述应用场景需要极高的精确率,因此常常用:① 基于业务规则模板、基于语义匹配 ②
3、智能物联网
4、机器人
二、意图识别的难点
1、用户输入不规范,输入方式多样化,甚至非标准的自然语言
2、表意表现出多意图
仙剑奇侠传
游戏?--> 游戏软件?……
电视剧?--> 电视剧下载?相关新闻?……
3、意图强度,表述不同表现出不同的需求强度
天气很好啊-->弱意图(心情,闲聊模式) 今天天气怎么样-->强意图(业务模式)
4、意图存在时效性变化,就是随着时间的推移相同问题的意图会发生变化 ******* 难点
5、没有固定的评估的标准
三、意图识别的主要方法
1、意图识别的类别
(1)导航型
将用户导航到相应的领域或相应的流程中
例:百度 *** 导入到某个网站
(2)信息型
提供给用户想知道的信息
例:百度 *** 的个人信息 ----- 类似百度百科
(3)事务型
给用户提供流程中的各个实现环节
例:百度 *** 坏了 ----- 类似百度知道
2、规则模板意图识别
(1)词表穷举法
特点:必须一一命中才行,因此模型的召回率较低,精确率极高
(2)规则模板解析
规则模板解析: 需要基于 分词、词性标注、命名实体识别、依存句法分析、语义分析 的前提下 才能完成
而且数据中使用的也是字典形式(key hash 结构),查询速度较快。
1、适用于查询非常符合规则的类别,通过规则解析的方式来获取查询的意图。
例:
北京到上海今天的机票价格,可以转换为:[地点]到[地点][日期][汽车票/机票/火车票]。
执行过程:
第一步:寻找领域,获取子类模板字典
第二步:选取模板,这里面命中模板不是所有的内容都全部命中,只需要命中一部分。
第三步:采取 反问模板 与用户沟通缺失了模板的那些内容,并补全这些内容(即上述问句没有日期)
第四步:给出 完整的模板信息 并 等待用户确认。
1吨等于多少公斤,可以转换为:[数字][计量单位]等于[数字][计量单位]。
对规则性较强的query有较好的识别精度,能够较好的提取准确信息。
缺点:需要人工参与较多,很难自动化实现。
实用指数:4★
场景:搜狗通用搜索、小i智能客服、机器人、智能物联网、支付宝分控系统有10000多个模板。
特点:规则性较强的query精确率较高,召回率也不错
- 案例:搜狗搜索 意图识别
规则意图识别的一般技术
1. 判断领域:采用实体-主域-模板的整体框架来判别识别领域
注意:主题 ------ 大类别 ;主域 ------- 子类别 ; 模板
2. 判断意图:命中主域后,模板采用意图动词(下载、查询等)或意图疑问词(怎么样、为什么等)判别意图
3. 区分弱意图和强意图,针对性提供解决方案;判断实体强度
搜索引擎意图识别领域判别表:仙剑奇侠传
计算过程
第一步:主体(大类)计算
第二步:主域(子类)计算
- 规则模板解析优化
4. query改写包括:query纠错,query扩展,query删除,query转换。
a. 进行同义词扩展 eg:我去旅游 我要旅游 ------- 技术:① word2vec ②
b. 删除一些修饰,扩大召回 ------- 技术:① booststriping信息抽取 ② 语义分析(三元组)
c. 通过近义或同义转化,扩大召回 ------- 技术:① word2vec ②
3、深度学习意图识别
1、机器学习和深度学习方法
意图识别可以看做是一个分类问题,针对于垂直产品的特点,定义不同的查询意图类别。
对于用户输入的query,根据统计分类模型计算出每一个意图的概率,最终给出查询的意图。
缺点:主要是数据获取和更新较困难,数据的标注也需要较准确才能训练出较好地模型。
实用指数:4★
场景:京东JIMI、美团垂直搜索
2、深度学习 意图识别常见 模型:
① LSTM + attention
② BERT网络 分类意图识别
特点:模型召回率很高
- 案例:京东JIMI 意图识别
一、 大致结构
二、模型网络
京东JIMI意图识别(baseline)
深度学习CNN模型,可用于求解一个分类问题,将用户的问题映射到一个具体的分类。最终在算法选型上,采用深度学
习CNN模型,其中模型参数:
词向量采用100维
每个样本限定30个字以内,超出30截断,不足30补充随机向量
单层CNN网络,第一层卷积核大小3*50