【李白毛洪80:驯兽散记】

李:
@毛德操 说点做开放系统的真实体会,这个体会你可能有呼应。

毛:
我一直都赞同你的呀。所以我劝你写成书,经验之谈,加上理论上的洞见,对后进学子将大有帮助。特别是,当钟摆又摆回来的时候(见【立委译《Church:钟摆摆得太远》(全)】),你这个就宝贵了。

李:
先说针对封闭系统做模型,因为对象是封闭集,可以做到逻辑的完整性,现象 cover 的完备。面对开放集,尤其是自然语言这样的monster, 情况有所不同。大的思路框架和方法论是需要讲究的,但架子里面填血填肉就无法“搞计划经济”。不说摸着石头过河,也差不了太多。很多时候就跟拼图游戏似的,拼拼凑凑,蚕食桑叶一样试图分而解之。

今天从方法论上认真想了一想,觉得拼图或蚕食的路数还不是很确切的比喻,因为二者都没有“厚度”和冗余,只是把一个二维空间填满。实际的情形还有一个pipieline的时间维度,一个“数据流”的顺序在内。

毛:
好啊,要是把数据流的思想和技术结合进去,咱俩就更有话可谈了。

白:
RNN比较体现这个“流”

毛:
有道理。而且RNN不是那种DAG形式的简单数据流。

李:
为了把自然语言这个其貌不扬的毛毛虫(参见【白硕- 穿越乔家大院寻找“毛毛虫”】),模型出个比较逼真贴近的人模狗样来,实际上的工作更像是用橡皮泥在“流”里面一层一层贴面。

每贴一块,重复无用功居多,有用的就是那么一小块儿。可是不能因为有无用功在,就不做这个重复面很大的活儿。换句话说,从方法论上,面对一个 monster,斩不了他的胳臂,就剁他的手,剁手不成先伤其一指也好,活不厌细,活不厌早,最终才能征服他。

在一个pipeline中,条件总是慢慢具备的。不能因为条件只有越到后面越完备,前期就碌碌无为,因为在有限条件下做活儿本身,不仅是完成了部分任务,也同时贡献了条件。因此勿以善小而不为。

白:
i-1肯定不是也不如i,但是i-1不作为就肯定没有i。

李:
正是。具体说就是,如果一个现象在早期可以处置,但是因为条件不好,需要严格限制其范围才不至于 overkill,同样的现象在后期条件好的时候,可以放开一点,做得漂亮一些,做得更具备逻辑完整性和完备性。经验告诉我们,不能因为后期的工作貌似可以涵盖前期的limited的同类工作,因此就不做。面对一个不复杂的对象,当然不必做这种重复而且也做不全的前期工作。但是面对魔鬼,我们还是尽早能做多少就做多少,机不可失,即使时可再来。因为这个貌似重复的小工作也许的确是涵盖在后期的工作中,但是我们其实不知道:(1)在前期到后期的过程中有没有什么幺蛾子出来;(2)即使这本身是完全的重复工作,几乎肯定会在下一步或下几步被涵盖,这件工作对其他相关的周边的事儿可能是有用的,起码增加了确定性(规整性,行话说减少了系统的内熵)。

人有一种精简和概括的冲动,人也总是希望自己不被看成傻瓜,避免重复就是精明的一个表现。但是,面对魔鬼,用力上傻瓜一点其实有好处。当然前提是,那个傻气的活儿是增加了确定性。换句话说,早期工作只要心里觉得是 high precision,不管 recall 多低,都值得去做。high precision 最简单的办法就是把条件收紧,在早期说白了就是一个 local ngram 的拿捏。爱吃红烧肉的毛老最清楚,虽然吃一点肉末不如吃一块完整的红烧肉那样鲜美,但肉末也一样解馋和营养。关键是肉末就好比开胃前菜,吃了它为后来的红烧肉大宴做好了前期试点。

总结一下,能做多少做多少,能早做不晚做,不怕重复,不怕冗余,不厌其烦。毛毛虫就好比一个窟窿,可以用橡胶泥反复去补,层层叠叠,最后把这个窟窿补得严严实实(recall 最大化,但不损伤 precision),虽然窟窿的有些地方是补丁摞补丁,不知道被泥了多少遍。这看上去绝对不是一个漂亮的系统,但却是现实的鲁棒的,敢于面对复杂对象的。

毛:
毛毛虫模型的核心,就在于虫子的长度大于乔姆斯基的直径,即使把它盘起来也容纳不下,总归会露头露尾。所以,问题在于怎样分而治之,乔姆斯基的归乔姆斯基,露在外面的就归别的方法(深度学习是其中之一)。但是我认为抛弃乔姆斯基肯定是不对的,关键在于如何补上用来对付露在外面那部分的方法,并与乔姆斯基整合。@wei 的深度解析就是走在这条道上(白老师也是),我认为很有价值。

李:
@毛德操 其实我的体会是,毛毛虫模型的核心是毛毛虫的扁度超出乔姆斯基及其追随者的想象。乔老爷挥舞大刀,风驰电掣,貌似凭空垒了这么个大院,实际的效果是让许多人画地为牢,以为自然语言就是牢的模样。那太粗线条了,而且院子显得空荡荡的,就好比一个瘦子穿上了宽大的衣服,怎么看怎么不像。

白:
慈禧穿的衣服也没型

洪:
语言工程不唯美,
泥瓦工匠汗水挥。
修补老乔也不累,
茅庐破屋别递归。

毛:
我认为,纯粹的深度学习只能训练出文盲老太太,阅人无数,也知道一些新名词,但没上过学,不懂推理。人总得上学,而学校教的就是符号推理。老太太再是阅人无数,也不会懂 f=ma。

白:
伟哥说的这个时间,是针对开发而言的时间,具体体现就是版本。其实针对运行,也同样有时间维度和流进行迭代的“微版本”。

李:
应邀到北大做了个纯学术的演讲。北大在我们小时候的心目中是何等高贵,从来都是仰望。年轻时进去拍照留念过,羡慕死里面的才子佳人了。进了社科院,貌似与北大近了些,同学同事中北大人越来越多,开始沾上仙气。进象牙塔论道,入乡随俗,就西装革履一些散发点书香味道吧,绝不敢拿大数据忽悠。大数据可以忽悠哈佛(几年前曾应邀去哈佛医学院讲过大数据),却不能忽悠我心中的圣地北大。还有北大的三角地。

【内容提要】
乔姆斯基1950年代末提出的形式语言理论及其层级体系是计算语言学的基石。然而,长期以来,计算语言学界的自然语言处理(NLP)践行者,越来越远离乔姆斯基学派。演讲回顾计算语言学的历史,分析该领域一分为二渐行渐远的足迹。过去30年是NLP主流学界以经验主义取代乔氏理性主义的一代。乔姆斯基对于 n-grams 的批判,没能阻止统计学派利用 n-gram 模型在自然语言领域取得的巨大成功。另一方面,学界的理性主义符号学派日渐式微,究其原因,这与乔姆斯基理论的负面影响有关。乔姆斯基对于自然语言的所谓递归本性的论述,以及对有限状态机制的鄙视,深深影响、束缚并牵累了一代学人。在深入梳理乔姆斯基体系对于自然语言模型的关系之后,演讲最后论述并展示了符号规则学派对于自然语言深度解析和理解的创新和实践。

毛:
最好能有个录音,这样我们也可听听。不行的话退而求其次,整理一个文字稿。

李:
毛老知道,一个演讲哪里会深过两年的恳谈?对于您,这都是立法委员的陈词滥调了。说话已经在尼克群和白老师群促膝整两年了。

毛:
我刚才出门了没看见。立委你真的应该好好整理出一份东西来(叫什么并不重要,讲稿/讲义/概论/指南/导论),系统地讲讲你的见解,然后找个出版社。@立委 你上面的内容提要就很好啊

李:
不知不觉就讲了两个小时,结果只有时间回答一个问题。我本来是要留半小时以上做答问的,想让讲座 interactive,结果一开了话匣子,就忘了时间,很对不起听众。卫东老师主持,也没好意思打断我或提示我。下次类似讲座要小心了,其实还是答问更有意思,也更容易发挥,或借题发挥。很多年不上讲台了,还是经验不足。

邓:
你干货太多。现在这么讲的人不多了。

马:
@立委 你讲座太有激情了。

白:
伟哥讲的一定比发出来的多多了。

李:
@白硕 借用推介了白老师的毛毛虫理论。

Nuva:
内容太多了,每张slide都需要细读

郭:
@立委 你讲座太有激情了。+++
你一定又觉得“我没讲几分钟啊”。

李:
尼克的书我最爱读,尤其是冰冰助理过的。

好多年不读纸质书了,但尼克的《哲学评书》和《人智简史》除外:那是可以一边品茗,一边遐思的。

尼:
@wei 多谢捧场。此冰非彼冰。

施:
为了突出冰冰把白老师和吾等一概屏蔽

李:
羡慕啊。有样学样,哪一天我要是撞了狗屎运出书了,也要来这么一桌酒宴。就怕到时没人捧场,我就拉@毛德操 做炮灰。毛老是本本主义的信奉者。

马:
先预定一个位置

李:
马老师不可食言,这可是动力之源。

马:
@wei 绝对的

李:
山不在高,有仙则灵。酒不在醇,有书则赢。一本书主义与一杯水主义,有的一比。当然,尼克和毛老都是n本书主义了。

毛:
@wei 早就劝你动笔,你这扭扭捏捏的。到时候,席上必得有红烧肉伺候,俺连干三杯。书名都给你想好了: 《Ruminations on NLP》

虎:
我给伟哥定个书名:tame of NLP 驯服自然语言处理,俗称你老婆驯火记

毛:
本本主义不能一概而论,这有两种不同的情况。第一种是功成名就意气风发,于是嬉笑怒骂皆成文章。我二师兄就属于这一种,伟哥当然也是如此。第二种是穷极无聊,看着别人发财的发财,成名的成名(也有升官的升官,但是较少),自己却什么也干不了,唯独在自己电脑上打几个字还是可以的。我就是这种情况。

洪:
伟爷驯服NLP,
狮吼河东至河西。
Deep Parsing深见底,
看破老乔卖手艺。

李:
洪爷好诗,句句受用,飘飘然也。

 

【相关】

【NLP主流反思的扛鼎之作: 立委译《Church:钟摆摆得太远》(全)】

【白硕- 穿越乔家大院寻找“毛毛虫”】

【李白之39:探究自然语言的毛毛虫机制】

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白76:跨层次结构歧义的识别表达痛点】

李:
一个困扰我的问题是跨层次结构歧义的表达:“他要整个高大上的节目献给全国人民”:

“整个”分析成定语。但口语中,它还有动词谓语的可能:“整个”=“整出(创制)一个”。上面示意了一下,为表达识别出来的歧义,这里需要打破 base XP 的框框。第二条依存关系路径是:“要”是谓语“整个”的儿子(情态),“节目”也是“整个”的儿子,是其宾语(O)。值得注意的是,这个歧义表达要求短语内部的定语跳出来做句子的谓语。

白:
其实,有了从句,树已经成了DAG。既做得初一,索性做十五,大面积地画DAG好了。

李:
如上图所示,加上这两条路径,基本就算在同一颗树里面表达了两个 parses 的路径。昨天一直在想这事,感觉与白老师初一十五一样,可以做。不就是需要一个表达手段么?也不影响 formalism 本体。

白:
还是有点两张皮,不是个一贯的东东。

李:
层次纠缠的结构歧义的表达,如果不生成多颗全树,而是表达在一颗树里面,的确不是一个一贯的东西,是两张皮。但是好处也是明显的,经济实惠,共享了句中大部分与歧义无关的依存关系。句法识别这样的结构歧义原则上不难。有“整个”这个词去drive的话,总是可以识别的。

白: O前是表示生产、制作、呈现意义的动词,O后是双宾动词的情况,可以激活“整个”的分解语义。

李:
先不说排歧,因为排歧很多时候人也有难处。咱们先讨论清楚结构歧义的表达。识别完了,怎么表达?需要一点斟酌。因为只有表达合适了,后去才可以用(无论是后去的排歧,或者不排歧提供给人去互动或干预)。关键是,这个表达要好用。后去觉得不好用,那就白表达了。因为大多数其他的依存关系是可以共用的,所以结构歧义,是可以在同一颗依存树里面表达的。

结构歧义在不牵涉 base XP 层次纠缠的案例中,我们已经常用。PP-attachment 就可以把PP既连接到前面的NP也连接到前面的VG谓语。因为所谓的base NP, 这个base是把后面的PP定语排除在边界之外。这样一来,表达起来完全没有层次(xbar)的纠缠问题。还有我以前显示的一个NP既接成VG的S,也连接为O,这些都好办。汉语的兼语也可以表达为前面VG的宾语(O)和后面VG的主语(S)。

在多年的实践中,发现在依存表达中,加入 base XP 的短语结构,会带来很多很多便利。结果就人为地在本来应该没有非终结节点的纯粹的以词为基础的依存树里面,强加了这个 XP 的表达。这样一来,就出现了结构歧义的层次纠缠问题。如果当时决定从base XP更进一步,允许XP的短语结构有嵌套,那么PP-attachement中的PP就可能成为一个扩展的NP里面的成分。这时候,PP再拿出来做谓语的状语,就同样面临层次纠缠问题。这表明,这一切都是人为的。是我们为了方便做了权衡的一种表达方法。关于这种baseXP 短语结构与依存关系的 hybrid 的好处,新来的朋友参见:《新智元笔记:基本短语是浅层和深层parsing的重要接口》。在多数时候,它的确是方便的,短语这一刀给我们带来了极大的便利,但在层次纠缠的结构歧义表达时候也给我们带来一些不便。不便之处,花点功夫可以克服。人为的东西都是可以人为克服的。

对于结构歧义在同一颗依存关系树上的表达,后续的应用,需要专门为这种表达写一个歧义检索程序,用起来就没有问题了。这个检索算法,我昨天想了一下,也不难。你从任一个节点出发,一路遍历它的子子孙孙。如果其结果是树上的所有节点都访问到了,那么这个节点就是天王老爷。如果有多个天王老爷,就说明有结构歧义。就这么简单。因为依存关系的结构原则是,有且仅有一个天王老爷。多了,就是歧义。在我们的“整个”的那句案例中,从“要”出发可以遍历。从“整个”出发,也可以遍历。其他的所有节点都不具有这个遍历终结节点的可能。白老师,这样有问题么?

这个方案纯粹是一个所谓 side effect 的工程,不牵扯 formalism 本体。只要想做,找一个不笨的工程师就可以做:歧义结构的依存关系表达,以及歧义结构的依存关系检索。至于检索后的应用,那是下一个系统(IE或其他语用模块)的问题,不是句法的问题了。句法合适地识别了歧义,又提供了检索接口,可以说是仁至义尽了。

这一讲的题目可以叫做NLP中“跨层次结构歧义的识别表达痛点”。

其实,也不算太痛。就是messy一点,做总是可以做的。Note:这里讨论的问题与传统 parser 生成了许多个伪 parses,鱼目混珠、沙多珠少的情形不一样,这里说的是具有相当确定性的结构歧义。不是伪 parses 成堆的传统 parser 里的那些 false alarms。这些歧义的识别大多是细颗粒度或词驱动的句法都可以预示和搞定的任务。如果上述方案实施了,就引导句法开发者多在识别上下功夫,而不要浪费资源做那些搞不定的排歧任务。前者是 tractable 的任务。

前几天提到的“一张嘴”的词启动歧义识别也是如此:

后一个 parsing 由于词驱动的 hidden ambiguity 没有表达,现在是错的。 但是如果照上面的方案解决了歧义识别表达的问题,就可以把另一个可能挖出来。

刘:
我是一只特立独行的猪,这个结果会是咋样呢?

李:

“结果”取了副词的用法,也说得过去,但错过了其名词的用法,虽然总体语义无大碍。

这个也有一个错,“树”应该做定语的,可是分析成“看”的宾语了,大局没错。

这些漏掉的歧义结构,从道理上都可以识别,如果歧义表达和检索按照今天说的方案那样到位的话。不过做起来还是有些繁难,以后再说吧。要点就是,对于一个已经基本对于 false parses 免疫了的细颗粒 parser 而言,与其追求不大切合实际的结构排歧,不如把下一步的重点放在歧义识别、表达和检索上。

首发科学网 《新智元笔记:跨层次结构歧义的识别表达痛点

【相关】

Chomsky’s Negative Impact

【语义计算:李白对话录系列】

《朝华午拾》总目录

 

【李白洪毛75:乔姆斯基批判】

【原立委按:微信泥沙龙,谈笑鸿儒,高朋满座,信马由缰,言无所忌,摘之与同仁分享。】

李:
今儿个咱要吐槽乔老爷,不吐不快。

开题:乔姆斯基,对领域的误导,或负面影响,与他对语言学的革命性贡献,一样大。

他的hierarchy,是天才绝顶的理论,是不可泄露的天机,从而奠定了形式语言的基础,用来创造、解释,或编译计算机语言,是完美的指导。可是,完美往上走一步,就成谬误。乔姆斯基拿这套理论,硬往自然语言套,导致整个领域,在所谓自然语言是free,还是sensitive,还是 mildly sensitive等不靠谱的争论中,陷入泥潭。太多的人被引入歧途,理所当然地认定,因为自然语言复杂,因此需要 powerful的文法。这个 “powerful”,是世界上用的最误导的词。

工程师发现,有限状态好用,但经不起理论家的批判:你那玩意儿太低级,不够 powerful,只能拿来凑合事儿。实际上,做过大工程的人都明白,对象的复杂,并不是使用复杂机制的理由,有本事使用简单机制对付复杂的对象,才是高手。

乔姆斯基最大的误导就是,用所谓自然语言的center递归性,一杆子打死有限状态,他所举的center递归的英语实例,牵强和罕见到了几乎可笑的地步,绝非自然语言的本性。结果一代人还是信服他了,彻底地被洗脑,理所当然以为必须超越有限状态才可以做自然语言深度分析。

为了所谓语言的递归性,人脑,或电脑,必须有个堆栈的结构才好,这离语言事实太远,也违背了人脑短期记忆的限制。世界上哪里有人说话,只管开门而不关门,只加左括号不加右括号,一直悬着吊着的?最多三重门吧,一般人就受不了了。就算你是超人,你受得了,你的受众也受不了,无法 parse 啊。说话不是为了交流,难道是故意难为人,为了人不懂你而说话?不 make sense 嘛。

既然如此,为什么要把不超过三层的center循环,硬要归结成似乎是无限层的递归?

毛:
递归成了他的宗教。

李:
不错。乔老爷的递归误导语言学,坑了NLP太久。我对他的语言学不感冒,对他对NLP的误导,更感觉痛心。一个如此聪明强大的人,他一旦误导就可以耽误一代人。被耽误的这一代是我的前辈一代(上个世纪70年代80年代),他们在自然语言理解上的工作几乎一律为玩具系统,在实际应用上无所作为,从而直接导致了下一代人的反叛。老一代被打得稀里哗啦,逐渐退出主流舞台。

在过去30年中,统计NLP的所有成就,都是对乔姆斯基的实际批判,因为几乎所有这些模型,都是建立在ngram的有限状态模式的基础之上。

洪:
从乔姆斯基的所作所为,就能分出构造机器智能和解构人类智能难度上的差异。他五十年代略施小计就把形式语言夯成了计算机的Cornerstone,可是穷毕生精力,总是在重构其语言学理论。

毛:
如果没有乔老的那些理论,人们能做出计算机语言编译吗?)

洪:
语法mapping到语义,总是要做的,不必须用形式语言,就像现在做nlp的人也不必须懂语言学。还是 David Marr,David Rumelhart 等立意高远,总想找到人机等不同智能实现上的共通计算机制。

刘:
Marr 也是人神级别的

毛:
跟上面问题类似的是:如果没有图灵和冯诺依曼的理论,人们会造出计算机么?

洪:
Babbage的分析机可行,Ada的程序/算法也早可行。其实,问题不在于出冯诺依曼还是马诺依曼,问题在于,不管他们的理论表面上如何不同,可能都受同样的约束,能力上可都能都等价。而Chomsky 研究的是这些约束能力。

毛:
那图灵不是更加么?

洪:
Turing 从机器一侧,Chomsky从人一侧。)

李:
洪爷说的是事实,过去三十年不懂语言学做NLP的占压倒多数。但那不是健康状态。不过,语言学里面也很混杂,进来的人很容易迷糊。但是,语言学里面确实有一些指导性的东西,了解与不了解大不一样。比如索绪尔,就值得琢磨。索绪尔说的大多是原则性的,有哲学的意味,是传统的非科学性的语言学,特别具有宏观指导意义,可以提醒自己不至于陷入细节的纠缠,而忘记了方向。他谈的是共性与个性的关系,语言和言语,规则与习惯,共时与现时,都很洞察、到位。

白:
我觉得线速、柔性很关键,多层次递归和远距离相关必须搞定。方法不限,八仙过海。

李:
那些已经搞定了,伪歧义也不是问题,都搞定了。有一种叫做cascaded FSA的方法,与软件工程的做法极其类似,就能搞定这些。前提是指挥者架构者不能失去全局,要胸怀索绪尔,而不是乔姆斯基。架构和interfaces设计好,下面就是模块的开发,匠人的干活,可以做到很深,接近逻辑表达,比典型的chomsky CFG文法深透。传统规则系统受乔姆斯基CFG影响太大,很不好用,而且也无线性算法,所陷入的困境与当年神经网络以及一切单层的统计系统类似。正如多层的深度学习被认为是AI的突破一样,有限状态一多层,一 cascade,以前天大的困难,递归啊远距离啊伪歧义啊,就消解于无形。

白:
数学上的函数复合。

李:
就这么一个简单的道理,结果至今批判规则系统的人,还在打稻草人,以为规则系统都是CFG那么愚蠢和单层。

乔姆斯基对nlp的误导,还在于它的短语结构的表达法。那个phrase structure破树,叠床架屋,为了追求所谓语言共性,太多的assumptions,既不经济也不好用,却长期成为 community standards,误导了不知多少人。起码误导了 PennTree,通过它误导了整个领域。,

白:
某种意义上,nlp是应用驱动的。与应用匹配,Ngram也不算误导。与应用不匹配,HPSG也算误导。抽象的误导不误导,让语言学家掐去吧。一个topic问题,扯了这么多年。)

李:
语言学家打烂仗的事儿多了,说起来这与乔老爷也有很大关系。有个 self,相关的所谓 Binding Theory也是论文无数,大多垃圾,这与老乔的负面影响直接相关。为追求 universal grammar,和脱离语义的generalizations,走火入魔,大多是无谓的口水战争,既不能推进科学,也不能推进应用,唯一的好处是帮助了很多语言学博士的选题,培养出一茬接一茬的语言学博士。可是,毕业了还是找不到工作。老乔由于其超凡的智力和名气,帮助提升了语言学的地位,但他没有能力影响市场,结果是全世界语言学家过剩,懂得茴字五种写法的落魄腐儒,如过江之鲫,谁能给他们就业机会?

这里面的要害在,所有的语言分析,不可能为分析而分析,都是为了求解语义的某种需要,可老乔强调的语法纯粹性,要脱离语义才好研究终极的机制,这个argument有历史的革命意义,有某种学术价值,但非常容易形而上学和片面化,结果是语言学家脱离了目的,脱离了需要,在争论一种分析,或一个模型与另一种的优劣。其实这些相争的方案,只要系统内部相谐,都大同小异,根本就没什么本质区别,而且没有客观的可量度的评判标准,那还不打成一锅粥。

刘:
摆脱语义,直接进入语用?

李:
哪里,乔老爷是要直接进入共产主义,要世界大同。他对语义不感兴趣,更甭提语用。语义在他属于逻辑,不属于严格意义的语言学。句法语义是分割开来的两个范畴,句法必须自制。

白:
句法自制是错误的。

李:
对传统语言学完全不分家的那种分析,老乔有革命意义,也确实推进了结构研究,但凡事都是过犹不及。句法自制推向极端,就是本末倒置,失去方向。

我做博士的时候,在一个小组会上,举一些汉语的例子,作为证据反对一刀切的句法自制,说老乔有偏差,看到的语言事实不够,结果被我导师劈头盖脸批了一通,言下之意,不知天高地厚。我当然口服心不服。问题是,我一辈子只思考一个问题,只要醒着,头脑里除了语言,就是文法,除了词汇,就是结构,突然有一天觉得自己通达了,看穿了语言学上帝,乔姆斯基。原来,智商高,不见得离真理近,智者乔老爷,也不例外。有人说老乔外语不大行,看到的现象大多局限于英语,偏见难免。的确,懂汉语的人很难完全信服什么句法自制:句法形式的约束和语义的约束很难截然分开,否则连“我鸡吃了”和“鸡我吃了”都搞不定。

说起外语,到了我们的年代,俄语退居其后了,所以我本科的二外选的是法语,到研究生才选了俄语做三外,不过全还给老师了。虽然语言是还给老师,体悟到的语言学却长存,所以也不冤。到 30 年后的今天主持 multilingual program,带着参考书,我还一样可以指导法语和俄语的 NLP 研发,语言的不同,换汤不换药也。

洪:
老乔不是上帝,他只是让咱看到来自造物主的理性之光。

李:
形式语言理论,非人力可为,绝对属于天机,单凭这,乔就是人神。吐槽乔老爷,一次抱怨完,明儿依旧是偶像。

不管我怎么批判乔姆斯基,我还是服他到不行:他老人家的威望可以把 Universal Grammar 这种乍听很荒唐的观念,转化成一个让人仰视的语言哲学理念。UG 的真理之光由此不被遮蔽。当然最厉害的还是他的 hierarchy 形式语言理论,那几乎不可能是人的理论,那是上帝之光,尽管乔老爷在描述的时候,不免机械主义,hence 造成了极大的误导。

话说回来,没有自然语言的数学化研究和启示,他老人家也提不出形式语言理论来。至少从形式上,他能把人类语言和电脑语言统一起来,达到一种人力难以企及的高度。如果没有乔姆斯基,电脑理呆们打死也不会对词法分析,句法分析,语义求解,parsing 等感兴趣,并如数家珍地谈论这些语言学的概念。这是其一。

其二,正因为乔老爷自己也知道他的形式语言理论的抽象过头了,难以回到自然语言的地面,才有他穷其一生在自然语言的语言学方面的继续革命,革自己的命,花样翻新,试图找到一个终极的普遍文法的自然语言解构。这次他就没有那么幸运了,虽然在学界依然所向披靡,无人能敌,但却与电脑科学渐行渐远,被连接语言学和电脑应用的计算语言学领域所抛弃。也许不该说抛弃,但是自然语言领域大多把他当菩萨供起来,敬神鬼而远之,没多少人愿意跟他走。

首发科学网 【泥沙龙笔记:乔姆斯基批判

【相关】

Chomsky’s Negative Impact

【语义计算:李白对话录系列】

《朝华午拾》总目录

 

《立委随笔:做一条程序狗,外加哲学猫》

最近脑海里老浮现卓别林的摩登时代的镜头。软件工程的摩登时代就是大数据迭代。我就迷信这个迭代。

自从工程架构师把 pipeline 转起来以后 我就可劲儿往里面填数据(raw data),填鸭似的 反正是 raw 的,领域数据不嫌多。 结果就造成摩登时代的再现。Server 不用吃喝 连油都不用加,24 小时在那儿转呀,人停机不停。人就被赶着去看结果 做 regressions 测试呀。人的本性,眼里揉不得沙子。只要醒着,看到毛病就冲动,忍不住会动系统,就好像是本能迭代。气还没喘匀 新一波结果又出来了。好奇心杀不死科学家 ,但能杀伤码农呀,赶紧去看结果。real world 大数据嘛 啥都有 结果肯定是喜忧参半。看到高兴处 可以得意片刻,更新 baseline,让进步消失在数据海洋中。不高兴呢,就本能要改进系统,于是陷入人机交互的迭代“死循环”。

人被数据赶着走 等于是被 bug reports 赶着走,只不过缩短了 reporting 的过程 把客户的可能抱怨化为开发者自我的反省。只要数据真实对路(来自应用领域),量足够大不怕 over-fitting,bugs 至少是扎眼的 bugs 就会消灭在萌芽中,消灭在摩登时代的开发工程流程中。在如此流动型连续迭代中提升品质,多么爽,时时刻刻都有成就感。

只不过累得成了狗。程序猿成了程序狗。


但累,并且快乐着。

聪明的 AI 科学家希望这个迭代过程是全自动的。这边只要不断喂粗饲料 (raw big data),那边就无数次迭代出来一个智能理解系统,多么美丽的神话。据说机器认识猫 就是这么出来的,的确非常激动人心。希望某一天机器理解语言也能这么给整出来,比儿童学语言,效率高亿万倍。在那一天到来之前 我就做条狗 跟摩登时代拼了。

胡乱感慨一句。

昨天跟老搭档聊天谈做研究的人与做产品的人的不同。他非常感慨 特别是年轻人 说这些年轻人大多名校毕业 特别聪明 做 AI 大数据 算法玩的很溜。可就是不懂工程迭代的必要性 也没那个耐心。老以为 AI 产品可以一蹴而就。


大哲牛顿(Nutan)啊 在深思。

猫和狗很有比照 懒猫勤犬。但一个埋头拉车;一个老在深思,做哲学家,路都不屑看,可脑袋并没闲着。

哲学,尤其是对体系架构以及机制(formalism)的设计哲学(design philosophy),其实是极端重要的,否则程序狗再勤奋,也成不了大事。哲学猫架构好了话,程序狗多多益善。否则就可能叠床架屋,知识越多越不堪重负,最终导致系统报废,这是有前车之鉴的。

记得某年某月有个面试官问过我,假如经费没有限制,你希望做什么?这种所谓考验想象力和创造力的题目听上去很弱智:你说老实话吧,显得没高度,说大话吧,譬如学着谷歌说要解决人类长生不老的终极问题,或者学着扎根伯格的口气说要彻底根除人类疾病,或学 Elon Musk 说要帮助地球人移民外太空的话,又有些痴人说梦,因为这个世界只有不到10个超牛才有说梦而不被视为白痴的资格和本钱。其实心里的答案也是有的,就是:假如经费没有限制,我就做个50% AI 哲学猫和50%的 NLP 驯兽师,然后雇佣并培训 1001 条程序狗,买断天下的领域大数据,每天就指挥程序狗做各个领域的语言理解的迭代,扫平语言障碍,建成世界大同的巴比伦通天塔。

 

【相关】

[转载]【白硕 – 穿越乔家大院寻找“毛毛虫”】

【李白之39:探究自然语言的毛毛虫机制】

【科研笔记:NLP “毛毛虫” 笔记,从一维到二维】

【语义计算:李白对话录系列】

《朝华午拾》总目录

 

【李白宋毛72:NLP的测不准与追求完美】

李:
这两天琢磨中文词的扩展中的交叉现象,很有意思:

1. 选择疑问句谓词(P)模式 【P 不 P】: 学不学; 能不能;好不好
2. 动补(V-Buyu)词的可能态模式 【V 得 B】:学得会;可能态否定式【V 不 B】:学不会

12交叉: 学不学得会 ?
回答是:学得会 / 学不会 (或者:能学会 / 不能学会)

上述两个扩展模式也可以倒过来交叉,于是我们有 21 交叉:

学好
--> 学得好; 学不好
--> 学得好不好?

回答是:
学得好,学得不好,而不是 学得好, 学不好

后一种交叉,实际上用的 更多的不是“得”而是“的”:

学的好不好?

谓语重心落在“好”上,而不是“学”上。这与前一种交叉不同。很有意思的现象。

白:
得字后面的补语,有定性定量之分。“接不接得住”可以,“接得住不住”不行;“打不打得倒”可以,“打得倒不倒”不行。所以“住”、“倒”是专司“定性”的,是一个二值的状态,没有程度之分。另一方面,“扎不扎得紧/扎得紧不紧”“拴不栓得牢/拴得牢不牢”都能说,但补语“紧、牢”对应的是一个连续度量,但又有一个预期的极化状态阈值。所以,面临可能补语与程度补语的句式竞争时,可能补语占优势。第三种情况是“长不长得高/长得高不高”,补语“高”并不见得一定是预期的极化状态,“高不高”只是一种关于程度的中性的疑问,这时,程度补语就反过来压制了可能补语。第一种,纯定性,只能是可能补语;第二种,强定性弱定量,可以是程度补语但是与可能补语紧耦合;第三种,弱定性强定量,程度补语与可能补语松耦合。

长不长得高,和长得高不高,完全两回事。

李:
长没长高
== 长高了没长高
== 长高了没有

但是: * 长没长得高

白:
长高,相对于自己;长得高,相对于平均水准。程度补语。

可能补语的“长得高”,对成年人是梦想,对小孩是废话,除非侏儒症。所以可能补语义微弱。否定形式“长不高”则信息量大。对小孩,形同诅咒。或者,是成人身份的一种变相认同。

“没”是现时的未然,程度补语无论肯定否定,都是现实的已然,语义上也不相谐。可能补语与“没”结合,参照时点一定移到了过去,如:“谈没谈得拢”。现时已经出结果了,只有过去某时点上这还属“潜在”。

所以,“学得好不好”本来是关于程度补语的疑问,到了“学没学得好”,就变成了关于可能补语的疑问了。

李:
分析得好 细致入理。

谈没谈得拢 只有天知道
谈不谈得拢 就看你本事了。

上次白老师说分词 (大意):分词不仅是切 还要粘。至理名言。
句子就跟西瓜似的 可以拿着刀?来切;但字就跟珍珠似的 也可以拿串子来粘它、串它(concatenation)。结果都是 词,我们建筑语言大厦的砖瓦。这砖瓦必须有来路出身 有档案背景,因此目标也算是明确,即,所谓词应该是“词典的词”。词典就是档案 背景全部可在其中绑架,才能支持语言理解。

最有意思的是离合词,因为离合词不仅要串,而且还要跳着串。“谈不谈得拢”, 这个 5-gram,需要分词分出 “谈拢” 来 才算分词到家。

谈不谈得拢 == 谈得拢谈不拢 == 能谈拢不能谈拢 == 能谈拢 还是 不能谈拢

说到底 都是围绕着动补词 “谈拢”。 其他的小词(function words)或重叠(reduplication)手段,不过是给这个核心谓词语义添加语法意义而已: 诸如 疑问(选择问句)、时体、情态。

宋:
年满18岁,具有本地户籍,在本地居住满十年者

汉语的现象说明,词不一定是单向连续的短字符串,不一定边界清楚。非词语素和词的界限并不是绝对的。

李:
这个quasi-后缀“者”, 以前论过,它要求的是 VP,而不是 V。严格说不是 VP,而是 谓语 Pred。如果主语 NP 后面接谓语 VP 的话,那么总可以把主语去掉,加上这个“后缀”,来构成一个带有定语从句的 NP:VP者 == VP的人,这个 “的” 带的是定语从句 VP 。

当然实际语料的分布中,会发现 80%(?) 以上的“者”之前的 VP 其实就是一个 V ,所以把它当成英语的 -er (-or)一样看成是词的后缀,可能会带来一些便利,但必须留个 VP 的后门,来对付 定语从句的 VP 很长很复杂的状况。

宋:
手工业者

李:
“手工业者” 算是 另一个用法 看扩展性决定是细线条的规则 还是直接枚举入词典。

白:
者---N/S
关键是辖域、分配律。

李:
“者” 翻译成英语应该是 whoever+VP,不是简单成为 V-er 就可以顾全的。Whoever 是主语的形式,放在谓语前,与中文的结构关系类同,“者” 不过是放在谓语后而已:

年满18岁,具有本地户籍,在本地居住满十年者有资格报名。
--》
Whoever VP(年满18岁,具有本地户籍,在本地居住满十年) is qualified to sign on

白:
“子女不服管教者,配偶不在本地者”

不是主语,是领项,反填至N/N的残坑。

李:
fun,then,those who/whose

汉语的大主语(或 Topic 或“领项”)是一个中文里蛮独特的句法语用混杂的现象,对应英语的结构,错综复杂一些。

白:
其实从填坑角度看就是一个纯句法现象:一坨,有个坑,萝卜可填。至于这个坑怎么来的,最初长在谁身上,不重要。其实就是一个纯结构现象,无关语用。只要摆对解读结构的正确姿势,它就自然浮现。

李:
“子女不服管教”,这话听上去感觉不完整 虽然主谓齐全 因为有个坑没填萝卜:“【谁(的)】 子女不服管教?”

“心脏病不好治。”这话听上去感觉是完整的,虽然也可以问,【谁的】心脏病不好治?

白:
有隐含的logical quantifier

李:
“心脏病” 有坑没坑?还是说 这坑有强弱之别?
“子女”对 【human】 的坑,强过 “心脏病” 对 【human】 的坑,后者信息量也更大,更需要满足。

宋:
老王的子女不服管教。老王的子女不服管教者被老王打了一顿。

李:
这里,“老王的子女”是全集,“【其中】不服管教者”应该是个子集。

“子女都是不服管教的。” 这话就显得完整了: 因为全称小词“都”虽然 mod 的是 VP,但却作用于 NP“子女”,使得其坑显得没有必要填了,因为隐含的坑就是 “【所有人的】子女”,与 “心脏病” 同:“心脏病”的坑隐含的默认萝卜也是“所有人”。

老年人的心脏病不好治。
心脏病其实不难治,但老年人的心脏病除外。

上句的第一个分句,默认萝卜是 for all human;第二个分句 做了显式的限定,修改了默认值。

回到原问题:到底坑有没有必要区分强弱?

作为对照:及物动词肯定是有强弱的。有的必须要宾语(“善于”,“赢得”),有的最好有宾语(“喜欢”,“看见”),有的可有可无(“呼吸”,“诊断”),没有的话,大众心理就补足了一个默认值,从本体(ontology)来的默认: “呼吸【空气】”,“诊断【疾病】”。

白:
“心脏病不好治。心脏病不会治。心脏病不去治。” 谓语不同,对“心脏病”的坑有影响。第三个例子,最不完整。

李:
心脏病不去治,【你】不想活了? == 【你】心脏病不去治,不想活了?
心脏病不去治,【你】治啥?== 【你】心脏病不去治,治啥?

第一个【你】应该是病人,第二个【你】可以是医生。第一个【你】直接填“心脏病”的坑。第二个【你】作为医生,与“心脏病”的坑没一毛钱关系。

白:
是。对举可以削弱“萝卜的坑”。本来有一毛钱的入账,又有了两毛钱的债务。结果欠了一毛钱。成了别人家的坑

李:
最近想,退一步才好进两步,可谓真理。一辈子能够退一步的时机不多,总是忙忙碌碌,随波逐流,人在江湖,身不由己。如果因缘巧合遇到了退一步的机会,那么一定要惜缘。追求完美,不留遗憾,其实是常态生活的奢侈,但也可以是退一步的境界和机会。

为什么退一步反而可以追求完美不留遗憾呢?因为在高歌猛进的人生中,没有时间喘息和反思,难有机会从根子上改造,肩负的是历史的负担。只有在退一步的时机,才有可能重起炉灶,把历史负担当成经验教训的积淀。虽然慢了一拍,但磨刀不误砍柴工,最终可以更加完满。历史上,苹果公司的操作系统就在乔布斯的指挥下重起炉灶大放异彩。可怜的微软就总没有这样的机会,补丁摞补丁过了一辈子。

胡乱感叹一哈。

量子力学有个测不准哲学,其实对于语言学很适用。语言作为交流的工具,宏观上的可理解性是没有问题的。但是,测不准原理表明:从本质上来讲语言学不能做出超越统计学范围的预测。语言理解系统无论怎样逼近,永远也不可能在微观上 capture everything。那天白老师给了一个很妙的例句,是:“马可波罗的海上旅行”,让通常认为非常坚固的 4-gram 词 “波罗的海” 被另一个 4-gram “马可波罗” 遮盖了。可以设想一个分词系统的第一版本是 assume 4-gram 词以上就是正确的(实践中,匹配上 tri-gram词就相当靠谱了,这可算是一个分词的经验公式 heuristic),可以 identify 词及其概念。但对于上例,这个系统从最左向右匹配,赶巧就对了;若从右向左走,就错了。

毛:
有道理。这个例子确实巧妙。

李:
咱们进一步扩大疆界来逼近真实,就算搞定了 6-gram “马可波罗/的/海" (Note: 前一篇李白对话【李白71:“上交所有不义之财!”】中说过,其实搞定 5-gram 就可以认为是搞定了汉语分词,因为 5-gram 几乎是 local context 的极限了),咱们这就突破这个极限看看......。我要说的是,我们总可以找到一个context,使得以前的任何分词(及其分析)无效。

“我的朋友生了个双胞胎,绰号很奇葩,先生出来的叫千里马,后出来的叫波罗的海。我告诉他绰号也是有讲究的,有的可有的断断不可。千里马可波罗的海不可!(Note: 千里马/可/波罗的海/不可)。”

“朋友问为什么,我说因为有个测不准原理。千里马本体毕竟是动物,与人不远,可用。波罗的海本体自然物体,无法联想到人,故不可用。”

“马可波罗”乍看何其强大,甚至大过“波罗的海”(毕竟里面藏了一个万能小词“的”,是它的硬伤),也逃不过测不准的限制。最后大胆假设一下,立委牌中文深度分析器(deep parser)神奇地利用 long distance 句法或 休眠唤醒机制 帮助突破 local context,搞定了“千里马/可/波罗的海/不可” 的分析理解,so what?总还是会有“测不准”在,譬如:

“我舰/日航千里/马可波罗/的/海/不可/阻挡。(或曰:固有波罗的海,哪里有什么马可波罗的海?曰:先生一叶障目,知其一不知其二。马可波罗的海,乃印度洋别称也。)”

牵强?然而场景合理,语句合法,概率不是0。

想一想测不准,咱们搞AI,搞NLP的,怪丧气的:系统完美,只在梦中。但反过来想,其实是对完美主义者的有益警示:追求系统的完美和静态高指标从来不(应该)是核心目标,领域化能力和动态指标才是系统打遍天下的硬通货。不要想完美的事儿,只是要问:给你领域大数据,你多快可以让系统进入角色,让它上线转起来服务业务,然后对于 bug reports 的反应和修复速度有多快,系统在使用中日臻完善,虽然永远不会完备。

所谓追求完美不留遗憾,正解应该是对于架构和formalism的近乎受虐的追求,为的是到用的时候,到领域化的时候,到修复 bugs 的时候,可以庖丁解牛游刃有余。

毛:
你这个事情的性质不属于测不准,而属于词法/句法的不完备。测不准是对每个粒子而言的,每个粒子的位置和速度都有测不准的问题。而你讲的这个情况,是说不管什么样的词法/句法都有对付不了的特例,这就是不完备的问题。

李:
资源的不完备(不可能完备),在我就是系统的测不准,貌似也就是原观测对象的不确定性。

白:
@毛 是进出不同层次没有违和感导致的。一个字当作一个字,和一个字当作语言中的词的部件,是处在不同层次的。人偏偏要搅和在一起玩。这样会闹出悖论的,不过,NLPer似乎并不关心。

【相关】

【李白71:“上交所有不义之财!”】

【立委科普:歧义parsing的休眠唤醒机制再探】

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白董冯吕64:NLPers 谈 NLP 渊源及其落地】

董:
冯老师,姜博士,李维,白硕,宋柔老师,这个系统正式上线前,想先请各位看看,横挑鼻子竖挑眼。这个系统是去年6月开始开发的。时间短。最近几个月更是忙得厉害

李:
刚发朋友圈了。“中国nlp老前辈董老师的知网支持的平台 值得关注 推荐。世界上自然语言理解的深度 董老师是最深的了。逻辑语义的开创者。三十多年的智慧和知识积累 董振东老师是 让我辈高山仰止的语义巨人(见 科学网《语义三巨人)。【语知科技】多语种NLP平台正式上线。  demo.keenage.com

冯:
董老师,语义理解,还是要依靠规则。深度学习不行!

李:

Manning 教授昨天座谈时说 最近三年是他一辈子做nlp感觉进步最大的三年 他主要指的是深度学习。曼宁是一位一直强调语言结构和理解的老教授 NLP最知名的权威了。他的感受应该是真切的 不过来不及细问他 这种感受多大程度上是基于深度学习在语音处理以及mt方面的突破性进展,文本方面其实目前很难说深度学习引发了革命。不过 word embedding 还有什么 adversary 学习方面 开始在词汇语义级发力 有些结果令人印象深刻。parsing 要等到深度学习能把 parsing 落地为应用 才值得侧目以待 目前不行。曼宁教授还是很学究 甚至有些腼腆的气质 现在火得不得了 也是时势使然。ai 一热 nlp 就热。病急多投医,nlp各路 也跟着提升了在ai中的地位,I guess。

董:
@李,你说的让我脸红了。我在研究上是个工匠,做学问认死理。我研究语义,是叫当年的机器翻译研究逼出来的。什么是理解?什么是常识?什么是知识库?人的知识是如何建构的?我后来的感觉人是用“少”,而非用“多”来计算语义的。你常说起的Cyc,是“多”的典型。语义的关键是“关系”,而分类只是语义关系的一种。近年我们开发了基于知网的翻译,最近一年开发了中文分析,从学术的观点看,是为了考验知网,是为了给自己30年前的设想做个交代。这个交代既是给自己的,也是给别人的。告诉人们哪些努力是值得的,哪些努力是仍然无法圆满成功的。

李:
董老师退而不休 能够完成心愿 给我们留下的这笔知识财富 我们需要时间咀嚼 消化 但我坚信这种影响是深远的。潮起潮落 有些东西是不变的。语义及其语义研究的一些方法 具有相对恒定的价值 好比金子 总会发光 这个没有疑问。ai 中真正懂 nlp 特别是 nlu 的人不多,好多声称nlp的专家 只是做过自然语言的某个端对端的应用 专家做 text NLP与他做Visual 做 audio 做生物DNA 是一样的路数和算法,不过是数据不同而已。没有啥语言学。

白:
佩服董老师的执着和务实。如果说哪里还差点什么,就是对于“多个爹”的刻画机制问题。

董:
白硕说的对。“多个爹”是我们想做的新的探讨。两个问题我们遇到的:一是“是不是个“爹””,如何在文句中正确的确定那个“爹”。

冯:
有的作自然语言理解的人不关心语言学。词向量效果不错,理论机制不清楚。

李:
戏不够 词来凑。语言的分析理解主要有两个支柱,一个是词汇 吕先生称为珍珠;一个是结构 称为串子。传统说法是没有串子 做不了语言理解的项链。

白:
@冯志伟 词向量是保运算的降维,数学上是清楚的,但是跟理解搭不上钩。

李:
所以我们这些擅长 deep parsing 的人就开始看不起只看到珍珠的人,但是 其实二者的 overlapping,从完成nlp任务的角度 作为两种证据源 其实是相当地大。因此善于把 词模型 词向量模型用到极致的人,有时候的确产生了让我们意想不到的结果。

冯:
珍珠和串子是缺一不可的!

白:
如果每颗珍珠都有插销插座,确实可以不用串子。或者说,寓串子于珍珠之中。

李:
我的意思是 我们多少有些老古董了。虽然可以继续执着下去 也的确可看到一些我们擅长的nlu工作 词模型似乎根本就没有可能赶上来。但还是应该保持一种 open 心态。

白:
开开脑洞还是必要的。
词负载结构是好东西。

冯:
我们要关注词向量的成果,更要问一个为什么?

李:
对 应该探究这种表达的背后。

白:
设想回到老乔刚冒泡的年代,那时的语言学家怎么看老乔?

李:
其实我最早读乔姆斯基的转换生成语法的介绍的时候,非常看不起,觉得就是儿戏。那还是在 1982 年备考语言研究所刘老师的机器翻译研究生的时候不得不临时抱佛脚,了解一些计算语言学的基本概念。此前我做过英语教学多年(包括插队做民办教师),从中学做学生的时代就教别人的英语句法分析,主动语态被动语态等转换烂熟于心。觉得老乔演示的那些转换生成案例,太低级 太常识 太机械 乏味,太不具有神秘感。直到后来学形式语言理论 才生出崇拜感。

白:
说实话,如果知识结构跟不上老乔,恐怕根本没有跟老乔PK过招的可能。

李:
人岁数大以后的一个好处是,可以直抒己见,没有啥顾忌。我其实在读博士做汉语形式研究的时候,就对乔老爷的句法独立句法自足论极为不满,就在 seminar 指出乔老爷错了,离开语义,汉语句法形式分析搞不定。被我的导师劈头盖脸一顿轻蔑,大意是:你不知道天高地厚,一边去。被哑口很多年过去,我还是发扬光大了当年的批判。

冯:
我在57年读到乔的三个模型就开始崇拜他了!

李:
是啊,一个理论把自然语言与电脑语言形式上统一起来,使得电脑语言编译越来越像语言学,这种抽象让人震撼。震撼过后的很多年 就是对乔老爷的不断扬弃和批判,批判的主要点还是源于他的抽象:是赞也抽象,批也抽象。的确 他把电脑语言带进了语言学,居功至伟 。同时他也把自然语言带进了坑里面,误导了太多的人 整整一代人。(详见:《立委:乔姆斯基批判》 )。

白:
@wei 你那不算是语言学的批判,只是工程视角的批判。他是语言学家,但从未承诺过NLP什么。NLP掉坑里也是自作多情

李:
我们下意识还是 认定他应该引领nlp 和 cl,结果是他越走越远 越走越邪门,nlp 已然与他无关了。

白:
他不管工程,不管技术,只管数学。

李:
结构分析中的叠床架屋 使得过程中夹杂了太多的 assumptions,看上去高度抽象 追求共性 实际上是越来越像空中楼阁。当然 我肯定戴了有色眼镜,做了一辈子nlp 对纯语言学很难批评得中肯 只是一种感觉而已。老乔的语言学 对于绝大多数NLP践行者包括在下,都是供在菩萨庙里面的 只膜拜 不 follow。

白:
如果从工程角度批判,估计人家看都不看----关我什么事。

李:
老乔的思维高度自然不看 也不用看 这种批判。但是老乔下面的语言学家我认识很多,我就是这堆人里面混出来的,从他们身上我能感觉到他误导的后果。这些人很多时候就是在老乔的框架里面 自己跟自己玩游戏 没有理论创新 只好在语言数据上玩游戏,而且是一点都不感觉高明的游戏。说的是一批 或一大批语言学家。(也有一些绝顶聪明的纯语言学家让我叹服的,为数极少。)

洪:
做计算机编译的,没人认为老乔误导 Knuth和老乔貌是惺惺相惜。

吕:
赞@wei , 很多看法深有同感

李:
编译的理论基础 编译的祖师爷,电脑界理应崇拜 给10个图灵奖也不过分。当然 乔老爷哪里在意什么图灵奖。@吕正东 有机会咱俩坐下来谈。你最近的大作(见 独家|专访深度好奇创始人吕正东:通向理解之路)中我最不满意的就是一句话:说什么 符号逻辑规则路线没有成功的(大意,查原文是:“这三点都导致至今没有成功的规则系统”)。我得让你见识一下符号系统,没有深度学习的任何一家目前可以做到这个NLU的,无论深度 广度 速度 鲁棒 迁移度 可行性 还是其他指标 (It is untrue that Google SyntaxNet is the "world’s most accurate parser)。

吕:
@wei 惭愧,改日一定当面请教。

白:
说这些其实是在以史为镜。今天语言学界看DL、看词向量的心态,跟当初老语言学界看老乔的心态,有没有几分相似?

吕:
我的意思是说规则系统很难做到我所期望的NLU,不是说现在最好的规则系统弱于DL的系统。当然我对规则系统确实了解不够(现在正在补课),不免贻笑方家。

李:
不知道你去期望是什么。如果期望是现实的,很可能已经接近你的期望,如果期望是科幻,不谈。开玩笑了。王婆卖瓜而已。

吕:
我那篇访谈其实更多的是反对generic DL system 搞定一切的天真想法...

董:
@吕正东 你所期望的NLU,能否举个例子。

白:
里面有些模块可以是神经的,这有啥。

李:
所以我说我其实只有一点不满。你的访谈很好,

吕:
当然是现实的... 我们有现实的语义理解的项目

李:
@白硕 前乔姆斯基时代的老语言学界,陷入了田野工作的泥坑,是老乔把他们带出来的,革命了这个领域。纯粹的田野工作的确也是没大意思 比码农好不到哪里去。

吕:
@董振东 董老师,比如从一个偏口语的对事件的描述中得到对该事件的(“法律相关”)事实的表示.... , 当然这个定义是不那么严谨的

白:
其中一些方法,包括《降临》主角跟外星人沟通并试图破译其语言的一些方法,其实和主动机器学习很像了。

李:
一辈子也常陷入事务主义 没完没了地田野作业 自得其乐,但好在自我感觉好像心里还有某种哲学的俯视。有如神授:在田野工作的间歇 在某个高远的所在 有指引着道路。我是 语言工程师 knowledge engineer 的一员 毫无疑问。而且90%的时间都是。但是一辈子感觉这些田野作业的乐趣的本源却不在田野,而是在于架构。所以自我定义为架构师是最感觉自豪和 job satisfaction 的所在,否则与一头驴有啥区别。

白:
就是说,理想的田野工作一定是遵循某种算法的。而且算法不仅包括学习,还包括主动采样。

李:
所以在自我兜售的时候,强调 hands on 的田野作业,只是不想让人觉得飘在上面。但实际上卖的还是哲学。

Nick:
@wei 你就是自作多情

李:
我就自作多情 怎么着,你一边去 给冰冰多情去。@Nick  还想垄断哲学,搞什么哲学评书,不许我们搞哲学。王老五的桌子里面还有哲学呢,何况我辈语言学家。

董:
《福州晚报》7月15日报道,针对日前在日本横滨被证实遭杀害的福建姐妹一事,记者了解到,两姐妹均为福清江镜镇文房村人。
该报记者采访了该对姐妹花的父亲陈先生,陈先生回顾了得知姐妹被杀害的过程,并称女儿对父亲说的最后一句话是“谢谢爸爸”。

这一段事件,nlu 是什么呢?

吕:
@董振东 好难... , 实际上我们关注的是更加“冷冰冰”的事实,但即使这样也很难

白:
这里最大的问题,就是产品经理。

李:
同意,应用场景和应用角度 做技术的人很难看准。

白:
nlu是一层,但不构成核心服务。核心服务是另外的东西,让你贴近客户的东西。
相对称呼对身份一致性形成干扰,但相对称呼的谜一解开,倒也不是很难。姐妹花、姐妹,语境里的意思都是互为姐妹。

董:
我一直困惑:什么叫“我懂了”,“我明白了”。我觉得是高度抽象的关系。

李:
董老师30年前的论文(董振东:逻辑语义及其在机译中的应用)不是一再强调,所谓我懂了这句,核心就是懂了这句的逻辑语义吗?董老师的这个“理解”的教导,是一辈子遵循的指针。

白:
这得举例子吧……几何题的证明思路也可以“我懂了”“我明白了”,确定那也跟nlu相关?

董:
“姐妹花”,做为一个词语,可能合适。因为它就是“姐妹”,而且不见能产,如“母女花”

白:
“母女花”输入法里都有

李:
婆媳花 可能不在,但可以想见。

白:
我刚才意思是说,懂,明白,具有比nlu更宽泛的外延,nlu里面说的懂、明白,要窄、狭义。

董:
这样就可以依靠大数据了。对吧?
比“懂”、“明白”,要窄、狭义,那是什么呢?我如何在系统里体现呢?

白:
我们先说逻辑语义包括什么。我的观点:一包括symbol grounding,二包括role assignment。这两个搞定了,就是nlu的u。最狭窄了。茅塞顿开什么的,那种“懂”,跟nlu毛关系没有。可以说不在讨论范围内。在系统里体现,如果是role assignment,其实很好办,就是知网啊。如果是symbol grounding,那就要看系统的对接能力了。对接电话本、位置、天气、颜色、声音、实体知识库,都属于symbol grounding。

吕:
怒赞白老师1024次

白:
对接网页,往好里说属于兜底,往坏里说属于耍赖。一看见对接网页,我基本上可以判断系统黔驴技穷了。这都是在系统里能体现的,不知道入不入董老师法眼。

董:
是的,说得明白。我们的中文分析归根结底追求的就是你说的这两件东西。用逻辑语义和深层逻辑语义(多个爹),表示你说的role assignment,用ID No来落实实体知识库的symbol,即概念。所以判别歧义是不得不做的事情。

白:
我现在的方法处理“多个爹”已经成体系了。直接在句法分析阶段就能拿到“多个爹”的结构。

李:
Node to concept,Arc to logic semantics。很多时候 词到概念可以不做,wsd 绕过去,到了应用场景 再定 哪些词需要落地 其实多数根本就不用落地。

白:
这是parser提供商的思路。但是这思路在商业上有问题。不现实。比如,阿里的parser,为啥给京东用来落地?

李:
商业上就是 落地也做 当成 Professional services,量身定制,利用 parsing 的结构优势。 parser 不卖,内部消化。

白:
内部消化的本质还是深耕行业,而不是什么通用性。当你定位为深耕行业者,恭喜你做对了,但是牺牲通用性是板上钉钉的。

李:
卖components或平台基本没有做大的,还不如卖服务 做承包商。

白:
卖服务我判断也是不成立的。场景不长在你手里,实体数据库落不下来,图啥?跟通用系统如董老师的系统,根本不存在可比性。

李:
其实 目前为止 卖工具 卖服务 都没戏。实际上nlp还是寄生在产品应用。技术人的命运掌握在产品老总手里。赶巧遇到好产品 就一起飞。其次不死不活 这算好的。更多是陪葬。

白:
这不叫寄生,应该叫赋能 enabling

李:
一个牛的技术 可以降低陪葬 增加不死不活的可能  譬如我过去的二十年,但是无法让产品飞起来。

白:
除了产品经理,还有nlp之外的其他技术,也不是吃素的。到底谁贡献最关键,有得扯

李:
就是啊 使不上力 只好拼运气 看根誰搭档了。

白:
深耕行业定位下的nlper要时刻警觉的三点:1、你已有局限,不要和学术界比通用;2、你只是一个方面的enabler,服从、配合产品designer是天职;3、从产品全面看,其他方面的enabler或许贡献更大,nlp不见得一定是这个场景下最具杀手性质的技术成分,心理该平衡还是要平衡。

李:
让不让人活啊。
白老师所说极是。

吕:
谨记白老师教诲

刘:
赞 @白硕 @wei @吕正东 白老师关于nlp应用要语义落地的说法我深以为然。现在我的一些工作的motivation就是把基于NN的一些NLP的工作跟落地的语义结合起来,我希望能在这方面做一些通用性的工作,而不是仅仅局限于具体的应用。这应该是一条很长的路,有很多事情可做。

梁:
@wei nlp 不是“寄生”于产品,是“add value", 正面去说。在最终产品的增值链上,nlp 只是其中一环。Me too. 谨记白老师教诲。

李:
寄生是负面说法 赋能是正面激励。

张:
主动学习、主动适应、主动釆样~~~白硕老师的“主动学说”给当年在MT创业的我极大启示@白硕

董:
关于研究与产品、通用与专用、寄生与赋能,我的想法和做法是:这些是对立且统一的。研究要通用些,要深,而应用要专门,要浅。研究可以关起门,应用就必须是开门的。这就是“深研究,浅应用”。就像一个老师,备课不怕深、广,但讲课要深入浅出。我经历过多次处理研究与应用间的关系的机会。

白:
@董振东 董强这次展示的系统,感觉还是学术性质的。@董振东 “备课”工作的一部分,确实可以用大数据、机器学习来做,全都人来做,周期太长,对灵魂人物的要求太高。

董:
@白硕 欢迎多多指教。我们希望有人帮助我们走向非学术性的。

白:
伟哥说大树吃小树,这话对的,不过涉及到时空的错乱。是吃了小树的树自然而然地成为了大树。

洪:
应该这样“全国猪人工智能受精关键技术研讨会”

吕:
猪AI会议可以撸出小猪来,不少国内的人AI会议,只能撸出更多的傻叉和骗子.....

冯:
近年来计算语言学的发展迅速,越来越工程化,文科背景的师生有的难以适应,海涛和他团队明察秋毫,迅速由计算语言学转入计量语言学,用计量方法来研究语言本体,这是聪明的做法。希望他们在这个研究方向上作出更多的成绩。海涛是我的博士生,浙大外国语学院教授。他是院士,世界语研究院院士。我仍然坚守在计算语言学的阵地上,没有转入计量语言学。我老了,不中用了!

李:
白老师说的大树吃小树 背景在这里:《科研笔记:NLP “毛毛虫” 笔记,从一维到二维

冯:
学习了。毛毛虫有道理。

李:
@冯志伟 洗脚池转文总是漏掉后面的 相关文章 现补上白老师这篇奇文:【白硕 - 穿越乔家大院寻找“毛毛虫”

 

【相关】

董振东:逻辑语义及其在机译中的应用

立委:乔姆斯基批判

独家|专访深度好奇创始人吕正东:通向理解之路

科学网《语义三巨人

尼克:哲学评书

科研笔记:NLP “毛毛虫” 笔记,从一维到二维

白硕 - 穿越乔家大院寻找“毛毛虫”

It is untrue that Google SyntaxNet is the "world’s most accurate parser

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白雷63:做NLP也要见好就收,适可而止】

白:
“那个假流氓真流氓”
“这种做法不禁令我们大吃一惊”

李:
前一句有意思 等我回头试试,第二句没看到 catch 啊。

白:
分词和句法的相互作用,“禁令”是名词,“令”是类介词的动词。“不+名词”即使不是严格禁止的,至少也是极其低概率的。

李:
这个知识在多数切词程序里是没有容身之地。当然还有别的办法。人在伯克利 没法测 第一眼居然没看到切分歧义。刚回家第一件事就是测试白老师的句子,悲喜参半啊:

第一句出来了,第二句果然切分错了,当然前面说过,“不+名词”的规则通常在切词的时候没地方容纳。还是用更简单的ngram的头疼医疼的办法吧。于是改正如下:

不过话说回来,如果真要难为系统,总是可以的:譬如,假流氓真流氓我管不着。

果然中招:

分了真假 就做不好并列;做了并列 就难兼顾真假。

白:
按下葫芦起来瓢

李:
如果鱼与熊掌一定要兼得,就太过精巧 君子不为也。不是不可以做 但不能这样做。维持现状吧。

白:
对NLP没感觉的人很难理解是什么让顶尖高手不得不妥协。

雷: 哈哈哈。顶杆

李:
妥协是因为吃过亏 吃过自作聪明的亏 精巧的亏

白:
问题不在于你解决了什么,而在于你解决了“这一个”的同时,不影响你已经解决的“那些个”。

雷:
不可调和?not even by bribery?

李:
哈,那要看量

雷:
工程上可以

李:
没有不可以的事儿

白:
不是技术问题,是商业问题

雷:
理论上顶在那里

李:
但懂得什么时候选择不做 有时比做 更重要。见好就收吧。这是不同维度的纠缠。

白:
里维和外围的纠缠

我:
平行并列是一个维度。“真”“假”的词性和用法的不同是另一个维度。“流氓”的名词形容词歧义又增加了一个维度。事不过三原则(见【系统不能太精巧,正如人不能太聪明】) 说的就是当多维纠缠的时候 你可以随风起舞 跟着去绕 但不要绕进去太深 要有适可而止的智慧。

梅:
@wei 是啊,不必去fit noise。

李:
不仅是 noise,更主要的是要皮实,不能让系统内部相互依赖太多。“精巧”的系统今天把一个拐角处的“艰深”问题解决了,而且通过了 regressions 测试,似乎没有副作用。可是明天呢 后天呢?系统在前进过程中,一定会打破动态平衡,凡是太过精巧的地方最终会在前进中遭遇困扰。于是我们就被拖进了两难的泥潭,把注意力放到了不该放的犄角旮旯。两难是:

那个 case 是 tested case,进入了 regressions baseline,因为精巧而脆弱,因此常常成为 regressions testing 的红灯区。红灯一亮,我是去对付它呢,还是放过它呢,真地两难啊:

对付它就要耗费资源,耗费我的时间,为了维护的是一个小概率的case,不断地耗费资源,不值得。如果放过它呢,这就等价于我们一开始就不该做,不该精巧地“解决”这个问题。后一个选择是明智的,但还是不如一开始就坚持事不过三的原则来指导系统的开发。系统的鲁棒性比解决个别的长尾问题要重要。

首发 2016-06-02 【新智元笔记:做NLP也要见好就收,适可而止】-科学网

【相关】

【系统不能太精巧,正如人不能太聪明】

【立委科普:美梦成真的通俗版解说】

【立委科普:语法结构树之美(之二)】

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白梅宋62:工程语法与深度神经】

李:

汉语的类后缀(quasi-suffix)有不同的造词程度,“-者” 比 “-家”强。
“者” 是 bound morpheme,“家(home)” 通常是 free morpheme,突然来个“冷笑家”,打了个措手不及 @白老师。
不敢轻易给这种常用的 free morpheme 增加做类后缀的可能性,怕弄巧成拙。即便是人,乍一听这句子中的“冷笑家”也有点怪怪的感觉,怎么这样用词呢?如果硬要去模拟人的造词和理解合成词的功能,倒是有 heuristics,不知道值得不值得 follow:“冷笑”是 human 做 S 的动词,-家 是表示 human 的可能的后缀(“者” 比 “家” 更宽泛一些,可以表示机构或法人),这就为“冷笑家”作为合成词增添了一点语义的搭配证据,但还不足以站住,于是还有另一个 heuristic:“冷笑”的 subcat 的 human 语义坑不仅仅是S,其 O 也是 human: “张三冷笑李四”。而另一条路径(上面输出的 parse)是:"冷笑" 的 O 是"赞成“, 不搭。  这两个 heuristics (一个morphological,一个 syntactic)是如何在人脑里合力促成了正确的理解的,是一个可以想象但并不清晰的下意识过程。机器可以不可以模拟这个过程,利用这种合力做出逼近人类的语言理解呢?道理上当然可以。既然我都可以描述出来,那么硬做也可以做出它来。但是,在遇到这样的语料的时候,说句实话,通常选择不做。原因就是我以前说的:编制一个 NLU 系统,不能太精巧。【科研笔记:系统不能太精巧,正如人不能太聪明

白: 赞成有俩坑,一个human,一个内容。就算被“的”强制为名词,这俩坑仍旧在。

李:
是,我还没来得及加上 “赞成” 的坑的考量进来,问题的复杂度更增加了。精巧的路线是老 AI 的人和语言学家最容易陷入的泥潭。老 AI 陷入精巧还不当紧,因为 老 AI 做的都是玩具,domain 极为狭窄,精巧不至于造成太大偏向。

白:
“这本书的出版”和“冷笑家的赞成”异曲同工,都是用填坑成分限定有坑的临时名词。所以,两个坑其中一个是human,会给“-家”结构加分。
这是系统性的现象,与精巧无关。

李:
我就怕聪明反被聪明误。在 data driven 的NLU开发过程中,对于偶然出现的“怪怪“ 的语词或句子,我通常是无视它的存在(除非这个现象反复出现)。白老师总说是系统性的现象,但举出的例子常常是 “怪怪”的,是那种介于人话与“超人话”之间的东西,超人指的是,这类话常常是语言学家从头脑里想出来的,或者是高级知识分子抖机灵的作品。白老师宋老师,还有 yours truly 都擅长写出这样句子,可是普罗不这样说话。用白老师自己的话说,就是这类现象处于毛毛虫的的边缘毛糙的地方。虽然是毛毛虫的一个部分,没有它其实无碍。我指的是 “家” 作为类后缀的现象。

白:
对付这种既没有截然的肯定也没有截然的否定,而只是“加分”/“减分”的逻辑,统计比规则更在行。关键是模式长啥样。

梅:
Deep learning 死记硬背,套模式,有了training data,做第四层,第五层,做不出吗?

李:
我对这个统计的能力,好奇多于怀疑。统计或深度神经,真有这么神吗? 连毛毛虫的毛边、灰色地带、长尾,也都恰好能学出来?

梅:
那就需要多run experiments,机器多。一部分靠知识,一部分靠实验。应该能的。

白:
模式过于稀松平常,深度学习或可用上,但效果很差。模式过于稀奇古怪,深度学习可能完全没有用武之地。

李:
“家”作为后缀的产生性不强,基本属于长尾。而“家(home)”作为自由语素则是压倒性的。统计的系统不会看不见这一点。

白:
在找到合适的模式之前,过于乐观或过于悲观都是缺乏凭据的。

梅:
中文的data多啊。再sample一下

白:
都不知道模式长什么样,sample啥呢?我们的关键是看模式长什么样

梅:
做语音识别深度学习的,也是做很多实验,然后发现模式的。

白:
语音的结构是扁平的,拿来套语言,未必灵。假定了扁平再来发现模式,说不定已经误入歧途了。

梅:
不是100%灵,但有analogy

白:
实验不可能对所有模式一视同仁,一定有先验假设的。也许藏在心里没说出来,但是模型会说明这一切的。

李:
科研笔记:系统不能太精巧,正如人不能太聪明】里面有事不过三的原则。事不过三,无论是中心递归,还是我文中举的否定之否定之否定的叠加。表面上是程序猿的经验之谈,其实属于设计哲学。

梅:
哲学有用的

白:
如果藏在心里的先验假设是错的,多少数据也救不了你

梅:
先验假设 不是不好-立委的知识都可以用到深度学习上

白:
都能用上就好了。问题是他的知识长的样子,深度学习消化得了么?

梅:
那就combine啊

白:
在使用深度学习对付语言结构这件事情上,1、有迷信;2、有办法;3、迷信的人多半不知道办法。combine会引发什么问题,不做不知道

梅: 深度学习一点不迷信,又有定律,又有实践。

李:
哈,曾经遇到一个“超级”猎头,说超级是说的此女士居然对AI和NLU如数家珍的样子,包括人工智能符号逻辑派与统计学习派的两条路线斗争,不像一般的IT猎头简单地认为AI=DL。她的最大的问题就是(大体):你老人家是经验性的,骨灰级的砖家了,你能简单告诉我,你怎样用你的经验为深度学习服务呢?
(哇塞)无语。语塞。
全世界都有一个假定,至少是目前的AI和NLP领域,就是深度神经必然成事。只有在这个假定下,才有这样的问题:你无论多牛,不靠神经的大船,必然没有前途。

白:
深度学习假定的空间是欧氏空间,充其量是欧氏空间的时间序列。万事俱备,只差参数。这个假定要套用到语言结构上,还不失真,谈何容易。其实就是把目标空间的判定问题转化为参数空间的优化问题。

梅:
没说容易啊。现在的深度学习当然有局限性。还要懂data science,the science of data

白:
目标空间错了,参数空间再优化也没有意义。

李:
非常好奇,这么深奥的深度神经是怎样做的 AI marketing 洗脑了全社会,以致无论懂行的、不懂行的、半懂行的都在大谈深度神经之未来世界,把深度神经作为终极真理一样膜拜。
第一,我做工程语法(grammar engineering)的,句法分析和主要的语义落地场景都验证非常有效了,为什么要服务深度神经?本末倒置啊。他本来做得不如我,无论parsing还是抽取,为啥反倒要我服务他成就他呢?不带这样的,当年的希拉里就被奥巴马这么批评过:你不如我,为啥到处谈要选我做你的副总统搭档呢?
第二,深度神经也没要我支持,我自作多情什么,热脸贴冷屁股去?据说,只要有数据,一切就自动学会了,就好比孩子自动学会语言一样。哪里需要语言学家的出场呢?
最奇妙的是把一个软件工程界尽人皆知的毛病当成了奇迹。这个毛病就是,学出来的东西是不可理解的,很难 debug 。假设学出来的是一个完美系统,不容易 debug 当然可以,因为根本就没有 bugs。可是,有没有 bugs 最终还是人说了算,数据说了算,语义落地的应用说了算。如果发现了 bug,在规则系统中,我一般可以找到症结所在的模块,进去 debug,然后做 regressions,最后改进了系统,修理了 bug。可是到了神经系统,看到了 bugs,最多是隔靴搔痒。

张: 感同身受

李: 要指望在下一轮的训练中,通过 features 的调整,数据的增加等等。幸运的话,你的bugs解决了,也可能还是没解决。总之是雾里看花,隔靴搔痒。这么大的一个工程缺陷,这也是谷歌搜索为什么迄今基本是 heuristics 的调控,而不是机器学习的根本理由之一(见 [转载]为什么谷歌搜索并不像广泛相信的那样主要采用机器学习?),现在被吹嘘成是深度学习的优点:你看,机器多牛,人那点脑量无论如何不能参透,学出来是啥就是啥, 你不认也得认。是缺点就是缺点。你已经那么多优点了,连个缺点也不敢承认?牛逼上天了。

梅:
不是这样的。内行的不否认深度学习的长处,但对其局限性都有认识的

李: @梅 这个是针对最近某个封面文章说的,白老师不屑置评的那篇:【泥沙龙笔记:学习乐观主义的极致,奇文共欣赏

梅:
我的观点:There is nothing wrong with 1) and 2), in fact, they have helped advancing AI big time. But 3) is a serious problem.

李:赞。
宋:自然语言处理 不同于图像处理和语音处理,相当一部分因素是远距离相关的。词语串的出现频率与其长度成倒指数关系,但语料数据的增加量只能是线性的,这是机器学习的天花板。

李:
宋老师的解释听上去很有调性。
image 不说它了,speech 与 text 还是大可以比较一下的, speech 的结构是扁平的?怎么个扁平法?text 的结构性和层级性,包括 long distance 以及所谓 recursion,这些是容易说清楚的,容易有共识的。

宋: @wei 什么叫“调性”?

李: 这是时髦的夸赞用语。:)

宋: tiao2 or diao4?

李: diao4,就是有腔调。
深度神经没能像在 speech 一样迅速取得期望中的全方位的突破,这是事实,是全领域都感觉困惑的东西。全世界的 DLers 都憋着一股劲,要不负众望,取得突破。终于 SyntaxNet 据说是突破了,但也不过是达到了我用 grammar engineering 四五年前就达到的质量而已,而且远远没有我的领域独立性(我的 deep parser 转移领域质量不会大幅度下滑),距离实用和落地为应用还很遥远。

宋:
在不知道结构的情况下,只能看成线性的。知道有结构,要把结构分析出来,还得先从线性的原始数据出发,除非另有外加的知识可以直接使用。

李:
这个 text 迄今没有大面积突破的困惑,白老师说的是模型长什么样可能没弄清楚,因此再怎么神经,再多的数据,都不可能真正突破。宋老师的解释进一步指出这是结构的瓶颈,特别是long distance 的问题。如果是这样,那就不复杂了。将来先把数据结构化,然后再喂给深度神经做NLP的某个应用。这个接口不难,但是到底能有多奏效?

宋:
SyntaxNet宣称依存树的分析准确率达到94%。也就是说,100个依存弧,平均有6个错的。n个词的句子有n到2n个依存弧。因此,10几个词的句子(不算长),通常至少有一条弧是错的。即使不转移领域,这样的性能对于机器翻译之类的应用还是有很大的问题,因为每个句子都会有翻错的地方。

李:
错了一点弧,只要有backoff,对于多数应用是无关大局的,至少不影响信息抽取,这个最主要最广泛的NLP应用,对于不完美parsing是完全可以对付的,几乎对抽取质量没有啥影响。即便是 MT,也有应对 imperfect parsing 的种种办法。

宋:
这个数据的结构化不仅是clause层面的,而是必须进入clause complex层面。首先需要人搞清楚clause complex中的结构是什么样子的。就好像分析clause内的结构,要让机器分析,先得让人搞清楚clauses内的结构体系是什么,还需要给出生成这种结构的特征和规则,或者直接给出一批样例。

李:
现在的问题是,到底是是不是因为 text 的结构构成了深度神经的NLP应用瓶颈?如果真是,那只要把结构带进去,今后几年的突破还是可以指望的。结构其实也没啥神奇的。不过是 (1) 用 shallow parsing 出来的 XPs 缩短了 tokens 之间的线性距离(部分结构化);(2)用 deep parsing 出来的 SVO 等句法关系(完全结构化),包括 reach 远距离。这些都是清晰可见的,问题是深度神经是不是只要这个支持就可以创造NLP奇迹?

宋:
把结构带进去了再机器学习,当然是可能的。问题就是怎么把结构带进去。什么都不知道的基础上让机器去学习是不可能的。

李:
以前我们就做过初步实验做关系抽取,把结构带进ML去,是有好处,但好处没那么明显。挑战之一就是结构的 features 与 原来的模型的 features 之间的 evidence overlapping 的平衡。

宋:
clause complex的结构与clause的结构不一样。google把关系代词who、what往往翻译成谁、什么,就是没搞清楚层次区别。

首发 【新智元笔记:工程语法与深度神经

【相关】

科研笔记:系统不能太精巧,正如人不能太聪明

泥沙龙笔记:学习乐观主义的极致,奇文共欣赏

[转载]【白硕- 穿越乔家大院寻找“毛毛虫”】

[转载]为什么谷歌搜索并不像广泛相信的那样主要采用机器学习?

《新智元笔记:再谈语言学手工编程与机器学习的自动编程》

《新智元笔记:对于 tractable tasks, 机器学习很难胜过专家》

《立委随笔:机器学习和自然语言处理》

《立委随笔:语言自动分析的两个路子》

why hybrid? on machine learning vs. hand-coded rules in NLP

钩沉:Early arguments for a hybrid model for NLP and IE

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白60:事理图谱之辨】

宋:
“普京称,特朗普问了一些尖锐的问题,显然他对某些事情的细节很感兴趣,所以他也尽可能地详细地回答了他。”(来源:看看新闻)三个“他”各是谁,机器能识别码?

白:
这也是“事理图谱”的覆盖范畴,甲问乙,乙答甲。

李:
他回答他,句法绑定理论(Binding Theory)决定了不是一个人。
x 问y ==> y回答 x, 这个知识 hownet 恐怕有。第三个 “他” 于是绑定 “特朗普”,第二个“他” 于是不可能是“特朗普”,上下文只剩一个“普京”,那就是“他”了。至于第一个 “他”,语言的就近原则就对了,绑定“特朗普”。如果用知识推理,那就蛮复杂:需要在 【提问】 与 【感兴趣】 的概念之间,建立某种互为因果的联系:

x 问关于y 的问题 《==》 x 对 y 感兴趣

这是符号逻辑。至于大数据如何反映,“事理图谱”如何表达和支持,这里面水不浅。

不太明白的是,这所谓事理图谱,到底是本体类的图谱(ontology graph),还是情报类的图谱(intelligence graph)。从命名看,应该偏重本体。那就跳进一个大泥坑。 本体不是不可以自动图谱化(严格一点的术语叫知识习得,knowledge acquisition,而不是情报类的信息抽取 information extraction,【语义网笔记:本体与知识图谱之辨】),但是很难很快奏效,也很难打过 hownet 和 cyc,除非是先从 domain 本体着手,各个击破。情报类图谱就是靠 domain 取胜的,本体图谱也应该是这个方向。

白:
本体/情报这个区分完全是工程化的,原理机制方面看不出来不同。所谓原理机制,无非就是核心动词怎么传播,坑怎么跳接。打 和 伤,打传播到伤,打两个坑,其中受事那个坑跳接到伤的当事。明白传播和跳接,这个游戏就可以玩下去了。面向领域见效快些,产品好包装些。面向本体见效慢些,可能不走产品的路子而走公共服务的路子。但这是商业模式问题而不是技术问题。

李:
情报的立足点是个体(NE),本体的立足点是群体类型 (categiry concept),目标相差远去。后者 人工具有显著优势,所以说 想打败 hownet 并非易事。这是从知识本身、 知识的获取和表达来看。至于知识的应用、知识的推理、推理中的模糊与逻辑的平衡等等,又是另一个挑战。而情报图谱的应用相对简单,无论是支持搜索还是挖掘。支持预测比较难些。本体知识因为并非情报,而是常识或专业知识,属于教育的范畴,谈不上搜索、挖掘和预测。

白:
说来说去还是商业模式。定性预测和定量预测又是两回事。涨不涨,和涨多少点,不一样。

李:
我想说的是所谓事理图谱,是个吃力不讨好的活计。高校里面立项做个研究可以,应用上基本可以无视。学了半天也不过就是学会了诸如 【x 从 y 那儿 买 了 z】 ==  【y 卖了 z 给 x】, 【x 吃饱了 ==》 x 不饿】等等。 这种事理哪里用得着去学,拍着脑袋可以想出来更多、更周全、更体系、更逻辑。

白:
法律文书处理需要。证词这么表述,起诉那么表述。这还只是paraphrase。如果涉及到行为与后果,还是要在动作之间传播,比如打与伤。如果要打造alphago级别的律师,这点事儿是必须搞定的。最起码的。说这事儿没有效益,可能过于托大。

李:
两码事儿:本体知识图谱是一码事儿,利用这个图谱做有效的推理应用是另一码事儿。前者基本没有效益,有那个力气 不如把 hownet 进一步完善。后者才是痛点。

白:
我是说从建设的内容看,你分不清是给研究用的还是给应用用的。

李:
谁先把 hownet 或 cyc 里面的知识体系(时髦词叫 “图谱”)用起来,用到 50% 就很了不起了。

白:
绝对不是那个路数。应用的人没那么傻,有现成的好东西不用。问题不是不用,是路数不对。不可用。

李:
傻不傻,要先看到应用实例才好。事理图谱成功应用的突破,咱等着看吧。

cyc 的失败不是知识获取的失败,这方面愚公移山,知识增量获取,知识只会越来越丰富。知识丰富了,没法用才是问题。

白:
就说跳接这事儿,用重武器和用轻武器有本质不同。用轻武器同样可以做的事儿,为啥要用重武器。重武器的副作用太大。

李:
如果事理图谱,也像情报图谱一样,追求的是图谱的建立,那就没有情报图谱的成功可能。

白:
你要等他,要养他。还要顺着他。其实应该他顺着你。

梁:
小声问一句,事理图谱是因果关系图谱吗?

白:
不完全是

李:
我理解就是本体图谱。搞不清对象是常识还是专业知识,还是兼而有之。

白:
有些因果上没道理的事情,事理上有道理。比如,该来的没来--》我是不该来的;
不该走的走了--》我才是该走的。

李:
这样的事理,已经不再独立于语言和文化了。那就比普世(universal)的常识和专业知识更加广泛了。

白:
作案是专业知识,作案里动作之间的关联是常识,没有常识托底的专业知识是有断层的。法律条文是专业知识,案情的描述靠很多常识勾连在一起。在分析案情与法律条文适配性的时候,必须二者兼而有之而且在结合部无缝切换。

李:
对,是个 hierarchy 。

白:
paraphrase可以有更简单的处理方法,就是相对行为在转换为内部表示时是标准化的:
买和卖,娶和嫁,借和贷,都可以。这个不算推理,甚至也不算传播,内部表示都是个trans就得了,只不过参数摆的地方不一样。

李:
真正在应用中的痛点是:

1. 不是没有知识,而是有了知识也不知道如何用
2. 很多时候没有知识也达到了目的,所以见知识就用,往往弄巧成拙
3 就事论事容易,总可以谈出背后一大堆“事理”出来:本群的很多有趣的讨论和钻牛角尖,就显示了这些事理。但是要想找到一个高效的通用算法,来用这些事理知识,那是真地很难。

白:
在不知道知识长什么样时,谈算法是很空的一件事,算法和表示几乎是同时确定的,而不是表示在先,算法在后。

李:
情报图谱的表示与算法可以分开。可以把情报挖掘,建立一个图谱表达。至于别人用什么算法去用它,可以是另一回事儿。其实,我各行各业的分析员一直都在手工做情报图谱,他们并不懂什么算法不算法。自动生成的情报图谱,只要提供一个类似 sql 的搜索图谱的接口就完事。但是,本体图谱不同。它本身不是情报,都是吃饱了不饿这类“废话”,没有应用价值。所以,一定要想清楚如何用它,才能显示价值。

白:
paraphrase和传播是必须的。无方向感的推理可以免了。

李:
想清楚如何用它是比获取和表达,难度大得多的事儿,这里面包括想清楚何时和如何不用它。

白:
用它从来不是问题,问题的关键是“它”是谁。如果是hownet或者cyc,基本可以打住了。一定是把知识的使用圈到一个很务实的圈子里,足够轻,然后才谈得上获取和表达。本体重实体和实体的构成类型,事理重事件和事件之间的传播和激活。这俩早晚要区别对待。混在一起打乱仗是要死人的。现在技术层面的问题是解决坑的跳接。

李:
打乱仗的常见案例是,不知道何时不该用 不能用“事理”。对于不合事理的事儿,自然不能用事理理之。

【相关】

【语义网笔记:本体与知识图谱之辨】

【泥沙龙笔记:再谈知识图谱和知识习得】 

《泥沙龙笔记:知识习得对本体知识,信息抽取对知识图谱》

【立委科普:本体知识系统的一些历史掌故和背景】 

《对于 tractable tasks, 机器学习很难胜过专家》

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

【李白之58:爬楼NLU】

爬楼NLU(Natural Language Understanding): 二楼句法结构三楼语义落地

李:
问各位一个 lexical feature 的转移问题及其解决途径,譬如 “所吃”。在小词 “所” 与 vt 结合成合成词以后,该词的语义等价于vt 标配宾语的语义。换句话说 “吃” 的动作性 语义本体标注 [consume] ,应该被置换成名词性标注 [food]。这个 feature 更新如何实现比较合适?到 HowNet 里面去挖出来? 如果 feature 不更新,那些细线条的指望语义 features 查询条件的规则就会失效。“所” 是一例,“的字结构” 是类似的例子。无论小词负载结构 还是小词参与合成词模式 都躲不过这个 feature 大转移的语义坎儿。当然可以为每一种主要关系(譬如 动宾)从 HowNet 抽取出一个语义词表,等到需要更新的时候,就让系统根据关系的规定来查表解决。不知道有人在 parsing 中做了这个工作没有? 估计很少,多数系统还没有细线条到这个地步。

白:
所,是N/S。的,是N+/X。所吃,是 N/S 与S/*N*,结合以后变成N/**,这是句法层面。subcat层面,它继承S的逻辑宾语坑的subcat。的,就没这么精准了。X里面谁空着就提取谁的subcat。“这本书我送的是他。”间接宾语也能提取。*N*是分母的一般形式,吃还是S/2N,所吃,是N/N,被谁所吃不知道。我所吃,N与N/N正好得出N。

李:
这里的继承有文章。“所吃” 继承的subcat 有:(1)“吃”的本体标配宾语,(2)subcat 剩余坑,也就是主语坑 /N == [animate]。这两项继承 一个是本体自己的 type 一个是坑的 type,都不是简单的事儿。因为承载本体的语词“吃” 由于小词“所”的作用 ,已经与本体概念 来了个乾坤大转移。

白:
[animate],[food]; 继承后者,即food。“这碗饭的所吃”不可以,

李:
N/**,这个句法符号里面有很多本体名堂。当然,这些本体关系信息都是现成的 ,Hownet 里面就有类似的知识表达:吃: s=[animate] o=[food]。

白:
“考”有点特殊。我们不知道“考”句法上应该是几个标配坑,但“所考”的subcat可以是人、学校、科目、某种证书。也就是说,不排除标配坑与subcat的对应有多元化的可能性。简单说逻辑宾语是不足以刻画这里面的复杂性的。不过,“所考”不可以继承分数【score】, 似乎所有事前不能有所控制的,都不能用“所”。“所梦”VS“所梦想”

李:
甲: 吃了吗
乙: 吃了
甲: 所食何物?
乙: 所食非物。
甲: 莫非秀色?
乙: 非也。 所食不过食堂耳。
甲:我的所吃更惨 非食堂 非馆子 更非秀色。所吃乃瘪、苦头、抑或 一鼻子灰。

白:
嗯,句法层能说“吃食堂”,“所吃”就可以是“食堂”。就是说,“吃”的逻辑宾语,是一堆而不是一个subcat。

李:
我要说的是 本体标配受事,还有一个上位概念,这个上位概念倚靠的是句法,表达的是逻辑谓宾的语义相谐。它不是本体那样纯粹 那样独立于具体语言,但又离不开本体的大框架。我一直把这种上位逻辑语义叫做逻辑宾语、逻辑主语,有意借用句法术语,加上前缀“逻辑”。所以逻辑宾语 可以是 【受事】、【对象】。【地点】等,以及其他种种说不清的搭配,逻辑主语 可以是 【施事】、【工具】、【地点】等。

白:
语义相谐不局限于受事,而是“可宾”的subcat。所砍,不能是工具。所去,可以是处所。所卖,可以是买主。所送,可以是对手方。

李:
这个 logical S 和 logical O 其实是很关键的概念。

白:
但是标逻辑主宾语给谁看给谁用?
语义落地,还是本体的坑好用,除非像“所X”这种含混的。

李:
主要是为了概括句型:svoc,就三个args。arg0 逻辑主语,arg1 逻辑宾语,arg2 逻辑补足语,更加杂乱一些,包括谓词结构嵌套也在内。但不管这三个 args 的内部逻辑语义细节多丰富,这三个坑从语言句型结构上定下了框架,万变不离其宗。

白:
好像不需要这一层,大面上也都可以语义落地。从“跟谁有关系”到“是什么关系”。
当“是什么关系”有多选时,就对应subcat集合,当然可以有个概率分布之类。按老乔的理论,你这是移位前的“logical form”,本质上还是句法。

李:
对 是句法。句法才是纯粹的语言学,到了语义就开始变味了。

白:
但是这标签贴了又不是最终落地用的,感觉不爽。要贴标签的话,还是只贴一次为好。句法不贴又何妨。

李:
在我这儿 语义落地靠的就是 svoc 句型,有了svoc 的框架,落地的句型 就一目了然了。 具体工作不过是给句型做细节条件的微调,然后就落地为具体场景的角色了。譬如 o 落地为 【发布的产品】,s 落地为 【发布产品的公司】:Apple launched iPhone 7 yesterday

白:
在我这儿,“可宾”包括的subcat范围,一是可以学出来的,二是仅仅跟少量词语的语义落地有关,没有大动干戈的必要。大多数落地(role assignment)的场景都不需要这个中介。

李:
把 s 标签 map 到 【发布产品的公司】这类工作,简直就是玩儿。 是典型的以不变应万变。不管产品和客户需求有多少变化 本质上 语义落地玩的就是换名的游戏。比起 parsing 这一层工作的繁难,信息抽取层面的这些工作太简明了。 虽然需要落地的谓词 都是少量的,但所有的谓词都逃不过句法的逻辑句型。 因此针对所有谓词建立句型模式 就形成了一种以不变应万变的结构准备,接下去爱怎么落地 都是一览众山小了 跑不过如来佛的手掌 。所以 这一层本身虽然不是客户的需求 而只是内部的桥梁,但我还是很推崇它作为语义落地骨架或桥梁的地位。

白:
如来佛手掌可以有多种造型

李:
那是。跳过它落地 完全可以想象。也许是偏好 总之玩一个主人三个仆从的游戏觉得很好把握,组合一下 也是非常有限的边界。不会做着做着 觉得进入迷宫 或搞不清漏掉多少。说着说着 觉得自己一方面批判乔老爷(参见【乔姆斯基批判- 李维), 一方面可能中了他老人家句法中心论、句法自足论的流毒太深 而不自知。

白:
从“有关系”到“是受事”,中间再经历一个环节好,还是直达好?我的选择是“直达”。至于“受事”是“发布的产品”,这只是一个alias。没有什么技术含量的

李:
对呀。正因为没有含量 所以就更像是游戏。真正有技术含量都在前期的 deep parsing 里面了,那才是自然语言理解的核武器。换句话说 svoc deep parsing 已经把句法做到通用领域的极致了,以至于落地到领域几乎就是一个换名的游戏,换一个领域容易接受、客户听起来舒适的情报标签。

白:
回到前面“吃食堂”,“食堂”可直接匹配“处所”,我说它是O不是O,有何意义?

李:
关键的 argument 还是:落地是千变万化的领域 和 各种不同客户的需求,但 svoc 永存 永远不变。只要领域用的是语言数据 这就是恒定的,就如二元关系的永恒一样。

白:
这里焦点不是有没有,是可不可以不用,不用是否一定差。语言学有很强的构造性,你构造他就有。角色本地名称是第一性的,通用名称是第二性的。对机器来说本地名称可以是不要名称,只有编号:第一个语义坑、第二个语义坑……,给个本地别名,就是公司、产品,给个通用名,就是施事受事。

李:
关于直达还是通过语义中间表达的桥梁,我也问过类似的问题。我诘问的对象是费尔默理论。在信息抽取的落地框架前, 有没有必要先经过一下他老人家的 FrameNet 的框架?我的答案是否定的:多此一举 没有必要。这就基本否定了 FrameNet 的实用意义。没有必要的理由是 FrameNet 理论上缩短了语义落地的距离,实践中增加了落地的麻烦。一个 svoc 的简单通用句型 分化到成百上千的 frames 去 还没有最终到达目标地。

白:
svoc也没有达到目的地,“有填坑关系”不是更干脆么,中间的过程,无论借助subcat锁定还是借助语序,都是自动化的。

李:
svoc 可控、intuitive,而且语言学家如数家珍。其实,说了半天,从落地对策的大类上,我和白老师是一伙的。标不标 svo 只是细节的差异,虽然从我的架构看,这个差异还是蛮重要的。

白:
语言学家如果是我培养出来的,用我这一套也可以如数家珍。

李:
但如果落地从领域落地泛化到通用的应用,譬如搜索,搜索没有预先定义的事件。svo 的搜索比较容易训练给大众,这与多数人的基本语感相吻合 who did what.  这类重要应用增加了 svo 的独立价值。你要搜索产品发布事件?好 那你就搜索:“发布” 其宾语是 【产品】。至于这个宾语在语言中有多少变体的句式 那都不是大众需要关心的,deep parsing 早就 normalize 了。

白:
这只是一个动词被“实例化”的wizard

李:
如果不标svo, 搜索的时候可以这么说,搜索 “发布” 其二元关系词是 【产品】,也可以达到类似的结构搜索的效果,返回精准的产品发布事件的清单来。比纯关键词词搜索精细高明多了。可是如果客户想 搜索所有受雇的人 ,在 svo 系统中 就搜索:“雇佣” 检索出其【宾语】出来。在不标 so 的二元关系系统中,雇主和雇员就混在一起了。

白:
1、你无法排除取消发布、拒绝发布、打算发布、能够发布……这些用模态词沾染过的发布;2、发布的如果不是产品而是新闻怎么办。svoc自身无法区分哪些是产品哪些是新闻。

李:
这些都不是问题。或者说不是因为增加 svoc 而新出的问题。svoc 反而为在何处解决那个问题提供了蓝图和便利。这都是另外层面的问题,譬如节点的条件、数据的来源、李ta data 等。与评价 svo 本身的利弊没有关系。

白:
我的问题是,如果这些区分导致svoc这一层反正信息不足,反正还需要借助另一层的信息,那么直达那一层有何不妥

李:
但信息不足是有不同层面的。任何图谱(graph),是 arcs 信息不足,还是 nodes 信息不足?还是超越句内结构的discourse不足,还是 meta data 不足?不能混谈,虽然这些不同层面的信息有相互弥补的作用:戏(arcs)不够可以词(nodes)来凑。

白:
标签不足。

李:
arcs 不标标签 是一个极端。arcs 标了 soc 是多了一些句法结构的关键信息,soc 再细化为董老师的90多种逻辑语义,就又更多了信息。nodes 呢, 啥也不标 是一个极端, 标了 pos 有了一些信息分类,再标 subcats,进而做NE实体标注(包括产品),直到引进 常识本体乃至领域本体(ontologies), 信息就越来越丰富。自然也越来越难维护和掌控。

白:
反正要上三楼,就是二楼的高矮问题。

李:
对。

白:
如果为了上一个高的二楼,导致付出的代价接近上三楼,二楼就取消算了。三楼的细活儿做得越好,二楼矮点儿就越没关系。

李:
为搭建二楼 svoc 所需要的信息及其技术手段,基本全部可以继承下来为三楼服务。所以 为什么说 parsing 不仅仅是所看到的树结构,也不要指望一个 offshelf parser 就很容易语义落地为产品了。parser 要成为语义落地直通车, 需要借用 parsing 本身所带来的资源积累。结构图只是这些资源的一个最容易彰显的部分 但绝不是全部。

白:
自带插销插座,到三楼装配起来就easy多了。

李:
完全同意 同感。但 “二楼就取消算了”,不愿苟同。问题是三楼是 moving 的,业务场景变化 客户需求变化 产品角度变化 ......  都使得三楼细活显得琐碎而不容易概括。

白:
不会
那都是贴牌问题,瓤不是moving的。

李:
二楼是清晰定义的目标。在我看来,二楼的 svoc 正是不变之瓤。

白:
我的二楼是让有关系的都勾搭上。是什么关系你们到三楼谈。但是自带了三楼才会用到的插销插座的,不妨提前锁定。到了三楼,就只剩贴牌了。但是也有需要必须在三楼才能锁定的,二楼无须代劳和强制。

李:
理论上 必须在三楼做的 只是领域知识。这些知识在二楼是避开的。

白:
另外贴牌是很外在的东东,没必要单独一层,只相当于在三楼化个妆。只需要示例就可以让领域的人干,都不用跟语言学家打照面。

李:
然,贴牌很多时候不过是 config,可以让用户或产品经理根据喜好而定,随时更换。

白:
跨领域的实体数据库,这个环节可以众包。领域知识说起来是无底洞,但是做法不同收效相差很远。根本分歧是,知识的使用是“推演”的套路还是“联想”的套路。“推演”的套路精准但笨重,只能借助人工而无法借助大数据。“联想”的套路模糊而轻盈,不过多依赖人工而寻求借助大数据讨巧。只要模糊给出的效果是应用可容忍的,“联想”的套路就会胜出。所以,哈工大做的“事理图谱”如果沿着联想的路往前走,我很看好。有理由相信,语言处理需要的知识,不是“精准”而是“轻盈”。对话场合大不了还可以追问。文本场合虽然不能受理追问,但受众有相对充分的时间调动“精准”的手段。二楼的高和矮,如果涉及到二楼的业绩,确实另当别论。如果二楼三楼的发明人都是公司的大老板,或许另样格局。这两碗水怎么端都是平的。

 

 

【相关】

【语义计算:李白对话录系列】

乔姆斯基批判- 李维

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白毛55:漫谈 NLP】

立委按:谈笑有鸿儒,泥沙龙写照也。毛白立三剑客,隔洋神交,日颠夜倒,天马行空,人生快事也。语言理解,人工智慧,软体硬件,万言不离其宗也。铿锵三人行,行迹可存,笔记于此,以飨同仁也。

白: 转:《夏洛特烦恼》我以为主角叫夏洛特 。原来男一号叫夏洛 ;接下来会不会有《郭敬明天见》《周立波很大》《吴奇隆胸记》《王宝强奸案》《郭富城会玩》《井柏然并卵》《黄秋生无可恋》《贾乃亮了》《奥巴马上来》《周润发财了》《权志龙虾壳》《金正恩仇录》。

李: 边界之争。夏洛特是词典一方 特+烦恼 是句法一方 作为一般原则 句法认输。所有的边界之争 你总可以找到一种语境 来支持任何一方,但是实际系统中 还是按原则办事 除非某特定语境出现频率大 而且可以形式化被捕捉为原则的例外。“郭敬明” 是词典,“明天”或“明天见”也是词典,词典与词典相争。 谁赢呢?要分不同情形。情形对应的是 heuristics。对于此情形,“明天见” 赢。因为有这么一条 heuristic:最少词数胜出。郭敬/明天见, 算两词。郭敬明/天/见 是三词。更深的理由是 音节数量的匀称的 heuristic:3 1 1 不如 2 3 匀称。

白: 无后坐力炮,经常被读成2 3节奏,按构词法,应该是1 3 1。可否不那么早定输赢,都打到上一层。

立:可,keep ambiguity untouched 的办法 也是一招,不过加大了后去 parsing 的搜索空间 也可能不妙。

白: 上层用Ngram也无所谓。看一个滑动窗口激活一个还是两个词袋。

李: 这就是拼积木,难的积木留在最后拼。拼积木ngram比cfg容易,没有爆炸的问题。

白: 正是。

李: 汉语的节奏对称还是很厉害的,举反例总会有,但是实际中发现,音节数的条件,比起其他的条件(词类、子类、语义分类)往往也很好用、可靠。另外一个相关的体会是排比句式,汉语(包括古汉语)排比句式的使用往往可以把本来占有统计劣势的 parse 变得有效起来。不过,至今没想到利用排比句式帮助消歧的好的实现办法。感觉排比的发现和使用是处于另一层,而且排比的 scope 不好事先确定。

毛: 对于汉语NLP, 二位觉得有什么好书可以推荐?不用很深,科普就行。

李: 我很多年不看书了,还是白老师推荐吧。最好的是白老师正在写的,这个无疑问,但你需要等。汉语 NLP 论文献,80% 谈的是切词,全领域走火入魔了,陷入细枝末节和烦琐哲学,很大程度上非常可惜的一种智力浪费。

毛: 等倒没关系,反正暂时也没时间看。其实我不太会有机会用到这方面的知识了,我这是“朝闻道夕死可也”。尼克,Unix的那些Utility,每个都是基于一个while主循环,这就是lambda的语义。Java8让你有一种简洁的方法来表达这种语义,然后它替你生成这样的循环。

白: 自然语言的语义,也有lambda的份儿。

毛: 是,所以我觉得数据流在 NLP 方面可以发挥一些作用。

白: 表函数、表关系、表部件的词(中点、姐夫、抽屉)都是。需要一个带坑的语义结构去定义。坑,就是约束变元。

李: semantic subcat?  Syntactic subcat specifies the form of roles in a frame,correspondingly, semantic subcat specifies the preferred semantic classes for the expected roles of a frame. 语义 subcat 都是必填的,虽然句法上还是可省略。

白: 坑有必填的和可选的两种

立:如果加上可选的,那就超出了subcat,而进入 cat 了。因为可选的角色一般针对大类,而必填的才针对子类。

白: 这点商榷一下,时间地点等,往往不是必填的。

李: exactly,时间地点等边缘角色针对的是大类。所有的动作、行为都适用。它们都在时间与空间中存在。而一元谓词,还是二元谓词、三元谓词,甚至零元谓词,这些都是子类的区别。天气动词语义上是零元的,虽然句法上可以加一个:It is raining 、老天下雨了。世界语最接近逻辑,语义的零元,句法也是零元,就不用加这种无意义的主语:Pluvas。

毛: 我觉得最有前景的可能是并行多路的parsing。就如你们刚才说的“无后座力炮”,如果系统能立马分出两个数据流分支,按不同规则加以解析,然后由高一层的规则判断何者为优,那效率就高了。这在NLP方面不是什么新概念,问题在于能否搭出这么灵活而高效的系统。

毛: 但是NLP所处理的原料不太可能是世界语的文本呀。

李: 只是说明语义和句法之间既对应,又不完全对应的情形。比较不同语言,这些不对应的部分反映了不同语言的应对策略,这是很有意思的对比。

白: 标签化的表达比函数式的表达,应对非必选的东东就灵活多了。

李: 英语用 it,谁知道这 it 是什么东西?汉语比较具体,用的是老天。

白: 相反吧,汉语不说。

李: 汉语也可以不说,“下雨了”。如果不说,那就与世界语一样逻辑了,躶体出境。

白: 不说不是省略,是比省略高明的模糊。

李:  这里不是省略,因为逻辑语义上没有这一元的地位。

白: 语义上就有0元谓词,但是句法上没有地位,于是搞了个貌似省略的充数。

立:”老天“ 直译过去就很可笑:The sky is raining, Mother Nature is raining, or, God is raining?

白: 比it还富有想象力.

高: 像黑格尔说的,Was ist Das.

毛: 可以用函数式的方式来处理标签,把二者结合起来。我相信在NLP这一边已经有了许多很好的概念和方法,问题在于怎样搭出好的系统来高效加以实现。所以数据流应该有用武之地。

李: 语言很有意思,可以从三层来看这种“坑”。Filmore 把这个叫做【格语法】,他写过 “Case for case”,许国璋教授翻的,叫《格辩》,得其神韵,很妙。《格辩》是与乔姆斯基唱对台戏,是反乔派中最有分量的历史文献了,高举的是语义大旗。对NLP有深远的影响。所以,“坑”(case)可以分三层来看。第一级是 morphology case,这是“格”的本来用法,主格、宾格、工具格等等的词尾形式所表达的。第二级是 syntactic case,刻画的是 subcat 对语言形式的条件要求,包括具体语言中每个 Role 的词序、介词等的要求。第三级是 semantic case,刻画的是输出框,这是各语言共同的,又叫深层格,是 Filmore 提出的概念,与乔姆斯基的逻辑形式(logical form)对应。要几个元(格)是由谓词的概念子类决定的,它反映的是自然的关系(可以包括常识)。可是每个语言在实现这些深层格的时候,会利用不同的句法或词法的形式,于是穿上了句法或词法的外衣。

毛: 好吧,你们先掐。

白: 毛老,函数式和标签式表达,只有一墙之隔。标签其实就是最高抽象类的里面的“准”全局变量,谁都可以继承来塞点私货。不塞也无妨。

毛: 所以,我认为应该重启五代机的研究。有人说现在神经元网络是六代机了,我认为不对,因为说到底总还是“人工智能机”。

李: AI机只是六代机的一个引擎?

毛: 至少是现在,通过图灵测试是计算机的上限,所以不应该有高于AI机的计算机了。

白: 把RNN、多层FSA、多层词袋这些东东做成硬件就是了。

毛: 神经元系统只是一种计算模型,它也要通过编程在计算机上实现。神经元网络的运转说到底还是程序的执行。

白: FPGA实现就很好,能做成NLP协处理器就更棒了,NPU。

毛: 对是对的,但是如果变化太多,硬件实现就太不经济了。另一方面,如果有很多这样的部件,那么如何灵活高效地加以调度,根据具体情况动态搭出合适的系统,这本身就是个问题,这就又要涉及数据流了。我们平时在碰到困难时说要 “换一个思路”, 实际上就是要换一种数据流。

白: 希望NLP能早日成熟到毛老可以对接上的水平。

毛: 我觉得很可能是反过来的, 搞系统的人何时能搭出适合于NLP的系统,NLP Oriented Systems。 问题是搞系统的人一般都不懂NLP。

白: 是NLP这边说不清楚。回头说格。 “把”在汉语里号称是宾格介词,但是遇到“把我累死了”这种例子,又找不到哪个谓词提供宾格的坑。实际上,“累”是“使累”,是一个使动用法。所以顺序很重要,先使动 ,后宾格,一切OK。先宾格,后使动,北都找不着。

毛: “我累” 怎么解析?

白: 主谓啊。但“我累死你”不是。

毛: 哦。那就是“我使你累死”

白: 虚线框内形成一个虚拟谓词(复合然后缩合而成),对于这个虚线框,“你”貌似它的宾语,所以也获得了使用“把”表示宾格的能力。在句法层面,“使”不见了,“把”却在横行。

毛: 那么这种“使动”的属性就作为标签加在“累”这个词上?

李: 累和死 先合成,然后针对宾格的坑就出来了。“累死”这样的算是合成词,不过这种合成词是 productive 的。

白: 气糊涂,饿疯, 都一样, "忙晕", "乐坏".

毛: 累死 应该是 累到死 累到要死的程度 的意思,这个死是补语吧?

白: 是补语,语义上对应一个程度标签,非必选的,所以不算框的正式坑。加标签是随手做,填坑是大动静。所以正规军和游击队,待遇就是不一样。

李: 累死我了 --》 把我累死了。符合正常的位移转换(movement/transformation)方式。累(V的某种子类)+死 就是一个造词小规则,是产生式合成词的规则。符合这个规则的合成词就带有如下特征:及物,具体说,是使动的及物,并有表示程度的结果(“死”,不是真死)在内。带“把”提前是及物的共性,不用管。只要这个规则成功的时候,subcat 标签加对了,后去就顺理成章,无需特别操作。

毛: 所以呀,面向NLP的系统应该很方便很灵活地让你动态挖个坑,而且是同时挖上好几个坑,可以并行去试试不同的坑。这样才好。

白: “这些馒头把我吃胖了”。这个复杂些,有主有宾,只是虚线框里面拧着,了的时态含义省略了。胖,有一个坑。使和吃,各有两个坑。复合后缩合的虚线框部分,只有两个坑,一主一宾。与“吃”相比,正好颠倒了。所以,这类补语不仅是表程度,而是具体表致使后果的程度。

毛: 期待白老师的科普书早日出来。你的书里会画这些图吗?

白: 会。一个框,本质上就是一个函数定义式,也就是lambda表达式。入矢代表输入(自变量),出矢代表输出(因变量)。复合的时候,正是玩lambda表达式的时候,而且都是带类型的。

毛: 对呀,我在想这些图应该能转化成DAG式的数据流。

白: 每个坑都有类型,譬如,吃,输入类型两个坑分别是有生命、食物,输出类型是事件。

立:对,坑有两个信息:一个是坑本身的类型(what role),一个是坑里面的东西的“格”条件。role 是坑的主人决定的(词典里面的 谓词 subcat 或者规则产出的 谓词 subcat),“格”其实也是  subcat 题中应有之意,规定好的。格是输入匹配条件,roles 是输出事件语义。

毛: 数据流,结合立委的多层 FSA 模型,如果能做成通用的系统,我觉得是个很好的进展。有没有统计过像这样的图大概有多少?(以复盖常用句型为度)

李: 常用句型几十个吧,10-100 的区间。

毛: 哦

李: 看定义的粗细,谓词 subcat 最多只有三元 (所谓 S【V】OC),元里面还可以细分,大体 < 100 可以搞定

毛: 这个就可以用上分层嵌套的方法。

李: 这段对话,毛老、白老师,要我整理出来么?你们定,如果要,我就整理成博文。这次是你们俩主唱,我只是敲边鼓的,纯粹语言学的边鼓。

毛: 那当然好啰,要从尼克提到lambda开始。

白: 没问题啊。

李: 我其实不懂数据流,函数式略懂皮毛。lambda 在学语义学的时候学过一点,但是一直没完全整明白过。

毛: 那是工具性的,NLP本身才是关键。

李: 不过 subcat 在产生式合成词中会有变换,是我在 Morphology 课上学过的,而且学过的案例相当多。复杂案例的变换也不少。白老师的后一个例子是复杂案例之一。语言学家很善于总结这些格框变换的模式。

毛: 尼克最喜欢搞锵锵三人行, 咱就来一下三人行。

立:毛老、白老师,想起一件可能与数据流相关的事来,先写在这里,省得忘了。信息抽取(IE)这个领域刚开创的时候(20年前,由 DARPA 主持推动的 MUC 启动了这个领域,是NLP的实用化努力,非常了不起的一个推动,把NLP从象牙塔拉了出来),主流统计派还没回过味来,因此IE领域中的规则系统并不少,因为规则简单直接好用。其中,规则系统中,比较有影响的是斯坦福研究中心(SRI)推出的所谓 Cascaded FSTs,现在想来就是毛老说的数据流了。虽然后来我领导的小组也一直做多层FSAs,有时也贴上 Cascade 的标签,二者区别是显著的,虽然本质相同。斯坦福做的 Cascaded FSTs(finite state transducers)是把每一层编译的 network 直接用“数据流”串起来的一体化流程,cascade 是编译(或运行?)内部的机制。而我们做的所谓 cascade 就是从外部叠加调用,这是传统软件项目中管式系统(pipeline)的模块化开发,然后在运行的时候,从外部来接口,是大路货的路线。
洪: 看看有没有modern Hadoop实现

李:  总之,昨天我还发懵,搞不清为什么谈多层NLP的时候,毛老非要强调数据流,今天醒过来,原来如此。不过,我个人的感觉是,那种内部数据流的 Cascaded FSTs 后来逐渐淡出视野,一定有它内在的局限或问题。而我走的外部pipeline系统的方法,却得心应手,开花结果了。尽管理论上,数据流的路线应该更容易高效,更容易固化,但是肯定是遇到了什么坎儿过不去。

白:关于数据流,一直感觉NLP涉及的比较细粒度,就算自动机的堆叠或者分层的词袋,仍然粒度过细,一个句子里就可能多次流动,更不要说RNN这种自己转着圈玩的了……把这么细粒度的流动用大数据处理的利器来玩,是不是有点高射炮打蚊子?请毛老指教。

但是,自动机堆叠一个实现上重要的架构就是pipelining。底层边吃进输入,边产生阶段性的输出,又变成上一层的输入。这个pipelining的框架如何在系统层面优化实现,很有油水。

还有,当数千个自动机协同工作时,它们当中一定有共享的数据结构和计算,如何进行优化,乃至硬件层面的优化,这里面大有文章可做。

毛: 白老师说的对,数据流运用于NLP有许多细节的问题,特别是粒度的问题,还要好好推敲,现在还只是个朦胧的方向。粒度的问题一方面取决于具体的业务逻辑,一方面也跟硬件有密切关系,例如有没有GPU这一点,就对数据流的粒度和形状都会有很大影响。
李: 毛老,这是 SRI 的 work,叫 FASTUS。我在找他们描述 implementation of casaced FSTs 的部分,好像言之不详。以前不求甚解,反正自己已经找到了一条顺风顺水的路子,管人家怎么实现的,用的啥数据流。
毛: 好,谢谢立委。Cascade肯定就是pipelining,这就是一维数据流。
立:这个数据流的概念上没有问题。我是想知道,他们是不是把一个模块的 network 与pipeline 线上的其他 networks 整合成一个 integrated 的 network?我想知道,是不是整个编译全系统,还是像我们一样,每个模块是单单编译,单单调用的?
白: 如果有同步的语义操作,我相信会的。
李: 我的印象是,他们是编译全系统的,所以我们一直承认自己是 external 的 cascade,我们只是外部连接。重点的重点是,里面有一个共同的数据结构,无论 Pipieline 怎么流,不外是对这个数据结构的更新而已。
毛: 所以立委和白老师得要多掐,我就在旁听着,边听边想数据流的事。
李: 唉,还是没看到实现细节,保不定他们所谓的 cascade 与我们的做法一致,不过是利用共同的数据结构作为粘合剂,一个模块一个模块的调用。

早年的文献中,最原始最愚蠢的数据结构是 string 进 string 出,然后他们描述怎么在这个一维的string上加各种括号和标签。下一个模块必须在模式匹配的时候要跳过这些人为的括号与标签,才能更新信息,那个愚蠢透顶,不可思议。我还真照文献说的实现过一个prototype,一边做一边骂这帮傻老帽。那个玩意儿根本做不下去,超过两层的处理就焦头烂额了。

后来有人(譬如英国著名的NLP平台 GATE)用 XML 作为模块间连接的标准接口,本质上也还是 string,不过是多了一些现成的工具,可以用来 parsing 这样的数据成内部结构。当然,在不同系统对接的时候,开发者和使用者是不同的组织,XML 作为标准接口往往是最少扯皮的一种方案,因为内部的数据结构不具有这种传递性。然而对于一个系统内部的各模块,用 XML 做数据传输几乎是胡闹。做个 prototype 也许可行,做应用肯定不行。

毛: 立委讲的外部连接和全编译的问题,我理解就是节点间动态局部连接的问题。全编译就是一次性把整个数据流搭好,以后就不变了。所谓外部连接,就是按需要把若干计算节点局部地临时连在一起,灵活可变。当然是后者更好,不过应该是全局框架中的局部变化。我说的要研究怎样根据NLP的特点灵活构筑合适的数据流,就是这个意思。

全局框架的保证就是一个共同的丰富的可扩展的数据结构。只要保证这个数据结构的设计是合理的,一切就好办了。

毛: 昨天群主一声吆喝,立委说话的风格还真的就变了,马雅可夫斯基的调调不见了。

李: 从善如流嘛。

设计一个NLP专项平台,就包括数据结构的设计,NLP语言的设计,该语言的编译和执行,以及数据流流程的配置和优化。这几个环节都是相互联系的,没有丰富的经验根本玩不转。

毛: 在数据流、即函数式程序设计中,不会由多个节点对同一份数据结构进行修改,这就是输入是否immutable和有没有共享变量的问题。不过对于NLP来说这属于实现细节。

李: 为什么不会由多个节点对同一份数据结构进行修改?每个节点都是单向递进的,数据结构因此变得越来越丰富,分析越来越深入,是为 deep parsing。简单的设计允许数据结构信息的增量更新,不允许或者制约了对数据结构的破坏性操作。譬如,推翻一个内部结构,进行重构(因为 patching 的需要)。但是聪明的工程师在实现的时候,不认为破坏一个局部的内部结构有太严重的问题,不过就是实现费劲一点罢了,屁股总是可以擦干净的。所以我说,只有想不到的,没有做不到的,我才不管他内部怎么实现的,只要用起来顺手就好。只有在实现影响了速度的时候,我可以做让步,允许工程师对我的操作做一些限制。

毛: 如果允许,那就有同步等等的问题,不同节点之间就会互相牵制,而且这样的系统是最容易有bug的。而函数式程序设计,其基本的要求就是:每一个计算节点都是数学意义上的函数,都没有副作用,这就要求:1)没有共享变量,2)所有输入都是immutable。把数据流系统设想成一个供水系统,如果水管在一个点上分支,那么在其中的一个分支上投毒,是不会影响另一个分支的。

李: 照这么说,只允许增量式更新是管式系统开发的安全原则?一开始是增量式的,后来是我坚持要多给我一个做 patching 的手段,打破了这个限制。如果不做 patching,我就只剩下一个手段,那就是先扫除例外,后做一般规则。如果允许 patching,我就多了一条路子,先做大路货,然后遇到问题或例外,再做修补。表面上,这两个办法不过就是数据流中个性与共性操作的位置不同而已,但是实践中总是多一条路子,用起来顺手。其实,做破坏性操作,我开始是有担心的,总怕屁股擦不干净。但是,好像还是在可控范围内。

毛: 对,你所说的对工程师们的能力要求,问题就在于那种结构模式本来就是很不可靠的,得要非常高明的人才能对付,所以一般都尽量把同步、互斥这些事情移到操作系统和语言编译器中解决,因为那些都是真正的高手才玩得。但是即使如此,对于复杂的系统,如果不采用函数式即数据流的结构和方法,难度还是很大。

李: 原因可能是,破坏的结构不过是中间的局部结构,还没到要用它的时候,只要最后系统出来的结构是合理的,就似乎没有问题了。

毛: 你挺幸运,手下有几个高明的工程师,要不然恐怕还做不出那么些成果。

李: 因为我是他们的唯一顾客,顾客是上帝。我一直是这么说的。

毛: 端着人的饭碗,就得听人管。

李: 好在我不懂系统,否则可能不敢这么大手大脚。

毛: 但是,这是有限度的,问题再复杂一点,他们可能就会对付不了。这时候就得考虑模式的改变。不走邪路,也不走回头路,咱走正路。

李: 同意这里面有个度。另一方面,系统太漂亮了不顶用。上得厅堂,下得厨房,这个标准对做系统也一样。正路就是厅堂,厨房就是我这样的实用主义,以邓小平思想为指针。

原载 泥沙龙笔记: 铿锵三人行 (2015-10-8 )

 

【相关】

【相关】

【立委科普:漫谈语言形式】

【语义计算:李白对话录系列】

 

【李白之50:符号战壕的两条道路之辩(续)】

白:
我的思路是:句法维护纯二元关系,模式编码进subcat,直接对接语义。纯二元关系对模式既兼容又有更大的robustness,不用白不用。

李:
pos 支持句法做粗线条分析 subcat支持逻辑语义做细线条分析?

白:
必须的

李:
那倒未必。可以结合做的。显式的句法语义关系可以一起做, 没有句法关系的隐式逻辑语义可以推后。subcat 结合句法语义。

白:
模式方法中,小词的缺省和成分的倒置,只能认为是不同的模式,不穷尽则不work。二元关系方法中,缺了小词也好,倒置也好,在subcat那里都可以重构出来。输出是现成的,既可以跟着cat一起输出,也可以等语义落地了再输出。这是个简单的配置问题。

李:
缺省不怕:就是 optionality,不是模式必需的。倒置的确需要增加模式,没办法,模式也是线性。

白:
“我紧张,一见到那个人。”
省略了“就”,而且倒置。但是在二元关系方法下,这都不是问题。

李:
但n元模式,在多层系统中,并非全排列模式。模式负担完全可控。也可以类似于二元的样子,一层层做:起码动宾与主谓通常被认为是不同层次的组合,无需SVO全排列。推得极端一点,n=2,多层n元就成了2元,也是可行的策略之一。

白:
对“一”的subcat标注,已经隐含了对“就”的“脑补”。
语义frame任何语言中都不必然是二元关系,这层落地映射,本来就是缺不了的,并不是因为模式而特设的。

李:
exactly

白:
句法专注二元关系,好处多多。

李:
1 【一VP(S)就VP】
2 【一VP】
也就是两条模式捕捉的事儿。都很直观 intuitive。捕捉了,还不是要怎么玩语义怎么玩。

白:
这实际是语义直观,跟那些多元关系是同等对待的。

李:
第1个模式涉及5元,第2个模式是bigram,我说过,模式也就是以三元为峰值的正态分布。并不是想象的那样组合爆炸,完全在可掌握之中。最大特点还是其接地气,直观,容易 debug 和维护。不就是给语言结构拍照吗?所谓句型练习(pattern drills),人学语言也就是这么个事儿,我们当过外语老师的,都知道 drills 的重要。

白:
那个完全是UI的问题

李:
如果你做二元配对,我心里想的是五元模式,【一VP(S)就VP】 这样的模式,你如何把二元的过程UI到我感觉舒服的五元模式呢?

白:
双宾语结构也是一样啊
二元的过程是在机器里发生的,五元模式是结果,不在一个频道上。边加够了,五元模式就出来了,就这么简单。

李:
机器发生的过程 不是基于词典的标注吗?这个标注不需要人去做 去维护 去 debug?

白:
但过程总是一个一个边加的

李:
那是因为你的 parsing 是 PSG的 parsing 过程,虽然表达的是DG。这个 PSG 的过程,是遇到任何物件都不能跳过去,要一个一个的叠加组合。

白:
能跳,否则就无法处理交叉了

李:
从你画的图看,还是一个不跳地在叠加,只不过叠加的顺序可以不同,然后导致一些远距离二元关系的最终建立。(当然你的X见人见鬼,先加上再说,也算是一种模糊应对或“跳过”。) 换句话说,parsing 的总过程与经典的 chart parsing 没有看出大的区别。

白:
这理解是错的

李:
可能。也许我看得不够仔细。

白:
从数学上看,模式引发的步骤不是分析树的“构造”而是分析树的“映射(变换)”。这个映射环节引入PSG还是引入DG的差别是细节的差别,核心的精神都是一致的。如果你说的“跳跃”意味着“映射”的引入,我目前确实没有,但 1、这并不影响在较上层的节点上,映射的结果和非映射的结果会得到相同的语义落地。2、如果一定要引入映射,与我现在的体系也毫无违和感,可以兼容处理好的。

另外,不包含映射的技术方案并非都是一丘之貉,彼此之间可以有天壤之别。这实质上是模式驱动的“一揽子”填坑动作,可以加速分析进程(就是你说的“跳跃”),又不破坏填坑的基础架构。但是我要说的是,既然看到了这个实质,映射的触发就不必拘泥于从左到右的模式匹配,一定程度上的词袋模型一样可以触发!实际上我在subcat里面做的事情就是这种不完全信息的模式触发,只不过做在了语义层。语义层都能做,回头做句法层纯粹就是锦上添花,照顾语言学家的UI感受而已。我不看好从左到右依次匹配,但我认同通过映射实现跳跃。语言学家不应该成为排列组合匠, 更不应该为某项排列组合的缺失而背黑锅。除非该项排列组合有明显不同的语言学意义。此其一

另外一个因素就是模式在激活之前的状态一定要有一个载体,而且这个载体必须跟着分析进程动态维护。伟哥有分层的fsa做这个事情,我是用词负载的subcat(实际上就是词袋)做这个事情。词袋的好处就是对排列无感,只认组合而且允许组合缺斤短两。在某些场合,词袋的部分填充会造成激活歧义。所以要用“状态”记录这些有歧义的部分填充(套用时髦的量子话术,这就是几个候选词袋的“叠加态”)。随着分析进程的展开,叠加态会“坍缩”到确定的词袋上,完成激活。

李:
大赞。...... 先赞后辩。
没全看懂 但似乎又懂了 貌似透过做法看实质 有不少共同的观念。消化消化。

白:
“人肉”本意是名词。在“人肉搜索”这个短语中是副词(N降格为S+),意思是用活人去深挖特定对象的隐秘信息。再简化一点去掉“搜索”二字,“人肉”就成了动词了(S+升格为S)。升格降格操作的活标本啊

李:
人肉搜索 不是宾语提前?把衣服扒光 不是人肉?

白:
“这个公司的所有人都是好样的。”居然有歧义。

李:
“所有-人” 歧义(hidden ambiguity): 单数 vs 复数, 复合词 vs NP,黑箱 vs 白箱,[possessor/N] vs [All people]

白:
“发言的是我们公司的。”

李:
1[human-action 的] --> NP[human]
2. [human|organization 的] --> AP[possessive]

1 + be + 2 --> 1 belong-to 2

“发言的是我们公司的。” --> [发言的 human] belong-to [我们公司 的 possessive】

所谓句子解析及其语义落地,不过就是模式的拼接。

白:
“作业你是不是不打算做了?”

李:
1 [plan V] --> plan-V (verb compounding like)
2. [ NP VP] --> S Pred
3. [NP S Pred] --> Topic S Pred
4. Topic S Pred(/O) --> O S Pred (所谓先耍流氓后结合:有“做-作业”的可分离动词的搭配关系更是坐实了远距离勾搭)
5. Vt NP --> VP
6. Vt --> VP(/O)
7. "是不是不" can be treated as one compound 小词 whether (or whether-or-not)

白:
是你打算,还是作业打算?是你打算做作业,还是作业打算做你?由什么决定?就本例而言,语序已经完全乱套了,只有subcat能决定。好在我们知道,计划类动词具有穿透性。打算的两个坑,是human、event;做的两个坑,是human、thing。这两个human就是穿透确定的共享萝卜的坑。往前面看,能填的只有“你”。“做-作业”离合词的远距离锁定,从另一个侧面做了神助攻。所以,不管前面“作业”和“你”的顺序怎么折腾,它们的subcat如同狐狸尾巴,总会泄露真正的结合方向。我们不需要S/O/Topic这些名目,直接根据萝卜和坑的subcat相谐性,就可以选择行的,排除不行的。也不需要针对不同语序设置不同模式。跟着词条走的cat/subcat就足够确定目标了。

“你懂的。”其中的“的”就是句末助词,标记为+S。“我是不懂。”其中的“是”是表强调义的副词,标记为S+。“你是不懂的。”其中的“是”和“的”借助这两个修饰语标记完成了绿叶的使命,把红花凸显出来。但是这种做法的好处更在于,“是”或者“的”之一缺位时,句法上照样work。红花之间的关系照样不变。不需要针对几片绿叶的有或无的排列组合一个个遍历。

李:
这话说的,好像世界上就有人有直道不走,偏要走弯道似的 哈。白老师雄辩。
排列组合遍历很多时候是免不了的,除非可以证明这些绿叶红花的排列没有意义, 所有绿叶都是可有可无的。语言的最大形式特点之一就是排列,或曰线性次序。概念通过语词,关系通过小词以及词序,线性地流进我们的耳朵。小词和词序,作为显性语言形式(参见【立委科普:漫谈语言形式】),其功能本质是一样的。由于信息和形式的冗余,厚此薄彼可以作为一个可行的策略,作为一个精算师的算法之一,但拔到理论高度说,让小词负载结构,赋予重任,同时忽视词序来取得鲁棒,总是很难让人信服的。

汉语的省略小词,是如此普遍,就跟汉语的词序灵活一样,都给鲁棒提出挑战也留下空间。你可以厚此薄彼作为一个 parsing 策略,别人也可以厚彼薄此作为一个策略。更有人二者都不厚不薄,利用模式,用?(optionality) 传达鲁棒,用显性排列形式的 obligatory 出现(何时、何地)来表达精准及其语义落地。有何不可?有何不好呢?能想到的不好都是实践层面,而不是理论层面,譬如:(1)可行吗?组合爆炸,排列得过来吗?(2)即便不组合爆炸,有本事伺候排列吗?(可维护性)

可行性的问题已经有答案也有实践,就是多层。Note that 这个多层也不是单单为了可行而采纳的。多层反映的是自然语言的 configuration(参见乔老爷杆杆理论,X-bar,科学网—乔氏X 杠杠理论以及各式树形图表达法),也是语言本质之一,譬如动宾(VP)与主谓对于多数语言就天然不在一层。

多层排列的可行性,其理论基础在于人脑记忆的有限,自然语言的可学习性。如果语言本质就是排列的组合爆炸,人也无法学习语言了。我们所做的不过是瞄着人 parse 语言的样子,去模拟实现它。符号逻辑的模型透明性和可维护性在多层模式里面得到了彰显。

第(2)个问题是本事问题。的确多层排列算法不是每一个人都玩得转的,就如小词负载结构兼以隐藏知识的大数据中间件除了白老师迄今无人能玩一样(甚至无人想到了这条路,参见【李白之15:白老师的秘密武器探秘】)。两条路线都严重偏离主流,主流人才的多数或者无视或者没有历练/本事来玩转这任何一条路线。

正如尺有所长,寸亦有所长。如今是各自玩各自的。区别在于,这个战壕自认为可以对nlu挖掘更深(这一点在下确信无疑:毕竟坐井观天一辈子了,天可能还是没看清,但井的深浅是清楚的,如数家珍;而且不需要做天外比较,就可以得出结论,因为自然语言在这口井里面基本是已经见底了),主流的战壕在我们不过是摘除低枝果实(这一点无法确认,保不定哪一天主流就突然从导弹演化为核弹,也未可知,彼此祝好运吧)。

白:
小词“可”负载结构,不是“仅”小词负载结构。语言的层次性在技术上“可”通过分层fsa消化,不是“仅”通过分层fsa消化。模式也不是“仅”通过负载结构的小词消化。同样负载结构的实词、算符优先序,都在推波助澜。一个句法体系和技术体系,一些特色或许突出,但贡献是多个特色联合作出的。

我不希望受众被误导。

李:
哈 我也不希望误导,或被误导。
其实,因素比重的差别,还是构成了技术路线的不同。也许用“小词负载结构”(的因素)来概括或代表白老师的路线,就好比以“多层专家词典排列模式”来代表的立委路线(听上去好耳熟,对了,历史上有过被毛委员往死里批判的立三路线)一样,都是不准确的。但仔细看过讨论系列的会了解其中的路线之别。

二元句法在前,逻辑语义在后的策略之所以可以成功,我觉得是因为有了“大数据中间件”的助力,否则很难想象那么简单的句法操作可以应对那么复杂的语言现象。所以,让我 wonder 的主要是大数据中间件,如何训练如何使用的。而对于二元本身,特别是小词负载结构,相对于多层专家词典的模式匹配,我没看出多少优势。如果硬要评价 pros and cons,从我的角度,前者长于简洁(也许也增强了效率)和鲁棒,后者更符合语言学家的语言认知和描述习惯,可以更加从容地对语言做精细而不失鲁棒的描述。

重要的是,二者同属符号主义,同一战壕,也似乎都可以包容对方。

 

【相关】

【李白梁49:同一个战壕的两条道路之辨】

【李白之16:小词负载结构与小词只参与模式条件之辩】

【李白之15:白老师的秘密武器探秘】

【立委科普:漫谈语言形式】

科学网—乔氏X 杠杠理论以及各式树形图表达法

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白梁49:同一个战壕的两条道路之辨】

小词负载结构 vs.  模式专家词典

白:
我举的例子“这个字他是不会写错的”意思是“他不会写错这个字”。

李:
【是 …的】 小词筐式结构 里面包了一个谓语 表示肯定的语气。如果没有 “的” 那么通常 “是” 就转为强调小词(emphasis particle) 依然是肯定语气(affirmative mode)。如果没有 “是” 只有 “的” 那还是肯定语气 但似乎弱了一点。

我吃素:
我是吃素的
我吃素的
我是吃素

我不吃素:
我不是吃素的
我是不吃素
我不吃素的

“不是吃素的” 是熟语 半路杀出一个程咬金 有黑箱义与通常的白箱义两种。“不吃素” 不是成语 只有白箱子语义。这算是个小插曲,是个案。

白:
“应付这种局面他有准备的”

李:
应付这种局面他有准备:
应付这种局面他是有准备的
应付这种局面他是有准备 == “应付这种局面他的确有准备”

三种变式 都是肯定语气 不同程度而已 给基式增加一点语气色彩 不改变逻辑语义。

白:
好办,这种“是”,直接标成S+,“的”直接标成+S。bingo

李:
Bingo ?
“是”、“的” 还有很多其他用法。 都靠 wsd 去选?假如只有一种 pos 自然没问题。

白:
“是”还能做N+

李:
假如 pos/wsd 模块可以准确输出一种 pos 也自然没问题。第一个假如 只有到理想世界寻,譬如 世界语 或 计算机语言。第二个假如 是 传统系统架构的误区。铁路警察各管一段 听起来干净利落 模块清晰 实际不知道误导了多少良家上进男女青年学子。

前置状语性材料 S+ ,后置状语性材料 +S,哪个语言都有,标注这个不难。但这种标注难以匹敌模式:

1【Subj 是 Pred 的】
2【Subj Pred 的】
3【Subj 是 Pred】

这些变式才是这类现象的真正的distribution 才能一一对应到细微的语义计算 表达语气的差别(nuances)。都是从基式 【Subj Pred】(or 【NP VP】) 加小词 derive 出来的。

基式: Subj Pred
变式:
1 Subj 是 Pred 的
2 Subj Pred 的
3 Subj 是 Pred

1 最常见 是一种缓和的肯定语气。2 更加口语化 语气与 1 接近。3 就是强调语气。捕捉这些细微差别 对于对话机器人 有意义 。

梁:
记得,我们做过规则: 是 VP 的 --> VP, 我是爱你的 --> 我爱你

李:
Thanks. I did not know that
Moi 奥see

@梁 kidding ....

梁:
@wei  :=)

对,语气略有不同。老外若问我,我会告诉他。其实,外国人学汉语,这种小词的细微差异最难。

2 Subj Pred 的, 她卖菜的。 “卖菜的”是不是职业的意思,就是说”她的职业是卖菜“?

李:
这 2 本来是通用的肯定语气,但恰好又与表达职业的独立的 “的字结构” 搅和在一起。

梁:
我拥护你的。加强了肯定语气。

李:
1 我拥护你 --》我拥护你的
2 拥护你的不占多数

1 遵循的变式 需要主谓齐全,而且不局限于 human action;2 里面的 的字结构 不需要主语的条件 “的字结构”做的也不是谓语,而是np,并且 必须是 human action,常表达职业。这是两条道上跑的车 但可能撞车。

白:
“这信写的连个落款都没有。”
“等我有空的看怎么收拾你。”
“这雨下的都没脚脖子了。”
“那几天雨下的什么心情都没有。”

李:
一个一个来,先细看:“这信写的连个落款都没有。”

我的设想是 将来应该可以学出很多词典化模式(lexicalized patterns or word-driven rules),不必做太多的 generalization。全句分析就是对这些词典化模式的拼接 譬如上句。

模式1:【这 O Vt de-buyu】
模式2:【连个 O 都没有】 或者 【连个 O 都 Vt-negative】

语言中这类模式成千上万。所谓一个人学会一个语言 学得地道,就是这个人记住了这些模式,下意识的 还是明意识的。总之是词典化模式烂熟于心,才可以像 native speakers那样自如。 非词典化的语法实际上很少:主要就是规定 这些细小模式如何拼接
譬如上两个模式拼接:one form of de-buyu is de + S, so we can connect the 2 patterns:

【这 O Vt de-buyu】+ S【连个 O 都没有】==》“这信写的连个落款都没有。”

梁:
连个被子都叠不好!
连个衣服都不会穿。

白:
还是没说,如果没有词典化模式救驾,主谓宾又不齐全,“的”就一定不是+S?

李:
那是另一回事。词典化模式是累积的。不是一开始就是 logically complete。

梁:
"不是一开始就是 logically complete" 同意!

李:
“的” 的其他用法 最后或者融化(或被表达)在与其搭配的词的词典化模式中,或者表达在 它 自身的模式中。最后 由于其万能词的特性 也可以作为直接量 表达在少数的抽象规则模式中,即非词典化的语法模式规则中。

白:
那还不如先都当同一个“的”用。后面再分。至少不会错。

李:
这一点 我一直持与白老师相反的意见:对于用法繁多的小词 包括介词,我一直以为 不要只围着小词本身做,而是应该各个击破 负担分开来。小词本身只负担最后的标配用法。其他的搭配词 承载小词也是举手之劳 题中应有之义,而且小词也常是这些模式的必要(obligatory)或可预测(optional)的因素。

白:
“瞧把你得瑟的”

梁:
“瞧把NP AP的” 瞧把她美的!

李:
@梁 对 就是这个思路。这里的 “把” 不再引导宾语 而是引导主谓结构。放在模式里 就一目了然 这才是语义计算的真谛。

梁:
我们人脑善于做 puzzle (拼板游戏)。

白:
这不是问题,唯一一个坑,怎么引导也是它。小词就是模式的状态转换开关,这也不是问题。

李:
词典模式不怕冗余 越多越好。要说冗余和死记 谁能比得上机器以及机器学习的ngrams,人会抽象,自然可以稍微聪明一点,但切记过度,聪明反被聪明误。

梁:
好几个词一起做了一个坑,把 NP AP 套进去。

白:
没有模式能做而小词不能做的,没有模式能识别而小词的特殊pos不能识别的。

李:
需要各自保留意见了。
即便能力等价 ,也还有其他层面的考量:直观性、可维护性 、与语言直觉的距离,等等。

白:
那是UI的问题。谁说定义在小词,界面也必须显示小词的词条?

李:
是语言资源的可读性。模式 我认为是最可读的。小词 在 pos 层面做抽象 影响了可读性和可维护性。

白:
语言资源就是给机器读的,遇到要呈现给人的时候有一万种办法让人可读,这个根本无需操心。

李:
小词没必要分类。

白:
记得当年做XBRL标准,有人就拿可读性说事儿,我们就搞了屏幕取词转换,搞了把机读格式隐藏在用户友好界面中的工具,攻击的人从此闭嘴。

所谓分类是字面意义的误导。我们要做的实际是告诉这个词的周边,有多少插座,有多少插头,什么制式的。哪怕这种标记是这个词独有的,也要这样标,并不因为独特性而偷工减料。分类这个说法似乎是给语言学家自己看的,其实不然。标记是给这个词的周边看的。有些插座和插头就是为模式准备的。在给人看的时候,自会转换成人最方便接受的样子。但是插头插座虽然不是人最方便接受的样子,却是词们彼此勾搭最方便的样子。

梁:
我懂白老师想把“词负载语义”进行到底。

李:
“哪怕这种标记是这个词独有的,也要这样标”?

白:
不这样标就会影响它与周边词的关系。

李:
标记的必要性 是别处要用,是用直接量不能表达或不能概括的部分。如果独有 就没有必要 因为直接量就是标注,这是其一。其二 如果所标记的 pos 或 subcat,是为了自己的模式 而不是别人用,也无必要,因为可以词典化。

白:
标小词就是在做模式词典化,只不过模式不显性出现。举个例子,“连N都V”,连就是N+,都就是S+,顺顺当当吃掉,但是里面实际上在做状态转换。

李:
形式都在模式里面了,还标注个啥。直接量多直观。

白:
不是特意为模式标的。

李:
我在词典主义和专家词典里面浸润太久,感觉上受益太多,不忍心抽象化。

白:
直接量想要就有啊,表示是等价的。这是个UI问题。我这才是词典主义,除了词典不剩啥。

李:
不太一样。
你的词典主义 貌似是词典标注主义,我的词典主义 主体是规则词典化。专家词典(expert lexicon)里面全是模式,不怕冗余。与句法变换有接口,所以也不是完全没有抽象性。

白:
不对,在插销和插座结合的时候,有个东西叫状态转换,它比模式更容易被机器接受,计算上更简洁。给人看是totally another story,跟实时计算没有一毛钱关系,根本是在编辑态下工作的。

“连”这个N+和N结合的时候,N这个位置上的状态是要发生变化的,某个开关打开。“都”这个S+和S结合的时候,S这个位置上的状态也是要发生变化的,某个开关关闭。其实准确地说“连”应该是X+,混混。

李:
具体说说,哪个变化 什么开关?

我套用白老师:没有小词负载的结构不可以用模式去识别的。最多不过是冗余。冗余换来的是接地气。一眼看模式 就可以知道背后的语言现象。模式的最原始形式就是 ngram,那就是直接给语言拍照。当然我们比ngram高明太多,但继承了其接地气的特性。

白:
subcat有静态和动态两种。静态的词典说啥是啥,动态的随着分析动作而变。动态subcat实际上就是状态。它们跟着词,但是不属于cat。也就是说,词负载结构不等于仅cat负载结构。subcat也在分担负载结构。但这部分subcat已经跟怎么画依存关系脱钩了,直接对接语义,所以不画出来。

李:
从词义到逻辑语义的 subcat,最完美的体现是董老师的知网。

白:
其实,模式与纯粹的二元关系本来就捏不到一起。模式往往代表多元关系,而多元关系是二元关系的组合。用动态subcat,可以借二元关系的壳,把多元关系重组起来。

李:
从词到句法的subcat最粗糙的体现在牛津 朗曼词典里面。纽约大学的两部词典(COMPLEX and NOMLEX)稍微好一些,那是一帮爱打瞌睡 动机不专的语言学博士生在名导督促下编制。显然没有nlp历练 纯粹为交差。句法subcat最完美的体现自然是:立委牌2017新版语言学专家词典。

白:
我觉得判别标准不能混淆。计算上怎么精准方便是一回事,人看了是否感觉优雅是另一回事。两者之间不能两全的时候,计算语言学要优先考虑“计算”,人看到什么,是可以用UI来转换弥补的。二元关系在计算上的优势,不用足了天理不容。

李:
模式也是有限状态 怕啥。专家词典不仅仅是有限状态,而且专家词典还可以建立索引来提效。其实 在绕过了中心嵌套的陷阱(我把它叫作乔老爷圈套)以后 计算优势在其他几个指标中 已经退居后位。除非是用在大数据实时处理的现场 计算的考量不是紧要的。所谓二元关系vs模式匹配的关系 说到底就是 bigram 与 ngram 的对比。 有点像排列和组合的对比。只要这个n 是相当有限的 通常不过五元,最常用的模式在三元左右。由于mult-level的模块化效应,三元左右的模式就可以涵盖几乎所有的远程(long-distance)句法。因此计算通常不会成为系统应用的瓶颈。

【相关】

【语义计算:李白对话录系列】

《朝华午拾》总目录

【李白之46:做NLP想不乐观都找不到理由】

白:
“这个人的演奏水平不怎么样。” 问题:是“这个人的演奏+水平”,还是“这个人的+演奏水平”?

如果是前者,“演奏”需要被结构强制,然后再与“水平”结合;如果是后者,“演奏”不变性,可以直接与“水平”结合。“水平”的pos tagging可以直接定义为N/X,既接纳名词填坑,也接纳动词填坑。如果是前者,名词化的“演奏”做大主语,“水平”做小主语。如果是后者,主语不分层,“演奏”做内层定语,“这个人的”做外层定语。如果演奏和水平中间不加标点,个人倾向于后者。如果加逗号或者语音上有较长时间的明显停顿,可以考虑前者。

平行的句式还有“这本书的出版时间真不凑巧。”

我们看到两种不同的定中结构:一种是N+遇上N,一种是N或者S遇上N/X。前者是萝卜皮和萝卜的关系,后者是萝卜与坑的关系。

李:
什么是 N 遇上 N/X?什么是 S 遇上 N/X?
有一类名词,经常要求逻辑动词做修饰语,譬如“计划”,“水平”,“能力”:学习计划;作战水平;融资能力。这时候,如果恰好这个逻辑动词也是及物的,理论上就造成了结构歧义:譬如第一例 “学习计划”,定中还是动宾?

白:
有歧义

李:
标配还是定中。也许这个标配的来源,有音节的因素:双音化趋势使得双音修饰双音 显得特别自然,构成四字NP。而汉语的【动宾结构】比起【定中结构】,音节上“头轻脚重”比较突出。定中有一种四平八稳的趋向(heuristic),动宾则不然。动宾的本性是短V长NP,所谓头轻脚重。正因为此,更突出了头(动词谓语)的统率作用。

白:
问题来了:定中标配是获知四字结构之后才有的,还是此前就有?

这里还涉及了另外一个之前讨论过的问题:交叉。“他的学习成绩优秀”当中,“他”填“学习”坑的事情,怎么算?当没看见,还是承认可以交叉?

李:
定中结构对音节数的条件敏感。双音修饰双音当然最自然理想,四字成语的大批形成就有不小数量的定中结构。作为对比,双音修饰单音,就非常勉强。即便出现,也大多是例外,可以作为合成词绑架到词典去的。

白:
犀利哥,漂亮妞,糊涂蛋

李:
是啊,这些都是词典绑架。词典绑架的一律不算,因为可以死记。而且相对有限。

白:
问题是还有一点点能产性。说不定怎么就流行一个。比如“带路蓝”。

李:
能产性不强。对付这种一点点能产性,句法是先不去形成NP,尽管让其他路径优先,parsing到后面,不得已了,才把这种音节数不符合要求的patch一下。

白:
不理,会被拐跑的

李:
目的就是给拐跑让路。拐不走的,句法勉强同意结合。这就对付了能产性。我们说优先,说多层,贯穿的就是这类原则。本来音节就不和谐,没对上眼,拐跑了太正常了。这时候统计上看,拐跑的往往都是应该被拐的。万一还是拐错了,那就扔进词典。这时候词典就成为一个垃圾站,专门收容这些介于固定搭配与能产性之间的东西,如果这些东西成为句法优先策略的例外的话。例外一个收一个,把这个收取例外的过程,作为研发系统的一个动态过程,就不可怕了。

白:
有大数据,可以颠倒一下顺序。不做第一个吃螃蟹的,做第N个总可以吧。词典应该和大数据无缝连接起来。词典没有、构词法允许,大数据支持的,非标配也应占优,回头再收进词典。

“二孩概念股”

李:
系统越做越好就是这么来的,不断扩大测试,9成的测试符合预期,不到1成的例外,也懒得伤筋动骨,扔词典就完。今天的例外bug,成为明天的词典绑架,岂有不好之理

我是相当相信蛮力的。词典就是最好的蛮力。上帝造语言非常了不起,但百密一疏,无论如何无法与逻辑比规整性。好在上帝留了个垃圾回收的口子,词典。NLP起初拼算法, 拼到最后就是拼蛮力。就是一个力气活。长尾问题大多体现在蛮力上。

对,结合了大数据,自然是另一个风景。

白:
绑架的动作不用都人工完成,可以借力。

李:
那是,lexicon acquisition,说的就是一种。基本是无监督学习。其实就弄成一个流水作业,ngram不断去学,不仅进入领域数据需要学领域词典。而且时间维度上,要不断从动态数据去学习,以对付流行词汇和新词。然后让人过一遍,把把关。把这个过程变成系统维护的常规作业。

对NLP总体乐观,一直有十足信心这是可以搞定的事儿。这个信心就建立在,自然语言的规律性部分,至少对于某些“砖家”,总体是路线清晰的,句法有很多上帝赋予universal的基因,而例外表面上没完没了,屁股擦不完,但本质是有限的。词典有如饿虎,永远吃不饱,特别好例外这一口。想不乐观都找不到理由。

白:
学习也有lazy和active两种策略。lazy是parser首次碰到了才启动,active是闲时准备忙时用。

李:
正是。一般而言,系统总是要鲁棒,就是说lazy是设计时候已经尽量考量的。开始做系统的时候,可以有意避免上大辞典,少用绑架。一个个OOV(out-of-vocabulary)就成为鲁棒性测试点,然后看对付例外,有没有一个合理的鲁棒机制在。譬如汉语的合成词的应对。系统越来越成熟,这时候lazy的策略逐渐被active的作业方式取代,就可以大肆扩张词典的绑架。哪怕句法可能搞定的现象,如果来不及测试,或为了力求保险,扔进词典最心安。

甚至可以设想,将来的NLP实用系统,所有的ngrams短语全部进词典。可以把n设置成4或5,词典出来的短语都是预制板、标准件,句法三下五除二把它们搭成积木。至于这4-grams内部有啥,理论上词典都可以绑架,而且很多时候也无碍大局。

白:
可看穿的词条(白盒)和不可看穿的词条(黑盒),用起来待遇还是很不相同的。有构词法垫底,一定数量的白盒词条对于休眠唤醒和拆零复用大有好处。

李:
百盒词条的本质就是小句法。不过是优先级高而已。因为优先级高,做出被绑架的黑盒子的样子。但里面埋下了种子,什么时候要唤醒就唤醒了。这种策略,先绑架后(反悔)释放,非常经济合理。因为绑架满足了95%以上的场景需求,反悔释放则满足了不到5%的特殊需求。断断没有为了不到5%的场景,让全局一路受累。总是到了某个点,trigger 这个反悔机制才妥。

"开始做系统的时候,可以有意避免上大辞典",说的就是knowledge poor development to start with。knowledge poor 才可以打好鲁棒的基础,而鲁棒性是一个NL系统的关键指标之一。这个小词典开发策略 也包括开始不要有太多 features or subcats, 不要有本体知识库 (ontology)。这些东西都是精细的活儿,是鲁棒的另一面。鲁棒的本义就是凑合事儿,但不要离谱。

 

【相关】

【立委科普:结构歧义的休眠唤醒演义】 

【立委科普:歧义parsing的休眠唤醒机制再探】 

【语义计算:李白对话录系列】

《朝华午拾》总目录

【强弱人工智能之辩】

董: 两周前陪一位朋友去做肠镜。医务说明上写到:肠镜有风险:肠穿孔是1000:1;大出血是:500:1。后来我想到了伟大的人工智能(AI)和机器人。其实将来可以研发专门的机器人来为患者做肠镜,如果肠穿孔低于1000:1,不就成功了吗?后来又一想不对呀,以后等机器人把肉身人类都消灭了,哪还要做肠镜呀。人类的未来真是太美妙了。没有疾病,没有穷困,没有战争!

我: 董老师,相信所谓强人工智能,甚至所谓超人工智能的,主要是两类人:一类是部分权威或大佬,霍金、比尔盖茨之类;另一类是被小报或科学幻想洗脑的百姓,而编这些科学幻想故事的人基本是出于猎奇的本性。后一类人可以忽略。其实,第一类人,到目前为止,大多还谈不上相信所谓强AI,他们主要是提出要警惕AI可能带来的人类灾难,这是为强人工智能开了口子。这类人不是简单地可以否定的。也不能仅仅归结为他们在忽悠,因为他们足够高大,已经超越了通常意义的忽悠(动机为好处、为金钱、为funding、为耸人听闻等)。

相信不相信强AI已经不再是学术之争了,而越来越成为信仰之争,世界观之争。两派都有大师做后盾。乔姆斯基是强AI的否定派,有人问他:机器会思考么?乔老爷反问:潜艇会游泳么?乔老爷认为强AI是无稽之谈,不值得讨论的话题。但霍金、比尔盖茨等人则未雨绸缪,开始担心强AI了。

从自主思考的意义,我们作为强AI否定者,可以与乔老爷一起斥其为无稽之谈,学术上这个所谓强AI是一个不值得认真对待的问题。但是,从现实考量,警惕强AI论者有其积极意义。这个意义表现在,随着AI系统越来越复杂,创造系统的人可能失去对其全面的掌控和了解,这样来看AI系统,其风险的确在增大,而这一点是不难想见和同意的。

我们先撇开AI看人类的科技进步。事实上,立足于科技进步所带来的毁灭人类和世界的可能性早已存在:如果核按钮掌握在极端主义手中,这是完全可能的事儿。人类对此危险的办法是,限制核武器发展(制裁北韩是举措之一),对于已经掌握核武器的大国,也有一些措施试图保证不至于因为误判或误操作而造成核灾难和大毁灭。如果 AI 系统以后被用于一些敏感的地方,而且系统的复杂度和演化越来越超出人脑可以理解和控制的程度,那么出错以及错了难以阻止的可能性不是不存在的,虽然这与机器自主思考没有一毛钱的关系。

从功能角度,从图灵测试的标准看,潜艇与鱼一样会 “游泳”(先摈除这个字眼本身纯粹从语言带来的专属于动物的限制),飞机与鸟儿一样会 “飞”(还好,语言中这个语词似乎更超脱一些,没有强加隐含的动物限制)。这一点是没有什么疑问的。乔姆斯基实际上是利用了语言学的 trick,打了一个世界观之争的漂亮仗。但严格意义上,有点胜之不武。作为语言大师,他知道如果说潜艇会游泳(尼克说,这是乔老爷拷贝别人的比喻),在一般人心中,会天然地导向无稽之谈的感觉。

张: @wei 向您致敬!

我: 跟董老师讨教,我们都来致敬董老师。我们都是董老师的好学生和追随者,现在话说,粉丝。

张: 我最幸运的亊,一踏上人生和学术之路,就有董老师这座“灯塔”一直照耀我,后来又照耀了我女儿。

我:我一辈子最幸运的事儿,就是在 career 开启的时候,遇到了两位刘老师和董老师,董老师虽然不是直接的导师,但当年的接触和给我的教诲,终身受益。董老师的逻辑语义的论文(逻辑语义及其在机译中的应用)是我的启蒙读本,当年细嚼慢咽读了很多遍的。

白: 动词对主语的专属强度,其实也是与时俱进的。比如“告诉”,之前只能用于人,但是现在可以用于搜索引擎了。专属强度就是世界观的一部分。

我: 总之,我们虽然是乔派,我自己更是董老师派,但我想说的是,这个争论不是简单否定那样简单。这就好比明智的无神论者或不可知论者,已经很难简单否定上帝的存在一样。

张: @董 @wei 读你千遍不厌倦

董: 曾经观看过传销的影视。传销有三个要素:强忽悠、强洗脑;一个好的有能卖钱的产品;一群容易跟风的受众。AI曾栽在了五代机上。后来找对了诸如语音、马克杯识别、在后来有象棋和今日的围棋。谷歌等的“可穿戴”、微软的看脸猜岁数等好像下岗了。如果AI能用于灾害预报,恐袭预测和防止该多好,多紧迫啊。任何的研究,尤其是与人类自身相关的题目都是应该鼓励的。但是不要把某种研究神话、神化,更不可以用来当迷信似地吓唬人。例如“大脑计划”是好题目。AI人应该是经验主义者,他们说要警惕人类会被机器人消灭,有实践能证明吗?

白: 一些古老的仪式感动作感很强的词,当新技术用更好的动作也能达到同样的最终结果时,就被古董化了。比如:“打印机会写字吗?” 打印机可以呈现写字的最终结果,但摒弃了写字的狭义动作和过程。潜艇摒弃了游泳的狭义动作和过程,只呈现水中位移的最终结果。这种仪式感动作感太强的动词就没办法随着技术的发展与时俱进了。飞就不同。

我: 所以我说乔老爷用那个比喻虽然妙绝,多少有些胜之不武。

自然语言语词,经常带有非逻辑必须的核心语义以外的零碎。这些零碎有助于我们在discourse中找其关联部分,但也容易被其绑架,进入“标配”的认识误区。

马: 还有洗衣机等,用张老师的话说,如果当初研制洗衣机的,想造个机器人,用搓衣板洗衣服,哪年才能做到啊。

白: 在围棋界,“想”是可以用于AlphaGo的。

马: 蒙特卡洛树搜索就是想吧。

梁: 造个机器人帮我洗碗 ,  洗碗机?

白: @马 搓衣板还有其他妙用

马: 惩罚老公?现在改用cup了

我: 如果坚持机器不能 "思维",只能 “计算”, 那么几乎所有的 AI 术语都应该推倒重来:机器翻译(MT)是无稽之谈,人工智能是弥天大谎,自然语言理解(NLU)亵渎万物之灵,神经网络(NN)肯定是神经病的臆想。

张: @wei 句句是真理呀!开始崇拜啦!

马: 可以扩展计算的含义。

白: 不同层面吧。分子只能碰撞,一堆分子却产生温度。

梁: 基本同意“人工智能”就是一个大词儿,吓唬人。空洞的,只有广告宣传造势意义的大词,以“人工智能”为例,可以写一篇文章。

我: 但是术语已经站住了,各有各的理解,怎么办?于是出现了,强AI、弱AI 之争。

马: 我是弱AI派。

我: 加了一个前缀,我们便稍觉心安,原来我们可以一致同意的是,机器可以模拟人的某些知识功能和白领劳动。我们叫它弱人工智能。

白: 整体论和还原论。强弱AI是哲学,不是科学。

我: 我应该也属弱AI 派,不过真心觉得,这个 AI 或 NLU 都有加速度发展的趋势。不见得是硬件的摩尔定律那种速度,但的的确确超出了我们以前的想象极限。我入行的时候对多语 MT 的梦想,现在已经被 SMT(统计型机器翻译) 提前实现,无论我多么批判 SMT 缺乏结构和质量不佳,可现在的在线多语自动翻译唾手可得的局面已经远远超越了我们当时的所有想象。自然语言理解的核心引擎 parser 也是如此。我做梦也想不到,在我有生之年,除了英语和其他欧洲语言外,对于我们这个据说只有意合缺乏语法的伟大母语,我一介书生,可以设计开发出一个现在展示出来的 Chinese parser,接近人工的水平,达到实用的高度。这是最让我感慨的《美梦成真》。当年要是一路做老式的规则MT,先得被SMT气死,然后重生,最后才可以对决,好在 IE (信息抽取)诞生了,我于是转向去做 IE,有深度 parsing 做底,一做17年,无往不利。天不我欺,幸运啊。

马: 统计把AI带向了实用。

白: 弱AI的边界会被人类的专属动词一个一个打穿。到时候,没打穿的是因为太古董,不值得打穿。非不能也是不为也。做一个机器人会游泳还换气,有意思吗?不管SMT水平多矬,翻译也不是人类专属动词了。

我: 对,在我们下一代中,机器翻译已经天然有理了。不像我刚入行的时候,我的文科研究生同学无论如何不理解机器怎么可以翻译,这应该是专属于人的高级脑力劳动。同学当年瞪着一双又是佩服又是恐惧的眼睛,我的印象极为深刻。

白: 昨天我就感慨,人工智能就是人工原罪,你的使命就是把各种专属拉下神坛。

马: 我女儿小时候写作文,总是先搜索一番,都不知道谁教他的搜索。以后翻译也差不多吧。

白: 还有学习,也不专属了。

马: 从数据中学习 机器强于人。

我: 现在的困扰是,我们不知道如何定义灵性。我们可以感受它,也知道它是人机的本质区分,可就是无法精确定义它。

白: 还好灵性不是动词,可以放一放。

我: 凡是可以精确定义的灵性的某种表现,似乎都可以被模仿。有的已经不仅是模仿,而是超越。细思极恐。

孔子说,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲不踰矩。知天命就是顿悟的境界了。自感顿悟确需多年的历练,不到 50,没有足够的积累,的确极难。 睿智如白老师已经耳顺,那又是一个高度。董老师更不用说了,那是天马行空随心所欲了。即便在下,现在看问题,与10几年前看问题就不同,莫名其妙地有一种穿透的感觉,所谓洞若观火。当然指的是自己的一亩三分地,不是说的大千世界(能穿透大千世界的应该是董老师、乔老爷或者星云大师这类高人,我等肉身凡胎只看得见自己的耕耘)。

【相关】

【立委科普:美梦成真的通俗版解说】

【征文参赛:美梦成真】

【泥沙龙笔记:从机器战胜人类围棋谈开去】

有感于人工智能的火热

【反伊莉莎效应,人工智能的新概念】

《立委随笔:人工“智能”》

【置顶:立委科学网博客NLP博文一览】

《李白之零:NLP 骨灰级砖家一席谈,关于伪歧义》

题记:此地有金八百两,隔壁RNN不曾偷。

李:今天我们可以讨论伪句法歧义(pseudo-parses)的问题。我说过,多层 FSA 的 deep parser 不受伪歧义的困扰,虽然这是事实,但也还是需要一个阐释。这个问题是革命的根本问题,虽然文献中很少讲述。

第一章,事实篇。

话说某年某月某日,立委与白老师在微博狭路相逢。其时,立委正海吹深度分析(deep parsing)乃是自然语言之核武器,批评主流只在浅层做文章,摘下的不过是低枝果实(low-hanging fruit)。白老师当时插话说(大意): 你们搞深度分析的不算,你们也有自己的挑战,譬如伪歧义问题。最后留下三个字:你懂的。

各位看官网虫,大凡社会媒体,只要留下这三个字,那就是宣告对手的不上档次,不值得一辩,叫你无还手之力,无掐架之勇,先灭了你的志气。此前,与白老师未有私人交往,更无卡拉ok,江湖上下,白老师乃神人也,天下谁人不知,况青年偶像,粉丝无数。立委见势不妙,战战兢兢,唯唯诺诺:“那自然”。我懂的。心里却颇不以为然:伪歧义其实不是一切深度分析的命门,它只是单层分析的挑战,特别是 CFG (Context-Free Grammar)类 parsers 的困扰。

这是第一章第一节,是锲子。

虽然心里不以为然,但是“我懂的”,却是有丰富的事实依据。骨灰级老革命有一个好处,就是碰壁。无数的碰壁。革命,碰壁,再革命,再碰壁,直至百毒不侵,火眼金睛。老革命可能还有一个好处,就是走运,走狗屎运(譬如赶上上世纪末的网络泡沫,米国的科技大跃进,天上掉馅饼),直至反潮流也没被杀头,硕果仅存。

话说自上世纪80年代社科院出道以来, 就开始做deep parsing, 跟着两位导师,中国NLP的开山前辈,中国MT之父刘先生。他们的几十年的机器翻译积累,在分析这块的传承就是多层模式匹配(multi-level pattern matching)。用 CL术语,就是 multi-level FSA (finate state automata)或 cascaded FSA,有限状态的。我是苦力、主力,新毕业生嘛,为 deep parsing 写了无数个性的词典规则和反复调试精益求精的600条抽象句法规则。埋头拉车,无需抬头看路。从来就没有碰到过什么伪歧义的问题。这是事实一。

事实二发生在我做博士的时候,90年代中期。在风景如画的SFU山头上。当时我的两位导师,电脑系的 Fred 和 语言系的 Paul 合作开了一个自然语言实验室。这两位博导虽也绝顶聪明,但毕竟还年轻。在 NLP 场面上,需要站到一条线上,才好深入。实际上,他们是加拿大 NLP 的代表人物。他们于是选择了当时流行的 unification grammar school (合一文法学派)之一种,就是继 Prolog 以后,开始火起来的合一文法中的后起之秀,名叫 HPSG (Head-driven Phrase Structure Grammar)。这一个小流派,斯坦福是主打,欧洲有一些推崇和践行者,在北美,闹出动静的也包括我的导师的实验室。HPSG 说到底还是 CFG 框架,不过在细节上处处与乔老爷(Chomsky)过不去,但又处处离不开乔老爷。理论上有点像争宠的小妾,生怕得不到主流语言学界乔老爷的正视。

白: 还没进正题

李:白老师嫌拖沓了??现在还在事实篇内。不讲道理。

HPSG 推崇者不少,真懂的怕不多,特别是把 HPSG 用于中文 parsing 方面。看过一些国人不着边际的 HPSG 论,造成了这个印象。这玩意儿得跳进去,才知优劣深浅。当然没跳的也不必跳了,合一(unification)这一路没成气候,现在跳进去也是白跳,浪费时间。HPSG 有一个好处,就是它的词典主义,它实际上就是此前流行的 GPSG 的词典主义版本。NLP 领域各路英豪你争我斗,但有一个很大的共识,就是词典主义,lexicalist approach or lexicalist grammar。这也反映在 HPSG,LFG 等风行一时的文法派中。

我呢,有奶便是娘。本来嘛,导师做什么,学生就要做什么,这才是学位正道。于是,我在HPSG里面爬滚了几年。照猫画虎,写了一个 CPSG,就是 Chinese 版本的 HPSG。用它与实验室的英文 HPSG 对接,来做一个英汉双向机器翻译的实验,当然是玩具系统。这是我博士论文的实验部分。

为什么双向?这正是 Prolog 和所有 unification grammars (又称 constraints based grammars)所骄傲的地方:文法无需改变,文法就是对语言事实的描述,文法没有方向。无论做分析(parsing),还是做生成(generation),原则上,规则都是一样的,不过是执行层面的方向不同而已。理论听上去高大上,看上去也很美,一度让我入迷。我也确实完成了双向的实验,测试了几百个句子的双向翻译,得到了想要的结果。细节就不谈了,只谈相关的一点,就是,伪句法歧义在这些实验中是一个 huge problem。这个 HPSG parsing 中,伪歧义的事实有多严重呢?可以说是严重到令人窒息。当时用PC终端通过电话线连接到实验室的server上做实验,一个简单的句子在里面绕啊绕,可以绕出来上百条 parses。当然,可以设置成只输出一条 parse 来。有时忍不住好奇心,就耐心等待所有的 parses 出来,然后细细察看,究竟哪个 parse 对。

额的神!

乍看全长得差不多,细看也还是差不多。拿着放大镜看,才看出某个 feature value 的赋值不同,导致了 parses 之间的区别。可这种不同基本上没有语义的区别性价值,是为 pseudo parses 之谓也。要都是伪歧义也好,那就随机选一个parse 好了,问题出在,这百来条 parses 里面有时候会混杂一两条真的歧义,即语义上有区别性价值的 parses,这时候,选此废彼就具有了操作层面的价值取向。否则就是以一派压制另一派,反对党永无出头之日。

这个问题困扰了整个 HPSG community(其实是整个 CFG 框架下的 community)。记得在 HPSG 内部邮件组的讨论中,怨声鼎沸,也没人能找出一个理论上和实践上合理的解决途径来。

白: 简单说就是时间复杂性上去了,结果复杂性没下来。折了兵,真假夫人还混在一起不知道赔谁合适。

李:这就是为什么当时你那么肯定地指出我作为深度分析语言工作者所面临的挑战,您老是把我归到主流语言学乔老爷 CFG 的框架里说的。

在第一章事实篇结束前,简单说一下实践中的对策。后来我的导师与本省工业界合作,利用 HPSG MT 帮助翻译电视字幕。在真实应用中,他们只好选择了第一条成功的 parse 路径,完全忽略其他的 parses。这也是没有办法的办法。质量自然受损,但因为无区别意义的 pseudo-parses 占压倒多数,随机选第一条,在多数场合也还是可以的。

第一章小结:骨灰级老革命在没有理论探索的情况下,就在 deep parsing 的 field work 中经历了两种事实:一种是不受困扰的多层 parser,一种是深陷其中的单层 parser。因此,当白老师一口咬定深度分析的这个挑战的时候,我觉得一脑门道理,但就是有理说不清。至少一句两句说不清,只好选择逃遁。

对于绝大多数主流NLP-ers,NL的文法只有一派,那就是 CFG,无论多少变种。算法也基本上大同小异,chart-parsing 的某种。这个看法是压倒性的。而多层的有限状态文法做 parsing,虽然已经有半个多世纪的历史,却一直被无视。先是被乔姆斯基主流语言学派忽视,因为有限状态(FSA)的名字就不好听(多层不多层就懒得细究了),太低端小气下位了。由于语言学内部就忽视了它,自然不能指望统计派主流对它有重视,他们甚至对这路parsing没有啥印象(搞个浅层的模式匹配可以,做个 NE tagging 啥的,难以想象其深度parsing的潜力),尽管从有限状态这一点,其实统计派与FSA语言派本是同根生,二者都是乔老爷居高临下批判的对象,理论上似乎无招架还手之力。

白: 概率自动机和马尔可夫过程的关系

李:但是,多层 FSA 的精髓不在有限状态, 而是在多层(就好比 deep learning 的精髓也在多层,突破的是传统神经网络很多年停滞不前的单层)。这就是那天我说,我一手批判统计派,包括所有的统计,单层的多层的,只要他们不利用句法关系,都在横扫之列。因为这一点上还是乔老爷看得准,没有句法就没有理解, ngram 不过是句法的拙劣模仿,你的成功永远是浅层的成功, 你摘下的不过是低枝果实。不过恰好这种果子很多,造成一种虚假繁荣罢了。

另一方面,我又站在统计派一边,批判乔姆斯基的蛮横。实践中不用说了,管用的几乎都是有限状态。乔老爷要打死单层的有限状态,我没有意见。统计派的几乎所有模型(在 deep learning 火起来之前)都是单层,他们在单层里耗太久了不思长进,死不足惜,:)。 蛮横之处在于乔老爷对有限状态和ngam多样性的忽视,一竿子打翻了一船人。

白: RNN可以完美模拟FSA, 但是现在的人都把RNN当做统计派的功劳。

李:但是他老人家忘记了, 我只要叠加 FSA 就可以比他所谓的 more powerful 的 CFG 做得深透,而且合体(特别适合白老师说的自然语言的毛毛虫体型)。他对有限状态的批判是那么的无视事实和缺乏理性。他是高高在上的神,不食人间烟火的,我们各路NLP实践派对他都敬而远之,基本没有人跟他走。在他本应发挥影响的领域,他其实缺乏起码的影响力。倒是语言学内部被他控制了,语言的形式化研究跟着他亦步亦趋走了半个多世纪,离作为其应用场景的 NLP 却渐行渐远。这是一个十分滑稽的领域怪相。

白: RNN加层、计数器、加栈、加长时记忆,本质上都在突破单层FSA的计算能力

李:好了,咱们接着聊第二章:为什么多层系统,尤其是 多层 FSAs ,不受伪歧义的困扰?

白: 只要证明毛毛虫以外不是人话,就只管放心玩毛毛虫好了。伪歧义跟规则的递归形式无关,跟规则的词例化水平和压制机制有关。但是,要hold住十万百万量级的规则,CFG一开始就必须被排除在外。

李:对。

说到底是规则的个性与共性关系的处理,这是关键。这个不是我的发现,我的导师刘倬先生早年就一再强调这个。刘老师的系统命名为 专家词典(expert lexicon )系统,就是因为我们把个性的词典规则与共性的句法规则分开了,并且在个性与共性之间建立了一种有机的转换机制。

白老师说得对,单层的 CFG 基本是死路。眉毛胡子一把抓,甚至所谓词典主义的 CFG 流派,譬如 HPSG 也不能幸免,不出伪歧义才怪呢。如果规则量小,做一个玩具,问题不严重。如果面对真实自然语言,要应对不同抽象度的种种语言现象,单层的一锅炒的parsing,没有办法避免这种困扰。

白: HPSG 之类可以依托树做语义信息整合,但是在树本身的选择数目都在爆炸时,这种整合是不能指望的。

李:可以说得具体一点来阐释其中道理。分两个小节来谈,第一节谈多层系统中,单层内部的伪歧义问题。第二节谈多层之间的伪歧义问题。

白: 但是仍然困惑的是某种结构化的压制,比如“美国和中国的经济”’。“张三和李四的媳妇”

李:如果这两种伪歧义都有自然的应对方式,那么伪歧义不是困扰就理所当然了。待会儿就讲解白老师的例子。我这人啰嗦,学文科的,生存下来不容易,各位包涵了。

白: 抽象的并列,天然优越于抽象的长短不齐。似乎并不关乎词例,词例化的、次范畴化的规则,都好理解。抽象的结构化压制,处于什么地位呢?

李:但是难得大家围坐在一起,忍不住借题发挥一下,顺带进一步阐释了上次“上海会面”上的论点:我对乔老爷既爱且恨,爱他批判单层统计派的一针见血;恨他一竿子打翻一船人,敌我不分,重理论轻事实。

白: 是因爱成恨好吧

李:我们实际上半条身子在统计派的船上,大家都是有限状态;半条身子在语言派船上,毕竟我们不是单层的有限状态。统计派的有限状态的典型表现 ngram 实际上是 n-word,而我们的有限状态是真正的 ngram,这个“gram” 就是刘老师当年一再强调的 “句素”,是一个动态的句法单位,可以是词、短语或者小句,随 parsing 的阶段而定。这样的 ngram 是统计派难以企及的,因为它反映的是真正的语言学,多数统计学家天然不懂。

白: 世界上只有深层派和浅层派,这是复旦美女教授教导的。我认为只要touch深层,无论什么派都会殊途同归。

李:先说单层内部的伪歧义。这个白老师心里应该没有疑问了,不过为了完整还是先讲它。单层的有限状态说到底就是一个 regex (正则表达式),只不过面对的单位根据语言层次的不同而不同而已。如果是 POS tagging 这种浅层,面对的单位就是 words (or tokens)。如果是句法关系的解析层,面对的单位就是短语(可以看作是头词,它代表了整个短语,“吃掉”了前后修饰语)。

对于单层,有两种结构歧义,一种是伪歧义,占多数;一种是真歧义,占少数,但存在。单层系统里面的每一条规则都是一个 pattern,一个缩小版的局部 parser (mini-parsing),试图模式匹配句子中的一个字符子串(sub-string)。歧义的发生就是 n 个 patterns 对相同的输入文句的字符子串都成功了。这是难免的:因为描述语言现象的规则条件总是依据不同的侧面来描述,每条规则涵盖的集合可能与其他规则涵盖的集合相交。规则越多,相交面越大。每条规则的真正价值在于其与其他规则不相交的那个部分,是那个部分使得 parsing 越来越强大,涵盖的现象越来越多。至于相交的部分,结论一致的规则有可能表现为伪歧义(结论完全一致是异曲同工,没有歧义,但设置一个系统的内部表达,难免涉及细节的不同),这是多数情形。结论不一致的规则如果相交则是真歧义。这时候,需要一种规则的优先机制,让语言学家来定,哪条规则优于其他规则:规则成为一个有不同优先度的层级体系(hierarchy)。

白: 在线?

李:FSA Compiler 事先编译好,是 FSA Runner 在线做选择。

白: 那要隐含规则的优先关系,不能初一十五不一样。

李:个性的现象优先度最高。共性的现象是默认,优先度最低。这个很自然。一般来说,语言学家大多有这个起码的悟性,什么是个性现象,什么是共性。

白: “张三的女儿和李四的儿子的婚事”

李:如果优先语感不够,那么在调试规则过程中,语言数据和bugs会提请语言工作者的注意,使得他们对规则做有意义的优先区分,所谓数据制导 (data-driven) 的开发。

白: specificity决定priotity,这是个铁律。在非单调推理中也是如此。

李:这个优先权机制是所有实用系统的题中应有之意。优先级别太多太繁,人也受不了。实际情形是,根本不用太多的优先级别区分,每一层分析里只要三五个级别、最多八九个优先级别的区分就足够了(因为多层次序本身也是优先,是更蛮横的绝对优先)。

白: 我还是觉得优先级初一十五不一样的时候一定会发生,而且统计会在这里派上用处。

李:一切是数据制导,开发和调试的过程自然做到了这种区分。而更多的是不做优先区分的歧义,恰好就落在了原来的伪歧义的区间里面。这时候,虽然有n条规则都产生了 local parses,他们之间没有优先,那就随机选取好了,因为他们之间其实没有核心 semantic 的区别价值(尽管在表达层面可能有细微区别,hence 伪歧义)。换句话说,真歧义,归优先级别控制,是数据制导的、intuitive 的。关涉伪歧义困扰的,则变成随机选取。这一切是如此自然,以至于用FSA做parsing的从业者根本就没有真正意识到这种事情可能成为困扰。关于初一15的问题,以及白老师的具体实例,等到我们简单阐释第二节多层之间的伪歧义的应对以后,可以演示。

第二章第二节,多层之间可能的真伪歧义之区分应对。

对多层之间的真歧义,不外是围追堵截,这样的应对策略在开发过程中也是自然的、intuitive 的,数据制导,顺风顺水。围追堵截从多层上讲,可以在前,也可以在后。在前的是,先扫掉例外,再用通则。在后的是先做默认,然后再做修补(改正、patching)。道理都是一样的,就是处理好个性和共性的关系。如果系统再考究一点,还可以在个性中调用共性,这个发明曾经是刘老师 Expert Lexicon 设计中最得意的创新之一。个性里面可以包括专业知识,甚至常识(根据应用需要),共性里面就是句法模型之间的变式。

好,理论上的阐释就到此了,接下去可以看实例,接点地气。白老师,你要从哪个实例说起?我要求实例,加问题的解释。

白: “中国和美国的经济”。这就是我说的初一十五不一样。

李:这是真的结构歧义,Conjoin (联合结构)歧义 。在语言外知识没带入前,就好比西方语言中的 PP attachement 歧义。结构歧义是NLP的主要难题之一。Conjoin 歧义是典型的结构歧义,其他的还有 “的”字结构的歧义。这些歧义在句法层无解,纯粹的句法应该是允许二者的共存(输出 non-deterministic parses),理论上如此。句法的目标只是区分出这是(真)歧义(而这一点在不受伪歧义困扰的多层系统中不难),然后由语义模块来消歧。理论上,句法和语义/知识是这么分工的。但是实践中,我们是把零散的语义和知识暗渡陈仓地代入句法,以便在 parsing 中一举消歧。

白: 一个不杀当然省事。但是应该有个缺省优先的。

李:缺省优先由“大数据”定,原则上。统计可以提供启发(heuristics)。

白: 有次范畴就能做出缺省优先。不需要数据。

李:当然。次范畴就是小规则,小规则优先于大规则。语言规则中,大类的规则(POS-based rules)最粗线条,是默认规则,不涉及具体的次范畴(广义的subcat)。subcat based 的其次。sub-subcat 再其次。一路下推,可以到利用直接量(词驱动)的规则,那是最优先最具体的,包括成语和固定搭配。

白: 次范畴对齐的优先于不对齐的,就联合结构而言。但是,about 次范畴,理论上有太多的层。

李:那是,联合结构消歧中的次范畴不是很好用,因为这涉及词的语义类的层级体系。不管是 WordNet 还是董老师的 HowNet,里面的 taxonomy 可以很深,统统用来作为次范畴,不太现实。但理论上是这样使用的。

白: 再一个,“张三的女儿和李四的儿子的婚事”。这个也是真歧义吗?

李:上例的问题和难点,白老师请说明。"的"字结构的 scope歧义加上联合结构的歧义的叠加现象?

白: 上例是处理深度的问题,各自理解即可。歧义叠加,只有更加歧义了。可是实际相反,叠加限制了歧义。

李:在分层处理中,我们是这样做的:

(1)Basic NP, 最基本NP层的结果是:NP【张三】 的 NP【女儿】 和 NP【李四】 的NP【儿子】 的 NP【婚事】

(2)Basic XandY, 最基本的联合结构层:在这个层次,如果条件宽,就可能发生联合错误,错把 【女儿 和 李四】 联合起来。这个条件可以是 HUMAN,二者都符合。而且在 95% 的现象中,这个条件是合适的。如果条件严的话,譬如用 RELATIVES 这个语义次范畴(HUMAN的下位概念),而不是 HUMAN 来限定的话,这个句子在这一层的错误就避免了。

那么具体开发中到底如何掌握呢,这实际上决定于设定的目标,没有一定之规。做细总是可以做到更好质量,大不了多加几层 NP 和 XandY 的模块(FSAs),但还是增加了开发和维护的负担。如果做粗一点,只要所造成的 parsing 质量上的后果能控制在应用可接受的范围,那也未尝不可,因为说到底,世界上没有完美的系统。上帝允许人类的不完美。

白: 把这个换成“AB的中点与AC的中点的连线”?同样的结构。

李:另一个思路,就是多层协调中的修补。对于上述两个例子,修补的办法似乎更好。与其分多层,代入各种繁琐的语义条件来消歧,不如任他出错,然后根据pattern的平行因素加以修正。在多层系统中,这个常常是有效的策略,也符合开发的总体规划。先把系统大体弄得work了,可以对付多数现象,然后有时间和余力了,后面可以 patching。前提是,错误是 consistent 和 predictable 的。对于多层管式系统(pipeline system),错误并不可怕,只要这种错误 consistent 有迹可循,后面总可以把它们修正。

多层管式系统常常被批评存在一个 error propagation(错误放大)的难题。其实,多层系统也可以做到负负得正(矫枉过正是也)。一个好的系统设计,是后者,通过 data-driven,可以做到把错误放大控制到最低限度,并发扬负负得正来得到最终正确的结果。

白: 伟哥的诀窍其实是把握一个适中的词例化-次范畴化水平问题。太粗则伪歧义盛行,太细则边际效益大减。

李:上例中 “中点与AC” 可以联合,不过是一个暂时的内部错误而已,后面可以修正。总之,这些都不是根本的 challenge,想做就可以做,实际操作上,也可以选择不做。问题大了,就做;用户发飙了,就做;否则就无视。很少有歧义是做不出来的,功夫和细节而已。最终决定于值得不值得花这份力气,有没有这样的开发时间和资源。

白: 做与不做,有可能影响架构选择。补丁有好处也有后遗症。

李:NLP 可以做一辈子,在基本机制(优先机制,修正机制,范畴、次范畴机制,专家词典等)由平台实现提供以后,慢慢磨到最后就是 diminishing return,与爬山类似,这决定了我们何时罢手。如果85%的精度作为parsing的目标,那么系统会选择不做一些稀有的现象。有了这个 85%,已经可以满足很多应用的要求了。

有了 85% 做底, 还可以让机器变得智能起来,自动地自我提高,所谓 self-learning,这是研究课题了,但是是可以实现的。实际上在我指导的实习生实验中已经实现,不过就是在线开销太大而已。

白: 再看“馒头吃光了”?

李:这个例子更容易讲清楚。在系统的某一层,可以有个规则 把某种 “V+光" parse 成为动补结构,这个V的限制可以调试出合适的子范畴来。

白: “光”词例化肯定是可以的。

李:好,这就解决了95%以上这类以“光”收尾的现象。如果遇到了反例,譬如,“黑洞吃光了”, 那么或者修正它,或者作为个体知识的规则前置。围追堵截是也。总是可以把零碎的专业知识做成规则,如果需要的话。至于这么做值得不值得,那是应用层面的决定。很多时候是不必要的。错了就错了,不过是显得系统缺乏专家的知识,so what?我们普罗 native speakers 也都不是每一行的专家,也并不是每句话都听懂,不也一样没觉得交流困难。就此例来说,决定于听者的知识面,小学生和文盲一般不能正确 parse 理解 “黑洞吃光” 的动宾语义来。动宾的语义是需要语言外知识在语言内非优先的潜在结构上作用才能得出。而动补结构则不需要,那是语言内的句法知识(最多说是句法子范畴或小规则,但不涉及专业知识),是所有国人的默认理解。

白: 这一点非常重要。一个开放,一个封闭。一个外部,一个内部。外部的事儿,就算没有专业知识,也可以大数据招呼。

李:今天似乎可以结束了,说到底,就是:

一,平台需要提供一些基本机制来处理共性与个性的关系,从而应对歧义,这些在 FSA formalism 的教科书定义中可能不存在,或被忽略,但却是实用系统不可或缺的。

二,NLP 的确是个力气活,有无限的可能深入。当然,我们可以选择不深入,可以选择何时罢手。

至于大数据招呼,那个在前述的自学习上也必须用到。我们教授机器做到 85%,大数据基础的自学习可以让它自行提高到 90%,这个是部分证实了的,可惜还没有发表出来,以前说过,懒得成文。都骨灰级老革命了,谁在乎那个。我说的大数据是指与大语料库对应的 grammar trees 自动形成的 forest,比 PennTree 大好几个量级。

这次神侃算不算基本回答了疑惑,可以得出“伪歧义在多层系统中不是困扰”这个结论?

白: @wei 是,非常感谢。

李:不过,我们一方面实用制导,一方面没有忘记基本面和大局。与纯粹的实用主义,头痛医头,脚痛医脚,还是不同。这种积一辈子挖煤的经验之谈,正式论文中罕见,也算一件功德。难得的是白老师还有雷司令身为主流精英,居然能一开始就高于主流,不排斥异端或少数派。所以上次上海聚会,我就说,火药味的架掐不起来的, 因为相互的理解和欣赏多于分歧。但我知道也有很多统计死硬派,甚至大牛,是不尿这壶的。

白: 只要聚焦于深层,一定会殊途同归。RNN记在统计账上,但已经是深层了。

可以再关心一下NLP的商业模式,怎么能讲一个好故事。我们说fsa也好分层也好,资本都是不感冒的。

李:滑稽的是发现有些死硬派做了n年NLP,却真地不懂语言学,有个别大牛连常识都不懂,让人跌破眼镜。当然这个只能内部说说,不能博客的。所以往往是互相地不尿对方那一壶,与宗教之战类似。

RNN 我不敢发言, 不过从白老师零星的介绍来看, 很可能殊途同归。不过 FSA 这套 deep parsing 是已经稳定成熟的技术。RNN 的工业成熟度如何,我不知道。可能都是核弹, 不过是原子弹氢弹区别而已。

白: Ngram说不定变出个什么花样来,也殊途同归。

李:其实 多层 FSAs 本质上就是 ngram 的花样,不过 gram 不再仅仅是词了,而是等于或大于词的句素。能以动态句素作为 ngram 的对象,是因为多层的原因,跟剥笋子一样,层层扒皮,gram 当然就是动态的了。这一点很关键,是乔姆斯基都没想到的 power。

白: 对,边扫描边归约,边抛出句素。

李:这里面最 tricky 的不是机制而是细节。魔鬼在细节,就是指的这个。FSA 是“古老”简单的机制了,细节就是玩平衡,玩模块之间的协调。玩得好的就好比中餐的大厨,可以做出满汉全席来,玩不好的还不如麦当劳、keywords。到这一步,经验因素开始起作用。没碰过n次壁,甚至几万小时的炼狱,这个火候掌握不好。这类系统很难做得表面上漂亮光洁,总是在混沌中前行,要忍受不完美。这方面的忍受,数学家不如语言学家。数学家天生追求简洁完美,不愿意将就。

白: 句素的个头大,影响范围就大,相当于抛得就远。可以进入远距离的滑动窗口,伟哥说的Ngram的缺点就不存在了。

dirty是必然的。

李:ngram 的缺点是主流的缺点,不是语言多层派的缺点。恰好相反, ngram 多层以后,很容易比任何 CFG 做得细致深入,以至于,想怎么深入就怎么深入, 如果持续开发的话。

CFG 那套单层范式,无论统计模型还是传统文法加以实现,真地深入不下去,是框框决定的。两边都玩过,这种对比太强烈了。我对我的博导说过, HPSG 真地不好用,那边费那么大劲的事儿,在我这儿是小菜。说拿的是牛刀,可对象不是牛,而是鸡。不如我剪刀和匕首好宰鸡。

白: 我一个学生搞蛋白质折叠的分析。蛋白质大分子折叠的点恰好是若干局部的代表(相当于语言的head中心词)之间发生全局相互作用的地方。真是神了。

李:今天到此,特别谢谢白老师的互动和精彩的及时点评。

原载:
科学网—泥沙龙笔记:真伪结构歧义的对策(1/2) 
骨灰级砖家一席谈,真伪结构歧义的对策(2/2) 

 

【相关】

乔姆斯基批判

【立委科普:管式系统是错误放大还是负负得正?】

关于NLP方法论以及两条路线之争

[转载]【白硕 – 穿越乔家大院寻找“毛毛虫”】

【白硕 – 打回原形】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《李白毛55: 漫谈中文NLP和数据流》

立委按:谈笑有鸿儒,泥沙龙写照也。毛白李三剑客,隔洋神交,日颠夜倒,天马行空,人生快事也。语言理解,人工智慧,软体硬件,万言不离其宗也。铿锵三人行,行迹可存,笔记于此,以飨同仁也。

白: 转:《夏洛特烦恼》我以为主角叫夏洛特 。原来男一号叫夏洛 ;接下来会不会有《郭敬明天见》《周立波很大》《吴奇隆胸记》《王宝强奸案》《郭富城会玩》《井柏然并卵》《黄秋生无可恋》《贾乃亮了》《奥巴马上来》《周润发财了》《权志龙虾壳》《金正恩仇录》。

李: 边界之争。夏洛特是词典一方 特+烦恼 是句法一方 作为一般原则 句法认输。所有的边界之争 你总可以找到一种语境 来支持任何一方,但是实际系统中 还是按原则办事(除非某特定语境出现频率大 而且可以形式化被捕捉作为原则的例外)。“郭敬明” 是词典,“明天”或“明天见”也是词典,词典与词典相争。 谁赢呢?要分不同情形。情形对应的是 heuristics。对于此情形,“明天见” 赢。因为有这么一条 heuristic:最少词数胜出。郭敬/明天见, 算两词。郭敬明/天/见 是三词。更深的理由是 音节数量的匀称的 heuristic:3 1 1 不如 2 3 匀称。

白: 无后坐力炮,经常被读成2 3节奏,按构词法,应该是1 3 1。可否不那么早定输赢,都打到上一层。

李:可,keep ambiguity untouched 的办法 也是一招,不过加大了后去 parsing 的搜索空间 也可能不妙。

白: 上层用Ngram也无所谓。看一个滑动窗口激活一个还是两个词袋。

李: 这就是拼积木,难的积木留在最后拼。拼积木ngram比cfg容易,没有爆炸的问题。

白: 正是。

李: 汉语的节奏对称还是很厉害的,举反例总会有,但是实际中发现,音节数的条件,比起其他的条件(词类、子类、语义分类)往往也很好用、可靠。另外一个相关的体会是排比句式,汉语(包括古汉语)排比句式的使用往往可以把本来占有统计劣势的 parse 变得有效起来。不过,至今没想到利用排比句式帮助消歧的好的实现办法。感觉排比的发现和使用是处于另一层,而且排比的 scope 不好事先确定。

毛: 对于汉语NLP, 二位觉得有什么好书可以推荐?不用很深,科普就行。

李: 我很多年不看书了,还是白老师推荐吧。最好的是白老师正在写的,这个无疑问,但你需要等。汉语 NLP 论文献,80% 谈的是切词,全领域走火入魔了,陷入细枝末节和烦琐哲学,很大程度上非常可惜的一种智力浪费。

毛: 等倒没关系,反正暂时也没时间看。其实我不太会有机会用到这方面的知识了,我这是“朝闻道夕死可也”。尼克,Unix的那些Utility,每个都是基于一个while主循环,这就是lambda的语义。Java8让你有一种简洁的方法来表达这种语义,然后它替你生成这样的循环。

白: 自然语言的语义,也有lambda的份儿。

毛: 是,所以我觉得数据流在 NLP 方面可以发挥一些作用。

白: 表函数、表关系、表部件的词(中点、姐夫、抽屉)都是。需要一个带坑的语义结构去定义。坑,就是约束变元。

李: semantic subcat?  Syntactic subcat specifies the form of roles in a frame,correspondingly, semantic subcat specifies the preferred semantic classes for the expected roles of a frame. 语义 subcat 都是必填的,虽然句法上还是可省略。

白: 坑有必填的和可选的两种。

李:如果加上可选的,那就超出了subcat,而进入 cat 了。因为可选的角色一般针对大类,而必填的才针对子类。

白: 这点商榷一下,时间地点等,往往不是必填的。

李: exactly,时间地点等边缘角色针对的是大类。所有的动作、行为都适用。它们都在时间与空间中存在。而一元谓词,还是二元谓词、三元谓词,甚至零元谓词,这些都是子类的区别。天气动词语义上是零元的,虽然句法上可以加一个:“It” is raining 、“老天”下雨了。世界语最接近逻辑,语义的零元,句法也是零元,就不用加这种无意义的主语:Pluvas。

毛: 我觉得最有前景的可能是并行多路的parsing。就如你们刚才说的“无后座力炮”,如果系统能立马分出两个数据流分支,按不同规则加以解析,然后由高一层的规则判断何者为优,那效率就高了。这在NLP方面不是什么新概念,问题在于能否搭出这么灵活而高效的系统。但是NLP所处理的原料不太可能是世界语的文本呀。

李: 只是说明语义和句法之间既对应,又不完全对应的情形。比较不同语言,这些不对应的部分反映了不同语言的应对策略,这是很有意思的对比。

白: 标签化的表达比函数式的表达,应对非必选的东东就灵活多了。

李: 英语用 it,谁知道这 it 是什么东西?汉语比较具体,用的是“老天”。

白: 相反吧,汉语不说。

李: 汉语也可以不说,“下雨了”。如果不说,那就与世界语一样逻辑了,躶体出境。

白: 不说不是省略,是比省略高明的模糊。

李:  这里不是省略,因为逻辑语义上没有这一元的地位。

白: 语义上就有0元谓词,但是句法上没有地位,于是搞了个貌似省略的充数。

李:”老天“ 直译过去就很可笑:The sky is raining, Mother Nature is raining, or, God is raining?

白: 比it还富有想象力.

高: 像黑格尔说的,Was ist Das.

毛: 可以用函数式的方式来处理标签,把二者结合起来。我相信在NLP这一边已经有了许多很好的概念和方法,问题在于怎样搭出好的系统来高效加以实现。所以数据流应该有用武之地。

李: 语言很有意思,可以从三层来看这种“坑”。Filmore 把这个叫做【格语法】,他写过 “Case for case”,许国璋教授翻的,叫《格辩》,得其神韵,很妙。《格辩》是与乔姆斯基唱对台戏,是反乔派中最有分量的历史文献了,高举的是语义大旗。对NLP有深远的影响。所以,“坑”(case)可以分三层来看。第一级是 morphology case,这是“格”的本来用法,主格、宾格、工具格等等的词尾形式所表达的。第二级是 syntactic case,刻画的是 subcat 对语言形式的条件要求,包括具体语言中每个 Role 的词序、介词等的要求。第三级是 semantic case,刻画的是输出框,这是各语言共同的,又叫深层格,是 Filmore 提出的概念,与乔姆斯基的逻辑形式(logical form)对应。要几个元(格)是由谓词的概念子类决定的,它反映的是自然的关系(可以包括本体常识)。可是每个语言在实现这些深层格的时候,会利用不同的句法或词法的形式,于是穿上了句法或词法的外衣。

毛: 好吧,你们先掐。

白: 毛老,函数式和标签式表达,只有一墙之隔。标签其实就是最高抽象类的里面的“准”全局变量,谁都可以继承来塞点私货。不塞也无妨。

毛: 所以,我认为应该重启五代机的研究。有人说现在神经元网络是六代机了,我认为不对,因为说到底总还是“人工智能机”。

李: AI机只是六代机的一个引擎?

毛: 至少是现在,通过图灵测试是计算机的上限,所以不应该有高于AI机的计算机了。

白: 把RNN、多层FSA、多层词袋这些东东做成硬件就是了。

毛: 神经元系统只是一种计算模型,它也要通过编程在计算机上实现。神经元网络的运转说到底还是程序的执行。

白: FPGA实现就很好,能做成NLP协处理器就更棒了,NPU。

毛: 对是对的,但是如果变化太多,硬件实现就太不经济了。另一方面,如果有很多这样的部件,那么如何灵活高效地加以调度,根据具体情况动态搭出合适的系统,这本身就是个问题,这就又要涉及数据流了。我们平时在碰到困难时说要 “换一个思路”, 实际上就是要换一种数据流。

白: 希望NLP能早日成熟到毛老可以对接上的水平。

毛: 我觉得很可能是反过来的, 搞系统的人何时能搭出适合于NLP的系统,NLP Oriented Systems。 问题是搞系统的人一般都不懂NLP。

白: 是NLP这边说不清楚。回头说格。 “把”在汉语里号称是宾格介词,但是遇到“把我累死了”这种例子,又找不到哪个谓词提供宾格的坑。实际上,“累”是“使累”,是一个使动用法。所以顺序很重要,先使动 ,后宾格,一切OK。先宾格,后使动,北都找不着。

毛: “我累” 怎么解析?

白: 主谓啊。但“我累死你”不是。

毛: 哦。那就是“我使你累死”

白:

虚线框内形成一个虚拟谓词(复合然后缩合而成),对于这个虚线框,“你”貌似它的宾语,所以也获得了使用“把”表示宾格的能力。在句法层面,“使”不见了,“把”却在横行。

毛: 那么这种“使动”的属性就作为标签加在“累”这个词上?

李: “累”和“死” 先合成,然后针对宾格的坑就出来了。“累死”这样的算是合成词,不过这种合成词是 productive 的。

白: 气糊涂,饿疯, 都一样, "忙晕", "乐坏".

毛: 累死 应该是 累到死 累到要死的程度 的意思,这个死是补语吧?

白: 是补语,语义上对应一个程度标签,非必选的,所以不算框的正式坑。加标签是随手做,填坑是大动静。所以正规军和游击队,待遇就是不一样。

李: 累死我了 --》 把我累死了。符合正常的位移转换(movement/transformation)方式。【累(V的某种子类)+死】就是一个造词小规则,是产生式合成词的规则。符合这个规则的合成词就带有如下特征:及物,具体说,是使动的及物,并有表示程度的结果(“死”,不是真死)在内。带“把”提前是及物的共性,不用管。只要这个规则成功的时候,subcat 标签加对了,后去就顺理成章,无需特别操作。

毛: 所以呀,面向NLP的系统应该很方便很灵活地让你动态挖个坑,而且是同时挖上好几个坑,可以并行去试试不同的坑。这样才好。

白: “这些馒头把我吃胖了”。这个复杂些,有主有宾,只是虚线框里面拧着,了的时态含义省略了。胖,有一个坑。使和吃,各有两个坑。复合后缩合的虚线框部分,只有两个坑,一主一宾。与“吃”相比,正好颠倒了。所以,这类补语不仅是表程度,而是具体表致使后果的程度。

毛: 期待白老师的科普书早日出来。你的书里会画这些图吗?

白: 会。一个框,本质上就是一个函数定义式,也就是lambda表达式。入矢代表输入(自变量),出矢代表输出(因变量)。复合的时候,正是玩lambda表达式的时候,而且都是带类型的。

毛: 对呀,我在想这些图应该能转化成DAG式的数据流。

白: 每个坑都有类型,譬如,吃,输入类型两个坑分别是有生命、食物,输出类型是事件。

李:对,坑有两个信息:一个是坑本身的类型(what role),一个是坑里面的东西的“格”条件。role 是坑的主人决定的(词典里面的 谓词 subcat 或者规则产出的 谓词 subcat),“格”其实也是  subcat 题中应有之意,规定好的。格是输入匹配条件,roles 是输出事件语义。

毛: 数据流,结合立委的多层 FSA 模型,如果能做成通用的系统,我觉得是个很好的进展。有没有统计过像这样的图大概有多少?(以复盖常用句型为度)

李: 常用句型几十个吧,10-100 的区间。

毛: 哦

李: 看定义的粗细,谓词 subcat 最多只有三元 (所谓 S【V】OC),元里面还可以细分,大体 < 100 可以搞定

毛: 这个就可以用上分层嵌套的方法。

李: 这段对话,毛老、白老师,要我整理出来么?你们定,如果要,我就整理成博文。这次是你们俩主唱,我只是敲边鼓的,纯粹语言学的边鼓。

毛: 那当然好啰,要从尼克提到lambda开始。

白: 没问题啊。

李: 我其实不懂数据流,函数式略懂皮毛。lambda 在学语义学的时候学过一点,但是一直没完全整明白过。

毛: 那是工具性的,NLP本身才是关键。

李: 不过 subcat 在产生式合成词中会有变换,是我在 Morphology 课上学过的,而且学过的案例相当多。复杂案例的变换也不少。白老师的后一个例子是复杂案例之一。语言学家很善于总结这些格框变换的模式。

毛: 尼克最喜欢搞锵锵三人行, 咱就来一下三人行。

李:毛老、白老师,想起一件可能与数据流相关的事来,先写在这里,省得忘了。信息抽取(IE)这个领域刚开创的时候(20年前,由 DARPA 主持推动的 MUC 启动了这个领域,是NLP的实用化努力,非常了不起的一个推动,把NLP从象牙塔拉了出来),主流统计派还没回过味来,因此IE领域中的规则系统并不少,因为规则简单直接好用。其中,规则系统中,比较有影响的是斯坦福研究中心(SRI)推出的所谓 Cascaded FSTs,现在想来就是毛老说的数据流了。虽然后来我领导的小组也一直做多层FSAs,有时也贴上 Cascade 的标签,二者区别是显著的,虽然本质相同。斯坦福做的 Cascaded FSTs(finite state transducers)是把每一层编译的 network 直接用“数据流”串起来的一体化流程,cascade 是编译(或运行?)内部的机制。而我们做的所谓 cascade 就是从外部叠加调用,这是传统软件项目中管式系统(pipeline)的模块化开发,然后在运行的时候,从外部来接口,是大路货的路线。

洪: 看看有没有modern Hadoop实现

李:  总之,昨天我还发懵,搞不清为什么谈多层NLP的时候,毛老非要强调数据流,今天醒过来,原来如此。不过,我个人的感觉是,那种内部数据流的 Cascaded FSTs 后来逐渐淡出视野,一定有它内在的局限或问题。而我走的外部pipeline系统的方法,却得心应手,开花结果了。尽管理论上,数据流的路线应该更容易高效,更容易固化,但是肯定是遇到了什么坎儿过不去。

白:关于数据流,一直感觉NLP涉及的比较细粒度,就算自动机的堆叠或者分层的词袋,仍然粒度过细,一个句子里就可能多次流动,更不要说RNN这种自己转着圈玩的了……把这么细粒度的流动用大数据处理的利器来玩,是不是有点高射炮打蚊子?请毛老指教。但是,自动机堆叠一个实现上重要的架构就是pipelining。底层边吃进输入,边产生阶段性的输出,又变成上一层的输入。这个pipelining的框架如何在系统层面优化实现,很有油水。还有,当数千个自动机协同工作时,它们当中一定有共享的数据结构和计算,如何进行优化,乃至硬件层面的优化,这里面大有文章可做。

毛: 白老师说的对,数据流运用于NLP有许多细节的问题,特别是粒度的问题,还要好好推敲,现在还只是个朦胧的方向。粒度的问题一方面取决于具体的业务逻辑,一方面也跟硬件有密切关系,例如有没有GPU这一点,就对数据流的粒度和形状都会有很大影响。

李: 毛老,这是 SRI 的 work,叫 FASTUS。我在找他们描述 implementation of casaced FSTs 的部分,好像言之不详。以前不求甚解,反正自己已经找到了一条顺风顺水的路子,管人家怎么实现的,用的啥数据流。

毛: 好,谢谢立委。Cascade肯定就是pipelining,这就是一维数据流。

李:这个数据流的概念上没有问题。我是想知道,他们是不是把一个模块的 network 与pipeline 线上的其他 networks 整合成一个 integrated 的 network?我想知道,是不是整个编译全系统,还是像我们一样,每个模块是单单编译,单单调用的?

白: 如果有同步的语义操作,我相信会的。

李: 我的印象是,他们是编译全系统的,所以我们一直承认自己是 external 的 cascade,我们只是外部连接。重点的重点是,里面有一个共同的数据结构,无论 Pipieline 怎么流,不外是对这个数据结构的更新而已。

毛: 所以立委和白老师得要多掐,我就在旁听着,边听边想数据流的事。

李: 唉,还是没看到实现细节,保不定他们所谓的 cascade 与我们的做法一致,不过是利用共同的数据结构作为粘合剂,一个模块一个模块的调用。早年的文献中,最原始最愚蠢的数据结构是 string 进 string 出,然后他们描述怎么在这个一维的string上加各种括号和标签。下一个模块必须在模式匹配的时候要跳过这些人为的括号与标签,才能更新信息,那个愚蠢透顶,不可思议。我还真照文献说的实现过一个prototype,一边做一边骂这帮傻老帽。那个玩意儿根本做不下去,超过两层的处理就焦头烂额了。后来有人(譬如英国著名的NLP平台 GATE)用 XML 作为模块间连接的标准接口,本质上也还是 string,不过是多了一些现成的工具,可以用来 parse 这样的数据成内部结构。当然,在不同系统对接的时候,开发者和使用者是不同的组织,XML 作为标准接口往往是最少扯皮的一种方案,因为内部的数据结构不具有这种传递性。然而对于一个系统内部的各模块,用 XML 做数据传输近乎胡闹。做个 prototype 也许可行,做应用肯定不好。

毛: 立委讲的外部连接和全编译的问题,我理解就是节点间动态局部连接的问题。全编译就是一次性把整个数据流搭好,以后就不变了。所谓外部连接,就是按需要把若干计算节点局部地临时连在一起,灵活可变。当然是后者更好,不过应该是全局框架中的局部变化。我说的要研究怎样根据NLP的特点灵活构筑合适的数据流,就是这个意思。

李: 全局框架的保证就是一个共同的丰富的可扩展的数据结构。只要保证这个数据结构的设计是合理的,一切就好办了。

毛: 昨天群主一声吆喝,立委说话的风格还真的就变了,马雅可夫斯基的调调不见了。

李: 从善如流嘛。
设计一个NLP专项平台,就包括数据结构的设计,NLP语言的设计,该语言的编译和执行,以及数据流流程的配置和优化。这几个环节都是相互联系的,没有丰富的经验根本玩不转。

毛: 在数据流、即函数式程序设计中,不会由多个节点对同一份数据结构进行修改,这就是输入是否immutable和有没有共享变量的问题。不过对于NLP来说这属于实现细节。

李: 为什么不会由多个节点对同一份数据结构进行修改?每个节点都是单向递进的,数据结构因此变得越来越丰富,分析越来越深入,是为 deep parsing。简单的设计允许数据结构信息的增量更新,不允许或者制约了对数据结构的破坏性操作。譬如,推翻一个内部结构,进行重构(因为 patching 的需要)。但是聪明的工程师在实现的时候,不认为破坏一个局部的内部结构有太严重的问题,不过就是实现费劲一点罢了,屁股总是可以擦干净的。所以我说,只有想不到的,没有做不到的,我才不管他内部怎么实现的,只要用起来顺手就好。只有在实现影响了速度的时候,我可以做让步,允许工程师对我的操作做一些限制。

毛: 如果允许,那就有同步等等的问题,不同节点之间就会互相牵制,而且这样的系统是最容易有bug的。而函数式程序设计,其基本的要求就是:每一个计算节点都是数学意义上的函数,都没有副作用,这就要求:1)没有共享变量,2)所有输入都是immutable。把数据流系统设想成一个供水系统,如果水管在一个点上分支,那么在其中的一个分支上投毒,是不会影响另一个分支的。

李: 照这么说,只允许增量式更新是管式系统开发的安全原则?一开始是增量式的,后来是我坚持要多给我一个做 patching 的手段,打破了这个限制。如果不做 patching,我就只剩下一个手段,那就是先扫除例外,后做一般规则。如果允许 patching,我就多了一条路子,先做大路货,然后遇到问题或例外,再做修补。表面上,这两个办法不过就是数据流中个性与共性操作的位置不同而已,但是实践中总是多一条路子,用起来顺手。其实,做破坏性操作,我开始是有担心的,总怕屁股擦不干净。但是,好像还是在可控范围内。

毛: 对,你所说的对工程师们的能力要求,问题就在于那种结构模式本来就是很不可靠的,得要非常高明的人才能对付,所以一般都尽量把同步、互斥这些事情移到操作系统和语言编译器中解决,因为那些都是真正的高手才玩得。但是即使如此,对于复杂的系统,如果不采用函数式即数据流的结构和方法,难度还是很大。

李: 原因可能是,破坏的结构不过是中间的局部结构,还没到要用它的时候,只要最后系统出来的结构是合理的,就似乎没有问题了。

毛: 你挺幸运,手下有几个高明的工程师,要不然恐怕还做不出那么些成果。

李: 因为我是他们的唯一顾客,顾客是上帝。我一直是这么说的。

毛: 端着人的饭碗,就得听人管。

李: 好在我不懂系统,否则可能不敢这么大手大脚。

毛: 但是,这是有限度的,问题再复杂一点,他们可能就会对付不了。这时候就得考虑模式的改变。不走邪路,也不走回头路,咱走正路。

李: 同意这里面有个度。另一方面,系统太漂亮了不顶用。上得厅堂,下得厨房,这个标准对做系统也一样。正路就是厅堂,厨房就是我这样的实用主义,以邓小平思想为指针。

【相关】

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【立委科普:漫谈语言形式】

如果有兴趣的话,准备在群里讲一次语言的形式手段的话题,这是语言学的基础。是 hard-core 语言学,不是电脑学。 一觉醒来了,有精神,有三个呼应,就开讲,谈为什么语言掌握得多的人,或语言学受过训练的人,看到的更多是语言共性。

独: 期待
黄: 呼应~
qj: +1
迈: +2

学生算半个。好,三个半了。可惜毛老,洪爷,雷司令,白老师和尼克等没在。不管这些IT达人了,咱们开讲语言学202。

各位都学过电脑语言,也都会自然语言,可以做个比照。作为符号系统,语言说到底就是以形式来反映内容。语言的不同是形式的不同,内容一定是相同的,否则人不可能交流思想,语言的翻译也就失去了基础,这个道理老少咸知。

那么什么是语言形式呢?回答这个问题就进入语言学了。

如果我们要把内容和形式分开来研究(当然是分不开的,但是理论上可以,否则就没有乔姆斯基革命了),什么是语言形式呢?乍一看语言,不就是 string 么?语音流也好,文字串也好。这个回答不算错,但那是太直观的答案。这个string是有单位的,所以至少可以说语言形式是一个 list of items,items 就是词(more precisely 词素)。list 就是词序。

所以,作为第一个抽象,我们至少得出了词序(word order,有时也叫 linear sequence)是一个重要的语言形式(语言的表达手段)。另一个重要的形式就是词,不过这个还不太够意思,太直感,不够理论,没有抽象。

顾: 语言形式是否是将语言用有限个确定元素进行表示的方法?

可以这么说,问题是词不能算有限的(finite)的单位。

穷举很难,而且即便列举了,也无法抽象,没有抽象,就没有掌握,人不可能学会语言,人脑不比电脑,记忆力可怜。所以,探究语言形式要研究词是个什么玩意儿。这就进入了语言学最基本分支了,叫 morphology,可以称 small syntax,就是一个词范围内的结构。对于有些语言,morphology 很繁复,譬如俄语,拉丁语。对于有些语言,morphology 很贫乏,或者可以说没有 morphology,譬如汉语,英语。

撇开这些语言的元件中的构造性差别,我们在研究“词“的时候,第一眼看到的差别是它的两大类别。一类叫实词(notional words,or open-ended vocabulary),原则上是一个开放的集合;一类是虚词或小词,即功能词(function words or closed vocabulary),是可枚举项。

这个分类很重要,因为作为语言形式,能够掌握的必须是 finite 的集合。对于功能词,因为数量有限,没有问题。功能词就是介词,连词,疑问词,感叹词之类,其实延伸一下也可以包括前缀、后缀等材料(叫语缀),在所有的语言中都是有限量的,出现频率高,可以死记的。它本身就是语言形式,原则上无需抽象(虽然也给他们简单分类),因为可以枚举。

黄: 所以也可以叫做闭类词
qj: 这个词分类对所有语言都适用吗?

对,所有语言都是这样的。欢迎毛老,这下可热闹了。

到此,我们至少得到了三个具体的语言形式了:1 词序; 2. 小词; 3 词缀。语言的不同不是形式的不同,而是形式的倚重和比例的不同,下面还要讲,这才是有趣的语言学。那么实词呢?实词当然是语言形式,但是因为是开放集,必须给他们分类才好形式化。除了成语和习惯表达法,一般来说,你总不能用枚举的办法为每一个实词写规则吧(真有这么做的,在很窄的领域),人脑也是在实词词类的基础上总结抽象的。实词于是有大类(Part of Speech), 名(noun)、形(adjective)、动(verb)三大类。副词(adverb)一般不算单独的大类,往往是形容词派生而来,或者与形容词同形。只有少部分原副词(original adverbs)属于小词的范畴,可以枚举。

实词三大类还是太粗,对于语言的抽象和掌握不够用,于是可以进一步再分类。特别是动词,有一种很重要的句型再分类叫 subcat(subcaegorization),是重要的语言手段,就是区别所谓单宾语子类,双宾语子类,宾语+补足语的不同子类,等等,所有的大辞典后面的附录都有的。再进一步,词汇的语义分类(lexical semantic classification,人啦,动物拉,家具,地点,机构等的分类)也可以加入进来,作为语义的形式化手段,可以用 WordNet 或者董老师的《知网》,这就把语义甚至常识偷偷引进句法了。

总结一下语言形式,1 词序, 2 小词, 3 词缀, 4 词类(包括子类)

张: 在吃火锅间隙,忍不住看了讨论
qj: 正好是晚饭时间。这些宾语子类都是limited的吗?

子类当然是有限的,分类的目的就是让理论上无穷的词汇,转变成有限的分类(包括子类),以便掌握和运用。朗曼词典列出的英语 subcat 类有30多个,牛津大辞典好像列出了20个左右。大同小异,颗粒度略有不同。其实常用的动词句型子类也就是不到10个。汉语的传统词典不列句型小类,但是语言所后来出的《动词用法词典》,还有《汉语800词》等,开始分子类,并标注了。

qj: 恩 英语的规则比汉语更加清晰简单

毛: @wei 这里正好是晚饭时间,你那已是凌晨3点,要不你先睡一觉,醒来再接着讲?你这个应该作为一个大课题开讲并讨论才好。

黄: 汉语800词不错

我睡醒了,才想到开讲的,没关系,你们吃饭。物质文明和精神文明并举。:)

语言形式这么一分,自然语言一下子就豁然开朗了,管它什么语言,不外乎是这四种形式的交错使用,比例搭配和倚重不同而已。所谓语法,也不外是用这四种形式对语言的现象及其背后的结构做描述而已。

白: 正在包饺子,很感兴趣伟哥会把枯燥的句法讲得多么生动。

白老师指正则个。

毛: 刚才@Sophia 说英语的规则比汉语清晰,这一点我觉得就值得讨论,因为我一直认为文言的规则不清晰和岐义在很大程度上阻碍了中国近代的科技进步。

对,毛老,英语确实比汉语清晰,德语法语又比英语(虽然英语是从的德语法语杂交而来的,“不幸” 的是后来走了汉语的道路)清晰。这里的所谓 ”清晰“, 是指这些语言有显性的形式来表达结构关系, 而汉语缺乏这种显性形式,因此做汉语自动分析就显得难。什么是显性的形式?譬如词法范畴的名词的性(gender)、数(number)、格(case),动词的时(tense)、体(aspect)、态(voice)。这些词法范畴是以显性的后缀(词尾)形式来表达的。但是汉语没有。

毛: 如果是跟白话文比呢?
qj: 我就是那种学起文言文大脑一片混沌的人。学过英文的语法结构 以后反过来看当代汉语 反而思路清晰一些
毛: 前几天也曾讲到过一个,文言除在古代可以降低成本以外,实际上仅对艺术有益,对于科技发展则害处极大。

文言更加缺乏显性形式。文言虚词就那么几个,不如现代汉语的小词丰富,因此比现代汉语更难(将来退休以后,准备就做文言 parsing 玩儿)。现代汉语的形式化相对容易一些。

黄: 语法在汉语中的作用不像英语规范(虽然英语也是soso),因此语义的研究尤为重要。

对。再回来看一下形式的分类:1 词序 2 小词 3 词缀 4 词的分类

黄: 有朋友在做文言机器翻译文到现代文的机器翻译。
毛: 由此又影响到中国的传统文化,也是艺术性强都科学技术逻辑都很欠缺。

凡是 morphology (各种词缀)复杂的语言,通常不需要运用词序的手段,也较少依赖小词。譬如俄语,还有世界语(Esperanto),“我爱你”,就三个词,可以用六种词序表达,排列组合。

黄: 世界语不能算是自然语言吧。

世界语算是准自然语言。诞生不自然,发展自然了。为什么语序自由呢,因为有宾格这样的后缀形式,跑到哪里都是动宾的关系。当然就不需要依赖语序的形式了。

回来谈为什么汉语不如西方语言严谨?因为汉语发展过程中,没有走语词综合(利用语缀)的道路,而是坚持在分析(利用小词)的道路上走到黑。从语言学的高度,语缀也好,小词也好,其实也都是差不多的材料(形式),但是,语缀的范畴化,比起小词,要发达得多,因此严谨得多,也冗余得多。可以举例说明。

毛: 有没有人研究过语言跟民族文化与民众性格之间的关系?

肯定有,不过我眼里只有语言和语言学,从来不敢发散。一辈子就想这一件事儿,搞得都有点条件反射了,跟洪爷似的,什么 input 都映射成诗歌,我是什么 input(语言形式)都自动转成树了。管它显性形式还是隐性的形式,全部映射成所谓逻辑形式(logical form),即带有丰富节点信息的结构树。

毛: @wei 你的条件反射就是通过有限自动机完成的。

什么是隐性形式?隐性形式就是词类和各种子类。为什么说是隐性,因为需要标注才能显性化、形式化。那些词本身并没有这些标记。如果用显性的后缀“标注”了,那就成显性了。譬如,“兄弟” 在汉语是名词(noun),这个是词典标注的,或者是 POS 程序标注的(如果有歧义的话),不是这词本身的印记。但是 frato (兄弟) 在世界语就不需要词典标注,因为有名词后缀 -o。再看 汉语的复数 “兄弟们”,这里用了小词“们”,世界语呢,用后缀 -j,fratoj。乍看,这不一样么,都是用有限的语言材料,都是显性的表达。但是,汉语的复数概念表达是有时候显性有时候隐性,这个“们”不是必需的,而有数这个范畴的西方语言(包括世界语)却是永远的显性,那个后缀是不能省略的。

“三个兄弟没水喝”

这里的兄弟就没有小词“们”,而且汉语文法规定了不允许在数量结构后面加复数的小词,硬把显性的表达转变成了隐性的表达。这样的语言是不严谨的,因为信息冗余度不够。换句话说,严谨的语言较少倚赖上下文来确定其结构语义,不严谨的语言离不开上下文,兄弟的复数意义需要上文的数量结构。

汉语的小词是从古汉语的实词虚化而成,这是语言的进步。

毛: 所以乔老爷的CFG解析更适合用于结构严谨的语言。

好了,今天大概就是讲透了一个主题,什么是语言形式。从这个基点,以后可以讨论很多话题,包括文言文与现代汉语,世界语美不美妙不妙,西方语言为什么更加严谨。

RW: 从文言文到白话文,有无语言形式变化?如果有,系统地体现在哪几点?
qj: 如果语言无比严谨没有歧义, 各位也就没有这工作机会了也没得争辩哈哈哈
北: 如果无比严谨, 那就是计算机语言了 世界上觉得程序比小说好看的人是有 但是太少了 根本无足轻重
毛: 语言没有变化和差异,是否正是能够更好更忠实地表达思想的变化和差异?

毛老思维太活跃, 跟不上您.  今天这一讲就完了,现在算是闲聊,借题发挥。

毛: 哈哈,多谢立委一觉醒来忽然心血来潮,这个话题太有趣了
顾: 是否所有的思想,皆可用一种语言表达?

本讲就讲了一点:形式有四种,语序,小词,词缀,分类。只要从这四点出发,很多现象就可以解释。语言大不了就是围绕实词的概念,用这些手段连接起来,表达概念之间的关系意义。

其实“语言形式”这个话题,还没引申来谈,谈起来还有很多有趣的东西,譬如语缀与小词之间的关系,相互补充和替代的作用,语言发展中倚赖语缀的综合道路,以及倚赖小词的分析道路,以及两条路线的斗争,等等,以后有闲再谈。

 

【相关】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

《立委科普:关键词外传》

Keywords as Technology and as Business Model. The entire search industry has relied on keywords as money-making machines. What are the limitations of keywords as technology? What are the limitations of keywords as business model? What are prospects beyond keywords? These are issues discussed in this blog and the next (in progress).

信息爆炸的时代,IT 领域风云多变,群雄争霸,此伏彼起。其中最精彩的故事之一就是搜索巨头的崛起。他们的谋生本领从技术和商业模式两方面看,都是所谓关键词(keywords)。于是关键词有了两个含义,一个是关键词的技术,另一个是作为广告基点的可以卖钱的关键词。

作为技术的关键词,从原理上看是再简单不过的了,就是给海量文本做个索引,以便检索。建索引是个相当古老的传统,严肃一点的教科书、手册和科技书籍,差不多都会在书前的目录之外,再建一个术语索引附于书后,以备读者查询。从满足信息需求的角度看,目录与索引的区别在方便随意浏览还是临时查询。一般人两种需求都有,譬如,每天查看新闻是很多人的习惯,那么进入新闻目录去分类浏览就是自然而然的了(这个需求的延伸就是如今手机上各类新闻推送,个性化服务,送货上门了)。一般而言,这个需求的特点是事先没有一个明确的问题需要解答,浏览看上去有点漫无目的,至少没有一个焦点,就是了解个动态。因此预制的目录和分类可以比较好的适应这种需求。第二个需求不同,信息需求者有个具体的焦点,或者疑问,他需要寻求答案。譬如家里抽水马桶坏了,查一查怎么修理抽水马桶。这类具体的需求千差万别,每个人每个不同的时间点,都可能产生一个特定的问题需要答案。因此,要想事先给这无限的开放的信息需求及其答案做目录式分类,是不可能的,因为有限的分类无法应付无限的问题。为了以不变应万变,关键词索引和检索应运而生,满足了这种需要。因为所有的具体问题或信息焦点,说到底都是由关键词组成的。前述抽水马桶的问题,心里的问题大概是“我的抽水马桶坏了,怎么修理呢”,电脑不懂人话,只好抽出表达主要概念的词(不抽的是所谓 stop words,就是”我“、“的”、“了、”呢“、”怎么“ 之类, 多是高频小词),其关键词就是:抽水马桶,坏,修理。关键词是语言表达的基本单位,因此从信息海洋中检索出来的网页只要按照这些关键词出现的密度(keyword density)排序,要寻找的答案应该就在里面了。(关键词密度排序是最基础的搜索技术,后来改进版的排序算法 Page Rank 更加注重网页本身的信誉度。)
互联网发展伊始,很快迎来了网页的爆发性增长,网人在信息的海洋中找不着北了。于是给网页做目录分类的雅虎兴盛了,门户网站门庭若市。人多了就好做生意,于是门户网站开始了网络时代的广告生意,各种闪烁的广告条让人眼花缭乱。后来人们发现,信息需求靠有限的目录和分类是无法满足的,需要一个工具来帮助搜索。谷歌百度等搜索引擎为支撑的公司遇到了历史的机遇。不过,刚开始的时候,他们也不知道怎样才能挣钱,他们不过是研制了这么一个搜索工具供网人自由使用,他们没有门户网站分门别类的丰富内容,对用户没有粘性,用户拿来就用,用完就走,很可能是回到了内容丰富规整的雅虎去浏览新闻去了。于是,他们就到各大网站去推销这套引擎,凡是大一点的门户或网站,都有一个支持网站内搜索的需求,也就需要搜索引擎,他们于是收取 license fee,这是典型的 B2B(企业对企业) 商业模式,卖的是技术(工具)本身。可这么做难以做大,不过是网站门户的补充而已。
直到有一天,新的 B2C (企业对消费者) 模式出来了,这才开启了搜索引擎大佬财源滚滚的时代。这个模式的基础就是发现了,关键词不仅仅是技术,是索引和查询的元件,而且关键词本身也可以卖大钱。卖给谁?当然是广告商,谁出钱多,就卖给谁,而且关键词数量巨大,加上关键词之间的组合( 可以对关键词做与、或、非等操作),这个盘子可以做得很大,定期竞标,实现利润最大化(百度的所谓竞价排名:顺便说一下,比起谷歌的广告不得影响搜索排序结果的做法,百度有时太没品了,让人无语)。这一切的一切都基于关键词是最简单而且最容易掌控的语言表达的形式,广告商需要借助它与信息搜取者(潜在的用户)匹配上,这样就大大提高了广告的效益,因为广告从传统的被动轰炸客户(如传统媒体譬如电视)一下子提升到主动迎合客户的信息需求,因为在搜索过程中遇到的广告都是与所搜索的关键词密切相关的内容。这个关键词卖钱的商业模式是迄今互联网最成功的模式,经久不衰。
说到这里,我们可以问一下:用关键词来表达信息需求(譬如问题)、满足信息需求(譬如根据密度信誉度返回相关网页)以及代表广告内容,靠谱么?答案是 yes and no。从用户体验来看也是如此。很多时候似乎用关键词,再花点时间阅读反馈回来的前几个网页,就找到了问题的答案。也有的时候发现找不到答案,于是把自己的问题变换一下,抽取不同的关键词,譬如变成 “抽水马桶”,“不工作” 再去查询,答案就出来了,就在新返回的网页里。反正电脑检索是立等可取的,变换几次虽然要多费点儿劲儿尝试(trial and error),满足了需求也还是可以接受的。也确实有些时候,关键词怎么也玩不转,费了九牛二虎之力,尝试不同关键词的组合,可就是找不到答案。有的是心中的问题难以用关键词抽取来表达,譬如你想寻找产品发布的信息,就很难用关键词表达,第一,产品这个概念是一个开放集,没法用关键词去枚举。第二,“发布” 这个关键词是多义的,政治新闻的发布就与产品没有一毛钱的关系,没有动宾关系的制约,硬拿它做关键词去搜索,得到的就是信息巨多,太多杂音。总之,关键词作为语言的元件,表达信息不可能完整准确,它的好处是简单、鲁棒(robust)和查全率(recall)好,作为语言表达,关键词不过是一个最简单的近似,一个无奈的选择。

总结一下,关键词只是表象,它的价值植根于对信息的表达(载体)。是这种信息载体的身份使得它把用户的需求、网页的相关以及广告商的目标这三者联合起来,成为互联网经济的三大基石之一(电商交易和游戏服务是另外的两大互联网产业)。然而,关键词只是信息表达的最原始粗糙的元件,它没有抽象度,无法应对不可枚举的概念(譬如“产品”),它没有语词结构,最多只能用逻辑“与或非”操作关键词(术语叫 boolean query),而无法表达文法关系(譬如表达 “发布”的对象必须是产品)。所有这一切都是根子上的局限。因此,关键词不可能是信息时代的终点。关键词技术和关键词模式都面临而且需要一场颠覆式的革新。

下一讲预告《立委科普:关键词革新》,谈关键词的三面都面临怎样的颠覆式改革。

【后记】

这篇是地地道道的科普,太浅显、白话、常识了,老妪能解了吧,只是结论部分从天下大势和技术基础的角度指出了关键词技术和关键词模式的根本局限,算是夹带了私货:关键词面临革命(或者叫颠覆式革新更易让人接受,也更妥帖,因为不可能杀掉关键词,只是要剥夺它的信息唯一载体的地位)。

原载:《立委科普:关键词外传》

【相关】

《立委科普:关键词革命》 

《铿锵众人行,parsing 可以颠覆关键词吗?》 

《泥沙龙笔记:铿锵三人行》

泥沙龙笔记:parsing 是引擎的核武器,再论NLP与搜索

【研发笔记:没有语言结构可以解析语义么?浅论 LSA】

【立委科普:基于关键词的舆情分类系统面临挑战】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《立委科普:关键词革命》

上篇 《立委科普:关键词外传》提到了关键词的三个面向,关键词作为互联网摇钱树的秘密就在于它是这三面的粘合剂,以信息载体的身份。本篇要论的就是关键词在这三方面所面临的挑战和机遇。一场颠覆式改革正在大数据浪潮中酝酿。
回顾一下,从关键词最大的应用“搜索”的角度,关键词有三个接口两个层面。三个接口是:(1)面对大数据文本,需要事先建立关键词索引(offline indexing);(2) 面对用户的信息需求,关键词query作为默认的搜索形式是在线检索服务(online retrieval)的起点;(3)面对客户广告商,可拍卖的关键词是广告连接用户搜索场景的入口。前二者构成了了关键词的技术层面,着眼于如何满足用户的信息需求:这个迄今不涉及钱,因为互联网大佬们都不约而同选择了免费服务的模式;第(3)项是关键词的生意层面,才涉及 business model:关键词竞价拍卖,唯利是图。原理很简单,我用免费服务吸引用户的频繁使用和眼球,再去广告商客户那儿找钱。对于搜索产业,用户和客户是分离的。这个模式很牛逼,支撑了搜索产业近20年!
可是,随着大数据新时代的到来,随着语言技术的进步,关键词革新在所难免。一方面,盛名之下其实难副,关键词作为信息载体支持现有模式,其局限越来越突出。另一方面,比关键词高级的自然语言处理(NLP)的 深度句法分析(deep parsing)技术业已成熟,就像爱因斯坦体系注定包容并取代牛顿体系一样,深度句法颠覆关键词乃是大势所趋,只是一个时间的问题。

先从关键词的优缺点谈起。关键词的优点是:简单(simple),鲁棒(robust),查全率好(good recall)。这些优点也决定了它的两大局限:(1)查准率差(poor precision);(2)表达手段贫乏(not expressive),甚至无法表达,不能胜任信息载体的工作。

优点缺点一个面向一个面向地谈,这样可以帮助看清关键词的全貌及其发展趋向。

先从用户的视角说,关键词的“简单”显而易见,因为任何信息都是由词汇组成的,训练用户在词汇中提取关键词是比较自然的事儿,所以基本人人会用。也有开始不会用的用户,譬如不知道把非关键的停止词(stop words)除掉,或者留下了太多的关键词(关键词之间默认是“逻辑与”的关系),这样去搜索,结果往往找不到合适的信息,但是吃几次亏用户慢慢就适应了。

关键词 query 作为检索的入口,其表达的贫乏和局限,我们每个网人都有过体会,有些想找的信息用关键词匹配就是找不到。道理很简单,思想和语言都是二维的,而关键词是一维,严格说,连一维都不够, 因为关键词的默认就是一袋子词,连次序的维度都不在内。具体来说,关键词作为query,既不精准,也不概括,在查准率(precision)与查全率(recall)两方面都有根本的局限。不精准的原因是所查的关键词之间关系是简单的“与”,因此无法确定返回的网页链接(URLs)里是不是有自己想要的情报,还是关键词的偶然共现(如果网页文字很多,偶然共现的可能性很大,返回来的则多为噪音)。对付这类噪音,目前的办法是给关键词加上引号(quoted query)把一袋子词变成线性词串去做 exact match,这个办法增加了词序的维度,的确大大降低了噪音,但同时也往往漏掉了太多,因为语言中相关联的关键词并不是总挨在一起,事实上紧挨着的通常是极少数。作为信息载体,关键词之间的关联的最好表达还是要揭示其内在的文法关系,这一点很少异议。第二条缺陷是关键词不具有概括性,因此也影响了查全率。很多人认为关键词除了简单外,最大的优点就是查全率好,这样看来似乎与缺乏概括性有矛盾。这个疑似矛盾实际上是基于查全率的两个不同定义。查全率的形式定义几乎就是为关键词量身定制的,说的是,关键词检索理论上可以做到100%的查全率:对于被索引的网页,系统完全可以返回所有的符合关键词query条件的相关网页,一个不拉,这在技术上是可以保证的。然而这种“查全率”不能反映用户的真实需求,因为同一个概念完全可能以不同的关键词来表达。满足信息需求的查全率必须以概念而不是关键词来计算。当这个概念是语词不可枚举的时候,关键词技术则根本无法表达,用户所要的查全率无法实现。【注一】

举个例子,如果你想搜寻公司购并的情报,现在的办法就是搜索 “公司购并”。这个效果差太远了,因为谈论公司购并里面恰好提到这两个词的是少数。多数的情形都是,Dell 购并了EMC, 苹果准备购买特斯拉,腾讯要买京东之类。关键词在这里遇到两大挑战:其一关键词没有概括能力,而有很多概念在语言表达中是没有办法枚举的,譬如公司的概念,我们没法在query一一列举所有的公司名: Dell|EMC|苹果|特拉斯|腾讯|京东......,这个给公司自动标注的工作叫做 NE(Named Entity tagging),通常是语言分析系统里面的一个组件。第二,关键词的 query 不允许设定任何文法关系的条件。譬如,公司购并的情报需要”公司“类的词作为 BUY (包括“购并”、“购买”、“买”等) 的宾语(对象),没有这个动宾(VO)条件的限定,返回的文件可能是噪音,里面恰好提到 BUY 和公司,但二者并没有并购的关系。对于这二者,深度分析系统都已经把握 了,其结果表达表现为带有节点语词及其标注的句法树,其中树结构的核心就是SVO(主谓宾)。因此,关键词query的升级应该是 SVO 这类关系条件的表达。这样的技术革新面对的最大问题就是如何培训用户使用SVO而不是简单的关键词 query。面对亿万用户,这似乎很难。然而,用户是可以训练出来的。我们整整一代人都被关键词训练过、洗脑过了,才学会了怎样使用关键词的不同组合尝试找到最好的结果。同理,SVO 也会经历这个用户自适应的过程。只要搜索界面设计得巧妙和intuitive,允许两种搜索并存,尝到SVO搜索甜头的用户会逐渐影响带动其他的用户。

第二个面向是大头,就是对大数据处理的关键词升级。从搜索引擎所面对的整个互联网而言,使用任何比简单的关键词索引更高级的语言技术,即便理论上可以实现,无论从成本还是运作上,都将是一个巨大的挑战,在可预见的将来,没有理由相信仅存的几家互联网搜索巨头会冒这个险。然而,近年来大数据架构的突破性发展,以及硬件成本的下降,至少使得我们相信,在互联网大海的一个子集(譬如社会媒体,譬如维基世界,譬如某垂直领域)施行语言处理技术的升级,是完全可行的。

从行业的总体趋势看,关键词技术不可能永远不思进取而立于不败之地。

我们看到,自然语言的深度分析技术已经进过反复验证和在 niche markets 的产品中成功应用,技术升级的条件业已成熟。 哪怕只利用深度分析的一个部分,譬如只做SVO(主谓宾)

,甚至只做 VO

,理论上也是对所有现存关键词技术驱动的应用(不仅仅是搜索)的一个颠覆。因为突然多了一个维度,在词汇之上,增加了关键的结构信息:非结构的大数据突然结构化了。面对结构的海洋,传统的数据搜索和挖掘势必拓展。挖掘(mining)方面目前做得很浅,就是检索(retrieval)里面的一个小东西,凑合事儿。技术上看二者的关系,parsing 是见树,挖掘才见林。以前只有关键词索引,没有条件见林子,挖掘没有实验基地,限制了它的发展和深入。以此观之,以前所做的不过是 baseline 而已,如今只要有大数据、大计算(parsing比起关键词索引就是大计算)、大存储,再加上新的挖掘和检索的自然拓展,那么凡是关键词技术生存的地方都可以革命,包括以搜索(search)、分类(classification)、聚合(clustering)为基础的各类应用(与搜索直接相关的有智能搜索和问答系统,其他的应用还包括舆情挖掘、客户情报、自动文摘、新闻推送、智能助理、机器人接口等等)。这个总体趋向如此明晰,条件也基本成熟,现在是考验想象力的时候,然后就是产品老总配合语言技术创新者,脚踏实地一个应用一个应用的去做

最后说一下作为搜索公司客户的广告商(金主)。关键词的简单特性,在这里表现为商业标的的清晰,这是一个很大的优点。以关键词博弈定价易于操作,关键词最清晰,最少纠纷,谁买了就归谁,没有扯皮的事儿。广告商只要愿意花钱,可以竞标购买任何热门的关键词,也可以预见自己广告的投放情境,一切都是透明的。有权威人士认为关键词商业标的的清晰是压倒性的优点,以致任何革新如果削弱了这一点就难以成功。尽管如此,关键词的两大局限“精准度差”和“表达力弱”,从广告商的角度同样存在,而且很严重,因为这些局限直接影响了广告商客户的核心利益。长远看来,广告商不可能满足于用简单的关键词来作为广告内容连接用户的表达方式,因为它实在太简陋了。广告商的终极目标是精准投放,关键词虽然比传统广告的被动轰炸要精准,但是无法与语言自动分析理解基础上的精准匹配相比拟。从历史上看,关键词对传统广告的革命就是基于精准投放这个核心价值。前搜索时代,被动轰炸是广告商的唯一模式,突然出现关键词了,精准度大幅度提高,广告效果也容易追踪测量。现在 SVO 出现了,搜索面对的是更高阶段的精准投放,与上次广告革命非常相似。如果说让普罗百姓很快学会SVO来代替关键词不大现实,可作为广告商,直接购买表现力丰富得多的SVO 不是不可以想象的事儿。事实上,也可以对广告商客户做专业服务(professional service),不用他们操心广告高精准投放所需的SVO的具体表达形式,只要展示精准投放的实际效果即可。当然前提是搜索内容的 indexing 也做了相同的革新, 这样才能衔接得上,商业模式的推进才有可能。

总结一下,作为现存语言技术基础的关键词面临一场技术革命,因为语言深度分析技术与大数据处理的技术双方都已经成熟。革命不是杀头,深度分析对关键词,就是爱因斯坦对牛顿。抽取挖掘搜索等的质量大提升需要的是两条腿走路,一条是关键词,另一条就是SVO。到了应用领域的语义语用层,关键词,或者叫驱动词(driving words:严格地说,在SVO中,有的关键词保留成为驱动词,有的抽象为词的 feature了),依然不可或缺,但对关键词技术的颠覆式创新增加了语言结构这个关键。正如语言所老所长吕叔湘先生很多年前谈文法的关键性作用时说的,光有珍珠成不了项链,还要有珍珠串子。作为革新,信息载体应该也必须从关键词向 “驱动词+SVO” 过渡。

【注一】

其实,即便一个概念是可以枚举的,关键词 query 也常常困难重重。可以枚举的关键词理论上只要用逻辑“或”即可表达概念的外延,从而保证查全率。但事实上,很多关键词都是多义的,并不能多对一到想要搜寻的概念上,因此产生噪音。事实上,搜索服务曾经做过所谓“同义词扩展”(synonym expansion)的尝试,但很多时候由于自然语言词汇的多义带来的噪音而得不偿失。这个困扰在革命性的 SVO query 框架内不再成为挑战,因为在 SVO 看来,关键词不再是孤立的存在,而是受到上下文的文法关系约束的驱动词。多义在句法上下文中,噪音自然减除。这是 SVO 高于关键词的一个极大优势。

原载:《立委科普:关键词革新》

【相关】

《立委科普:关键词外传》

《铿锵众人行,parsing 可以颠覆关键词吗?》 

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白之41:Gui冒VP的风险】

白:
“这些国家的统治者必须变革,不然就是在冒被一脚踢开的风险。”
1、“冒……风险”,离合词;
2、“风险”属于“N/S”型的名词,不反填定语从句;
3、“被”由N+升格为N,占“一脚踢开”提供的两个坑中的一个;
4、先行成分“这些国家的统治者”填“一脚踢开”提供的另一个坑。

李:

【冒VP的风险】

汉语离合词 是框式结构之一种,离合词里面的 XP 是啥 离合词本身决定。可以认为是由该词的subcat模板所规定。 这个case里面规定是要 VP。离合词“冒-险”(“冒-之|的 险|风险”)本身也是(动宾式)VP,于是我们赶上了内外两个 VPs:“Gui 冒杀头之险”。Subcat 如是说:

1 Gui 冒险。

2 Gui 杀头: 实际上是被杀头。“杀-头”本身也是离合词 里面应该是要的NP。NP外化就成了句法主语和逻辑宾语,也就是所谓隐式被动:Gui杀头 == Gui被杀头 == 把Gui杀头 == 杀Gui的头 == 对Gui杀头。这才叫语言学,微观语言学, subcat 执导。subcat 是语言个性与共性的接口

3 两个 VPs 之间的关系: 当然也由外面这个离合词“冒-险”来决定。具体说就是,内VP是外VP的同位语,是给外VP填充“冒险”的内容:冒什么险?杀头之险。这个同位语来源于内VP是外VP里宾语的定语这种形式,是随着离合词动态合成为动宾合成词,由宾语的同位语定语,捎带过来的(定语转状语,主子单位是变大了,但mod本性不变)。这个现象是动宾离合词的共性,再如:洗个痛快的澡 == 痛快洗澡.

4 剩下一些句法语义的鸡零狗碎 也仍然是外VP的subcat决定的:包括内VP是非谓语VP,因此不能用句法(或词法)的时体形式,语义上表达的是不定式。至于外VP,它当然是谓语VP, 譬如可以有进行体:“Gui正在冒杀头之险”。

总结一下:subcat 可以有很丰富的内容,很复杂的规定,它连接句法形式(模式s)与其对应的语义。好在 subcat 都是词典词条决定的,所以再复杂琐碎,在词典主义(lexicalist)看来也不难把控。

理论上 subcat 的这种复杂性最好由subcat的复杂特征结构(SUBCATT typed feature structure)来描述。上面举的例子及其相关句法语义的约束及其与逻辑语义的接口,可以非常从容、非常精细地在诸如 HPSG 的复杂特征结构里面透明地表达出来。如果是象牙塔玩符号逻辑,可说是进入了符号逻辑的天国:个性共性 词典grammar, 句法语义 燕舞莺歌,太平世界 同此凉热,在在美景 处处和谐。这就是我以前说的 玩 HPSG 可以入迷的原因。下面给几个HPSG 的复杂特征结构的图示,展现一下其叠床架屋背后的合一(unification)风采:

但我们终究还是抛弃了复杂特征结构,为了线速,为了简略,为了多层,为了模块化和易维护。总之是为了现世的便利,挥别了理想的符号天国。

 

【相关】

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白之40:逻辑语义是语义核心,但不是全部】

李:
"不晓得是啥":不晓得[ ]是啥

不晓得【萝卜】是啥。
这个宾语从句中的主语的坑省略以后,萝卜哪里去了呢?

萝卜不晓得是啥
不晓得是啥的萝卜
一口可口可乐喝完, 吐出一块不晓得是啥的东西

白:
“拿一些自己都不晓得是啥的东西来糊弄别人。”
定语从句反而是自然的

李:
why not 不晓得 NP[是啥的东西]? “晓得”的 subcats 既可带宾语从句,也可带NP宾语的:

不晓得啥东西
不晓得这东西

then, why the parse [[不晓得是啥]的东西] is better than [不晓得[是啥的东西]]?回答清楚这个问题,貌似需要一点说法。

白:
“他是个连微积分都不晓得是啥的东西”
又回去了。“晓得”带小句宾时,不满足穿透性,就是说晓得的逻辑主语并不必然成为小句的逻辑主语。这样“不晓得是啥”作为一个整体进入定语从句的时候,就出现了两个坑,不知道反填哪一个,这是要避免的。

李:
是吗?
“我不晓得到哪里去” == 我不晓得【我】到哪里去。

白:
不一定,可自主决策类,可以穿透。一般性的动词,无法穿透。

李:
“不晓得是啥的东西” 与“狂吠的狗”应该是一个逻辑。

白:
狂吠是不及物的,一个坑。没有歧义。

李:
“不晓得是啥” 也是vp 也是不及物 或 宾语已经内部 saturated。

白:
不晓得是啥,两个坑:a不晓得b是啥。但“连微积分都不晓得是啥”,微积分填掉了一个坑,就没这个问题了。b锁定,只剩a了。“东西”必然指“晓得”的逻辑主语。只剩下这个可能。东西只有在负面情感时才可指人,虽然逻辑上包含人。连……都不晓得是啥,显然承载了这个负面情感。

李:
对。两个坑。但是 b 坑比 a 坑更具有必填性。

在“不知道是啥的东西”里,“东西” 与 “晓得” 没有直接关系, “东西” 微观上是 “是啥” 的主语,宏观上 是 “不晓得是啥” 的主语。“这玩意是大家都不晓得是啥的东西。”
这里“晓得”的主语是“大家”。

白:
有“大家”,先填掉了逻辑主语。“东西”拔不走了。

李:
“晓得”的第二个坑 是宾语子句。“东西” 显然与 “晓得” 没有直接关系,因为根本就没坑了, “晓得” 已经饱和了。如果引进短语结构ps,可以说 “不晓得是啥” 这个 vp,还有两个坑。有两个坑的 vp 听上去很奇怪。但在汉语的所谓 “双主语句式”中有可能存在。

白:
“是”的两个坑,“啥”占了一个

晓得的逻辑宾语是X,S比N优先,顺序比逆序优先。
“这玩意儿他们不晓得”。这种情况又可以了。晓得的逻辑主语跟另一个不兼容。又多出来一个。整体上还是相当于一个及物动词。

李:
大主语 topic,有可能是一个 arg 的坑 也有可能不占坑 那就是 mod。小主语必然填一个坑。

白:
双主语有两种情形,一种是大小主语,往往有part of联系;另一种是宾语提前或话题化,这种没有part of联系。有part of的,可以名词自带坑。没有的,只能消费里面的坑。名词自带坑的,里面就可以是不及物动词了。一个坑就够。另一个靠带坑的名词自吃自吐。自带坑的名词甚至可以传导到更遥远的补语。“他眼睛哭肿了”实际是:1、他哭;2、眼睛肿;3、眼睛是他身体的部分。眼睛,和哭,共享“他”这个萝卜。因为“肿”合并到“哭”,“肿”辖域内的残坑(谁的眼睛)获得免费额度。可以复用已填坑的萝卜。

李:
有 part of 这种特别有意思:“他身体不错”。

== 【他 身体】不错。
== 他 【身体 不错】

这两个看似水火不容的结构,都有各自的合理和优点,二者互补才反映全貌。

(1) “他的身体不错”:显性形式的小词“的”,让“他”降格为修饰语,属于填了“身体”所留的坑的修饰语。

白:
有“的”,修饰语辖域自然归并到被修饰语辖域,也获得免费额度。他,可以既填“的”本身的坑,也可以再填“身体”的坑。

李:
(2) 他身体方面不错:“身体”被降格,降格成后置词短语PP“身体方面”(Postpositional Phrase),类似状语。
(3) “他么,身体不错”,“他”降格为话题状语,用了口语小词“么”。
(4) “他身体好,又聪明” 可算是谓词“升格”(或“小句降格”)。从一元化领导升格为集体领导。本来谓词(譬如“聪明”)就是谓语,但现在“身体好”这个短语或小句整体变成了谓语,与另一个AP谓语“聪明”并列。

白:
“身体好”整体相当于一个不及物动词。两个带坑的成分级联,略去中间环节,还是吃N吐S。

李:
这些现象极端有趣,fascinating。表明 在基本相同的逻辑语义底层结构中,语言表达可以借助语言学的形式手段,给这个底层结构穿不同的衣服,打扮成不同的形象。进而对其语义做某种非核心的修饰。

白:
从填坑角度看只是初等的数学运算。免费额度算清楚了,其他都是小菜一碟。这又打破树的形态,真心不是树。

李:
但是 即便所有的坑都填妥了,那也只是逻辑语义的胜利,底层核心的被求解,表层的细微语义差别(nuances), 那些不同表达方式,那些“升格”、“降格”的不同语言形式。它们所反映的东西 严格地说 也应该被恰当的捕捉和表达。

白:
两件事情,谁和谁有什么关系是逻辑语义的事儿。用什么顺序表达是另一件事。后者也负载信息。

李:
对呀。

白:
比如听说双方之前各知道什么,强调什么,诸如此类。这些不在“主结构”框架内,但是是一些“环境变量”,需要的时候可以从里面捕捉这些信息。

李:
最典型的例子是 “我读书” 与 “我读的书”,二者语义的区别,虽然逻辑语义核心以及填坑关系是相同的。

白:
焦点不同、有定性不同,已然未然不同,甚至单复数也可能不同。我当下正在读的书可能标配是单数,我读过的书标配就是复数。

李:
这些语义 与 逻辑语义,处于不同的层面。逻辑语义是本体(ontoogy)作为模版, 这些语义与本体模版无关。所谓本体模版,说到底就是规定了坑与萝卜,及其 type appropriateness(相谐性),他不反映这些有待填充的模版之间的结构关系,也不反映关系中的节点上附加的语义或细微差别,诸如 强调、委婉、正式、非正式、语气 等。

白:
这些都可以抽象为:语境的坑,只不过这些是需要经常update和reshuffle的。做下一代人机对话不做这个的,都是耍流氓。

李:
不仅仅人机对话,机器翻译也要这个。
30年前,董老师强调要以语言之间的核心,即逻辑语义,作为机器翻译的基础。让我们脑洞大开 深受启蒙。然而 这只是翻译需要正确传达的一个方面,的确是最核心的一面,但不是全部。边缘意义和细微差别,在核心问题基本解决后,就成为需要着力的另一方面。典型的例子是被动语态的机器翻译。从逻辑语义的角度看,主动被动是表层的语言现象,在逻辑上没有地位。因此所有的被动语态都可以转变为逻辑等价的主动语态来翻译。这有合理、逻辑和简明的一面,但人不是这样翻译的:一个高明的译者懂得,什么时候被动可以翻译成主动,什么时候需要翻译成显式的被动,什么时候可以翻译成隐式的被动,什么时候改造成反身自动的表达方式(譬如在英语到法语的翻译中加 se)。

白:
视角选择,也是一个考量因素。有时,被动语态的采用,纯粹是为了视角的连贯。跟立场态度并无直接瓜葛。

李:
总之 逻辑语义是个纲 纲举目不一定张 对目下功夫是区别一个好的系统和一个很好的系统重要指针。

白:
纳入语境的坑,一个好处就是所有填坑的机制可以复用过来,无需另起炉灶。说话人、听话人、处所、时间、先序语段、先序焦点、相对阶位等等,都可以套用本体的subcat。

李:
这个方向探索不多。但现在是可以考虑的时候了。

白:
我考虑很久了。语义是船,语境是河。船有内部结构,但行进也受到河的左右。内部结构不能完全决定行进的选择。

白:
不知道“王冕死了父亲”算是交叉还是不交叉?
王冕游离在外,另一部分的中心词是死,但王冕却不填它的坑,而是去填“父亲”留下的残坑。成为“死了父亲”这个短语的事实上的逻辑主语。但是还原到二元关系,这个link还是在王冕和父亲之间。从形式上看,王冕(N)和父亲填坑后的残坑(/N)中间隔着中心谓词“死(S)”,但这个吃饱了的S对N和/N之间的眉来眼去是无感的。
乐见其成。

F:
如果是语义依存,是non-projective的,是有交叉的,"父亲"这个词的投射不连续。

白:
‘’倒是“父亲”填“死”坑的一刹那,让我们见证了“右侧单坑核心成分”比“左侧单坑核心成分”优先级高的现实。如果双坑,则是左侧核心成分优先级高,我把它们处理成句法上存在填坑关系了。

李:
“王冕死了父亲”的交叉与否的问题,这个以前想过。不交叉原则针对的是句法关系
这是句法关系的逻辑底线,交叉了逻辑上无法说通,所以判违规。还没见过例外:句法关系可以并列,嵌套,但不能交叉。但不交叉原则不适用于逻辑语义关系。其实,严格说,相对于逻辑语义的不应该叫句法关系,也包括词法关系(可以看成是小句法)。总之是形式层面的结构关系。形式层面的结构关系不允许交叉,这个原则是对的。有意思的是,语言中的不同层面的形式结构关系,戴上逻辑语义的眼镜,或映射到逻辑语义的表达的时候,就可能发现交叉现象。原因是昨天说过的,逻辑语义讲的是萝卜和坑的语义关系。逻辑语义的图(graph)中是不包含句法结构层次之间的关系语义的。换句话说,逻辑语义把“结构”打平了。譬如在句法中被局限在词法层面的萝卜,完全有可能去填句法层面的逻辑语义的坑。反之亦然:词法层面中的坑,完全有可能让句法层面的萝卜去填。用乔老爷的Xbar句法框架或概念来说就是,语言单位X的层次,在逻辑语义看来是不重要甚至不存在的,无论是 X 是 -1 (我把词法内部的层上标为负数),0(词一级),1(组一级),2(短语一级)。萝卜与坑可以在这些不同层次中继承或跳转,但是句法上却有层次之间的区别和禁忌。

这些层次以及层次间的关系和规定(譬如不交叉原则)是客观存在的反映,是逻辑语义以外的另一层结构语义。这种东西在重视层级的短语结构句法(PSG)及其表达中,体现得较好。在不重视层级的依存文法(DG)中就反映和表达得不好或不够。不管我多么喜欢DG,多么讨厌PSG表达的叠床架屋,我还是要指出DG的某些不足,正是PSG的长处。

回到白老师的例子,可以看得清晰具体一些:“王冕死了父亲”。PSG句法上,王冕 是NP,“死了父亲”是VP,构成S。VP里面“死了”是V-bar, “父亲”是NP宾语。这里面的结构不可能有任何交叉出现。“王冕”与“父亲”处于不同的层次,句法不允许一个单位钻进另一单位的里面去建立联系,这是违反了君臣父子的天条。一个句法结构,对外就是一个元素,里面是黑箱子,不透明(但可以利用某种机制传递某种东西)。唯此,才能维护结构的清晰。但是到了逻辑语义,这些条条框框都可以打破:一个儿子可以有n个老子,交叉也不是不可以。树(tree)是无法承载逻辑语义的任意性和结构扁平化了,于是需要用图(graph)。我早就说过,DG本性上比较亲近逻辑语义(深层核心结构),而PSG则亲近的表层句法结构。很多人以为它们是互换的或等价的,只是表达(reprentation)方式不同。其实不仅如此。在我们饭还吃不饱的时候,我们首先想到的肚子问题,核心问题。当我们衣食无忧的时候,我们就要讲究全面一些,核心和边缘都不放过。并不是不放过边缘,不放过表层结构语义,就一定要回到PSG,但是至少仅仅逻辑语义是不够的,还需要添加其他,就如白老师昨天提到的那些以及他的一些表达方案。

白:
这些所谓的句法,功劳不大,脾气倒是不小。比他多识别出有价值的二元关系,反而有毛病了。哪儿说理去。我认为这里面存在一个次序问题。

站在外层N的角度,它确实填了一个/N的坑。但不同粒度会看见不同的结果。“死了父亲”是一个联合体,这个联合体挖了一个名词坑,“王冕”填进去,天造地设、严丝合缝。既没有穿越也没有交叉。“他哭肿了眼睛”也是一样。“肿了眼睛”作为一个联合体挖了一个名词坑。和“哭”的名词坑一道,共享“他”这个萝卜。

中心词作为组块的代表,统一对外提供坑。这是对的。但是这坑未必是中心词自带的,可以是中心词在组块内部兼并而来的。把坑拘泥于中心词自带的坑,相当于用镣铐把自己锁起来。何苦自己为难自己?

李:
今天的对话,符号逻辑,参杂点黑话与绿色幽默,有点绕,烧点脑。管他呢,还是发了吧。

白:
“把字句”与补语所带坑的深度捆绑,也是受这个“联合体意义上的坑”规律所支配的。“他把眼睛哭肿了”单看“哭”和“肿”,没有坑可以共享萝卜,“哭”与human相谐,“肿”与body part相谐,二者尿不到一个壶里。但是“眼睛”恰恰在这里起到了“转换插头”的作用,吃human,吐human body。看这个“肿了眼睛”的联合体所带的坑,与“哭”所带的坑,完全相谐,恰恰是可以共享的了。所以,在PSG那里避之唯恐不及的穿越交叉,其实隐藏着重大玄机。恰如其分地把它请回句法,可以起到四两拨千斤的作用。我对什么该放在句法层面,其实只有一个标准,能描述谁和谁有关系。如果谁和谁就是交叉着发生关系,句法不仅不应该回避,而且应该忠实描述。更何况,大的方面,中心词代表所在组块对外发生关系方面,并无违反。只是“过继的坑”也可以代替“亲生的坑”而已。树状结构、亲生的坑,都不应该成为忠实描述“谁跟谁有关系”的障碍。如果有障碍,一定是障碍错了而不是关系错了。

退一步海阔天空。只要把“在你辖域里残留的坑”统统在名义上算作“你的坑”,什么都结了。

李:
说得不错。但估计乔老爷是不认账的。他在句法与语义之间打隔断,坚信不隔断 谁也做不好 做不纯粹和深入。何况 语义是全人类共同的 哪有句法有性格和多姿多彩又万变不离其宗呢。他的普遍文法(UG) 仍然基于句法独立于语义的根本原则。只有句法才是真正的语言学。到了语义,语言学就开始参杂逻辑的杂质了。

白:
我说的也都是句法,不是语义。只不过是能给语义省点事儿的句法。

李:
夹杂了本体,或本体的隐藏式 譬如 大数据中间件,就不能说是纯句法,因为常识揉进了形式系统。

白:
只是在控制(怎么做)层面引入了本体/大数据,在描述(是什么)层面无需引入。而老乔的语言学一样是不管控制层面的事儿的。也就是说,如果只是为了写一本句法书而不是为了做parser,本体连一句话都不需要提。那就在这个层面比,谁揭示了更多的结构性信息。

 

【相关】

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白郭52:单层、一锅烩、反悔】

Guo:
@白 你前几天提到“算符优先”,今天又提type,猜想你的二元相偕是离散(而不是连续)的。能问下你的运算符和类型大概的数目规模吗?

完全不用“复杂特征集”,把所有不同关系都拍平在同一层,感觉颗粒度不容易掌握。

白:
(1)type是贯穿于句法和语义的;(2)算符优先是仅适用于句法的;(3)二元相谐是仅适用于语义中间件(subcat+统计)的;(4)平拍是贯穿于句法和语义的。算符的数目几十;句法cat少得可怜;subcat目前1000多。

Guo:
几件不同的事情!谢了!

白:
神奇的是,少得可怜的句法cat,居然管了这么多事儿。勾画了毛毛虫的“包络”。subcat确定了毛毛虫的细节。

李:
平拍是what

白:
把萝卜和坑搁同一个桌面上。坑不再嵌套。就是单子化的意思。

李:
哦 扁平化。
我自己在扁平化过程中,也有很多机关很好玩的,我叫做原子化。原子了,但taxonomy还在。非常轻便利索,但一样容纳知识结构。

白:
taxonomy是框架定义,不是实例定义。具体到实例都是扁平化的。

李:
本体(ontology)里面的主线 ISA 就是 taxonomy. 社科院跟刘老师做MT的时候,就是我提议的扁平化,说话30多年了。刘老师当时很高兴,给起了一个高大上的名字叫背景知识库(BGKB)。与白老师现在的中间件处于同一个地位。

白:
一个词在说人,就犯不上扯猿猴啊灵长类什么的。

李:
问题在当那个说【人】的词填坑的时候,【灵长类】啥的需要参与。当然,用大数据中间件也许可以绕过去了。但传统的优选语义的约束必须要用到 taxonomy,具体说就是,如果是用到灵长类,语义相谐给满分。

白:
萝卜和坑的subcat不一致时需要借助taxonomy一致化,具体就是求格(lattice)的下确界。

李:
就是。
理论上taxonomy往上是满分,taxonomy 向下需要打个折扣。你要的是【人】,那遇到【职业】的话,是满分。你要的是【职业】,遇到了【人】,那需要打个折扣,因为并不是所有的人都有职业。

白:
但是所谓绕过去,只是在借助subcat解决parsing问题(例如伪歧义)的意义上绕过去,解决语义问题则是绕不过去的。也就是说,大数据可以部分替代subcat来确定谁跟谁有关系,但不能进一步确定是什么关系。确定是什么关系(落到哪个槽里)还得subcat出马。

Guo:
说到这,此毛毛虫已非彼毛毛虫了。

@wei 在模式匹配下的分层,我理解主要是为了方便(在nonterminal级)lookahead并引入有限的上下文相关。

其实顺着LR(k)的思路,对其稍加改造,也是可以对含有一定上下文相关规则的文法等价地单次无回溯做parsing的。

李:
等价这种东西理论上可以证明,实际上做起来就知道,模块化是怎样一个让人放心的开发策略了。哪个大型软件不是模块化的?为什么偏偏到了自然语言这个 monster,非要一锅烩呢?

这里面有一个坎儿,不是认知和策略层面的, 而是算法层面的。如果你的parsing算法的基因就是单层搜索,即便你接受模块化的好处,多层的从容和开发维护的便利,你可能还是难以改造成多层。

白:
拿具体例子说。哪个策略是算符优先做不到的。
算符优先碍着开发什么事儿了

李:
我说不过你,但你说不服我,=)
我是打死也不会回到单层去。

白:
我一张优先序大表,表上每个格子对应一个模块。

李:
对啊

白:
绝对是模块化的,但算法是按照优先序统一调度的。这没矛盾啊。

李:
事实上Brill tagger就是单层,但是里面的200条规则是有次序的,或优先级的,等价于200多个模块的多层pipeline。这个道理我懂。

白:
语言学家只需要关注一个一个模块的事情,只需要关心优先序的语言学合理性,不需要关心调度算法。这在开发上哪点不好了?

李:
也许吧,这要等到哪天我投奔白老师做个语言学码农的时候,才能体会到,是不是在单层里面也有模块化开发的感觉了。

白:
调度算法只有一锅煮才是最合理的。

李:
一锅煮合理的argument本来是立足于自然语言现象的相互纠缠,interdependency。

白:
不是的

李:
既然你一锅煮了 还是要补以休眠唤醒等机制,那么这个根基就动摇了。

Guo:
计算上不等价。算符优先,如算术表达式,计算复杂性与算符数无关。规则优先,如Brill Tagger,计算量随规则数目增加。

李:
一锅还是分层,最终都有个唤醒的问题。

白:
一锅煮是提炼了语言学无关的过程性控制策略的共性,语言学相关的,都封装在模块里了。唤醒也是语言学无关的。@Guo 我规则数为0。

李: 唤醒与语言学远距离句法有关。
可以反过来问:有什么一锅煮能解决的,分层解决不了或解决不好?

以前的例子是有的,譬如 hidden ambiguity, 尤其是汉语切词,在一锅烩中,理论上在理想状态下,这个问题是可以自然解决的。但是切词模块被分开后,这个问题就不能。解决只有靠休眠唤醒。

白:
不加反悔,都解决不好。

李:
不加反悔,理论上一锅烩的 parsing 是可以解决的。当然理论与实践有距离。所以白老师即便一锅烩,也不解决它。

白:
加了反悔,给分层带来多大架构上的冲击我不知道,但是给一锅煮+算符优先带来的架构上的冲击几乎为零。

李:
反悔与分层是天然亲密的。chemistry 很好。反悔不过看成是分层的延伸而已。不过是最后多加几层罢了。

白:
那大家殊途同归好了

李:
而且因为反悔都是在后期,条件成熟了,efficiency上极为合理优化。我现在做反悔,都是在结构上做,不在线性序列上做,那叫一个痛快,一打一个准。反悔从机制上几乎等价于抽取了。

白:
kick off也是在结构上做:一个萝卜出,一个萝卜进。坑还是原来的坑。

Guo:
分层并不天然地等价于模块化。Brill Tagger,改中间任何一条规则,后面全部规则都要重写。这是“负负得正”的负面。

李:
如果是 adaptive 目标驱动,就没有了这个负面。为什么我们多层开发的每一个模块的变动,都必须要通过目标驱动的 regression 测试呢。这些都是软件开发的老生常谈了。

白:
词典化的词负载结构框架下,没有改规则的问题,只有写词条的问题。

李:
模块化的好处是解析性好,可以理喻。一个bug来了,很容易找到出问题的模块,不会是隔靴搔痒。

白:
模块化所有人都没有意见,可以忽略。

李:
到了真地进入这个模块去debug的时候,情况就不再是局部模块了,而是全视野 目标驱动的。这样既保证了一打一个准,有保证了没有副作用。既埋头拉车,也抬头看路。所以Guo的那个顾虑不是问题。

白:
但,模块化并不必然推出分层,分层并不必然推出单向无反悔,模块化也并不必然推出算符优先哪里不work。算符优先相当于桶排序,而桶排序是线性的。

李:
撤了。今天有个 Tech Day。白老师也夜深了,good night

白:
至于目标驱动,这是软件工程的老生常谈。软件工程还说要做边界测试、压力测试、极限测试。

李:
的确是老生常谈。
“白老师也夜深了”

白:
好句

李:
这句里面,主语“白老师”,“也X了”是典型的谓语。句法主语与谓语是什么逻辑语义呢?

白:
顺杆爬,主语所在地。

李:
哈:白老师(那地儿)也夜深了。

白:
这是隔着时区说话才有的语义。

李:
这是同一个战壕战友的关切黑话

 

【相关】

【李白之37:分层与一锅煮的parsing机制探讨】

[转载]【白硕 – 穿越乔家大院寻找“毛毛虫”】

【立委科普:结构歧义的休眠唤醒演义】

【李白董铿锵行:说不完的subcat和逻辑语义】

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白董之51:说不完的subcat和逻辑语义】

【立委按:30年前,董老师就是我学逻辑语义的启蒙老师。30年后还可以拜技术所赐,与老师坐而论道,由衷感激。逻辑语义这个术语的命名和流行 源自董老师的论文。类似的术语有 Deep case (菲尔墨),Theta role(乔姆斯基), Semantic role , 但我还是最喜欢用董老师的逻辑语义。】

白:
【今天冲击30度,明天骤降6度伴随雷阵雨】
为啥30度是目标值,6度是差值?

李:
逻辑语义 与 句法角色 的主要差别就是,前者依存的老子是细颗粒的概念或语义,后者依存的老子是粗颗粒的子范畴(subcat)。“冲击” 与 “降” 的概念差别,决定了所带的逻辑语义角色的分别。从subcat看 这两个动词属于一类,因此句法儿子相同 都叫宾语,但是从语义角度 这两个动作概念有距离,查一下 hownet 就知道了。细颗粒到什么程度呢 要看系统的设计了。譬如 hownet 有将近 100 个逻辑语义角色,相对应的语义颗粒度或分辨度就显得相当细。【升降变化】 这类肯定要单列出来,也可以想象 逻辑语义压缩到 20 到 30 的样子 合并一些接近的角色,那么统领逻辑语义的谓词的概念颗粒度就可以粗一些。

总之逻辑语义不象句法角色那样抽象 独立和粗线条,逻辑语义是比较紧密地配合谓词语义概念去 make sense 的。【心理】谓词的主语 在逻辑语义叫 experiencer(体验者),但【行为动作】谓词的主语 则逻辑语义叫 agent(施事)。这种呼应除了有本体知识(ontology)体系内在的设计需要外,还有让人看着舒服、容易理解的考量,也就是我以前说的,语义表达带有某种人类自己与自己玩的色彩。

在董老师面前说这些 难免显得浅薄。我等董老师打板子 批评纠正。

董:
按知网的规定:冲击30度,30度的逻辑语义是“StateFin-终状态”;降6度,6度的逻辑语义是“QCompare-比较量”。但是知网的分析系统我预计它做不对。因为这样的区别要有更加专门化的知识,气象的常识来解决。知网没有如此细的常识表达。单靠两个动词的语义差别,我想不出来如何解决。

李维说的没错。是会有自己玩的色彩。每个人有自己对客观世界的自己的认识,研究有自己的风格,有自己的要求,或遇到的不同的需求。总觉得自己那个好,不要紧,是正常的,但不要总觉得别人的一定不好,那也许就不太好了。

李:
也有的语义表达体系走极端,觉得哪怕细颗粒度也不够好,100个逻辑语义根本不足以表达语义关系的细微差别。譬如 hpsg,它在语义表达上不喜欢任何抽象,agent呀,patient 呀,experiencer 呀,都太过抽象,就更甭提逻辑主语、逻辑宾语了。一不做二不休,他们的语义关系的命名变成了一个开放集。本体有多少谓词语义终结节点(石实践中常常就用那个谓词的词),就有多少个对应的语义关系。逻辑主语加后缀 -er,逻辑宾语加 -ee,这样来命名逻辑语义。因此,like 的 主语叫 liker,宾语 叫 likee;hit 的主语 叫 hitter,宾语叫 hittee。完全没有概括性了,我把这种设计叫做词汇主义极端派,有点走火入魔了。但有一个优点,人一看就明白是什么角色。

我觉得其所以语义表达有自己跟自己玩的色彩和空间,是因为一个知识体系是某种连续的存在。语义学家在模型这个体系的时候,必须抽象到离散的点去。这就需要切刀。切几刀 怎样切 比较合理 比较适应人的理解和应用,不同的设计家会有不同的考量。

董:
再者,上例中30度是个”点“;6度是个”量“,没有气象知识怕不容易分别了。

李:
“降6度” 感觉没有歧义。难的是 “冲击30度”。后者可能需要专业知识才能消歧。一个通用性常识本体的知识库,不足以做出这种区分。如果是 “降到 6度”,也没有歧义。

讲个故事:
“我们实验室是做低温实验的。我们设计了一个装置可以不断降低实验空间的温度。第一天我们成功降低了10度 只用了三秒钟。第二天我们降了20度。我们改进了设计以后 正全力冲击30度。”

这个故事说明歧义在特定场景是可以翻盘的。在气象领域 他的标配歧义消解了,根据的是气象里面的领域常识。但场景可能打败这个标配语义。

白:
都不需要术语来指定角色。完全可以说,1号角色,2号角色。这是本源。施事受事的,都是次生的。

李:
有不少文法就是这么叫的:arg1、arg2,然后可以提供一个词典查询来求解:like 的 arg1 就是逻辑主语体验者,相当于 liker。这样看语义表达,就更凸显了人类在逻辑和语义上有相当浓厚的自己玩的色彩。

董:
说实在的,就是主谓宾定状补都不能弄对呢?少了,多了,又能怎样?

白:
信息抽取的角度看,弄不对,就可能提取不出来想要的情报,或者提取出错误的情报。从群体舆情分析的角度看,错一个漏一个都无妨。从个体观点分析角度看,错了,可能认友为敌或者认敌为友。

李:
信息抽取的模板定义本身,也有不少自己玩的色彩,当然是要玩得让客户高兴。譬如【公司购并】事件,谓词是 acquire 或 buy,句法的主语,逻辑语义的施事,与信息抽取模板中的角色【购并公司】的对应,就是在玩命名的游戏。句法的宾语,逻辑语义的受事,模板里面叫【被购并公司】。

白:
当然,只要语义对,句法错甚至没句法,又如何?

李:
没有楼梯爬上三楼的绝技人也是有的。事实是,尽管有这样的绝技存在,生产楼梯的厂家却不会倒闭。

董:
按李维说的,其实是不用再搞一套施事、受事等。

李:
我觉得100个这个量级是太细了一点儿。另外,逻辑主语、逻辑宾语的概念感觉很好使。这样 experiencer 和 agent 的区别就不重要了。因为这种区别,如果某个应用需要的话,总是可以通过查询谓词是什么得出来。

董:
你是能少则少,能省一个是一个。

李:
可能我来了美国19年,一头扎进了信息抽取。从抽取好用这个角度,我不需要那么细的逻辑语义。换其他应用,我不敢说。

董:
嫌多,少用就是了;如果嫌少了可就不那么好办了。关键是要能自圆其说。多有多的道理,少有少的道理。再一个,就是多了,能否乱。计算机不是不怕多吗?

白:
编号不怕多。

李:
这是一方面,多了总可以合:或者用逻辑或,或者用taxonomy定义一个上位关系。问题不在这里。问题在多了以后,deep parsing那边就不得不费工。费了力气做了区分,发现用到的场合不多,就觉得不值了。关键还是,对于概念之间的依存关系,谁与谁发生关系是第一位的,老子儿子必须区分清楚。关系的种类粗一点无关大局。

白:
deep parsing的首要目标仍然是确定谁跟谁有关系,而不是确定是什么关系。所以角色再多,不应该影响deep parsing. 即便影响,也只是影响搂草打兔子的部分, 那本来就是天上掉馅饼, 可遇不可求的。

李:
因为语义是在句法图中决定的。有了依存关系图,有了节点的本体知识,粗线条关系随时可以细化, as needed,不必把这种细化搅合到parsing里面。

白老师讲的与我说的,是一样的呀。

白:
我是说,语义角色多了就导致deep parsing不得不费工,这样的设计是有问题的。

李:
多了一个 role labeling的细活。而这个细线条 roles 在落地时候大多不需要。认真说,也没那么多活,也不是不可以做,就是觉得没必要做。因为信息抽取的根本原理是词驱动。在词驱动的语义落地场景,语义关系的细化没有多少助益。

白:
语义角色第一不要设限,第二不要用跨词汇的概念绑死,第三不要跟句法绑死。需要的时候接的上就行,和句法松耦合。想多就多,不要影响句法。直接拿次范畴去玩。

李:
IE根本连次范畴都不要,就是词驱动。多用几个逻辑或就齐了。范畴集合如此之小,爱怎么枚举怎么枚举,管它的谓词本体概念属于哪个集合呢。

白:
IE和实体知识库的差别,实体知识库是照单全收,IE是只取自己那一瓢。只取自己那一瓢,当然不需要subcat;照单全收是不行的,必须有subcat。

董:
我看你们常说次范畴或subcat,谁是与之相对的主范畴呢?

李:
董老师,文法里面所谓subcat,其对应是cat或叫POS,尤其是POS里面的谓词:VB或JJ等,这些cat会进一步细分为subcats。

董:
那么subcat是诸如什么?

白:
cat那东西,各家也有不同

李:
当然白老师泛化了subcat,一切的词汇子集给个词典标签都叫subcat了。但是在HPSG这类文法里面,subcat是一个谓词句型规则的浓缩。里面是一个丰富的 feature structure,句型方面的某个子集。文法里面的 subcat典型代表是vt、vi这类。

董:
你给个具体例子吧?我都快被绕糊涂了?名词是cat,那么sub名词是什么?

李:
名词是cat,那么subcat可以有带宾语和宾语补足语的名词,譬如 translation:其subcat就是:"translate" of NP【受事】 from NP1【来源】 into NP2【目标】。对于这个subcat的句型潜力,给它取个标签,这个标签就是 subcat 的 atomic feature,譬如 vt、vi。

董:
懂了,谢谢。

李:
但是在复杂特征集的文法里面,subcat不取一个简单的标签,而是展开来写到数据结构里面去,这样一来这个数据结构几乎就是一个产生式规则,虽然理论上这个数据结构不是过程性的。所以所谓的HPSG没有规则,其实就是玩的这么个游戏。

发现,思想活跃的知识分子永远不显老,而蓝领老人就特别容易衰老。董老师冯老师都有这个特点,我老爸也是。可见信息也是一种养分,比营养更重要。

董:
不看或极少看“养生堂”之类的胡说八道的,多半可以长寿。

冯:
多动脑子有益健康。

董振东:
有道理。
昨晚的有关arg、subcat、等的讨论,我明白了。其实我们是不同路上的车,可能都是被英文parsing误导的,至少我是被误导了。大家的目标、方法、资源等都不一样。但不论如何环视对我们的研发很有帮助的。关于诸如逻辑语义等问题,等你们真的要关心时,你们可以看我们的专著《HowNet and the Computation of the Meaning》。

李:30年前,董老师就是我学逻辑语义的启蒙老师。30年后还可以拜技术所赐,与老师坐而论道,由衷感激。

 

【相关】

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白之38:叫NLP太沉重】

没有规则的文法是怎么回事儿?

白:
“这件事非他莫属”,这种情况下“他”填谁的坑?

李:
填坑,从句法角度没有疑问,“这件事”是句法主语,“非他莫属”是谓语。如果主语是行为,采纳董老师的处理,把句法主语转为逻辑谓语,把句法谓语中的“他”提出来作为其逻辑语义的施事。如果主语不是行为,那么可以相应做一些逻辑语义表达(semantic representation)的调整,其中之一是,把该名词的“标配”动词作为省略成分提出来,“事儿”的标配就是“处理”或“做”(DO)。然后逻辑施事照旧。

“这件事非他莫属”
==(只有)他(能)DO(这件事儿)

这些个鸡零狗碎的处置,说到底都是自己跟自己玩儿。这里的所谓语义表达和语义落地,在pattern确定之后,我们其实心里都明白其涵义了,只不过需要用一种容易记忆容易处理的方式把“语义”表达出来,让人类看着舒服。其实这都是小事儿,属于 parsing 的 side effects,怎么方便怎么来,无一定之规,系统内部自足即可。关键不在作为 side effects 的 output,而在于什么样的 pattern 、什么样的条件与 input 匹配合适,匹配完了既然并无歧义,总能找到一个语义表达的出路。后面的考量也就是为了“好看”而已(就好比软件工程中很多内部数据结构表达出来要pretty print一样)。

白:
“拉小提琴他最拿手了”“去北京他最合适了”“喝白酒他二两就醉了”
这是一种很常见的格式,不是因熟语而发明的,熟语只不过往这上面靠而已。

李:
看电影他爱打瞌睡
做报告他出口成章
举样例他偷梁换柱。

白:
在我的体系里,这是一种已经在局部填了坑的萝卜,在满足一定条件的更大范围内又被再利用而已。

冯:
这是紧缩复句。

白:
在我这里是merge的一种。两个互不隶属的谓词的坑共享萝卜,都是merge。

冯:
merge也就是紧缩了。

白:
如果前面只是NP,就降格为状语:“这件事他最拿手了”当中“这件事“为状语。N降格为S+

李:
白老师的句法里面,“填坑”对应的是文法的arg,“修饰”对应的是mod,“合并”貌似对应的是conj或者comp,其余两个针对token自己的操作,不对应dependency的结构关系。这与词驱动HPSG有相当的吻合之处。

白:
可以认为有一个隐性的token

李:
HPSG 也声称只有词的结构表达,没有一条条文法规则,只有几个 schemata 或叫 Principles,其中一个是针对 arg 的 连接原则。另一个针对的是 mod。

白:
他还是用PSG作拐棍儿。我连小词都是负载结构的。

李:
如果仔细看那个根据原则而来的schemata,基本没啥内容,就是一点最抽象的关系限制。说的是,如果一个 token 要填另一个 token 在词典的 subcat pattern 里面规定的坑,除了所有规定的 features 必须能 unify 外(这个可以比喻为情投意合的自由恋爱),另外还有一点原则性限制(这个可以比喻为婚姻原则:譬如传统的婚姻原则必须是异性之间的结合,否则不发证书,也就是原则层面不允许结合,即便双方情投意合),加上一些子结构数据的 sharing 的规定。这个跟白老师声称没有规则,只有子范畴,以及根据子范畴的 parsing-runner 的抽象算法是同样的精神。当然,HPSG叠床架屋的数据结构以及PSG与生俱来的组合爆炸低效率以及伪歧义困扰,也许已经被白老师解决了。

白:
我没有组合爆炸。复杂特征集不是好东西,扔。

李:
我同意。可是一开始用会入迷。逻辑上很清晰、细致和美丽。可以把语言的任何单位模型成一个非常飘逸的玉人一般。

白:
严格限定只解决谁跟谁有关系,若非搂草打兔子顺手,绝不碰是什么关系。逻辑主宾语分不出来是本分,分出来是情分。

李:
这个分不分就是一个阶段的问题。本质上是所有的 args 都是 arg,这个上位概念是一致的,arg1 还是 arg2,还是 arg3,subcat 可以进一步去规约。

白:
隐性介词不知道什么格是本分,顺手安一个非他莫属的格标记是情分。

李:
到了语义层面,必须去进一步去区分。

白:
在检查相谐性的时候,有些角色已经跑不了了。这就叫搂草打兔子但是还有漏网之鱼,句法层面不 应该care。

比如“这场火多亏了消防队来得及时”里面,“这场火”前面有个隐性介词,知道这一点就够了。是啥介词管他呢。

李:
有人问,没有规则怎么能叫文法呢?这里面的trick就在,并不是没有规则,而是规则隐藏在词典里面了。本质上是词驱动的规则集,构成了词典主义的文法。如果这种规则的隐藏,不以大家通常习惯的显性的产生式(productions)的形式表现,而是以一套 lexical features 来表达,无论是 HPSG 那种非常精细繁复的 typed feature structure(表达形式是所谓 AVM, Attribute Value Matrix),还是白老师那种简省的原子化(atomic)的 cat 或 subcat的标注,那么就给人一个本文法无规则的“假象”。

没研究过这类parsing的人可能还是疑惑:无论如何,没有规则,只有features,那怎么做parsing呢?这事儿说玄也玄,说白了就是一层窗户纸。任何一个 parser 都是要对input文句做操作的,这是无论声称有规则还是无规则的系统,都必须要有的一个部分,我们通常称之为runner,可以形象地比喻成一个scanner。诀窍就在这个runner是怎样在run(parse)文句呢?在产生式的显性符号规则体系里,靠的就是对这些规则的解释(interpretation)或编译(compilation)。这个过程比较直观、可解析。在隐藏了过程性产生式规则的体系里面,runner怎么工作呢?回答是靠文法或模型自然不错,但太笼统。说就是靠词典里那些features的标注,先判你一个不及格,因为你没说明标注怎么转化为解析器(或自动机)的,里面还缺了啥。

歇口气儿,群里面的后学(NLP的fresh博士啊博士后啊啥的)不妨当成一个家庭作业,试着回答一下这个问题。不要以为NLP就是神经,或深度神经。除了神经,就没有NLP了。Parsing 是 NLP 的皇冠,如果只懂神经,不懂 parsing的基本原理和理论,你可能在工作市场上大卖,你也可能确实用神经做过parsing的工作,但AI这股热浪过后,你会发现叫自己是NLPer太沉重。

当然,我们这些还没神经的人,其实也是叫NLP太沉重,不过是倚老卖老罢了,反正我们终归是要退场的人。现如今不神经的话,都不好意思说自己是AI圈的人。认真说,隔行如隔山,行内也隔山,这是AI里面的真实写照。不隔山的全能的人有没有?肯定有,群主白老师就是。但90+%的大牛都不是,这也是事实。

Nick:
伟哥这是被人欺负了吗?

李:
哈,欺负个球啊。信笔写 想到哪里写到哪里,神经=NLP的感慨而已。炼到我这功夫早已百毒不侵了,谁欺负谁呀。把一个算法上升到一个领域,这是概念混乱。这种怪相你学AI历史的应该给个说法。

邓:
我觉得咱们开放心态看待会比较好,一个算法如果让一个行业上了一个大台阶,是会在一个历史时期称为这个行业的代名词的。听其言察其行。

阮:
要么理论上碾压,要么实验或系统验证。要么更有权有势。。三点都不占,就只能忍了。

马:
不为了深度而深度,也不不为了深度而不深度。我们组基本没有神经。

李:
我脑袋是parse不过来了,这口令绕的。

当然可以为神经欢呼 鼓吹 毕竟人家有实绩在那儿(图像、语音、机器神译)。问题不在其崇高的行业地位,而在于这种地位所带来的一种默认意识:(1) 只要是AI和NLP的任务,神经不仅仅是首选,而是是必需;(2) 甚至是,如果你不神经,就会异样地看着你:怎么可以不神经呢?(3) 还有很多问题,根本没有任何证明,神经可以work,但是行内和行外的压倒意识是:(i) 神经一定work,(ii) 而且非神经一定不work,或不值一提。

陈:
讨论的人也很神经

李:
这种观念是如此之深厚顽固,以至于你即便可以证明非神经也一样工作,或者工作得更好,也基本没有人听。这时候你才知道所谓科学家,其实一大半不如没文化的暴发户,因为暴发户至少有常识,懂得白猫黑猫,暴发户没有被洗脑。这个观察不是从神经流行才有的,至少20多年的体会了。

阮:
科学,越年轻越好,大家喜欢看到新方法而已,目前确实没看到其他新方法。

李:
一个人不可能抗拒一个世界。所以生存之道不是试图说服、试图证明,这些基本都没用。生存之道就是:(1)与暴发户为伍,不问姓社还是姓资。挖煤给钱就行。(2)另一个生存之道就是:挂羊头卖狗肉,努力靠拢,不管真心还是假意。无论是否真能融合,永远把羊头当成菩萨

 

【相关】

《朝华午拾:在美国写基金申请的酸甜苦辣》 

围脖:一个人对抗一个世界,理性主义大师Lenat 教授 ..

【语义计算:李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

 

【立委科普:管式系统是错误放大还是负负得正?】

傻蛋架构师才会导致错误放大的恶果。Pipeline 系统理应负负得正。

今天早上在想一个老话题,管式(pipieline)系统是错误放大(error propagation)还是负负得正?这个问题是模块化串行大系统的根本问题。如果是前者,pipeline就死定了。对于模块之间有依赖关系的管式系统,很多人第一个反应和批评就是错误放大,说后续模块依赖前面模块的话,乘法效应决定了错误不断放大,哪怕是一个底子不错的系统,随着串行模块的增加,到头来会错得一塌糊涂,不可收拾。

这是不了解目标导向的开发模式的缘故。目标导向的开发不再把每一层模块的开发看成是一个独立的过程,而是一个动态协调的 adaptive dev 开发过程。在这个模式下,系统的主流是负负得正,而不是错误放大,至少是前者的正效应远远压倒后者的负效应。错误放大不可收拾的担忧是杞人忧天。实际研发过程中不应该发生。

在这样的模式下,一个模块的绝对精度的意义远远没有这个模块的调适性、可维护性(包括可读性,维护门槛降低、维护过程容错性强、维护线索清晰等)重要。举个例子吧,如果决定中文切词作为中文分析 pipeline 的一个基础模块,那么这个切词的模块并不是如许多人想象的可以随时地 plug-in, 看见哪家开源了一个更高水平的 segmenter,于是拿来就用,期望它能加强中文分析的能力。

不是这样的。

以前说过,谁都不愿意 reinvent wheels,但是对于 NLP,模块(component technoogy)拿来就用不断翻新绝不是正道。最多是为了 feasibility study或做个 prototype 可以偷这个懒。正经做系统的人,必须一切自己来(home-made or built-in-house)。

可以利用开源的 code base 和其他资源,但前提是消化改造成自己系统的“有机”模块(integrated module)。至于 license 一个 component technology,不到万不得已,不要做。因为商业性 licensed 过来的东西,与开源社区的资源不同,他们为了自身的利益,往往把模块黑箱化,使得消化集成和扩展这个模块的能力受到极大限制,长久下来,不是好事儿。

所以 这就造成了一个 catch-22.

自然语言这个 monster,要做深度分析(deep parsing)和理解,牵涉的层面不少,每一样都自己做,门槛蛮高,研发时间长。如果想偷懒,利用一些现成的模块,又会消化不良。从词典到文法,从词法到句法,从句法到语义,从本体到逻辑,从实体到关系,从浅层到深层,等等等等,真地有点烦,有点难。如果再加上领域和语种这两条延长线,以及业务场景语义落地的对接,简直就是做不完的活儿,难免产生吾生也有涯对无涯的无奈。

最后,再回到一开始的话题:pipeline 负负得正而不是错误放大的诀窍在哪里?简单总结来说就是 task-driven integrated adaptive modular development。

可以举一个NLP历史的经典例子来形象地说明这一点。稍微做过几年 NLP 的,没有人不知道 Brill's POS Tagger 的吧。Brill 发明了一个极其简单透明的,他命名为 transformation-based 符号规则的学习算法。(这个NLP大牛一看就是语言学外行,居然敢在计算语言学领域用 transformation 这个词,与乔老爷的语言学革命的经典术语撞车。简直是冒犯。)Anyway,这个所谓的 transformation 的学习机制,就是一个典型的 pipieline 负负得正的例证。整个学习过程都是最终目标驱动的,譬如 Penn Tree 里面的 POS 标准训练集。每一条规则可以看成是一个 pipeline 系统的一个模块的缩影。这个学习也叫 error-driven,意思是说,在每一层规则的学习过程中,当时现场的产生错误最小的规则胜出。因此第一条规则注定是全局最优的规则,但同时也是错漏百出的规则,跟筛子一样,大路货娄住了,后面需要大量的规则去擦屁股。每一个后续的规则都是替前面擦屁股,纠正其错误,也创造新错误,就是这么一个不断的负负得正的过程,使得规则越来越精细,概括性越来越低,错误面越来越小。初始错误不是放大,而是在不断缩小中。这一切的黄金指南就是最终的 task 的定义。这样的 Pipeline 哪里会有什么错误放大。恰恰相反呢。结果呢,对于 POS,大约是学出来 200 多条规则,就好比 200 多个模块,被一个 pipeline串起来。一个 200 多层的系统,按照错误放大理论,哪怕每个模块达到 90+% 精准(接近人的精度),放大 200 层,也是一塌糊涂。好在,这里不是错误放大,而是负负得正。一切拜 task-driven 和 integrated adaptive learning (or dev) 所赐。

好了,我想广为流传的错误放大的顾虑可以放下了。错误放大会出现,那是设计者的问题。是傻蛋架构师才会导致的恶果,不是 pipeline 系统本身的问题。

【语义计算群补记】
白:
这和公司有什么样的人有关。如果公司没有有悟性的语言学家,改造的事儿还是免了的好。

李:
不改造就很难负负得正。不改造又要降低模块的副作用,只好外包。简单说就是前堵后补。开发维护就不是一个一体化的过程。初期的甜头会被后期没完没了的异物感消弭,用的时间越长越觉得不合算:还不如当初自己咬咬牙从头做起呢。

白:
我觉得关键不在于你能改他的代码,而在于他能送给你多于一个候选结果。应该促成这种多选结果的标准化。

李:
还是不好,主要是数据结构的对接存在异物反应。它给你个XML的多结果表达,这边还要转来转去。表达能力也受限制:这种限制包括,它内部使用的可能有用的信息被隐藏了,不作为标准输出;也包括它输出的XML表达性不够,不能表达一些扩展的需要。总之是水土不服。只有改造才能服了水土。

姜:
@wei “初期的甜头会被后期没完没了的异物感消弭,用的时间越长越觉得不合算:还不如当初自己咬咬牙从头做起呢。”。很能理解您的这种感悟!有时咬咬牙自己做了就做了。

李:
我一直懊悔我的英语系统用了Brill。自己写一个POS一定比Brill好用。当时偷了这么个懒,后面擦了十几年的屁股。它的输出输入也格格不入,所用词典的格式与我内部的也很难一体化。成了一个鸡肋。回想起来是免费惹的祸。当年觉得,免费的东西,不用是傻瓜。其实在国内做MT早就弄过POS,比起后面的工作,虽然琐碎,但门槛相对低。其所以不自己做,也不完全是时间压力,还有不占便宜是傻蛋的心理作祟。幸运的是中文还没有这么一个久负盛名的免费POS诱惑我,在中文开发的时候绕过了这个陷阱。

白:
一个从终端落地应用角度驱动的、不预设语言学立场的集成者,或许可以更好地处理异构资源的协同性。毕竟同行是冤家,非同行立场更客观。

Guo:
多候选(n-best)在夸领域场合是不够的。多候选永远是在某种“语言模型”下的结果。如果这个模型离目标太远,期望值就常常不在n-best里。这时候“负负得正”就变成了一个开放问题。

白:
将错就对,也是一个策略,当年用过。只要你这样错的,那么我就把对应的某个对的拉进来做候选。

Guo:
与识别相反,pos tagging在给定标记集合上是个封闭问题。负负得正就变得有意义了。关键区别是这个“错-对”对应是开放的还是封闭的。

白:
pos tagging和parse不是前后工序的关系,而是相互决定的关系。在parse未完成时,pos tagging只有概率,没有对错。如果不能唤醒低概率的候选,就形不成闭环。

李:
绕过了中文pos与segmenter双重陷阱 是大幸。特别是那些声称在这方面表现优异的机器学习模块。你再优异也没用,用户几乎无法重新训练,于是就是一个死系统。且不说还有其他水土不服的种种。

白:
市面上的Pos压根儿就不是为 deep parsing 后道工序而存在的。

冯:
BRILL的transformation与CHOMSKY的transformation是完全不同的概念,BRILL的transformation实际上就是改错。应当把二者分开。不要顾名思义。

白:
二者拧在一起是个怪物。

李:
我觉得他在命名的时候,还没意识到这个撞车,否则不会这样命名。改错可以用很多其他的命名办法,不该与语言学革命的术语撞车。记得第一次读Brill,被他这么用“革命口号”吓倒了。当代计算语言学学者不了解语言学的 太多了,这只是一个表现。

冯:
有兴趣的专家不妨读一读我的《现代语言学流派》增订本(商务印书馆),丰富您的语言学常识。

 

【相关】

坚持四项基本原则,开发鲁棒性NLP系统

应该立法禁止切词研究:=) 

关于NLP体系和设计哲学

关于NLP方法论以及两条路线之争

关于 parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白之37:分层与一锅煮的parsing机制探讨】

白:
话说,分层针对的是token间的二元关系,而token本身是不长眼睛的。所以一个token理论上可以喂给多层,此其一。随着各层的动态演化,可能会临时生出之前扫描不到的新的高优先级关系,甚至这种关系会把之前已经填好坑的萝卜再连根拔起。此其二。这样,虽然还可保持“线速”,但极端场景可能就是2N,而不是N。kick off的机制是一定要的。数理不一定等距,反而可以更细微地反映不等距。

李:
白老师今天的话起了个头,可以展开看看。其一其二说了分层面对的问题。但不足以否定分层。另外,2N有啥关系?可忽略不计吧。

分层多层是法宝。法宝到我其实不应该去宣扬,更不要去argue,自个儿得了好处一边偷着乐不好吗。粗话说,属于嘴欠。唯一的 catch 是,并不是承认或向往多层好处的人,都可以几刀就切干净。这时候语言学经验开始发力。

kick off机制点解?

白:
所谓kick off,可参见一排单摆,最后一个进来,第一个出去,其他纹丝不动。
“他死去多年的战友”“他死去多年的消息”前者启动kick off,后者不启动。“他不务正业、整天游手好闲的发小”;“他生前被人深深误解、死后被人广为称道的施政方针”。根本就不用勉强一定要看多远,远到不能错。先将错就错,占住坑再说,对的来了把我踢走就是了。可万一没错呢?再厉害的播音员也有buffer overflow的时候。“他不务正业、整天游手好闲的毛病”;“他生前被人深深误解、死后被人广为称道的传奇故事”。有kick off兜底,再长也不怕了。短的如“王冕死了父亲”也照用不误。当然,稍微加点条件就少一次折腾。lookahead什么的。

李:
嗯。
听上去就是休眠唤醒之一种。

白:
不是词法级,而是句法级。不预设无限大窗口,当前有限窗口里优先级最高的先处理掉。等到动态过程中优先级更高的来到,已处理的结果可以废掉。废掉是一对一的,不是全局性的redo。被set free的成分重新等待新的结合机会。具体到一个一个pair ,语言学知识的重要性毋庸置疑。但是local犯错误必须global来纠正的情况永远是存在的。这个时候,仍然寄希望于语言学知识来纠正,一定会按下葫芦起来瓢,而某种语言学无关的算法上的安排才是真正的出路。

李:
感觉主要还是语言学,不过是远距离的结构起作用罢了。句法级的休眠唤醒说到底就是修正local的关系(注意,local指的是短距离,不等于浅层关系,它可以在浅层,也可以在深层,可以是结构图的任意局部),对应的自然是局部修正 哪里化脓哪里上紫药水。所谓“推倒重来”就是除旧布新,最多是个 subtree,不会是全局革命。 全局推倒重来不 make sense,多层分层的路线决定了每一层绝大多数的关系是对的 要远距离唤醒和改正的必定是少数。如果不是大多数是对的 这只能说明层次的刀切错了 是语言学模块化的失败。模块化照顾的是步步为营多数受益的依存关系。在多层看来是一致的。

白:
语言学对与错都是数据的问题,不需要涉及算法。远距离唤醒需要的是算法而不是数据。算法不接受多数暴政。如果不想错得太难看,即使是小概率也要兜底。

李:
所谓远距离不过是顶层或接近顶层而已。到了接近顶层,再远距离 都变成 local tree.  天涯若比邻。

白:
分层和单向是两个概念,单向是不许后悔。分层不排斥后悔。

李:
对呀。
很多问题源自单层算法。多层以后 问题就没了。每一层的算法不必变,最多是增加一些 config而已 允许以可控的不同方式去处置。那是文法的running,不是文法的编译问题。

白:
如果在被语言学知识选中的pair之间加一些虚拟运算符,这个问题就像乘法比加法优先一样自然。

李:
哈。
怎么玩都可以。

白:
分层和算符优先是多么等价啊……

李:
分层更厉害。厉害就鲁莽。好在可以悔棋。因此多层与休眠唤醒是天然合作的。维持了线性,也维持了模块化和可维护。

白:
固定长度滑动窗口的算符优先,也需要悔棋配合。这是同样道理。而悔棋是一个算法问题,独立于具体的语言学知识。语言学知识都体现在算符里了。优先窗口计算算术表达式,也是会错的。窗口之外,是加号还是乘号,结果完全不同。有限窗口,加法乘法乘幂,这是领域知识。确定了谁比谁优先,这就是一个算法问题。限定了窗口有限,改错同样是一个算法问题。不是领域知识问题。不同点是,算术表达式中的算符是输入的一部分,而作为分析器输入的token序列中,没有算符。算符是local进行前后条件匹配后动态虚拟插入的。所以,对输入的扫描遍数不一样,极端情况下就是“两遍”。昨天说的2N就是这么来的。把语言学知识隐藏在算符后面,算法就可以一锅煮了。

李:
嘿嘿
算法机制化。不是要在算法上动手术 ,而是在算法的操作层面研究灵活性。

白:
所以,分层和算符优先真的是互通表里的。一锅煮不是错,一锅煮背后没有优先机制才是错。

李:
一锅煮要是等于单层 就难以恭维。

白:
优先机制中体现领域知识也是应有之义。有优先级的一锅煮等于变相分层。

李:
还是放不开,不够伸展。

白:
规则都没有了怎么会放不开

李:
而且优先级弄多了也麻烦,跟密电码似的,加强了规则之间的纠缠。

白:
跟层一样多就够了,又不是人去读

李:
规则与规则适度分开 是很讲分寸的

白:
不在一个优先级的pair不会纠缠。我们只看见pair,看不见规则。

李:
不是人去读?总得人调试呀。没有可读性 无法调试和维护。除非是神经。

白:
人调试,只需要调试一个优先级总表。语言学家完全看得懂,完全是数据。不是程序也不是算法,把算符搬来搬去而已。算符可以理解为特定类别的pair标签,比如<N+, N>这种pair,可能有几种,分别是什么标签,什么优先级,如此而已。单音节形容词修饰的定中结构、区别词修饰的定中结构、多音节形容词修饰的定中结构、的字结构修饰的定中结构、数量短语修饰的定中结构、核心角色介词(把、被、拿、将)构成的介词短语等等。它们的优先级不尽相同。有了这些做后盾,根本就不怕一锅煮。该先做的不会后做,因为窗口所限先做做错了的,随着窗口的滑动还会被踢掉,而且踢是点对点的,不会伤及无辜。语言学家完全不用关注kick off的实现,如果发生了kick off,语言学家是完全看得懂的。

总结一下观点:1、语言学知识用在局部;2、语言学知识转化为pair优先级、可作为虚拟算符纳入算符优先机制一锅煮;3、在窗口受限场景,可以引入kick off机制,支持句法级的休眠唤醒;4、因为输入token序列并不包含虚拟算符,虚拟算符的插入在极端情况下需要多浪费一遍扫描。

李:
虚拟算符是什么东东?

白:
可以理解为给一个二元关系在语言学上定性的标签。二元关系的两端token即使一样,语言学标签仍然可能不同,需要根据优先级区分和前后条件判据的需要加以细分。

李:
句法关系细类。

白:
我的大类只有填坑、合并、修饰、升格、降格,细分是必须的。但句法层面仅限于“控制优先顺序所必须”,绝不扩大化。五大类中,二元关系只有前三类,后两类只涉及自己,
一元。

所谓“绝不扩大化”,比如逻辑主谓,是不需要分的。但是萝卜来自坑的左方还是右方,这个区分可以有。因为,右方萝卜填谓词的坑,优先级高于左方。

白:
一个算术表达式,有加减,有乘除,有乘幂,还有括号。我们怎么确定对表达式的解析是一锅煮的还是分层的?在设定优先级的时候,事实上已经分层了,叫不叫分层纯属个人爱好。

李:
这个比喻贴切。

 

【相关】

【语义计算:李白对话录系列】

【立委科普:结构歧义的休眠唤醒演义】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【李白王56:与上帝同在和对话的学问】

【立委按】“真心说,语言学虽然不是显学,乍看颇落寞穷酸,但的确是最有趣的学问之一,是少有的能与上帝同在和对话的“科学”。要不世界几千年美国几百年不世出的千古学霸乔老爷能以此扬名立万呢。” 当然,乔老爷的天下无敌的引用数与崇高名声,只能说最多一半是语言学的功劳,另一半是他的左派社会主义的独立知识分子情怀及其犀利的现实批判精神。

王:
这本书把我看晕了。
这本书把我砸晕了。

N1 把 N2 V1 V2 了。

V2和哪个N发生语义关系、发生什么样的语义关系好像比较好确定;但是对V1来说,如果不看具体的句子,好像就不能确定,当N1 N2与V1结合后,各自的论元角色是什么。
李:
不确定这个句法树画得对不对……

白:
要用次范畴
但是,如果句法的目的仅仅是确定“谁跟谁有关系”而不在乎“是什么关系”,是主是宾,根本无须过问。“看”和“砸”都有两个坑,“我”填一个,剩下的N填另一个。句法的任务就完成了。所以这两句的分析在我的体系里长得没差别:

王:
谢谢白老师!下一步确定哪个萝卜进哪个坑,是不是就是知识本体的工作了。
就是您说的次范畴设计,是不是就是在词库里设定一些语义相谐的规则,萝卜只能进和它语义相谐的坑。

白老师,您的体系里只有两种pos tag?

白:
利用subcat可以确定“我看书”
但“书砸我”并不典型。
“我砸书”也不是不可以。
N、S、X 三种 X意思是“可N可S”。真正排除“我砸书”需要常识或者统计,subcat并不能做出这样的区分。通常是“硬砸软”而不会“软砸硬”,人体属于“标配软”,书则“标配硬”,也不排除硬的人体(冻僵了那种)和软的书(帛书)。

王:
谢谢白老师指点!

白:
语义相谐不一定要通过规则,也可以通过统计。
subcat只对词条标注,不对短语标注。
注意到我画的图里,“我”一个萝卜填了“看/砸”“晕”两个坑。这是因为补语动词并入谓语动词,相应的坑不占同一个萝卜的额度。

王:
对,李维老师上周推的文章里好像也说了,本体是人编的,知识图谱是统计出来的,都可以用来判断语义相谐。

李:
本体(ontology)也可以从大数据统计学出来 叫习得(acquisition),但跨领域的一般性本体不值得费劲儿去学。一来有现成的高质量的本体在 如董老师的 hownet,语义大师几十年打造的。跨领域跨语言的基本放之四海而皆准,仅次于上帝的工作。二来 学了半天 也难系统化 。但是 本体自动习得还是有一席之地,主要在,习得可以对领域 对数据有自动调适能力。更主要的是 习得可以包含本体常识的相谐的程度和或然性比较,这是人工标注 哪怕是大师的工作 所难以达到的。最终 常常是二者的结合。以专家本体框架为指导 以数据为对象 学出领域本体。

白:
相对标记,并不是每个本体都有的:“你打了他不该打的朋友。” 打,二价,但“朋友”自身仍有坑。

李:
当然 玩本体 这种 元层次语义 需要一些修为 非新手可玩 玩了也不会用 。但是 玩知识图谱这种 倒是相对人人可为 基本就是个力气活,砸的是人力和计算资源,不需要一定有语义全局的高度。

白:
标注种子词条,习得种子关联,推荐更多词条,推荐更多关联。所谓bootstrap。

李:
另外 所谓相谐(semantic coherence, or, attribute-value appropriateness) 是元知识 是本体的属性和功能 与一般的知识图谱无大干系。如果硬要 argue,在碎片化信息抽取整合成知识图谱的过程中,领域概念之间的相谐蕴含在图谱中,也不是没道理。但是关键在,相谐是作为一个软条件帮助语言分析理解,从而帮助抽取挖掘图谱的。图谱是结果,达到结果了 相谐已然过去式了。过河不必拆桥,但桥是为过河而设置,过了河就没桥什么事儿了。

另,“subcat只对词条标注,不对短语标注”,白老师这话不错。不过短语也可以继承词条的 subcat,继承的时候 已经填坑的要“折算”。换句话说 短语的 subcat 坑减少了。减少为0的时候 就功德圆满了 就没有了 subcat,譬如 s,那是最高的短语。

白:
坑的subcat没了,自身作为萝卜的还有

李:
当然 譬如右嵌套:s 可以作为子句 作宾语,是VP的右嵌套。这时候不圆满还不行 不圆满就做不了所要求的宾语子句。语言学理论里面 把这种条件叫做 configurational constraints, 也就是乔老爷的 x bar 的条件。如果这个条件要求的是尚未圆满(not fully saturated, or partially saturated) 的短语,就带着未填满的坑前行,各种好玩的语言逻辑的戏就开场了。

白:
如果词负载结构,这一切都在填坑中自然完成,无需另外的句法来“制导”。

李:
譬如 【书砸我】 还是 【我砸书】 这样的公案就出现了。到了 【书看我】 还是 【我看书】,本体常识或本体统计可以发力,当然 这种强搭配也可以不劳驾本体,而是当成词法或词典与句法的交互和接口,但是不强的搭配太柔软,句法就无计可施了,只能 identify 可能性 不能确认语义的唯一性。本体或反映本体的大数据 不得不上场。如果由于数据稀疏 上场了也不能解决 ,那只能保留歧义 有可能本来的语言表达就是双关。

真心说,语言学虽然不是显学,乍看颇落寞穷酸,但的确是最有趣的学问之一,是少有的能与上帝同在和对话的“科学”。要不世界几千年美国几百年不世出的千古学霸乔老爷能以此扬名立万呢。

 

【相关】

【语义网笔记:本体与知识图谱之辨】

语义三巨人

《泥沙龙笔记:知识习得对本体知识,信息抽取对知识图谱》

【泥沙龙笔记:再谈知识图谱和知识习得】

中文处理

Parsing

【立委科普:信息抽取】

【关于知识图谱】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

【立委科普:NLP 联络图 】

“NLP 不是魔术,但是,其结果有时几乎就是魔术一般神奇。”

引自:http://www.confidencenow.com/nlp-seduction.htm

【立委按】说明一点 写这篇nlp联络图科普的时候 深度学习还没火。 ai 还没有摇身一变 ,被 dl 所窃取。当时的机器学习界 还在鄙视 取笑 并与 ai 保持距离。没想到现如今 ai 居然被看成了 dl 的同义词 突然成了香饽饽。言必称神经,连 NLP也被窃取了,也与dl划了等号。符号逻辑派的AI与规则系统的NLP,做了一辈子,到头来连“家”都没了。一切皆是学习,一切都要神经。但我相信天变了,道却不变,因此下面的联络图或可超越神经一统天下的狭隘思维。拨乱反正,谈何容易。还是一家之言,愿者上钩吧。

 
 (NLP Word Cloud, courtesy of ourselves who built the NLP engine to parse social media to generate this graph )

【立委原按】样板戏《智取威虎山》里面,杨子荣怀揣一张秘密联络图而成为土匪头子座山雕的座上客,因为在山头林立的江湖,谁掌握了联络图,谁就可以一统天下。马克思好像说过人是社会关系的总和,专业领域又何尝不是如此。在关系中定义和把握 NLP,可以说是了解一门学问及其技术的钟南山捷径。老马识途,责无旁贷,遂精雕细刻,作联络图四幅与同仁及网友分享。此联络图系列可比林彪元帅手中的红宝书,急用先学,有立竿见影之奇效。重要的是,学问虽然日新月异,永无止境,然而天下大势,在冥冥中自有其不变之理。四图在手,了然于心,可以不变应万变,无论研究还是开发,必不致迷失革命大方向。

一个活跃的领域会不断产生新的概念,新的术语,没有一个合适的参照图,新人特别容易湮没其中。新术语起初常常不规范,同一个概念不同的人可能使用不同的术语,而同一个术语不同的人也可能有不同的解读。常常要经过一个混沌期,研究共同体才逐渐达成规范化的共识。无论是否已经达成共识,关键是要理解术语的背后含义 (包括广义、窄义、传统定义,以及可能的歧义)。加强对于术语的敏感性,不断探究以求准确定位新概念/新术语在现有体系的位置,是为专业人员的基本功。本文将

围绕这四幅自制联络图,

NLP 相关的术语做一次地毯式梳理和解说。本文提到的所有术语在第一次出现时,中文一律加下划线,英文斜体(Italics),大多有中英文对照,有的术语还给出超链,以便读者进一步阅读探索。
在我们进入NLP 系列联络图内部探究其奥秘之前,有必要澄清自然语言处理NLP)的一般概念及其上位概念,以及与 NLP 平起平坐或可以相互替换的一些术语。
NLP  这个术语是根据“自然语言”这个问题领域而命名的宽泛概念。顾名思义,自然语言处理就是以自然语言为对象的计算机处理。无论为了什么目标,无论分析深浅,只要涉及电脑处理自然语言,都在 NLP 之列。所谓自然语言Natural language)指的即是我们日常使用的语言,英语、俄语、日语、汉语等,它与人类语言Human language)是同义词,主要为区别形式语言Formal language),包括计算机语言Computer language)。自然语言是人类交流最自然最常见的形式,不仅仅是口语,书面语也在海量增长,尤其是移动互联网及其社交网络普及的今天。比较形式语言,自然语言复杂得多,常有省略和歧义,具有相当的处理难度(hence 成就了 NLP 这个专业及其我们的饭碗)。顺便一提,在自然语言灰色地带的还有那些人造语Artificial language)方案,特别是广为流传的世界语Esperanto),它们的形式与自然语言无异,也是为人类交流而设计,不过是起源上不太“自然”而已,其分析处理当然也属 NLP。(笔者N多年前的机器翻译专业的硕士课题就是一个把世界语全自动翻译成英语和汉语的系统,也算填补了一项空白。)
NLP  经常等价使用的术语是计算语言学Computational Linguistics, or, CL)。顾名思义,计算语言学 是 计算机科学Computer Science)与语言学Linguistics)之间的交叉学科。事实上,NLP  和 CL 是同一个行当的两面,NLP  注重的是实践,CL 则是一门学问(理论)。可以说,CLNLP 的科学基础,NLPCL 的应用过程。由于 CL 与数理等基础学科不同,属于面相应用的学问,所以 CL NLP 二者差不多是同一回事儿。其从业人员也可以从这两个侧面描述自己,譬如,笔者在业界可称为NLP工程师(NLP engineer),在学界则是计算语言学家Computational linguist)。当然,在大学和研究所的计算语言学家,虽然也要做 NLP 系统和实验,但学问重点是以实验来支持理论和算法的研究。在工业界的 NLP 工程师们,则注重 real life 系统的实现和相关产品的开发,奉行的多是白猫黑猫论,较少理论的束缚。
另外一个经常与 NLP 平行使用的术语是 机器学习Machine Learning, or, ML)。严格说起来,机器学习与 NLP 是完全不同层次的概念,前者是方法,后者是问题领域。然而,由于机器学习的万金油性质(谁说机器学习不万能,统计学家跟你急),加之 ML 已经成为 NLP 领域(尤其在学界)的主流方法,很多人除了机器学习(如今时兴的是深度学习,或曰深度神经网络),忘记或者忽视了 NLP 还有语言规则的方法,因此在他们眼中,NLP  就是机器学习。其实,机器学习并不局限于 NLP 领域,那些用于语言处理的机器学习算法也大多可以用来做很多其他人工智能Artificial Intelligence, or AI)的事儿,如股市预测Stock market analysis)、信用卡欺诈监测Detecting credit card fraud)、机器视觉Computer vision)、DNA测序分类Classifying DNA sequences),甚至医疗诊断Medical diagnosis)。
NLP 领域,与机器学习平行的传统方法还有语言学家(linguist)或知识工程师(knowledge engineer)手工编制的语言规则Linguistic rules, or hand-crafted rules),这些规则的集合称计算文法Computational grammar),由计算文法支持(or 编译)的系统叫做规则系统Rule system)。
机器学习和规则系统这两种方法各有利弊,可以取长补短。统而言之,机器学习擅长文档分类Document classification),从宏观上粗线条(course-grained)把握语言现象,计算文法则擅长细致深入的语言学分析,从细节上捕捉语言现象。如果把语言看成森林,语句看成林中形态各异的树木,总体而言,机器学习是见林不见木,计算文法则见木不见林(本来这是很自然的互补关系,但双方都有不为少数的“原教旨主义极端派”不愿承认对方的长处,呵呵)。从效果上看,机器学习常常以覆盖面胜出,业内的术语叫高查全率High recall),而计算文法则长于分析的精度,即高查准率High precision)。由于自然语言任务比较 复杂,一个实用系统(Real-life system)常常需要在在粗线条和细线条(fine-grained)以及查全与查准之间取得某种平衡,因此结合两种方法的 NLP 混合式系统Hybrid system)往往更加实惠好用。一个简单有效的结合方式是把系统建立成一个后备式模型back-off model),对每个主要任务,先让计算文法做高精度低覆盖面的处理,再行机器学习出来的统计模型Statistical model),以便粗线条覆盖遗留问题。
值得一提的是,传统 AI 也倚重手工编制的规则系统,称作符号逻辑派,但是它与语言学家的计算文法有一个根本的区别:AI 规则系统远远不如计算文法现实可行。AI 的规则系统不仅包括比较容易把握(tractable)和形式化(formalized)的语言(学)规则,它们还试图涵盖包罗万象的常识(至少是其中的核心部分)以及其他知识,并通过精巧设计的逻辑推理系统把这些知识整合起来。可以说,AI 旨在从本质上模拟人的智能过程,因雄心太大而受挫,以致多年来进展甚微。过去的辉煌也只表现在极端狭窄的领域的玩具系统(后来也发展了一支比较实用的专家系统),当时统计模型还是没有睡醒的雄狮。以 ML 为核心以大数据(Big data)为支撑的统计方法的兴起,让这种 AI 相形见绌。有意思的是,虽然人工智能(台湾同胞称人工智慧)听上去很响亮,可以唤起普罗大众心中的某种科学幻想奇迹(因此常常为电子产品的包装推销商所青睐),在科学共同体中却相当落寞:有不少统计学家甚至把 AI 看成一个过气的笑话。虽然这里难免有王婆卖瓜的偏见,但 传统 AI 的方法论及其好高骛远不现实也是一个因素。也许在未来会有符号逻辑派 AI 的复兴,但是在可预见的将来,把人类智能当作联接输入输出的黑匣子的机器学习方法,显然已经占了上风。
 
由此看来,ML AI 的关系,颇似 NLP CL 的关系,外延几乎重合,ML 重在 AI 的应用(包括 NLP),而传统 AI 理应为 ML 的理论指导。可是,由于方法学上的南辕北辙,以知识表达Knowledge representation)和逻辑推理Logical reasoning)为基础的传统 AI 越来越难担当实用智能系统Intelligent systems)的理论指导,智能系统的地盘逐渐为以统计学和信息论为基础的机器学习所占领。国宝熊猫般珍稀的坚持传统AI的逻辑学家(如 cyc 发明人 Douglas Lenat 老先生)与擅长 ML 的统计学家(多如恐龙)虽然问题领域几乎完全重合,解决方案却形如陌路,渐行渐远。
还有一个几乎与自然语言处理等价的术语,叫自然语言理解Natural Language Understanding, or NLU)。从字面上,这个义为“机器理解语言”的术语 NLU 带有浓厚的人工智能的烂漫主义意味,不象“机器处理语言”那样直白而现实主义,但实际上,使用 NLP 还是 NLU, 正如使用 NLP 还是 CL 一样, 往往是不同圈子人的不同习惯,所指基本相同。说基本相同,是因为 NLP 也可以专指浅层的语言处理(譬如后文会提到的浅层分析 Shallow parsing),而深度分析(Deep parsing)却是 NLU 的题中应有之义,浅尝辄止的不能登 NLU/AI 的大雅之堂。不妨这样看,带上AI的眼镜看,此物为NLU;而以 ML 而观之,则此物只能是 NLP
此外,自然语言技术或语言技术(Natural language technology)也是 NLP 的通俗化表达。
既然 NLP 的等价物 CL 有两个parents,计算机科学语言学NLP 的上位概念也自然可以有两位:NLP 既可以看作是计算机科学的一个应用分支,也可以看作是语言学的一个应用分支。事实上,广义的应用语言学Applied linguistics)是包含计算语言学和 NLP 的,不过由于计算语言学作为一个独立学科已经站住脚跟半个多世纪了(其主要学刊是《Computational Linguistics》,学会是 ACL,顶级国际会议包括 ACL 年会和 COLING 等),(窄义的)应用语言学现在更多用来表示语言教学和翻译这样的实用领域,不再下辖计算语言学这个分支。
从功能上看,NLPML 一样,同属于人工智能的范畴,特别是自然语言理解以及NLP的种种应用,如机器翻译。所以,广义的人工智能既是机器学习的上位概念,也是自然语言处理的上位概念。然而,如上所说,窄义或传统的人工智能强调知识处理包括常识推理common-sense reasoning),与现行的 ML NLP  数据制导data-driven)现状颇有距离,因此有 NLP 学者刻意保持与传统AI的距离以示不屑为伍。
千头万绪,纲举目张,下文分四个层次、用四幅联络图来讲解 NLP per se。四个层次分别是:
1. 语言层(linguistic level);
2. 抽取层(extraction level);
3. 挖掘层(mining level);
4. 应用层(app level)。
这四个层次的关系,基本就是自底而上的支持关系:1 ==》2 ==》 3 ==》4。显然,NLP 的核心句法分析器(Parser)处于第一层, 而《自动民调》、《问答系统》、《机器翻译》这样的系统则是第四层应用的例子。
需要说明的是,NLP 的对象自然语言有两种形式,语音Speech)和文本Text),因此NLP自然涵盖语音方面的两个重要方向:1. 教授电脑听懂人话的语音识别Speech recognition);2. 教授电脑说人话的语音合成Speech synthesis)。由于笔者对语音处理Speech processing)比较外行,本系列专谈针对文本的NLP,视语音识别和语音合成为文本处理(Text processing)的 前奏和后续。事实上,在实际的语言系统中,语音处理和文本处理的分工正是如此,譬如 NLP 在手机上最新应用如苹果的 Siri 就是先行语音识别,输出文本结果,再行文本分析,然后根据分析理解的结果采取行动(根据主人指令去查天气预报、股票、播放某支音乐等等)。

净手焚香阅好图

我把 NLP 系统从核心引擎直到应用,分为四个阶段,对应四张框架图。
最底层最核心的是 deep parsing,就是对自然语言的自底而上层层推进的自动分析器,这个工作最繁难,但是它是绝大多数NLP系统的我称之为带有核武器性质的基础技术,因为自然语言作为非结构数据因此而被结构化了。面对千变万化的语言表达,只有结构化了,patterns 才容易抓住,信息才好抽取,语义才好求解。这个道理早在乔姆斯基1957年语言学革命后提出表层结构到深层结构转换的时候,就开始成为(计算)语言学的共识了。结构树不仅是表达句法关系的枝干(arcs),还包括负载了各种信息的单词或短语的叶子(nodes)。结构树虽然重要,但一般不能直接支持产品,它只是系统的内部表达,作为语言分析理解的载体和语义落地为应用的核心支持。

接下来的一层是抽取层 (extraction),如上图所示。它的输入是结构树,输出是填写了内容的 templates,类似于填表:就是对于应用所需要的情报,预先定义一个表格出来,让抽取系统去填空,把语句中相关的词或短语抓出来送进表中事先定义好的栏目(fields)去。这一层已经从原先的领域独立的 parser 进入面对领域、针对应用和产品需求的任务了。

值得强调的是,抽取层是面向领域的语义聚焦的,而前面的分析层则是领域独立的。因此,一个好的架构是把分析做得很深入很逻辑,以便减轻抽取的负担。在深度分析的逻辑语义结构上做抽取,一条抽取规则等价于语言表层的千百条规则。这就为领域转移创造了条件。

有两大类抽取,一类是传统的信息抽取(IE),抽取的是事实或客观情报:实体、实体之间的关系、涉及不同实体的事件等,可以回答 who did what when and where (谁在何时何地做了什么)之类的问题。这个客观情报的抽取就是如今火得不能再火的知识图谱(knowledge graph)的核心技术和基础,IE 完了以后再加上下一层挖掘里面的整合(IF:information fusion),就可以构建知识图谱。另一类抽取是关于主观情报,舆情挖掘就是基于这一种抽取。我过去五年着重做的也是这块,细线条的舆情抽取(不仅仅是褒贬分类,还要挖掘舆情背后的理由来为决策提供依据)。这是 NLP 中最难的任务之一,比客观情报的 IE 要难得多。抽取出来的信息通常是存到某种数据库去。这就为下面的挖掘层提供了碎片情报。

很多人混淆了抽取(information extraction) 和下一步的挖掘(text mining),但实际上这是两个层面的任务。抽取面对的是一颗颗语言的树,从一个个句子里面去找所要的情报。而挖掘面对的是一个 corpus,或数据源的整体,是从语言森林里面挖掘有统计价值的情报。在信息时代,我们面对的最大挑战就是信息过载,我们没有办法穷尽信息海洋,因此,必须借助电脑来从信息海洋中挖掘出关键的情报来满足不同的应用。因此挖掘天然地依赖统计,没有统计,抽取出来的信息仍然是杂乱无章的碎片,有很大的冗余,挖掘可以整合它们。

很多系统没有深入做挖掘,只是简单地把表达信息需求的 query 作为入口,实时(real time)去从抽取出来的相关的碎片化信息的数据库里,把 top n 结果简单合并,然后提供给产品和用户。这实际上也是挖掘,不过是用检索的方式实现了简单的挖掘就直接支持应用了。

实际上,要想做好挖掘,这里有很多的工作可做,不仅可以整合提高已有情报的质量。而且,做得深入的话,还可以挖掘出隐藏的情报,即不是原数据里显式表达出来的情报,譬如发现情报之间的因果关系,或其他的统计性趋势。这种挖掘最早在传统的数据挖掘(data mining)里做,因为传统的挖掘针对的是交易记录这样的结构数据,容易挖掘出那些隐含的关联(如,买尿片的人常常也买啤酒,原来是新为人父的人的惯常行为,这类情报挖掘出来可以帮助优化商品摆放和销售)。如今,自然语言也结构化为抽取的碎片情报在数据库了,当然也就可以做隐含关联的情报挖掘来提升情报的价值。

第四张架构图是NLP应用(apps)层。在这一层,分析、抽取、挖掘出来的种种情报可以支持不同NLP产品和服务。从问答系统到知识图谱的动态浏览(谷歌搜索中搜索明星已经可以看到这个应用),从自动民调到客户情报,从智能助理到自动文摘等等。

这算是我对NLP基本架构的一个总体解说。根据的是20多年在工业界做NLP产品的经验。18年前,我就是用一张NLP架构图忽悠来的第一笔风投,投资人自己跟我们说,这是一张 million dollar slide。如今的解说就是从那张图延伸拓展而来。

天变还是不变,道是不变的。

立委译白硕:“入口载体”之争(中英对照)

【立委按】端口(portals),兵家必争。bots,热门中的热门。白老师说,背后的ai才是战略布局的重中之重。又说,平台和服务,非巨头不能。问题是哪家巨头明白战略布局的精要所在。对于中文深度理解,水很深很深。大浪淘沙,且看明日之ai,竟是谁家之天下。不是特别有insights和分量的,我是不会翻译的(尽管有了神经翻译助力,也搭不起那个时间)。白老师绝妙好文,值得咀嚼。(By the way, 最后一段的想象力,秒杀所有科幻作家。)

“入口载体”之争

最近,亚马逊旗下的智能音箱产品 Echo 和出没于 Echo 中的语音助手 Alexa 掀起了一股旋风。不仅智能家居业在关注、人工智能创业公司在关注,IT巨头们也在关注。那么,Alexa 到底有什么独到之处呢?

Recently, Amazon's AI product Echo and its voice assistant Alexa set off a whirlwind in the industry.  It has drawn attention from not only the smart home industry but also the AI start-ups as well as the IT giants.  So, what exactly is unique about Alexa?

有人说,Alexa 在“远场”语音识别方面有绝活,解决了“鸡尾酒会”难题:设想在一个人声嘈杂的鸡尾酒会上,一个人对你说话,声音虽不很大,但你可以很精准地捕捉对方的话语,而忽略周边其他人的话语。这手绝活,据说其他语音厂商没有,中国连语音处理最拿手的科大讯飞也没有。

Some people say that Alexa has solved the challenging "cocktail party" problem in speech recognition: imagine a noisy cocktail party, where a person is chatting with you, the voice is not loud, but you can accurately capture the speech with no problem while ignoring the surrounding big noise. Alexa models this amazing human capability well, which is said to be missing from other leading speech players, including the global speech leader USTC iFLYTEK Co.

有人说,Alexa 背后的“技能”极其丰富,你既可以点播很多节目,也可以购买很多商品和服务;既可以操控家里的各款家电设备,也可以打听各类消息。总而言之,这是一个背靠着强大服务资源(有些在端,更多在云)的语音助手,绝非可与苹果的 Siri 或者微软的小冰同日而语。

Others say that behind Alexa are very rich cross-domain know-hows:  one can ask Alexa for on-demand programs, he can also buy goods and services through it; it can be instructed to control the various appliances of our home, or inquire about all kinds of news.  All in all, this is a voice assistant backed by a strong service (with some resources local, and more in the cloud).  Apple's Siri or Microsoft's Little Ice are believed to be by no means a match for Alexa in terms of these comprehensive capabilities.

端方面的出色性能,加上端+云方面的庞大资源,构成了 Alexa 预期中的超强粘性,形成了传说中巨大的入口价值。这也似乎是Alexa在美国市场取得不俗业绩的一个说得通的解释。有相当一部分人意识到,这可能是一个巨大的商机,是一个现在不动手说不定将来会追悔莫及的局。尽管在美国以外的其他市场上,Alexa的业绩并不像在美国市场那样抢眼,但是这股Alexa旋风,还是刮遍了全球,引起了同业人士的高度紧张和一轮智能音箱模仿秀。

The excellent performance by the end device, coupled with the huge cloud resources in support of the end, constitute Alexa's expected success in customers' stickiness, leading to its legendary value as an information portal for a family.  That seems to be a good reason for Alexa's impressive market performance in the US.  A considerable number of people seem to realize that this may represent a huge business opportunity, one that simply cannot be missed without regret.  Although in other markets beyond the United States, Alexa's performance is not as eye-catching as in the US market, this Alexa whirlwind has till been scraping the world, leading to the industry's greatest buzz and triggering a long list of smart speaker simulation shows.

Alexa 动了谁的奶酪?抢了谁的饭碗?怎样评价 Alexa 的入口价值?怎样看待入口之争的昨天、今天、明天?

Hence the questions: What are the effects of this invention of Alexa? Who will be affected or even replaced?  How to evaluate Alexa's portal value? Where is it going as we look into the yesterday, today and tomorrow of this trend?

我们不妨来回顾一下“入口”的今昔变迁。所谓“入口”,就是网络大数据汇聚的必经之地。从模式上看,我们曾经经历过“门户网站”模式、“搜索引擎”模式和“社交网络”模式,目前新一代的入口正在朝着“人工智能”模式迁移。从载体上看,“门户网站”和“搜索引擎”模式的载体基本上是PC,“社交网络”模式的载体基本上是以智能手机为主的端设备。“人工智能”模式有可能的改变载体吗?换句话说,Echo-Alexa 软硬合体,能够以人工智能的旗号,从智能手机的头上抢来“入口载体”的桂冠吗?

We may wish to reflect a bit on the development of portals in the IT industry history.  The so-called "portal" is an entry point or interface for an information network of large data flow, connecting consumers and services.  From the model perspective, we have experienced the "web portal" model, the "search engine" model and more recently, the "social network" model, with the on-going trend pointing to a portal moving in the "artificial intelligence" mode. From the carrier perspective, the carrier for the"web portal" and "search engine" models is basically a PC while the "social network" model carrier is mainly a smart phone-based end equipment. Does the "artificial intelligence" model have the potential to change the carrier? In other words, is it possible for the Echo-Alexa hardware-software combination, under the banner of artificial intelligence, to win the portal from the smart phone as the select point of human-machine interface?

本人认为,这是不可能的。原因有三。

I don't think it is possible.  There are three reasons.

第一,场景不对。哪怕你抗噪本事再强大,特定人跟踪的本事再大,只要安放地点固定,就是对今天已经如此发达的移动场景的一种巨大的倒退。试想,家庭场景的最大特点就是人多,人一多,就形成了个小社会,就有结构。谁有权发出语音指令?谁有权否定和撤销别人已经发出的语音指令?最有权的人不在家或者长期沉默,听谁的?一个家庭成员如果就是要发出一个不想让其他家庭成员知道的私密语音指令怎么办?个人感觉,语音指令说到底还是个体行为大于家庭行为,私密需求大于开放需求。因此,家庭语音入口很可能是个伪命题。能解析的语音指令越多,以家庭场景作为必要条件的语音指令所占比重就越少。

First, the scene is wrong. Even if Alexa is powerful with unique anti-noise ability and the skills of tracking specific people's speech, since its location is fixed, it is a huge regression from today's well-developed mobile scenes.  Just think about it, the biggest feature of a family scene is two or more individuals involved in it.  A family is a small society with an innate structure.  Who has the right to issue voice commands? Who has the authority to deny or revoke the voice commands that others have already issued? What happens if the authoritative person is not at home or keeps silent? What if a family member intends to send a private voice instruction? To my mind, voice instruction as a human-machine interaction vehicle by nature involves behaviors of an individual, rather than of a family, with privacy as a basic need in this setting.  Therefore, the family voice portal scene, where Alexa is now set, is likely to be a contradiction. The more voice commands that are parsed and understood, the less will be the proportion of the voice commands that take the home scenes as a necessary condition.

第二,“连横”面临“合纵”的阻力。退一步说,就算承认“智能家居中控”是个必争的入口,智能音箱也面临其他端设备的挑战。我们把聚集不同厂家家居设备数据流向的倾向称为“连横”,把聚集同一厂家家居设备数据流向的倾向称为“合纵”。可以看出,“连横”的努力是对“合纵”的生死挑战,比如海尔这样在家庭里可能有多台智能家居设备的厂商,如非迫不得已,自家的数据为什么要通过他人的设备流走呢?

Second, the "horizontal" mode of portal faces the "vertical" resistance.  Even if we agree that the "smart home central control" is a portal of access to end users that cannot be missed by any players, smart speakers like Alexa are also facing challenges from other types of end equipment.  There are two types of data flow in the smart home environment.  The horizontal mode involves the data flow from different manufacturers of home equipment.  The vertical mode portal gathers data from the same manufacturer's home equipment.  It can be seen that the "horizontal" effort is bound to face the "vertical" resistance in a life and death struggle.  For example, the smart refrigerator and other smart home equipment manufactured by Haier have no reasons to let go its valuable data and flow it away to the smart speaker manufacturers.

第三,同是“连横”的其他端设备的竞争。可以列举的有:家用机器人、家庭网关/智能路由器、电视机、智能挂件等。这些设备中,家用机器人的优势是地点无需固定,家庭网关的优势是永远开机,电视机的优势是大屏、智能挂件(如画框、雕塑、钟表、体重计等)的优势是不占地方。个人感觉,智能音箱面对这些“连横”的竞争者并没有什么胜算。

Third, the same struggle also comes from other competitions for the "horizontal" line of equipment, including house robots, home gateway / intelligent routers, smart TVs, intelligent pendants and so on.  The advantage of the house robots is that their locations need not be fixed in one place, the advantage of the home gateway is that  it always stays on, the TVs' advantage lies in their big screens, and intelligent pendants (such as picture frames, sculptures, watches, scales, etc.) have their respective advantage in being small.  In my opinion, smart speakers face all these "horizontal" competitions and there does not seem to be much of a chance in winning this competition.

综上所述,Echo-Alexa 的成功,具有很强的叠加特点。它本质上是亚马逊商业体系的成功,而不是智能家居设备或者语音助手技术的成功。忽略商业体系的作用,高估家庭入口的价值,单纯东施效颦地仿制或者跟随智能音箱,是没有出路的。个人觉得,智能手机作为移动互联时代的入口载体,其地位仍然是不可撼动的。

In summary, the Echo-Alexa's success comes with a strong superposition characteristic. It is essentially a success of the Amazon business system, rather than the success of smart home appliances or the voice assistant technology. Ignoring the role of its supporting business system, we are likely to overestimate the value of the family information portal, and by simply mimicking or following the smart speaker technology, there is no way out.  Personally, I feel that the smart phone as the carrier of an entry point of information in the mobile Internet era still cannot be replaced.

语音交互时代真的到来了吗?

Is the era of voice interaction really coming?

IT巨头们关注 Alexa 还有一个重要的理由,就是由 Alexa 所代表的语音交互,或许开启了人机交互的一种新型范式的兴起。当年,无论是点击模式的兴起还是触摸模式的兴起,都引发了人机交互范式的革命性变化,直接决定了IT巨头的兴亡。点击模式决定了 wintel 的崛起,触摸模式决定了 wintel 被苹果的颠覆,这些我们都以亲身经历见证过了。如果语音交互真的代表了下一代人机交互范式,那么 Alexa 就有了人机交互范式的代际转换方面的象征意义,不由得巨头们不重视。

One important reason for the IT giants to look up to Alexa is that the voice interaction represented by Alexa perhaps opens a new paradigm of human-computer interaction.  Looking back in history, the rise of the click-mode and the rise of the touch-mode have both triggered a revolutionary paradigm shift for human-computer interaction, directly determining the rise and fall of the IT giants. The click-mode led to the rise of Wintel, the touch mode enabled Apple to subvert Wintel: we have witnessed all these changes with our own eyes.  So if the voice interaction really represents the next generation paradigm for human-computer interaction, then Alexa has a special meaning as the precursor of the human-computer interaction paradigm shift.  The giants simply cannot overlook such a shift and its potential revolutionary impact.

然而个人认为,单纯的语音交互还构不成“代际转换”的分量。理由有三:

However, personally, I do not think that the speech interaction alone carries the weight for an "intergenerational revolution" for human-machine interaction.   There are three reasons to support this.

第一,语音本身并不构成完整的人机交互场景。人的信息摄入,百分之八十以上是视觉信息,在说话的时候,经常要以视觉信息为基本语境,通过使用指示代词来完成。比如指着屏幕上一堆书当中的一本说“我要买这本”。就是说,语音所需要的语境,有相当部分来自视觉的呈现,来自针对和配套可视化对象的手势、触摸或眼动操作。这至少说明,我们需要multi-modal人机交互,而不是用语音来取代其他人机交互手段。

First, the speech itself does not constitute a complete human-computer interaction scene.  People's information intake, more than 80% of times, involves the visual information.  When speaking, we often take some visual information as basic context, through the use of a pronoun to refer to it.  For example, pointing to a book on the screen, one may say, "I want to buy this." In other words, a considerable part of the context in which the speech is delivered comes from the visual presentation, ranging from gestures, touches or eye movements that target some visual objects. This at least shows that we need multi-modal human-computer interaction, rather than using voice alone to replace other human-computer interaction vehicles.

第二,目前语音输入还过不了方言关。中国是一个方言大国,不仅方言众多,而且方言区的人学说普通话也都带有方言区的痕迹。“胡建人”被黑只是这种现象的一个夸张的缩影。要想惠及占全国总人口一半以上的方言区,语音技术还需要经历进一步的发展和成熟阶段。

Second, the current speech recognition still cannot handle the dialect well.  China is a big country with a variety of dialects.  Not only dialects, but also the people in dialect areas speack Mandarin with a strong accent. To benefit more than half of the total population in the dialect areas, the speech technology still needs to go through a stage of further development and maturity.

第三,目前语音输入还很难解决“转义”问题。所谓转义问题就是当语音指令的对象是语音输入本身的时候,系统如何做出区分的问题。人在发现前一句说的有问题需要纠正的时候,有可能需要用后一句话纠正前一句话,这后一句话不是正式的语音输入的一部分;但也有可能后一句话并不是转义,而是与前一句话并列的一句话,这时它就是语音输入的一部分。这种“转义”语音内容的识别,需要比较高级的语义分析技术,目前还不那么成熟。

Third, the current speech recognition still has difficulty in solving the "escape" problem. The so-called escape problem involves the identification of scenarios when the speech refers to itself.  When people find there is an error in the first utterance and there is a need to correct it, they may choose to use the next sentence to correct the previous sentence, then this new sentence is not part of the naturally continuous speech commands, hence the need for "being escaped".  But it is also possible that the latter sentence should not be escaped, and it is a sentence conjoined with the previous sentence, then it is part of the normal speech stream.  This "escape" identification to distinguish different levels of speech referents calls for more advanced semantic analysis technology, which is not yet mature.

所以,以语音输入目前的水平,谈论语音输入的“代际转换”或许还为时尚早。甚至,语音可能只是一个叠加因素,而并不是颠覆因素。说未来会进入multi-modal输入的时代,说不定更加靠谱一点。

So, considering the current level of speech technology, it seems too early to talk about the "intergenerational revolution".  Furthermore, speech may well be just one factor, and not necessarily a disruptive one.  It seems more reasonable to state that the future of human-computer interaction may enter an era of multi-modal input, rather than speech alone.

语义落地是粘性之本

The semantic grounding is the key to the stickiness of users.

语义这个字眼,似乎被某些人玩得很滥,好像会分词了就摸到语义了,其实不然。语义的水很深。

Semantics as a term seems abused in all kinds of interpretations.  Some even think that once words are identified, semantics is there, which is far from true. The semantics of natural languages is very deep and involves a lot.  I mean a lot!

从学术上说,语义分成两个部分,一个叫“符号根基”,讲的是语言符号(能指)与现实世界(也包括概念世界)中的对象(所指)的指称关系;另一个叫“角色指派”,讲的是语言符号所指的现实或概念对象之间的结构性关系。符号根基的英文是“symbol grounding”,其中的 grounding 就有落地的意思。所以,我们说的语义落地,无论学术上还是直观上,都是一致的。Siri 在通信录、位置、天气等领域首开了在移动互联设备上实现语义落地的先河,这几年语义落地的范围越来越广。

From the academic point of view, semantics is divided into two parts.  One called "symbol grounding", which is about the relationship of the language symbol (signifier) and its referent to the real world entity (including the conceptual world).  The second is called "role assignment", which is about the relationship between the referents of the language symbols in the reality.  Siri is the pioneer in the mobile semantic grounding realized in the domain apps such as Address, Map and Weather.  The past few years have seen the scope of semantic grounding grow wider and wider.

前面说了,“端方面的出色性能,加上端+云方面的庞大资源,构成了 Alexa 预期中的超强粘性”。我们在这一节里面要进一步探讨:“端的性能”和“端+云的资源”这两者中,谁是产生 Alexa 粘性的更根本原因?笔者无意玩什么“都重要,谁也离不开谁”之类的辩证平衡术,那是便宜好人,说起来冠冕堂皇,做起来毫无方向。坦率地说,如果归因错误,那么就会产生投入方向的错误。而投入方向的错误,将使模仿者东施效颦,输得体无完肤。

Let me review what I said before: "the excellent performance by the end equipment, coupled with the huge cloud resources in support of the end, constitute the Alexa's expected success in users' stickiness".  We can further explore along this line in this section.  Between "the performance by the end equipment" and "the cloud resources in support of the end", which is the root cause for Alexa's stickiness with the customers?  I do not intend to play the trick of dialectical balance by saying something like both are important and no one can do the job without the other.  That is always true but cheap, and it gives no actionable insights. The consequence includes possible blind investments in both for the copycat, such investments may well lead to a complete failure in the market.

作者认为,“端的性能”是硬件对场景的适应性。这充其量是“好的现场体验”。但没有实质内容的“好的现场体验”会很快沦为玩具,而且是不那么高档的玩具。没有“有实质意义的服务”就不可能产生持久的粘性,而没有持久的粘性就充当不了持久的数据汇集入口。然而,“有实质意义的服务”,一定源自语义落地,即语音指令与实际服务资源的对接,也就是 Alexa 的所谓“技能”。底下所说的语义落地,都是指的语音指令与无限可能的实际服务资源对接这种落地。

The author argues that "the performance by the end equipment" is about the adaptability of the hardware to the scene.  This is at best about a "good live experience" of users. But a product with "good user experience" without real content will soon degrade to a toy, and they cannot even count as high-end toys.  If there is no real "meaningful service" associated, there will be no sustainable stickiness of customers. Without user stickiness, they cannot become sustainable data collection entry points as a data flow portal.  However, any associated "meaningful services" must come from the semantic grounding, that is, the connection from a speech command with its corresponding actual service.  This is the essence behind Alexa's so-called "know-hows."  Semantic grounding as mentioned hereafter all refers to such connection from the speech command with infinitely possible actual service resources.

语义落地需要一个强大的、开放领域的NLP引擎。服务资源千千万万,不可能局限在一个或少数领域。一个只能面对封闭领域的NLP引擎,无法胜任这样的任务。能够对接开放领域,说明这个引擎一定在语义分析上有非同寻常的功力,一定在语义知识的表示和处理方面走在了正确的道路上。在这方面,英语做得好,不一定汉语做得好。还不了解汉语在开放领域的NLP引擎是一个什么样难度的人,不可能做出规模化的语义落地效果。这方面的技术壁垒可以在做同一个事情的公司间拉开有如天壤之别的巨大差距。

Comprehensive semantic grounding requires a strong open-domain NLP engine. Service resources are so diverse in tens of thousands, and they can hardly be confined to one or only a few narrow domains.  An NLP engine functioning only in a narrow domain cannot do this job well.  To work in the open domain requires an engine to be equipped with extraordinary capacity in the semantic analysis, and it must be on the right path in the semantic knowledge representation and processing.  In this regard, even if an English engine is doing decently well, it does not necessarily mean the Chinese counterpart will work well.  For those who do not yet understand the difficulty and pain points of the Chinese NLP engine in the open domain, it is hardly possible to expect them to achieve large-scale semantic grounding effects. Such technology barriers can set apart a huge gap in products attempting to do the same thing in the market between companies equipped with or without deep semantic capabilities.

语义落地需要对服务资源端的接口做出工程化的适配。这同样是一个非常艰巨的任务,而且是拼资源、拼效率、拼管理的任务。小微规模的初创公司不可能有这样的资源整合能力和工程组织能力,这一定是大公司的强项。有人说,我由小到大行不行?我说,不行,时间不等人。在语义落地领域,如果不能在短时间内爆发,等着你的就是灭亡。

Semantic grounding requires an engineering adaptation at the interface to the service resources.  This is also a very difficult task, and it involves competitions in the scale of resources as well as efficiency and management. Start-up companies can hardly have such a resource integration capacity and the engineering organization capabilities, these are the strength of large companies. Some people say that I can start small and gradually scale up, okay? I said, no, time does not wait for people.  In the area of semantic grounding, if products are not developed in a relatively short time to capture the market, there are little chances for survival.

语义落地还需要对人机对话场景本身的掌控能力。这涉及语境感知、话题切换、情感分析、语言风格选择、个性塑造等多项技术,不一而足。语音助理不见得都是越“贫”越“萌”越好,比如适度的渊博、犀利甚至粗鲁,也都可以是卖点。

Semantic grounding also calls for the ability to manage the man-machine interactive scene itself. This involves a variety of technologies such as contextual perception, topic switching, sentiment analysis, language style selection, personality shaping and many others. A speech assistant is not necessarily the best if it only mimics human's eloquence or seemingly likable ways of expressions. Skills such as moderate profoundness or sharpness in arguments and even some rudeness at times can all be selling points as an intelligent assistant.

所以,我们强调语义落地对 Alexa 用户粘性的决定性作用,强调庞大服务资源对于 Alexa 成功故事的决定性贡献。在中国,没有与亚马逊规模相当、服务资源体量相当的超大型互联网企业出手,没有对面向汉语的开放领域NLP引擎开发重量级团队的出手,单凭语音技术是不可能产生这样的用户粘性的。

Therefore, we would point out the key role of semantic grounding on the stickiness of Alexa users, emphasizing the decisive contribution of large service resources behind Alexa's success story.  In China, if Chinese IT giants with a comparable size of the Amazon service resources do not take the lead, coupled by a solid open domain Chinese NLP engine with a star team, the speech technology alone has no way to generate such a user stickiness as we see in Alexa.

谁会胜出?

这年头,一切不以获取用户数据为目的的端设备都是耍流氓。智能手机独领风骚多年了,各类智能家居连横合纵也斗了有几年了。Alexa 的横空出世,给了业界很多刺激和启示,但地盘属谁,并没有盖棺论定。大家还有机会。但是就端云结合、入口和入口载体结合形成数据闭环这件事,方向性、趋势性的东西不可不查,否则机会就不是你的。

Who will win then?

In essence, it is all about gathering the user data by the end equipments.  Smartphones dominate the industry for years, all kinds of smart home solutions across the verticals have also been fighting for several years now.  Alexa's coming to the market stirs the industry with a lot of excitement and revelations, but it is far from what is all set.  We still have opportunities.  But keep in mind, it cannot be overemphasized to look into issues involving the combination of the end devices with the cloud and the combination between the entry point and the entry point carrier to form a closed-loop data stream.  If we lose the sense of directions and trends in these issues, the opportunity will not be ours.

什么是方向性、趋势性的东西呢?听我道来。

第一,人工智能一定是下一代的入口模式。也就是说,各种对服务的需求,必将最终通过人工智能的多通道输入分析能力和人机互动优势,从端汇集到云;各种服务资源,必将最终借助人工智能的知识处理与认知决策能力,从云对接到端。你不布局人工智能,未来入口肯定不是你的。

So what is the direction and what are the trends? Let me give an analysis.

First, artificial intelligence is bound to be the next generation portal. In other words, all kinds of service needs will inevitably go from the end devices to the cloud through the artificial intelligence multi-channel input analysis, leveraging the human-computer interaction advantages.  The variety of service resources will eventually use the knowledge of artificial intelligence and cognitive decision-making ability, to provide to users from the cloud to the end. If you do not lay out a roadmap in developing artificial intelligence, the future portal is definitely not yours.

第二,智能手机在相当长一段时间内,仍然是入口载体事实上的“盟主”,地位不可撼动。人走到哪里,通信节点和数字身份就跟到哪里,对现场的感知能力和作为服务代言者的app就跟到哪里。在入口载体所需要的个人性、私密性和泛在性这几个最关键的维度上,还没有哪一个其他端设备能够与智能手机相匹敌。

Second, the smartphone for a long time to come will stay as defacto chief carrier. Wherever is the person going, the communication node and the digital identity will follow and the perception of the life scene and the app as the service agent will also follow. There are no other end devices that match the smartphone on the most critical dimensions of the individualness, privacy, and the ubiquitous nature as needed by a portal carrier.

第三,端设备的通信功能和服务对接功能将逐步分离。随着可对接的服务越来越多样化,用一个端设备“包打天下”已不可能,但每个端设备均自带通信功能亦不可取。Apple watch 和 iPhone 之间的关系是耐人寻味的:iPhone 作为通信枢纽和客户端信息处理枢纽,Apple watch 作为专项信息采集和有限信息展示的附属设备,二者之间通过近场通信联系起来。当然,二者都是苹果自家人,数据流处在统一掌控之下。一家掌控,分离总是有限的、紧耦合的。但是,做得初一,就做得十五,今后各种分离将层出不穷,混战也将随之高潮迭起。今天是 Alexa 刮旋风,明天兴许就是谁下暴雨。如果手机厂商格局再大一点,在区块链的帮助下,在数据的采集方面对各种附属端设备的贡献进行客观的记录,据此在数据和收益的分享方面做出与各自贡献对等的合理安排,说不定某种松耦合形式的分离就会生米做成熟饭,端的生态到那时定会别样红火。可以设想,在一个陌生的地方,你从怀里掏出一张软软的薄薄的可折叠的电子地图,展开以后像一张真的地图那么大,却又像手机地图一样方便地触摸操作甚至可以结合语音操作,把它关联到你的手机上。当然,这张图也可以没有实物只有投影。而你的手机只管通信,所有的操控和展现都在这张图上完成,根本不需要掏出手机。这样的手机也许从头至尾就根本无需拿在“手”里,甚至可以穿在脚上,逐渐演化成为“脚机”……

Third, there will be separation between the communication function of a terminal device and the demanded service function. As the service grows more and more diversified, it becomes impossible for one end device to handle all types of service needs.  But it is not desirable for each end device to come with its own communication function.  The relationship between Apple Watch and iPhone is intriguing in this regard: iPhone serves as the communication hub as well as the client information processing hub while Apple Watch functions as a special device for information collection and limited information display.  They are connected through a "near field communication" link.  Of course, both are Apple's products in one family, the data flow is therefore under a unified control.  In such a setting, they are tightly coupled, and the separation is always limited. However, this mode sheds lights to the future when all kinds of separation may be required but they should also be connected in some way.  If the mobile phone manufacturers keep an open mind, they can use the block chain technology in data collection with a variety of ancillary equipment to make an objective record of the respective contributions and accordingly make reasonable arrangements with regards to the data and proceeds sharing. A loose coupling of the separation will then evolve and mature, promoting the rapid ecological development of end devices in all kinds of forms. It is imaginable that, when we are in a new place, we can take out from our pocket a soft thin foldable electronic map.  This map, when unfolded, looks as big as a real paper map, but it works conveniently just like a mobile map app: it responds to the touch operations and may even accommodate speech instructions to associate with our phone. Of course, this map can also simply be a virtual projection, not necessarily taking the form of a real object.  Our phone only needs to take care of communication, all the control and display are accomplished on the map, and we do not even need to physically take out the phone. Such a phone may never need to be held in hands, we may even wear the phone on the foot, and the hand mobile device gradually evolves into a "foot phone" ... ...

Alexa旋风带给你的机会和启发是什么,想好了吗?

Are you ready for the opportunity and inspirations brought by the Alexa whirlwind?

Translated by: Dr. Wei Li based on GNMT
本文获作者白硕老师授权转载和翻译,特此感谢,原文链接:“入口载体”之争

 

【Related】

S. Bai: Natural Language Caterpillar Breaks through Chomsky's Castle

S. Bai: Fight for New Portals

【李白对话录系列】

中文处理

Parsing

【置顶:立委NLP博文一览】

《朝华午拾》总目录