NLU几种常用的模型对比
NLU指的是自然语言理解,这是人工智能中很重要的一个方向,让机器去理解人类的语言。针对NLU,目前业界有几种常用的方式,来解决现实中的问题。今天就从产品和应用的角度跟大家一起聊一聊这些解决具体场景问题的NLU模型。
首先说一下在具体的商业使用场景中,我们在做NLU处理时候的简单思路,基本就是一个映射关系。通过对用户文字输入的处理,寻找这些文字最适合的文字映射,来回复给用户。而这种映射关系又分为两种,一种是匹配式的,不用理解句子内容,只是找答案;另一种是理解式的,需要理解句子内容,然后根据某种机制给出最后的答案。
鉴于本人也不是特别懂技术,因此本文不谈技术,仅谈优缺点和应用。为的是帮助不懂技术的PM也能了解
1. Rule-based
这是一种最为简单却最为高效的方法。原理也很简单,告诉机器某个句子或某种句式对应某个问题,然后当用户的输入符合这种句式的时候,给出对应的回答。
例如某电商客服系统,需要通过rule-based的方式自动回复用户关于询问优惠券的问题,已有固定的答案,所以我们需要去尽可能的想象用户可能的问句。如:有优惠吗?有优惠券吗?有什么优惠吗?能不能便宜点?……
优点很明确:对于数据比较少,场景简单的时候,可以获得比较好的效果,人为对规则的制定已经可以覆盖大部分的场景。
同时缺点也很明显:灵活性差,维护困难,覆盖度不够广。因为只能支持规定的句式
2. Vector model(向量模型)
这种其实是对句子做一定的解析,通过词向量或句向量来计算用户输入和标准问题及扩展问题之间的相似度,从而给出最佳匹配结果,最终给出答案。
优点是:相对来比较灵活,覆盖度并不完全受提供的数据限制。
缺点是:长句的case处理结果不好,且需要通过句型,人称,关键词等来辅助判断,工作量并不小。
3. Deep learning
通过深度学习来做NLU,简单点说就是一个让机器学习的过程,通过监督学习,让机器形成某种认知。这本质上其实是一个分类的问题,每一类的问题对应每一种答案。机器识别出你输入的分类之后,给出相应的回复。
优点是:非常灵活,有足够训练数据的情况下能够覆盖足够多的场景。
缺点是:黑盒,不可解释。对数据的数量,标注的质量都有比较高的要求。而且要求必须有清晰的边界。