心法利器[32] | 一些印象深刻的bad case
心法利器
本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。
往期回顾
经常和大家说要多看case,看多了才会有理解,从而更好地发现问题和解决问题,本周给大家分享一些令我印象深刻的case吧。
令人抓狂的名词
纯名词类的query,其实对于模型非常困难,一方面没有上下文,另一方面不见的高频能让模型学到,再者更新迭代很快,根本不可能模型快速学到,这样是一类让我坚信词典优先级高于模型的关键,来看几个例子:
A8。没有任何先验的信息,很多人都不知道是啥,而了解多个领域的人,可能又会有多个理解,对于这种内容,词典能快速精准处理。 长城。超级多意图,模型的划分就会非常混乱甚至失效。 哈哈哈哈哈。你绝对不会想到他会成为一个综艺的名字。
所谓的名词,尤其是特定领域下的专有名词,本身具有大量丰富的含义,这些含义甚至会发生变化,因此应对名词类问题的时候,优先级更高的就应该是词典文本匹配的方式,而不是模型,这是我发现词典特定的关键,词典具有灵活性、精准性、可控性,这是模型没有的。
边界定义问题
case看的足够多,你就会发现我们的很多分类场景,看着很明确,但实际上非常模糊,模棱两可,或者存在各种识别的困难,就非常考验大家的方案设计能力。来看一些例子吧:
打开手电筒和怎么打开手电筒。在智能助手场景下,打开手电筒很自然的应该是一个指令,应该直接把设备的闪光灯打开,然而,只要加上了怎么,整个句子的语义就发生了很大变化,甚至变得模糊了,打开什么手电筒,手机的吗?还是真正的家用、工业用手电筒,哪怕就默认是特指智能助手对应的设备,也并不适合直接打开手电筒,而是给一些文字版的方案或者建议更为合适。(估计这里很多算法都想骂人了)。 手机进灰了要怎么办。同一个query在很多场景下的回答会完全不同,然而在开放域下,这个问题就变得非常很复杂,给客服能够给予维修支持,给百科能够给出技术达人的自用清理方案,看上去都还可以,但是模型也好,策略也好,可就不好处理了。 很多开放域的搜索都会有一个类似热点的意图,这种意图的内容变化非常快,出现的急,需要快速识别并且上线,例如南京疫情类似的话术在出现之前基本上没什么人提但是一瞬间就变成了热门话题,常规的方法很难处理。 语义相似度是一个非常领域差异、人的见识差异会导致结果变化很大的问题,“我要红色的奥迪”和“我要黑色的奥迪”,语义可以认为相似也可以认为不相似,认为相似的人可以说都是要特定颜色的奥迪汽车,认为不同的人可以说两个句子中提到的颜色不同所以不一样,总之各自有各自的道理,因此领域内的判断、有监督对分类模型的指导就非常重要了。
总而言之,边界确定往往是一个分类问题,然而人的理解、场景的变化,都很可能会导致分类的边界会出现大量的变化,这种变化人的理解简单但是对模型、对方案来说就非常困难了,如何给模型灌输合适的信息,会是关键。
惯性思维导致的bad case
为了简单方便,我们总会使用正则表达式、模板之类的进行判断,结合我们构造的训练数据,模型也会发生这种事,来看看我都看到了什么东西:
怎么去XX。来自朋友提的case,一般后面带的地点,整个句子就是和导航有关的信息了,直到出现“怎么去天堂”这种东西出现。 打电话给XXX。通常是用户对手机的指令,直接打电话给各种角色,父母、同事、朋友、对象啥的,但是“周杰伦”、“杨洋”这种,臣妾真的做不到啊。 一般的纠错都是把错误的内容纠成正确的,除开偶尔的过纠情况,但是“耗子尾汁”是否要纠成“好自为之”,就连产品也犯了难。 打开XX。一般地在手机里,打开一般对应各种软件或者功能的打开,打开微信、打开王者荣耀,打开手电筒,但是类似“打开你的头盖骨”、“打开手机后盖”、“打开XX家的保险柜”这种,真的有点困难。
反常规的东西经常出现,平时我们可以当成是段子,但是我们仍要去思考怎么解决这种问题,上面的名词问题让我们知道上下文很重要,而这里又有了与之相悖的结论,上下文可能会欺骗你。
超长和超短句
超短句上面的名词性问题其实已经有提到,就是信息少,信息少意味着决策支持的信息少,这容易导致误判,而句子如果长了,则意味着信息多甚至冗余,太多的信息会扰乱我们的决策,对各种方法都是这样的。
先看几个超短句:
什么。结束了,用户可以等于什么都没说,但是又要给结果,此时一般处理是给个兜底回复,当然做的比较好甚至可以给一些追问啥的,可能会更好吧。 淘。如果是一些APP的场景,打开淘宝之类的会不错,一般地我们都是通过词典来处理,类似的还有支、微等。
再来看长句吧,长句往往信息多会打乱你的决策:
我昨天买的手机,用着好好的,今天就开不了机了,咋回事啊,是否要去维修。句子很长,但是对于客服而言,核心有用的话就只有“开不了机”这4个字,做分类也好,整相似度也好,其他词汇也很可能对结果产生困扰,例如“维修”、“买”之类的,很可能就让分类分错了位置。 5g5g5g5g5g到底是啥。重复可能会影响相似度计算。有兴趣大家可以试试自己的模型是否会这样。
小结
多看case,多分析case,当然会发现很多段子式的东西,给我们带来很多欢乐,然而更让我们对当前方案有更多的理解和把握,这些理解和把握一方面加深我们对当前方案的了解,也让我们能进一步充实自己,这是一种在工作中的成长方法,也希望大家能逐步习惯这种模式,让自己成为能解决更多问题的人,而不只是一个工具、模型的熟练使用者而已。