《李白109:深度学习的猪与符号逻辑的坎儿》

李:刘群老师转了一篇好文:The Bitter Lesson ,机器之心翻译过来了,《AI先驱Rich Sutton:利用算力才是王道,人工智能一直在走弯路

是以历史事实对符号AI和规则NLU的批判。人的方式就是符号逻辑:这样比较舒服,容易理解。但是面对依赖蛮力(算力)的海量搜索和海量学习,符号逻辑显得单薄。无论多么 bitter,历史事实(speech,vision,MT)很难回避,不得不承认。剩下的问题集中在:

1. 可解释性/可定点纠错性

这是不是蛮力/算力的死结?符号逻辑不存在这个问题,by definition,它就是人可解释的。但实际上,可解释性只是一个表象,因为稍微复杂一点的任务,符号逻辑的模型和算法理论上虽然可解释,但实际上也不是容易说清楚的。

白:过程的可解释性和表示的可解释性是两个不同的issue,没有人苛求过程的可解释性。但是表示的可解释性不同。明明有合理的显性表示,非要把它“嵌入”,这就说不过去了。

李:那是。另外一点就是,可解释性背后的东西似乎更重要,那就是定点纠错的能力。因为是符号逻辑,甭管路径多复杂,专家真想 debug 的话,就可以追下去。学习的模型就很难。可解释性/可定点纠错性,这是符号派还可以拿得出手的一张王牌。第二张王牌就是:

2. 不依赖海量标注

这第二张王牌,也越来越让人“担心”了。倒不是担心无监督学习,或者迁移学习会突然有革命性突破。而是实际上看到的是一种渐进的改变。

第一个改变是所谓预训练的进展。的确从方法论上 把通用的模型与应用的需求做了分工,使得对于后者的标注要求理论上是减轻了:这还是正在进行的过程。但预计不会太久,不同的效果就会显现得更有说服力。方向上,很看好预训练的作用,现在只是一个开始,但已经很让人兴奋/担心了。

第二个改变是,很多标注数据可以半自动收集,通过各种方法,各种 tricks,加上时间积累效应,再加上调动用户积极性的“引诱式”标注的反馈,等等。大规模标注数据的人力要求 并不总是想象的那样无边无际和困难。

白:问题是:什么标注?标注体系的科学性,决定它的天花板。标注含不含复杂结构?如果含,又能自动标注,那还训练个啥,就是解析了。如果不含,怎么保证能“命中”目标语言?命中场景,而不是命中“端到端”游戏?

李:“复杂结构”和体系天花板,这些深层符号逻辑的东西,当然也可以是王牌。靠蛮力/算力的端到端学习可能难以应对。但是深层逻辑的东西,感觉上,在 real world 的任务中,占比不大。可以拿来说事,实际限制往往不大。

最近遇到一个同好,聊起来,朋友对我的符号悲观主义很不理解。说做了一辈子的符号了,“李老师”怎么自己跟自己过不去呢,灭自己威风,长他人志气。

这要看年龄段了,到了这个岁数了,威风志气都是小事,不值一提,主要还是看解决问题的能力和潜力。对于上面几张“王牌”或挡箭牌,估计还要两三年的时间可以化解,或见分晓。到那个时候,可以比较确定地看到符号路线的合理定位。到底有多大价值,如何相处和自处。相信不会“蒸发”,但定位成秘书或打杂的可能性,感觉不是完全不可能的事儿。

白:包含/容纳结构,是NLP不同于普通视觉任务的根本特质。深度学习的猪飞不了多久了。

李:“包含/容纳结构,是NLP不同于普通视觉任务的根本特质”,这话自然不错,可是MT是NLP呀,没有结构,NMT 达到的成就,不得不信服。唯一的退路就是,MT 太独特了,端到端的数据是几乎无限的。这自然是 NMT 奇迹发生的根本原因,但逻辑上这个奇迹反驳和弱化了 没有显性结构,学习难以完成NLP任务 的立论。当然,我们总可以找到 NMT 里面的痛点和笑话,来反证其缺乏结构的短板。可事实是,这些痛点和笑话确实没有什么统计意义,对于任务完成的整体效果,其实影响没那么大。对于传统的文法翻译派,NMT 是一个真正的苦果,又是一个不可逾越的标杆。

