【语义计算沙龙:从“10年中学文化课”切词谈系统设计】

我:
毛老啊,1966-1976 10年文革,是我十年的中小学,我容易吗?10年中学文化课的时间不到一半,其余是学工学农学军。学赤脚医生 学开手扶拖拉机。
为什么是 【十年中】【学文化课】不是 【十年中学】【文化课】?

Guo:
@wei 单就这句,确实两可。但你后面有这么多的”学”……
至少对这个例子,统计,”深度神经”RNN之类还是有merit的。当然,这两种解析其实也没本质的区别。不必多费心思。

我:
怎讲?因为“学”频率高 所以“中学”成词就不便?统计模型在这个case怎么工作显示merit呢?愿闻其详。
大数据说 有五年中学 有六年中学,极少见十年中学,反映的是中学学制的常识。但是这个知识不是很强大,很难作数,因为这不是 positive evidence。如果句子在 “六年中学” 发生边界纠纷的时候 得到来自大数据的直接支持,那是正面的 evidence,力量就很强。负面证据不顶事儿,因为它面对的是 【非六】(或【非五】)的大海,理论上无边无沿,那点儿证据早被淹没了。

Guo:
统计分long term / global vs short term / local.

你讲的”大数据”,其实是在讲前者。

现在热的”深度神经”,有些是有意无意地多考虑些后者。例如,深度神经”皇冠上的明珠”LSTM即是Long Short Term Memory。虽非显式地求取利用”即时统计”,那层意思还是感觉的到的。

我:
@Guo 恩。这个 local 和 global 之间的关系很tricky
0821e

这个貌似歪打正着的parse应该纯粹是狗屎运,不理论。

白:
N+N的得分本来就低 有状语有动词的更加“典型” N+N是实在没招了只能借助构词法解决零碎的产物 有状语有动词时谁还理N+N。不管几年中学,也抗衡不了这个结构要素。就是说,同样是使用规则,有些规则上得厅堂,有些规则只能下得厨房。如果没有上得厅堂的规则可用,随你下厨房怎么折腾。但是如果有上得厅堂的规则可用,谁也不去下厨房。

我:
这里不仅仅是 N+N 的问题,在绝大多数切词模块中,还没走到N+N这一步,因此这个问题实际上可能挑战不少现存的切词程序:十年/中学/文化课 or 十年中/学/文化课 ?
有一个常用的切词 heuristic 要求偏向于音节数均匀的路径 显然前者比后者均匀多了。

白:
句法上谈多层,也是“狗/咬吕洞宾”, 不是“狗咬/吕洞宾”

我:
真正的反例是交叉型的。
句法怎么谈层次 其实无关 因为多层的切词不过是一个技术策略,(通常)本身并不参与 parsing,最终的结果是 狗/咬/吕洞宾 就行了。其实 即便论句法 SVO 层次 在汉语中还是颇有争论的 不像西方语言里面 V+NP 的证据那么充分。

白:
这有点循环论证了

我:
目前的接口是这样的 多数系统的接口是。切词的结果并不存在层次,虽然切词内部可以也应该使用层次。肯定有研究型系统不采用这样的接口,但实用系统中的多数似乎就是这样简单。

白:
都保留也没啥,交给句法处理好了,谁说一定要分出个唯一结果再交上去,很多系统接受词图而不是词流了。对于神经网络这种天然接受不确定性的formalism而言,接受词图并不比接受词流多什么负担。

我:
数据结构多了维度,对于传统系统,涉及面蛮大的。词不仅仅是词,词本身不是一个简单的 object。以前的系统词流就是string 或最多是 token+POS list 对那样简单的结构增加维度还好。

白:
词和短语一样可以给位置加锁解锁 竞争位置的锁

我:
不错,词是一切潜在结构的发源地,蕴藏了很大潜能,甚至在设计中,应该让词典可以内建结构,与parsing机制一体化。这种设计思想下的词 增加维度 就是带着镣铐跳舞 不是容易处置好的。nondeterministic 是一个动听但不太好使的策略。否则理论上无需任何休眠与唤醒。

白:
可以参数化,连续过渡。处理得好,管子就粗些。处理不好,管子就细些。极端就回到一条线。一个位置允许几个词竞争锁,可以参数化。超出管子容量的,再做休眠唤醒。

我:
多层系统下的 nondeterministic 结构,就好比潘多拉的盒子。放鬼容易降鬼难,层次越多越是这样。也许机器学习那边不怕,反正不是人在降服鬼。

白:
其实一个词多个POS,或者多个subcat,机制是一样的。不仅有组合增加的一面,也有限制增加的一面。不用人降服鬼,鬼自己就打起来,打不赢没脸见人。只要制定好“见人”的标准,其他就交给鬼。

我:
这就是毛主席的路线 叫天下大乱达到天下大治。文革大乱10年国民经济临近崩溃的边缘,但没有像60年那样彻底崩盘,除了狗屎运,还因为有一个绝对权威在。这个权威冷酷无情 翻脸不认人。今天红上了天的红卫兵造反派 明天就下牢狱。

白:
鬼打架也是有秩序的,不是大乱,是分布式表示。

我:
这样的系统大多难以调试 等到见人了 结果已定局 好坏都是它了 斯大林说 胜利者是不受指责的。

白:
局部作用,高度自治

我:
鬼虽然是按照人制定的规则打架。具体细节却难以追踪 因此也难以改正。当然 这个毛病也不是现在才有的 是一切黑箱子策略的通病。

白:
不是黑箱子,是基于规则、分布式表示、局部自治。打架的任何细节语言学上都可解释。理论上,如果词典确定,所有交集型分词歧义就已经确定,是词流还是词图,只是一个编码问题。如果再加上管子粗细的限制,编码也是高度可控的。

我:
刁德一说 这茶喝到这儿才有了滋味。看好白老师及其design

白:
“10年”说的究竟是时长(duration)为10年的时间段,还是2010年这一年的简称,也是需要甄别的。

 

【相关】

 

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

《朝华午拾》总目录

The mainstream sentiment approach simply breaks in front of social media

I have articulated this point in various previous posts or blogs before, but the world is so dominated by the mainstream that it does not seem to carry.  So let me make it simple to be understood:

The sentiment classification approach based on bag of words (BOW) model, so far the dominant approach in the mainstream for sentiment analysis, simply breaks in front of social media.  The major reason is simple: the social media posts are full of short messages which do not have the “keyword density” required by a classifier to make the proper sentiment decision.   Larger training sets cannot help this fundamental defect of the methodology.  The precision ceiling for this line of work in real-life social media is found to be 60%, far behind the widely acknowledged precision minimum 80% for a usable extraction system.  Trusting a machine learning classifier to perform social media sentiment mining is not much better than flipping a coin.

So let us get straight.  From now on, whoever claims the use of machine learning for social media mining of public opinions and sentiments is likely to be a trap (unless it is verified to have involved parsing of linguistic structures or patterns, which so far has never been heard of in practical systems based on machine learning).  Fancy visualizations may make the results of the mainstream approach look real and attractive but they are just not trustable at all.

Related Posts:

Why deep parsing rules instead of deep learning model for sentiment analysis?
Pros and Cons of Two Approaches: Machine Learning and Grammar Engineering
Coarse-grained vs. fine-grained sentiment analysis
一切声称用机器学习做社会媒体舆情挖掘的系统,都值得怀疑
【立委科普:基于关键词的舆情分类系统面临挑战】

Why deep parsing rules instead of deep learning model for sentiment analysis?

aaa

(1)    Learning does not work in short messages as short messages do not have enough data points (or keyword density) to support the statistical model trained by machine learning.  Social media is dominated by short messages.

(2)    With long messages, learning can do a fairly good job in coarse-grained sentiment classification of thumbs-up and thumbs-down, but it is not good at decoding the fine-grained sentiment analysis to answer why people like or dislike a topic or brand.  Such fine-grained insights are much more actionable and valuable than the simple classification of thumbs-up and thumbs-down.

We have experimented with and compared  both approaches to validate the above conclusions.  That is why we use deep parsing rules instead of a deep learning model to reach the industry-leading data quality we have for sentiment analysis.

We do use deep learning for other tasks such as logo and image processing.  But for sentiment analysis and information extraction from text, especially in processing social media, the deep parsing approach is a clear leader in data quality.

 

【Related】

The mainstream sentiment approach simply breaks in front of social media

Coarse-grained vs. fine-grained sentiment analysis

Deep parsing is the key to natural language understanding 

Automated survey based on social media

Overview of Natural Language Processing

Dr. Wei Li’s English Blog on NLP

 

S. Bai: Natural Language Caterpillar Breaks through Chomsky’s Castle

masterminds-it-quiz-10-728

Translator’s note:

This article written in Chinese by Prof. S. Bai is a wonderful piece of writing worthy of recommendation for all natural language scholars.  Prof. Bai’s critical study of Chomsky’s formal language theory with regards to natural language has reached a depth never seen before ever since Chomsky’s revolution in 50’s last century.  For decades with so many papers published by so many scholars who have studied Chomsky, this novel “caterpillar” theory still stands out and strikes me as an insight that offers a much clearer and deeper explanation for how natural language should be modeled in formalism, based on my decades of natural language parsing study and practice (in our practice, I call the caterpillar FSA++, an extension of regular grammar formalism adequate for multi-level natural language deep parsing).  For example, so many people have been trapped in Chomsky’s recursion theory and made endless futile efforts to attempt a linear or near-linear algorithm to handle the so-called recursive nature of natural language which is practically non-existent (see Chomsky’s Negative Impact).  There used to be heated debates  in computational linguistics on whether natural language is context-free or context-sensitive, or mildly sensitive as some scholars call it.  Such debates mechanically apply Chomsky’s formal language hierarchy to natural languages, trapped in metaphysical academic controversies, far from language facts and data.  In contrast, Prof. Bai’s original “caterpillar” theory presents a novel picture that provides insights in uncovering the true nature of natural languages.

S. Bai: Natural Language Caterpillar Breaks through Chomsky’s Castle

Tags: Chomsky Hierarchy, computational linguistics, Natural Language Processing, linear speed

This is a technology-savvy article, not to be fooled by the title seemingly about a bug story in some VIP’s castle.  If you are neither an NLP professional nor an NLP fan, you can stop here and do not need to continue the journey with me on this topic.

Chomsky’s Castle refers to the famous Chomsky Hierarchy in his formal language theory, built by the father of contemporary linguistics Noam Chomsky more than half a century ago.  According to this theory, the language castle is built with four enclosing walls.  The outmost wall is named Type-0, also called Phrase Structure Grammar, corresponding to a Turing machine.  The second wall is Type-1, or Context-sensitive Grammar (CSG), corresponding to a parsing device called linear bounded automaton  with time complexity known to be NP-complete.  The third wall is Type-2, or Context-free Grammar (CFG), corresponding to a  pushdown automaton, with a time complexity that is polynomial, somewhere between square and cubic in the size of the input sentence for the best asymptotic order measured in the worst case scenario.  The innermost wall is Type-3, or Regular Grammar, corresponding to deterministic finite state automata, with a linear time complexity.  The sketch of the 4-wall Chomsky Castle is illustrated below.

This castle of Chomsky has impacted generations of scholars, mainly along two lines.  The first line of impact can be called “the outward fear syndrome”.  Because the time complexity for the second wall (CSG) is NP-complete, anywhere therein and beyond becomes a Forbidden City before NP=P can be proved.  Thus, the pressure for parsing natural languages has to be all confined to within the third wall (CFG).  Everyone knows the natural language involves some context sensitivity,  but the computing device cannot hold it to be tractable once it is beyond the third wall of CFG.  So it has to be left out.

The second line of impact is called “the inward perfection syndrome”.  Following the initial success of using Type 2 grammar (CFG) comes a severe abuse of recursion.  When the number of recursive layers increases slightly, the acceptability of a sentence soon approximates to almost 0.  For example, “The person that hit Peter is John” looks fine,  but it starts sounding weird to hear “The person that hit Peter that met Tom is John”.  It becomes gibberish with sentences like “The person that hit Peter that met Tom that married Mary is John”.  In fact, the majority resources spent with regards to the parsing efficiency are associated with such abuse of recursion in coping with gibberish-like sentences, rarely seen in real life language.  For natural language processing to be practical,  pursuing the linear speed cannot be over emphasized.  If we reflect on the efficiency of the human language understanding process, the conclusion is certainly about the “linear speed” in accordance with the length of the speech input.  In fact, the abuse of recursion is most likely triggered by the “inward perfection syndrome”, for which we intend to cover every inch of the land within the third wall of CFG, even if it is an area piled up by gibberish or garbage.

In a sense, it can be said that one reason for the statistical approach to take over the rule-based approach for such a long time in the academia of natural language processing is just the combination effect of these two syndromes.  To overcome the effects of these syndromes, many researchers have made all kinds of efforts, to be reviewed below one by one.

Along the line of the outward fear syndrome, evidence against the context-freeness has been found in some constructions in Swiss-German.  Chinese has similar examples in expressing respective correspondence of conjoined items and their descriptions.  For example,   “张三、李四、王五的年龄分别是25岁、32岁、27岁,出生地分别是武汉、成都、苏州” (Zhang San, Li Si, Wang Wu’s age is respectively 25, 32, and 27, they were born respectively in Wuhan, Chengdu, Suzhou” ).  Here, the three named entities constitute a list of nouns.  The number of the conjoined list of entities cannot be predetermined, but although the respective descriptors about this list of nouns also vary in length, the key condition is that they need to correspond to the antecedent list of nouns one by one.  This respective correspondence is something beyond the expression power of the context-free formalism.  It needs to get out of the third wall.

As for overcoming “the inward perfection syndrome”, the pursuit of “linear speed” in the field of NLP has never stopped.  It ranges from allowing for the look-ahead mechanism in LR (k) grammar, to the cascaded finite state automata, to the probabilistic CFG parsers which are trained on a large treebank and eventually converted to an Ngram (n=>5) model.  It should also include RNN/LSTM for its unique pursuit for deep parsing from the statistical school.  All these efforts are striving for defining a subclass in Type-2 CFG that reaches linear speed efficiency yet still with adequate linguistic power.  In fact, all parsers that have survived after fighting the statistical methods are to some degree a result of overcoming “the inward perfection syndrome”, with certain success in linear speed pursuit while respecting linguistic principles.  The resulting restricted subclass, compared to the area within the original third wall CFG, is a greatly “squashed” land.

If we agree that everything in parsing should be based on real life natural language as the starting point and the ultimate landing point, it should be easy to see that the outward limited breakthrough and the inward massive compression should be the two sides of a coin.  We want to strive for a formalism that balances both sides.  In other words, our ideal natural language parsing formalism should look like a linguistic “caterpillar” breaking through the Chomsky walls in his castle, illustrated below:

It seems to me that such a “caterpillar” may have already been found by someone.  It will not take too long before we can confirm it.
Original article in Chinese from 《穿越乔家大院寻找“毛毛虫”
Translated by Dr. Wei Li

 

 

【Related】

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

【立委按】

白硕老师这篇文章值得所有自然语言学者研读和反思。击节叹服,拍案叫绝,是初读此文的真切感受。白老师对乔姆斯基形式语言理论用于自然语言所造成的误导,给出了迄今所见最有深度的犀利解析,而且写得深入浅出,形象生动,妙趣横生。这么多年,这么多学者,怎么就达不到这样的深度呢?一个乔姆斯基的递归陷阱不知道栽进去多少人,造成多少人在 “不是人话” 的现象上做无用功,绕了无数弯路。学界曾有多篇长篇大论,机械地套用乔氏层级体系,在自然语言是 context-free 还是 context-sensitive 的框框里争论不休,也有折衷的说法,诸如自然语言是 mildly sensitive,这些形而上的学究式争论,大多雾里看花,隔靴搔痒,不得要领,离语言事实甚远。白老师独创的 “毛毛虫” 论,形象地打破了这些条条框框。

白老师自己的总结是:‘如果认同“一切以真实的自然语言为出发点和最终落脚点”的理念,那就应该承认:向外有限突破,向内大举压缩,应该是一枚硬币的两面。’ 此乃金玉良言,掷地有声。

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

看标题,您八成以为这篇文章讲的是山西的乔家大院的事儿了吧?不是。这是一篇烧脑的技术贴。如果您既不是NLP专业人士也不是NLP爱好者,就不用往下看了。

咱说的这乔家大院,是当代语言学祖师爷乔姆斯基老爷子画下来的形式语言类型谱系划分格局。最外边一圈围墙,是0型文法,又叫短语结构文法,其对应的分析处理机制和图灵机等价,亦即图灵可计算的;第二圈围墙,是1型文法,又叫上下文相关文法,其对应的分析处理机制,时间复杂度是NP完全的;第三圈围墙,是2型文法,又叫上下文无关文法,其对应的分析处理机制,时间复杂度是多项式的,最坏情况下的最好渐进阶在输入句子长度的平方和立方之间;最里边一层围墙,是3型文法,又叫正则文法,其对应的分析处理机制和确定性有限状态自动机等价,时间复杂度是线性的。这一圈套一圈的,归纳整理下来,如下图所示:

乔老爷子建的这座大院,影响了几代人。影响包括这样两个方面:

第一个方面,我们可以称之为“外向恐惧情结”。因为第二圈的判定处理机制,时间复杂度是NP完全的,于是在NP=P还没有证明出来之前,第二圈之外似乎是禁区,没等碰到已经被宣判了死刑。这样,对自然语言的描述压力,全都集中到了第三圈围墙里面,也就是上下文无关文法。大家心知肚明自然语言具有上下文相关性,想要红杏出墙,但是因为出了围墙计算上就hold不住,也只好打消此念。0院点灯……1院点灯……大红灯笼高高挂,红灯停,闲人免出。

第二个方面,我们可以称之为“内向求全情结”。2型文法大行其道,取得了局部成功,也带来了一个坏风气,就是递归的滥用。当递归层数稍微加大,人类对于某些句式的可接受性就快速衰减至几近为0。比如,“我是县长派来的”没问题,“我是县长派来的派来的”就有点别扭,“我是县长派来的派来的派来的”就不太像人话了。而影响分析判定效率的绝大多数资源投入,都花在了应对这类“不像人话”的递归滥用上了。自然语言处理要想取得实用效果,处理的“线速”是硬道理。反思一下,我们人类的语言理解过程,也肯定是在“线速”范围之内。递归的滥用,起源于“向内求全情结”,也就是一心想覆盖第三圈围墙里面最犄角旮旯的区域,哪怕那是一个由“不像人话”的实例堆积起来的垃圾堆。

可以说,在自然语言处理领域,统计方法之所以在很长时间内压倒规则方法,在一定程度上,就是向外恐惧情结与向内求全情结叠加造成的。NLP领域内也有很多的仁人志士为打破这两个情结做了各种各样的努力。

先说向外恐惧情结。早就有人指出,瑞士高地德语里面有不能用上下文无关文法描述的语言现象。其实,在涉及到“分别”的表述时,汉语也同样。比如:“张三、李四、王五的年龄分别是25岁、32岁、27岁,出生地分别是武汉、成都、苏州。”这里“张三、李四、王五”构成一个名词列表,对这类列表的一般性句法表述,肯定是不定长的,但后面的两个“分别”携带的列表,虽然也是不定长的,但却需要跟前面这个列表的长度相等。这个相等的条件,上下文无关文法不能表达,必须走出第三圈围墙。

再说向内求全情结。追求“线速”的努力,在NLP领域一直没有停止过。从允许预读机制的LR(k)文法,到有限自动机堆叠,再到基于大型树库训练出来的、最终转化为Ngram模型(N=5甚至更大)的概率上下文无关文法分析器,甚至可以算上统计阵营里孤军深入自然语言深层处理的RNN/LSTM等等,都试图从2型文法中划出一个既有足够的语言学意义、又能达到线速处理效率的子类。可以说,凡是在与统计方法的搏杀中还能活下来的分析器,无一不是在某种程度上摆脱了向内求全情结、在基本尊重语言学规律基础上尽可能追求线速的努力达到相对成功的结果。这个经过限制的子类,比起第三圈围墙来,是大大地“压扁”了的。

如果认同“一切以真实的自然语言为出发点和最终落脚点”的理念,那就应该承认:向外有限突破,向内大举压缩,应该是一枚硬币的两面。我们希望,能够有一种形式化机制同时兼顾这两面。也就是说,我们理想中的自然语言句法的形式化描述机制,应该像一条穿越乔家大院的“毛毛虫”,如下图所示:

据笔者妄加猜测,这样的“毛毛虫”,可能有人已经找到,过一段时间自然会见分晓。

from http://blog.sina.com.cn/s/blog_729574a00102wf63.html

 

【相关】

【新智元:parsing 在希望的田野上】 

【新智元:理论家的围墙和工程师的私货】

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

【泥沙龙笔记:NLP 专门语言是规则系统的斧头】

乔姆斯基批判

泥沙龙笔记:再聊乔老爷的递归陷阱

泥沙龙笔记:骨灰级砖家一席谈,真伪结构歧义的对策(2/2) 

《自然语言是递归的么?》

语言创造简史

【置顶:立委博客NLP博文一览(定期更新版)】

 

On Hand-crafted Myth of Knowledge Bottleneck

In my article “Pride and Prejudice of Main Stream“, the first myth listed as top 10 misconceptions in NLP is as follows:

[Hand-crafted Myth]  Rule-based system faces a knowledge bottleneck of hand-crafted development while a machine learning system involves automatic training (implying no knowledge bottleneck).

While there are numerous misconceptions on the old school of rule systems , this hand-crafted myth can be regarded as the source of all.  Just take a review of NLP papers, no matter what are the language phenomena being discussed, it’s almost cliche to cite a couple of old school work to demonstrate superiority of machine learning algorithms, and the reason for the attack only needs one sentence, to the effect that the hand-crafted rules lead to a system “difficult to develop” (or “difficult to scale up”, “with low efficiency”, “lacking robustness”, etc.), or simply rejecting it like this, “literature [1], [2] and [3] have tried to handle the problem in different aspects, but these systems are all hand-crafted”.  Once labeled with hand-crafting, one does not even need to discuss the effect and quality.  Hand-craft becomes the rule system’s “original sin”, the linguists crafting rules, therefore, become the community’s second-class citizens bearing the sin.

So what is wrong with hand-crafting or coding linguistic rules for computer processing of languages?  NLP development is software engineering.  From software engineering perspective, hand-crafting is programming while machine learning belongs to automatic programming.  Unless we assume that natural language is a special object whose processing can all be handled by systems automatically programmed or learned by machine learning algorithms, it does not make sense to reject or belittle the practice of coding linguistic rules for developing an NLP system.

For consumer products and arts, hand-craft is definitely a positive word: it represents quality or uniqueness and high value, a legit reason for good price. Why does it become a derogatory term in NLP?  The root cause is that in the field of NLP,  almost like some collective hypnosis hit in the community, people are intentionally or unintentionally lead to believe that machine learning is the only correct choice.  In other words, by criticizing, rejecting or disregarding hand-crafted rule systems, the underlying assumption is that machine learning is a panacea, universal and effective, always a preferred approach over the other school.

The fact of life is, in the face of the complexity of natural language, machine learning from data so far only surfaces the tip of an iceberg of the language monster (called low-hanging fruit by Church in K. Church: A Pendulum Swung Too Far), far from reaching the goal of a complete solution to language understanding and applications.  There is no basis to support that machine learning alone can solve all language problems, nor is there any evidence that machine learning necessarily leads to better quality than coding rules by domain specialists (e.g. computational grammarians).  Depending on the nature and depth of the NLP tasks, hand-crafted systems actually have more chances of performing better than machine learning, at least for non-trivial and deep level NLP tasks such as parsing, sentiment analysis and information extraction (we have tried and compared both approaches).  In fact, the only major reason why they are still there, having survived all the rejections from mainstream and still playing a role in industrial practical applications, is the superior data quality, for otherwise they cannot have been justified for industrial investments at all.

the “forgotten” school:  why is it still there? what does it have to offer? The key is the excellent data quality as advantage of a hand-crafted system, not only for precision, but high recall is achievable as well.
quote from On Recall of Grammar Engineering Systems

In the real world, NLP is applied research which eventually must land on the engineering of language applications where the results and quality are evaluated.  As an industry, software engineering has attracted many ingenious coding masters, each and every one of them gets recognized for their coding skills, including algorithm design and implementation expertise, which are hand-crafting by nature.   Have we ever heard of a star engineer gets criticized for his (manual) programming?  With NLP application also as part of software engineering, why should computational linguists coding linguistic rules receive so much criticism while engineers coding other applications get recognized for their hard work?  Is it because the NLP application is simpler than other applications?  On the contrary, many applications of natural language are more complex and difficult than other types of applications (e.g. graphics software, or word processing apps).  The likely reason to explain the different treatment between a general purpose programmer and a linguist knowledge engineer is that the big environment of software engineering does not involve as much prejudice while the small environment of NLP domain  is deeply biased, with belief that the automatic programming of an NLP system by machine learning can replace and outperform manual coding for all language projects.   For software engineering in general, (manual) programming is the norm and no one believes that programmers’ jobs can be replaced by automatic programming in any time foreseeable.  Automatic programming, a concept not rare in science fiction for visions like machines making machines, is currently only a research area, for very restricted low-level functions.  Rather than placing hope on automatic programming, software engineering as an industry has seen a significant progress on work of the development infrastructures, such as development environment and a rich library of functions to support efficient coding and debugging.  Maybe in the future one day, applications can use more and more of automated code to achieve simple modules, but the full automation of constructing any complex software project  is nowhere in sight.  By any standards, natural language parsing and understanding (beyond shallow level tasks such as classification, clustering or tagging)  is a type of complex tasks. Therefore, it is hard to expect machine learning as a manifestation of automatic programming to miraculously replace the manual code for all language applications.  The application value of hand-crafting a rule system will continue to exist and evolve for a long time, disregarded or not.

“Automatic” is a fancy word.  What a beautiful world it would be if all artificial intelligence and natural languages tasks could be accomplished by automatic machine learning from data.  There is, naturally, a high expectation and regard for machine learning breakthrough to help realize this dream of mankind.  All this should encourage machine learning experts to continue to innovate to demonstrate its potential, and should not be a reason for the pride and prejudice against a competitive school or other approaches.

Before we embark on further discussions on the so-called rule system’s knowledge bottleneck defect, it is worth mentioning that the word “automatic” refers to the system development, not to be confused with running the system.  At the application level, whether it is a machine-learned system or a manual system coded by domain programmers (linguists), the system is always run fully automatically, with no human interference.  Although this is an obvious fact for both types of systems, I have seen people get confused so to equate hand-crafted NLP system with manual or semi-automatic applications.

