为什么相比于计算机视觉(cv),自然语言处理(nlp)领域的发展要缓慢?

目前cv领域有很多工业化应用,而nlp很多处于实验室toy的阶段。相比之下,在工业界应用较少。是由于什么原因?
关注者
3,225
被浏览
588,639
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

其他答主已经回答的很完善了,我想补充一些我的思考。

语言相较于图像,更麻烦的一点是语言这种数据至少包含了两层意思。一层是作为它本身的抽象语言符号,另一层则是这个符号所指代的在现实世界中的事物或抽象概念。在结构语言学中,索绪尔将第一层命名为能指,第二层命名为所指。

举个例子,回想我们人类在牙牙学语的时候。当我们学‘apple’这个词时,我们会指着苹果,观察它,触摸它,大人高兴了会给我们切好让我们品尝它。我们也会去参观苹果树,喝苹果汁,用红苹果比喻小脸蛋儿。‘apple’这个语言符号的能指和所指就这样在我们脑海中形成。当我们看到这个词时,脑中就会浮现一个大苹果,说不定还会口齿生津。当然再后来,我们又会把这个词和一个会发光的黑色铁盒子连接在一起。

那么问题来了,在NLP中,我们给模型所输入的只是一大堆语言符号本身,对模型来说,它的世界只有这些符号,按一定的顺序排列。‘apple’对模型来说只是 'a', 'p', 'p', 'l', 'e' 这五个符号按顺序排列在一起而已。它不知道apple背后代表着一种可食用的水果,不知道这种水果的味道,颜色,触觉,形状等等。在大多数情况下,模型也不知道这个词的发音是什么。

因此,我们的模型的世界是一个被阉割了的语言世界。它仅仅包含语言的能指,而完全接触不到现实世界中的所指。这些作为能指的语言符号的顺序会有一些规律,而对模型来说,所能学习的也仅仅是这些语言规律。我们可以说,这些语言规律就是统计方法做NLP的上限。我们的模型能很好的学习比如‘thanks very’后面八成是个‘much’,但当你问一个问答模型‘what is the taste of an apple ?’时,除非数据库里有现成的答案,否则它八成给你输出一堆垃圾。现在大火的BERT,GPT-2等也只是更彻底的学习了语言的规则而已。

这就导致了如果我们只给模型输入语言符号,我们永远不可能通过统计方法解决自然语言理解问题。我们使用的语言不单受语言规则的限制,更多的是它受到现实世界的物理法则的限制。‘苹果是一种水果。’和‘苹果吃起来麻辣鲜香。’在语言规则上都没毛病,但我们都知道第二句是没有意义的。

当然,语言中也能蕴含一些现实世界的物理法则。当数据量足够大的时候,模型也许会知道‘苹果吃起来酸酸甜甜。’,‘苹果可以做成苹果派。’等等。但归根结底,它只是基于对语言规律的总结,它之前见过几次这个表达而已。

总之,不给我们的模型一个与现实世界的链接,它永远也不可能像人类一样掌握语言。

而要命的是,NLP商业化的机会,似乎更多的在这个链接建立之后。我们可以比较一下CV和NLP的比较火的任务,CV学会了分辨图片里面什么是什么 (objective detection), 学会了找出人脸在哪儿,哪儿是眉毛哪儿是嘴,学会了分辨哪张脸都是谁。而相对应的NLP的任务,似乎是命名实体识别(Named entity recognition)。其实NER技术也已经相对非常成熟了,但与CV不同的是,对NLP来说,NER仅仅是个开始,它本身没啥商业化的价值。

这也导致了10年以来那批AI初创企业,CV领域已经出了几个独角兽了,而NLP的则大多半死不活的。

当CV学会了分辨出图片里面的物体之后,按人脑的处理方法,我们会把这些物体符号化,再进行思维处理。而这些思维处理正是NLP所挣扎着想解决的问题(比如visual question answering)。现在AI领域里神经网络能够处理好的一些问题,比如CV的目标检测,NLP里面的语音识别等等,大多是人类本能的那部分。而NLP现在直面的问题则是超脱了人类本能的逻辑思维,这个门槛似乎十分的高。凭借这波依靠神经网络支撑起来的人工智能的爆发能否突破这个门槛,非常的不好说,我本人是比较悲观的。


补充:

攻略组在干什么

目前很多NLPer都在关注模型和知识库(Knowledge base,KB)的结合,这似乎是机器和现实世界建立连接的第一步,是以一个巨大的知识库代替或模拟现实世界的物理法则和人类的常识。以对话系统为例,key-value net[1] 和Mem2Seq[2]等都尝试给一个生成模型连接上一个很小的KB,KB里面的所有triple都与当前对话相关。但局限是这个KB实在太小,而且必须人工筛选使得与当前对话相关。另外,我复现的结果也不如论文中那么理想,大概是我太菜了。

补充2:

维特根斯坦

我们小时候学习语言,其实都是从单词开始的。冲家长吼“苹果!”我们就有苹果吃。慢慢的,我们开始掌握一些祈使句:“给我苹果!”,再后来,又学会了“我喜欢吃苹果”这类表达情感的语句。在维特根斯坦的理论里,这些统称语言游戏。这些语言游戏,与环境,即我们的生活是休戚相关的,是‘语言与现实难分彼此的大面积交织。’对维特根斯坦来说,脱离了语境的语言形式是没有意义的。哈贝马斯说“维特根斯坦的语言游戏语法试图把理想化的抽象理性重新放回到其语境当中,并把理性定位在它所特有的活动范围内。”

对机器来说,以目前的路子,就算链接了知识库,机器也没有一个理性的主体作为“我”去与现实世界交互,因此机器是不可能参与到这些语言游戏中去的。机器不可能知道它想要什么,它喜欢什么,它是谁,来自哪,等等等等。我们没法确定语言游戏是否是掌握语言的唯一途径,但这不失为是一种对目前路子的alternative。

在RL里有一个很有趣的方向[3],就是在multi-agent的情况下参与一个游戏,让每个agent能彼此发送和接受一些符号,这些符号一开始没有任何实际意义,但通过多次玩儿这个游戏,使得这些agents自动形成了一套语言规则,并依靠这些符号传递信息。这几乎就是维氏语言游戏的翻版,尽管它们形成的语言规则非常的简陋,而且对当前NLP面临的问题几乎毫无帮助,但确实非常发人深省。


[1]arxiv.org/abs/1705.0541

[2]arxiv.org/abs/1804.0821

[3]openai.com/blog/learnin