自然语言处理NLP的坑到底有多大?

2018 年 11 月 12 日 专知

【导读】自然语言交互是非常难的行业,没有积累很难做出来好的产品。这个行业不适合急功近利。



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

 

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

 

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


为什么会出现这种情况?


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


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


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


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


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


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


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


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


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


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


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

 

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

 

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

 

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


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


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


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


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

 

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


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


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


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

 

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

 

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

 

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

 

(作者:小谛机器人创始人兼CEO 彭军辉)

原文:

https://www.roboticschina.com/news/2282.html


-END-

专 · 知

人工智能领域26个主题知识资料全集获取与加入专知人工智能服务群: 欢迎微信扫一扫加入专知人工智能知识星球群,获取专业知识教程视频资料和与专家交流咨询!


请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!


请加专知小助手微信(扫一扫如下二维码添加),加入专知主题群(请备注主题类型:AI、NLP、CV、 KG等)交流~

 AI 项目技术 & 商务合作:[email protected], 或扫描上面二维码联系!

请关注专知公众号,获取人工智能的专业知识!

点击“阅读原文”,使用专知

点赞 0

Text Classification is an important and classical problem in natural language processing. There have been a number of studies that applied convolutional neural networks (convolution on regular grid, e.g., sequence) to classification. However, only a limited number of studies have explored the more flexible graph convolutional neural networks (convolution on non-grid, e.g., arbitrary graph) for the task. In this work, we propose to use graph convolutional networks for text classification. We build a single text graph for a corpus based on word co-occurrence and document word relations, then learn a Text Graph Convolutional Network (Text GCN) for the corpus. Our Text GCN is initialized with one-hot representation for word and document, it then jointly learns the embeddings for both words and documents, as supervised by the known class labels for documents. Our experimental results on multiple benchmark datasets demonstrate that a vanilla Text GCN without any external word embeddings or knowledge outperforms state-of-the-art methods for text classification. On the other hand, Text GCN also learns predictive word and document embeddings. In addition, experimental results show that the improvement of Text GCN over state-of-the-art comparison methods become more prominent as we lower the percentage of training data, suggesting the robustness of Text GCN to less training data in text classification.

点赞 0
阅读1+

Industry datasets used for text classification are rarely created for that purpose. In most cases, the data and target predictions are a by-product of accumulated historical data, typically fraught with noise, present in both the text-based document, as well as in the targeted labels. In this work, we address the question of how well performance metrics computed on noisy, historical data reflect the performance on the intended future machine learning model input. The results demonstrate the utility of dirty training datasets used to build prediction models for cleaner (and different) prediction inputs.

点赞 0
阅读2+
Top