Is hand-crafting rules a knowledge bottleneck for its development?  Yes, there is no denying or a need to deny that.  The bottleneck is reflected in the system development cycle.  But keep in mind that this “bottleneck” is common to all large software engineering projects, it is a resources cost, not only introduced by NLP.  From this perspective, the knowledge bottleneck argument against hand-crafted system cannot really stand, unless it can be proved that machine learning can do all NLP equally well, free of knowledge bottleneck:  it might be not far from truth for some special low-level tasks, e.g. document classification and word clustering, but is definitely misleading or incorrect for NLP in general, a point to be discussed below in details shortly.

Here are the ballpark estimates based on our decades of NLP practice and experiences.  For shallow level NLP tasks (such as Named Entity tagging, Chinese segmentation), a rule approach needs at least three months of one linguist coding and debugging the rules, supported by at least half an engineer for tools support and platform maintenance, in order to come up with a decent system for initial release and running.  As for deep NLP tasks (such as deep parsing, deep sentiments beyond thumbs-up and thumbs-down classification), one should not expect a working engine to be built up without due resources that at least involve one computational linguist coding rules for one year, coupled with half an engineer for platform and tools support and half an engineer for independent QA (quality assurance) support.  Of course, the labor resources requirements vary according to the quality of the developers (especially the linguistic expertise of the knowledge engineers) and how well the infrastructures and development environment support linguistic development.  Also, the above estimates have not included the general costs, as applied to all software applications, e.g. the GUI development at app level and operations in running the developed engines.

Let us present the scene of the modern day rule-based system development.  A hand-crafted NLP rule system is based on compiled computational grammars which are nowadays often architected as an integrated pipeline of different modules from shallow processing up to deep processing.  A grammar is a set of linguistic rules encoded in some formalism, which is the core of a module intended to achieve a defined function in language processing, e.g. a module for shallow parsing may target noun phrase (NP) as its object for identification and chunking.  What happens in grammar engineering is not much different from other software engineering projects.  As knowledge engineer, a computational linguist codes a rule in an NLP-specific language, based on a development corpus.  The development is data-driven, each line of rule code goes through rigid unit tests and then regression tests before it is submitted as part of the updated system for independent QA to test and feedback.  The development is an iterative process and cycle where incremental enhancements on bug reports from QA and/or from the field (customers) serve as a necessary input and step towards better data quality over time.

Depending on the design of the architect, there are all types of information available for the linguist developer to use in crafting a rule’s conditions, e.g. a rule can check any elements of a pattern by enforcing conditions on (i) word or stem itself (i.e. string literal, in cases of capturing, say, idiomatic expressions), and/or (ii) POS (part-of-speech, such as noun, adjective, verb, preposition), (iii) and/or orthography features (e.g. initial upper case, mixed case, token with digits and dots), and/or (iv) morphology features (e.g. tense, aspect, person, number, case, etc. decoded by a previous morphology module), (v) and/or syntactic features (e.g. verb subcategory features such as intransitive, transitive, ditransitive), (vi) and/or lexical semantic features (e.g. human, animal, furniture, food, school, time, location, color, emotion).  There are almost infinite combinations of such conditions that can be enforced in rules’ patterns.  A linguist’s job is to code such conditions to maximize the benefits of capturing the target language phenomena, a balancing art in engineering through a process of trial and error.

Macroscopically speaking, the rule hand-crafting process is in its essence the same as programmers coding an application, only that linguists usually use a different, very high-level NLP-specific language, in a chosen or designed formalism appropriate for modeling natural language and framework on a platform that is geared towards facilitating NLP work.  Hard-coding NLP in a general purpose language like Java is not impossible for prototyping or a toy system.  But as natural language is known to be a complex monster, its processing calls for a special formalism (some form or extension of Chomsky’s formal language types) and an NLP-oriented language to help implement any non-toy systems that scale.  So linguists are trained on the scene of development to be knowledge programmers in hand-crafting linguistic rules.  In terms of different levels of languages used for coding, to an extent, it is similar to the contrast between programmers in old days and the modern software engineers today who use so-called high-level languages like Java or C to code.  Decades ago, programmers had to use assembly or machine language to code a function.  The process and workflow for hand-crafting linguistic rules are just like any software engineers in their daily coding practice, except that the language designed for linguists is so high-level that linguistic developers can concentrate on linguistic challenges without having to worry about low-level technical details of memory allocation, garbage collection or pure code optimization for efficiency, which are taken care of by the NLP platform itself.  Everything else follows software development norms to ensure the development stay on track, including unit testing, baselines construction and monitoring, regressions testing, independent QA, code reviews for rules’ quality, etc.  Each level language has its own star engineer who masters the coding skills.  It sounds ridiculous to respect software engineers while belittling linguistic engineers only because the latter are hand-crafting linguistic code as knowledge resources.

The chief architect in this context plays the key role in building a real life robust NLP system that scales.  To deep-parse or process natural language, he/she needs to define and design the formalism and language with the necessary extensions, the related data structures, system architecture with the interaction of different levels of linguistic modules in mind (e.g. morpho-syntactic interface), workflow that integrate all components for internal coordination (including patching and handling interdependency and error propagation) and the external coordination with other modules or sub-systems including machine learning or off-shelf tools when needed or felt beneficial.  He also needs to ensure efficient development environment and to train new linguists into effective linguistic “coders” with engineering sense following software development norms (knowledge engineers are not trained by schools today).  Unlike the mainstream machine learning systems which are by nature robust and scalable,  hand-crafted systems’ robustness and scalability depend largely on the design and deep skills of the architect.  The architect defines the NLP platform with specs for its core engine compiler and runner, plus the debugger in a friendly development environment.  He must also work with product managers to turn their requirements into operational specs for linguistic development, in a process we call semantic grounding to applications from linguistic processing.   The success of a large NLP system based on hand-crafted rules is never a simple accumulation of linguistics resources such as computational lexicons and grammars using a fixed formalism (e.g. CFG) and algorithm (e.g. chart-parsing).  It calls for seasoned language engineering masters as architects for the system design.

Given the scene of practice for NLP development as describe above, it should be clear that the negative sentiment association with “hand-crafting” is unjustifiable and inappropriate.  The only remaining argument against coding rules by hands comes down to the hard work and costs associated with hand-crafted approach, so-called knowledge bottleneck in the rule-based systems.  If things can be learned by a machine without cost, why bother using costly linguistic labor?  Sounds like a reasonable argument until we examine this closely.  First, for this argument to stand, we need proof that machine learning indeed does not incur costs and has no or very little knowledge bottleneck.  Second, for this argument to withstand scrutiny, we should be convinced that machine learning can reach the same or better quality than hand-crafted rule approach.  Unfortunately, neither of these necessarily hold true.  Let us study them one by one.

As is known to all, any non-trivial NLP task is by nature based on linguistic knowledge, irrespective of what form the knowledge is learned or encoded.   Knowledge needs to be formalized in some form to support NLP, and machine learning is by no means immune to this knowledge resources requirement.  In rule-based systems, the knowledge is directly hand-coded by linguists and in case of (supervised) machine learning, knowledge resources take the form of labeled data for the learning algorithm to learn from (indeed, there is so-called unsupervised learning which needs no labeled data and is supposed to learn from raw data, but that is research-oriented and hardly practical for any non-trivial NLP, so we leave it aside for now).  Although the learning process is automatic,  the feature design, the learning algorithm implementation, debugging and fine-tuning are all manual, in addition to the requirement of manual labeling a large training corpus in advance (unless there is an existing labeled corpus available, which is rare; but machine translation is a nice exception as it has the benefit of using existing human translation as labeled aligned corpora for training).  The labeling of data is a very tedious manual job.   Note that the sparse data challenge represents the need of machine learning for a very large labeled corpus.  So it is clear that knowledge bottleneck takes different forms, but it is equally applicable to both approaches.  No machine can learn knowledge without costs, and it is incorrect to regard knowledge bottleneck as only a defect for the rule-based system.

One may argue that rules require expert skilled labor, while the labeling of data only requires high school kids or college students with minimal training.  So to do a fair comparison of the costs associated, we perhaps need to turn to Karl Marx whose “Das Kapital” has some formula to help convert simple labor to complex labor for exchange of equal value: for a given task with the same level of performance quality (assuming machine learning can reach the quality of professional expertise, which is not necessarily true), how much cheap labor needs to be used to label the required amount of training corpus to make it economically an advantage?  Something like that.  This varies from task to task and even from location to location (e.g. different minimal wage laws), of course.   But the key point here is that knowledge bottleneck challenges both approaches and it is not the case believed by many that machine learning learns a system automatically with no or little cost attached.  In fact, things are far more complicated than a simple yes or no in comparing the costs as costs need also to be calculated in a larger context of how many tasks need to be handled and how much underlying knowledge can be shared as reusable resources.  We will leave it to a separate writing for the elaboration of the point that when put into the context of developing multiple NLP applications, the rule-based approach which shares the core engine of parsing demonstrates a significant saving on knowledge costs than machine learning.

Let us step back and, for argument’s sake, accept that coding rules is indeed more costly than machine learning, so what? Like in any other commodities, hand-crafted products may indeed cost more, they also have better quality and value than products out of mass production.  For otherwise a commodity society will leave no room for craftsmen and their products to survive.  This is common sense, which also applies to NLP.  If not for better quality, no investors will fund any teams that can be replaced by machine learning.  What is surprising is that there are so many people, NLP experts included, who believe that machine learning necessarily performs better than hand-crafted systems not only in costs saved but also in quality achieved.  While there are low-level NLP tasks such as speech processing and document classification which are not experts’ forte as we human have much more restricted memory than computers do, deep NLP involves much more linguistic expertise and design than a simple concept of learning from corpora to expect superior data quality.

In summary, the hand-crafted rule defect is largely a misconception circling around wildly in NLP and reinforced by the mainstream, due to incomplete induction or ignorance of the scene of modern day rule development.  It is based on the incorrect assumption that machine learning necessarily handles all NLP tasks with same or better quality but less or no knowledge bottleneck, in comparison with systems based on hand-crafted rules.

 

 

Note: This is the author’s own translation, with adaptation, of part of our paper which originally appeared in Chinese in Communications of Chinese Computer Federation (CCCF), Issue 8, 2013

 

[Related]

Domain portability myth in natural language processing

Pride and Prejudice of NLP Main Stream

K. Church: A Pendulum Swung Too Far, Linguistics issues in Language Technology, 2011; 6(5)

Wintner 2009. What Science Underlies Natural Language Engineering? Computational Linguistics, Volume 35, Number 4

Pros and Cons of Two Approaches: Machine Learning vs Grammar Engineering

Overview of Natural Language Processing

Dr. Wei Li’s English Blog on NLP

Pride and Prejudice of NLP Main Stream

[Abstract]

In the area of Computational Linguistics, there are two basic approaches to natural language processing, the traditional rule system and the mainstream machine learning.  They are complementary and there are pros and cons associated with both.  However, as machine learning is the dominant mainstream philosophy reflected by the overwhelming ratio of papers published in academia, the area seems to be heavily biased against the rule system methodology.  The tremendous success of machine learning as applied to a list of natural language tasks has reinforced the mainstream pride and prejudice in favor of one and against the other.   As a result, there are numerous specious views which are often taken for granted without check, including attacks on the rule system’s defects based on incomplete induction or misconception.  This is not healthy for NLP itself as an applied research area and exerts an inappropriate influence on the young scientists coming to this area.  This is the first piece of a series of writings aimed at educating the public and confronting the prevalent prejudice, focused on the in-depth examination of the so-called hand-crafted defect of the rule system and the associated  knowledge bottleneck issue.

I. introduction

Over 20 years ago, the area of NLP (natural language processing) went through a process of replacing traditional rule-based systems by statistical machine learning as the mainstream in academia.  Put in a larger context of AI (Artificial Intelligence), this represents a classical competition, and their ups and downs, between the rational school and the empirical school (Church 2007 ).  It needs to be noted that the statistical approaches’ dominance in this area has its historical inevitability.   The old school was confined to toy systems or lab for too long without scientific break-through while machine learning started showing impressive results in numerous fronts of NLP in a much larger scale, initially  very low level NLP such as POS (Part-of-Speech) tagging and speech recognition / synthesis, and later on expanded to almost all NLP tasks, including machine translation, search and ranking, spam filtering, document classification, automatic summarization, lexicon acquisition, named entity tagging, relationship extraction, event classification, sentiment analysis.  This dominance has continued to grow till today when the other school is largely “out” from almost all major NLP arenas, journals and top conferences.  New graduates hardly realize its existence.  There is an entire generation gap for such academic training or carrying on the legacy of the old school, with exceptions of very few survivors (including yours truly) in industry because few professors are motivated to teach it at all or even qualified with an in-depth knowledge of this when the funding and publication prospects for the old school are getting more and more impossible.   To many people’s minds today, learning (or deep learning) is NLP, and NLP is learning, that is all.  As for the “last century’s technology” of rule-based systems, it is more like a failure tale from a distant history.

The pride and prejudice of the mainstream were demonstrated the most in the recent incidence when Google announced its deep-learning-based SyntaxNet and proudly claimed it to be “the most accurate parser in the world”, so resolute and no any conditions attached, and without even bothering to check the possible existence of the other school.  This is not healthy (and philosophically unbalanced too) for a broad area challenged by one of the most complex problems of mankind, i.e. to decode natural language understanding.  As there is only one voice heard, it is scaring to observe that the area is packed with prejudice and ignorance with regards to the other school, some from leaders of the area.  Specious comments are rampant and often taken for granted without check.

Prejudice is not a real concern as it is part of the real world around and involving ourselves, something to do with human nature and our innate limitation and ignorance. What is really scary is the degree and popularity of such prejudice represented in numerous misconceptions that can be picked up everywhere in this circle (I am not going to trace the sources of these as they are everywhere and people who are in this area for some time know this is not Quixote’s windmill but a reality reflection).  I will list below some of the myths or fallacies so deeply rooted in the area that they seem to become cliche, or part of the community consensus.  If one or more statements below sound familiar to you and they do not strike you as opinionated or specious which cannot withstand scrutiny, then you might want to give a second study of the issue to make sure we have not been subconsciously brain-washed.  The real damage is to our next generation, the new scholars coming to this field, who often do not get a chance for doubt.

For each such statement to be listed, it is not difficult to cite a poorly designed stereotypical rule system that falls short of the point, but the misconception lies in its generalization of associating an accused defect to the entire family of a school, ignorant of the variety of designs and the progress made in that school.

There are two types of misconceptions, one might be called myth and the other is sheer fallacy.  Myths arise as a result of “incomplete induction”.  Some may have observed or tried some old school rule systems of some sort, which show signs of the stated defect, then they jump to conclusions leading to the myths.  These myths call for in-depth examination and arguments to get the real picture of the truth.  As for fallacies, they are simply untrue.  It is quite a surprise, though, to see that even fallacies seem to be widely accepted as true by many, including some experts in this area.  All we need is to cite facts to prove them wrong.  For example, [Grammaticality Fallacy] says that the rule system can only parse grammatical text and cannot handle degraded text with grammar mistakes in it.  Facts speak louder than words: the sentiment engine we have developed for our main products is a parsing-supportedrule-based system that fully automatically extracts and mines public opinions and consumer insights from all types of social media, typical of degraded text.  Third-party evaluations show that this system is industry leader in data quality of sentiments, significantly better than competitions adopting machine learning. The large-scale operation of our system in the cloud in handling terabytes of real life social media big data (a year of social media in our index involve about 30 billion documents across more than 40 languages) also prove wrong what is stated in [Scalability Fallacy] below.

Let us now list these widely spread rumours collected from the community about the rule-based system to see if they ring the bell before we dive into the first two core myths to uncover the true picture behind in separate blogs.

II.  Top 10 Misconceptions against Rules

[Hand-crafted Myth]  Rule-based system faces a knowledge bottleneck of hand-crafted development while a machine learning system involves automatic training (implying no knowledge bottleneck). [see On Hand-crafted Myth of Knowledge Bottleneck.]

[Domain Portability Myth] The hand-crafted nature of a rule-based system leads to its poor domain portability as rules have to be rebuilt each time we shift to a new domain; but in case of machine learning, since the algorithm and system are universal, domain shift only involves new training data (implying strong domain portability). [see Domain Portability Myth]

[Fragility Myth]  A rule-based system is very fragile and it may break before unseen language data, so it cannot lead to a robust real life application.

[Weight Myth] Since there is no statistical weight associated with the results from a rule-based system, the data quality cannot be trusted with confidence.

[Complexity Myth] As a rule-based system is complex and intertwined, it is easy to get to a standstill, with little hope for further improvement.

[Scalability Fallacy]  The hand-crafted nature of a rule-based system makes it difficult to scale up for real life application; it is largely confined to the lab as a toy.

[Domain Restriction Fallacy]  A rule-based system only works in a narrow domain and it cannot work across domains.

[Grammaticality Fallacy] A rule-based system can only handle grammatical input in the formal text (such as news, manuals, weather broadcasts), it fails in front of degraded text involving misspellings and ungrammaticality such as social media, oral transcript, jargons or OCR output.

[Outdated Fallacy]  A rule-based system is a technology of last century, it is outdated (implying that it no longer works or can result in a quality system in modern days).

[Data Quality Fallacy]  Based on the data quality of results, a machine learning system is better than a rule based system. (cf: On Recall of Grammar Engineering Systems)

III.  Retrospect and Reflection of Mainstream

As mentioned earlier, a long list of misconceptions about the old school of rule-based systems have been around the mainstream for years in the field.   It may sound weird for an interdisciplinary field named Computational Linguistics to drift more and more distant from linguistics;  linguists play less and less a role in NLP dominated by statisticians today.  It seems widely assumed that with advanced deep learning algorithms, once data are available, a quality system will be trained without the need for linguistic design or domain expertise.

Not all main stream scholars are one-sided and near-sighted.  In recent years, insightful articles  (e.g., church 2007, Wintner 2009) began a serious retrospect and reflection process and called for the return of Linguistics: “In essence, linguistics is altogether missing in contemporary natural language engineering research. … I want to call for the return of linguistics to computational linguistics.”(Wintner 2009)Let us hope that their voice will not be completely muffled in this new wave of deep learning heat.

Note that the rule system which the linguists are good at crafting in industry is different from the classical linguistic study, it is formalized modeling of linguistic analysis.  For NLP tasks beyond shallow level, an effective rule system is not a simple accumulation of computational lexicons and grammars, but involves a linguistic processing strategy (or linguistic algorithm) for different levels of linguistic phenomena.  However, this line of study on the NLP platform design, system architecture and formalism has increasingly smaller space for academic discussion and publication, the research funding becomes almost impossible, as a result, the new generation faces the risk of a cut-off legacy, with a full generation of talent gap in academia.  Church (2007) points out that the statistical research is so dominant and one-sided that only one voice is now heard.  He is a visionary main stream scientist, deeply concerned about the imbalance of the two schools in NLP and AI.  He writes:

Part of the reason why we keep making the same mistakes, as Minsky and Papert mentioned above, has to do with teaching. One side of the debate is written out of the textbooks and forgotten, only to be revived/reinvented by the next generation.  ……

To prepare students for what might come after the low hanging fruit has been picked over, it would be good to provide today’s students with a broad education that makes room for many topics in Linguistics such as syntax, morphology, phonology, phonetics, historical linguistics and language universals. We are graduating Computational Linguistics students these days that have very deep knowledge of one particular narrow sub-area (such as machine learning and statistical machine translation) but may not have heard of Greenberg’s Universals, Raising, Equi, quantifier scope, gapping, island constraints and so on. We should make sure that students working on co-reference know about c-command and disjoint reference. When students present a paper at a Computational Linguistics conference, they should be expected to know the standard treatment of the topic in Formal Linguistics.

We ought to teach this debate to the next generation because it is likely that they will have to take Chomsky’s objections more seriously than we have. Our generation has been fortunate to have plenty of low hanging fruit to pick (the facts that can be captured with short ngrams), but the next generation will be less fortunate since most of those facts will have been pretty well picked over before they retire, and therefore, it is likely that they will have to address facts that go beyond the simplest ngram approximations.

 

 

About Author

Dr. Wei Li is currently Chief Scientist at Netbase Solutions in the Silicon Valley, leading the effort for the design and development of a multi-lingual sentiment mining system based on deep parsing.  A hands-on computational linguist with 30 years of professional experience in Natural Language Processing (NLP), Dr. Li has a track record of making NLP work robust. He has built three large-scale NLP systems, all transformed into real-life, globally distributed products.

 

Note: This is the author’s own translation, with adaptation, of our paper in Chinese which originally appeared in W. Li & T. Tang, “Pride and Prejudice of Main Stream:  Rule-based System vs. Machine Learning“, in Communications of Chinese Computer Federation (CCCF), Issue 8, 2013

 

[Related]

K. Church: A Pendulum Swung Too Far, Linguistics issues in Language Technology, 2011; 6(5)

Wintner 2009. What Science Underlies Natural Language Engineering? Computational Linguistics, Volume 35, Number 4

Domain portability myth in natural language processing

On Hand-crafted Myth and Knowledge Bottleneck

On Recall of Grammar Engineering Systems

Pros and Cons of Two Approaches: Machine Learning vs Grammar Engineering

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

R. Srihari, W Li, C. Niu, T. Cornell: InfoXtract: A Customizable Intermediate Level Information Extraction Engine. Journal of Natural Language Engineering, 12(4), 1-37, 2006

Introduction of Netbase NLP Core Engine

Overview of Natural Language Processing

Dr. Wei Li’s English Blog on NLP

 

【主流的傲慢与偏见:规则系统与机器学习】

I.          引言

有回顾NLP(Natural Language Processing)历史的知名学者介绍机器学习(machine learning)取代传统规则系统(rule-based system)成为学界主流的掌故,说20多年前好像经历了一场惊心动魄的宗教战争。必须承认,NLP 这个领域,统计学家的完胜,是有其历史必然性的。机器学习在NLP很多任务上的巨大成果和效益是有目共睹的:机器翻译,语音识别/合成,搜索排序,垃圾过滤,文档分类,自动文摘,词典习得,专名标注,词性标注等(Church 2007)。

然而,近来浏览几篇 NLP 领域代表人物的综述,见其中不乏主流的傲慢与偏见,依然令人惊诧。细想之下,统计学界的确有很多对传统规则系统根深蒂固的成见和经不起推敲但非常流行的蛮横结论。可怕的不是成见,成见无处不在。真正可怕的是成见的流行无阻。而在NLP这个领域,成见的流行到了让人瞠目结舌的程度。不假思索而认同接受这些成见成为常态。因此想到立此存照一下,并就核心的几条予以详论。下列成见随处可见,流传甚广,为免纷扰,就不列出处了,明白人自然知道这绝不是杜撰和虚立的靶子。这些成见似是而非,经不起推敲,却被很多人视为理所当然的真理。为每一条成见找一个相应的规则系统的案例并不难,但是从一些特定系统的缺陷推广到对整个规则系统的方法学上的批判,乃是其要害所在。

【成见一】规则系统的手工编制(hand-crafted)是其知识瓶颈,而机器学习是自动训练的(言下之意:没有知识瓶颈)。

【成见二】规则系统的手工编制导致其移植性差,转换领域必须重启炉灶,而机器学习因为算法和系统保持不变,转换领域只要改变训练数据即可(言下之意:移植性强)。

【成见三】规则系统很脆弱,遇到没有预测的语言现象系统就会 break(什么叫 break,死机?瘫痪?失效?),开发不了鲁棒(robust)产品。

【成见四】规则系统的结果没有置信度,鱼龙混杂。

【成见五】规则系统的编制越来越庞杂,最终无法改进,只能报废。

【成见六】规则系统的手工编制注定其无法实用,不能 scale up,只能是实验室里的玩具。

【成见七】规则系统只能在极狭窄的领域成事,无法实现跨领域的系统。

【成见八】规则系统只能处理规范的语言(譬如说明书、天气预报、新闻等),无法应对 degraded text,如社会媒体、口语、方言、黑话、OCR 文档。

【成见九】规则系统是上个世纪的技术,早已淘汰(逻辑的结论似乎是:因此不可能做出优质系统)。

【成见十】从结果上看,机器学习总是胜过规则系统。

所列“成见”有两类:一类是“偏”见,如【成见一】至【成见五】。这类偏见主要源于不完全归纳,他们也许看到过或者尝试过规则系统某一个类型, 浅尝辄止,然后遽下结论(jump to conclusions)。盗亦有道,情有可原,虽然还是应该对其一一纠“正”。本文即是拨乱反正的第一篇。成见的另一类是谬见,可以事实证明其荒谬。令人惊诧的是,谬见也可以如此流行。【成见五】以降均属不攻自破的谬见。譬如【成见八】说规则系统只能分析规范性语言。事实胜于雄辩,我们开发的以规则体系为主的舆情挖掘系统处理的就是非规范的社交媒体。这个系统的大规模运行和使用也驳斥了【成见六】,可以让读者评判这样的规则系统够不够资格称为实用系统:

 

以全球500强企业为主要客户的多语言客户情报挖掘系统由前后两个子系统组成。核心引擎是后台子系统(back-end indexing engine),用于对社交媒体大数据做自动分析和抽取。分析和抽取结果用开源的Apache Lucene文本搜索引擎(lucene.apache.org) 存储。生成后台索引的过程基于Map-Reduce框架,利用计算云(computing cloud) 中200台虚拟服务器进行分布式索引。对于过往一年的社会媒体大数据存档(约300亿文档跨越40多种语言),后台索引系统可以在7天左右完成全部索引。前台子系统(front-end app)是基于 SaaS 的一种类似搜索的应用。用户通过浏览器登录应用服务器,输入一个感兴趣的话题,应用服务器对后台索引进行分布式搜索,搜索的结果在应用服务器经过整合,以用户可以预设(configurable)的方式呈现给用户。这一过程立等可取,响应时间不过三四秒。

                                                                                                                                                II.         规则系统手工性的责难

【成见一】说:规则系统的手工编制(hand-crafted)是其知识瓶颈,而机器学习是自动训练的(言下之意:因此没有知识瓶颈)。

NLP主流对规则系统和语言学家大小偏见积久成堆,这第一条可以算是万偏之源。随便翻开计算语言学会议的论文,无论讨论什么语言现象,为了论证机器学习某算法的优越,在对比批评其他学习算法的同时,规则系统大多是随时抓上来陪斗的攻击对象,而攻击的理由往往只有这么一句话,规则系统的手工性决定了 “其难以开发”(或“其不能 scale up”,“其效率低下”,“其不鲁棒”,不一而足),或者干脆不给具体理由,直接说“文献【1】【2】【3】尝试了这个问题的不同方面,但这些系统都是手工编制的”,一句话判处死刑,甚至不用讨论它们的效果和质量。手工性几乎成了规则系统的“原罪”,编制这些系统的语言学家因此成为学术共同体背负原罪的二等公民。

