自然语言交互是个坑

Posted 1号机器人网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言交互是个坑相关的知识,希望对你有一定的参考价值。

两天在崔牛会(一个做2B客户的企业家社群)的群里聊天,一朋友说如果我早点跟他讲NLP的难度,他就不入这个行了。



我们说的NLP其实主要是人机自然语言交互。NLP也包含好几个细分领域:搜索、机器翻译、问答等。我人机自然语言交互也就是问答。


很多年前,别人说我做的东西不过就是关键字模糊查询,他找几个会编程的高中生都能做。这基本上就是无知无畏了。所以我当时也没去争辩。


这个行业就是我朋友说的,外行看简单,进来发现很难那种。其实自然语言交互就是个坑。


为什么会出现这种情况?


因为第一,这个行业没有标准。有人说谁家机器人很聪明,谁家机器人很厉害,都是凭感觉的。有个同行在行业群里问有没有什么标准测试机器人水平,喊了很长时间也没有找到。有人认为图灵测试是一个标准,但至今没有多少机器人能通过图灵测试。即便有公司声称他们的机器人通过了图灵测试,也很难得到公众认可。我认为原因在于,机器人根本不可能完全伪装成人。另外,图灵测试随意行太强,很难给出客观并科学的评测结果。


为什么这个行业没有标准呢?因为问答是个新领域,而很多时候人们把它当成搜索。搜索给的结果是模糊的,问答需要给精准结果。搜索用关键字模糊查询就行,问答要关注语义的细微差别。这个我在别的文章里有论述。搜索的标准是召回率和准确率,但这个标准用在问答上就没用了。你的召回率和准确率做再高,用户体验依然很差。因为搜索其实处理的是关键字,而问答要求处理好句子里每一个词。


没有标准就意味着你做好做不好都一样。所以才有人说高中生都能做聊天机器人。


也意味着没有方向。于是有的人跟着感觉走,有的人用搜索的标准测试问答。


同时意味着开发人员总是自我感觉良好。其实我们的产品在用户眼里都跟狗屎一样。


虽然行业内没有标准,我们有自己的问答技术标准,即:差异原则,同一原则,模糊原则和一致原则。差异原则就是机器理解两句话之间的差异。同一原则就是机器理解两句话语义是相同的。模糊原则就是机器能容忍自然语言输入中的小错误。一致原则就是机器前后说的话是一致的,不相互矛盾。


如果用我们的标准去测试,很多问答机器人是不能过关的。期待我们的标准能成为行业标准。我们就是按照这套标准要求自己的。


图:小谛机器人语义理解测试标准1.1

第二,用户预期高。因为艺术作品的宣传,人们对人工智能的期望值很高。你只要叫个机器人,叫人工智能,别人就认为你是万能的,应该什么都懂,应该比人厉害。即便你说你是个企业客服机器人,人家也认为你应该比人类聪明。


但实际上,艺术作品是虚构的,变形金刚霸天虎在现实世界并不存在。因为基础技术没有。


用户要求高,我们做不到,用户产生的心理落差就很大。


第三,有人总认为用穷举可以解决问题。实际上一个问题的多种表达是无穷尽的。人家加个“啊”“呀”“的”可能你的机器人就不会回答了。有人统计过关于查话费余额的表达方式据说有接近一万种。普通程序员根本无法去穷举用户的各种语言表达。实际上解决这个问题只能用算法。我们相对做得好点,用我们算法,一个句子可以覆盖用户许许多多问法。


第四,这个行业工作量很大,即便是小领域工作量也很大。有人说通用问答机器人我做不好,我做个法律、医疗、税务的难道还做不好吗?其实把一个企业的客服机器人做好都很难。如果用穷举的话,即使建设一个企业客服相关问题的知识库也有很大工作量。我们算法虽然有优势,能大幅降低知识库建设工作量,但依然后面有很大的工作量。


