李:我觉得,神经的要害在数据瓶颈与定点纠错盲区,而不是非符号化或可解释性。
这几天在琢磨可解释性的问题。可解释性与性能是两码事,道理上,产品讲的是性能,可解释性最多算是客户友好,让人感觉舒服一点而已。(可解释性的基础是与用户共享的符号系统。不共享的符号也不具有可解释性。这就好比我买了个吸尘器,你给了我一份我不认识的外语说明书。或者接待我的客服以为我是日本人,叽里呱啦跟我说了一通,没带机器翻译的话,虽然也是符号系统,对我是完全不具有可解释性。)
好,回到NLP。
我们追求NLP系统的可解释性,好像是说,程序做什么、怎么做的,算法背后的那条逻辑线索,你需要让我明白,否则我不舒服。这实际上有点强“机”所难。说老实话,就是设计者本人,如果系统变得复杂了,也很难总是搞明白算法的每一个逻辑线条,更遑论对用户解释了。如果容易搞明白,也就没有 debug 的繁难了。
严:可解释性,是指从输入到输出的推理路径可显示,而不是算法自身。
李:输出是输入的函数。可以脱离算法来解释吗?路径不是算法的产物或表现?
感觉粗线条的可解释性 目的是为用户友好。细线条的可解释性不可行 也没意义 很像一个伪问题。
特斯拉为了这种用户友好 不得不花力气在屏幕上显示机器 “看” 到了什么物件。用户见到机器看见了障碍物,障碍物渲染的图片越逼真,心里就觉得越心安。如果机器没看见,屏幕上没有那个障碍物,就不放心。但是从看到环境中用户聚焦的物件到驾驶决策,路径很长也非确定性,可是人的这种心理需求不能不照顾。
我的主要意思是说,应该把开发重点放在“用户友好”范畴下的可解释性上,而不是一味追求过程的透明性。
接着“神经网络短板”的话题讲,迄今为止,神经网络基本上不能落地领域,在NLP领域场景无所作为,这是基本事实。原因也很清晰,就是绝大多数领域场景应用,只有 raw corpus,缺乏或根本就没有大规模带标数据。神经网络无法做无米之炊。于是给符号路线的冷启动应对留下了空间。
白:不能落地是因为没有带路党,而带路党很可能切走很大一块蛋糕。
李:冷启动就是一种带路党。
白:带路党不需要懂符号,只需要懂客户。带路党可以把数据补完全。
李:神经网络主流认知把带路党简单定义为标注,然后就撒手不管了,大不了就是砸银子 找成百上千的标注大军去标注。我可以对任何领域一窍不通 也一样做领域的应用。这个策略对于可以简单明确定义任务又有资源标注的场景,的确是普适的。
梁:数据只是说“有”,没有说“无”,that's the problem
李:这也是那位挑战神经网络的老教授的口头禅。来自数据的知识不全,完成不了认知理解过程。
白:没有的数据你怎么标注?
李:说的是NLP,没有数据就没有NL对象了,哪里有 P 的问题。
白:带路党可以让数据从无到有,所以,挑战毫无意义。带路党牛就牛在他们是活的数据,我觉得老教授在用一种外行的方式挑战内行。
李:老教授对机器学习很了解,不是外行。传统机器学习肯定做过很多,大概没亲手做神经网络研究,但总是拿别人的神经系统“玩耍”。他不是看不懂神经奥秘,而是认知定位决定了他的批判角度。想起来毛说的知识越多越反动。老教授涉猎太广,知识太多,反而牵累了他。
白:王朔书里的小混混在街上喊“谁敢惹我?”一个人高马大的主儿过来说:“我敢惹你。”混混马上搂着人高马大的主儿说:“那TM谁敢惹咱俩?” 我觉得,老教授应该向小混混学习,混成“咱俩”之一。否则啥也不是。
李:有时候做一个事儿,少一点知识也许更加有利,无“知”一身轻。现如今做NLP的后学,连语言学基本教程也不看的,为多数。今天的气候,这显然不影响成为NLP专家。今天是NLP专家,一转身就是图像专家,再转身就是华尔街金融模型专家。神经网络横扫专家的架势。
白:这是落地之前,落地时不是酱紫滴。落地时有太多不适应,当然跟缺数据有关,跟缺知识不直接有关。知识不能直接变成缺失的数据,知识处理的工具也无法拿来处理大模型已经消化了的数据。
李:话说回来,缺乏专业知识也不是长久之计。前面提过的那个NLP后学 傻傻地问 it 为什么跟形容词 wide 那么强相关,就是因为缺少语言学的常识。词与词相谐是普遍的,绕一个弯就糊涂了,不是语感差,而是基本专业知识不够。
白:长久之计就是语言学知识和带路党深度结合,不着痕迹地把语言学知识灌注在带路党的工作环境之中。
梁:其实,我们能够交流,我们共现于同一个时代,那就是我们已经共享很多知识了。
李:这也是老教授立论的基础,共享的知识是理解和认知的外在前提,不是数据里面的东西,因此光靠数据是不行的。
还有个有意思的发现,密集听了一批最新神经网络的讲座,发现用的最多的几个词是 meaning / information,这就是共同语言了。句子来了,embedding 转成 vectors,vectors 在里面做种种变换计算,就成为 meaning (的载体)了。从 information 的流向和处理角度来看,vectors 对于 information 的各种处理空间大,灵活度高,里面可以有足够的余地尝试各种信息叠加、抵消、门槛等等操作来验证效果。
相比下来,符号基本上是 1-hot coding 的表示,处理 info 就远远不如 vector 的高效和灵活。Not even close,实际是天壤之别。符号主要的好处就是用户友好,看着似乎容易懂,“感觉”比较容易掌控。另外一个好处就是,符号可以外加一个 hierarchy或图谱,进行透明的“过家家”一般的逻辑推理。
白:符号带优先级不就行了?
李:优先级如果是离散的少数参数的调控,也不好敌大数据落地训练出来的种种 weights。
白:符号外挂啊,瓤还是神经。
information一万个人有十万个定义,躲着走为妙。
李:还好啊,反正有个信息论的精确定义做底,信息也是现代物理的基本对象。虽然讲的时候不一定按照数学定义来,但多数人觉得自己的定义离开它不远。
白:用到语义的时候,怎么着都不对味儿。
李:在讯飞的时候,与同事大牛讨论过,我说你的神经网络是个黑盒子,同事说,我觉得一点也不黑。现在比较理解他了。你可以说具体的参数和权重 难以从细节上一一说明白含义,但是总体上的逻辑线条对于设计者是相当透明的。很多时候 学到的巨大的向量表示看上去难以理解 只要结果对了 就不去究竟了。但是真要做一些用户友好的符号化翻译或可视化努力,可解释性是可以不同程度显示出来的。这些都是聪明绝顶的人,模型绝不是瞎撞出来的黑盒子。所以 可解释性作为一个批判要点,更多是从用户友好层面来说 说他们做得不够 还有些道理,而作为对神经系统的总体批判 有失公允。
与其批判机器学习“欠缺可解释性”,不如批判“难以定点纠错”,后者对于大型工程的确是个痛点。
白:外挂可以解决定点纠错问题。批判它干啥,你带路党悄悄把外挂做了,啥都有了。
李:例如,我用自动驾驶每次在相同的几个地点 总是犯错 莫名其妙刹车,我没有办法让特斯拉去做定点纠错,你就是把这个问题录频了 n 次反复提交上去,然后每两周一次软件更新,你盼啊盼,多数时候你的 bug 是泥牛入海,永无改期。这也不能怪特斯拉,它只能收集规律性问题,然后扩大训练,希望下一个 release 整体好一些。客户个体的痛点他不仅是没时间照应,而且也没有有效的办法去定点改正。