手工编制(hand-crafted)又如何?在日常消费品领域,这是对艺人特别的嘉奖,是对批量机械化生产和千篇一律的反抗,是独特和匠心的代表,是高价格理直气壮的理由。缘何到了NLP领域,突然就成贬义词了呢?这是因为在NLP领域,代表主流的统计学家由于他们在NLP某些任务上的非凡成功,居功自傲,把成功无限夸大,给这个共同体施行了集体催眠术,有意无意引导人相信机器学习是万能的。换句话说,批判手工编制的劣根性,其隐含的前提是机器学习是万能的,有效的,首选的。而实际情况是,面对自然语言的复杂性,机器学习只是划过了语言学的冰山一角,远远没有到主流们自觉或不自觉吹嘘的万能境界。催眠的结果是,不独不少语言学家以及NLP相关利益方(如投资人和用户)被他们洗脑了,连他们自己也似乎逐渐相信了自己编制的神话。

真实世界中,NLP 是应用学科,最终结果体现在应用软件(applications)上,属于语言软件工程。作为一个产业,软件工程领域吸引了无数软件工程师,虽然他们自嘲为“码工”,社会共同体给予他们的尊重和待遇是很高的(Bill Gates 自封了一个 Chief Engineer,说明了这位软件大王对工匠大师的高度重视)。古有鲁班,现有码师(coding master)。这些码工谁不靠手工编制代码作为立足之本呢?没听说一位明星工程师因为编制代码的手工性质而被贬损。同是软件工程,为什么计算语言学家手工编制NLP代码与其他工程师手工编制软件代码,遭遇如此不同的对待。难道是因为NLP应用比其他应用简单?恰恰相反,自然语言的很多应用比起大多数应用(譬如图形软件、字处理软件等等)更加复杂和艰难。解释这种不同遭遇的唯一理由就是,作为大环境的软件领域没有NLP主流的小环境里面那么多的傲慢和偏见。软件领域的大师们还没有狂妄到以为可以靠自动编程取代手工编程。他们在手工编程的基础建设(编程架构和开发环境等)上下功夫,而不是把希望寄托在自动编程的万能上。也许在未来的某一天,一些简单的应用可以用代码自动化来实现,但是复杂任务的全自动化从目前来看是遥遥无期的。不管从什么标准来看,非浅层的自然语言分析和理解都是复杂任务的一种。因此,机器学习作为自动编程的一个体现是几乎不可能取代手工代码的。规则系统的NLP应用价值会长期存在。

自动是一个动听的词汇。如果一切人工智能都是自动学习的,前景该有多么美妙。机器学习因为与自动连接在一起,显得那么高高在上,让人仰视。它承载着人类对未来世界的幻想。这一切理应激励自动学习专家不断创新,而绝不该成为其傲慢和偏见的理由。

在下面具体论述所谓规则系统的知识瓶颈软肋之前,值得一提的是,本文所谓自动是指系统的开发,不要混淆为系统的应用。在应用层面,无论是机器学习出来的系统,还是手工编制的系统,都是全自动地服务用户的,这是软件应用的性质决定的。虽然这是显而易见的事实,可确实有人被误导,一听说手工编制,就引申为基于规则系统的应用也是手工的,或者半自动的。

手工编制NLP系统是不是规则系统的知识瓶颈?毋庸讳言,确实如此。这个瓶颈体现在系统开发的周期上。但是,这个瓶颈是几乎所有大型软件工程项目所共有的,是理所当然的资源成本,不独为 NLP “专美”。从这个意义上看,以知识瓶颈诟病规则系统是可笑的,除非可以证明对所有NLP项目,用机器学习开发系统比编制规则系统,周期短且质量高(个别的项目可能是这样,但一般而言绝非如此,后面还要详谈)。大体说来,对于NLP的浅层应用(譬如中文切词,专名识别,等等),没有三个月的开发,没有至少一位计算语言学家手工编制和调试规则和至少半个工程师的平台层面的支持,是出不来规则系统的。对于NLP的深层应用(如句法分析,舆情抽取等),没有至少一年的开发,涉及至少一位计算语言学家的手工编制规则,至少半个质量检测员的协助和半个工程师的平台支持,外加软件工程项目普遍具有的应用层面的用户接口开发等投入,也是出不来真正的软件产品的。当然需要多少开发资源在很大程度上决定于开发人员(包括作为知识工程师的计算语言学家)的经验和质量以及系统平台和开发环境的基础(infrastructures)如何。

计算语言学家编制规则系统的主体工作是利用形式化工具编写并调试语言规则、各类词典以及语言分析的流程调控。宏观上看,这个过程与软件工程师编写应用程序没有本质不同,不过是所用的语言、形式框架和开发平台(language,formalism and development platform)不同,系统设计和开发的测重点不同而已。这就好比现代的工程师用所谓高级语言 Java 或者 C,与30年前的工程师使用汇编语言的对比类似,本质是一样的编程,只是层次不同罢了。在为NLP特制的“高级”语言和平台上,计算语言学家可以不用为内存分配等非语言学的工程细节所羁绊,一般也不用为代码的优化和效率而烦扰,他们的注意力更多地放在面对自然语言的种种复杂现象,怎样设计语言处理的架构和流程,怎样平衡语言规则的条件宽窄,怎样与QA(质量检测)协调确保系统开发的健康,怎样保证语言学家团队编制规则的操作规范(unit testing,regression testing,code review,baselines,等等)以确保系统的可持续性,怎样根据语言开发需求对于现有形式框架的限制提出扩展要求,以及怎样保证复杂系统的鲁棒性,以及怎样突破规则系统的框架与其他语言处理包括机器学习进行协调,等等。一个领头的计算语言学家就是规则系统的架构师,系统的成败绝不仅仅在于语言规则的编制及其堆积,更多的决定于系统架构的合理性。明星工程师是软件企业的灵魂,NLP 规则系统的大规模成功也一样召唤着语言工程大师。

关于知识瓶颈的偏见,必须在对比中评估。自然语言处理需要语言学知识,把这些知识形式化是每个NLP系统的题中应有之义,机器学习绝不会自动免疫,无需知识的形式化。规则系统需要语言学家手工开发的资源投入,机器学习也同样需要资源的投入,不过是资源方式不同而已。具体说,机器学习的知识瓶颈在于需要大数量的训练数据集。排除研究性强实用性弱的无监督学习(unsupervised learning),机器学习中可资开发系统的方法是有监督的学习(supervised learning)。有监督的学习能开发知识系统成为应用的前提是必须有大量的手工标注的数据,作为学习的源泉。虽然机器学习的过程是自动的(学习算法的创新、调试和实现当然还是手工的),但是大量的数据标注则是手工的(本来就有现成标注不计,那是例外)。因此,机器学习同样面临知识瓶颈,不过是知识瓶颈的表现从需要少量的语言学家变成需要大量的低端劳动者(懂得语言及其任务的中学生或大学生即可胜任)。马克思说金钱是一般等价物,知识瓶颈的问题于是转化为高级劳动低级劳动的开销和转换问题:雇佣一个计算语言学家的代价大,还是雇佣10个中学生的代价大?虽然这个问题根据不同项目不同地区等因素答案会有不同,但所谓机器学习没有知识瓶颈的神话可以休矣。

另外,知识瓶颈的对比问题不仅仅是针对一个应用而言,而应该放在多应用的可移植性上来考察。我们知道大多数非浅层的NLP应用的技术支持都源于从自然语言做特定的信息抽取:抽取关系、事件、舆情等。由于机器学习把信息抽取看成一个直接对应输入和输出的黑匣子,所以一旦改变信息抽取目标和应用方向,以前的人工标注就废弃了,作为知识瓶颈的标注工作必须完全重来。可是规则系统不同,它通常设计成一个规则层级体系,由独立于领域的语言分析器(parser)来支持针对领域的信息抽取器(extractor)。结果是,在转移应用目标的时候,作为技术基础的语言分析器保持不变,只需重新编写不同的抽取规则而已。实践证明,对于规则系统,真正的知识瓶颈在语言分析器的开发上,而信息抽取本身花费不多。这是因为前者需要应对自然语言变化多端的表达方式,将其逻辑化,后者则是建立在逻辑形式(logical form)上,一条规则等价于底层规则的几百上千条。因此,从多应用的角度看,规则系统的知识成本趋小,而机器学习的知识成本则没有这个便利。

                                                                                                                                                III.        主流的反思

如前所述,NLP领域主流意识中的成见很多,积重难返。世界上还很少有这样的怪现象:号称计算语言学(Computational Linguistics)的领域一直在排挤语言学和语言学家。语言学家所擅长的规则系统,与传统语言学完全不同,是可实现的形式语言学(Formal Linguistics)的体现。对于非浅层的NLP任务,有效的规则系统不可能是计算词典和文法的简单堆积,而是蕴含了对不同语言现象的语言学处理策略(或算法)。然而,这一路研究在NLP讲台发表的空间日渐狭小,资助亦难,使得新一代学人面临技术传承的危险。Church (2007)指出,NLP研究统计一边倒的状况是如此明显,其他的声音已经听不见。在浅层NLP的低垂果实几乎全部采摘完毕以后,当下一代学人面对复杂任务时,语言学营养缺乏症可能导致统计路线捉襟见肘。

可喜的是,近年来主流中有识之士(如,Church 2007, Wintner 2009)开始了反思和呼吁,召唤语言学的归来:“In essence, linguistics is altogether missing in contemporary natural language engineering research. … I want to call for the return of linguistics to computational linguistics.”(Wintner 2009)。相信他们的声音会受到越来越多的人的注意。

 

参考文献
  • Church 2007. A Pendulum Swung Too Far.  Linguistics issues in Language Technology,  Volume 2, Issue 4.
  • Wintner 2009. What Science Underlies Natural Language Engineering? Computational Linguistics, Volume 35, Number 4

 

原载 《W. Li & T. Tang: 主流的傲慢与偏见:规则系统与机器学习》
【计算机学会通讯】2013年第8期(总第90期)

[Abstract]

Pride and Prejudice in Mainstream:  Rule System vs. Machine Learning

In the area of Computational Linguistics, there are two basic approaches to natural language processing, the traditional rule system and the mainstream machine learning.  They are complementary and there are pros and cons associated with both.  However, as machine learning is the dominant mainstream philosophy reflected by the overwhelming ratio of papers published in academia, the area seems to be heavily biased against the rule system methodology.  The tremendous success of machine learning as applied to a list of natural language tasks has reinforced the mainstream pride and prejudice in favor of one and against the other.   As a result, there are numerous specious views which are often taken for granted without check, including attacks on the rule system’s defects based on incomplete induction or misconception.  This is not healthy for NLP itself as an applied research area and exerts an inappropriate influence on the young scientists coming to this area.  This is the first piece of a series of writings aimed at correcting the prevalent prejudice, focused on the in-depth examination of the so-called hand-crafted defect of the rule system and the associated  knowledge bottleneck issue.

【相关】

K. Church: A Pendulum Swung Too Far, Linguistics issues in Language Technology, 2011; 6(5)

【科普随笔:NLP主流的傲慢与偏见】

Pride and Prejudice of NLP Main Stream

On Hand-crafted Myth and Knowledge Bottleneck

Domain portability myth in natural language processing

关于NLP方法论以及两条路线之争】 专栏:NLP方法论

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

《朝华午拾》总目录

 

 

On Recall of Grammar Engineering Systems

After I showed the benchmarking results of SyntaxNet and our rule system based on grammar engineering, many people seem to be surprised by the fact that the rule system beats the newest deep-learning based parser in data quality.  I then got asked many questions, one question is:

Q: We know that rules crafted by linguists are good at precision, how about recall?

This question is worth a more in-depth discussion and serious answer because it touches the core of the viability of the “forgotten” school:  why is it still there? what does it have to offer? The key is the excellent data quality as advantage of a hand-crafted system, not only for precision, but high recall is achievable as well.

Before we elaborate, here was my quick answer to the above question:

  • Unlike precision, recall is not rules’ forte, but there are ways to enhance recall;
  • To enhance recall without precision compromise, one needs to develop more rules and organize the rules in a hierarchy, and organize grammars in a pipeline, so recall is a function of time;
  • To enhance recall with limited compromise in precision, one can fine-tune the rules to loosen conditions.

Let me address these points by presenting the scene of action for this linguistic art in its engineering craftsmanship.

A rule system is based on compiled computational grammars.  A grammar is a set of linguistic rules encoded in some formalism.  What happens in grammar engineering is not much different from other software engineering projects.  As knowledge engineer, a computational linguist codes a rule in a NLP-specific language, based on a development corpus.  The development is data-driven, each line of rule code goes through rigid unit tests and then regression tests before it is submitted as part of the updated system.  Depending on the design of the architect, there are all types of information available for the linguist developer to use in crafting a rule’s conditions, e.g. a rule can check any elements of a pattern by enforcing conditions on (i) word or stem itself (i.e. string literal, in cases of capturing, say, idiomatic expressions), and/or (ii) POS (part-of-speech, such as noun, adjective, verb, preposition), (iii) and/or orthography features (e.g. initial upper case, mixed case, token with digits and dots), and/or (iv) morphology features (e.g. tense, aspect, person, number, case, etc. decoded by a previous morphology module), (v) and/or syntactic features (e.g. verb subcategory features such as intransitive, transitive, ditransitive), (vi) and/or lexical semantic features (e.g. human, animal, furniture, food, school, time, location, color, emotion).  There are almost infinite combinations of such conditions that can be enforced in rules’ patterns.  A linguist’s job is to use such conditions to maximize the benefits of capturing the target language phenomena, through a process of trial and error.

Given the description of grammar engineering as above, what we expect to see in the initial stage of grammar development is a system precision-oriented by nature.  Each rule developed is geared towards a target linguistic phenomenon based on the data observed in the development corpus: conditions can be as tight as one wants them to be, ensuring precision.  But no single rule or a small set of rules can cover all the phenomena.  So the recall is low in the beginning stage.  Let us push things to extreme, if a rule system is based on only one grammar consisting of only one rule, it is not difficult to quickly develop a system with 100% precision but very poor recall.  But what is good of a system that is precise but without coverage?

So a linguist is trained to generalize.  In fact, most linguists are over-trained in school for theorizing and generalization before they get involved in software industrial development.  In my own experience in training new linguists into knowledge engineers, I often have to de-train this aspect of their education by enforcing strict procedures of data-driven and regression-free development.  As a result, the system will generalize only to the extent allowed to maintain a target precision, say 90% or above.

It is a balancing art.  Experienced linguists are better than new graduates.  Out of  explosive possibilities of conditions, one will only test some most likely combination of conditions based on linguistic knowledge and judgement in order to reach the desired precision with maximized recall of the target phenomena.  For a given rule, it is always possible to increase recall at compromise of precision by dropping some conditions or replacing a strict condition by a loose condition (e.g. checking a feature instead of literal, or checking a general feature such as noun instead of a narrow feature such as human).  When a rule is fine-tuned with proper conditions for the desired balance of precision and recall, the linguist developer moves on to try to come up with another rule to cover more space of the target phenomena.

So, as the development goes on, and more data from the development corpus are brought to the attention on the developer’s radar, more rules are developed to cover more and more phenomena, much like silkworms eating mulberry leaves.  This is incremental enhancement fairly typical of software development cycles for new releases.  Most of the time, newly developed rules will overlap with existing rules, but their logical OR points to an enlarged conquered territory.  It is hard work, but recall gradually, and naturally, picks up with time while maintaining precision until it hits long tail with diminishing returns.

There are two caveats which are worth discussing for people who are curious about this “seasoned” school of grammar engineering.

First, not all rules are equal.  A non-toy rule system often provides mechanism to help organize rules in a hierarchy for better quality as well as easier maintenance: after all, a grammar hard to understand and difficult to maintain has little prospect for debugging and incremental enhancement.  Typically, a grammar has some general rules at the top which serve as default and cover the majority of phenomena well but make mistakes in the exceptions which are not rare in natural language.  As is known to all, naturally language is such a monster that almost no rules are without exceptions.  Remember in high school grammar class, our teacher used to teach us grammar rules.  For example, one rule says that a bare verb cannot be used as predicate with third person singular subject, which should agree with the predicate in person and number by adding -s to the verb: hence, She leaves instead of *She leave.  But soon we found exceptions in sentences like The teacher demanded that she leave.  This exception to the original rule only occurs in object clauses following certain main clause verbs such as demand, theoretically labeled  by linguists as subjunctive mood.  This more restricted rule needs to work with the more general rule to result in a better formulated grammar.

Likewise, in building a computational grammar for automatic parsing or other NLP tasks, we need to handle a spectrum of rules with different degrees of generalizations in achieving good data quality for a balanced precision and recall.  Rather than adding more and more restrictions to make a general rule not to overkill the exceptions, it is more elegant and practical to organize the rules in a hierarchy so the general rules are only applied as default after more specific rules are tried, or equivalently, specific rules are applied to overturn or correct the results of general rules.  Thus, most real life formalisms are equipped with hierarchy mechanism to help linguists develop computational grammars to model the human linguistic capability in language analysis and understanding.

The second point that relates to the topic of recall of a rule system is so significant but often neglected that it cannot be over-emphasized and it calls for a separate writing in itself.  I will only present a concise conclusion here.  It relates to multiple levels of parsing that can significantly enhance recall for both parsing and parsing-supported NLP applications.  In a multi-level rule system, each level is one module of the system, involving a grammar.  Lower levels of grammars help build local structures (e.g. basic Noun Phrase), performing shallow parsing.  System thus designed are not only good for modularized engineering, but also great for recall because shallow parsing shortens the distance of words that hold syntactic relations (including long distance relations) and lower level linguistic constructions clear the way for generalization by high level rules in covering linguistic phenomena.

In summary, a parser based on grammar engineering can reach very high precision and there are proven effective ways of enhancing its recall.  High recall can be achieved if enough time and expertise are invested in its development.  In case of parsing, as shown by test results, our seasoned English parser is good at both precision (96% vs. SyntaxNet 94%) and recall (94% vs. SyntaxNet 95%, only 1 percentage point lower than SyntaxNet) in news genre, and with regards to social media, our parser is robust enough to beat SyntaxNet in both precision (89% vs. SyntaxNet 60%) and recall (72% vs. SyntaxNet 70%).

 

[Related]

Is Google SyntaxNet Really the World’s Most Accurate Parser?

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

R. Srihari, W Li, C. Niu, T. Cornell: InfoXtract: A Customizable Intermediate Level Information Extraction Engine. Journal of Natural Language Engineering, 12(4), 1-37, 2006

K. Church: A Pendulum Swung Too Far, Linguistics issues in Language Technology, 2011; 6(5)

Pros and Cons of Two Approaches: Machine Learning vs Grammar Engineering

Pride and Prejudice of NLP Main Stream

On Hand-crafted Myth and Knowledge Bottleneck

Domain portability myth in natural language processing

Introduction of Netbase NLP Core Engine

Overview of Natural Language Processing

Dr. Wei Li’s English Blog on NLP

 

 

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

As we all know, natural language parsing is fairly complex but instrumental in Natural Language Understanding (NLU) and its applications.  We also know that a breakthrough to 90%+ accuracy for parsing is close to human performance and is indeed an achievement to be proud of.  Nevertheless, following the common sense, we all have learned that you got to have greatest guts to claim the “most” for anything without a scope or other conditions attached, unless it is honored by authoritative agencies such as Guinness.  For Google’s claim of “the world’s most accurate parser”, we only need to cite one system out-performing theirs to prove its being untrue or misleading.  We happen to have built one.

For a long time, we know that our English parser is near human performance in data quality, and is robust, fast and scales up to big data in supporting real life products.  For the approach we take, i.e. the approach of grammar engineering, which is the other “school” from the mainstream statistical parsing, this was just a natural result based on the architect’s design and his decades of linguistic expertise.  In fact, our parser reached near-human performance over 5 years ago, at a point of diminishing returns, hence we decided not to invest heavily any more in its further development.  Instead, our focus was shifted to its applications in supporting open-domain question answering and fine-grained deep sentiment analysis for our products, as well as to the multilingual space.

So a few weeks ago when Google announced SyntaxNet, I was bombarded by the news cited to me from all kinds of channels by many colleagues of mine, including my boss and our marketing executives.  All are kind enough to draw my attention to this “newest breakthrough in NLU” and seem to imply that we should work harder, trying to catch up with the giant.

In my mind, there has never been doubt that the other school has a long way before they can catch us.  But we are in information age, and this is the power of Internet: eye-catching news from or about a giant, true or misleading, instantly spreads to all over the world.  So I felt the need to do some study, not only to uncover the true picture of this space, but more importantly, also to attempt to educate the public and the young scholars coming to this field that there have always been and will always be two schools of NLU and AI (Artificial Intelligence).  These two schools actually have their respective pros and cons, they can be complementary and hybrid, but by no means can we completely ignore or replace one by the other.  Plus, how boring a world would become if there were only one approach, one choice, one voice, especially in core cases of NLU such as parsing (as well as information extraction and sentiment analysis, among others) where the “select approach” does not perform nearly as well as the forgotten one.

So I instructed a linguist who was not involved in the development of the parser to benchmark both systems as objectively as possible, and to give an apples-to-apples comparison of their respective performance.  Fortunately, the Google SyntaxNet outputs syntactic dependency relationships and ours is also mainly a dependency parser.  Despite differences in details or naming conventions, the results are not difficult to contrast and compare based on linguistic judgment.  To make things simple and fair, we fragment a parse tree of an input sentence into binary dependency relations and let the testor linguist judge; once in doubt, he will consult another senior linguist to resolve, or to put on hold if believed to be in gray area, which is rare.

Unlike some other areas of NLP tasks, e.g. sentiment analysis, where there is considerable space of gray area or inter-annotator disagreement, parsing results are fairly easy to reach consensus among linguists.  Despite the different format such results are embodied in by two systems (an output sample is shown below), it is not difficult to make a direct comparison of each dependency in the sentence tree output of both systems.  (To be stricter on our side, a patched relationship called Next link used in our results do not count as a legit syntactic relation in testing.)

SyntaxNet output:

1.Input: President Barack Obama endorsed presumptive Democratic presidential nominee Hillary Clinton in a web video Thursday .
Parse:
endorsed VBD ROOT
 +-- Obama NNP nsubj
 |   +-- President NNP nn
 |   +-- Barack NNP nn
 +-- Clinton NNP dobj
 |   +-- nominee NN nn
 |   |   +-- presumptive JJ amod
 |   |   +-- Democratic JJ amod
 |   |   +-- presidential JJ amod
 |   +-- Hillary NNP nn
 +-- in IN prep
 |   +-- video NN pobj
 |       +-- a DT det
 |       +-- web NN nn
 +-- Thursday NNP tmod
 +-- . . punct

Netbase output:
g1

Benchmarking was performed in two stages as follows.

Stage 1, we select English formal text in the news domain, which is SyntaxNet’s forte as it is believed to have much more training data in news than in other styles or genres.  The announced 94% accuracy in news parsing is indeed impressive.  In our case, news is not the major source of our development corpus because our goal is to develop a domain-independent parser to support a variety of genres of English text for real life applications on text such as social media (informal text) for sentiment analysis, as well as technology papers (formal text) for answering how questions.

We randomly select three recent news article for this testing, with the following  links.

(1) http://www.cnn.com/2016/06/09/politics/president-barack-obama-endorses-hillary-clinton-in-video/
(2) Part of news from: http://www.wsj.com/articles/nintendo-gives-gamers-look-at-new-zelda-1465936033
(3) Part of news from: http://www.cnn.com/2016/06/15/us/alligator-attacks-child-disney-florida/

Here are the benchmarking results of parsing the above for the news genre:

(1) Google SyntaxNet:  F-score= 0.94
(tp for true positive, fp for false positive, tn for true negative;
P for Precision, R for Recall, and F for F-score)

P = tp/(tp+fp) = 1737/(1737+104) = 1737/1841 = 0.94
R = tp/(tp+tn) = 1737/(1737+96) = 1737/1833 = 0.95
F= 2*[(P*R)/(P+R)] = 2*[(0.94*0.95)/(0.94+0.95)] = 2*(0.893/1.89) = 0.94

(2) Netbase parser:  F-score = 0.95

P = tp/(tp+fp) = 1714/(1714+66) = 1714/1780 = 0.96
R = tp/(tp+tn) = 1714/(1714+119) = 1714/1833 = 0.94
F = 2*[(P*R)/(P+R)] = 2*[(0.96*0.94)/(0.96+0.94)] = 2*(0.9024/1.9) = 0.95

So the Netbase parser is about 2 percentage points better than Google SyntaxNet in precision but 1 point lower in recall.  Overall, Netbase is slightly better than Google in the precision-recall combined measures of F-score.  As both parsers are near the point of diminishing returns for further development, there is not too much room for further competition.

Stage 2, we select informal text, from social media Twitter to test a parser’s robustness in handling “degraded text”: as is expected, degraded text will always lead to degraded performance (for a human as well as a machine), but a robust parser should be able to handle it with only limited degradation.  If a parser can only perform well in one genre or one domain and the performance drastically falls in other genres, then this parser is not of much use because most genres or domains do not have as large labeled data as the seasoned news genre.  With this knowledge bottleneck, a parser is severely challenged and limited in its potential to support NLU applications.  After all, parsing is not the end, but a means to turn unstructured text into structures to support semantic grounding to various applications in different domains.

We randomly select 100 tweets from Twitter for this testing, with some samples shown below.

1.Input: RT @ KealaLanae : ?? ima leave ths here. https : //t.co/FI4QrSQeLh2.Input: @ WWE_TheShield12 I do what I want jk I ca n’t kill you .10.Input: RT @ blushybieber : Follow everyone who retweets this , 4 mins?

20.Input: RT @ LedoPizza : Proudly Founded in Maryland. @ Budweiser might have America on their cans but we think Maryland Pizza sounds better

30.Input: I have come to enjoy Futbol over Football ⚽️

40.Input: @ GameBurst That ‘s not meant to be rude. Hard to clarify the joke in tweet form .

50.Input: RT @ undeniableyella : I find it interesting , people only talk to me when they need something …

60.Input: Petshotel Pet Care Specialist Jobs in Atlanta , GA # Atlanta # GA # jobs # jobsearch https : //t.co/pOJtjn1RUI