白:MT的成功是不可复制的。而且MT不是场景化的。这意味着它只能是陪衬。在核心应用的智能化方面起的作用很边缘,算不上什么苦果。

李:做过RMT很多年的人体会有所不同。苦果是说,曾经相信只要自己努力,RMT就可以创造奇迹,直到有一天发现,这是一个无法匹敌的力量对比。所谓“臣服”,大概就是这样。

白:我们提倡黑白双煞,提倡端到端和场景化并举。端到端不适合做产品,也不适合做整体解决方案。2B尤其如此。场景必须是黑白相得益彰,甚至是白远远大于黑。黑盒子做场景先天劣势。

李:场景化怎么说法?我以前的说法就是 NLU 支持 domain porting,NLU 做得功夫越足,domain 落地这边就越轻省,场景化效率越高。

白:我认为,在过程、控制这些地方,神经大用特用都没有关系,在表示则不然。

做场景化的,千万别被MT带歪了。

【相关】

《一日一析系列》

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

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

《朝华午拾》总目录

《一日一析:“让不让我们上学的人见鬼去吧!”》

白:“他们还把不把领导放在眼里了?”

“把不把”,必选格介词加“不”构成疑问句。

N+ X++ N+,先由“不X++”与“把N+”结合,再由两个N+合并,其中后一个N+携带构式标签,符合白名单要求,进入合并merge操作。介词“在”,引导状语时是“S+/N”,引导补语时是“+S/N”。

李:他们还把不把领导放在眼里了 == 他们还把领导放不放在眼里了 ??

应该是等价的。说明选择疑问句,可以从动词的重叠式,转为副动词(介词、助动词)的重叠式: X不X + V

“为人民服务”
“为不为人民服务”
“为人民服不服务”

“开车去南京 — 开车去不去南京 — 开不开车去南京” : 貌似有细微差别。

“被他揍了 — 被他揍没揍 — 被没被他揍”??

介词重叠识别以后,就成为一个介词了,后面该怎么走怎么走。唯一需要注意的是,介词重叠得出的“选择疑问句 or-Question” 应该从介词身上,传递到谓语身上。这样就保证了 谓词重叠与介词重叠的解析,是一致的。

还有的助动词 “是不是”:我们去不去?== 我们是不是去?

“有没有” 也是助动词:他们去了没去?== 他们有没有去?

白:“在不在食堂吃饭”和“在食堂吃不吃饭”似乎不等价。

副词性语素也可以拆解,但独立副词不行:狠不狠抓,严不严打,难不难为情;*马上不马上动手,*狠狠不狠狠打击,*太不太硬……

对副词的选择问句,要在副词前面加“是不是”。

李:“是不是不方便”

* 不不不方便

梁:要不要马上动手?

李:是不是要马上动手?

马不马上动手?

梁:没这么说的。

李:听得懂呀,不留神这么冒出来 也是可能的。中文重叠式有时候真绝。

白:*立不立刻转账

李:“要不要立刻转账”

用助动词 “是不是”、“有没有”、“要不要”、“能不能”、“可不可以” ……

完成:有没有立刻转账;现在:是不是立刻转账;未完成:要不要立刻转账。

白:“让不让我们上学的人见鬼去吧!”

李:这个句子很绝,很绝。能注意到或想出这样例句的人很神 很神。句子“鬼” 啊。

让不让 (重叠式)vs 让/不让 (非重叠式)。试比较:

“叫不让我们上学的人见鬼去吧!”
“让不让我们上学,我们都是要上学的。”
“让让不让我们上学的决定见鬼去吧!“