第五,缺理论依据。什么是语义?从网上找的概念对我们工作没有什么指导意义。语义和语言之间具体的关系是怎样的?有些人还没意识到我们应该通过语言处理语义,还在生搬硬套的处理语言文字。用户说“是”也许表达的是否定的意思,用户说“南京”也许是想吃东西。自然语言问答最终处理的是语义,也就是用户意图。有人说,用户意图不就是和产品功能对应的么?这句话有一定道理。但并不总是这样。智能家居产品可能是这样。开灯关灯,对着一盏灯用户意图也就这两个了。但如果是对电视机,用户意图就会复杂点。比如,用户可能想看刘德华的电影,或者听刘德华的演唱会,或者看刘德华的写真。用户说的“刘德华”怎么理解用户的意图呢?如果是对着机器人,用户也许会表达爱慕或者厌恶或者其他情绪,怎么理解用户意图呢?产品功能越复杂,对应的用户意图越复杂。所以从产品功能反推用户意图是不现实的。


怎么让机器透过用户自然语言表达去理解用户意图呢?很多人根本不研究语言,不研究语法规则,这怎么可能处理好语言呢?大多数同行用数学的方法处理语言,比如他们从一句话中提取关键字的依据是词频。词频是绝对的,是统计出来的,而一个词在一句话里的语义权重是变化的。其实语义本身就是变化的。我的另一篇文章讲述了我对语义的看法。


我认为不研究语言,不了解语法规则根本处理不好语言。汉语有很多特殊的语法结构。比如倒装句、“把”字句、“被”字句等等。单纯用统计学技术不可能处理好语义,可能连句子的主语和宾语都分不清。比如:“酒喝光了,我”这句不是酒把我喝光了,而是我把酒喝光了。“酒喝光了怎么玩”这句的“怎么玩”其实是一个词。


我们在课本上学的语法规则,在我们做自然语言交互技术时可能根本不管用。人能理解的东西,机器理解不了。怎么让机器理解语法规则呢?需要有系统深入地研究,需要有科学严谨的理论。


我研究这个很长时间了,我们对汉语的语法规则做了细化,让机器更加方便处理。


第六,误解。前几年投资过热,人工智能想象空间巨大,是投资的理想标的。但实际上投资人根本不懂行,他们也只能看看团队背景、看看公司收入、看看产品。这样一堆被资本捧红的明星企业诞生了。他们大多数有大公司出来的创始人并且养着一堆博士或者博士后。他们经常嘴里一堆学术名词,一堆洋文。但看不到他们产品。于是很多人基本就认为这是正确的方向了。


但实际上谁家也没有能让用户持续使用的自然语言交互产品。这个行业没有领头人。


我去推广我们分词技术,经常被问,有很多开源的分词工具可以用,为什么要自己去研究呢?他们认为大家都用的东西就是正确的。碰到这种情况我一般也不去争论。


我们做企业不是给投资人看的,做产品也不是给投资人用的。用户认可才是我们追求的。独立思考,才能让我们找到解决问题的办法。尽管失败了一次又一次,我依然在前进。我看到我们的产品越来越好,我相信迟早会得到更多用户认可。


第七,用户习惯。小米的语音电视遥控器功能其实很强大。但小米的数据显示,遥控器的语音交互功能使用量很低。现在其实每款手机都有语音助手,但几乎没人用。大家普遍认为,现在用户还很难改变使用键盘和触摸屏的习惯。其实改变用户使用习惯从来都是一件十分困难的事情。


第八,顺畅交流。如果不能流畅交流,用户的体验就会很差。缺内容、不理解用户意图都会造成交流不能流畅进行下去。缺内容是最难解决的,谁也做不出来无所不知的机器人。如果能给用户一个知识边界,让用户明确知道这个边界,用户只在边界里提问,这就能让交流的流畅性大大提高。但这个边界怎么展示呢?不理解用户意图主要是算法的问题。对于有些企业来讲,算法问题可能是难以突破的。这就好像一只猴子不可能拥有人类的智能一样不可能得到改变。我们在算法上有优势,但我们在内容上短板明显。


我一直认为自然语言交互是非常难的行业,没有积累很难做出来好的产品。这个行业不适合急功近利。以为能赚到快钱的人,必然会掉坑里。



以上是关于自然语言交互是个坑的主要内容,如果未能解决你的问题,请参考以下文章

Go 语言从新手到大神:每个人都会踩的五十个坑(转)

最近非常火的ChatGPT到底是个啥?

C语言宏的特殊用法和几个坑 (转)

百度下载给的termux是个坑

微信是个坑货2-远程调试

Golang 需要避免踩的 50 个坑