70.Input: FOUR ! BUTTLER nailed it past the sweeper cover fence to end the over ! # ENG – 91/6 -LRB- 20 overs -RRB- . # ENGvSL https : //t.co/Pp8pYHfQI8

79..Input: RT @ LenshayB : I need to stop spending money like I ‘m rich but I really have that mentality when it comes to spending money on my daughter

89.Input: RT MarketCurrents : Valuation concerns perk up again on Blue Buffalo https : //t.co/5lUvNnwsjA , https : //t.co/Q0pEHTMLie

99.Input: Unlimited Cellular Snap-On Case for Apple iPhone 4/4S -LRB- Transparent Design , Blue/ https : //t.co/7m962bYWVQ https : //t.co/N4tyjLdwYp

100.Input: RT @ Boogie2988 : And some people say , Ethan ‘s heart grew three sizes that day. Glad to see some of this drama finally going away. https : //t.co/4aDE63Zm85

Here are the benchmarking results for the social media Twitter:

(1) Google SyntaxNet:  F-score = 0.65

P = tp/(tp+fp) = 842/(842+557) = 842/1399 = 0.60
R = tp/(tp+tn) = 842/(842+364) = 842/1206 = 0.70
F = 2*[(P*R)/(P+R)] = 2*[(0.6*0.7)/(0.6+0.7)] = 2*(0.42/1.3) = 0.65

Netbase parser:  F-score = 0.80

P = tp/(tp+fp) = 866/(866+112) = 866/978 = 0.89
R = tp/(tp+tn) = 866/(866+340) = 866/1206 = 0.72
F = 2*[(P*R)/(P+R)] = 2*[(0.89*0.72)/(0.89+0.72)] = 2*(0.64/1.61) = 0.80

For the above benchmarking results, we leave it to the next blog for interesting observations and more detailed illustration, analyses and discussions.

To summarize,  our real life production parser beats Google’s research system SyntaxtNet in both formal news text (by a small margin as we both are already near human performance) and informal text, with a big margin of 15 percentage points.  Therefore, it is safe to conclude that Google’s SytaxNet is by no means “world’s most accurate parser”, in fact, it has a long way to get even close to the Netbase parser in adapting to the real world English text of various genres for real life applications.

 

[Related]

Is Google SyntaxNet Really the World’s Most Accurate Parser?

Announcing SyntaxNet: The World’s Most Accurate Parser Goes Open

K. Church: “A Pendulum Swung Too Far”, Linguistics issues in Language Technology, 2011; 6(5)

Pros and Cons of Two Approaches: Machine Learning vs Grammar Engineering

Introduction of Netbase NLP Core Engine

Overview of Natural Language Processing

Dr. Wei Li’s English Blog on NLP

 

Is Google SyntaxNet Really the World’s Most Accurate Parser?

Google is a giant and its marketing is more than powerful.  While the whole world was stunned at their exciting claim in Natural Language Parsing and Understanding, while we respect Google research and congratulate their breakthrough in statistical parsing space, we have to point out that their claim in their recently released blog that that SyntaxNet is the “world’s most accurate parser” is simply not true.  In fact, far from truth.

The point is that they have totally ignored the other school of NLU, which is based on linguistic rules, as if it were non-existent.  While it is true that for various reasons, the other school is hardly presented any more in academia today due to the  mainstream’s dominance by machine learning (which is unhealthy but admittedly a reality, see Church’s long article for a historical background of this inbalance in AI and NLU:  K. Church: “A Pendulum Swung Too Far”), any serious researcher knows that it has never vanished from the world, and it actually has been well developed in industry’s real life applications for many years, including ours.

In the same blog, Google mentioned that Parsey McParseface is the “most accurate such model in the world“,  with model referring to “powerful machine learning algorithms”.  This statement seems to be true based on their cited literature review, but the equating this to the “world’s most accurate parser” publicized in the same blog news and almost instantly disseminated all over the media and Internet is simply irresponsible, and misleading at the very least.

In the next blog of mine, I will present an apples-to-apples comparison of Google’s SyntaxNet with the NetBase deep parser to prove and illustrate the misleading nature of Google’s recent announcement.

Stay tuned.

 

[Related]

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

Announcing SyntaxNet: The World’s Most Accurate Parser Goes Open

K. Church: “A Pendulum Swung Too Far”, Linguistics issues in Language Technology, 2011; 6(5)

Pros and Cons of Two Approaches: Machine Learning vs Grammar Engineering

Introduction of Netbase NLP Core Engine

Overview of Natural Language Processing

Dr. Wei Li’s English Blog on NLP

 

 

【没有翻不了的案子,兼论专家vs学习的现状】

白:
分层不是要害,one way才是

我:

什么叫 one way? 没有不可推翻的。原则上讲,如果某个现象足够突出,值得去做,NLP 就没有翻不了的案子。连毛太祖钦定的文化大革命都全面否定、彻底翻案了。

Parsing的分层设计本身隐含了语言学的流程和算法,但与一切的语言学规则一样,规则的背后就是例外。只不过规则及其例外构成的 hierarchy 在同一层表现,而分层的例外则在 pipeline(管式)中处置。经常是做几层 就加一层 patching 做例外处置或修正,也有留到最后通过【词驱动】(word-driven)去唤醒的。词驱动不单单是词,可以是任意可能 trigger 歧义休眠及其唤醒的 ngram。(非词驱动的唤醒,如果需要,还需要研究,目前不太清晰。)但凡是可以词驱动的,问题就不大,因为词驱动聚焦了特定的歧义现象,错误的 parse 在聚焦为有限子树patterns以后是可以预计的,当然也就可以修正。错误不怕,就怕错误不可预测。可预测的 consistent 的错误,在管式架构下不是挑战,不必担心其 error propagation,如果设计者具有“负负得正”的准备和机制的话。

白:
唤醒的ngram再进一步,就是一个CNN了。parsing用明网RNN,休眠唤醒用暗网CNN。相得益彰啊。

我:
听上去高大上,cnn fox abc 呵呵

白:
多层卷积

我:

我骨子里是相信数据的,相信大数据的自动学习,因为太多的语言细节隐含其内,终归是可以挖掘出来帮助parsing和理解的。但不大相信短期内可以改天换地,匹敌专家的经验积累。

syntaxnet 已经被我剁成稀泥了。但同时也注意到 statistical parsing 的精度在最成熟的文体 news 方面,很多年 stuck 在 80 以下,syntaxnet 确实突破了 90,这个成就让他们忘乎所以一把、吹点不符合实际的牛也是情有可原的,虽然多年前我们就把规则系统做到了 90 以上的parsing精度,当时的感觉是理所当然,貌似苦力不值得弹冠相庆(不是蛮力,当然也不可能仅仅是力气活,还有架构者的设计匠心和类似 dark art 一样不可言传的绝技,譬如经年经验加研究而来的 NL“毛毛虫”的formalism及其实现,等等)。没有炫耀,就这么一直默默地领先了“主流”很多年。

虽然仍然无法匹敌规则系统,但深度神经的运用的确使得统计型parser有了新闻领域内的90的突破。很好奇他们如今用了多大的训练库,还用了什么 tricks(据报道行内达人声称真正能玩转深度神经系统的大牛全世界不过百人,因为里面不仅仅是科学,还是 art),其他人多快可以重复结果?最后的大问题是,cnn rnn 等深度神经的牛算法,多快可以移植到新的文体、新的domain和新的语言,这种成功移植的最低条件(譬如最少需要多大的带标数据)是什么。未来的某个时候,如果新的文体新的语言,就像流水线一样,可以高质量快速自动学习出来一个个可应用的 parser 出来,语言学专家们也就死得其所,可以安然地“永垂不朽”了。

不过,在共产主义神经大同真能实现之前,专家还不愁饭碗。

在 parsing 这个NLP核心任务方面,要赶上专家的系统质量也并非易事,因为专家的系统已经证明可以做到非常接近人的分析水平,而且文体和领域独立,鲁棒、线速且可以 scale up,这对学习有诸多挑战。Deep parsing,专家一边是 production system,已经达到实用的高度,学习一边还是 research 在努力追赶,这就是 parsing 质量的现状。可很多人误导或被误导,把深度神经未来可能的成功当成现实或铁定,完全无视专家系统现实的存在。

 

【相关】

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

【泥沙龙笔记:语法工程派与统计学习派的总结】

《新智元笔记:NLP 系统的分层挑战》

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

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

NLP 是一个力气活:再论成语不是问题

【科普随笔:NLP主流的傲慢与偏见】

关于NLP方法论以及两条路线之争】 专栏:NLP方法论

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

《朝华午拾》总目录

 

【语义计算群:带歧义或模糊前行,有如带病生存】

众所周知,作为符号系统,自然语言与电脑语言的最大差异和挑战在于其歧义性,有两类,结构歧义(structural ambiguity)和一词多义(相应的消歧任务叫WSD,word sense disambiguation)。如果没有这些随处可见的歧义,自然语言的自动分析就会与电脑语言的编译一样做到精准无误。因此,一般认为,自然语言parsing和NLU(自然语言理解)的核心任务就是消歧。至少理论上如此。

有意思的是,尽管自然语言一词多义极为普遍,结构歧义也颇常见,人类用语言交流却相当流畅,很多时候人根本就没有感觉到歧义的存在。只是到了我们做 parser 在计算机上实现的时候,这个问题才凸显。与宋老师的下列对话显示,计算语言学家模拟结构分析常遭遇歧义。

宋:
“张三对李四的批评咬牙切齿”,这是两可。
“張三对李四的批评不置一词”,这里有第三种可能。
“張三对李四的批评保持中立”,另一种两可。
“張三对李四的批评态度温和”,这是三可了。

我:
宋老师 我已经晕了。您是计算语言学家的敏感或敏锐,绝大多数 native speakers 是感觉不到这些句子之间的结构歧义及其不同之处的。

t0708o

目前的 parsing 结果,“保持中立” 的主语(S)是“批评”,这个解读不是不可能(批评意见的保持中立,可以间接指代给出这个批评的“张三”),但很勉强;多数人的解读应该是:“张三” 保持中立,“张三”不是“批评”的主语,“李四”是,不仅如此,“批评”隐含宾语回指到“张三”。第二句的parse倒显得更合理一些,关于这个“批评”(Topic),(其)“态度”是”温和”的,指代的是“张三”,而“批评”“李四”的正是“张三”。

宋:
“张三对李四的批评”+谓语,就批评者和被批评者来讲,有3种填坑的可能:
(1)批评者是张三,被批评者是李四。(2)批评者是李四,被批评者是张三。(3)批评者是李四,被批评者是第三者。
“置若罔闻”与“不置一词”不一样。对于这个V的主体A来说,一定是有一个评论,“置若罔闻”是说该评论是针对A的,而且是负面的;“不置一词”则没有这两条限制。

我:
两个逻辑谓词(句末的谓语和前面的“批评”)抢同一个PP(对),计算上总会遇到 scope 纠缠。再加一个 “对(or 对于)” 歧义就没了。“张三【‘对于’【‘对’李四的批评】 保持中立】。” 可是两个 “对” 听起来别扭,很少人这么用。

结构歧义其实没有我们想象的可怕。如果目标是语义落地 需要调整的不是追求落地前消灭一切歧义,而是反过来思维,如何让语义落地能够容忍歧义的保留,或者歧义的休眠,或者任意的某个 valid 的路径。其实人的理解和响应 也不是在 ambiguity-free 的前提下进行。现代医学有一个概念,叫带病生存。语言理解也应该有一个概念,带歧义落地。适度的歧义作为常态来容忍。

这是结构歧义,WSD 更是如此。绝大多数语义落地 可以容忍或绕过 WSD 的不作为(【NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈】)。MT 可能是对 WSD 最敏感的一个语义落地的应用了。即便如此,也并非先做好 WSD 然后才能做好 MT 落地(MT中叫 “lexical transfer”)。有亲戚关系的语言对之间 有很大的 keep ambiguity untouched 的空间 自不必说。即便在不相关的语系之间,譬如英汉的MT中,实践证明,全方位的 WSD 也是不必要的。细线条的 WSD 则更不必要。细线条指的是 词典里面的那些义项, 或 WordNet 中 synsets,其中的很多本义和引申义的细微差别 没有必要区分。

还有那些那些 hidden 的逻辑语义,是不是要挖掘出来呢?迄今为止,我们在句法后的语义中间件中做了部分这样的工作,但一直没有全力以赴去做全,虽然因为句法结构树已经提供了很好的条件了,这个工作并不是高难度的。

今天思考的结果是,其实很多 hidden links 没有必要整出来。如果一个 hidden link 本身就很模糊或歧义,那就更应该置之不理。自然语言带有相当程度的模糊性,语言本身也不是为了把每个细节都弄清白。人的交流不需要。如果一个细节足够重要,但这个细节在表达上是 hidden 的,省略的,或模糊的,那么人的交流就会在接下去的句子中把它 explicitly 用清晰无误的句法结构表达出来。

从语义落地的实践中也发现,大多数的 hidden links 也是不必要的。背后的道理是:信息流动的常态是不完整,不完整在信息交流中起到了减轻记忆负担、强化信息核心的重要作用。

理论上,每一个提到的谓词都有自己的 arg structure,里面都有潜在的坑,需要信息的萝卜来填。但语言的句法会区分谓词的不同地位,来决定是否把萝卜显性地表达出来,或隐去萝卜。常见的情形是,隐去、省略的萝卜或者不重要,或者不确定,都是信息交流双方不太 care 的细节。譬如一个动词 nominalize 后,就往往隐去 args (英语的动名词,汉语利用“的”的NP句式)。这种自然的隐去已经说明了细节不是关注点,我们何苦要硬去究它呢?

当然,上面说的是原则。凡原则一定有例外,某个隐去的细节如果不整明白,语义就很难落地到某个产品。能想到的“例外”就是,很多 hidden links 虽然其语义本身在语用上不是重要的信息,但是至少在 MT 的产品中,这个 hidden link 可以提供结构条件,帮助确定更合适的译词: e.g. this mistake is easy to make:make 与 mistake 的 hidden VO link 不整出来,就很难确定 make 的合适译法为 “犯(错误)”
关于隐去或省略的大多是不重要的,因此也 NLU 通常不 decode 出来也 OK,可以举个极端的例子来说明:

Giving to the poor is a virtue
Giving is a virtue

give 是一个 3-arg 的谓词,who give what to whom,但是在句法的名物化过程中,我们看到第一句只显性保留了一个萝卜(“to the poor”)。第二句连一个萝卜也没有。
我们要不要从上下文或利用标配去把这些剩下的坑都填上呢?
不。

白:
从陈述性用法“降格”为指称性用法的时候,对坑所采取的态度应该是八个字:“来者不拒、过时不候。”  比如,”这本书,出版比不出版好。”
我们没有必要关心谁出版,但是既然提高了这本书,填坑也就是一个举手之劳。

我:
很同意。就是说,一般来说对于这些有坑近处没萝卜的,我们不要觉得愧疚和心虚,who cares

 

【相关】

NLP 迷思之四:词义消歧(WSD)是NLP应用的瓶颈

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

《朝华午拾》总目录

 

【一日一parsing:休眠唤醒的好例子】

白:
IPTV首页广告语“IPTV,电视新看法”。
需要休眠唤醒的好例子。

我:
t0796a
对,这个 hidden ambiguity 与 “难过”、“好过”一样,可以也应该休眠唤醒。如果真想做的话,就在“看法”的词条下,在句法后做一个词例化规则:
查一下“看法”(默认词义:viewpoint,有个 human 的坑)的 Mod 来唤醒第二条路径(词义)。
查 Mod 的条件有宽松两个选择,可以根据大数据测试的质量来权衡定夺:
(1)宽的话,如果 Mod 不是 Human,那就唤醒
(2) 窄的话,如果 Mod 是“看”的搭配词(看电影、看电视、看戏、看热闹、看耍猴 etc),那就唤醒

白:
作为一个词的“看法”有两个坑,“谁”对“什么”的看法。“谁”即使锁定到human和“电视”不搭调了,还有“什么”可供填充。所以,单纯从一个坑的不匹配,还不足以翻盘。需要“看-电视”这样的强搭配来推波助澜里应外合。

我:
好!
唤醒的是句法层面的定中关系(默认的是词典的合成词,可以看成词的黑箱子,也可以看成是词法内部的定中关系):“看-法”(而不是“看法”),语义落地在 MT 上的表现就是选择第二个译法:way of 看。因为搭配找着了,MT 也就可以把“看”的翻译从默认的“see”改成搭配的“watch”:
IPTV,电视新看法 ==》
IPTV, a new way of watching TV (而不是 TV’s new viewpoint)
这个思路是没有问题的 虽然需要花点儿力气。至于选择做还是不做 那是另一个问题。
在“难过” vs “难-过” 这样的case上,我们做 sentiment,是选择了去做,用到上述休眠唤醒的招术,把表达主观负面情绪的默认的“难过”解读,语义落地为表达客观负面情形的“难-过”。见 【立委科普:歧义parsing的休眠唤醒机制再探】 。

梁:
“IPTV,电视新看法” 这句话,连我都休眠了好一阵,刚刚被唤醒。
语义落地到 MT, 是 “ IPTV, a new way to watch TV” ?
so it is either, 一种看电视到新方法, or 一种对电视的新的看法? ”看法“ could be “opinion”?

我:
广告跟段子一样,故意弄这些,为了俏皮,加深印象。
可喜的是,至少我们寻到了解决这类段子似的俏皮话的计算机实现的路径。
休眠唤醒的事儿,以前在语义落地的时候“自发地”做过,但从来没有总结到现在的高度,可以有意识地推广运用。这是在本群与白老师等探讨的收获。
hidden ambiguity 和段子这类的parsing,以前一般都认为是难以企及的语言难题。至少现在不是那么遥不可及了。

梁:
想想这事是挺有趣。“看法”,本来挺强劲的结合,硬是给左边的“电视”拆开了。这类暗中较劲,猜想、比较、争吵,分裂,结合,settle 的过程,人的大脑 parsing 的时候,可能也有这样的过程。据说人思考时经历一种微型达尔文过程。

白:
【转神段子】航拍记录显示,湖北已经基本都是湖,找不着北了。
看看如何休眠唤醒。

K:
他伸出双手,要露上两手。

我:
唤醒啥? “找不着北” 是成语:
t0707a

白:
湖北两个字,只剩一个字了 另一个字找不着了
元层次和对象层次的纠缠

我:
并不影响语义理解

白:
影响段子理解

我:
俏皮的定性 如果也是语义的一部分 可以利用机械扫描匹配 来发掘 无需与句法层发生纠缠

白:
总之是要吃回头草

我:
不属于核心语义。核心语义是 湖北这个地儿现如今到处是水 方向辨别不清了

白:
核心语义没发生颠覆或荒诞化 只是附加了一层元层次上的俏皮。段子理解,有颠覆型的也有附加型的。

我:
“伸出双手 露上两手” 同理 同机制 也可以扫描匹配发掘 后半部也是成语 唤醒的是成语的非成语解读。这与切词中的 hidden ambiguity 同理。

白:
俏皮也是附加。还有我之前举的例子,“贾宝玉托举林黛玉,纯粹是多此一举”。先导词语素的重叠使用。

K:
电视的新看法 看法有了非成语语义属于唤醒

我:
Longest principle 默认一个多语素词的黑箱子性质,但在特定的上下文中 可以唤醒句法透明的解读。
t0707b

K:
露上两手 多此一举 是否与之类似呢?唤醒了手与举的非成语语义?

白:

我:
就是。词法的内部关系 唤醒为句法的外部关系。哪怕词法句法是一脉相承 平行的,句法解读与词法解读 在语义和概念层面是很不同的。英语类似的 hidden ambiguity 有blackboard 解读为black board

K:
感谢二位老师
我理解 成语语义的整体性与成语内部结构的潜在可分解性会影响休眠唤醒
比如 新看法 作为成语有其常用语义,但其内在结构可分解,(新(看(法))),这种结构分解为 看法 增添了新的语义。这与分词中的组合型歧义有关联。何时分,何时合,可能单在分词层面难以完成,有什么好的解决办法吗?

白:
先说没有外部刺激是不该拆开来的
然后再说外部刺激可能有哪些特征
比如,重复。

 

【相关】

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

泥沙龙笔记:NLP hard 的歧义突破

【新智元:parsing 在希望的田野上】

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

《朝华午拾》总目录

【deep parsing,deep learning 以及在对话和问答系统中的应用】

如何把deep parsing的东西系统地用到对话系统中来?
这个以前多次零星讨论过,再梳理一下。

1. 先说 deep parsing 与 deep learning 的结合

两种结合方式,一种是内在的,一种是外在的。

1.1. 内在的结合

问题可以反过来看,绝大多数对话系统是不用 deep parsing 的,这就是没有代入结构的 baseline。如果不代入结构就已经满足应用的要求,自然没有 deep parsing 什么事儿。但其实是 baseline 有缺陷,不能解决一些问题,譬如 sparse data 的问题。
下一个问题就是,我们知道语言是有结构的,理论上讲代入结构一定对克服 sparse data 的问题有利,但实际上怎么去做,还不清楚。抽象地说,这是一个研究课题,沙龙里面讨论时候也有人提过,迄今为止的浅尝辄止,把结构作为features代入一个ngram为基础的学习模型,没有发现简单的结合办法,可以显著提高质量,这受到到 evidence overlapping 和算法复杂度等挑战。我们以前也做过这种结合的尝试,也是浅尝辄止没有深入,当时的结论是,看到了曙光,但还需要更深入的探索尝试。
迄今整个领域没有深入研究这个问题,不仅仅是研究性的挑战(算法复杂度等),更主要是:很多团队没有靠谱的deep parsing 的条件作为探索的基础,加上整个领域20多年一直陷在浅层里面做 NLP,还没有余力去做这一方面。但现在似乎到了认真做这个的时候了,因为甚至 deep learning 在算法上的突破,迄今也还是没有突破 text 结构的瓶颈,这是下一步比较清楚的方向。
我的设想是,可以重新定义 ngram 作为带入结构的探索。譬如 bigram 以前的定义就是 w(i) w(i+1) 序列,我们可以重新定义为 R(w1,w2)。这个 R 就是结构,譬如 动宾,主谓,定中,状语 等关系,deep parsing 的那些句法关系。其中的 w1 与 w2 也可以做扩展,不再是词(直接量),而是包括直接量的关于那个节点的不同抽象度的 features (最上层是 POS,中间还有带入 ontology 的可能)。当然从直接量提升到不同的 features,很可能造成模型太复杂:怎么控制复杂度,又不局限于直接量,是一个需要拿捏分寸的事儿。但总体思路就是,既要跨越线性距离的局限(通过用 R 代替 linear ngram,这是 arc 的抽象概括能力),又要跨越单词直接量的局限(node 也要具有抽象概括能力),这才有可能在学习的系统中真正有突破性进展。这个探索值得花大力气,因为这是 text NLP 的方法学上的突破,适用的不仅仅是对话系统,而是一切的ngram为基础的NLP。这是从机器学习带入 deep parsing 的角度看探索的方向。

1.2. 外在的结合

如果不从机器学习的角度看,deep parsing 支持对话系统本质上就是一个小数据的精度分析和语义落地的任务,规则本身是有一套自己的方法去做的。这一路做下去的结果是,精度(precision)高,但广度(recall)是挑战,需要靠时间去磨(incremental recall enhancement)。

这种高精度的 deep parsing 作为支持的规则系统,也可以外在地与机器学习的 baseline 系统结合。我们叫做 backoff model:就是让没有结构的机器学习的系统垫底,以弥补 recall 的不足,让 parsing 支持的精度系统作为首选。

这种外在的结合相对容易,因为两套系统是分别开发的,虽然目标是一致的。只不过到调用的时候再把两套系统结合起来。这与前面说的把 parsing 带入机器学习(1.1)不同,因为前面的是你中有我的结合,具有研究性的挑战(overlapping和perplexity等)。

我的看法是,两个路子都值得尝试:前者一旦突破,是研究的成就,有学术的影响。
后者是工程的做法 可以立竿见影。双方最终都要求一个靠谱扎实的 deep parser,对于汉语,迄今很少人做得到。汉语 chunking 倒是有靠谱的 但 deep parsing 未曾见到(不算在下)。

2.  再说说,deep parsing 在小数据系统与大数据系统的应用

对话系统基本是 front-end,面对的是小数据的处理与应对,虽然对于学习系统,在训练的时候,训练集可以是所有收集得到的对话,也有一定的量。

对于大数据挖掘以及用挖掘结果去支持问答系统(也可算是一种“对话”的延伸,譬如类似 IBM 沃森的问答系统),那边有一个 back-end engine,专门处理大数据,以抽取挖掘或在线搜寻 open-ended 的答案。这个大数据架构下,deep parsing 怎样起作用,可以说得更清晰 有把握 因为这些都是做过的工作:been there done that,在大数据挖掘,知识图谱,舆情监控,客户情报,自动民调,问答系统,智能搜索和智能浏览这些方面,deep parsing 是地地道道的核武器。

在小数据应用场合,deep parsing 也应该有很大助益,因为毕竟小数据更加依赖分析的精度。但是小数据的短板是没有大数据的信息冗余作为补偿。

或曰:车轱辘话
答曰:信息冗余是大数据时代的自保策略,否则一切真知灼见都可能烟消云散。

总之是大数据有了deep parsing,柳暗花明;大数据没有它,万古如长夜。但并不是一切的 deep parser 都是核武器,不信你下载一个斯坦福或者SyntaxNet试试就知道了。这些 deep parsers 下载来,你很难做一个像样的应用。主要原因有二:(i)他们基本没有 domain portability,设计者有本事训练出来,你下载以后想如法炮制,在你要应用的领域去重新训练,哪怕你真弄到了训练数据,其成功可能性还是渺茫;(ii) deep parsing 是 NLP 应用的核武器,绝不仅仅是指我们看到的那些句法树,还有句法树上的每个节点的丰富信息,包括 ontology。而下载来的这些 parsers 通常缺乏丰富的节点信息: 光靠单词(直接量)加上句法树结构是做不了大事的。因此核武器能不能发挥威力,很大程度上取决于 made in where and made by which approach.

其实 如果 斯坦福的 parser 或 谷歌的 SyntaxNet 能够发挥威力,迅速横扫深度 NLP 应用和产品 哪里会等到你去做 早有捷足先登的人了。而且果如此,他们大概也不会开源了,自家先发了再说。天上掉不下馅饼 就是这个道理。

