干货|文本智能处理在华为、海尔、澎湃等企业的应用
3 月 23 日,TGO 鲲鹏会成都分会举办了一场关于「AI 如何赋能产业发展」的专场活动,达观数据 CTO &TGO 鲲鹏会会员纪达麒和大家分享了「文本智能处理在企业的应用实践」。以下内容根据现场分享整理而成:
达观数据 CTO &TGO 鲲鹏会会员纪达麒在做分享
我这边主要分五个部分:第一部分主要是介绍文本处理的基本概念和常识;第二部分是文本处理技术发展历程以及每个阶段技术原理和优缺点;第三部分文本智能处理在具体的应用实践中如何操作,会遇到哪些问题以及如何解决;第四部分是结合达观的实践案例来分享;第五部分是对未来的展望。
人工智能从处理数据角度划分,可以分成三个方面:一个是图像;一个是语音;一个是文本,而文本处理需要对文本进行更深入的思考、推导、归纳、总结,它是有很多认知智能在这里面的。
文本处理叫自然语言处理,也叫 NLP,是指让计算机代替人类进行文字处理。从应用的角度来说,可以分成两个方面:一个叫自动阅读,就是让机器去阅读文章,然后做一些应用上的处理,比如说应用搜索、推荐、审批、比对、分析等等;另外一个叫自动写作,只是让机器代替人,比如说写文章或者改写文章。
为什么人类需要机器来自动进行文本处理?
因为机器运算速度非常快,24 小时工作,不会提离职,不会要求加薪。同时,人类在处理文本时有一些不足,比如说短期阅读可以很快,但是长期其实很容易遗忘,无法记住细节。比如说数字,大家能记自己的电话号码还有 11 位身份证号,还能知道更多数字吗?人更擅长去记一些宏观的、有感觉的东西,比如回去的路有很多条但还知道怎么走,所以这一块就可以让计算机进行归纳、搜索。
其次,人类阅读速度可以一目十行,但在写文章时其实很慢。千字的文章很多人要好几个小时甚至几天,所以可以让计算机来协助完成。
最后,是人从文字中解读整理意思容易,但是做局部的内容操作非常痛苦。比如说在文章中找错别字,我们需逐字去看,效率是非常低的。在这种场景下,也可以让计算机来协助操作、提升效率。
第二部分我想跟大家谈一下文本处理的发展历程,文本处理发展了四代:
第一代是 50 年代,准确地说是在 1956 年美国的某一次会议上,真正提出了人工智能概念。当时美国科学家提出什么叫人工智能,他觉得机器能够做机器翻译和下期这两件事情的话,就已经达到人工智能的水平了。第一代自然语言处理技术是符号主义,就是计算处理的每个信息都当成一个符号。比如说翻译,那时候的认知是只要把每个字、每个词翻译就好。但是符号主义很快被验证是行不通的,因为文字含义是有上下文语境。比如说“文章”这个词,可以代表写某篇文章,也有可能是某个演员。
第二代是 70 年代,我们从小到大要学习语法结构、句法结构,所以第二代技术研究时,科学家找了大量的语言学家来配各种语法规则,希望加入语法规则后机器就可以像人一样,掌握各种语言。但事实证明也不可行,因为人在学语法规则时会举一反三,但是机器不会。
第三代是 90 年代的统计学习,也叫机器学习。它不需要人去规定规则,而是靠计算机自动从大量文字里统计出规律来自动学习。这个过程需要我们做大量的特征工程,让机器去统计这些特征的含义概率来解决问题。统计学习效果已经有非常大的提升,所以可以看到现在在大量场景下,统计学习都是很重要的方法。但在长文章的阅读理解方面,统计学习还是有很大不足。
所以就到了第四代技术,2012 年左右提出了深度学习的概念,深度学习就是通过深度神经网络,模拟人去学习一些特征,想做端到端的解决方案,它在阅读理解长篇上确实已经达到甚至超过人类,深度学习也是现在研究非常热的一个点。
在文本识别里有个很重要的任务叫命名实体识别,为了让大家更好地理解,我举个例子,比如现在做一个任务——从文本里提取出公司名,可以看四代技术是怎么解决的。
首先是符号主义,对这个任务来说,首先可以把所有公司收集起来,当给到文本时可以通过公司名匹配;这种方式实现非常容易,但问题也有很多:能否把它整理完全?每天有新公司产生如何快速发现?有简称的公司如何处理?这就是第一代符号主义的做法和它的问题。
接下来就是语法规则,这就需要把所有的语法尽可能列进去。比如说有一些简单的策略,公司前面就有公司名,可以通过列大量语法规则来识别出公司名。但问题也有:人类的书写规范非常多,能够列的只是最严谨的表示方法;而且句法规则非常多,没列出来的句法程序解析不出来。规则多了前后还会有冲突,这时候维护成本会非常高。
第三代是基于统计的机器学习,它的原理非常简单。比如我告诉机器达观数据是人工智能公司,达观数据是公司名,然后我要让机器预测虚拟数据是人工智能公司。假设没有任何的语法知识,必须预测出虚拟数据是个公司,对机器来说也不难。更难一点——上海的虚拟数据是人工智能公司,如果按之前的方法预测,可能得到错误的答案,就是“上海的虚拟数据”是公司名。如果希望能够正确识别,我们就需要给它加特征,需要告诉机器“上海的”是修饰虚拟数据的词,机器人学到这个原理、特征,就能正确地识别出虚拟数据是公司名字。这就是机器学习的过程,它一点都不复杂,原理非常简单。
第四代深度学习,它像人脑一样,能够学习出来“上海的”是修饰词,这时候搭建一个比较复杂的网络,让机器自动把规律学习出来,然后做端到端的解决方案,人类就不用再做特征工程了,这是深度学习和机器学习很重要的区别。深度学习在一些场景下效果非常好,但是需要具备几个条件:第一个就是需要大量的标注数据,在现实的很多场景里是没有办法做的,人工标注非常耗资源;第二个就是它可解释性比较弱,比如说张三很聪明,想解释为什么是张三其实是不知道的,在具体的运用场景里会有很大的挑战,就是需要大量的计算资源,也会有成本上的考虑。
下面这部分想和大家讨论文本智能处理的难点是什么?如何来解决?
我想先说为什么文本资源处理挺难。以文本阅读为例,有些企业清算时按投资额年复利 20% 给予补偿,这句话是有问题的,但是大部分人都看不出来,因为它需要行业知识,行业上来说年复利超过 15% 都是不可能的,所以机器来处理起来有问题。第二部分是上下文语境的理解,比如“夏天天气很热,能穿多少穿多少”、“冬天天气好冷,能穿多少穿多少”,都是同样几个字,但是在不同的上下语境下确实有不同的含义。还有命名实体概念的区别,比如说 G7 预计几点到上海站,这应该是一个列车的名字。G7 是今年发布的最新型号,浮点运算性能比上一代提升 150%,这个可能就是一个 cpu 的型号,所以这些其实都是文本处理的难点。
目前,我们处理的产品丰富多样,如何用机器来解决问题。我的观点是:大家先不要去想机器如何解决问题,可以先思考人是如何解决的。比如说文章主要的观点是什么?人类会把每句话进行分词,读完一句话会记住句法结构、核心人物,地点;一句句话读完后就得到整个篇章,就知道核心词和观点,这就是篇章级需要去处理的事情。
这里面也会涉及到很多分别的处理。
比如说词汇级,刚才提到需要去分词,我们还要做词性判断,哪个是名词、动词、形容词,还需要做同近义词的处理,还要知道物质的关系,比如说北京大学和北京的大学完全不一样。
在句法级,我们也是要做很多的事情,比如文本纠错、词位置分析、语义归一化。
在篇章级,我们需要得到核心信息,需要文档审阅,需要根据前面的结果来做相关的处理。
大家不要觉得第四代比第三张好,第三代比第二代好,其实每一代技术局限性,在实际的工作中更多是几种技术相结合。比如说刚才命名实体识别里面,业界里面最常用的就是深度学习和机器学习结合。我们在解决问题的时候,不要动不动就搞深度学习,要结合实际的情况,对这几层技术做更好的分析和结合。
第四点我觉得非常重要,就是要专门做特殊的定制化处理,让前面的技术更简单。
比如说要处理专业领域的合同或法律文书,它里面有很多专业名词,我们可以靠前面的技术来识别,把关键信息整理出来,输入各种算法帮助它们更好地解决问题。第二块就是一些复杂逻辑,在处理文本里面有些句子比较费解,没有必要让计算机处理,因为业务需求可能并不需要做这方面的技术判断。如果真的需,我们就得针对场景里面的需求,来看是否需要加额外一些信息或者功能来解决复杂逻辑的处理。在这里其实想和大家强调的是,我们要结合具体业务的场景,想明白是否可以做特殊的定制和处理。
接下来想和大家说一下,这半年来非常热门的技术。它是在 2018 年 10 月份被提出来——Transform 双向编码表示技术,它是机器阅读理解的顶级水平,测试时全面超过人类阅读,此外,它在 11 种 NLP 测试中都取得了历史上的最好成绩。这项技术做出来后适用于很多的场景,有时候会把 BERT 技术叫做 4.5 代技术,因为它用了深度学习技术。
BERT 技术为什么那么火?有三点本质原因:
首先它是用非标注的方式形成的模型,自然语言发展很大的一个因素,就是我们需要标注大量的数据,但 BERT 算法的原理,是技术上的改进,而不需要人工标注,这是非常重要的。
其次,它在 11 种 NLP 测试中表现很好,这很有价值。因为传统在做 NLP 任务时,会遇到一个调整就是可以做好一个业务场景,但换了新场景后,就会发现几乎用不上;但 BERT 可以适用它在很多场景。
最后就是它效果足够有力,比人做得还好。
接下来想结合达观落地的业务场景,跟大家讨论智能处理的实践。
文本自动化处理的常见应用场景主要有三块:第一块就是重复性强,数量很大的处理场景;第二块就是需要很快速获得结果的场景,比如审批贷款金额;第三块就是进行多次复核或检查的产品,就类似给你一百页文章找出一个错别字。
其实任何文本都可以处理,我们列一些最常见的比如法律法规、金融文本、政府公文、用户意见、业务单据合同等等,这些东西都可以进行处理。团队需求也很多,我们要抽取,需要关联,需要审核,需要起草等,很多场景都是可以来处理。
下面是我们的一些案例:比如说我们给德勤做了机器人的业务,这里面有一个应用比较广泛的处理场景,就是把非结构化数据变成结构化数据。非结构化数据就是长文本,如果需要对长文本进行分析、进行更深层次理解的话,就需要先把非结构化改成结构化,需要把关键信息取出来,才能做后续的接触。具体到德勤应用场景,他们要审大量的合同,合同有几十上百页,其实这非常耗费人力,这部分可以通过机器自动地把关键信息抽取出来,之后需要审核,他们可以把业务的规则配到我们的后台,我们自动对抽取结果进行审核。
接下来是给华为做的理性分析项目,他们会有很多用户意见,这些评论数是非常巨大,可以通过机器自动处理,可以知道用户是好评还是差评,好评的点是在某款机器还是哪个部件?差评的观点是什么?是手机过热还是觉得你屏幕太小?
如果得到评价,他们希望可以直接推送到对应部门,结合他们内部部门的分布,我们又做了组成分类树。分析了一个评论之后,就可以把信息发送给对应部门。
这个是帮海尔做的人岗匹配,海尔集团每天会招上千个员工,之前招聘就是去各个平台搜索,效果不太好。
所以我们也帮他们做了人岗匹配的业务,它可以直接输入长文本,我们自动根据语义分析的技术,来理解这个 JD 里面希望获取的信息是什么,再从简历库里面进行搜索。同时我们还做自动推荐,以此来提高他们的工作效率。
这个是给一些媒体做的项目。澎湃他们之前的文章需要打标签、分类,这些事情其实可以让机器来进行处理的。另外还有一块也是现在互联网非常重要的个性化推荐,需要根据每一个人的偏好给他推荐他所喜欢的文章,这里面就需要更好的用户画像,通过他的一些行为,知道他配套的是哪些东西,我们来进行千人千面的个性化推荐。
我们总结一下,其实很多应用场景下都能运用到自然语言处理技术,包括审核、检索、提取、分析、推广,通过技术来进行效率的提升,获得效果改进。
对未来我们有自己的判断:
10 年内,计算机对具备固定规范的文字处理能力会超过人类;在一些规定范畴内,完全是有可能做得比人类好。
10 年内 50% 的重复性文字审阅会用计算机代替人类完成,其实现在我们也做很多这方面的项目。
10 年内,简单的文章写作可以由计算机来辅助完成,计算机要写好一篇文章难度是很大,但是它可以帮助人类复核和检查,以此来提高效率。
10 年内,大型企业都将配备智能化文档处理系统,因为这个能够提升很多场景的效率。
我的分享就这些,谢谢!
马蜂窝张矗:绩效考核是为了激发工作潜力
而不是逃避问题
你想与阿里巴巴高级技术专家 & TGO 鲲鹏会会员王涛一起学习交流吗?