语义理解技术的商业价值
常有人说我们,你们不就是做 NLP 的吗?你们不就是做关键字模糊查询的吗?你们做的这个大公司都做得很好了。
我进入这个行业完全是无知无畏。搞了十多年,越来越觉得这个行业实在太难。
最大的难度是市场、资本、用户并不知道还有语义理解技术这么个细分领域。
严格地讲,语义理解技术并不是属于计算机学科,而是语言学。
机器翻译、搜索是计算机学科,它们不处理语义,只处理文字。比如:“我干掉了五个敌人”“衣服晒干了”,这两点“干”,搜索是分不清的。 “吃了吗”机器翻译总是会翻译成“Did you have your meal”。但结合上下文我们发现“吃了吗”可能是“你吃饭了吗”,也可能是“他吃药了吗”。
数学方法
在搜索、语音和图像识别及机器翻译上的成功让人们认为它可以包治百病。而当人们进入自然语言问答交互领域时,突然发现数学方法不灵了。
有些事情靠概率是能解决的,有些则不行。
二战时期降落伞的质量很差,伞兵经常因为降落伞质量牺牲。后来军方的采购部门要求降落伞的供应商要穿着自己生产的降落伞跳伞来验证产品质量,降落伞的故障率才降低为0了。自动驾驶就是一个故障率必须为0的行业。出一次故障,搞不好一个人就毁了。医疗行业也是故障率必须为0的行业。凡是故障率必须为0的行业,概率就不起作用了。
自然语言处理就是故障率必须为0的行业。
你给机器人说“朝前走三步”,它有了四步可能就掉沟了。
你给机器人说“把这个放进黄色垃圾桶”,它放进红色垃圾桶就错了。
你给自动驾驶汽车说,“在下个路口右拐”,它多走一个路口就错了。
这些错误,错一次可能就会造成非常严重的事故。
现在的 语音交互产品 就存在这个问题。
厂商觉得机器对用户语音输入5%的错误响应率用户可以理解和接受。而其实这只是厂商一厢情愿的想法。
5%的错误率给用户造成使用成本的增加可不是5%,而用户使用的痛苦感可能会被放大几倍。
但实际应用当中机器对用户语音交互的错误响应率可能高达20-40%。
即便1%的错误造成的后果可能也是十分严重的。如果这个错误率不能降低为0,这个行业始终无法成熟起来。
解决问题的唯一出路就是抛弃数学方法,使用语言学方法。
为什么使用数学方法处理语义无法做到0错误率?
第一:数学方法处理的语言文字并非语义本身。
搜索和机器翻译是数学,不是语言学。搜索和机器翻译处理的是文字而非语义。文字只是语言的表达形式,语义才是语言的本质。人们之所以能把一种语言翻译成另一种语言就是因为它们语义相同。
人们通过语言文字表达语义,语义处理就是通过语言文字处理语义。没有语言文字之前,人们通过手势、表情、符号、简单的语音表达意图。这个表达出来的意图是和通过语言文字表达的意图是本质一样的。
数学家们可能不同意我对他们的“指控”。他们认为他们发明的词向量、句子向量就是处理语义。数学家们分不清”吃了药”和“药吃了”语义的细微区别,他们甚至不考虑上下文对句子的影响,对“扔哪个桶里”做统一回答。如果这都是语义处理,关键字模糊查询也算语义处理。
语言文字虽然是语义的载体,但语言文字并非语义本身。它们之间有时是一致的,有时是错位的。这种错位是数学方法完全鞭长莫及的。
第二:数学家们并不研究语法,他们处理的不是语言只是数据。
离开语法处理语义是不可能做好的。语言并不是字词句的堆砌。
汉语有自己的语法特征,英语有自己的语法特征,不同语言的语法特征不同。数学家们忽略了语法特征的不同,用一套算法处理不同语言,这是违背语言规律的,是伪科学。
这就好像用养鱼的方法养牛,可能也不会把牛养死,但它不符合科学规律。其实数学家们处理的只是数据,不是语言。他们处理语言的方法是从处理图像和语音学过来的。但语言并非数据,语言是个有机体,语言是活的,语言是连续的。
“苹果能吃”,隐含的语义是“富士苹果能吃”“秦冠苹果能吃”“花牛苹果能吃”等等。“你的苹果电脑给我用用”里的苹果则和上面的苹果关系较远,也不能吃。判断哪个“苹果”能吃,哪个不能吃不是靠一两句话,而是靠一个知识体系。所以语义处理也是从宏观到微观的。
一堆文字随意堆砌是无法表达语义的,只有按语法规则组织起来才能准确表达语义。不处理语法只处理文字就不是语义处理,就是伪科学。
比如用机器翻译翻译“她死了爹”结果是“She died of her father”;翻译“酒喝光了”结果是“I've run out of alcohol”;“今天的太阳热死人”翻译成“Today's solar energy is killing people”;“今天的太阳热死人”翻译成“Today's sun is killing”。这都是不分析句子结构导致的错误。
第三:对语言的处理其实是个思辨的过程,需要智能;而数学方法就是条件反射,并无智能。
拿分词来举例,“是日本人去了山东”分成“是/日本人/去/了/山东”和“是日/本人/去/了/山东”都是对的。什么情况下分成什么结果就要根据具体情况去思辨。
而数学方法给出的分词结果却是固定的,并不能根据具体情况发生变化。这个思辨的过程不是条件反射,是智能(人类智能或者 人工智能 )。
自然语言的特点是不完整、不规范、不稳定,而数学家擅长处理的是类似触屏输入和键盘输入那样完整、规范、明确的信息。比如用户把“前进”说成“千金”,数学家就会按“千金”处理,而语言学家会根据上下文去推断用户本意。
语言学处理的是语义而不是语言文字本身。这种情况在同音词、多义词时会经常发生。比如“我们干死了5个敌人”中的“干”,在语音合成时常常被读成一声,这就是没有思辨,没有智能造成的。同音词和多义词还有规律可寻,不规范表达和错误表达会让数学家完全找不着北。比如“我稀饭你”,“干吗你”,“我对你不感冒”等等。而通过思辨却可以理解这些话的意思。
第四:语言的数据量大到数学方法无法覆盖,用计算能力取胜在处理语义时就如蚍蜉撼树。
围棋的棋盘上有361个点。如果把一个点看成一个词,围棋的各种组合大体上相当于用这361词去写文章。这个数据量用计算能力可以覆盖。但我们常用词有五万多个。用这五万词组的句子得有多少呢?仅仅把由三个词组成的句子全部列出来都是完全不可能的事情。
让计算机像下围棋那样处理语言基本是无法实现的。当然,在一些极其细小的领域还是可以实现的。但如果领域过小,商业价值可能就没有了。实际上就是我们认为的一些细分领域,数据量可能也大到惊人。
综上所述,用数学方法处理语义是不可能做到0错误的。可是语义处理恰恰是一个对错误零容忍的领域。
语言学语义理解技术意义重大,它是一场新的技术革命。
当我们的机器开始能和我们自由流畅对话的时候,触屏、键盘鼠标都会成为非主流,我们的双眼和双手都会得到解放,智能穿戴设备将会取代手机和电脑。语言学语义理解技术除了会改变人机交互的方式。还会提高语音合成和语音识别的准确率,能有效处理同音词和多音词的问题。
总之,作为一项革命性技术,语言学语义理解技术具有巨大的商业价值。
本文已标注来源和出处,版权归原作者所有,如有侵权,请联系我们。