Guo 君给我留言说,你整天追在学习后面喊打,人家眼珠子都不动,该干嘛干嘛。他眼珠动还是不动,根本不是我关心的。我是菩萨心肠,为了世界的丰富性和多样性,为了后学,为了NLP的未来世界,心胸早已超越一己之私,一党之争。如果没有人发声,这个世界多么单调寂寞,多少人被误导和洗脑。多少人在结果还没出来的时候,就盲目相信深度神经一定会 work,又有多少人根本就不知道这个世界还有神经以外的理性算法

阿弥陀佛。

【后记】

话多可以洗脑,嗓门高也可以洗脑。乔姆斯基的不同政见,批判美国外交政策和媒体洗脑,几十年来基本没有变动,一直是车轱辘话。他就是反复地不同角度地以不同的案例讲的是同一个见解,与马克思讲《资本论》一个路数。

不止一位朋友反映:你这速度,写的比我读的还快,哪里有那么多时间。我当是 compliments,因为所写虽有冗余,但并非口水,不乏真知灼见。这点儿信心还有。

哪里有那么多时间?鲁迅早就说过的,时间就是海绵。又说,那是把资产阶级喝咖啡的时间也挤出来了。大家都是24小时,彼此彼此,吃喝拉撒睡、上班点卯,样样不能少。

喷涌的时候写,总比枯竭的时候挤牙膏强。兴致来的时候不写,兴尽而归,就了无音息了。了无音信其实也没啥,自己脑袋的知识和见识并没有因此减少,但人活着,也不能只为了自己的脑袋不是。

其实 人一辈子有这个状态也不多。少年求学,青年求偶,中年养家,青年-老年也都还有个梦想 put a ding somewhere,总之人一辈子就是个劳碌命。随心随性的自由不过是劳碌之间的一次休假。要惜福感恩。

 

【相关】

关于 parsing

【关于信息抽取】

【关于大数据挖掘】

【关于问答系统】

【关于NLP应用】

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

《朝华午拾》总目录

 

【语义计算沙龙:乔老爷的围墙,community 的盲区】

白:
所以,述补结构的处理,分层上要先于名词(短语)填坑。全放在一个平面,就说不清楚坑多萝卜少咋分的。
我:
那是因为 subcat 不是静止的。起点是词典,但在后续中 有变。
在欧洲语言 有一些构词元素具有改变 subcat 的功效 使动语素(世界语用 -ig-)和自动语素(-igh-)是代表,morphology 里面的专门一章学问 有一套套的术语名词。
到了孤立语 句法结构就承担了一些这类subcat remapping 的功效。
白:
“这些馒头把我吃胖了”是个非常好的例子。X吃Y,Z胖。分析X、Y、Z各自的subcat,发现X与Z匹配的可能远大于Y与Z匹配的可能。而Z说好了要做结合后述补结构的逻辑宾语的,于是Y只好很不情愿地做了结合后述补结构的逻辑主语。
“把”就是“置底”,“被”就是“置顶”,“的”就是“掏心”,都是在做语序的重定向。
我:
有意思的说法。
总之 open ended 动补结构 需要动态调整 subcat 的预期指向。
白:
分层了就把复杂问题变简单了。先合并坑,再让坑一致对外。等到真正填坑的萝卜来了,坑多已经是历史传说了,现实的坑不多不少。
我:
分层是必由之路。
不仅仅是为这个 args 的捕捉。很多现象都有 local 和 全局的区分,把 local 的 和 全局的 放在一个锅里煮。不是偷懒 就是脑子进水了。出了问题找不到合适解决途径,还振振有词辩解说 语言是 inter-dependent 的,怎样分层都是割裂整体。这样思维的人 是自作自受。不管语言这个 monster 多么相互关联,难以一刀切干净,作为语言工程 你都必须切成模块。关键不在模块之间是不是绝对地合适分开 大体齐就行了;关键在于 切割了 还仍然是一个 integrated 的无缝连接的系统。即便有些地方切得不妥了 也要有改正、弥补、唤醒或其他补救或patching的机会。这样才好把千头万绪简化成 tractable 的工程开发任务。
事实上,以前红过一阵子的 unification grammars 一派 虽然最终在业界没能开花结果 在学界也被排挤得差不多了,这拨人还在 有不少是名校的名教授。他们深陷在 CFG 的单层的 formalism 里面 加上 unification 的实现也是以 Prolog 的回溯机制为基础,既无效率 也不能真正深入 很难有 scale up 的指望。结果 这帮人形成了自己的一个圈子 也有一定的体量 自己跟自己玩儿,虽然对NLP的学界和业界的影响几近于零了。每年各地诸侯会聚一次。起个名字好像叫 …… 忘了,总之是类似 very deep parsing 意思的一个什么。其实,怎么可能 very deep,如果层次和formalism这一关不过的话?在乔姆斯基倡导的 formal linguistics 的研究中,他们算是异端。姥姥不疼舅舅不爱 我们外人看去怪落寞的。可是当年(博士阶段)初学的时候 却被它的巨大魅力而吸引。这是一个看上去很美的框架。
白:
毛毛虫万岁!
我:
对。可是看清这一点的 人不多。那么多人陷在乔老爷的怪圈里。

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

白硕老师这篇文章值得所有自然语言学者研读和反思。击节叹服,拍案叫绝,是初读此文的真切感受。白老师对乔姆斯基形式语言理论用于自然语言所造成的误导,给出了迄今所见最有深度的犀利解析,而且写得深入浅出,形象生动,妙趣横生。这么多年,这么多学者,怎么就达不到这样的深度呢?一个乔姆斯基的递归陷阱不知道栽进去多少人,造成多少人在 “不是人话” 的现象上做无用功,绕了无数弯路。学界曾有多篇长篇大论,机械地套用乔氏层级体系,在自然语言是 context-free 还是 context-sensitive 的框框里争论不休,也有折衷的说法,诸如自然语言是 mildly sensitive,这些形而上的学究式争论,大多雾里看花,隔靴搔痒,不得要领,离语言事实甚远。白老师独创的 “毛毛虫” 论,形象地打破了这些条条框框。

     白老师自己的总结是:‘如果认同“一切以真实的自然语言为出发点和最终落脚点”的理念,那就应该承认:向外有限突破,向内大举压缩,应该是一枚硬币的两面。’ 此乃金玉良言,掷地有声。

Church 写 《钟摆摆得太远》 的时候 看到了表象 格局和视野都有 但就是没看到毛毛虫的实质。他看到了这个奇怪的现象:做 formal linguistics 的 community 研究了很多语言现象 有些问题研究得很深入 并试图以自己的框架形式化分析他们 而做 nlp 的这个community 几乎全部陷在浅层的泥坑里。本来面对的是同样的自然语言 而且双方都力图形式化和电脑实现它 应该可以互补的 但这两个 communities 是如此格格不入 老死不相往来 互相看对方 都是雾里看花。
白:
门户之见是不需要证据的
我:
所以他就开了个药方 要求在理性主义预计要回归的时候 请下一代 CL 的学生 必须去修语言学的课程,“计算语言学”不能丢了“语言学”的本,必须知道语言学圈做了些什么 改变这一代的”NLP大师”缺乏语言学的怪象。
白:
抄底靠的是先知先觉。等学生上课,黄花菜都凉了
我:
但是这个药方和呼声是如此疲弱 至少迄今没人当回事。而且这个药方本身也有问题 因为那个另一派也的确问题多多。自己在围墙里面束缚了自己,完全不接地气。争论的问题一多半是口水,大多是 system internal,玩的过家家的游戏(《Church:钟摆摆得太远》)。

quote 计算语言学课程的缺陷

正如上面明斯基和帕佩特指出的,我们不断犯同样错误的部分原因与我们的教学有关。辩论的一方在当代计算语言学教科书中已被遗忘,不再提及,只能靠下一代人重新认识和复原。当代的计算语言学教科书很少介绍PCM 三位前辈。在汝拉夫斯基(Jurafsky) 和马丁(Martin) 编著的教科书以及曼宁(Manning) 等编著的两套教科书中根本没有提及皮尔斯。三本教科书中只有一本简要提起明斯基对感知机的批评。

他要学生回头去啃乔姆斯基等理性主义大师,但不知道乔姆斯基本人就是最大的误导者(乔姆斯基批判《【钟摆摆得太远】高大上,但有偏颇》[转载]【白硕 – 穿越乔家大院寻找“毛毛虫”】)。

w:
@wei 很是同意“关键在于 切割了 还仍然是一个 integrated 的无缝连接的系统 ,即便有些地方切得不妥了 也要有改正、弥补、唤醒或其他补救或patching的机会”。切割是为了方便处理,藕虽断但丝还连。即使切错了,还能找回来才是真谛。
白:
这是一个搜索调度策略的问题。无论是平推,还是花开N朵先表一枝,还是台面上的路径之外另有暗送秋波的密道,都是可供选择的。“先表一枝”如能综合使用词典的、subcat的、中间件的、大数据的知识,在概率上可以占得先机。“密道”维护一条“阈下”暗流,一旦主线不保,立刻跳出来翻案,在段子的理解上最像人,但是密道的日常维护机制和受激翻案机制是个高难度的机密。
平推加概率,如果有很好的硬件实现RNN,效率绝对不低。至少确保线速。

我:
rnn 经白老师不断灌输 我就当它为神器来膜拜。
林彪说了 理解的要执行 不理解的更要执行 我对白老师的 rnn 的感受就是如此。
白老师啥时来一个 rnn 直通道 提供一个接口 我就可以不断给它 feed 语言学。
w:
@白 现在的硬件发展肯定会助推DL的性能的。只要基础理论框架结实且有市场,很多的硬件商都会挤进来的,没有人和蛋糕过不去的,AI硬件GPU,FPGA,还有其他什么xPU的倒不少,不过自己没认真关注。
@wei 如果接口来了,那语言学知识好不好喂?是专家级的专属?还是一般用户可为?感觉这是能走多远,走多广的问题。
感觉上李师parser的确是核武器,专家维护几枚就好。不过市场倒很大,很多人想有一枚。就是渠道打不开。
同意白老师的密道说。而且密道也应该不是直通型的,是网络交叉型的。运行时维护密道和应时启用的确是关健。
白:
伟哥说我描述句法分析还带着账房先生的味道,这让我想起当年被傅爱萍请到社科院语言所做交流时,我提起过的“铜臭”。一晃过去这么多年了。

 

【相关】

Church:钟摆摆得太远

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

乔姆斯基批判

《泥沙龙笔记:【钟摆摆得太远】高大上,但有偏颇》

【语义计算沙龙:Parsing 的数据结构和形式文法】

关于NLP方法论以及两条路线之争

《朝华午拾》总目录

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

Kenneth Church 谈人工智能和自然语言的历史、发展与未来
选自中国计算机学会通讯

作者:Kenneth Church
翻译:李维(美国网基公司首席科学家)
唐天(美国网基公司首席科学家助理兼助理工程师)

译者按:肯尼斯·丘吉(Kenneth Church) 是自然语言领域的泰斗,语料库语言学和机器学习的开拓者之一。丘吉的这篇长文《钟摆摆得太远》(A Pendulum Swung Too Far) 是一篇主流反思的扛鼎之作。作者在文章中回顾了人工智能发展中,理性主义和经验主义各领风骚此消彼长的历史规律,并预测了今后20 年自然语言领域的发展趋势。文章的主旨是,我们这一代学者赶上了经验主义的黄金时代(1990 年迄今),把唾手可得的低枝果实采用统计学方法采摘下来,留给下一代的都是“难啃的硬骨头”。20 多年来,向统计学一边倒的趋势使得我们的教育失之偏颇。现在应该思考如何矫正,使下一代学者做好创新的准备,结合理性主义,把研究推向深入。丘吉的忧思溢于言表。丘吉预测,深度网络的热潮为主流经验主义添了一把火,将会继续主导自然语言领域十多年,从而延宕理性主义回归的日程表。但是他认为理性主义复兴的历史步伐不会改变。他对主流漠视理性主义的现状颇为忧虑,担心下一代学者会淹没在一波又一波的经验主义热潮中。

实用主义动机

20 世纪90 年代,经验主义的复兴是一个激动人心的时刻。我们从来没有想到,我们的努力会如此成功。当时,我们想要的只不过是一席之地而已。在当时流行的各项研究之外,我们所想的只是为不同于当时其他研究的工作争取一点空间。我们成立了SIGDAT为这类工作提供一个论坛。在1993 年成立之初,SIGDAT只是一个相对较小的关于大语料库的会议论坛,后来演变成规模较大的EMNLP 会议。起初,SIGDAT 会议在很多方面(规模、主题和地理范围)都与主流ACL大会非常不同。然而若干年后,这些区别已经很大程度上消失了。两个会议靠拢,这让人感到高兴。但我们可能是太成功了,我们不仅成功地让我们感兴趣的工作登堂入室,没给其他工作留下多少空间。图1 展示了从理性主义到经验主义的这一戏剧性转变。这种转变还在继续,似乎看不到尽头。

根据霍尔(Hall) 等人的文章,这种转变始于1988 年布朗 (Brown)和丘吉的工作。霍尔等人的依据是对ACL 文集的分析,文献包括自20 世纪70年代至今在计算语言学领域发表的总计16500 篇论文。

但是,如果我们考虑一个更长的时间段,追溯ACL 文集以前的文献,我们看到的是一幅非常不同的画面,如图2 所示。更加显著的趋势是经验主义与理性主义之间的振荡,像钟摆一样,每隔二十多年来回振荡一次:

  • 20世纪50 年代:经验主义(香农(Shannon)、斯金纳(Skinner)、弗斯(Firth)、哈里斯(Harris)) ;
  • 20世纪70 年代:理性主义(乔姆斯基(Chomsky)、明斯基(Minsky));
  • 20世纪90 年代:经验主义(IBM 语音团队(IBM Speech Group)、AT & T 贝尔实验室(AT&T Bell Labs));
  • 2010年代:回归到理性主义了吗?

本文将回顾一些我们这一代人曾经“反叛”的理性主义观点。遗憾的是,我们这一代是如此成功,以至于这些理性主义观点被人们忘却了(如果我们接受图2给出的预测,那么现在正是理性主义应该复苏的时期)。有些重要的理性主义代表人物如皮尔斯(Pierce) 在当今流行的教科书里甚至没有提及。如此下去,下一代人可能没有机会听到理性主义一方辩论的声音。特别是,如果理性主义立场在今后几十年逐渐流行,理性主义者可以提供很多值得重视的见解。

zb1
图1 理性主义到经验主义的转变令人惊讶(而且毫无争议)。该图是基于鲍勃·摩尔(Bob Moore)和弗雷德·贾里尼克(Fred Jelinek)对ACL会议的独立调查(私人通信)

是什么促使20 世纪90 年代经验主义的复兴?我们当时在反抗什么?经验主义复兴实际上是受到了实用主义考量的推动。学术界当时正埋头研究自然语言中面临的巨大挑战,例如完备人工智能(AI-complete) 的难题和远距离的依存关系。而我们所提倡的是从务实的角度来先针对一些较简单的、较有可能求解的任务,例如词性标注。当时数据的获得变得前所未有的方便。我们能用这些语料数据做些什么呢?我们认为,做成一些简单的事情比根本不做强。让我们去摘取一些低枝的果实,让我们利用近距离依存关系做我们能做的事情。虽然那不能解决整个问题,但还是让我们专注于我们能做什么,而不是我们不能做什么。玻璃杯有一半是满的(而不是已经空了一半)。

zb2
图2:对文献不寻常的解读,其中图1所示的趋势(此处以红点表示)是每隔20多年更大振荡的一部分。注意红点所示的是实际数据,而振荡曲线所示意的趋势只是为了说明一个观点

我们当时是这样记述这段历史的:

“20 世纪90 年代重现了具有20 世纪50 年代风格的语言分析的经验主义及其统计方法。50 年代是经验主义的高峰期,主导了从心理学(行为主义)到电子工程(信息论)一系列广泛的领域。当时语言学的通行做法是,不仅仅依据词义,还要基于它与其他词共同出现的情形来划分词类。50 年代英国语言学领域的领袖人物费思(Firth)用一段令人难忘的话总结此方法:‘通过一个词周围的词来了解这个词的意义。’遗憾的是,受一系列重大事件的影响,50年代后期和60年代早期,经验主义式微。这些重大事件包括乔姆斯基(Chomsky) 在《句法结构》(Syntactic Structures ) 中对N 元文法 (n-grams) 的批判,明斯基与帕佩特(Papert) 对神经网络的批判。

经验主义复兴最直接的原因也许是大量数据可用:文本从来没有这么丰富过。10 年前,搜集了100 万词的布朗(Brown) 语料库就被弗朗西斯(Francis) 和库塞拉(Kucera) 认为是大数据,但即使在那时,也有更大的语料库,如伯明翰(Birmingham) 语料库。如今,许多地方的文本样本已经达到上亿甚至几十亿词量……。通常称为文本分析的数据密集型语言研究方法采取的是实用主义手段,非常适合近来被强调的数值评估和具体的任务。文本分析强调对非受限文本(unrestricted text) 的广泛覆盖(尽管可能肤浅),而不是对于(人为)限定领域的深度分析。”

寒冬

20世纪90年代早期, 研究界发现应该注重务实方法,原因之一是该领域当时正处于严重的资金寒冬, 史称第二季人工智能寒冬(AI winter of1987~1993)。在又一次资金萧条到来之际,研究共同体比较容易接受一种更加现实的、结果更可靠的新方法。根据维基百科资料:

“在人工智能的发展历史中,所谓人工智能寒冬是指社会对人工智能研究的资助和兴趣消减的时期。许多新兴技术都经历了从狂热、失望到资金削减的过程(例如历史上的铁路大开发以及网络泡沫),但是人工智能的问题更加突出。这种模式已经发生过许多次了:

  • 1966 年:机器翻译的失败;
  • 1970 年:放弃人工智能联接主义(connectionism) ;
  • 1971~1975 年:美国国防部高级研究计划局(DARPA) 对卡耐基梅隆大学语音理解研究项目的失望;
  • 1973 年:莱特希尔(Lighthill)人工智能评估报告(Lighthill Report)发表之后,英国对人工智能研究资助的大幅削减;
  • 1973~1974 年:DARPA 削减对人工智能学术研究的资助;
  • 1987 年:Lisp 机市场崩溃;
  • 1988 年:战略计算规划(the Strategic Computing Initiative) 取消了进一步资助人工智能的计划;
  • 1993 年:专家系统慢慢跌入低谷;
  • 1990 年代:第五代计算机项目的原始目标黯然淡出视野,以及被牵累迄今的人工智能的坏名声。

人工智能经历的最糟糕的时间段是1974~1980 年和1987~1993 年。有时人工智能寒冬指的就是两者之一(或两者的某个时间段)。”

寒冬常常紧跟着过度的乐观主义,例如西蒙(Simon)在文献中提到的:

“在不久的未来——不会超过25年——我们将会有技术能力用机器来代替机构中的任何人类功能。而且,我们将充分掌握人类认知过程及其与人类情感、态度和价值观的交互过程的理论,这些理论将会被实验所证实。”

如今,比起第二季人工智能寒冬,我们变得更有信心。15 年低枝果实的采摘已经取得了相对稳定的成果,也获得了相对稳定的资助,至少比人工智能寒冬的形势乐观很多。

皮尔斯、乔姆斯基和明斯基

毋庸讳言,我们所反抗过的伟大的理性主义者如皮尔斯、乔姆斯基和明斯基(Pierce, Chomsky and Minsky, 以下简称PCM),对人工智能领域的现状不会感到满意。当然,另一方面,今天此领域的领军人物大多也不乐意看到PCM 理性主义的复兴。一位领域的带头人听说我在写这篇文章,讥讽道:“皮尔斯对我们现在有什么意义?”PCM 的观点在当年就饱受争议,现在依然如此,因为它们导致一些领域包括语音、机器翻译和机器学习多次进入了严重的资金寒冬。

本文主要感兴趣的是PCM三位大师理性主义的共同主线。不过也必须指出,这三位大师的声音并不完全一致。在信息论方面他们有很大分歧。皮尔斯对香农和乔姆斯基二位均大加赞佩,尽管乔姆斯基对香农在信息论方面的许多工作持反对意见。很显然,这些观点并不能清楚地划分成不同学派(例如理性主义和经验主义),学派之内并非完全一致,学派之间也不是处处相异。

关于智能亦有很多不同意见。明斯基是人工智能的创始人之一,而皮尔斯一直是直言不讳的批评者之一。他说:所谓人工智能真乃愚蠢之极7。皮尔斯反对任何试图接近人类智能的东西,当然包括人工智能,也包括机器翻译和语音识别。皮尔斯主持了著名(或者说是臭名昭著)的语言自动处理咨询委员会(Automatic Language ProcessingAdvisory Committee, ALPAC) 报告。这一报告直接导致了机器翻译的资金寒冬[27]。皮尔斯也曾为《美国声学学会会刊》(JASA ) 撰写富有争议的通讯“语音识别往哪里去”(Whither Speech Recognition?),给语音识别研究的资金造成令人寒心的困境。

本文重在回顾他们的共同主线,而不是他们的分歧。PCM 对当年流行现今复兴的一系列经验主义方法,均提出过挑战。他们的反对意见对于许多当今流行的方法都有影响,包括模式匹配、机器学习(线性分离机)、信息检索(向量空间模型)、语言模型(N 元文法模型)和语音识别(隐式马尔可夫模型(hidden Markov models, HMMs) 以及条件随机场(conditional random fields, CRFs))。

学生们需要学会如何有效地使用流行的近似方法。大多数近似方法基于简化的假设,这些假设在多数情况下有用,但并非万能。例如,N 元文法能捕捉许多依存关系,但当依存范围超过n个词距离的时候,N 元文法则无能为力。同理,线性分离机在很多情况下可以区分正例和反例,但对无法线性区分的样例自然无效。许多这类限制显而易见(由其本性所决定),但即便如此,相关的优劣争论有时仍然很激烈。有时候,争论的某一方不再被写进教科书,逐渐被遗忘,只能期待下一代学者去重新发现或复兴。

乔姆斯基论述了N 元文法的局限,明斯基论证了线性分离机的局限。也有学者对于其他近似方法的种种局限提出看法。例如,图基(Tukey) 教导学生如何有效使用回归算法[34]。他鼓励学生测试各种正态假设的偏离现象。离群点(outliers) 是回归算法常见的麻烦来源,正如偏离直线的弯曲残差(bowed residuals)。很多人提出了种种绕行的补救方案。一个常见的手段是对数据做非线性变换,如对数变换。这些技巧把问题转化为另一个问题,使其偏离假定的麻烦有所减少。

乔姆斯基的反对意见

如前所述, 乔姆斯基指出N 元文法不能捕捉远距离依存关系。虽然现在回想起来似乎是显然易见的,然而在当时,香农-麦克米兰- 布雷曼熵定理(Shan-non-McMillan-Breiman theorem)令人非常兴奋,对这条定理的解释是:在极限条件下,只要稍加制约,N 元文法模型足以捕捉字符串的所有信息(譬如英语的句子)。乔姆斯基认为,在极限条件下这条定理也许是正确的,但是N 元文法模型远远不是能概括许多语言事实最简洁的模型。在实际系统中,我们往往必须将N 元文法严格限制在某个(小的)固定的值k 上(例如三元或许五元)。这种限长的N 元文法模型系统可以捕捉到很多语法关系一致性方面的现象,但并非全部。

我们应该将这场论辩教给下一代学者,因为他们可能将不得不比我们更加认真地对待乔姆斯基的反对意见。我们这代人很幸运,可以摘取到大量的低枝果实(也就是那些可以用较短N 元文法捕捉到的语言现象)。但是,下一代学者将没有这么幸运,因为在他们退休之前,那些捕捉得到的语言事实大多将被捕捉已尽,因此,他们很可能将不得不面对那些简单N 元近似方法无法处理的语言现象。

中心嵌套论(Center-Embedding)

乔姆斯基不仅反对N 元文法模型,也反对有限状态(finite state) 方法,其中包括很多目前流行的方法,如隐式马尔可夫模型和条件随机场。

有限状态方法超越了N 元文法,它不仅可以捕捉一切N元文法可以捕捉到的语言现象,而且可以捕捉超越N 词距离的语法依存关系。例如,下列文法表现了主谓在数上一致的关系,名词和动词应该一致,二者同为单数(sg) 或者同为复数(pl)。这样的文法可以捕捉超过N 词距离的依存关系。

S → Ssg

S →Spl

Ssg → NPsg VPsg

Spl → NPpl VPpl

NPsg → … Nsg …

NPpl → … Npl …

VPsg → … Vsg …

VPpl → … Vpl …

最大的问题是,此文法是否需要无限的内存。为了使这场辩论严谨,乔姆斯基引入中心嵌套的概念,并创建了现今被称作乔姆斯基层级体系(Chomsky hierarchy)的理论。

乔姆斯基层级体系不仅在语言学,在其他许多领域,例如计算机科学9,也具有非凡的影响力。克努特(Knuth) 坦承他在1961 年的蜜月期间读到乔姆斯基的文章,发现它是如此“奇妙的事情:在这个语言的数学理论中,我可以感受到一个计算机程序员的直觉”。

乔姆斯基指出,乔姆斯基层级体系与相应的生成能力之间具有一种简单的对应关系:

类型0 > 类型1 > 类型2 >类型3

递归可枚举文法 > 上下文有关文法 > 上下文无关文法 > 正则文法

特别是上下文无关文法可以涵盖并超越正则文法;有一些需要无限内存(栈)所做的事情,有限内存就做不到。乔姆斯基的论证是,中心嵌套是上下文无关与有限状态之间的关键区别。也就是说,当(且仅当)一个文法具备中心嵌套能力,它才需要无限内存(栈)。否则就可以用有限内存(有限状态机)处理。

zb3

更正式地讲,如果一个文法中具有一个可以生成形如xAy的非终结节点A,其中x 和 y 均为非空,那么这个文法就是中心嵌套。如果x 或 y 为空,则可以得到较简单的左杈或右杈的嵌套。左杈嵌套和右杈嵌套均可在有限内存(有限状态机)中处理,而不像中心嵌套那样需要无限内存(栈)。

中心嵌套的一个简单例子是一个括号嵌套的文法:

< expr > → (< expr >)

括号嵌套文法是中心嵌套的一个特殊案例,其中 x 是左括号,y 是右括号。一个栈结构可以很容易地记录左括号与右括号之间的远距离依存关系,但这需要无限的内存。最大的问题是有限内存是否可以处理括号嵌套文法。乔姆斯基证明这是不可能的。更一般的表述是,有限状态方法无法捕捉中心嵌套。