不好整:重叠式处理离词法较近,远远早于 VP 的句法阶段,二者纠缠的时候,除非特地做休眠唤醒,很难协调好。真要做,唤醒的思路是:让不让重叠式所反映的选择疑问句 or-Question 语义与祈使句(imperative)语气不兼容。这是个唤醒的 trigger:不能够一边说 让还是不让 一个event 发生,一边又说这个 event 是祈使的。要祈使,就是定下了 event 的走向;要选择,就是没有定下这个 event。譬如:

“你给我滚!”

不能与 “让你滚还是不你滚呢” 兼容。

parse parse,哈哈哈 果然中招:

这个解析“几乎”无可挑剔,until it comes across 神人鬼句。

藏在树和图背后的解析结构表示里面有“选择疑问句”特征 orQ,这个 orQ 与“让”这个小词处于句首所应该表达的祈使语气,无法兼容。因此可以针对 “让” 做词驱动的休眠唤醒,可以搞定,但是显然不值得了。词驱动的休眠唤醒是定点解决问题,只要能落实到词,总是可以实现,虽然琐碎,实现起来其实不难,问题出在:1. 真地不值得:都是些长尾中的长尾,做了与不做,系统的性能测试上无感。2. 词驱动的定点休眠唤醒有一个前提,就是对于需要唤醒的另一条路径解读,需要有预见。

其实没人真地去做那么多“预见”,所以结果总是在遇到 bug 了以后去反思这个词驱动唤醒规则。这样一来,这个技术虽然机制上平台上可以实现,但没有有效的保证可以全面铺开,防患于未然。换句话说,对于小概率的长尾错误,值得做的方法应该可以 scale up,这样长尾积累效应使得系统性能最终得到可以认可并且难以逾越的提升。如果对付长尾需要零敲碎打,见到了才能想到去实现,这虽然比束手无策要强,但实践中也还是不能有真正的效果。词驱动就是零敲碎打,专家编码词驱动比愚公移山还要愚。

学习搞不定,专家又不够愚。难!愚公累了,不愿移山,能等得到上帝吗?

可scale up 的长尾处理案例也有, 譬如 成语泛化(所谓 “1234应犹在,只是56改”),大多可以自动半自动批量进行。得益于成语的 ngram 特性,可以让成语词典自动增加变元 实现泛化 而且不用担心损失精准。

其实,没有比愚公更渴望自动化的 —- 如果自动化能搞定的话。那天与@毛德操 说,我对于完全自动化存有1%的念想,奇迹很难发生,但是毕竟见证过奇迹的发生,譬如NMT。

白:前面罗素悖论已经是“鬼”句子了。

“他专门给不给自己理发的人理发。”

看看,“给不给”中招不?

“他给不给自己理发的问题还没有答案。”

无论如何,局部构式的优先级一定大于构式拆解的优先级。这是毋庸置疑的。自动的峰回路转,关键在于“过河不拆桥”。构式拆解的优先级还没那么“不堪”,不用等到撞上南墙,只要先前的构式带上坛坛罐罐,速度立马下来。局部次优解没有睡死,还在梦游,梦游速度可以反超。

“打死人要偿命,打死人就不必偿命了。”
“打死了的人无法再说话,打死了的人需要好好说道说道。”

“卖火柴的盒子上的招贴纸的小女孩”。

向前偷看何时了,相谐知多少?

【相关】

《一日一析系列》

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

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

《朝华午拾》总目录

《李白108:“他就是要裁你的人”》

李:看一下结构歧义的例3 “他就是要裁你的人”,如果你是个兵 手下无人,这句对你就没有歧义。如果你是经理 麻烦了。

你说:裁我的人 痴心妄想!
我说:拜托 他才不要裁你的手下呢,他是要炒你的鱿鱼!

你说会不会很糟心?

  1. 他就是要裁你
  2. 他要裁你的人
  3. 他就是要裁你的人

白:“你的人”局部优先于“裁你”,这没有错。

李:本来是靠相谐度 力量对比,可是 “你” 和 “人” 都是 human。遇到双关式歧义,傻了。小概率事件发生了。

