老刘说NLP:这几年的NLP历程回顾,以及关于NLP(知识图谱等)落地的思考

共 5679字,需浏览 12分钟

 ·

2021-09-21 00:02


得语言者,得天下。得语言资源者,分天下。得语言逻辑者,争天下。

**一、前言**

只有把自己所思考的,所认识的东西,以文字的方式记录下来,才是对自己成长最好的记录方式。

是的,距离上一次动手写博客或者技术文章已经过去了大半年的时间。作为一个比较喜欢总结的人,这无疑是一个一大段空白。对的,今年,我经历了一场很不可思议的事情。学业与工作经历起伏。从三月份到六月份这四个月的时间里,困在一个怎么也走不出的低谷。因此,今年我做了一个我从未想过的决定,我离开了工作整整四年(加上实习是五年)的中科院软件所,投身互联网。软件所的五年里,我以极大的热情执着于自然语言处理技术的基础研究和应用落地。在此期间,做过爬虫,写过后台、前端,画过原型,做过产品经理,设计过算法,写过文章做PR,参加学术会议发过文章,十分丰富多彩。作为一个喜欢思考和总结的人,最大的收获还是行形成自己的一种认识。

**一、自然语言处理开源界的一枚坚持者**

我将自己定义为不安分、爱搞事情的没有生活那种人。为此,我有大量的时间去做我认为可以去搞的事。作为一个我一直注重底层语言资源建设。语言资源,包括语料库、词库、知识库、自然语言处理组件等。

为此,我于2018年9月份开始,开启了我的github开源项目之路,并用近3年的时间,从follower数从1增至3600多人,star数从零增至当前的14k。

在一个开源项目的主页里,完全满足了我对自然语言处理的使用极限,从实现最传统自然语言处理分词组件,到使用深度学习完成医疗命名实体识别;从利用自然语言处理技术进行情感分析到进行主观性计算,进行事件脉络计算等,将能想到的,能做的都做了一个遍。这份经历是很有收益的,因为成为了不少NLP学习爱好者入门的一个很好的索引。

在这个项目集合中,细分了语言资源、语言工具、知识图谱资源、情感计算、文本计算、自然语言处理组件等多个环节。并依照每一个大点,都做了很多基础性的尝试。

**二、知识图谱与事理图谱界的一位落地者**

与单纯的理论研究,我更关注如何使用技术来解决实际问题。这个解决,从金融和情报两个领域开始。从毕业后从事的第一份工作,是在金融领域起步的。其实,做什么不重要,重要的是,做事必须是朝着某个特定的目标展开的。当时课题组切入金融领域,目的是做智能投研,也就是做股票或者可交易品种的走势预测。因此,在这种要求之下,工作的核心变成了如何挖掘驱动股票这类交易商品的传导或者驱动因子。而驱动因子,我们将其分成传导规则以及传导规则上的偏置两种因子,这种偏置能够影响传导规则的方向。在这两种因子的指引下,很显然就变成了两个工作。传导规则的挖掘以及偏置因子的挖掘。前者,很显然的变成了图谱的工作,后者则变成了事件挖掘、情感分析、事件重要性判定、主观性计算等工作。

**1、知识图谱的工作**