乔姆斯基用下列样例论证英语为中心嵌套语言,因此超越了有限状态方法(如隐式马尔可夫模型)的捕捉能力。乔姆斯基假定英语具有一个非终结节点 S(代表句子或从句),其自生成的时候在它的左右两侧可以添加非空内容,如下所示:

  1. S → If S, then S.
  2. S → Either S, or S.
  3. S → The man who said that S, is arriving today.

关于中心嵌套的语言事实一直存在争论。本文审阅者之一反驳中心嵌套所用的几点论证,我当年在我的硕士论文中也提过类似的质疑。语料库中很难找到超过两层或三层的中心嵌套11。不过,乔姆斯基的说法并非没有道理。想要描述上述语言事实,采用允许任意中心嵌套的文法较之采用仅有一两层中心嵌套的文法可能更容易和简洁。

到目前为止,N 元文法和有限状态方法等近似模型足够我们使用。虽然这些近似模型都有其明显局限性,但迄今难以找到更有效的替代方法。尝试捕捉不常见的远距离关系也许可以处理一些不常见的边缘案例,但它们带来的问题往往比解决的问题要多。工程师们发现,处理好常见的短距离依存关系比处理不太常见的远距离依存关系更为重要。至少,这是我们这一代人的体验。

尽管如此,我们还是应该为下一代学者做好准备,使他们有可能比我们做得更好。我们应该教给下一代认识目前比较流行的各种方法的长处和短处。他们需要了解我们所知道的最成功的近似方法,但他们也需要了解其局限性。下一代学者很可能会找到改进N 元文法的办法,甚至可能发现超越有限状态的方法。

明斯基的反对意见

明斯基和帕佩特表明,感知机(更广泛地说是线性分离机)无法学会那些不可线性分离的功能,如异或(XOR) 和连通性(connectedness)。在二维空间里,如果一条直线可以将标记为正和负的点分离开,则该散点图即线性可分。推广到n 维空间,当有n -1 维超平面能将标记为正和负的点分离开时,这些点便是线性可分的。

判别类任务

对感知机的反对涉及许多流行的机器学习方法,包括线性回归(linear regression)、logistic 回归(logistic regression)、支持向量机(SVMs) 和朴素贝叶斯(Naive Bayes)。这种反对意见对信息检索的流行技术,例如向量空间模型 (vector space model) 和概率检索(probabilistic retrieval) 以及用于模式匹配任务的其他类似方法也都适用,这些任务包括:

  1. 词义消歧(WSD):区分作为“河流”的bank 与作为“银行”的bank。
  2. 作者鉴定:区分《联邦党人文集》哪些是汉密尔顿(Hamilton)写的,哪些是麦迪逊(Madison)写的。
  3. 信息检索(IR) :区分与查询词相关和不相关的文档。
  4. 情感分析:区分评论是正面的还是负面的。

机器学习方法,比如朴素贝叶斯,经常被用来解决这些问题。例如,莫斯特勒(Mosteller) 和华莱士(Wallace) 的鉴定工作始于《联邦党人文集》,共计85篇文章,其作者是麦迪逊、汉密尔顿和杰伊(Jay)。其中多数文章的作者是明确的,但有十几篇仍具争议。于是可以把多数文章作为训练集建立一个模型,用来对有争议的文件做判别。在训练时,莫斯特勒和华莱士估算词汇表中的每个词的似然比:Pr(word|Madison)/Pr(word|Hamilton)。对有争议的文章通过文中每个词的似然比的乘积打分。其他任务也使用几乎相同的数学公式,如表2 所示。近来,诸如logistic 回归等判别式学习方法正逐步取代如朴素贝叶斯等生成式学习方法。但对感知机的反对意见同样适用于这两类学习方法的多种变体。

zb4

停用词表、词权重和学习排名

虽然表2 中4 个任务的数学公式类似,但在停用词表(stoplist)上仍有重要的区别。信息检索最感兴趣的是实词,因此,常见的做法是使用一个停用词表去忽略功能词,如“the”。与此相对照,作者鉴定则把实词置于停用词表中,因为此任务更感兴趣是风格而不是内容。

文献中有很多关于词权重的讨论。词权重可以看作是停用词表的延伸。现今的网络搜索引擎普遍使用现代的机器学习方法去学习最优权重。学习网页排名的算法可以利用许多特征。除了利用文档特征对作者写什么进行建模外,还可以利用基于用户浏览记录的特征,来对用户在读什么建模。用户浏览记录(尤其是点击记录)往往比分析文档本身信息量更大,因为网络中读者比作者多得多。搜索引擎可以通过帮助用户发现群体智能来提升价值。用户想知道哪些网页很热门(其他和你类似的用户在点击什么)。学习排名是一种实用的方法,采用了相对简单的机器学习和模式匹配技术来巧妙地应对可能需要完备人工智能理解(AIcomplete understanding) 的问题。

最近有博客这样讨论网页排名的机器学习:

“与其试图让计算机理解内容并判别文档是否有用,我们不如观察阅读文档的人,来看他们是否觉得文章有用。

人类在阅读网页,并找出哪些文章对自己有用这方面是很擅长的。计算机在这方面则不行。但是,人们没有时间去汇总他们觉得有用的所有网页,并与亿万人分享。而这对计算机来说轻而易举。我们应该让计算机和人各自发挥特长。人们在网络上搜寻智慧,而计算机把这些智慧突显出来。”

为什么当前技术忽略谓词

信息检索和情感分析的权重系统趋向于专注刚性指示词(rigid designators)14(例如名词),而忽略谓词(动词、形容词和副词)、强调词(例如“非常”)和贬义词15(例如“米老鼠(Mickey mouse)”16 和“ 破烂儿(rinky dink)”)。其原因可能与明斯基和帕佩特对感知机的反对有关。多年前,我们有机会接触MIMS 数据集,这是由AT & T 话务员收集的评论(建议与意见)文本。其中一些评论被标注者标记为正面、负面或中性。刚性指示词(通常是名词)往往与上述某一类标记(正面、负面或中性)紧密关联,但也有一些贬义词标记不是正面就是负面,很少中性。

贬义词怎么会标记为正面的呢?原来,当贬义词与竞争对手相关联的时候,标注者就把文档标为对我方“正面”;当贬义词与我方关联的时候,就标注为对我方“负面”。换句话说,这是一种异或依存关系(贬义词XOR 我方),超出了线性分离机的能力。

情感分析和信息检索目前的做法不考虑修饰成分(谓词与论元的关系,强调词和贬义词),因为除非你知道它们在修饰什么,否则很难理解修饰成分的意义。忽视贬义词和强调词似乎是个遗憾,尤其对情感分析,因为贬义词显然表达了强烈的意见。但对于一个特征,如果你不知道其正负,即使强度再大也没什么用。

当最终对谓词- 论元关系建模时,由于上述异或问题,我们需要重新审视对线性可分的假设。

皮尔斯的反对意见

比起明斯基和乔姆斯基,皮尔斯在时下的教科书上更少提到,尽管皮尔斯作为ALPAC 委员会主席以及著名的“语音识别向何处去”一文的作者对本领域有深远影响。无论从终结资助还是从文章的引用率看,皮尔斯对该领域的冲击力是如此之大,真不明白现代教科书为何如此冷待皮尔斯。原因也许在于,比起明斯基和乔姆斯基,皮尔斯的批评“麻烦”更大。很多学者试图回应他的批评,但几乎没有任何回应能像他原来的批评那样有力和值得一读。

皮尔斯一生硕果累累,他开发了脉冲编码调制(pulse code modulation, PCM),一种与当今WAVE 文档格式紧密相关的语音编码方法,而WAVE 是一种在个人计算机上储存音频文件的流行格式。此外,皮尔斯在真空管领域的研究亦成就卓著,但他又带领团队发明了晶体管,使真空管很快消亡。皮尔斯的研究工作也涵盖卫星领域,后来他作为贝尔实验室的研究副总裁,在把卫星研究转化成商业应用上发挥了关键作用,成功开发了Telstar 1,这是卫星首次在电信领域的商业应用。

总之,皮尔斯是一位具有非凡成就的顶级技术执行官。与他争辩的另一方根本无法与他相提并论,其中包括一些可能会被拒授终身教职的初级教职人员。这是一场不公平的论战。但即便如此,也没有理由忽视他对领域的贡献,哪怕这些贡献给我们带来诸多“麻烦”。

ALPAC 报告与“语音识别向何处去”都非常值得一读。网上很容易找到 ALPAC 报告的原文,但其篇幅较长。如果读者时间有限,建议先从阅读“语音识别向何处去”开始,因为这篇通讯言简意赅,观点明晰。短短两页的通讯基本上论及两条批评意见:

  1. 系统评测:皮尔斯反对用演示来评测系统,也反对现今仍流行的各种系统评测方法。“即使给出了统计数据,语音识别的成功与否还是很难测量。总体而言……当……时对于……系统可以达到 95% 的准确率。在……情况下,性能会急遽下降。很难鉴定这种性能的语音识别系统能否成为实用的、经济合理的应用产品。”
  2. 模式匹配:皮尔斯反对现今仍流行的模式匹配技术(如机器学习和语音识别),斥之为巧妙的欺骗:“与科学相比由于更容易取巧而更快成功”。

模式识别批判

皮尔斯以魏岑鲍姆(Weizenbaum)开发的伊莉莎(ELIZA) 程序作为案例来解释“巧妙的欺骗”。虽然伊莉莎很明显并不“智能”,但它或许可以通过图灵测试。伊莉莎批判从此成为对那些看上去比实际能力要强的程序的标准批判。维基百科对“伊莉莎效应”的定义如下:

“在计算机科学中,所谓的伊莉莎效应,指的是下意识地假设计算机与人类的行为相似的一种趋势。从特定形式上看,伊莉莎效应只是指‘人们阅读被计算机串起的符号序列(特别是单词),往往读出了这些符号并不具备的意义’。更一般地,伊莉莎效应描述的是这样一种情形,仅仅依据系统输出,用户就把计算机系统理解为具有‘其软件控制(输出)不可能实现的内在素质和能力’,或者,‘假设(输出)反映了比实际更大的因果关系’。无论是在特定还是一般形式上,甚至当系统的用户已经知道系统产生的输出是预定不变的,伊莉莎效应都会显著出现。从心理学观点来看,伊莉莎效应源于一种微妙的认知失调,一方面,用户意识到程序编制的局限性,另一方面,他们对程序的输出结果依然盲信。伊莉莎效应的发现是人工智能的一个重要进展,说明利用社交工程原理,而不是显式编程,也可以通过图灵测试。”

魏岑鲍姆在意识到他的伊莉莎程序让公众如此信服后,他自己反而成为人工智能的强烈反对者。以下是从他的著作《难以理解的程序》(Incomprehensible Programs ) 中的一个章节摘录的:

“这两个程序(MACSYMA和DENDRAL) 与其他大多数人工智能程序完全不同,它们牢牢建立在深厚的理论之上……计算机当然还有其他许多重要的、成功的应用。例如,计算机可以操控整个石油精炼厂的流程,可以导航飞船以及监测并在很大程度上操控飞船内的环境,以便宇航员执行任务。这些程序依赖于数学控制理论和牢固确立的物理理论。这种以理论为基础的程序具有极其重要的优势,一旦程序走偏,监测人员就能发现它们的性能不符合理论的要求,从而可以用理论帮助诊断失败的原因。

但是, 大多数现有的程序……不是以理论为基础的……它们多是探索式的……采用的是在多数预见情况下显得‘可行’的策略……我自己的程序伊莉莎正是这种类型。伍诺格拉德(Winograd)的语言理解系统也是……纽厄尔(Newell) 和西蒙的GPS20 也是如此。”

魏岑鲍姆继续争辩道,程序理应易于理解,并建立在坚实的理论基础之上,这种观点皮尔斯想必也会同意。

皮尔斯关于“巧妙的欺骗”的提法批评了包括人工智能、语音识别以及模式识别(也包括大部分现代机器学习)的很多领域用演示来验证系统的做法。

“前述讨论适用于模式识别的各个领域,其应用作为练习留给读者”。

模式识别有其优缺点。优点是,模式识别可以巧妙应对许多科学难题,在实际应用中取得进步。但是这一优势同时也是其缺点。短期的取巧分散了领域的精力,无法顾及真正有意义的长远目标。

很多工程任务与语音合成一样有两类研究:一类是实用的工程方法(例如衔接合成和磁带拼接),另一类是雄心勃勃的科学计划(如模拟人类发音的合成)。一般而言,实用的方法更有可能在短期内产生较好的结果,但学术界也激励更有前途的科学路线。对于尚未解决的重大科学问题,如果我们直接研究它们,而不是投机取巧,我们会有更好的机会取得进展。话虽这么说,如果你在工业界领导一个语音合成产品,为了在预算内按时按质交付产品,采用任何工程手段和技巧都是题中应有之义。

回应

针对“语音识别向何处去”曾有很多回应,但是多数回应都没能有效应对上面提到的两条主要批评意见:

  1. 目前在论文发表时所要求的系统评测方法究竟有何意义?
  2. 与科学相比,模式匹配的意义何在?

罗(Roe)和威尔彭(Wilpon)争辩说,在“语音识别向何处去”提出后的25 年中,领域的发展已经把所谓“无用”的努力演变为商用现实。他们的文章开头介绍了隐式马尔可夫模型等流行方法,这些方法基于皮尔斯所反对的模式匹配技术。接着提到目前常用的评测方法。评测旨在展示模式匹配技术的有效性,然而评测带来的结论正如皮尔斯归纳描述的那样:“难以度量”。

“在实验室条件下,语言识别器对于声音的模式匹配相当准确。然而,在‘真实世界’的条件下,错误率会高出很多”。

ALPAC报告

相当长的ALPAC 报告提出了很多反对意见,其中许多批评意见令人尴尬,也很难回应。报告的结论部分提到一些好消息:

“如今仍有理论语言学家对实证研究或计算都不感兴趣,也有应用语言学家对十年来的理论进展无动于衷,对计算机也很木讷。但是,与以往任何时候相比,都有更多的语言学家尝试把微妙的语言理论与更丰富的数据相结合,他们中几乎所有人,无论在哪个国家,都渴望计算机的支持。前一代人需要一辈子做的工作(譬如建立对照语库、词汇表、浅层文法),如今借助计算机几个星期即可完成(下一年大概只需要几天)。在对于作为人类交流工具的自然语言的理解方面,人类迈出了万里长征的第一步。”

但好消息随后紧接着就是不那么好的消息 :

“ 但是,我们还没有简单易用并广为人知的计算机处理语言数据的好方法。”

作为回应,斯蒂德曼(Steedman)将我们的研究领域与物理学领域做了对比。他指出物理界并没有被类似于ALPAC 的报告所困扰:“没人去告诉周围的物理学家该做什么。”斯蒂德曼建议,如果我们更自律,并避免在公共场合过度渲染,我们的领域也许会处于更好的状态。

我们其实没必要羡慕物理学领域的状态,以此排斥ALPAC报告。斯蒂德曼的回应不仅没有解决问题,而且事实上,物理学在学术界根本就不处于一个令人羡慕的位置。曾经有一段时间,物理学确实处于相对良好的状态,但那是很久以前的事情了。物理学的冬天已经持续太久,以至于许多人离开了物理学领域。曾经的物理学家们对许多领域做出了贡献,包括我们领域的几个方向,例如机器翻译和机器学习等。至于过度渲染,物理学不比我们少。

甚至连ALPAC 报告也指出,计算语言学比物理学有许多优势:

“我们看到计算机为语言学家带来了一系列的挑战、视角和机会。我们相信,这些可与粒子物理面临的挑战、问题和视界相当。毫无疑问,语言的重要性不亚于任何其他现象。而且计算语言学所需要的工具成本,比起需要数十亿伏加速器的粒子物理学少得多了。”

哈钦斯(Hutchins)在ALPAC报告30 周年纪念时在《机器翻译国际新闻》(MT News International) 中题目为《ALPAC :著名(抑或臭名昭著)的报告》的文章中,总结道:

“ALPAC 对机器翻译持怀疑态度是有一定道理的:当时机器翻译的质量无疑非常糟糕,似乎确实没有正当理由获得那么多的资助。报告中也正确地指出需要研制计算机辅助翻译,并强调计算语言学需要更多的基础研究。然而,需要指责的是……”

哈钦斯继而批评ALPAC 报告的观点太过以美国为中心,机器翻译问题本应在更广阔的全球语境中来考虑。既然基调如此严肃,他对以美国为中心的批评就显得相对单薄。如果从美国角度看机器翻译技术质量不好,费用昂贵,难道换一个角度就会对他国合适?

事实上,ALPAC 报告之所以被认为臭名昭著,是因为它的怀疑论直接导致了机器翻译的资金寒冬,尤其是在美国方面。然而,报告(第34 页)实际上建议在两个不同方向上增加经费开支:

  1. 对于语言学和计算语言学的长期的基础学术研究,以及
  2. 对于实用的、可以短期奏效的提高翻译质量的工作。

第一类基础研究应该以其科学价值为基础,经过同行评议,而评估第二类应用程序应该着重于实用的指标:速度、成本和质量。

皮尔斯的这两个建议凸显出他的两个不同侧面,正由于这种两面性使得皮尔斯能够同时认同乔姆斯基和香农那样两种不同的立场。一方面,皮尔斯是基础科学的坚定支持者。皮尔斯反对任何将科学扭曲成其他东西(例如应用程序)的企图,以及试图以误导性演示和盲目的指标(如今天所例行的各种评估办法)歪曲科学的发展。另一方面,皮尔斯也有实用的一面,他在语音编码、真空管、晶体管和通信卫星等领域所取得的非凡成就就是证明。他是应用型工作强有力的支持者,但所用的规则与基础研究完全不同,比如强调从商业案例出发。应用型工作要按应用型工作来评估(基于商业标准),而科学必须按科学的标准来评估(基于同行评审)。

如果皮尔斯今天还活着,他会被学术界的现状深深困扰。太多的资金投入到了模式匹配技术和数值评估上,干扰了他认定的作为核心科学问题的学术发展。

从更积极的方面看,皮尔斯的应用一面应该会对谷歌的商业成功留下深刻印象,尤其是在搜索方面。尽管如此,谷歌的边缘业务如语音识别和机器翻译是否可以称作成功,从他的角度应该还有疑问。虽然我们有理由对这些领域抱有希望,像皮尔斯这样的怀疑论者会觉得,比起过去的几十年研发的巨额投资,机器翻译和语音识别的应用成就并不相称。作为一个合理的投资回报,现在的语音识别和机器翻译应该产生一个杀手锏级的应用,使得几乎每个人每天都离不开它,就像当年AT & T 发明的电话,或者像微软Windows 系统或谷歌搜索一样。谷歌在搜索方面的核心业务已经实现了这个理想,也许有一天他们的语音和翻译等边缘业务也能最终达到这一目标。

皮尔斯能给今天的我们提供什么?迄今为止,该领域已经做得很好,采摘了不少低枝果实。在有很多果实容易采摘的好时光里,我们自然应该充分利用这些机会。但是,如果这些机会逐渐枯竭,我们最好还是遵循皮尔斯的教诲,认真面对核心科学的挑战,而不是继续寻找不复存在的容易采摘的果实。

无视历史注定要重蹈覆辙

在大多数情况下,机器学习、信息检索和语音识别方面的实证复兴派简单地无视PCM 的论辩,虽然在神经网络领域,感知机附加的隐藏层可以看作是对明斯基和帕佩特批评的让步。尽管如此,明斯基和帕佩特对他们所著的《感知机》出版20 年以来领域进展之缓慢深表失望。

“在准备这一版时,我们本来准备‘把这些理论更新’。但是,当我们发现自本书1969 年第一次出版以来,没有什么有意义的进展,我们认为保留原文更有意义……只需加一个后记即可……这个领域进展如此缓慢的原因之一是,不熟悉领域历史的研究人员继续犯别人以前已经犯过的错误。有些读者听说该领域没有什么进步,可能会感到震惊。难道感知机类的神经网络(新名称叫联接主义)没有成为热烈讨论的主题吗?……当然不是,该领域存在很多令人感兴趣的问题和讨论。可能确实也有些现在的发现也会随着时间逐渐显出重要性。但可以肯定的是,领域的基础概念并没有明显改变。今天令人兴奋的问题似乎与前几轮大同小异……我们的立场依然是当年我们写这本书时的立场:我们相信这个领域的工作是极为重要和丰富的,但我们预计其发展需要一定程度的批判性分析,可那些更富浪漫精神的倡导者却一直不愿意去做这种分析,也许因为连通主义的精神似乎变得与严谨分析南辕北辙。

多层网络并不比感知机更有能力识别连通性。”

计算语言学课程的缺陷

正如上面明斯基和帕佩特指出的,我们不断犯同样错误的部分原因与我们的教学有关。辩论的一方在当代计算语言学教科书中已被遗忘,不再提及,只能靠下一代人重新认识和复原。当代的计算语言学教科书很少介绍PCM 三位前辈。在汝拉夫斯基(Jurafsky) 和马丁(Martin) 编著的教科书以及曼宁(Manning) 等编著的两套教科书中根本没有提及皮尔斯。三本教科书中只有一本简要提起明斯基对感知机的批评。刚刚进入此领域的学生也许意识不到所谓“相关学习算法”包含了很多当今非常流行的方法,如线性回归和logistic回归。

“一些其他的梯度下降算法(gradient descent algorithms) 有类似的收敛定理,但是在大多数情况下,收敛只能达到局部最优。……感知机收敛能达到全局最优是因为它们从线性分离机这样一类比较简单的模型中选择分类器。很多重要的问题是线性不可分的,其中最著名的是异或问题。……决策树算法可以学习解决这类问题,而感知机则不能。研究人员在对感知机最初的热情[29]消褪以后,开始意识到这些局限性。其结果是,对感知机及相关学习算法的兴趣很快消褪,此后几十年一直一蹶不振。明斯基和帕佩特的论文《感知机》通常被看作是这类学习算法开始消褪的起点。”

曼宁等人的2008 版教科书中有简短的文献指向明斯基和帕佩特1988 年的论文,称其对感知机有不错的描述,但并未提及他们的尖锐批评:

“对文中提到但本章未进行细述的算法,感兴趣的读者可以参阅以下文献:神经网络方面的毕夏普(Bishop) 、线性和logistic回归方面的黑斯蒂(Hastie) 等人以及感知机算法方面的明斯基和帕佩特等的论文。”

基于这样的描述,学生可能会得出错误印象,以为明斯基和帕佩特是感知机算法(以及当今流行的线性和logistic 回归相关方法)的支持者。

毕夏普明确指出,明斯基和帕佩特绝不是感知机和神经网络的赞许者,而且把它们认作“不正确的构想”予以排斥。毕夏普把神经网络在实际应用中的普及看作是对明斯基和帕佩特上述批评意见的反击证明,认为并非如他们所说的那样“没有多少改变”、“多层网络并不比感知机更有能力识别连通性”。

当代教科书应该教给学生认识神经网络这类有用的近似方法的优点和缺点。辩论双方都大有可言。排除任何一方的论证都是对我们的下一代不负责任,尤其是当其中一方的批评是如此的尖锐,用到“不正确的构想”和“没有多少改变”这样的说法。

乔姆斯基比皮尔斯和明斯基在当代教科书中被提及得多一些。曼宁和舒兹(Schütze) 的教科书引用乔姆斯基的论文10次,汝拉夫斯基和马丁的教科书的索引中共有27 处引用乔姆斯基的论文。第一本书中较少引用是因为它专注于一个相对狭窄的话题——统计型自然语言处理。而第二本教科书涉及面广泛得多,包括音韵学和语音。因此,第二本书还引用了乔姆斯基在音韵学方面的工作。

两本教科书都提到乔姆斯基对有限状态方法的批评,以及这些批评在当时对经验主义方法论的抨击效果。但是话题迅速转移到描述这些方法的复兴,而对这一复兴的论辩、动因及其对目前实践和未来的影响的讨论则相对较少。

“由乔姆斯基1956 年的论文开始的一系列极具影响力的论文中,包括乔姆斯基1957 年的论文以及米勒(Miller) 和乔姆斯基1963 年的论文,乔姆斯基认为,‘有限状态的马尔可夫过程’虽然是可能有用的工程探索,却不可能成为人类语法知识的完整认知模型。当时的这些论辩促使许多语言学家和计算语言学家完全脱离了统计模型。

N 元模型的回归开始于耶利内克(Jelinek)、默瑟(Mercer)、巴尔(Bahl) 等人的工作……”

两本教科书对N 元文法的讨论都是从引用其优缺点开始:

“但是必须认识到,无论怎样解读,‘一个句子的概率’都是一个完全无用的概念……。”

“任何时候,只要一个语言学家离开本研究组,识别率就会上升。”(弗雷德·耶利内克(Fred Jelinek),当时他在IBM 语音组,1988)

曼宁和舒兹是以这样的引用开始讨论的:

“统计的考量对于理解语言的操作与发展至关重要。”

“一个人对合法语句的产生和识别能力不是基于统计近似之类的概念。”

这种正反面观点的引用确实向学生介绍了争议的存在,但却不能真正帮助学生领会这些争议意味着什么。我们应提醒学生,乔姆斯基反对的是如今极其流行的一些有限状态方法,包括N 元文法和隐式马尔可夫模型,因为他相信这些方法无法捕捉远距离的依存关系(例如一致关系的限制条件和wh- 位移现象)。

乔姆斯基的立场直到今天仍然是有争议的,本文审阅者之一的反对意见也佐证了这种争议。我不希望站在这场辩论中的某一方。我只是要求应该教给下一代双方的辩论。对于任一方,都不至于由于我们疏于教授而使他们需要重新“发现”。

计算语言学学生应该接受普通语言学和语音学的培训

为了让进入这行的学生对低枝果实采摘完后的情形做好准备,今天的教育最好向广度发展。学生应该全面学习语言学的主要分支,如句法、词法、音韵学、语音学、历史语言学以及语言共性。我们目前毕业的计算语言学的学生在一个特定的较窄的子领域具有丰富的知识(如机器学习和统计型机器翻译),但可能没听说过格林伯格共性(Greenberg’s universals)、提升(raising)、等同(equi)、 量词辖域(quantifier scope)、 空缺(gapping)、孤岛条件(island constraints) 等语言学现象。我们应该确保从事共指关系(co-reference) 研究的学生都知道成分统制(c-command) 和指称相异(disjoint reference)。当学生在计算语言学会议上宣讲论文的时候,他们应该已经了解形式语言学(formal linguistics) 对此问题的标准处理。