有意思的是,解析器做了一个候选定语M2,貌似为另一路的解读留有一些端倪:“你的人(your men)”。O 与 M2 不兼容(XOR),虽然借的是AND的表示,这是另一个相关话题了,叫做“如何用确定性数据流表示非确定性结果和歧义”,找时间再论。

上述歧义是不难识别的。中文的【V N1 的 N2】,与英文 PP attachment 句式【V NP PP】有一比,都是结构歧义的典型句式。为什么常常不愿意花力气去做结构歧义的识别工作?

与计算机语言不同,自然语言的特点就是有歧义,NLU的任务就是消歧。彻底消歧不容易,因为需要调动很多知识,不仅仅是语言学知识,还包括常识、领域知识和场景知识,这些知识的作用力不同,最后人是怎么综合各种力量对比做出理解的,是一个不好拿捏的过程。形式化建模有挑战。

然而,与词汇歧义的琐碎不同,结构歧义句式清晰,有迹可循,从理论上是可以识别的。识别歧义不需要世界知识,语言学内部的知识就足够了。结构歧义不是难在识别,而是难在识别了以后如何利用各种知识去进一步过滤消歧(剪枝)。

所以有人建议 nondeterministic parsing,把歧义都识别暴露出来,把球踢给接盘的人。这里面的argument就是,识别问题是解决问题的第一步,总比糊里糊涂好。但是实际上,虽然这是一个可以做的事儿,我们却选择不做非确定性输出。只要算一下账就明白为什么不做是更好的对策。

假如一个结构有两个解读,非确定性输出两个路径(解读),在难以确保后面模块有相当把握和精度消歧的情况下,其实不如从一开始就规定系统只能输出确定性路径,宁愿冒过早剪枝的险。(如果后面的落地方向是支持结构检索,俗称SVO搜索,那又另当别论,因为搜索讲求的是召回,非确定性比确定性的支持更有利。)

人对于二叉歧义(a|b)的理解,不外是三种情况:1. a;2.b;3. a|b:其中,3 是不可解的歧义,即便调动现有的知识,歧义还是存在(如 双关语),是小概率事件,可以忽略。剩下的1和2不是均匀分布的,常见的情况是一种可能比另一种可能要大很多。

这时候,确定性系统在数据驱动的系统开发环境中,就会自然偏向于输出可能性大的路径。数据打磨越久,这种趋向越稳定。如果是不确定性的设计原则指导,就会不断追求召回,干扰了对于最大可能路径的目标追求。一般来说,最终结果自然是不合算的。换句话说,在实践中,不是不可以做到很好的召回和识别出(几乎)所有的歧义,但这个工作肯定会干扰集中精力逼近正确的目标。

自说自话半天,其实是自己给自己的“懒惰”寻找背后的动机,今天算是悟出来的。的确事出有因。很久了,一直觉得应该做也有能力做的这件识别所有歧义的事儿,一直没下决心去做。果然不仅仅是懒惰。既然如此,就有理由继续懒惰下去,好把精力放到更合算和有价值的地方去。

白:合算不合算的思维,不是极客思维。极客没有挡箭牌。

李:一般都是天然地批判 “(过早)剪枝”和确定性数据流,终于找到了这个做法的 “说得过去” 的理由和实际好处。当然前提是把开发看成是一个漫长的数据驱动的打磨迭代过程,今天的看似确定性输出的错误,到明天就纠正了,虽然同样是确定性输出。不确定性是假设在不必迭代的情况下,为后期应用保全潜力。迭代思维把这个后期消歧的假设转换成迭代过程中的前期消歧(譬如一条粗线条规则引起的歧义,在迭代中变成了粗细两组规则,消歧了也就没有非确定性了)。极客不极客,不重要。

白:很多技术可以让剪枝成为伪问题。合理的歧义也许就是前后脚的关系,伪歧义也并非始终寸步难行。允许依序择优梦游,天塌不下来。例如,坛坛罐罐走不齐——各种局部解析非等速前进,就可以把剪枝问题化解于无形。你永远无需做是否剪枝的判断。只要“长芽”被无限期推迟,事实上就相当于剪枝。但是无限期推迟只是一个后果,并不是一个决策。

