语音助手——助手中用到的那些分类模型

        这一章,我们来一起看一下语音助手中用到的那些分类模型。首先,什么地方需要用到分类模型呢?有以下几种情况:

  • 场景分类
  • 任务、闲聊、问答分类
  • BOT内部分类

这一类分类主要起的作用为:

  1. 辅助DM进行BOT的分发和排序
  2. 避免全量query流经某个BOT,减轻下游服务压力
  3. 各个BOT应该有具备识别query是否属于自己领域的能力

除此之外,还有一些地方也会用到分类模型,比如:情感识别,意图识别等。这里主要讲一下助手中用到的几个主要分类模型的组成关系,如下图:

        有同学可能会问,为什么要这么组织模型呢?各个分类模型有什么区别和相同点吗? 

        关于为什么需要这些分类模型,除了上面提到的作用外,还有几个原因:

1、任务、闲聊、问答分类:

        闲聊BOT、问答BOT几乎总是能对所有query给出一个结果,而且由于其BOT的特性,导致并没有一个统一的评判标准来决策哪个BOT的结果更好,此时任务、闲聊、问答分类模型,就可以辅助DM尽心BOT的排序。同时,对于部分指令型话术,如果助手目前没有覆盖,也是需要能够识别到的,对于这一类query,可以给出一些合适的引导或者推荐,此时该三分类模型也可以用于兜底识别指令话术。该分类模型就是一个典型的三分类模型。

2、场景分类:

        助手中会包含很多很多的BOT,DM要实现对BOT的合理分发,有一个分类模型是必要的,该模型一般为多分类模型,即一个query经过该模型会给出几个类别,代表其可能所属的场景和置信度。

        同时,考虑到产品需求的快速变化,每个新场景的提出,就要对应的增加分类类别,所以一般场景分类是有模型+模板来共同组成,对于一些成熟的场景,加入到模型中,对于一些简单或者新增的场景,直接使用模板(关键词)来进行分类。所以该分类模型是一个集合体,而非单个深度学习模型。

3、BOT内二分类、n分类:

        考虑到对于一个query,DM需要尽可能激活所有可能与其有关的BOT,所以BOT分发是不止参考场景分类模块,还会参考一些其他信息,这就会导致一些误分发。同时,场景分类模块可能要识别40+类别,其各个类别的准召是很难平衡的,我们一般要求场景分类是重召回的,这也会导致一些误识别。所以对于每个BOT,我们要求其:具备识别query是否属于自己BOT处理范围的能力。所以就有了二分类,其需要对于一些场景间的易混淆话术,进行区分,提高进入BOT的query的准确性,所以它是重准确的。

        看到这里,有同学就会有疑问,可不可以只要分类模型,不要二分类。 或者将二分类直接提前到场景分类的位置,即将全量query分发给BOT,让BOT利用自己的分类去识别呢?答案是可以的,但是需要注意以下两点:

  1.         每个BOT独立承担全量query流量,其性能可能扛不住,需要更多服务器,而线上实际属于该场景的query可能并不多。此时就需要一个流量和效果的平衡,如果该BOT是一个核心BOT,流量较多,且更新频繁,则将该BOT的二分类位置提前是可行的。
  2.         场景分类+二分类这种组织关系,可以使二分类只关注与其本身BOT易混淆的BOT间的区别,而不必关心其他无关的BOT,比如音乐BOT,其内部的二分类可以只关心其与视频BOT、电台BOT之间的差别,而不用关心天气BOT的话术特征,这就可以使得其二分类训练时,训练数据更具有针对性,可能使用更少的数据量,给开发效率也带来了提升。

        关于模型的结构

        其实没有太多可说的,就是最简单的text_cnn+腾讯词向量就可以了。我们试过很多其他模型,比如bert,LSTM,RNN,transformer,或者进行对抗训练,带噪学习等方案,其效果可以说相对于text_cnn一般并没有很大的提升,在0.5-1个点之间,有些效果还会变差,所以这里的模型结构没有太多可以优化的地方了。

        相对于模型结构的优化,对于数据层面、流程层面的优化更加有效,在数据层面,可以使用主动学习的方案来标注少量数据提升模型效果,在流程层面,可以使用模型蒸馏的方案来实现数据增强、模型效果提升。

        还有一个很经典的问题:分类模型中各个类别的数据量如何平衡,如果某个类别效果不好该怎么办?

        对于数据量,一般建议是使各个类别的数据量能够和线上数据量的比例尽可能接近,但是对于某个类别也不要太少,因为数据量太少其效果必然会受到影响。或者也可以使各个场景的数据量均衡,但这个其实很难,对于线上每个场景的重要度是不同的,其复杂度也是不同的,有些场景既重要又复杂而且流量也很多,其场景可以很容易获取到大量数据,进行人工清洗后可以获得比较好的数据,而对于一些流量少又没那么重要的场景,想获取与其匹配的数据量,是比较难的。

        对于某个类别效果不好怎么办,能怎么办,洗数据呗。

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值