当前位置: 首页 > 科技观察

模型听人说几句话就能学得更好?斯坦福提出用语言讲解来辅助学习

时间:2023-03-19 13:10:04 科技观察

语言是人与人之间最自然的交流方式,它可以帮助我们传达很多重要的信息。斯坦福人工智能实验室(SAIL)最近在博客中发布了两篇ACL2020论文。基于BERT等神经语言模型的最新突破,这两项研究指向了一个有前途的新方向:使用语言解释来辅助NLP甚至计算机视觉中的学习任务。想象一下:如果你是一名机器学习从业者,想要解决一些分类问题,比如将彩色方块组分类为1或0。你通常会这样做:收集一个包含大量示例的数据集,标记数据,然后训练一个分类器。但这不是人类学习的方式。对于这个世界,人类有一种非常强大和直观的信息交流机制:语言!仅用一个短语“至少2个红色方块”,我们就可以更有效地概括上面的整个数据集。语言是人类学习的重要媒介:我们用它来传达对世界的信念、教育他人以及描述难以直接体验的事物。因此,语言应该是监督机器学习模型的一种简单有效的方法。然而,过去基于语言的学习方法一直难以扩展到现代深度学习系统旨在解决的一般任务,而且这些领域使用的语言通常是自由形式的。今年斯坦福人工智能实验室(SAIL)的两篇ACL2020论文在这个研究方向上取得了一些进展:针对自然语言处理(NLP)和计算机视觉领域的各种高难度任务,首先解释了这些任务,然后使用深度神经网络模型来学习这些语言解释来帮助解决这些任务。ExpBERT:RepresentationEngineeringwithNaturalLanguageExplanationsShapingVisualRepresentationswithLanguageforFew-shotClassification的难点是什么?对于人类来说,语言是一种直观的教学媒介,但为什么用语言来进行机器学习如此困难呢?主要问题也是最基本的:在其他输入的上下文中理解语言解释。构建能够理解丰富语言和模糊语言的模型已经够难了,但是构建将语言与周围世界联系起来的模型就更难了。例如给出“至少2个红色方块(atleasttworedsquares)”的解释,模型不仅要理解“红色(red)”和“方块(squares)”是什么,还要理解它们如何指代A输入的特定(通常是复杂的)部分。过去的一些研究依赖于语义解析器将自然语言语句(例如至少2个红色方块)转换为形式化的逻辑表示(例如Count(SquareANDRed)>2))。如果我们可以通过执行这些逻辑公式轻松地检查解释是否适用于输入,那么我们就可以将解释作为特征来训练模型。然而,语义解析器只对简单的领域有效,因为简单我们可以人为地设计可以看到语言解释的逻辑语法。他们努力处理更丰富和更模糊的语言,他们也努力扩展以适应更复杂的输入,例如图像。幸运的是,现代深度神经语言模型(如BERT)已显示出解决许多语言理解任务的潜力。因此,在这两篇论文中,SAIL提出了使用神经语言模型来缓解这些根本问题。这些神经语言模型要么旨在确定相关领域的语言解释,要么使用可以解释语言解释的一般“知识”进行预训练。下面详细介绍这些神经语言模型,看看它们如何在更具挑战性的任务设置中学习更丰富、更多样化的语言。ExpBERT:UsingNaturalLanguageInterpretationtoDesignandCreateRepresentations论文地址:https://arxiv.org/abs/2005.01932第一篇论文探讨了如何使用语言解释来构建文本分类器。我们先来看一个关系抽取任务:模型需要根据一小段文字来识别其中提到的两个人是否已婚。虽然目前最好的NLP模型有可能仅基于数据来解决这个任务,但人类也可以使用口头描述来暗示两个人是否已婚,例如蜜月旅行者通常已婚。这样的语言解释可以用来训练更好的分类器吗?对于语言任务,我们可以提取输入x的特征(比如特定词是否出现)来训练模型,解释可以提供额外的特征。仍然以上面的任务为例,我们知道“蜜月”是相关的语言描述,如果我们可以创建一个蜜月特征,并在段落描述两个人正在度蜜月时激活它,那么这个信号应该是可用的训练更好的模型。但是创建这样的特征需要某种解释解释机制,以便模型知道对输入的解释是否正确。语义解析器就是这样一个工具:给定“A和B正在度蜜月”,我们可以将此解释解析为一种逻辑形式,即在解析输入时,如果提到A和B也提到“蜜月”,则返回1。但是如果解释更含糊怎么办?例如,“A和B非常亲热”。我们如何解析它?尽管语义解析对于小域来说是高效和准确的,但它的扩展性很差,因为它只能解释遵循一组固定语法规则和预定义函数(如contains和extract_text)的解释。为了解决这些问题,SAIL研究人员看中了神经语言模型BERT的软推理能力。BERT在文本蕴含任务上特别有效,可以确定一个句子是否暗示或矛盾另一个句子。例如,“sheatepizza”表示“sheatefood”。SAIL提出的ExpBERT模型使用的是针对文本蕴含任务训练的BERT模型,但研究人员为其设定的训练目标是识别任务段落中是否隐含了某种解释。BERT在此过程中输出的特征可以替代上述语义解析器提供的指示性特征。BERT的软推理能力能否提升语义分析效果?在上述婚姻识别任务中,研究人员发现,与仅使用输入特征训练的分类器相比,ExpBERT可以带来显着的改进(不做解释)。这里重要的一点是,使用语义解析器来解析解释是没有多大用处的,因为一般解释(enai)很难转换成逻辑形式。该论文还比较了更多基准方法,探索了更大的关系抽取任务(例如TACRED),进行了控制变量研究,并研究了与添加数据相比使用解释的效率。我不会在这里重复它们。UsingLanguagetoShapeVisualRepresentationsforFewShotClassificationTasks论文地址:https://arxiv.org/abs/1911.02683上述研究使用自然语言解释来帮助完成单一任务,例如识别婚姻状况。然而,认知科学领域的研究表明,语言也能让我们获得正确的特征和抽象概念,进而帮助我们解决未来的任务。例如,表明A和B已婚的语言解释也可以解释其他对人际关系很重要的概念:孩子、女儿、蜜月等。了解这些额外的概念不仅有助于识别已婚夫妇,还有助于识别其他关系,如兄弟姐妹、父母等。在机器学习中,我们可能会问:如果我们最终希望解决的新任务没有提供语言规范,那么语言如何为困难的和未指定的领域提供适当的特性?SAIL中的第二篇论文探讨了这种任务设置,这要困难得多:语言能否促进跨模态(在本例中为视觉)的表征学习?具体来说,该研究侧重于少镜头视觉推理任务,例如来自ShapeWorld数据集的以下示例:给定视觉概念的小训练样本集,任务目标是确定holdout集中的测试图像是否表达了相同的概念。现在,如果假设相关视觉概念的语言解释在训练时可用怎么办?即使在测试时没有语言可用,我们能否使用它们来学习更好的模型?SAIL的研究人员在元学习任务框架中构建了这个任务:他们没有在单个任务上训练和测试模型,而是选择在一组任务上训练模型,其中每个任务都有一个小的训练集和支持语言描述(元训练集/元训练集)。然后,他们在没有可用语言描述的未见过任务的元测试集上测试了模型的泛化能力。首先,如果没有语言描述,我们如何解决这个任务?一个典型的方法是PrototypeNetwork,其中的策略是学习一些模型f_θ(在本例中是一个深度卷积神经网络):在此基础上,为了使用语言,SAIL提出了一种称为语言形状学习(LanguageShapedLearning)的方法Learning/LSL):如果在训练过程中可以使用语言解释,它可以促进模型学习,不仅对分类有用,而且这种表示也可以用于预测语言解释。SAIL采用的具体方案是引入一个辅助训练目标(即与最终目标任务无关),同时训练一个循环神经网络(RNN)解码器来预测输入图像表示的语言解释。至关重要的是,这个解码器的训练过程取决于图像模型f_θ的参数,因此这个过程应该使f_θ更好地编码出现在语言中的特征和抽象。实际上,可以说这是训练模型在训练期间表示概念时“大声说出想法”。在测试阶段,可以简单地丢弃RNN解码器,并可以使用这种“语言形”图像嵌入进行常规分类。使用真实图像和人类语言,研究人员在上述ShapeWorld数据集以及更真实的Birds数据集上进行了测试:在这两种情况下,都使用隐式语言学习(L3)方法,这是一种辅助训练目标,可实现性能提升:另外,该论文调查了语言的哪些部分最重要(几乎所有部分都是),以及LSL需要多少语言才能胜过无语言模型(实际上只有一点点)。有关详细信息,请参阅原始论文。展望未来正如NLP系统理解和生成语言的能力越来越强一样,机器学习系统解决基于语言学习的其他困难任务的潜力也越来越大。这两篇SAIL论文表明,深度神经语言模型可以通过学习视觉和NLP领域中各种不同类型任务的语言解释来成功提高泛化能力。研究人员指出,这是一种令人兴奋的训练机器学习模型的新方法,并且已经在强化学习等领域探索了一些类似的想法。在他们的设想中,未来在解决机器学习任务时,我们不再需要收集大量带标签的数据集,而是可以通过沿用了几千年的交互方式——“语言”进行相互交流。模型交互自然而富有表现力。