李:在缺乏厚度或深度 没有足够施展空间的情形下的问题。换了架构 就可以化为伪问题。原来的痛点 逐渐消解了。

白:截流的点可以设置。出一个解析和出N个解析,就是截流阈值的选择而已。所有有语言学意义的判断,都融合在优先级机制里了。截流阈值的选择与语言学无关。

“他就是想利用你,并且在利用完了就杀掉你的敌人。”

“就是”可以带体词性表语,也可以带谓词性表语,造成歧义。“利用”、“敌人”是负面sentiment,“杀掉”可反转sentiment。如果带谓词性表语,从“利用”得知“他”为正面,从“杀掉+敌人”得知“他”为负面。拧巴了。如果带体词性表语,“利用”和“敌人”相谐,“你”和“杀掉”、“敌人”不两立,于是“杀掉”和“敌人”也相谐。这个才是正解。

李:我经常纳闷。白老师冒出来的那些例句是怎么回事。肯定是平时有心,对数据超级敏感,这是数据驱动的角度看例句的收集。数据驱动的有心,本质还是被动的。另一个角度应该是主动的方向性收集+发挥?就是在多种因素中,有意识瞄准冲突最戏剧化的案例。譬如 句法与常识的冲突,惯性与转向/刹车的冲突。

白:嗯,似乎有一种直觉,能筛选出哪条语料对于我来说是不寻常的。

李:中文的【V N1 的 N2】,主要看 V+N1 动宾相谐度与 V+N2 动宾相谐度的力量对比:

“卖火柴的小女孩”
“卖小女孩的火柴”

卖的是东西,不是人。

白:超相谐的填坑>修饰>相谐的填坑>不相谐的修饰>不相谐的填坑

李:这里面貌似有距离因素,修饰距离近 动宾距离远,所以 同等相偕 修饰大于动宾。

白:【笑而不语】

三个境界:1、能单独处理“就是S+(重读)”;2、能单独处理“就是S/2N(轻读)”,其中修饰>填坑;3、能综合处理“就是S+||S/2N”。3又分:“正解+伪歧义”和“真歧义”。境界2中,一度占先的解读推进到某处卡住了,另一个解读后来居上。

“这是卖女孩的小火柴,不卖男孩。”

“卖”的间接宾语坑也来凑热闹了。只要相谐性并无禁止,就可以激活。

李:昨天我想的反例是:“这是卖小女孩的人贩子”。

白:无所谓反例,就是前后脚的事儿。不使用常识(事理),就是歧义。谁比谁先一步都是可能的。这种优先级上的误差,是在容忍范围内的。

【相关】

《一日一析系列》

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

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

《朝华午拾》总目录

《一日一析:“你家的地得扫了”》

parse parse,用 PSG:“你家的地得扫了”

再 parse parse,用 DG:“打倒罪有应得的地主”

李:都是中规中矩的句子,没有难点。

白:分好词再玩这个游戏就看不出热闹了。要看就看怎么分词,分错了怎么找补回来。的地得,都有其他词性标注。在哪里、依据什么原则排除的。

李:不是特地分好词,词典分词的本来面目就是如此啊。不查词典,如何解析呢。到了的地得这种极高频小词,主要靠的也不是词性标注了,就是直接量。用法各个不同,量体裁衣。

李:“一句话用的地得太简单了,毫无挑战”。热闹来了,还真是挑战呢:

“的地得”三元组进词典,当然可以。刚才拼音输入 dedide,还真就出来了“的地得”,可见这个三元组入词典也算是理所当然的。咱们词典不够大而已。

“那就不好玩了”。可如果坚持不走词典化道路,还有啥好招吗?

“做大事不必考虑一城一地的得与失”。

这里的难点不在的地得,是条件紧缩句(NX)费点琢磨: if 做大事 then 不必考虑一城一地的得与失

(if) (you) VP1 (NX:then) (you) VP2

零形式,条件太不清晰。嗯,有点难,有点难。