从事语音识别工作的学生需要了解词汇重音(如文献)。音韵学重音对于下游的语音和声学过程具有各种各样的影响。

zb5-3
图3 “politics”and“political”的谱图显示有三个/l/同位音。在重音前后出现不同的音位变体。

语音识别目前没有充分利用词汇重音特征是一个不小的遗憾,因为重音是语音信号中较为突出的特性之一。图3 显示了最小对立体 (minimal pair)“ politics”和“political”的波形和谱图。这两个词千差万别,目前的技术着重于语音单位层面的区别:

  1. “politics”以 –s 结尾,而“political”以-al 结尾。
  2. 与“politics” 不同,“political”的第一个元音是弱化的非重读音节的元音(schwa)。

重音的区别更为突出。在诸多与重音有关的区别中,图3 突出显示了重音前与重音后/l/ 的音位变体之间的区别。另外还有对/t/ 音的影响。“politics”中 /t/是送气音,但在“political”中却是闪音。

目前,在语音单位层面,仍有大量低枝果实可以采摘,但这些工作终有完结之时。我们应该教给语音识别领域的学生有关音韵学和声学语音学的词汇重音知识,以便他们在目前的技术水平超越语音单位层面的瓶颈时依然游刃有余。由于重音存在超过三元音素的远距离依存关系,重音方面的进展需要对目前流行的近似方法的长处与缺陷均有深入的理解。语音识别方面的基础性进展,例如能有效使用重音,很可能要依赖于技术的根本性进步。

结论

学界前辈皮尔斯、乔姆斯基和明斯基曾经严重质疑过当年流行后来复活了的一些经验主义方法。他们的反对意见涉及许多当代流行的方法,包括机器学习(线性分离机)、信息检索(向量空间模型)、语言模型(N 元文法)、语音识别(隐式马尔可夫模型)和条件随机场。

学生们需要学习如何有效地使用流行的近似模型。乔姆斯基指出了N 元文法的缺陷,明斯基分析了线性分离机的局限性。许多局限性很明显(由自身算法设计带来的),但即便如此,对其支持与反对之间的争辩有时仍然非常激烈。有时,其中一方的论点不会被写进教科书,只有等到下一代人去重新发现和复兴这些被遗忘的思想。我们应该鼓励下一代学者充分了解辩论双方的论据,即使他们选择站在一方或另一方。

20 世纪90 年代,当我们复兴经验主义时,我们选择了实用主义的理由来反对我们导师的观点。数据从未如此丰富,我们能拿它做什么呢?我们认为,做简单的事情比什么都不做要好。让我们去采摘一些低枝果实。虽然三元模型不能捕捉到一切语言现象,但它往往比其他方法更有效。捕捉我们可以轻易捕获的一致性事实,要比好高骛远试图捕捉更多语言事实而最终得到更少要好。

这些说辞在20 世纪90 年代有很大的意义,特别是学术界在前一波繁荣期提出了很多不切实际的期望。但是今天的学生在不久的将来可能会面临一系列非常不同的挑战。当大多数低枝果实采摘完毕,他们应该做些什么呢?

具体就机器翻译而言,统计方法的复兴(例如文献)由于实用主义的原因,始于采用有限状态方法。但随着时间的推移,研究人员已经越来越接受使用句法捕捉远距离的依存关系,尤其是当源语与目标语缺乏平行语料库,或者当两种语言具有非常不同的词序的时候(例如,从主谓宾词序的语言(如英语)翻译到以动词收尾的语言(如日语))。展望未来,我们可以预料到机器翻译的研究会越来越多地使用越来越丰富的语言学表达。同样,很快也将有一天,重音将成为语音识别的重要依据。

既然计算语言学教科书不可能涵盖所有这些内容,我们就应该与其他相关科系的同事合作,确保学生能接受到广泛的教育,足以让他们为所有可能的未来做好准备。

选自《中国计算机学会通讯》第9卷第12期。
本文译自Linguistics issues in Language Technology, 2011; 6(5) K. Church 的“A Pendulum Swung Too Far”一文。
译者:李维(美国网基公司首席科学家。主要研究方向为信息抽取、舆情挖掘等)唐天(美国网基公司首席科学家助理兼助理工程师。主要研究方向为自然语言处理和机器学习)。

【泥沙龙笔记:吃科学的饭,还是技术的饭?】

我:

我虽然被封了个小公司 Chief Scientist 的职称,实在不敢称科学家了,因为早已脱离 academia,也没真正靠科学吃饭:这个金饭碗太沉,端不起。这倒不是谦虚,也不是自我矮化,因为科学家和技术人在我心中难分高低。作为一线技术人,并没觉得自己比一流科学家逊色。

不说生物,说说NLP。可重复性是科学的根本,否则算命先生和跳大神的也都是科学家了。针对一个单纯的任务,或一个纯粹的算法,在 community 有一个标注测试集的时候,这个可重复性似乎是理应有所要求的,虽然具体怎么验证这个要求,验证到哪一步才被公认有效,似乎远非黑白分明。

我的问题是,如果是一个复杂一些的系统,譬如 deep parser,譬如 MT,特别是在工业界,有可能做到可重复吗?不可重复就不能认可吗?且不说不可重复是保持竞争优势的必要条件,就算一家公司不在乎 IP,指望对手能重复自己的结果,也是难以想象的事儿 — 除非把全盘源代码、原资源,包括所有的词典,原封不动交给对方,而且不许configure,亦不允许改动任何参数,否则怎么可能做到结果可以被重复呢?

毛:

凡是“构成性要素”,必须在一定的误差范围内可重复。要不然就属于商业秘密而不属于科学发现了。

我:

所以 key 就是看你吃哪一碗饭。吃学术的饭,你就必须过这一关。怎么拿捏是 community peer reviewers 的事儿。

毛:

还是那句话,你不能把什么好处都占了。

我:

吃工业的饭,你只要你的黑箱子 performs 就ok了。

这就使得学术界只能就“构成性要素”而发表,做一个 integrated 系统是不讨好的。这个从科学上是有道理的,但是很多做学术的人也不甘心总猫在象牙塔里,为他人做嫁衣裳,他们也想做实用系统。integrated 的实用系统几乎肯定无法由他人重复出结果来,因为变数太多,过程太复杂。

毛:

那倒也不一定,当年的 unix 就是系统。但是在同样的配置条件下得到的结果应该在一定的误差范围之内。

我:

换句话说吧,别说他人,就是自己也不见得能重复出自己的结果来。如果重起炉灶,再做一个 parser 出来,结果的误差是多少才能算容许的范围呢?就算基本设计和算法不变,相信是越做越好,但结果的误差在做成之前是很难预测的。这与在新的开发现场所能调用的资源等因素有关。

毛:

对呀,所以别人也不至于吹毛求疵,大家会有个共识的。像Parser一类,如果是对自然语言,那应该是很宽的。但如果是形式语言、编程语言,那就要求很严了。

我:

说的是自然语言。十几年前,我还在学术殿堂边徘徊,试图讨好主流,分一杯羹,虽然明知学界的统计一边倒造成偏见流行(【科普随笔:NLP主流的傲慢与偏见】)积久成疾,我辈压抑,同行如隔山,相互听不见。直到有一天大彻大悟,我到底吃的是谁的饭,我凭的什么在吃饭?原来我的衣食父母不是科学,更不是主流。我与隔壁的木匠阿二无异,主要靠的是手艺吃饭,靠的是技术创新的绝技,而不是纯科学的突破。认清这一点,也就避免了以卵击石,长他人威风,灭自己志气。说到底,在业界,老板不在意你在哪一条路线上,客户更不在乎你有没有追赶潮流,白猫黑猫,一切由系统说话。你有你的科学突破,我有我的技术绝技,到了应用现场,还要看谁接地气,有没有硬通货呢。系统结果可能难以重复,客观测量却并非难事儿。

【相关】

关于NLP方法论以及两条路线之争

【关于我与NLP】

《朝华午拾》总目录

 

导亦有道,我是这样做NLP导师的

我:
我是这样教导学生 NLP和 AI 的:
人工智能里面没有智能
知识系统里面没有知识
一切都是自己跟自己玩
一切都是为了自己玩自己的时候 努力玩得似乎符合逻辑 自然 方便 而且容易记忆和维护

学:
前面的听懂了,AI 这块有点懵懂

我:没关系 前面听懂了是关键。后面是哲学,哲学的事儿不必那么懂。你都懂了 我这个做导师的怎么吃饭呢?

学:
给功能词加 features 怎样才妥?

我:
功能词可以枚举,原则上可以没有 features,无所谓妥不妥。看你怎么用 用起来觉得妥就妥 觉得别扭或捣乱 就不妥。如果你永远不用 则没有妥不妥的问题 给了与不给一个样 因为永远没用到。没用到是可能的,譬如你总是为这个词写 WORD 的规则, 不让它有机会被 feature 的规则匹配上 那么 features 就是摆设 也就谈不上妥不妥。

学:
有道理。本来就这么几个词,写WORD就好了,不需要为Feature伤脑筋。

我:
有点开窍的意思

学:
跟老师多交流,才能开窍,不然我就钻进自己的死胡同了。

我:
人都是这样的 钻进n个胡同以后才能在 n+ 的时候开窍。没进过胡同就开窍的 那不是天才 那是死人。

学:
NLP 里面的知识表达,包括词典的 features,应该怎么设计呢?

我:
从词典表达 lexical features 到句法语义逻辑的表达,大多没有黑白分明的标准答案。
就是自己这么给了 显得蛮合理 也好记忆 否则自己就不舒服 或记不住。更重要的是 给了 features 以后 规则好写了 规则自然 简洁 有概括性 且方便维护。
almost everything is coordination
u assign
u use
no one is in between
no intelligence no god
as long as it makes sense to you (not to others) so u know what u r doing
as long as it is natural and easy to remember
as long as you find it convenient to use certain features in rules and rules are easy to read and easy to maintain
in principle u can assign anything to any words
or choose not to assign
what goes around comes around
you play with yourself
computer knows nothing
features are just 0s or 1s
WHAT GOES AROUND COMES AROUND
that is NLP in an integrated system
whether it refers to POS, chunking, SVO or logical form
it is to make your job easy and yourself comfortable
u have no need to make others happy unless your system is a middleware commodity to serve your clients
if your NLP and your NLP apps are within your own control
they are integrated in your system in your own architecture
everything is internal coordination
This is my lecture on NLP Architecture for Dummies

白:
you是谁?个人、团队、公司?

我:
good question, it is the architect in most cases: he has the say.  Sometimes it can be a bit democratic if the architect wants to motivate his team, for example the naming right.

白:
是全局系统的architect,还是NLP这嘎达的architect?

我:
a bit of knowledge is named as f1 or f2, that is arbitrary and the major consideration is memonic-like,  features must be easy to remember, but sometimes we let a team member decide its name, such practice often makes the team happy, wow I can act like God, wow I can decide a drop of the sea in the system language …

白:
伟哥还没回答我最后一个问题: 是全局系统的architect,还是NLP这嘎达的architect?

我:
the former because we are talking about NLP and NLP apps in an integrated system:
apps 不是产品 而是语义落地。落地后 还有一个产品层面 包括 UI 等 那已经不劳我们操心了。落地是与产品的接口而已。NLP 核心引擎与 NLP 落地 是一个无缝连接的系统 这种 design 可以羡慕死人。
如果是有缝对接 如果是两拨人马 两个设计师 甚至两个公司 那就扯不完的皮 擦不完的屁股 成不了大事儿。NLP 和 NLP 产品可以分开 而且应该分开  但是 NLP 与 NLP落地 最好不分开。NLP 落地 包括(1) IE (2) MT (3) dialogue (mapping) (4) QA (5)…… 内部分层 但外部不分开 这就叫无缝连接

可以说 offshelf 害死人,component technology 没有啥前途。选择 offshelf 或 license components 往往是无奈之举,自己暂时没有能力 或不具备条件做,也有找的借口冠冕堂皇:不要 reinvent wheels,最后害的还是自己。
我们已经害过几次自己了 吃尽了苦头 才有这 “十年一悟”,以前说过的: 做工业NLP 自给自足是王道。

白:
这个,关键看公司拥有什么样的专家了。专家不同模式也不同。

我:
也与时代有关: 20 年后也许不必自给自足,就一样做好NLP落地。

【相关】

【立委科普:NLP 联络图 】

【立委科普:自然语言系统架构简说】

自给自足是NLP王道

置顶:立委科学网博客NLP博文一览(定期更新版)】

《朝华午拾》总目录

 

语义计算笔记:坐而论道谈“的”“地”

【立委按】以前在语言学圈子里有些高雅的沙龙,譬如在冯志伟老师回忆 中津津乐道过的语言学沙龙,每周一次,通常在北大,参与的圈子很小,都是精英之精英,朱德熙(语言学大家,北大副校长)、陆捡明(汉语语法学家)、马希文(计算语言学家,传奇人才,白老师的导师)、冯志伟(计算语言学家)等。坐而论道,雅致之极,令人羡慕嫉妒恨不能入。如今时代不同了,这种沙龙还有吗?回答是,有,譬如白老师主持的【新智元语义计算群】即是:谈笑皆鸿儒,往来有白丁,微信群使得高大上的沙龙平民化了,但高度、大度、上度不浅反深,盖因所延揽的精英早已不再局限于小小的京城,而是遍及全球。白老师树大招风,与NLP有关的华裔背景的顶级专家学者毛姑姑也有90%了,或高论,多潜水,胜景跌出,风光无限。甚至连中国NLP旗手董振东老前辈也上了“贼船”,乐在其中。此番繁荣,拜技术所赐,先给张小龙敬个礼。

白:
“这本书的匆忙de出版,险些坏了大事。”  这里的“de”,是“的”还是“地”,为什么?
如果按照“从里到外”的原则,是“匆忙de”先跟“出版”结合,彼时“出版”尚未被强制,因此还是满格的动词属性,de理应为“地”。但是……个人语感为什么倾向于“的”,而且理论上找不出理由。
“今天真遗憾,错过了大师的精彩de指挥。” 这个就是百分之百的“的”了。
我:
既然白老师爱钻牛角尖儿,咱们就钻钻。
白:
难道这个“指挥”不是被强制的?
我:
不能说 100% 可能是 90%+ 吧。验证的话,可以用大数据。
白:
大数据里有错别字
我:
哪怕大数据里面出来的结果是 100%,用“超大数据” 也会发现不是 100% 而且不仅仅是由于错别字。
白:
验证如果找100个文字编辑,我没意见。
我:
这里面的道理就不是大数据这种表象了,而是某种语言学。
动词概念被性状概念的词修饰,在具体语言中的形式应该是怎样的?就是这个问题。到了汉语,默认的形式是:(1)前置 (2) 加“地”。凡是默认 必有例外。如果 大数据发现了例外 或者 100 个文字编辑的内在句法趋向于一种例外的结果 这个例外就有语言学上的说法。
这里面还有一个微妙之处:口语中是de1 de2不分的,因此上述形式的讨论只限于书面汉语,而书面汉语受到了文法规范化教育的灌输。因此至少从一个层面看,这个问题就是一个 moot point,因为每个人的受教育程度是不同的,而每个人的儿童时学会语言的过程则是相当类同的。这二者打架的结果就会出现不一致,因此 100% 很难。如果聚焦到 100 个文字编辑做裁判的话,实际上是放大了教育的影响。有意思的问题于是成为:本来 “的”是 de 的默认,而非默认的“地”的使用是受教育的结果,因此文字编辑应该趋向于在形状类概念修饰动词性概念的时候,使用“地”而不是“的”。但是,这个 case 却不是(假如白老师的语感或修养靠谱的话),正相反,受过教育的人在这个 case 中,更趋向于用 “的”。这是为什么呢?这里面必有更深层的说法。
还要继续吗?或者谁继续牛角尖下去?
白:
其实,我是在对“从里到外”和“从左到右”的原则在质疑。如果“从左到右”,名物化结构强制的痕迹在不断加重,用“的”就理所当然了。如果“从里到外”,强制在外层,里层在不确定情况下会追随标配。
我:
其实我也正想说到这点儿,就是发散太远,还没收回来。
白:
所以,我认为是“从左到右”的分析策略在起作用。
我:
左右就是词序形式。抽象一点,不是词序,而是【层次性】与【去层次性】在语义表达或理解中的矛盾体现。这在句法学界已经打了很久很久了。层次性是一派,去层次性(扁平化)是另一派。公、婆各有理。
白:
不需要那么极端,就是已经读进来但还没有构造成树的成分,是完全被动地等在那里,还是对后续的消岐有所影响的问题。

我:
层次性的理解涉及多性状概念的 scope 边界,这是乔姆斯基短语结构的真义。去层次性的理解不强调这种 scope 的严密性,而是把他们的配置看成是自由搭配。这是为什么 dependency grammar 的结构树放弃非终结节点的表达。
白:
结构强制发生在有明确结构预期的时刻,而不是真正等来了结构强制对象的时刻。
伟哥可以顺带看看“恢复疲劳”那段。
我:
层次性一派的假设: x1 de x2 de x3 == [x1 de [x2 de [x3]]]
去层次性一派的假设: x1 de x2 de x3 == x2 de x1 de x3
两个假设都可以找到语言事实的支持。
白:
应该有 强去层次 和 弱去层次 之分
强:等价;弱:sometimes等价
我:
相信层次化的理解和去层次化的理解,在相当多的人中其实是模糊的。人的语义,无论表达还是理解,都充满了模糊性,而这种模糊性基本上也不影响语义的语用。换句话说,怎么说都可以,人类在交流中基本不 care。
白:
对分析策略似有影响
我:
歧义不仅可以保留或休眠,直到语用,甚至可以 beyond 语用,一直到死:严格说到死的歧义超越了交流,不能算歧义,最多算伪歧义。从这一点看(伪)歧义,就发现很多问题是人自找的;董老师也说过类似的意思。“人” 指的是系统设计师。
白:
又漂了
我:
漂是因为某个思路还没到终点,意犹未尽,很难受的。
回到分析策略,自底而上最实在。自底而上与层次化自然相配,但也不必然采纳层次化的 representation。
说说 恢复疲劳 吧。这是个固定用法 词典化的条目。
白:
结构强制是个特殊的操作,如果承认在短语“这本书的不出版”中,“不出版”是个状中结构,而再外层是个定中结构,于是结构强制就发生在这两层的衔接当中。“这本书的匆忙de出版”站在层次观点也是一样的,但我质疑层次结构在先结构强制在后。
我:
虽然汉语的 动宾句法 可以有 n 种逻辑语义,但是作为 open-ended 的句法语义解读,这 n 种解读不能是非自然的或满拧的语义。“恢复”与“疲劳”就是满拧。里面省略了的 FROM 就是反映这种蛮拧的。如果 FROM 不出现,那么必然要词典化 用记忆去绑架。
白:
“维持骚乱”的说法也成立
我:
如果要探究为什么这种乍听上去矛盾的说法进入了人类的语言 被词典化,简单的说法就是约定俗成。深究的话 其实是因为矛盾的双方是共现频率极高的相关概念。因为高度相关,所以本来可以明晰的连接双方的句法手段(词序啊,小词 from、against 啊等)就显得太啰嗦,偷懒的人开始省去这些句法元素 共同体开始接受这种省略。最后就进入了集体的固定用法的记忆。“从疲劳中恢复” >> “恢复疲劳”;“维持和平以防骚乱” >> “维持骚乱”。
白:
我的观点是,分析不在乎是不是词典化,生成在乎。哪怕是第一次看到这样的组合,也会放行的,因为张力的指向一览无余。
我:
分析不在乎,是语义不落地,只是休眠。管它什么宾呢 动宾是无疑的。
白:
“维持骚乱”就不必有什么固定记忆,一看这俩词儿,就知道是从不正常状态努力进入正常状态。
我:
没进入固定记忆,是还在过程中。
董:
知网词典的词语,与两位讨论的有关,供参考:

W_C=打扫房间
G_C=verb [da3 sao3 fang2 jian1]
S_C=
E_C=
W_E=clean the room
G_E=verb [51cleanverb-0vi      ]
S_E=
E_E=
DEF={clean|使净:patient={room|房间}}
RMK=

W_C=打扫垃圾
G_C=verb [da3 sao3 la1 ji1]
S_C=
E_C=
W_E=sweep away rubbish
G_E=verb [51sweepverb-0vi      ]
S_E=
E_E=
DEF={remove|消除:patient={waste|废物}}
RMK=

W_C=打扫卫生
G_C=verb [da3 sao3 wei4 sheng1]
S_C=PlusEvent|正面事件
E_C=
W_E=cleaning
G_E=noun [7 cleaningnoun-0action,uncount,ofnpa次    ]
S_E=PlusEvent|正面事件
E_E=
DEF={clean|使净:StateFin={spotless|洁}}
RMK=

W_C=恢复疲劳
G_C=verb [hui1 fu4 pi2 lao2]
S_C=PlusEvent|正面事件
E_C=
W_E=recover from tiredness
G_E=verb [51recoververb-0vi      ]
S_E=PlusEvent|正面事件
E_E=
DEF={BeRecovered|复原:StateIni={tired|疲乏}}
RMK=

W_C=恢复知觉
G_C=verb [hui1 fu4 zhi1 jue2]
S_C=PlusEvent|正面事件
E_C=
W_E=recover consciousness
G_E=verb [51recoververb-0vi      ]
S_E=PlusEvent|正面事件
E_E=
DEF={BeRecovered|复原:StateIni={dizzy|昏迷}}
RMK=

W_C=救火
G_C=verb [jiu4 huo3]
S_C=
E_C=
W_E=fight the fire
G_E=verb [51fightverb-0vi      ]
S_E=
E_E=
DEF={remove|消除:patient={fire|火}}
RMK=

W_C=救生
G_C=verb [jiu4 sheng1]
S_C=PlusEvent|正面事件
E_C=
W_E=lifesaving
G_E=noun [3 lifesavingnoun-0action,uncount,ofnpa次    ]
S_E=PlusEvent|正面事件
E_E=
DEF={rescue|救助:StateFin={alive|活着}}
RMK=

W_C=救穷
G_C=verb [jiu4 qiong2]
S_C=
E_C=
W_E=help the needy
G_E=verb [51helpverb-0vi      ]
S_E=
E_E=
DEF={rescue|救助:StateIni={Circumstances|境况:host={group|群体}{human|人},modifier={poor|穷}}}
RMK=

W_C=救命
G_C=verb [jiu4 ming4]
S_C=PlusEvent|正面事件
E_C=
W_E=save somebody’s life
G_E=verb [51saveverb-0vt,sobj      ]
S_E=PlusEvent|正面事件
E_E=
DEF={rescue|救助:StateFin={alive|活着}}
RMK=

W_C=救灾
G_C=verb [jiu4 zai1]
S_C=PlusEvent|正面事件
E_C=
W_E=provide disaster relief
G_E=verb [51provideverb-0vi      ]
S_E=PlusEvent|正面事件
E_E=
DEF={rescue|救助:StateIni={mishap|劫难:cause={NaturalThing|天然物}}}
RMK=

白:
比如“打击卖淫嫖娼”为什么不能是“打击卖淫 嫖娼”而必须是“打击 卖淫嫖娼”?就是因为一个正面一个负面,是拧巴的,两个正面,就顺当了。这说的是sentiment对分析的反作用。
我:
“维持骚乱”对我这个个体 目前处于一种不接受的状态。并不因为拧巴 我就接受它合法。如果我是语文老师,我会判错 我自己也避免这样用 也不会这样用。但是如果共同体在这个演变过程的终点选择接受 也就是选择词典化,那么我只得也选择接受 并加入我的词典。这是其一。
其二,拧巴的确在语言交流中起作用。拧巴迫使人放弃默认 去探索其他的语义路径 达成理解 虽然心里可能依然别扭。心里别扭是因为还没有词典化 黑箱化。
白:
参加维和部队,到非洲去维持骚乱。
好点没?
我:
有了上下文,当然别扭感好一些。(同理,我也可以这样加上下文:恐怖主义分子猖獗得很,他们要维持骚乱,我们怎能坐视不理。)
在 sentiment 中,有些故意矛盾的说法来表达讽刺,也是这个拧巴理解的过程。以前说过的 thank you for misleading me,thank 的正面褒扬与 misleading 的反面 是拧巴的。理解放弃了默认,选择了 misleading,是客观sentiment对主观emotion的胜利。thank 的正面语义因此消失,被讽刺取代。
白:
“感谢你八辈祖宗”
我:
英语的 improve 是这样一个褒义词,以至于它不在乎宾语是正面反面。可是 维持 在汉语不是,因此“维持骚乱”的别扭感更强,除非是置于合适的上下文,或被语言共同体词典化绑架。