知识图谱,算是显式存储传导规则的一类知识库。我算是做知识图谱比较早期的一批人。从14年读研开始接触,一直到现在。硕士的时候,在实验室做语言政策领域知识图谱,目的是针对当前我国陆续发布且积累的语言政策领域文本,进行主题、内容上的内容关联挖掘。17年毕业后进入软件所,做了为期一年的金融知识图谱,写了大量的爬虫,正则表达式,构建起了一个以上市公司为核心的金融领域知识图谱。金融领域存在着一些很定性、宽泛意义上的传导规则,如常见的板块效应、上下游效应、竞争效应,把其中的关联关系进行挖掘存储,即可形成推理的底座。我花了大约一年的时间来探索知识图谱构建的相关工作,并在17年的年底作为产品经理的角色设计了一个知识图谱构建与事件驱动发布平台,旨在提供已有结构化数据库的图谱化、知识图谱的增删改查、事件模式的拖拽式定义(这个想法很好,通过人工拖拽组合的方式自行地生成传导规则模式,这样能够充分满足千人千面的DIY模式,并为此提供匹配的功能,得到不同的推理结果)。现在回想起来,这种工具,其实已经算现在各家公司都在做的知识图谱构建平台形态十分相似。关于知识图谱平台的工作,可以参考我之前写的一篇文章:(https://blog.csdn.net/lhy2014/article/details/119857488)

**2、舆情分析的工作**

2017年年底至2018年,我开始进行情感分析、主观性计算、事件重要性计算、事件识别的工作。为了有验证消息面对可交易商品之间的相关性,我们通过收集领域资讯文本的方式,针对每一类交易商品形成了每日的资讯文本,并通过计算每篇文章篇章级情感得分,然后配合EMA平滑得到对应的日度情感数据。这个数据的效果是很好的,通过对比某类商品的每日收盘价格曲线和商品的情感曲线,kappa值得到0.85以上。这也作佐证了消息面可以反映市场走势这个论断是正确的事实。但,这也引出了一个新的问题,即监测与预测的问题,如果情感曲线无法形成有效的指导,那么这种数据其实没啥意义。当然,说到舆情分析,这个分析实际上可以分成多个技术点,包括篇章级情绪、实体级情绪、实体属性级情绪、情感原因抽取、情感结果抽取等多种信息。

**3、事理图谱的工作**

2018年下半年,我开始做事理图谱。为什么要做事理图谱,这个是为了解决传导规则的规模化而展开的。前面说到,要进行事件驱动,需要大量的驱动规则。而基于实体知识图谱的关联关系或者产业链的板块传导效应的方式存在两个根本问题,一个是这种传导规则并没有显性地体现,而是需要将传导规则写在程序里或者额外外置,另一个是这个传导规则数量很少,无法快速规模化。因此,当时有个很突出的问题,即能否从待大规模非结构化文本中获取这种传导规则。当然,很朴素的想法,就是"A导致B"传导那套。通过总结大量的因果模板,可以挖掘出大量的因果关系对,作为传导推理的逻辑底座。不过,正如大家所看到的,这种因果逻辑对的挖掘和使用工作存在诸多问题。一方面是抽取的问题,这种因果对中原因和结果的边界问题、表示问题,因果对边的方向文字,因果对边的权重问题、领域漂移问题,都存在很大的主观性。另一个是应用的问题,从本质上来说,因果对实际上是对历史发生事件的一个记录和总结。虽然说“太阳底下无新事,历史总是重复上演”,但一个事情的发生其实是由多种因素(即多变量)共同作用而成的,所以这种传导性也是存疑的。另外,通过对历史文本进行因果抽取,可以形成大量的因果对,但对于未发生的事情(即新事件),如何进行传导?利用新事件与库中旧事件算相似度,然后做推断,还是寻找更具有抽象泛化意义的推理规则。

因此,我和我的团队带着事理图谱的这几个问题,做了包括理论、技术、应用落地的为期近2年(从2018年年底至2020年年底)的工作。正如大家可以看到的,我团队申请了数篇关于事理图谱构建和应用的专利或论文或博客,并陆续推出了一些应用级别的平台或工具。代表性的如全行业大规模因果事理图谱检索平台(国内第一个事理图谱检索demo)、7×24h的实时事理学习与搜索平台(学迹)、7×24h的实时事件聚合与分析引擎(数地搜搜)、人机交互方式下的事理逻辑图谱构建与预警工具,并在金融、情报【军工】等领域开展实施了一些项目。很显然地,带一个确定的方向花一到两年的时间去做一件事,对于个人的成长而言,无疑是个很好的机会,我是其中最大的受益者。

**三、几年来对自然语言处理的落地思考**

之前年少轻狂,写了一篇关于自然语言处理在当前的真实场景,传递出来的就是虚大于实,落地尴尬八个大字的结论。在这几年自己做落地的过程中,就像染色体螺旋的形状一样,一直处于不断否定、再肯定、再否定的悲乐观的循环当中。

**1、从toB、toC场景看自然语言处理落地**

自然语言处理场景与自然语言处理的任务是紧密联系的,从自然语言处理的任务来看,当前,自然语言处理包括分类问题、抽取问题、推荐问题和搜索问题,但其本质都是相似度计算问题。而就当前的落地来说,自然语言处理落地的不是那么好,我们可以看到,自然语言处理技术能够落地的场景还是基本上集中在搜索、推荐以及分类上,在抽取任务上,则并没有那么好。从这些场景上来看,这些场景之所以能够落地成功,我觉得至少可以从**场景基础设施侧的标注数据**情况以及**场景用户侧对数据的敏感程度**两个方向来看。

首先,toC场景中的标注数据是天生巨大的,例如搜索中的query实体数据,可以用大量的用户行为来挖掘出质量很高的实体名称,用户对文章的点击行为,可以作为一个很有效的指引来进一步生成标注数据,另外,toC场景中会自然而然的存在大量的非结构化数据,这些数据可以作为大数据可以作为语料训练出语义建模质量更好的词向量或句向量这种语义表示模型,而这种表示模型性能的提升对于业务场景收益率的提升是十分明显的。另一方面,用户侧对数据的敏感程度越低,那么这个场景就越可能落地,如以“搜索”场景为例,因为这个场景对数据的准确性要求并不高,甚至是可以“模糊”的,而这种模糊,其成功仅仅局限在toC的业务场景当中,当用户输入自己需要问的问题时候,系统可以返回与此相关的一些答案,或者推荐一些相关的信息,这些信息对与用户而言,最多是一个体验不那么好的状态,而并不是压根就不想用(这也是制约图谱应用的一个重要原因,因为目的答案一旦十分明确和精确的时候,那么用户对其的忍耐度是十分严苛的,容不得半点错误),因为系统只需要给出一个相关的答案,或者包含精确答案的文本范围,那么用户实际上是可以借助这种文本范围信息来进一步查找答案(相当于本质上是一个用户干预和矫正的过程),但很显然,知识图谱这种事很难达到这种效果的。当前,360、搜狗、百度、谷歌等都将自然语言处理技术以及知识图谱技术应用于搜索当中,也都取得了很好的效果(这个效果应该从QS或者QPS等指标来看),这种收益实际上是与这种业务自身的特性紧密联系的。

但是,当我们来到toB的场景中,我们就很难取得十分好的效果。toB业务中,通常都是垂域的任务,垂域最大的特点就是包含很多业务上的信息,而这种业务上的信息如果要落到模型上,就会出现标注数据的问题,即如何获取这么多可供训练的标注数据(实际上是很难的),虽然现在很多方向(包括少样本、零样本)等都在探索,撇开其在学术上性能上的成就,在真实业务场景中的效果实际上是有待商榷的。因此,对于现在自然语言处理技术而言,因为传统语言学规则、模式抽取的方式在具体任务上不具备通用性,并且全是casebycase的这样一种无法迁移的状态,利用深度学习模型的方式参与进来,并对规则进行弱化实际上是必选之路。而这种必选,也就自然带来了标注数据的问题,只要标注数据足够多,我们总能找到建模能力足够好的模型来解决这类问题。不过,细数各个行业,我们发现,目前自然存在大量标注数据的行业实际不多,有的可能就存在于检察院裁判文书、卷宗这种数据(例如近几年举办的法律摘要打上、法律智能罪名预测等任务),现在有很多的分类模型以及信息抽取模型能够对裁判文书中的要素、罪名类型、甚至量刑信息都能够建模得很好,另外就是整个司法检察院体系实际上是一套的,从最高法到省级、市级、县级,一个做通了,即可以在整个系统里快速复制。还有一个就是医疗,医疗领域中有很自然的标注者,即医生,医生针对一个病情描述,可以快速的给出一个病情的诊断,这种诊断结果就是一个很好的十分可信的标注数据。再说到标注的这个环节,标注,实际上是一个具有高度门槛性的工种,业务壁垒越高,其对标注人员的要求就越高,标注的门槛性就越高,因此,常常会出现那种,不缺标注人员,而缺能干活的标注人员的现象(这种现象尤其需要引起重视),而有这种专业标注能力的行业实际上也是不多的,这也就加剧了深度学习模型落地的尴尬性。再说到toB行业人员对结果的要求上,我们必然地认识到,这些场景对于数据的要求是否足够高。

**2、自然语言处理落地的几个法则**

无论是知识图谱,还是事理图谱,还是其他自然语言处理技术,在进行落地时,我当前将其归纳成为"技术无罪,论证先行,业务优先,务实不虚,择而不疑"二十个字。作为技术的人,会陷入一个怪圈,认为技术是锤子,我有技术可以包打一切,然后拿着锤子去找各种应用场景,这种方式会经常碰壁。其根本问题在于,NLP的模型大多都是抽象出来的一种存在,从输入、中间处理到输出,是一套标准化的流程,一旦这套架子形成后,通过灌入不同的数据,可以得到不同的结果。但这种模型在遇到不同的数据时,会得到参差不齐的结果,尤其是在一些具有明显领域特性的数据中表现的更甚,这也是为什么NLP做标准化的工具很难,而做行业解决方案居多(体现出定制化)。因此,你可以看到,目前学界做了很多关于解决领域迁移的问题、领域数据增强的问题(标注数据自动构造)等,但作为技术本身展开,并进行研究,是无罪的,也需要这样的工作去推动技术发展。但技术脱离于业务,不尊重具体业务而展开形式化的技术研究,或者一味追求通用化和标准化的人则是有罪的(因为没有什么用)。此外,论证先行。知识图谱(事理图谱)在当前的形态下是一种需大于实的存在,这一点必须需要承认并且不做自欺欺人。因此,本着这样一种认识,再开展现在铺天盖地的“知识图谱+”的事情时候,一定要事先去认证,这个事情开展的必要性。最后,如上面所提到的,当我们进入一个行业选择场景进行落地时,应该需要从标注标注数据以及业务数据的敏感度两个方面加以考量,然后来看这个事情是否值得做,是否好做。

四、关于我

刘焕勇,liuhuanyong,现任360人工智能研究院算法专家,前中科院软件所工程师。主要研究方向为知识图谱、事件图谱的落地应用。个人主页:https://liuhuanyong.github.io。

浏览 66
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报