@王伟DL: 三兄弟若是独立为词的话,可靠句法来分拨;三兄弟若是其中几个掛了某个强力词的一角的话,不太好办,保不准有把高强度词扯开的情况。

白:
白硕SH
3月3日 22:12 独立成词的“地”和“得”都不好伺候。

【相关】

《一日一析系列》

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

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

《朝华午拾》总目录

《语义沙龙:“让机器学习思考的人”》

白:“让机器学习思考的人”

wang:1.让 机器 学习 (思考的人) 2.(让 机器 学习 思考)的 人 3. (让 机器学习 思考)的人

李:你的2是hidden ambiguity,里面其实还有两条hidden路径,“学习”的对象或目标是“思考”,还有一条,“学习-思考” 并列,逻辑上是,“让机器-学习、让机器-思考”。但面对专业术语“机器学习”的紧密性和高频度,那些 hidden ambiguity paths 都被掩埋了 …… 也应该掩埋,除非遇到必须唤醒的时候。

parse parse 看:

这个 therefore 可能是个 bug,语义模块做因果关系过头了,走火入魔了?深度解析其他该有的关系都在 though。

wait a minute,好像也对,说的是,因为 X 促成了 event,X 是因,event 是果。这就是语义模块本来的因果关系逻辑,落在这句就是,thanks to “人”, (therefore)ML thinks now。这符合 “有多少人工 有多少智能,人是一切机器学习的原始发动机” 的因果本质。乍一看有点绕,是因为赶巧这一句不是一个 statement,而是一个定语从句修饰的NP。其结果,这个因果关系虽然不错,但实际上是隐含的因果(hidden causal links)。如果是一个NE,更加容易理解一些“”让机器学习思考的图灵大师“。因为图灵, 所以机器思考。我思故我在,图灵在故机器思。

白:“坛坛罐罐走不齐”正好可以借这个例子现身说法。当“机器学习”和“机器/学习”同时进入parser的视野时, 下一步优先级最高的动作却不长在“机器学习”和任何其他成分之间,而是长在“学习”和“思考”之间。换句话说,非最佳分词方案在这个局部激活了最佳句法方案,梦游了。

“学习S/NX”和“思考S/N”之间,有三种结合途径:一是填坑,二是合并,三是不作为。各自优先级不同。在外部,“让-机器”、“机器-学习”、“思考-的”、“的-人”也同时参与竞争。最后结果是“学习-思考”合并最优先。就是“并列结构”那一个解读。

“学习”和“思考”能不能组成并列结构,这个事情是有不同做法的,可以白名单制,也可以黑名单制。个人主张白名单制。但是无论黑白名单,我都不主张做成同一层内部的细化规则,而主张把细化规则折合成优先级的调整量(增量或减量),统一纳入一个优先机制处理。也就是说,当条件不满足或不那么满足时,你不应该再赖在原来的优先层级不走,你落草的凤凰就是可能不如鸡,不是高高在鸡上面的“亚凤凰”,而是货真价实的“不如鸡”。

但是如果外部没有“鸡”竞争,落草的凤凰也还有机会折桂。就像colorless ideas,虽然被相谐性打了折扣,依然是四顾茫茫无对手。这个时候,机会还是它的。所谓的“句法自治”和“语义的反作用”在这种“坛坛罐罐走不齐”的策略下完美地统一了起来。不是“亚凤凰”跟“真凤凰”比,而是“亚凤凰”跟“🐔”比。鸡厉害,鸡就先走一步,坛坛罐罐于是就走不齐了,体现了包容不确定性的差异化前进。不同的解读不等速推进,可能一本道,也可能此起彼伏,明争暗斗,柳暗花明。

梁:@白硕   赞同!或许不同解读(歧义)在彼此争斗,此消彼长,最后一种解读胜出(消歧)。

