NLP在建模语言方面的发展,给我们提供了很多方法来从文本中提取信息,用于estimate causal effect
为了解决NLP中的鲁棒性和可解释性问题,我们需要新的标准来学习模型,并且进一步挖掘相关性。
counterfactual 问题在Section 4中有进一步的解释
Ignorability, Positivity, Consistency
主要的挑战是:从高纬的文本数据中蒸馏(distill)出相关的低维的特征。
比如:
text是作为outcome的。
我们可以设计RCT,一组学生受教育,一组学生不接受教育,收集他们的文章。
为了确保满足consistency: 1 需要确保学习的时候,学生之间不受影响(no interference)2需要创造出”可读性“的测量方式
挑战:我们需要condition on在文本数据上,去block confouding
一种方法是使用无监督降维算法去减少文本数据的高维度,比如:topic model, embedding methods, auto-encoder等等。
另一种是使用监督方法。使用预训练的语言模型和有监督的topic model,预测treatment和outcome,通过预测treatment和outcome(也就是把treatment和outcome当作监督目标),他们表示confounding properties可以在文本数据中被挖掘出来。
text as confounder只有在已观测数据中可行。这样我们就需要比较强的ignorability:所有方面的confoudning都必须被模型观测出来。这样做也是很具有挑战性的,因为文本数据的维度高,我们condition on的变量变多,就越来越难以满足positivity。而且我们可能condition on在collider变量上,导致一些原本block的backdoor反而被打开了。
(这俩有啥区别?不都是从文本中提取feature么?)
text as treatment带来的一些挑战:
比如候选人的传记会影响投票结果、超市广告写作风格会影响销量。
Heterogeneous effects :由于不同的人阅读同一段文本会有不同的理解。这也就导致了一些问题:解释因果效应、沟通研究发现。
比如:用一段文本作为treatment,会在不同的人身上产生不同的causal effect。formulate和identify这些heterogeneous causal effect,就需要新的反事实问题,假设,和方法。
Benchmarks :有benchmark数据集已经帮助推动了机器学习的发展,有统一的benchmark、统一的标准,这些模型就能被统一地衡量。
在causal explanation有一些benchmark已经发展出来,但是缺少NLP datasets。这是因为潜在outcome是反事实的。任何benchmark(它假设反事实的知识是必须做一个强的假设)是无法核实的(unverifiable)。
虽然我们能够把聚合的结果和实验作比较,但我们永远也无观测到一个benchmark的真实causal effect。
到目前为止(Thus far),我们一直专注于使用NLP工具来衡量存在于文本中的因果效应。我们现在来考虑一个相反的关系:用因果推理来帮助解决传统的NLP任务,比如:understanding、manipulating 和generating 自然语言。
乍一看,NLP可能不太需要因果的idea。近几年有很多high-capacity的NLP框架做出了巨大的进步(比如BERT)。这些框架没有区分cause、effect、confounder这些概念。也没有尝试去识别出因果关系。这些模型认为:一个feature可以很有用,就算这个feature和结果没有因果关系。
然而,尽管取得了SOTA的结果,基于相关性的预测型模型是不值得信任的(untrustworthy):他们可能会去捕捉虚假的相关性,导致OOD问题(out-of-distribution)。他们可能会在不同的用户群体中表现出不可接受的性能差异。他们也会因为太难以捉摸,以至于不能去进行高风险决策。
任何一个问题都可以潜在地通过因果的视角解决:因果关系的(先验)知识可以用于formalize虚假的相关性,并且减轻对他们的预测依赖性。因果也可以提供一种语言,用于明确和推理出公平条件(fairness conditions)。解释预测的任务也可以很自然地用反事实来描述。(啥意思?)
基于这些原因,越来越多的(a growing line of research)研究围绕因果研究中的发现,尝试去重定向机器学习的目标。到目前位置(Thus far),应用大部分集中于其他领域,比如:生物医学数据(需要可信度高),计算机视觉(非常需要跨领域(cross-domain)的学习)(这个比较经典的例子是,colored MNIST,color channel用于创建更有挑战性的分布偏移),还有那些比较容易构造有人为的虚假相关性的数据集。(人为构造虚假相关性,是为了容易检验causal的方法更robust么?)
总结:在这一节中,我们回顾了把causal应用于NLP的工作,专注于一些独特的problem和涌现出的机会。下一节,在41中,我们会讨论虚假相关性对于泛化带来的不利影响、分布偏移(distributional shift)、因果驱动的方法,来达到更好的鲁棒性。42中,简单回顾在公平和偏见相关的问题中,使用因果进行规范化(formalization)的尝试。43中,总结因果方法用于解释复杂机器学习模型的行为。
插播英语知识:explain和interpret的区别:
explain:把别人不懂的知识,解释给他
interpret:区别就是,我们谁都不懂这个知识,我们需要去理解它,interpret它,洞悉它的本质。(interpret的知识更加难理解)
NLP中已经有不少的对于虚假相关性的担忧。虚假相关性在以下两种情况下会发生:
这里问题就是,一个预测器: ,会去学习使用X的一部分,这一部分的信息与Z有关(因为Z对Y也是有信息提供的,也就是学习到的这一部分内容,是Z提供给Y的,而不是X提供给Y的,但是我们在最后的模型中不需要这一部分),但是最后用于部署的模型中,X和Y之间的这一部分关系(Z提供的)是不需要的。
举一个例子:通过病人的文本记录,来预测医疗效果,使用的训练集来自不同的医院。假设:有一个医院,(a)病人更容易被诊断为这一种病,(b)医生倾向于使用一种独特的写作方法(比如,因为医院的训练,当地的方言)。一个predictor用这些数据集去训练,会去使用一些文本特征(带有医院的相关信息,这些信息可能对诊断没有一点用处)。这会导致很差的OOD(out-of-distribution)表现,就因为写作风格和医疗效果之间的虚假相关性。
为了确保predictor不会“由于错误的原因而正确“,一些评估方法主要有两种形式:
不变性测试可以由因果直觉驱动:目的是测试如果以反事实输入 ,Z表示是文本的cause,但和Y因果不相关,predictor会不会表现的不一样。一个模型的预测结果在这些反事实中不变,可以被看作在测试集上如果Y和Z由不一样的关系,也能有更好的表现。
敏感性测试可以看作是评估反事实 ,这里的label改变了,但是所有的其他在X上的因果影响都是不变的。
(没看懂这个不变性测试和敏感性测试)
很多方法被应用于训练能够通过sensitivity tests和invariance test的predictor。许多这些方法不是显式地就是隐式地使用了因果的视角。现在我们研究这些方法,这些方法主要分为两大类:反事实数据增广(counterfactual data augmentation)和因果驱动的分布标准(causally-motivated distributional criteria)
为了学习出能够通过敏感性和不变性测试的predictor,data augmentaion是一种比较流行的方法。得到、或者构造反事实数据,并且把他们合并到训练数据。
没看懂这啥意思。。 ,是造出使得预测结果y改变的那些X?
反事实数据可以通过以下几个方式生成:
反事实数据是个十分有用的资源,因为他们直接标出了missing data。但这十分困难。以上这些方法还有可能引入新的虚假相关。
数据增广比较困难,因此我们考虑直接对已观测的数据进行操作。
在不变性测试中,一种策略是导出不变的预测器的分布特征,并且确保这些特性是满足已训练的模型。(?)
(前两种看不懂。。)
第三种就是那个经典的因果结构图,X: Treatment,Y: Outcome,Z: Confounder,用backdoor,把 换成 。这种方法对于虚假相关性在domain shift的时候有很强的鲁棒性。
总体来说,这些方法都比典型的监督学习需要更多的训练数据。还有就是,distributional方法目前为止只能用于classification任务(Debiased那篇文章就是文本生成任务?),数据增广可以使用于更多的复杂的任务,比如机器翻译。
未来的工作中,distributional方法必须解决结构性的预测(structured prediction)。(机器翻译就是一个structured problem)
未来的工作中,还要考虑使用不完整的因果模型的结果,因为不是所有的confouding 都可以被观测。在NLP中,不被观测的confounding是很普遍的。
NLP有时候会放大训练数据中的bias。causality可以提供一种识别出公平性问题的语言。公平性问题:种族、性别。
然而,将种族等属性作为受干预或反事实推理影响的变量,存在一些重要的合法性问题。
causality和unfair bias之间的链接主要在相对低维的数据上会展现出来,而不是在文本数据中。但是,有一些在反事实数据增广方面的方法在这一领域有应用,比如:
反事实数据增广也被用于减少 预训练的word embedding模型中的 bias。但是预训练word embedding模型中的偏差会以多大程度传到下游应用中,还不清楚。
在公平问题中使用distributional criteria的应用还比较少。但是一些研究者show: invariant risk minimization,(尝试去学习一个不变的predictor,在多环境中),可以减少在公民评论数据集中(Civil Comments dataset)种族的虚假相关性。
NLP 模型是出了名的难以解释。但尽管如此,这对于诊断错误,以及和决策者之间建立信任是非常重要的。 一个生成解释的非常重要的方法,是挖掘网络的部件,比如attention的权重。另外,还有一些尝试去估计更简单、更有解释性的模型:使用test样例中的扰动(?),或者其他隐表达。
然而,基于attention和基于扰动(perturbation-based)方法都有很大的局限,attention-based解释可能有误导性,而且可能只对某些独特的token有效。他们可能对于更抽象的语言概念没法解释预测结果。目前存在的perturbation-based方法经常产生一些难以置信的反事实,而且还不能对一些句子级别的概念进行估计。
把这看作一个因果推断问题,一个自然的方法去解释就是生成反事实样例(411),并把每个样例的预测结果和它的反事实进行比较。这样一个受控制的设定比较像随机对照试验(section 2中描述的),这比较可行地去计算一个真实观察到的文本和 某个概念不存在于其中 的文本之间的区别(也就是counterfactual)。确实在一些例子中,counterfactual文本是可以被生成的,我们可以使用一些基于文本的模型去估计因果效应。但是生成自然语言的counterfactual有时候比较难以自动生成,而且人工做起来比较费劲,特别是对一些抽象概念,比如:语言风格,话题,情感。
为了克服反事实生成的问题,另一类方法提出:去操纵文本的表达方式(representation)(列出了一堆文献),而不是文本本身。这些研究的结果和一些鲁棒性文献中的结果有一些相似性。但是这些研究结果更专注于识别一个训练模型中的invariance,而且并不是在训练的过程中强迫他们(指模型)。一个研究者计算反事实representation(通过预训练附加的 当控制confouding concepts的时候,设计了一个对抗性的组件,去”忘记“某一个被选择的概念)。另一个研究者提供了一种方法:从神经表达中remove掉信息,通过迭代地训练线性分类器,并把representation映射到null spaces。(这样做也相当于”忘记“)。
相较于使用counterfactual来确认(identify)invariances,一个补充的方法是使用使得模型改变预测的最小change,来 生成 counterfactual。这样的例子被当作解释,因为他们能让我们观察到一个模型发生改变所需要的change。
最后,因果的视角在attention-based解释中,是去把内部节点当作mediator,在input到output的过程中影响因果效应。 通过人工制造的counterfactual,我们可以观察到信息是如何在不同的模型组件中流动的 ,并且识别(identify)出他们编码在模型的什么地方。
我们在这项研究中的主要目标是收集不同的causal和NLP的结合点,我们把这些问题细分为统计因果推断和传统的NLP任务。这些研究的不同分支有共同的目标,intuitions,并且开始去表现出方法之间的协同性。Section 3中,我们展示出最近的使用NLP建模,来帮助研究者作因果结论的进展。Section 4中,我们展示出,这些因果推断中的idea是怎么被用于让NLP模型更加可信(trustworthy)和透明(transparent)。所有的这些领域都还是新生的,有很多的挑战。
因果的方法论迫使研究者解释他们的假设。为了改善科学标准,我们相信计算语言社区应该对这些假设更加清晰,并且使用因果推理分析这些数据。在这个方向推动我们的NLP方法论,能够引导出对 语言 和 我们创建的模型 有一个更好的理解
1976年,理查德·班德勒和约翰·格林德开创了一门新学问——NLP(Neuro-Linguistic Programming),中文意思是用神经语言改变行为程序。后来他们的学生罗伯特·迪尔茨和格雷戈里·贝特森创立了NLP逻辑层次模型。这个模型把人的思维和觉知分为6个层次,自下而上分别是:环境、行为、能力、信念和价值观、自我意识、使命。
NLP逻辑层次模型适用于很多领域,诸如生活、商业、情感,也包括成长领域。可每次看到某某模型,或某个模型的组成部分超过3个时,我就有昏昏欲睡之感,觉得这些东西太抽象。想必你也有同样的感觉,不过还是请你在这一页上多停留一会儿,让我把这个模型换个面貌,你就会发现它其实是个好东西。
在成长过程中,我们必然会遇到各种各样的问题,此时,对待这些问题的态度就很关键了,因为从中可以看出我们的成长等级,而NLP逻辑层次模型就可以作为衡量成长等级的标尺。
第一层:环境。处在这一层的是最低层的成长者,他们遇到问题后的第一反应不是从自己身上找原因,而是把原因归咎到外部环境中,比如感叹自己运气不好、没有遇到好老板、怪老师教得太差……总之凡事都是别人的错,自己没有错。这样的人情绪不稳定,往往是十足的抱怨者。
第二层:行为。处于这一层的人能将目光投向内部,从自身寻找问题。他们不会太多抱怨环境,而是把注意力放在自身的行为上,比如个人努力程度。对于绝大多数人来说,努力是最容易做到的,也是自己可以完全掌控的,所以他们往往把努力视为救命稻草。
这本没什么不好,只是当努力成为唯一标准后,人们就很容易忽略其他因素,只用努力的形式来欺骗自己。比如每天都加班、每天都学习、每天都写作、每天都锻炼……凡事每天坚持,一天不落,看起来非常努力,但至于效率是否够高、注意力是否集中、文章是否有价值、身形是否有变化似乎并不重要,因为努力的感觉已经让他们心安理得了。说到底,人还是容易被懒惰影响的,总希望用相对无痛的努力数量取代直面核心困难的思考,在这种状态下,努力反而为他们营造了麻木自己的舒适区。
第三层:能力。处在这一层的人开始动脑琢磨自身的能力了。他们能主动跳出努力这个舒适区,积极寻找方法,因为有了科学正确的方法,就能事半功倍。但这一步也很容易让人产生错觉,因为在知道方法的那一瞬间,一些人会产生“一切事情都可以搞定”的感觉,于是便不再愿意花更多力气去踏实努力,他们沉迷方法论、收集方法论,对各种方法论如数家珍,而且始终坚信有一个更好的方法在前面等着自己,所以他们永远走在寻找最佳方法的路上,最终成了“道理都懂,就是不做”的那伙人。
第四层:信念和价值观。终有一天他们会明白,再好的方法也代替不了努力;也一定有人会明白,比方法更重要的其实是选择。因为一件事情要是方向错了,再多的努力和方法也没用,甚至还会起反作用,所以一定要先搞清楚“什么最重要”“什么更重要”,而这些问题的源头就是我们的信念和价值观。
一个人若能觉知到选择层,那他多少有点接近智慧了。在生活中,这类人一定愿意花更多时间去主动思考如何优化自己的选择,毕竟选择了错误的人和事,无异于浪费生命。
第五层:自我意识。如果说“信念和价值观”是一个人从被动跟从命运到主动掌握命运的分界线,那么“自我意识”是更高阶、更主动的选择。所谓“自我意识”,就是从自己的身份定位开始思考问题,即“我是一个什么样的人,所以我应该去做什么样的事”。在这个视角之下,所有的选择、方法、努力都会主动围绕自我身份的建设而自动转换为合适的状态。这样的人,可以说是真正的觉醒者了。
第六层:使命。在身份追求之上,便是人类最高级别的生命追求。如果一个人开始考虑自己的使命,那他必然会把自己的价值建立在为众人服务的层面上。也就是说,人活着的最高意义就是创造、利他、积极地影响他人。能影响的人越多,意义就越大。当然,追求使命的人不一定都是伟人,也可能是像我们这样的普通人,只要我们能在自己的能力范围内对他人产生积极的影响即可。有了使命追求,我们就能催生出真正的人生目标,就能不畏艰难困苦,勇往直前。
什么是自然语言处理(NLP)的未来前景?这件事让王印明白,培养孩子不见得只在理论课上下功夫,教育也不仅仅是老师在讲台上灌输,还应该跳出来思考如何培养学生的品质和能力,激发他们的探索欲,为未来埋下一颗种子。孩子们周末不回家,跑去看他做手工。王印决定带着他们“开干”。他们曾一起看过一部名为《武士刀传奇》的纪录片,片子里讲,一把武士刀会经过反复锻打,最后的成品有5000多层纹理截面。这个细节打动了一位小男孩,他说,老师,我也想做一把武士刀。
按照技术实现难度的不同,这类系统可以分成简单匹配式、模糊匹配式和段落理解式三种类型。简单匹配式辅导答疑系统主要通过简单的关键字匹配技术来实现对学生提出问题与答案库中相关应答条目的匹配,从而做到自动回答问题或进行相关辅导。模糊匹配式辅导答疑系统则在此基础上増加了同义词和反义词的匹配。这样,即使学生所提问题中按原来的关键字在答案库中找不到直接匹配的答案,但是假若与该关键字同义或反义的词能够匹配则仍可在答案库中找到相关的应答条目。段落理解式辅导答疑系统是最理想的、也是真正智能化的辅导答疑系统(简单匹配式和模糊匹配式,严格说只能称之为“自动辅导答疑系统”而非“智能辅导答疑系统”)。但是由于这种系统涉及自然语言的段落理解,对于汉语来说,这种理解涉及自动分词、词性分析、句法分析和语义分析等NLP领域的多种复杂技术,所以实现难度很大。迄今为止,在国内的网络教学中还没有一个实用化的、能真正实现汉语段落理解的智能辅导答疑系统。但是在我国有些大学的人工智能实验室或中文信息处理实验室中,已有少数研究人员正在研发这类系统的实验原型。相信在不久的将来,就会有这一类的实用性智能系统问世。这是优质网络课程的重要研究方向之一。
随着人工智能的最新进展,尤其是自然语言处理(NLP),我们终于有了能理解人类情感复杂性和利用其力量的技术工具。这种方法对于我们如何设计系统有着重要的意义,它将会从更人性化的视角来解决问题。
人们很善于发现这些细微的差别。然而,对于计算机来说,这是一个巨大的挑战。但日益逼近人的效果。
我们能够教会计算机不仅理解人们所说的基本知识——通过识别单词或查找特定的短语,还能“读懂字里行间”,理解我们话语背后的真正意图和含义。当然,这是一项重要的技能,随着时间的推移,人们逐渐将其作为一种同理心的功能。
1句法语义分析:对于给定的句子,进行分词、词性标记、命名实体识别和链接、句法分析、语义角色识别和多义词消歧。
2信息抽取:从给定文本中抽取重要的信息,比如,时间、地点、人物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。涉及到实体识别、时间抽取、因果关系抽取等关键技术。
3文本挖掘(或者文本数据挖掘):包括文本聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。
4机器翻译:把输入的源语言文本通过自动翻译获得另外一种语言的文本。根据输入媒介不同,可以细分为文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。
5信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可利用1,2,3的技术来建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。
6问答系统: 对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。
7对话系统:系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。同时,为了体现个性化,要开发用户画像以及基于用户画像的个性化回复。
随着深度学习在图像识别、语音识别领域的大放异彩,人们对深度学习在NLP的价值也寄予厚望。再加上AlphaGo的成功,人工智能的研究和应用变得炙手可热。自然语言处理作为人工智能领域的认知智能,成为目前大家关注的焦点。很多企业都在进入自然语言领域,寄望未来在人工智能方向大展身手。
自然语言处理(简称NLP),是研究计算机处理人类语言的一门技术。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)