【立委按】 以前在哪里提过这个 million-dollar slide 的故事。说的是克林顿当政时期的 2000 前,美国来了一场互联网科技大跃进,史称 .com bubble,一时间热钱滚滚,各种互联网创业公司如雨后春笋。就在这样的形势下,老板决定趁热去找风险投资,嘱我对我们实现的语言系统原型做一个介绍。我于是画了下面这么一张三层的NLP体系架构图,最底层是parser,由浅入深,中层是建立在parsing基础上的信息抽取,最顶层是几类主要的应用,包括问答系统。连接应用与下面两层语言处理的是数据库,用来存放信息抽取的结果,这些结果可以随时为应用提供情报。这个体系架构自从我15年前提出以后,就一直没有大的变动,虽然细节和图示都已经改写了不下100遍了,本文的架构图示大约是前20版中的一版,此版只关核心引擎(后台),没有包括应用(前台)。话说架构图一大早由我老板寄送给华尔街的天使投资人,到了中午就得到他的回复,表示很感兴趣。不到两周,我们就得到了第一笔100万美金的天使投资支票。投资人说,这张图太妙了,this is a million dollar slide,它既展示了技术的门槛,又显示了该技术的巨大潜力。 2. 2 . 2 . System Background: InfoXtract InfoXtract (Li and Srihari2003, Srihari et al. 2000) is a domain-independent and domain-portable, inter mediate level IE engine. Figure 4 illustrates the overall architecture of the engine which will be explained in detail shortly. The outputs of InfoXtract have been designed with information discovery in mind. Specifically, there is an attempt to: Merge information about the same entity into a single profile. While NE provides very local information, an entity profile which consolidates all mentions of an entity in a document is much more useful Normalize information wherever possible; this includes time and location normalization. Recent work has also focused on mapping key verbs into verb synonym sets reflecting the general meaning of the action word Extract generic events in a bottom-up fashion, as well as map them to specific event types in a top-down manner Figure 4 . InfoXtract Engine Architecture A description of the increasingly sophisticated IE outputs from the InfoXtract engine is given below: · NE: Named Entity objects represent key items such as proper names of person, organization, product, location, target , contact information such as address, email, phone number, URL, time and numerical expressions such as date, year and various measurements weight , money , percentage , etc . · CE : Correlated Entity objects capture relations hip mentions between entities such as the affiliation relationship between a person and his employer . The results will be consolidated into the information object Entity Profile (EP) based on co-reference and alias support . · EP : Entity Profiles are complex rich information objects that collect entity-centric information, in particular, all the CE relationships that a given entity is involved in and all the events this entity is involved in. This is achieved through document-internal fusion and cross-document fusion of related information based on support from co-reference, including alias association. Work is in progress to enhance the fusion by correlating the extracted information with information in a user-provided existing database. · GE: General Events are verb-centric information objects representing ‘who did what to whom when and where’ at the logical level. Concept based GE (CGE) further requires that participants of events be filled by EPs instead of NEs and that other values of the GE slots (the action, time and location) be disambiguated and normalized. · PE: Predefined Events are domain specific or user-defined events of a specific event type, such as Product Launch and Company Acquisition in the business domain. They represent a simplified versionof MUC ST. InfoXtract provides a toolkit that allows users to define and write their own PEs based on automatically generated PE rule templates. The linguistic modules serve as underlying support system for different levels of IE. This support system involves almost all major linguistic areas: orthography, morphology, syntax, semantics, discourse and pragmatics. A brief description of the linguistic modulesis given below. · Preprocessing: This component handles file format converting, text zoning and tokenization. The task of text zoning is to identify and distinguish metadata such as title, author, etc from normal running text. The task of tokenization is to convert the incoming linear string of characters from the running text into a tokenlist ; this forms the basis for subsequent linguistic processing. · Word Analysis: This component includes word-level orthographical analysis (capitalization, symbol combination, etc.) and morphological analysis such as stemming. It also includes part-of-speech (POS) tagging which distinguishes, e.g., a noun from a verb based on contextual clues. An optional HMM-based Case Restoration module is called when performing case insensitive QA (Li et al. . 2003a). · Phrase Analysis: This component, also called shallow parsing , undertakes basic syntactic analysis and establishes simple, un-embedded linguistic structures such as basic noun phrases (NP), verb groups(VG), and basic prepositional phrases (PP). This is a key linguistic module, providing the building blocks forsubsequent dependency linkages between phrases. · Sentence Analysis: This component, also called deep parsing , decodes underlying dependency trees that embody logical relationships such as V-S (verb-subject), V-O (verb-object), H-M (head-modifier). The InfoXtract deep parser transforms various patterns, such as active patterns and passivepatterns, into the same logical form, with the argument structure at its core. This involves a considerable amount of semantic analysis . The decoded structures are crucial for supporting structure-based grammar development and/or structure-based machine learning for relationship and event extraction. · Discourse Analysis: This component studies the structure across sentence boundaries. One key task for discourse analysis is to decode the co-reference (CO) links of pronouns ( he, she, it , etc) and other anaphor ( this company,that lady ) with the antecedent named entities. A special type of CO task is ‘Alias Association’ which will link International Business Machine with IBM and Bill Clinton with William Clinton . The results support information merging and consolidation for profiles and events. · Pragmatic Analysis: T his component distinguishes important , relevant information from unimportant , irrelevant information based on lexical resources, structural patterns and contextual clues. Lexical Resources The InfoXtractengine uses various lexical resources including the following: General English dictionaries available in electronic form providing basis for syntactic information. The Oxford Advanced Learners’ Dictionary (OALD) is used extensively. Specialized glossaries for people names, location names, organization names, products, etc. Specialized semantic dictionaries reflecting words that denote person , organization , etc. For example, doctor corresponds to person, church corresponds to organization. This is especially useful in QA. Both WordNet as well as custom thesauri are used in InfoXtract. Statistical language models for Named Entity tagging (retrainable for new domains) InfoXtract exploits a large number of lexical resources. Three advantages exist by separating lexicon modules from grammars : (i) high speed due to indexing-based lookup; (ii) sharing of lexical resources by multiple gramamr modules; (iii) convenience in managing grammars and lexicons. InfoXtract uses two approaches to disambiguate lexicons. The first is a traditional feature-based Grammatical/machine learning Approach where semantic features are assigned to lexical entries that are subsequently used by the grammatical modules. The second approach involves expert lexicons which are discussed in the next section. Intermediate-Level Event Extraction for Temporal and Spatial Analysis and Visualization (SBIR Phase 2 ) Wei Li, Ph.D., Principal Investigator Rohini K. Srihari, Ph.D.,Co-P rincipal Contract No. F30602-01-C-0035 September 2003 《朝华午拾:创业之路》 前知识图谱钩沉: 信息体理论 2015-10-31 前知识图谱钩沉,信息抽取任务由浅至深的定义 2015-10-30 前知识图谱钩沉,关于事件的抽取 2015-10-30 SVO as General Events 2015-10-25 Pre-Knowledge-Graph Profile Extraction Research via SBIR 2015-10-24 《知识图谱的先行:从 Julian Hill 说起 》 2015-10-24 朝华午拾:在美国写基金申请的酸甜苦辣 - 科学网 【置顶:立委科学网博客NLP博文一览(定期更新版)】
Five challenges to keyword-based sentiment classification: (1) domain portability; (2) micro-blogs: sentence/twit classification is a lot tougher than document classification; (3) when big data become small: big data load when sliced and diced based on the users' needs quickly becomes mall, and a precision-challenged classifier is bound to have trouble; (4) association of sentiments with object: e.g. comparative expressions like Google is a lot better than Yahoo; (5) too coarse-grained: no actionable insights, this is fatal. 做自动舆情挖掘(sentiment mining)已经好几年了,做之前思考这个课题又有好多年(当年我给这个方向的项目起了个名字,叫 Value Tagging,代码 VTag,大约2002年吧,做了一些可行性研究,把研发的 proposal 提交给老板,当时因为管理层的意见不一和工程及产品经理的合作不佳,使得我的研发组对这个关键项目没能上马,保守地说,由此而来的技术损失伤害了公司的起飞),该是做一个简单的科普式小结的时候了。本片科普随笔谈机器分类系统在舆情抽取中的应用,算是这个系列中的一篇。 首先对大数据的舆情挖掘是建立在对具体语言单位的舆情抽取(sentiment extraction)的基础之上。只有当语言海洋中千千万万的舆情表达被抽取存贮到某个数据库以后,我们才有条件针对具体的舆情问题(如某特定品牌的网络形象或某话题的舆情走势),搜索有代表性的舆情资料,并将搜索结果整合提炼,然后以某种方式(譬如《 品牌舆情图 》或《 话题晴雨表 》)表达给情报使用者。 舆情抽取的主流是利用机器学习基于关键词的分类(sentiment classification),通常的做法非常粗线条,就是把要处理的语言单位(通常是文章 document,或帖子 post)分类为正面(positive)和负面(negative),叫做 thumbs up and down classification。后来加入了中性(neutral),还有在中性之外加入一类 mixed (正反兼有)。这种做法非常流行快捷,在某个特定领域(譬如影评论坛),分类质量可以很高。我们以前的一位实习生做过这样的暑假项目,用的是简单的贝叶斯算法,在影评数据上精度也达到90%以上。这是因为在一个狭窄的领域里面,评论用语相当固定有限,正面负面的评价用词及其分布密度不同,界限清晰,识别自然不难。而且现在很多领域都不愁 labeled data,越来越多的用户评价系统在网络上运转,如 Amazon,Yelp,积累了大量的已经分类好的数据,给机器分类的广泛应用提供了条件。 但是,上述分类遇到了以下挑战。 首先,领域移植性不好,影评数据训练出来的分类器换到电子器件的客户评价分类上就不管用。要对多个领域训练出多个分类器,很耗时,效果也不能得到保证。于是有人开始研究独立于领域(domain-independent)的舆情分类,其假设前提是舆情表达各个领域之间既有领域独有的表述方式,也有共通的表达(比如,好/good 在任何领域都是正面的形容词,坏/bad 在任何领域都是负面的),而且二者有相当的信息冗余度。这个假设在语言单位较大(譬如长的帖子或文本)时,是成立的。因此,这个挑战不算是致命的。但是很多应用领域,语言单位不大,譬如社会媒体中风行的微博/tweets,就很短,这一点构成第二个挑战。 第二个挑战就是,语言单位的缩小使得分类所需要的词汇证据减少,分类难为无米之炊,精度自然大受影响。从文件到帖子到段落再到短句,语言单位每一步变小,舆情分类就日益艰难。这就是为什么多数分类支持的舆情系统在微博(tweets)主导的社会媒体应用时文本抽取质量低下的根本原因(一般精度不过50%-60%)。当然,文本抽取精度不好并不表明不可用,它可以用大数据来弥补(由于大数据信息天生的大冗余度,利用sampling、整合等方法,一个大数据源的整体精度可以远远高于具体文本抽取的精度),使得最终挖掘出来的舆情概貌还是靠谱的。然而,大数据即便在大数据时代也不是总是存在的,因为一个真实世界的应用系统需要提供各种数据切割(slicing n dicing) 的功能 ,这就使得很多应用场景大数据变成了小数据,这是下面要谈的第三个问题。 第三是大数据切割的挑战。本来我们利用机器来应对大数据时代的信息挑战,起因就是信息时代的数据量之大。如果数据量小,蛮可以利用传统方式雇佣分析员,用人的分析来提供所要的情报,很多年以来的客户调查就是如此。可是现在大数据了,别说社会媒体整体的爆炸性增长,就是一个大品牌的粉丝网页(fan pages)或一个企业的官方网页,每时每刻所产生的数据也相当惊人,总之无法依靠人工去捕捉、监测情报的变化,以便随时调整与客户的互动策略。这是机器挖掘(无论分类还是更细致的舆情分析)不可不行的时代召唤和现实基础。但是,观察具体应用和情报需求的现场就会发现,用户不会满足于一个静态的、概览似的情报结果,他们所需要的是这样一个工具,它可以随时对原始数据和抽取情报进行各种各样的动态切割(slice/dice 原是烹饪术语,用在情报现场,就是, to break a body of information down into smaller parts or to examine it from different viewpoints so that you can understand it better , 摘自 http://whatis.techtarget.com/definition/slice-and-dice )。舆情切割 有种种 不同依据的需求,譬如根据舆情的类别,根据男女的性别,根据数据源,根据时间或地理位置,根据数据的点击率等。有的时候还有多次切割的需求,譬如要看看美国加州(地理)的妇女(性别)对于某个品牌在去年夏季(时间)的舆论反映。最典型的切割应用是以时间为维度的《动态晴雨表》,可以反映一个研究对象的情报走势(trends)。譬如把一年的总数据,根据每月、每周、每日,甚至每小时予以切割,然后观察其分布走势,这对于监测和追踪新话题的舆情消长,对于新产品的发布,新广告的效用评估(譬如美式足球赛上的巨额品牌广告的客户效应)等,都有着至关重要的情报作用。总之,大数据很可能在具体应用时要被切割成小数据,一个分类精度 不高 (precision-challenged)的系统就会捉襟见肘,被大数据遮盖的缺陷凸显,被自然过滤净化的结果在小数据时会变得不再可信。 第四个挑战是找舆情对象的问题。在几乎所有的舆情分析应用中,舆情与舆情的对象必须联系起来,而这一基本要求常常成为舆情分类系统的软肋。当然,在特定数据源和场景中,可能不存在这个问题,比如对 Amazon/Yelp 这类客户评价数据 (review data) 的舆情分析,可以预设舆情的对象是已知的(往往在标题上,或者其他 meta data 的固定位子),每一个review都是针对这个对象(虽然不尽然,review中也可能提到其他的品牌或产品,但是总体上是没问题的,这是由 review data 的特性决定的)。然而在很多社会媒体的自发舆情表述中(譬如微博/脸书/论坛等),在舆情分类之后就有一个找对象的问题。这个问题在比较类语言表达中(比如,谷歌比雅虎强老鼻子啦 这样语句,正面评价“强”到底是指雅虎还是谷歌,这看似简单的问题,就难倒了一大帮机器学家,道理很简单,机器分类系统依靠的是keywords,一般没有语言结构的支持,更谈不上理解)。与青春躁动期的小屁孩也差不多,满腔情绪却找不到合适的表达或发泄对象,这几乎成了所有褒贬分类系统的克星。在随兴自发的社会媒体中,这类语言现象并不鲜见,一边夸 张三一边 骂 李四 更是网络粉丝们常见的表达(譬如 方韩粉丝的网络大战 )。 第五个挑战是颗粒度的问题。这是分类系统的致命伤,它们只知道数翘大拇指还是伸出中指的数量,这对舆情的总体概览有点意义,但是这远远不是最有价值的舆情情报,关于这一点,我在以前的科普随笔中论述过: 褒贬分析只提供舆情的一个概览,它本身并不是 actionable insights. 知道很多人喜欢或者不喜欢一个品牌,so what?企业还是不知道怎么办,最多是在广告宣传投资量的决策上有些参考价值,对于改进品牌产品,适应用户需求,褒贬舆情太过抽象,不能提供有价值的情报。这就要求舆情分析冲破两分、三分、五分的分类法,去发掘这些情绪的背后的动因(reasons/motivation),回答 为什么 网民喜欢(不喜欢)一个品牌的问题。譬如挖掘发现,原来喜欢麦当劳的主要原因是它发放优惠券,而不喜欢它的原因主要是嫌它热量太大,不利减肥。这样的舆情才是企业在了解自己品牌基本形象以后,最渴望得到的 actionable 情报,因为他们可以据此调整产品方向(如增加绿色品种和花样,水果、色拉等),改变广告策略(如强调其绿色的部分)。 摘自【 立委 科普:舆情挖掘的背后 】 上面列举的机器舆情分类系统的挑战,并不是要否定机器学习在舆情领域的价值,而是要阐明以下的观点:粗线条的机器分类只是舆情自动分析的开始,万里长征的第一步,一个真正有价值的舆情挖掘系统还需要更多更细致的舆情自动抽取和挖掘的技术来支持。鉴于学界和业界 90% 以上自称做 sentiment 的系统,都是以机器分类作为基础支撑的,明白这一点尤其重要。那么什么是舆情抽取和挖掘系统所需要的完整的技术基础呢?且听下回分解吧(如果兴起的话)。 白马非马,人非人民。人民的呼声通过冗余才能听得见,否则就不是人民的声音,只是可有可无、可以忽略、听不见也不用听见的个体意见 日期: 02/15/2013 12:41:53 zdlh 2013-2-16 01:08对于网络预审\删帖这样的样本缺失和数据缺实,你怎么办 ? 博主回复(2013-2-16 02:03):不关我的事儿。铁路警察各管一段。但愿中国随着国家现代化民主化进程,随着新领导人倾听人民呼声的新政的实施,这个问题自然消解。 从技术上讲,在大数据的尺度下,不管什么原因缺失部分数据(server down,数据库 bug,数据提供人改主意突然把发出的帖子又很快删除,非民主社会的政府censorship,还有由于成本原因有意排除一些原始数据而只取一定比例的样本,还有垃圾过滤系统太aggressive的误删,或者我们系统本身查全率 (recall) 不理想,比如明明有褒贬却没有识别出来,等等等等:缺失是常态,而求全则是不现实也是不必要的),都不是大问题,as long as 这种缺失对于要挖掘的话题或品牌没有歧视性/针对性。大数据追求的是舆情动态和salient情报,而这些原则上都不会因为数据的部分缺失而改变,因为动态和 salience 的根基就是信息的高冗余度,而不是真正意义上的大海捞针。不亲手做系统,你难以想象互联网的大海里面,冗余的信息有多少。重要的是,冗余本身也是情报的题中应有之义。所谓舆情就是人民(客户)的呼声,而人民的呼声只有通过个体信息的大量冗余才能听得见。这与同一个情愿诉求为什么要征集成千上万的签名道理一样,至于最终是10万签名还是9万五千人签名了,完全不影响舆情的内容及其整体效应。 【置顶:立委科学网博客NLP博文一览(定期更新版)】
【立委按】俗话说, 铁打的营盘流水的兵。在我们 NLP(Natural Language Processing)这个营盘里,流水的兵过去了不知几拨。但也有像我这样赖在营盘就是不走的兵,任凭潮起潮落。比我更加坚韧的是我的导师一辈,他们早该退休,但还是抵制不了这个营盘的诱惑,仍然孜孜以求,让人钦佩不已。最近与前辈导师有交流,三句不离本行,似乎时光倒转 30 年,让人感慨几何。择要辑录如下,与同仁和后学分享。 》久未通信,但一直很惦记。 也一直说要给您拜年呢,眼看春节到了,学生先给您拜个早年。 》最近看到信息,有说在全球风靡统计和shallow的时候,你仍坚持deep parsing。赞你做的系统非常成功,表现特好 。 谬赞了。我坚持 deep parsing 也有无奈,主要为扬长避短。 统计的路子和语言学的路子确实各有利弊, 但是由于兼通二者的人不多,双方都有贬低对方的时候( 更多的是处于主流做统计的人压住语言学家一头)。其实, 眼光稍微看远点儿,这种状态是很不健康的。 》你的多语言系统如何?中文的还蒙神助吗? 中文系统进展很好。千头万绪,但是我是边建造边使用,立竿见影, 做起来相对不那么枯燥,减少了 “ 以有涯随无涯而殆” 的苦恼。 产品雏形已成,内部使用, 正式推出大概在两三个月后吧:主要不是中文系统本身的问题, 而是社会媒体的 content sources 还没有搞定。我在科学网博客上有两个专栏【 立委科普 】和【 社媒挖掘 】,常常报告一些中文系统及其产品的最新进展: 【社媒挖掘】 http://blog.sciencenet.cn/home.php?mod=spaceuid=362400do=blogclassid=161685view=me 【立委科普】: http://blog.sciencenet.cn/home.php?mod=spaceuid=362400do=blogclassid=123261view=me 》HowNet 用了么,好玩吗? 选择了 知网 ( HowNet ) features 整合到词典里面去, 正在“玩”呢。刚开始用,将会用得越来越多。这也好, 系统编制开始,词典几乎是空的,没有多少 features, 只有几十个粗线条和零散的为急用而标注的词典信息, 这就迫使系统编制从粗线条轮廓开始。现在引进了 HowNet 的部分,使得我可以开始细化规则系统,慢慢建立一个层级体系, 以图优化 parsing 的精度。这个过程还要持续相当一段时候。 名词的分类体系,比较容易理解和一致,形容词和动词则难一些。 在引进 HowNet 之前,我对形容词只有自己的三五个分类,现在比以前丰富多了。 不过,我注意到有些分类太细,比如 HueValue,词汇表中总共才有二三十个词标注了这个信息, 我引进之后又逐渐把这样过细的分类排除了(用它的上位概念 AppearanceValue 代替这些过细的子类)。不是因为系统不能负担, 而是因为词典信息过于细琐不利于系统的维护和语言学家的掌握( 增加了过多的记忆负担)。在粗细之间怎样切一刀, 我采取实用主义策略,无需立即决定一刀切。 用 HowNet 遇到了一个不大不小的烦扰,这个烦扰在当年用 WordNet 的时候更加严重(可以说是其致命缺陷,以致我后来完全放弃了 WordNet,宁愿用自己编制的不完整的词汇语义标注)。这就是,一些简单的单字词( 或部分高频二字词),被标注了太多features,虽然每个 feature 都有道理,对应其中的一个义项,但是这些义项有的是非常偏僻的( 统计上可以忽略,这种偏僻义项的 feature 客观上成为 NLP 的 noise),有的则是其引申意义。我不得不手工来 clean 它们,否则用到这些 feature 的规则往往在常用词上栽跟头。我以前开玩笑批评 WordNet,说,WordNet 根本不讲理,所有的X都可能是Y。哪怕是最简单的单词如 猫啊(cat)狗(dog)啊, 在我们心中完全是意义清晰的动物概念,可是 WordNet 硬要标 cat 是 “人”,dog 也是 “人”,那我们做规则系统的人还怎么敢利用这些 feature 来写规则呢?不敢写啊,因为什么事情都可能发生。 HowNet 大概是 为了自身概念系统的完整性,也不同程度存在同样的问题,迫使 NLP 使用者不得不人工做二次裁剪,很费精力。 我想词典标注的一个原则应该是, 如果一个词的某个意义必须要明确的上下文才能成立, 那就可以舍弃(特别是, 如果一个单字的某个义项总是出现在多字合成词中, 那么这个单字就没有理由标注这个意义及其相应的feature, 因为 vocabulary 中的多字词已经 cover 了,它不是一个开放集)。 当一个词孤零零站在那里, 进入人头脑的概念才是需要标注的。否则使用时很麻烦。 还有一个既可以维护完整性又不增添二次清除负担的办法是给 features 分档次:统计上的档次或者其他的区别对待, 这样使用者可以根据需要随时 filter 掉不必要的 features 》我还是老样子。天天在调试系统。现在又风靡世界的是big data和deep learning。美国人就是善于出点子。 deep learning 从概念上没有问题。跟过去十多年闹得火热的 weakly supervised learning 以及 boot-strapping 的潮流一样,方向上是没有问题的,前景很诱人。但是这些潮流, 结果真正引起实用技术革命的有多少呢? 花样翻新可以吸引眼球和热情,但真正的好处还需要拭目以待。 前一阵子有搞搜索的老友问到这个题目,我是这样回答的: How do you think about current hot topic: deep learning and knowledge graph? I am not a learning expert, and cannot judge how practical and convenient for the new deep learning trend to solve a practical problem in industry. But conceptually, it is fair to say that deep learning is in the right direction for research. For a long time, the learning community has been struggling between the supervised and unsupervised leaning dilemma, the former being tractable but facing knowledge bottleneck (i.e. the requirement of big labeled training corpus) and the latter only proven to work for (label-less) clustering, which usually cannot directly solve a practical problem. Now in addition to many different ways of semi-supervised or weakly supervised approaches, deep learning provides yet another natural way to combine unsupervised and supervised learning. It makes lots of sense to let the unsupervised learning scratch the surface of a problem area and use the results as input for some supervised learning to take on to deeper levels. Personally, I believe to solve a real life problem in scale, it is best to combine manual rules with machine learning. That makes tasks much more tractable for engineering implementation. 》我觉得rulebased系统的问题,并不是按下葫芦起了瓢, 而主要是遇到的新的语言现象。 exactly 按下葫芦起了瓢 的问题出现在不严谨的工业开发环境中。如果开发环境好, data-driven 又有及时的大数据 regression-testing 的反馈来指导规则系统的开发,这个问题就自然消解了。 新的语言现象的问题,能想到的法子就是用时间去磨。 只要开发样本选择得当,不急于求成,这个问题也不最可怕,后面的 long tail 中的相当部分迟早总是可以抓住,直到达到某一点, 再往下追去已经没有什么(统计)意义了(diminishing returns)。 值得强调的是,新的语言现象的问题不是规则系统专有,对于机器学习它更是难题,本质上就是困扰统计学家多年的 sparse data 的问题。 我感觉到的规则系统的特有挑战主要是编制规则时的“平衡术”( balancing art)不好掌握分寸。人的思维有盲点,结果, 有些规则开发不够而影响精度,也有规则开发过度而丧失鲁棒性( robustness),譬如规则做得过于精巧细致, 结果系统稍有变动,规则就散架了。这个火候不好拿捏, 没有多年的经验和功夫,往往容易跌入陷阱,使得系统越来越庞杂无序, 无法维护。 在克服上述挑战的时候,统计可以大派用场。 无论是把统计用于数据上,或者用于半自动编写规则, 或者有机整合到规则系统中去, 都有很多二者亲密合作的机会。譬如让机器学习有统计意义的可能patterns,然后提供给语言学家细化(instantiation),是确保克服人脑盲点的一个有效方法。 与 deep learning 的道理一样, 见林不见树的机器学习与 见树不见林的专家编写难道不能各个发挥一己之长么? 【后记】上面提到了 HowNet 使用中 feature noise 的困扰,指的是其当下的中文系统。刚刚核实过,显然 HowNet 的发明者早已意识到这个问题,因此,英文的 HowNet 已经解决了这个问题,汉语的问题最终也会解决。他们对 lexical features 做了如下分类,以方便使用者根据不同使用场景对 features 进行筛选: 具体做法是:英文的单字词,采用标记:1、2、3表示可用的优先等级;7表示封存,不采用; 英文的词组,采用标记:4、5表示可用的优先等级;6表示封存,不采用; HowNet Browser中查“ability”其中“能力”标记为2;“本领”、“本事”为3;而“能”、“力”标记为7,即被封存,不可采用。 可惜还没有标记中文的等级,将来会做的, 方法是跟英文一样的。 【置顶:立委科学网博客NLP博文一览(定期更新版)】
Big data 与 云计算一样,成为当今 IT 的时髦词 (buzzword / fashion word ). 随着社会媒体的深入人心以及移动互联网的普及,人手一机,普罗百姓都在随时随地发送消息,发自民间的信息正在微博、微信和各种论坛上遍地开花,big data 呈爆炸性增长。对于信息受体(人、企业、政府等),信息过载(information overload)问题日益严重,利用 NLP 等高新技术来帮助处理抽取信息,势在必行。 对于搜索引擎,big data 早已不是新的概念,面对互联网的汪洋大海,搜索巨头利用关键词索引(keyword indexing)为亿万用户提供大海捞针的搜索服务已经很多年了。我们每一个网民都是big data搜索的受益者,很难想象一个没有搜索的互联网世界。可是对于语言技术,NLP 系统需要对语言做结构分析,理解其语义,这样的智能型工作比给关键词建立索引要复杂千万倍,也因此 big data 一直是自然语言技术的一个瓶颈。不说整个互联网,光社会媒体这块,也够咱喝一壶了。 目前的状况如何呢? 我们的语言系统每天阅读分析五千万个帖子。如果帖子的平均词量是30,就是 15 亿词的处理量。This is live feed,现炒现卖,立等可取。 至于社会媒体的历史档案,系统通常追溯到一年之前,定期施行深度分析并更新数据库里的分析结果。我们的工程师们气定神闲 ,运筹帷幄之中,遥控着数百台不知身处哪块祥云的虚拟服务器大军,令其在“云端”不分昼夜并行处理海量数据,有如巨鲸在洋,在数据源与数据库之间吞吐自如,气派不凡。 when we talk about NLP scaling up to big data, it is this BIG This is the progress we have made over the last two years. I feel extremely lucky to work with the engineering talents and product managers who made this possible. It is hardly imaginable that this can be done at this speed in other places than the Valley where magic happens everyday. Where are we? deep parsing 50 MILLION posts a day!!! For one year NLP-indexing of social media data we use to support our products, we have 11 billion tweets (about 6-7% of the entire sample from twitter) 1 billion Facebook posts 1 billion forum posts from 5 million domains 430 million blog posts from 160 million domains 30 million reviews from 300 domains 55 million news reports from 55,000 domains 225 million comments from 100 million domains 回看这些数据,感受到的震撼与我第一次在纽约某科学馆看巨型科教片【宇宙起源】类似:不可思议。个体真是太渺小了。宇宙之大超过想象极限。 And that is by no means the limit for our NLP distributed computing: the real bottleneck comes from the cost considerations rather than the technical barriers of the architecture. Money matters. Archimedes said, Give me a place to stand on, and I will move the Earth . With the NLP magic in hands, we can say, give me a large cloud, we can conquer the entire info world! 阿基米德 说,给一个支点,我将翘起地球。今天的NLP技术官僚和工程师们可以说,给我一片云,一片足够大的云,我将鸟瞰整个儿信息世界。 一年社会媒体档案的 Big data,比起搜索引擎面对的整个互联网,自然是小巫见大巫。然而,对于 NLP,这已经远远超过我们当初可以想象的极限。令人兴奋的是,处理数据之大虽然超过想象,但却不再自惭渺小,因为渺小如我及其外化的系统已然溶入 big data 的海洋,体验的是弄潮儿的刺激和爽快。 曾几何时,大约25年前吧,我们守着 IBM-PC 测试 parsing,大约每句话需要30-35秒处理时间。我抱怨说太慢了,导师笑道:你知足吧。你们这一代开始学这行,是撞上大运了,小小的 PC 可以放在办公室调试,没有比这个更方便了。 原来,30几年前,在前 PC 时代,我的导师要做一个试验那叫一个难,常常需要深夜到计算中心排队轮值。当时的机器体积超大,可存储和速度都无法与 PC 比。导师说,一次去东北鉴定某教授的机器翻译系统,一个句子输进去,系统硬是绕不出来,鉴定组一行于是出去喝咖啡吃早点,折腾半拉小时回来,才见到结果。 再往前,我的导师刘先生与另一位高先生(我入行的时候他已去世),在上世纪50年代末期 (当时我还没有来到这个世界呢) ,于1959 年开创了中国机器翻译的事业,测试了10个句子,上机试验获得成功(没有汉字fonts,输出的自动翻译译文是汉字编码)。当时的科学报道我读过,是高先生写的,字里行间洋溢着的兴奋之情,穿越时空深深打动了弱冠之年的我。 导师说过,在NLP这一行,我们在60年代初真真确确属于世界领先,得益于汉语机器处理的难度以及汉外之间的差异。我理解的他的言下之意是:我们何时再现辉煌? 天降大任,此其时也。 【置顶:立委科学网博客NLP博文一览(定期更新版)】
话说这苹果真是能折腾,一个技术课题硬是折腾成大众话题,弄得满世界都在谈论苹果爱疯的贴身小蜜 “死日”(Siri,没追踪来源,但瞧这名字起的),说是她无所不能,能听得懂主人的心思,自动打理各项事务,从天气预报,到提供股票信息,甚至做笔记。不服不行,人家就是把这个科幻世界的机器人功能产品化了,挑起了大众的好奇心。虽然毁誉参半,批评者与追星者一样多,还是为语言技术扬了名。这不,圣诞节到了,调查表明,美国青少年最喜欢的圣诞礼品有三:(1)礼物券,也就是钱,爱怎么花自己定当然好;(2)时装(爱美之心);(3)苹果产品(因为那是时髦的代名词)。 前些时候,与朋友谈到死日,我说它有三大来源:首先是语言技术,包括语音识别和文句分析。语音识别做了很多年了,据说技术相当成熟可用了(语音虽然是我的近邻了,但隔行如隔山,我就不评论了)。文句分析(这可是我的老本行)当然有难度,但是因为死日是目标制导,即从目标app反推自然语言的问句表达法,所以分析难度大为降低,基本上是 tractable 的(见《立委随笔: 非常折服苹果的技术转化能力 》)。第二个来源是当年 AskJeeves 借以扬名的 million-dollar idea (见《 【 IT风云掌故:金点子起家的 AskJeeves 】 》),巧妙运用预知的问题模板,用粗浅的文句分析技术对应上去,反问用户,从而做到不变应万变,克服机器理解的困难。最近有人问死日:Where can I park the car? 死日就反问道:you asked about park as in a public park, or parking for your vehicle? 虽然问句表明了这位贴身小蜜是绣花枕头,徒有其表,理解能力很有限,但是对于主人(用户)来说,在两个选项中肯定一个不过是举“口”之劳的事情。第三个来源就是所谓聊天系统,网上有不少类似的玩具(见 【 立委科普 : 问答系统的前生今世 】 第一部分 ) ,他是当年面临绝路的老 AI 留下的两大遗产之一(另一个遗产是所谓专家系统)。 最近摆弄汉语自动分析,有老友批评得很到位: Quote 俺斗胆评论一下,您的系统长项应该在于自然 语言理解 至于语法树,应该是小儿科。韩愈说“句读之不知,惑 之不解”。 语法树的作用在于“知句读”,而您的系统应该强调“解惑”。 俺感觉照现在的发展速度,一个能够真正通过图灵检验的系统应该离我们不远了。虽然现在已经有系统号称能通过,但是都是聊天系统,干的本身就是不着调的工作。离真正意义的图灵检验还有距离。 是小儿科,可是很多人弄不了这小儿科呢。 日期: 12/05/2011 13:41:30 从high level看,从100年后看,说小儿科也差不多。 但是你所谓的解惑,离开现实太远。 一般来说,机器擅长分析、抽取和挖掘,上升到预测和解惑还有很长的路,除非预测是挖掘的简单延伸,解惑就是回答黑白分明的问题。 聊天系统,干的本身就是不着调的工作,一点儿不错,那是所谓 old AI 的残余。不过,即便如此,我在 苹果 Siri 中看到的三个来源(1.自然语言技术:语音和文字 2 Askjeeves 模板技术;3. 所谓 AI 聊天系统)中也看到了它的影子,它是有实用价值的,价值在于制造没有理解下的 人工智能 的假象。 昨天甜甜秀给我看:Dad, somebody asked Siri: what are you wearing? Guess how he replies? 这种 trick,即便知道是假的,也让人感觉到设计者的一份幽默。 那天在苹果iPhone4s展示会上,临结束全场哄堂大笑,原来苹果经理最后问了一个问题:Who are you? Siri 扭着细声答道: I am your humble assistant. 面对难以实现的人工智能,来点儿幽默似的假的人工智能,也是一种智慧。 相关篇什: 《 立委随笔:非常折服苹果的技术转化能力 。。。》 《 从新版iPhone发布,看苹果和微软技术转化能力的天壤之别 》 科学网—【 立委科普 : 问答系统的前生今世 】 科学网—《立委随笔:人工“智能”》 【置顶:立委科学网博客NLP博文一览(定期更新版)】