李:多种因素综合决定消歧的理解过程,模型的时候 主要有这么几个对策。得出不确定性中间结果 就是带着瓶瓶罐罐往下跑。希望在下跑的某些阶段 条件成熟 可以帮助消歧。这里面又分白老师所谓“走不齐” ,就是说不需要把不确定性结果积聚到最后的消歧模块统一消歧。而是一边下行 一边伺机消歧 使得雪球不是越滚越大。

其实HPSG这类合一文法 就是这么做的,短语结构的任何结合 都是在对自然语言建模的数据结构里面“合一”。一旦任何一点合一失败 那条路就堵死了。句法的约束 语义的约束 还有种种其他的 constraints 全部定义在一个为语言符号建模的名字叫做 sign 的复杂特征结果里面,在同一个平面 同时起约束作用。这与传统句法先建立句法结构关系 然后留到语义模块去过滤减枝的瓶瓶罐罐一路带下去的做法显然不同。但实践证明 合一文法的做法 并未解决伪歧义泛滥成灾的问题 实际上还加剧了这个 PSG 学派所共有的历史难题。原因出在复杂特征结构的设计上。以前论过。

除了完全的非确定性和“走不齐”外,第三种办法就是所谓休眠唤醒。这是确定性路线。原则上不带瓶瓶罐罐跑 坚持确定性的中间结果表示。起码是看上去是确定性结果的数据结构,等待后期唤醒、改正。(这个里面还有很多技巧,譬如可以违背逻辑 利用确定性数据流承载非确定性结果 然后配备一些逻辑清理tricks 来为非逻辑性擦屁股 不好看 但很管用 以后可以细论。)

白:基于合一的消岐,错不在what,而在how,不在带着坛坛罐罐跑,而在“剪枝”。谁说带着坛坛罐罐跑就一定要“剪枝”?难道不可以“生芽”?

李:what?PSG呀,特征结构怎么定义 也还是 PSG,大的框框在那儿,复杂特征结构的做法加重了病情。

白:“生芽”的意思是,过河不拆桥,但也无需一下子搭建所有可能的桥。不达到当前最高优先级的渡口,绝不搭桥,但渡口的优先级是随着建起来的桥而动态变化的。这些达到当前最高优先级的渡口,就是“芽”。

渡口和渡口之间不是绝对互斥、你死我活的。一切按照优先级的指挥棒走,优先级要你保留歧义,你就保留;优先级要你梦游,你就梦游。没有谁绝对醒着,大家都有权睡觉,也都有权梦游。但是必须按优先级排队。

李:动态变化决定优先级和成熟度 对于多层系统是自然而然的事儿。第10层不愿意勉强的事儿 到20层的时候就很坦然了。同样一个句型规则 可以化成宽窄不同的变体 部署在多层。以前做模块是根据功能做,说是这是 NP,这是 PP,这是VP,这是 Clause。这样表面上清晰,实际上应对不同歧义及其出现的不同情势的能力,降低了。没有多少真正的理据必须把同一种功能放在一起做。这样做的问题是,如果遇到相互依赖的现象,就真没辙了。根据功能做模块,模块排队,这样的pipeline无法应对相互依赖。这是多层经常遭遇的经典批判。无解,还是回到单层吧。

但是,如果同一个功能,可以散开来,譬如VP中的动宾关系,做它一二十层,相互依赖的现象就逐渐消解了。大不了就是冗余。没有冗余,怎么能滴水不漏?

wang:顺便一提,@wei 我对你的海量规则对系统的comment,回复一下写得有点多,发微博上了。

李:很好,拷贝留存如下

昨晚在一个群里就李老师说的内容提了一些问题,今天看到李老师详细回复,本想简单写写再发回群里,写完一看,这篇幅好像不适合放微信群里了,不如单发微博作为回复。李老师若觉不妥,告知我则立删。

@wei 中午看到李老师的后续回应, 现在正好有空这里回复一下。