宋:
“这本书的匆忙的出版”和“这本书的匆忙地出版”都是合乎语法的,而且都是指称语。深入一层,“匆忙的出版”和“匆忙地出版”都受“这本书的”修饰,也都是指称语。再深入一层,“匆忙的出版”中的“出版”是指称语,“匆忙地出版”中的“出版”是述谓语。“匆忙的出版这本书”语法上是错的,“匆忙地出版这本书”没问题。一般来说,动词V的语用功能既可能是指称语,也可能是述谓语,依靠它的句法位置来区别。被“Adj的”修饰的V是指称语,被“Adj地”修饰的V是述谓语。修饰后得到的短语,“Adj的V”是指称语,“Adj地V”与V一样,既可能是指称语,也可能是述谓语,依靠它的句法位置来区别。
我:
基本同意宋老师。
顺便提一句,感觉与白老师对话的时候,常常是,似乎是两股道上跑的车,这不影响互相听得见;这两股道不是完全平行的 而是中间老有交叉点。仔细想来,估计是白老师是广度优先的对话算法;而我是深度优先的算法:一条路径不穷尽不愿意回头,就是所谓 “漂”或发散性思维。因为对话是在有限时空中进行,无论什么算法都不可能穷尽路径,因此就造成白老师提纲挈领 总站在云端俯瞰的效果,而深度优先的算法就成了啥了,捡了芝麻,丢了西瓜的印象。宋老师则不同,广度深度都有,但往往是隐而不发 一锤定音。董老师更是大师了 拈花微笑,howNet 拨千斤。就没有能超出 HowNet 的,简直就是如来佛的手掌心。
董:
“出版”,这对于Hownet曾有重要意义。HowNet当年就此要回答两个问题:第一,“出版”(或类似的“计算”、“分析”等)在汉语里也类似于英文既有动词词性,还有一个名词词性吗?这涉及在知网词典中,它们应有两个词条,还是只有一个词条?第二,“这本书的出版”和“这本树的不出版”,在理论意义上它们的区别是什么?
“出版”的问题,HowNet与宋老师是一致的。以前在我们对这个问题的说明时,我们说:“出版这本书”和“这本书的出版”中两个“出版”在核心语义上没有差别,所差的是:前者是有过程的,而后者是静态的,是一个事实。用比喻说,前者是一段视频,后者是一个镜头。这也就是宋老师的述谓性的和指称性的理论。HowNet基于这样的认识,“出版”这样的词语在词典中,只有一个词性,即动词,但对应着两个英文词条,动词和名词。
白:
“这本书的出版”揭示的结构强制现象概括为三句话:1、修饰语决定整体的词性;2、中心词保持原有的词性;3、修饰语填中心语的坑。
我:
Ontology 是逻辑的 高于语言的。在 ontology 的顶层 也有类似词类的东西,可以称作 逻辑类:逻辑动词 逻辑名词 逻辑形容词。这个思考在hownet 得到印证。我个人的这个思考发源于对世界语的钻研及其与不同类语言的比较。我学过法语 俄语 加上英语 汉语 世界语,有足够的表征支持跨语言、高于语言的逻辑类的探索。特别是世界语的构词法 对于这类研究的启示,当年感觉是醍醐灌顶。
白:
中心词的词性也可以“嫁鸡随鸡”,强制前保持原有词性,强制后由修饰语决定。此处特别容易走向拍脑袋。
我:
强制前强制后,原逻辑类都是恒定不变,它是这个语词概念的本质类别,不随句法词法而变。到了特定语言 会有一个类似的 field,俗称 pos,这个是可以改变的。但是传统上 nlp 定义的 pos 任务 很容易过火 过犹不及 结果是让开发者陷入依赖pos的误区(见【中文处理的迷思之二:词类标注是句法分析的前提】)。尤其是照搬英语pos做法到汉语的人 特别要警惕 pos 的陷阱。【迷思】里蕴涵很多只可意会的实践体会和哲学思考,说给世界听 但并不在乎世界听不听。陷阱本就是为人预备的 栽进去也没啥 不过是重复我们曾经的苦难而已。不说不忍,说了也就是菩萨心肠。

quote 需要说明的是,笔者并不反对先POS后Parser的中文处理策略,只是指出POS并非Parser的先决条件,还有一种句法直接建立在词典之上的一步走的策略。顺着这个思路,一步半的策略也许更好。所谓一步半,就是做一个简单的 POS 模块(算是半步)把词类区分中比较大路容易的现象标注好,并不求对所有词类施行标注。

这里要提的建议是:推向极端可以不做汉语 pos,为了工程方便 可以做,但不要过火 不能依赖。
董:
说得太对了。我们在HowNet 那本书的最后单有一章,讲的是中文。其中批评了宾州中文树库,说那是照着英文套中文。特别举得例子是他们标注:年平均(adv)-增长3倍,同句中的年平均(adj)增长率,中文真是如此吗?我们中文的哪本词典里有如此区分词性的。英文词典里look是动词还是名词表的清清楚楚。我们中文是到真实文本中浮动的。英文的文法是百姓的文法,中文的文法是汉语学家的文法。
清:
董老师分析的透彻!
我:
董老师做 HowNet 的30年,所经过的思考,是我们一般人难以企及和想象的,所以我说,真地就好像如来佛的手掌心,有时候我们自以为自己有什么创新思维,最多也不过是个孙猴子,还不等到得意,就发现董老师高高在上 拈花微笑呢。
白:
不过只要伪歧义控制得住,就算多几个POS,技术上也没什么大不了的。至少这不是个技术问题。
我:
问题是,这些都是相互关联的。多数人,特别是没有经过磨练的新毕业生,一头栽进去,根本就无法控制伪歧义。汉语处理一不留神就是个泥淖。
白:
毕业生学什么课太关键了,学了错的课,时间还不够用来消毒的。
杨:
精辟!

白:
NLP的精妙所在就是纵向不确定性(一个位置上取什么标签)和横向不确定性(哪两个标签之间有关联性,独享还是共享)互相交织,最后还给出一个确定的解。
我:
就好比一个迷宫。虽然说走出迷宫 并非只有一条路径 但能走出来的路径真心并不多,而且每条到达终点的路径都必然七曲八拐 暗礁险滩。可以展示最终的形态 很难展示历经的过程。有人认为 只要最终形态是相对确定的 这个路径就必然可以根据最终形态学出来。这就是黑箱子的哲学。似乎天然可行 也赢得了全领域 甚至全人类(大部分是外行)的理所当然的认同。我称它为学习乐观主义。有没有 catch 只有天知道 白老师知道。
白:
七拐八拐真心不是障碍,障碍是目标函数是什么。
我:
七拐八拐关涉多层,不也是毛毛虫的一个部分?

 

【相关】

中文处理的迷思之二:词类标注是句法分析的前提

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

【置顶:立委科学网博客NLP博文一览(定期更新版)】

《朝华午拾》总目录

计算语言学的尴尬

白:
我关心“老婆情人”在那个语境下为啥不是定中结构。
老王卖瓜自开涮,
创新形容瓜特甜。
老婆情人小三见,
买回刀劈报仇般,
我:
没看懂。似乎有个 context:
老婆情人小三见 == 老婆情人见小三 or
老婆情人小三见 == 老婆见情人小三 ?
诗人特权害死人
Nick:
老婆情人小三见==三缺一
洪:
老婆/情人/小三见
两者兼顾,读诗看图,歧义何出?误解消除。
情人/小三,心理概念;原型维度,因人而殊。
RW:
情人/老婆,心理概念;原型维度,因人而殊。
我:
情人(lover)与小三当然不同。小三虽然没有法统地位,但既然排了次序,就有了事实的地位(“事实婚姻”的事实)。因此还有小四小五之说,这个次序也可能有新来后到的意思,或反映了喜新厌旧,数字越大新人可能越受“老爷”的宠(沿袭三妻四妾的旧制度思维),虽然事实的地位在俗众的心目中似乎越低。
陈:
情人一般是有夫之妇?小三是未婚?
我:
情人比较浪漫,超脱,爱情唯上。与世俗的地位和次序脱钩,倒是有某种秘密的刺激。
Nick:
小三是有上位企图的,情人没有。so情人就是炮友的意思。法国人那种关系都叫情人?我:
情人一旦转成小三 就低下了浪漫的头 失去了独立性 成了金屋藏的娇。广义的情人 也可以转成夫人 实现从浪漫到世俗的脱胎换骨。窄义的情人 专对已婚而言 那是法国英国贵族爱玩的公开的秘密游戏。
白:
你们都是发散思维,就我死啃一个点,结果没人回应。
我:
白老师的问题是老婆小三之间的顿号,是怎么进入人的语言心理的?虽然根本就没看见顿号的影子。为什么顿号不是“的”?
为什么呢?因为大数据!
白老师这次不是“窃喜”,而是感叹心有灵犀了吧
@白老师 “大数据” 是不是你心中老婆情人parsing的标准答案
白:
@wei 大数据中,老婆情人的对举用法远多于修饰用法,这是肯定的。另外老婆的情人有个更简约的用法“情敌”,放着不用偏要拐着弯说,浪费能源。现实中两个因素都在起作用。
我:
白老师的问题是太能干 这个世界不够他玩的。又是语言学 又是金融平台 又是什么块什么链。否则的话 拉出来我们搭个档 做做 NLP 多刺激。就依照你那个 RNN 还是啥的路子走。别人的路子不敢信服。别人也很少懂这一边。
白:
身不由己啊
我:
说什么两条路线斗争 宗教门派之别 主流非主流 眼珠转与不转 这些都不是本质 本质就是鸡同鸭讲。隔行如隔山 同行也隔山。隔了山还讲个球。鸡犬之声相闻 老死不相往来。白马非马 计算语言学亦非语言学 只剩下语言的计算 这就是【计算语言学】的尴尬。这是一个非常奇怪的交叉学科 两路完全不是一个类型的人 没有 chemistry 没有基本的共同背景、世界观和方法学 没有共同语言  兴趣迥异 无法正常对话  更甭提恋爱结婚 最简单的办法 就是一派灭了另一派 眼不见为净。结果就是虽然被扫地出门了 语言学对于多数的殿堂内人 依然是格格不入 而又回避不了。某些主流 NLP 大牛 不懂语言学常识的 并不鲜见 这在任何其他学科都是不可思议的。
但是语言学比共产主义还更像一个幽灵,一直在殿堂徘徊 主流可以不转眼珠 可是心里并不是想象的那么有底气 一个潮流来 可以鸡血一下 忘记幽灵的飘荡 但幽灵始终徘徊。

【相关】

【文傻和理呆的世纪悲剧(romance tragedy)】

【科普随笔:NLP主流的傲慢与偏见】

没有语言学的 CL 走不远

老教授回函:理性主义回摆可能要再延迟10几年

【科普随笔:NLP的宗教战争?】

Church – 计算语言学课程的缺陷 (翻译节选)

泥沙龙笔记:从乔姆斯基大战谷歌Norvig说起

【NLP主流的反思:Church – 钟摆摆得太远(1):历史回顾】

【Church – 钟摆摆得太远(5):现状与结论】

《泥沙龙笔记:【钟摆摆得太远】高大上,但有偏颇》

【泥沙龙笔记:语法工程派与统计学习派的总结】

【科普小品:NLP 的锤子和斧头】

【新智元笔记:两条路线上的NLP数据制导】

置顶:立委科学网博客NLP博文一览(定期更新版)】

《朝华午拾》总目录

【河东河西,谁敢说SMT最终一定打得过规则MT?】

Xi:
@wei , 评论一下李明教授的机器翻译。我纳闷这年头这么多人跨界来和你抢食啊?

我:
评论啥,我对MT无感了,都。
我现在是,胸怀知识图谱,放眼世界大同。早翻过MT那一页了。
不过话说回来,学自然语言的人如果入行做的就是规则机器翻译,那是上天的赐福。新一辈这种人没有了,所以很多入行多年的人,看到的语言世界,还是井底的一线天。
如果你在没有平台支持下被逼着去做机器翻译,你有福了。你必须从头开始做词典、做 tokenization,做 POS,做短语,做 SVO 句法,你还要做双语结构转换、WSD 词义消歧,最后还有目标语的生成,包括形态生成、调序,修辞上的一些 final touches。
总之 方方面面 你必须全部做到 如果没有平台 没有专用语言 像我们做硕士论文那样用 general purpose language (COBOL,ALGOL,BASIC,甚至汇编)做,那就是在太上老君八卦炉里炼 没得不炼成火眼金睛 后去做 NLP 任何一个方面和应用 都洞若观火。
现在的 CL 硕士博士呢 动不动就下载一个软件包,瞅准一个子任务 譬如切词,譬如 sentiment,譬如WSD,哪怕是做 MT, 也不用涉及那么多的层次和模块。
老老年文:【立委科普:机器翻译】 但并没完全失效。还有这篇:【立委随笔:机器翻译万岁】。
SMT 不用涉及那么多层次 是因为迄今的 SMT 基本是在浅层打转 从来就没有做到深层,论深度和结构 远远不及我们 30 年前做的 规则MT。
马:
但是比规则的系统实用啊
我:
河东河西啊。
如今董老师的系统等也打磨经年了,很难说谁更实用。论精度 则绝对是后者强,甩出一条街去。
smt 的先驱应该是 ibm ,从加拿大议会英法双语语料开始的。

Guo:
Translation memory 算什么?

我:
说起这个概念,我还有掌故呢。以前记过,差不多也成了 MT 野史或外传了,见《朝华午拾:欧洲之行》,Victor 称作为 translation unit (TU)。他们的所谓的 Chinese Week,当时董老师也去了,我和刘老师也去了。傅爱萍大姐派人领我们参观了红灯区以后,并没有随着我们去参加这个活动。这个活动的设立与我当年为他们做的“汉语依存文法”的工作密切相关。
QUOTE 研究组的骨干还有国际世界语协会的财务总监,知名英国籍世界语者 Victor Sadler 博士,我在71届国际世界语大会上跟他认识。作为高级研究员,他刚刚完成一项研究,利用 parsed (自动语法分析)过的双语对照的语料库(BKB, or Bilingual Knowledge Base)的统计信息,匹配大小各异的翻译单位(translation unit)进行自动翻译,这一项原创性研究比后来流行的同类研究早了5-10年。显然,大家都看好这一新的进展,作为重点向我们推介。整个访问的中心主题,仍然是解答他们关于汉语句法方面一些疑难问题。他们当时正在接洽欧洲和日本的可能的投资人,预备下一步大规模的商业开发,汉语作为不同语系的重要语言,其可行性研究对于寻找投资意义重大。
索性把怀旧进行到底 《朝华午拾:一夜成为万元户》: 这是我为这个DLT项目所做的 Chinese Dependency Grammar 的故事。这篇汉语形式文法的原始版本有链接可以下载:Li, W. 1989. “A Dependency Syntax of Contemporary Chinese”, BSO/DLT Research Report, the Netherlands.  我的工作应该是中国做依存关系最早最完整的作品了。所谓 【美梦成真】 就是这么个来历,跨越近 30 年,纸上谈兵的 syntax 终于化为现实的 deep parser。
刚才一边吃晚饭,一边琢磨这段MT外传,觉得还是有几点可以总结的,笔记如下,各位指正。
(1) 荷兰这个多语 MT 计划本来是规则系统起家,用世界语作为媒介语,用的是依存关系文法的框架,实现的机制是 ATN (Augmented Transition Network),技术领头是德国语言学家舒伯特。
(2) 可是做着做着,剑桥出身的 Victor 博士想出了统计的路线,定义了一个在句法分析基础上、根据统计和记忆决定的可大可小的 Translation Unit (有点像我们用的“句素”的概念),做了实验验证了这条路线的创新,把整个项目在收尾阶段翻了个个儿。而这时候(1989年),其他的MT研究虽然也有 IBM 等开始的统计 MT,但没有一个达到这样的深度。
(3)事实上,直到今天,回顾这个科研创新可以看出,根据 parsed 以后的双语数据库的平行对比,从统计去找 Translation Units,比起后来多数缺乏结构、本质上是 ngram 记忆的 SMT,还是远高出一筹。
(4)在 SMT 中加入 parsing 并不是每个人都有这个条件,DLT 赶巧是先做 parser 做了四五年,有了这个基础。现在和今后的方向从宏观上来看是,SMT 应该重温类似 BKB 双语parsed平行语料库的尝试,走带入结构的道路,才有希望克服现在显而易见的结构瓶颈,譬如定语从句翻译的错误。

mei:
语言学家做MT注重语言的结构,深的浅的。我是ai出生,注重“知识“,互相通融的,但侧重点有区别。
Guo:
一谈到统计和规则,总不免让人想起,库恩的科学革命的结构。根本说来,统计和规则,对于什么是nlp,是有完全不同的定义的。站在统计的角度,古埃及文的解读,作者和鹰品的辨识,错别字的检查和矫正,文章可读性的分类,还有很多很多这样的,都是历史悠久的成功故事。说历史悠久,是因为他们早于乔姆斯基太多年了。但是从规则的角度看,这些大概都不属于nlp。

我:
规则也并非一定要是句法的规则,任何 patterns 包括 ngrams 都可以是规则。学习派用的是 ngram 的分布统计,规则派很难量化这些 ngrams 的统计数据,只好把“gram”定义为从线性序列到句法单位的一个动态 unit,用结构化的深度 弥补统计性的不足。

Guo:
其实对于mt,统计这一派也更多的是从”机助”翻译甚至阅读来看问题。不管大佬们怎么吹牛,统计这一派从来不以理解人模仿人为目标。他们是非常工程性,实用主义的。

我:
当 gram 被定义为我导师刘倬老师所阐述过的“句素”以后,产生了两个飞跃:
第一是距离从线性走向平面,甚至远距离现象也可以被这种 “ngram” 抓住了: 这类例证我此前显示过很多。第二是 gram 本身从直接量 (literal) 提升为一个具有不同抽象度的 features 的语言学单位总和,连ontolgy亦可带入。这两个飞跃使得应对自然语言错综复杂的规则,变得切实可行。
smt 我们迄今看到的流行成熟的系统,譬如大投入造就的百度和谷歌MT,其缺乏结构和parsing支持的缺点是如此显然,结构瓶颈随处可见。可反过来看董老师在群里显示出来的传统规则+知识 的系统,结构的优势不言而喻。
也许从 scale up,从对付鸡零狗碎的成语性的 ngrams,董老师这类系统目前还无法匹敌百度谷歌 smt,但是假如以董老师系统为核心,给以同等的资源投入和维护,我觉得百度系统无法打得过规则 MT。当然 最佳的办法是二者的某种结合,取长补短。我想说的是,如果硬要硬碰硬的话,在同等投入的基础上,谁敢拍胸脯说主流 smt 一定会胜过规则 mt 呢?
现在是不平等比较,根本不是 apple to apple 较量。历史把 规则mt 推下了主流舞台,但是 smt 的人无论多么傲慢 也还是应该看得见自己的短板和规则mt的亮点。

Guo:
统计这一派,其实有很多人试图引入结构,但鲜有能够有效减少perplexity的。核心的争论,就是问题到底出在哪儿?一种观点是,结构,并不承载太多的附加信息。另一种就是,我们还没有发现更好的更有效的数学模型。这就是为什么,好些人对深度神经就像打了鸡血。

我:
heterogeneous features 引入后的 evidence overlapping 以及 perplexity 等,是研究课题,不过说结构不承载太多附加信息等价于说 ngram 线性的 model 无需改变,这个 model 在20多年中已经被推向了极致,没有多少油水了。白老师说话,model 不对,语言长得啥样框架上就没留下空间,再多的数据,再deep的学习,也是必然遭遇瓶颈的。
的确在某些粗线条任务中 譬如 document classification,一袋子词的ngram模型已经足以满足应用的需要,精度已经够高,结构即便加入也改进余地不大了:这不是我们需要讨论的。我们关注的都是那些显然遭遇瓶颈的任务,包括 MT、包括 IE、包括 Sentiment Analysis,这些任务,显然统计的路线在没有结构助力下,深入不下去。
到目前为止 纵然有一些带入结构的尝试,但很可能是浅尝辄止,还不到结论的时候。
深度神经是一种训练的算法,与语言的结构深度没有必然联系。事实上 迄今为止 对于 text NLP 的深度神经的尝试,除了专门做中间件 parsing 的 research 如 SyntaxtNet 外,对于 NLP 应用方面的任务,基本上还是在语言浅层进行。带入结构的深度神经用于 text NLP, 到底有几家在做?如果没做 或还没做出结果来 那么所谓 Deep Text 就是有意无意的误导(见 【遭遇脸书的 Deep Text】 )。

杨:
我理解:深度学习主要是可能在语意理解领域 可能会有所改变

我:
譬如?
哪些任务是深度神经擅长、文法工程短板的语义理解呢?
凡是条分缕析的细线条任务,想不出来深度学习可做,文法工程不可做的,无论语义如何落地。

杨:
比如文字到图像的映射搜索呢?我不懂,瞎说的。当然 这个目前远远不成熟 只是猜想

我:
这个还真是没想到,因为其中一端是 text (captions?),可另一端是 image,对于学习,无论神经的深浅,这个任务只要有大量的 data (带有 captions 的 图片集),就是一个很自然的学习的任务。而对于规则,这种形式化的语义落地(映射到图像)在图像那边如何处理并integrate 到规则系统中来对接,似乎没有显然而见的自然接口。

杨:
不过 图像这块就不够成熟 要做这个且早呢。

我:
好。短板不怕,只要心里有数就好。早就知道规则的“经典”短板了:
手工规则系统的软肋在文章分类】 。
QUOTE 人脑(规则)可能顾不上这么多细微的证据及其权重,但是人脑往往可以根据不同状况抓住几条主线,然后在其中调控,达到解决问题。在 deep parsing 这个 NLP 的关键/核心领域,规则系统的优势更加明显
再有就是搜索。关键词检索的鲁棒、对付长尾 query 的能力,是规则系统难以匹敌的。
但是如果把关键词搜索作为 backoff,那么加入结构的精准智能搜索(我们叫 SVO search)就顺理成章了。

 

【相关】

立委科普:机器翻译
立委随笔:机器翻译万岁

朝华午拾:欧洲之行
朝华午拾:一夜成为万元户
美梦成真
手工规则系统的软肋在文章分类
遭遇脸书的 Deep Text

Li, W. 1989. “A Dependency Syntax of Contemporary Chinese”, BSO/DLT Research Report, the Netherlands.

【置顶:立委科学网博客NLP博文一览(定期更新版)】

《朝华午拾》总目录

【关于NLP方法论以及两条路线之争】

【新智元笔记:工程语法和深度神经】

【新智元笔记:李白对话录 – RNN 与语言学算法】

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

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

《新智元笔记:【Google 年度顶级论文】有感》

《新智元笔记:NLP 系统的分层挑战》

《泥沙龙笔记:连续、离散,模块化和接口》

《泥沙龙笔记:parsing 的休眠反悔机制》

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

【泥沙龙笔记:NLP hard 的歧义突破】

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

【新智元笔记:李白对话录 – 从“把手”谈起】

《新智元笔记:跨层次结构歧义的识别表达痛点》

立委科普:NLP 中的一袋子词是什么

一切声称用机器学习做社会媒体舆情挖掘的系统,都值得怀疑

立委科普:关键词革命

立委科普:关键词外传

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

【泥沙龙笔记:语法工程派与统计学习派的总结】

【科普小品:NLP 的锤子和斧头】

【新智元笔记:两条路线上的NLP数据制导】

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

Comparison of Pros and Cons of Two NLP Approaches

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

Why Hybrid?

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

【李白对话录:你波你的波,我粒我的粒】

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

《泥沙龙笔记:铿锵众人行,parsing 可以颠覆关键词吗?》

泥沙龙笔记:铿锵三人行

《泥沙龙铿锵三人行:句法语义纠缠论》

【科普随笔:NLP主流的傲慢与偏见】

【科普随笔:NLP主流最大的偏见,规则系统的手工性】

再谈机器学习和手工系统:人和机器谁更聪明能干?

乔姆斯基批判

Chomsky’s Negative Impact

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

【语义计算沙龙:乔老爷的围墙,community 的盲区】

【新智元笔记:语法糖霜论不值得认真对待】

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

【泥沙龙笔记:NLP 专门语言是规则系统的斧头】

【新智元:理论家的围墙和工程师的私货】

泥沙龙笔记:从乔姆斯基大战谷歌Norvig说起

【Church – 钟摆摆得太远(2):乔姆斯基论】

【NLP主流的反思:Church – 钟摆摆得太远(1):历史回顾】

【Church – 钟摆摆得太远(3):皮尔斯论】

【Church – 钟摆摆得太远(4):明斯基论】

【Church – 钟摆摆得太远(5):现状与结论】

《泥沙龙笔记:【钟摆摆得太远】高大上,但有偏颇》

自给自足是NLP王道

自然语言后学都应该看看白硕老师的“自然语言处理与人工智能”

语言创造简史

Notes on Building and Using Lexical Semantic Knowledge Bases

【NLP主流成见之二,所谓规则系统的移植性太差】

Domain portability myth in natural language processing (NLP)

【科普随笔:NLP的宗教战争?】

Church – 计算语言学课程的缺陷 (翻译节选)

【科普随笔:NLP主流之偏见重复一万遍成为反真理】

坚持四项基本原则,开发鲁棒性NLP系统

NLP 围脖:成语从来不是问题

NLP 是一个力气活:再论成语不是问题

立委围脖:对于用户来说,抓住老鼠就是好猫

《科普随笔:keep ambiguity untouched》

【科研笔记:NLP的词海战术】

在构筑一个模型时,枚举法是常用的必要的强盗分类

没有语言学的 CL 走不远

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

手工规则系统的软肋在文章分类

老教授回函:理性主义回摆可能要再延迟10几年

每隔二十年振荡一次的钟摆要多长?

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

《泥沙龙李白对话录:关于纯语义系统》

【泥沙龙笔记:语义可以绕过句法吗】

一袋子词的主流方法面对社交媒体捉襟见肘,结构分析是必由之路

《通用的机器人都是闹着玩的,有用的都是 domain 的》

 

关于 NLP 以及杂谈

关于 parsing

【关于信息抽取】

关于人工智能

关于NLP体系和设计哲学

 

《朝华午拾》总目录

【置顶:立委NLP博文一览(定期更新版)】

立委NLP频道

 

遭遇脸书的 Deep Text

前几天脸书发布 Deep Text 新闻,在AI和自然语言理解领域引起热议,媒体上也闹出很大的动静。昨天笔者第一次亲身遭遇脸书的 deep text, 确认了其浅层无结构的本质,甭管它训练了多少层。
我跟女儿对话总是用脸书,她的圈子都用脸书,基本不用微信。她遇到一个烦扰有点着急,我就告诉她 take a deep breath, 没想到脸书立即跳出了 Uber 的链接:我只要一按钮 出租车就会来。
天哪 这就是所谓 deep?很可能不过是个基于 ngram 的分类系统,哪里有 deep nlp 和结构的影子?
大概训练集里有不少 Take a ride, Take a cab,  结果 take a deep breath 就也成了“出行”类事件了。这种信息抽取要是在 parsing 的结构基础上,哪里会出这样的笑话。
报道说什么deep text理解语言接近人的水平,牛皮吹没边了。比我们 parsing 支持的抽取能力和精准 相差何止以里计。
这其实不是意外的发现,因为机器学习界一直就是在浅层做NLP,没有深度,没有结构,没有理解,缺乏细线条的分析 (parsing) 能力,大多是粗线条的分类 (classification) 工作。
对于分类系统 只有输入text大 机器学习才有效。如果是短消息,基本就是瞎蒙,关键词密度在短消息中没有了优势,缺乏 data points 的证据。
事实上,迄今的几乎所有的nlp应用,基本局限于无结构,机器学习 deep 不 deep 没有改变这一点。这很可能是为什么深度学习(DL)在 text 方面似乎不给力的症结所在。
宋老师前两天说话,学习 deep 了 的好处是可以消化更多的训练数据,但是数据的增加永远是线性的,而 text 里面的结构性决定了语言的组合爆炸,因此深度学习不会因为增加数据而根本改观,稀疏数据依然是挑战。ngram 与 bow(bag of word) model 不变,再深的训练依然是在语言浅层挣扎,只能做粗线条的 nlp,却难以胜任细线条nlp的任务。ngram 只是语言结构的拙劣近似,缺乏结构是迄今的死穴。
parsing 基础上的事件抽取(event extraction)比ngram上的事件分类(event classification)高出岂止一头,一细一粗,一精一庸。