看了李老师的后续内容,很是详细,而且前前后后已经考虑到很多方面,说明早有备货。大体勾勒一下:虽规则总量数万条,但通过分层(分组),就可以每组千条左右,规则之间的博弈也就在一个组内范围,即便组内的内斗激烈也不会引发组外的群组混战,这的确是“局部战役隔离解决”的最经济策略。另外,既然已经见识了规则系统的越大越不好对付的教训,想必肯定是避开了这个陷阱。一个组内至少再采用了共性+个性的两种及以上分支处理,先个性(词典)规则先前拦截,然后再共性来兜底,这样以来,一个组内可能内斗的程度又减轻不少,从走向来看,基本上是走大词典+小语法的组合路线,词典虽大但有索引方式来保速。如此以来,就把庞大的规则库,通过条块分割,把规则有序执行限制在了一个狭小的隔离河内,维护者在这样一个窄河里“捉鱼”确实容易得多。当然还有若干辅助策略,通过控局堵漏来进行加固。当然也看到“我是县长派来的”和“我是县长蹲点来的”有了不同的解析。这肯定不是一个简单“V”解决的,想必一定是词典策略起了作用。这词当然有丰富的语义信息了,我认为采用合适的语义范畴比词会有更好的覆盖性,尽管采用词准确性更高。

下面说下感受,必须承认之前本人还停留在规则系统教训的层面,另外,就是顾虑要扯入的人工工作量大的问题。若是李老师通过这样的俯瞰语言,化繁为简,调整规则能达到信手拈来,那么在机器学习满天飞的当下,这存量稀少的规则派之花,自有它的春天。如今是个多元的世界,允许各路英雄竞技,只要有独到之处,更何况人工智能皇冠上明珠,尚无人触及,怎下定论都是早。也曾闻工业界很多可靠的规则系统在默默运行,而学术界则只为提高小小百分点而狂堆系统,专挑好的蛋糕数据大把喂上,哪管产业是否能现实中落地。当然对于人工规则系统 VS 机器学习系统,能有怎样的结局,我确实没有定论,要么一方好的东西自然会好的走下去,要么两方都走得不错而难分输赢,或者发现只有结伴相携更能走远,那谁还能拦着么!

百花齐放,百家争鸣,各自在自己的路上,走出自己的精彩就好!世界本身就不是一种颜色,也不是一直就一种颜色

李:很赞。工作量大是所有专家编码、程序员编程的短板,自不必说。在一个好的机制平台架构下,规则应该可以非常容易编写和调试。规则应该看上去简单、透明,而不是需要玩精巧。像集成电路一样,能力不是每个单元的精巧,而是大量单元的组织集成。其实,半个世纪的持续探索,这种类似人海战术的规则海量快速编码迭代的路子是有了端倪了。说到底是数据制导,可以半自动进行,这与机器学习的海量数据训练,理据是相同的。昨天说自然语言是猫矢,应该学猫咪目标导向,反复迭代,不在一时一地的得失,不怕冗余,也不怕零星的中间错误。说的就是要创造一个环境,把小作坊的专家编码,变成可以工业化的规则流水线。以规则量取胜,而不是靠专家的精雕细刻。这条半自动的海量规则路线还在探索之中,但是前景已经相当清晰。

最后,符号规则不必争雄,游兵散勇也无法与正规军打遭遇战,但差异化总是优势与短板并存。寸有所长就是这个意思。大家在同一条路上跑,遇到困境与天花板都是类似的。这时候有人在另一条路上,保不准在最痛的某个部分,突然会有突破。原因无他,因为这力气使得角度不同,世界观不同,设计哲学不同。

据说,NLU是AI皇冠上的明珠,是珠穆朗玛峰。老友周明一直在为NLP鼓与呼,认定今后10年是NLP的黄金10年。AI似乎每天都在翻新,每周都有新闻,每月都有突破,浪头一个赶一个,新的算法、突破的model层出不穷,很多人惊呼“奇点”就要来临。为什么周老师还要提10年,对于AI进步主义者,这听上去简直是宇宙尺度了。为什么?无他,皇冠自有皇冠的难处,登顶珠峰绝非儿戏。唯此,有什么招使什么招吧,武器库还嫌武器多吗?

【相关】

《一日一析系列》

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

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

《朝华午拾》总目录