自然语言处理与医疗文本的知识抽取

978-7-115-61227-4
作者: 刘永彬欧阳纯萍
译者:
编辑: 张涛

图书目录:

详情

本书主要介绍自然语言处理技术在医疗信息领域尤其是电子病历文本中的应用。本书首先对一些基础知识和技术做了介绍,然后给出相关技术在医疗信息领域的应用案例。本书还介绍了知识抽取的一些前沿技术与实践。
本书内容分为四大部分:基础知识、知识抽取、医疗电子病历研究与实践,以及前沿技术与实践。
第一部分包括第1~3章,主要介绍自然语言处理的基础知识、技术发展路线、相关任务以及词表示模型等。 
第二部分包括第4~9章,主要介绍知识抽取的相关任务和技术,其中包括实体识别、关系抽取、领域自适应、多模态、小样本和实体与关系联合抽取等。
第三部分包括第10~12章,主要介绍自然语言处理技术在医疗文本领域的应用,其中包括电子病历实体关系分类体系、ICD(International Classification of Diseases,国际疾病分类)编码、电子病历事件元素抽取等。
第四部分包括第13~15章,主要介绍知识抽取的一些前沿技术及应用,如因果关系发现、小样本知识抽取及其在医疗知识抽取中的应用等。
本书可作为高校相关专业师生的学习用书和培训机构的教材,以及希望深入研究自然语言处理算法的计算机工程师的参考书,也可作为对人工智能、深度学习和自然语言处理感兴趣的初学者与希望把人工智能应用到医疗领域的研究者学习用书。


图书摘要

版权信息

书名:自然语言处理与医疗文本的知识抽取

ISBN:978-7-115-61227-4

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

版  权

著    刘永彬 欧阳纯萍

责任编辑 张 涛

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内容提要

本书主要介绍自然语言处理技术在医疗信息领域尤其是电子病历文本中的应用。本书首先对一些基础知识和技术做了介绍,然后给出相关技术在医疗信息领域的应用案例。本书还介绍了知识抽取的一些前沿技术与实践。

本书内容分为四大部分:基础知识、知识抽取、医疗电子病历研究与实践,以及前沿技术与实践。

第一部分包括第1~3章,主要介绍自然语言处理的基础知识、技术发展路线、相关任务以及词表示模型等。

第二部分包括第4~9章,主要介绍知识抽取的相关任务和技术,其中包括实体识别、关系抽取、领域自适应、多模态、小样本和实体与关系联合抽取等。

第三部分包括第10~12章,主要介绍自然语言处理技术在医疗文本领域的应用,其中包括电子病历实体关系分类体系、ICD(International Classification of Diseases,国际疾病分类)编码、电子病历事件元素抽取等。

第四部分包括第13~15章,主要介绍知识抽取的一些前沿技术及应用,如因果关系发现、小样本知识抽取及其在医疗知识抽取中的应用等。

本书可作为高校相关专业师生的学习用书和培训机构的教材,以及希望深入研究自然语言处理算法的计算机工程师的参考书,也可作为对人工智能、深度学习和自然语言处理感兴趣的初学者与希望把人工智能应用到医疗领域的研究者学习用书。

自然语言处理是研究使用计算机处理在人际交际或人机交际中的自然语言问题的学科,包括自然语言理解和自然语言生成,它同时也是人工智能的一个重要研究方向。语言是人类思维和知识的载体,从语言中获取知识是自然语言处理的重要研究内容。知识具有领域和行业特征,当前自然语言处理技术在通用领域的知识获取上取得了重要的进步和发展,但在垂直领域的知识获取上还有很多挑战性的工作有待研究。

医疗领域存在着大量的文本信息,将这些医疗文本中隐藏的知识挖掘出来,辅助医生进行诊疗决策和助力精准医疗的发展,是实现智慧医疗的关键步骤。《自然语言处理与医疗文本的知识抽取》针对智慧医疗发展需求,围绕利用自然语言处理技术实现医疗文本知识抽取中的核心问题展开讨论。本书基于医疗文本数据,从医疗领域的实体识别、关系抽取、事件抽取等方面对自然语言处理的方法和技术进行了系统的介绍,并提供相关的实践案例。此外,本书以理论为基础,以问题为导向,聚焦前沿技术,勾勒出面向医疗垂直领域的知识抽取技术体系。

作为一名从事知识图谱和自然语言处理工作多年的科研工作者,很高兴看到这本介绍自然语言处理技术在垂直领域知识抽取中如何应用的示范性图书的出版,希望本书可以为从事垂直领域知识图谱构建的相关科研人员提供有效的帮助。

李涓子

清华大学教授

清华大学人工智能研究院知识智能研究中心主任

前  言

自然语言处理(Natural Language Processing,NLP)是人工智能领域的一个重要分支。随着信息化和网络的快速发展,人们对从文本中获取知识的需求日益高涨,自然语言处理技术也越来越受到工业界和学术界的重视。

当前,随着医院信息化的普及,医院的信息系统中存储了大量的医疗文本数据,主要包括患者的检验结果、诊断报告、病历文书、病理报告等。从电子化的医疗文本中提取、分析和挖掘有价值的信息,有助于医生分析患者的健康状况、诊断患者的病症,是智慧医疗领域关注和研究的重点。基于深度学习的自然语言处理方法已被广泛应用在各个领域的文本处理任务中,取得较好的成果,但它在医疗文本的知识抽取中仍面临较大的挑战。本书介绍了利用自然语言处理技术将大量医疗文本转变为有价值的医疗知识资源,用以提高医疗质量、促进智慧医疗产业建设的内容。

本书以介绍自然语言处理技术在医疗文本中的应用为切入点,为读者提供了医疗领域数据的知识抽取的实践案例,重点介绍的案例包括电子病历的ICD自动编码、基于电子病历的医疗事件抽取、医疗对话摘要生成、电子病历中的因果关系发现等。通过这些案例,本书将帮助读者了解医疗领域文本知识抽取的整个技术体系。

致谢

笔者在撰写本书过程中得到许多人的帮助,他们是丁龙、马晓波、文雯、林强、陶治华、廖懿鸣、郑鹏、邹康、张伟、方汶龙、袁玥、杨震、张琳琳、吴林、吴雁彬,正是他们的鼓励和支持,才使得本书得以面世。同时,感谢人民邮电出版社的编辑们在本书出版过程中给予的帮助和指导。此外,我们在写作过程中参考了互联网上大量的优秀资料(这些资料来自知乎、CSDN等网站),感谢这些优秀资料的分享者。当然,我们还要感谢自己的家人,家人的理解和支持,使得我们能够全身心地完成本书的写作。由于笔者能力有限,书中难免有不当和错误之处,还望读者指正,笔者不胜感激。另外,本书引用的参考文献比较多,限于篇幅,仅给出了部分参考文献,更详细的参考文献引用,可联系笔者获取。本书编辑联系邮箱:zhangtao@ptpress.com.cn。

笔者

第一部分 基础知识

第1章 自然语言处理技术

第2章 从统计机器学习模型到神经网络模型

第3章 词表示学习

第1章 自然语言处理技术

1.1 自然语言处理概述

有人说,知识都是用人类语言编码的,那么如何将人类语言中的知识识别出来就是自然语言处理要做的事情。自然语言处理(Natural Language Processing,NLP)是语言学以及计算机科学中人工智能的重要研究领域之一。自然语言处理研究如何让计算机理解人类语言,尤其是如何让计算机通过建模对大量的自然语言数据进行知识获取。自然语言处理的最终目标是让计算机“理解”人类语言,包括语言上下文之间的细微差别。因此,自然语言处理被视为人工智能的最高境界,被誉为“人工智能皇冠上的明珠”。自然语言处理通常包括理解、转换和生成3个层面,主要应用包括机器翻译、自动文摘、信息抽取、对话系统、文本分类等。

自然语言处理的第一个语言模型被认为起源于对1913年的马尔可夫链的遍历性定理的验证。安德烈·马尔可夫(Andrey Markov)在1906年提出了马尔可夫链的概念,他后来于1913年首次将自己的发现应用于普希金的诗体小说《尤金·奥涅金》的前20 000个俄文字母。随后,经典的N-Gram语言模型也基于这一理论的假设。对N-Gram语言模型的系统研究可以追溯到信息论创始人克劳德·香农(Claude Shannon)所做的研究工作。香农早在1948年发表的论文中,就系统地对N-Gram语言模型进行了研究,他首次提出了语言模型中熵和交叉熵的定义,这是较早用数学建模的办法处理自然语言的过程,不过受限于当时的计算机条件,在当时香农的想法并没有受到足够的重视。

1950年,艾伦·图灵(Alan Turing)发表了一篇论文,名为Computing Machinery and Intelligence(“计算机器与智能”),其中提出了如今被称为“图灵测试”的智能标准,这项任务涉及自然语言的理解和生成,虽然在当时并没有作为一个独立于人工智能的问题加以阐述,但是“图灵测试”一直被视为真正实现强人工智能的一个标准,并且是从事自然语言处理的学者们追求的目标。后来,语言学家诺姆·乔姆斯基(Noam Chomsky)提出了“形式语言”,于是人们开始利用基于语法规则的方法进行自然语言处理,不过遗憾的是,近几十年来,基于语法规则的方法鲜有突破性研究进展。

直到20世纪80年代,大多数自然语言处理是基于复杂的手写规则集进行的,乔姆斯基语言学理论的主导地位逐渐减弱。从20世纪80年代末开始,随着机器学习算法的引入,自然语言处理发生一场技术革命。到了20世纪90年代,基于统计机器学习的方法在很多自然语言处理任务中取得显著的成果和应用。

2003年,约书亚·本希奥(Yoshua Bengio,2018年图灵奖得主)发表了一篇名为A Neural Probabilistic Language Model(“神经概率语言模型”)的论文,这是第一篇关于神经概率语言的论文,其最大贡献在于提出了神经网络语言模型,这为后来利用深度学习解决自然语言处理问题奠定了坚实的基础,也开启了自然语言处理的新时代。这篇论文提出的使用词向量来捕获单词的语义属性,以避免统计机器学习方法需要复杂特征工程的缺点,为人们后来的研究提供了广阔的研究思路,提高了对更高级别的任务进行端到端学习的可能性。基于深度神经网络的自然语言处理被视为一种不同于统计自然语言处理的新范式。2010年以后,表示学习和深度神经网络的学习方法在自然语言处理中得到了广泛应用,其中就包括在医学和医疗信息领域,基于神经网络的自然语言处理技术被用于分析电子病历记录和处理相关医疗文本。

1.2 数据标注任务

1.2.1 数据标注之中文分词

在中文文本中,虽然字是最小的单位,但是中文文本的语义表示是以词来划分的,而且和绝大部分西方语言不同,中文词语之间没有用明显的空格来分隔,因此在处理中文文本时,首先需要进行分词处理。将句子转换为词的表示,这便是中文分词。中文分词在学术界和工业界一直具有很高的热度,在自然语言处理的各种下游任务中也充满了中文分词的研究成果,包括机器翻译、语音识别、信息检索、文本错误识别、自动问答、中文繁简体转换等。

1987年,梁南元教授在“书面汉语自动分词综述”一文中介绍了当时主流的中文分词方法——机械分词(又称为词典匹配法)。这种分词方法要求预先构建一个词典,之后再使用匹配算法实现分词。早期的机械分词由于词典质量问题和匹配方法不成熟等原因导致分词结果误差较大,但是随着研究的深入,机械分词逐步走向成熟。2011年,奉国和等人基于专家经验的方法对中文分词的中文文献进行了总结归纳,发现相关算法聚焦于机械分词和传统机器学习方面。这一时期,基于字粒度的机器学习算法已经能够在一定程度上解决未登录词识别的问题。但是,人工特征选择是影响传统机器学习方法的分词结果的重要因素。近年来,基于深度学习的中文分词方法无须人工选择特征,并且具有较高的分词准确率,对中文分词算法的进一步发展产生了巨大影响。

当前,中文分词的主流方法分为基于词典的分词和基于统计的分词两种。基于词典的分词方法依赖人工构建的词典,实现起来简单、高效,但是对词典中不包含的未登录词处理起来十分困难,常见的有正向最长匹配算法、逆向最长匹配算法等。基于统计的分词方法则包括机器学习算法和深度学习算法,其核心思想在于语言模型。

在面对一个中文字符序列时,我们可以使用切词器将这个中文字符序列分成多个词。其中,有的词可能有多个字符,而有的词可能只有一个字符。为了捕捉汉字分别作为词首(Begin)、词中(Middle)、词尾(End)和单字词语(Single)时不同的成词概率,人们提出了{B, M, E, S }这种流行的分词标注集,如图1.1所示。在对一个中文字符序列进行标注之后,分词器会将标签B和E对应的字符切成一个词语,标签S对应的字符则被看成单字词语,最后按顺序输出即可完成分词过程。

图1.1 分词标注集{B, M, E, S}

1.2.2 数据标注之词性标注

词性标注也是数据标注的一项基础任务:输入一个单词序列,输出对应的词性序列(如名词、动词等)。词性标注任务的重要程度与分词任务相当,是进行诸如句法分析、命名实体识别等任务的基础。词性标注的作用则是通过采取适当的方法,根据上下文的语境关系,消除句子中词的语法兼类,使得无论一个词兼有几种词性,在特定的场合下,都只保留其中合适的一种。中文词性标注任务的难点一方面体现在词性于不同语境中的多变性,无法像一些西方语言那样从词的形态变化上判断词性;另一方面则是随着社会的发展,很多词会产生额外的词性。

目前,主流的词性标注方法分为两种。一种是基于规则的方法,先对句子进行分词,再从人工构建的词典中进行查找,对每个词的词性进行标注,这种方法实现起来十分简单,但是无法解决一词包含多词性的问题;近年来,随着语言模型的发展和普遍应用,另一种是基于语言模型的统计方法成为当前主流的词性标注方法,比如经典的N-Gram语言模型、隐马尔可夫模型(Hidden Markov Model,HMM)、条件随机场(Conditional Random Field,CRF)等就具有非常好的效果。

词性为词语提供了抽象表示,虽然词的数量是无穷的,但词性的数量却是有限的。图1.2给出了一个词性标注示例。另外值得注意的是,词性标注集也不是唯一的。参考的语料库不同,就会有不同的词性标注集,比如《人民日报》语料库的PKU标注集、国家语委(国家语言文字工作委员会)语料库的863标注集等。由于语言学界在标注规范上存在分歧,因此这些标注集无论是在词性划分的颗粒度上,还是在词性标签上,都不统一。

图1.2 词性标注示例

1.3 词表示学习任务

机器学习解决了从数据中自动学习计算机程序的问题。一个典型的机器学习系统由3部分组成:特征表示+目标+优化。为了建立起一个有效的机器学习系统,我们首先需要将有用的信息从原始数据转换为内部的特征表示,然后通过设计合适的目标函数,利用优化算法寻找系统的最优参数设置。特征表示决定了可以从原始数据中提取多少有用的信息,以便进一步分类或预测。如果有更多有用的信息能够从原始数据转换为特征表示,则分类或预测的性能就会更好。因此,特征表示是支持有效机器学习的关键组成部分。

传统的机器学习系统采用精心设计的特征工程作为预处理,从原始数据中构建特征表示。特征工程需要精心的设计和大量的专业知识,而一个特定的任务通常需要定制的特征工程算法,这使得特征工程需要耗费大量的人力、时间和灵活性。表示学习的目的就是从原始数据中自动学习对象的信息表示,所学的表示可以进一步作为输入用于预测或分类的机器学习系统。这样,机器学习算法在处理大规模和嘈杂的非结构化数据时,比如语音、图像、视频、时间序列和文本,将更加灵活和令人满意。

在处理文本任务时,词表示(word representation)作为自然语言处理的一个重要组成部分,目的是用一个向量来表示一个词。词通常被认为是人类语言中最小的且有意义的说话和写作单位。语言中的一些高级结构,如短语和句子,都是由词进一步组成的。对于人类来说,要理解一种语言,首先最重要的一点就是先理解词的含义。因此,准确地表示词是非常重要的,这可以帮助模型更好地理解、分类或生成自然语言处理任务中的文本。在一些西方语言中,一个单词可以自然地表示为几个字符的序列。然而,仅使用原始字符序列来表示词是非常低效的。首先,可变长度的单词很难在机器学习中得到处理和使用。此外,这种单词非常稀少,因为只有一小部分的“安排”是有意义的。例如,英文单词通常是由英文字母表中的1~26个字母组成的字符序列,但这些字符序列中的大多数是没有意义的(如“aaabbb”)。因此,在文本任务中,如何对词进行很好的表示是非常重要的环节,它在后续的训练任务中起不小的作用。

1.3.1 词表示方法的类型

1. 独热表示

独热表示(one-hot representation)是表示词的一种自然方法:将一个词写成一个N维向量,其中只有一个分量为1,其余分量为0,N表示现有语料库的词汇表大小。给定词汇表,一种直观的表示方法是使用维向量w,其中的每一维都是0或1,并且只有一维可以是1,其他维都是0。在形式上,向量w中的每一维都可以表示为

这种将一个特别的指数赋予词的方法被称为词的离散化表示,本质上则是每个单词被映射到词汇表的索引。虽然这对存储和计算非常有效,但是单离散并不是很好的表达方式。首先,独热表示不能捕捉词与词之间的关联,如男孩和少年,这是不同年龄段的男性的两种表示,使用独热表示无法表达出其中的语义相关性。其次,一维独热表示在实际的词库中是一种高维稀疏表示,维度过高会导致运算效率很低。最后,独热表示对于新词非常不灵活,要求为新词指定新的索引,这将改变表示空间的维度,这种变化有可能给现有的自然语言处理系统带来一些问题。

2. 词的分布式表示

近年来,为了解决独热表示存在的问题,人们提出了词的分布式表示方法。分布式表示方法旨在找到一个变换函数,以便将每个词转换为相关的向量。换句话说,词的分布式表示就是将词转换成向量,向量之间的相似性与词之间的语义相似性相关。

分布假说(distributional hypothesis)认为上下文中分布相似的语言对象具有相似的语义(相邻的词是相似的),这是词表示学习的重要基础。这样我们就可以把信息分布式地存储在向量的各个维度中,这种分布式的词表示方法具有紧密低维、句法和语义信息容易获取的特点。基于分布假说,布朗聚类(Brown clustering)将词分成层次聚类,其中,同一聚类中的词具有相似的意义。聚类标签虽然可以粗略地表示词之间的相似性,但不能精确地比较同一组中的词。为了解决这个问题,词的分布式表示可以将每个词表示成一个连续的实值向量。这是一种稠密的表示方式,“稠密”意味着一个概念可以由向量的多个维度表示,并且向量的每个维度都涉及多个概念的表示。词的分布式表示具有连续性,可以方便地应用于自然语言处理任务中的深层神经模型。

到目前为止,基于分布假说的词表示方法,根据实际建模的不同,大体可以分为3类:基于矩阵的分布表示、基于聚类的分布表示和基于神经网络的分布表示。尽管这些不同的分布表示方法使用不同的技术手段获取词表示,但由于这些方法均基于分布假说,因此它们的核心思想都由两部分组成:选择一种方法来描述词的上下文,以及选择一种模式来刻画某个词与其上下文的关系。

1.3.2 详解词的分布式表示

1. 基于矩阵的分布表示

基于矩阵的分布表示又称为分布语义模型:首先构建“词-上下文”共现矩阵,然后利用相关方法,从矩阵中获取词的分布表示。矩阵中的行是词的表示,列表示上下文,元素则表示词和上下文共现的次数。可以看出,矩阵中的行描述了词的上下文分布情况。由于分布假说认为上下文相似的词的语义也相似,因此在这种表示下,两个词的语义相似度可以直接转换为两个向量的空间距离。

常见的上下文如下:文档,对应“词-文档”矩阵;上下文的每个词,对应“词-词”矩阵;n元词组,对应“词-n元组”矩阵。常见的Global Vector模型(简称GloVe模型)就是对“词-词”矩阵进行分解,从而得到词的表示的,属于基于矩阵的分布表示。由于矩阵中的每个元素表示词和上下文共现的次数,因此可以采用TF-IDF(Term Frequency-Inverse Document Frequency)算法、取对数等进行加权平滑。另外,如果矩阵的维度较高且非常稀疏的话,则可以利用奇异值分解(Singular Value Decomposition,SVD)等手段进行降维,将其变为低稠密矩阵。

2. 基于聚类的分布表示

可通过聚类手段构建词出现的上下文之间的关系。基于聚类的分布表示根据两个词的公共类别判断两个词的语义相似度,这方面经典的模型就是布朗聚类(又称IBM聚类)。布朗聚类是一种基于词出现的上下文的层次聚类形式,由Peter Brown等人提出。布朗聚类分为多种聚类,具有多种语义。布朗聚类能通过大规模语料库学习二叉树,树的叶子表示词,树的内部节点表示词的层次结构。布朗聚类是一种很难的聚类方法,因为每个词恰好属于一组。布朗聚类的概念源于基于类别的语言模型(又称集群N-Gram语言模型),即单词的概率基于先前单词所属的类别(集群),用于解决语言建模中固有的数据稀疏性问题。在航班预订系统中,系统需要估计二元组“到上海”的可能性;但在训练集中,我们看不到这一点。如果系统能够将“上海”与其他城市的名称聚类,然后对“到伦敦”“到北京”“到东京”等词组的相似度进行估计,则可以得到较好的预测结果。

3. 基于神经网络的分布表示

基于神经网络的分布表示又称为词向量、词嵌入(word embedding)或分布式表示(distributed representation)。基于神经网络的分布表示通过神经网络技术对上下文以及上下文与目标词之间的关系进行建模。由于神经网络较为灵活,这种表示的最大优势在于可以表示复杂的上下文。在前面基于矩阵的分布表示中,最常用的上下文是词。如果使用包含词序信息的n元作为上下文,那么当n变大时,n元的总数会呈指数增长,此时就会遭遇“维度灾难”问题。神经网络在表示n元时,可以通过一些组合方式对n个词进行组合,参数个数仅以线性速度增长。有了这一优势,神经网络就可以对更复杂的上下文进行建模,并在词向量中包含更丰富的语义信息。

当然,还有其他一些基于神经网络的表示方法,如循环神经网络语言模型、C&W模型、Word2Vec模型等。特别是Word2Vec模型,该模型在自然语言处理中占据重要地位,对于这一点,后续章节将详细探讨。

1.3.3 词嵌入

词嵌入是分布式语义模型产生的词的实值表示,它在现代自然语言处理中扮演了很重要的角色。神经网络词向量模型与词的其他分布式表示方法一样,也基于分布假说,核心原理依然是上下文的表示以及上下文与目标词之间关系的建模。

前面提到过,为了选择一种模型来刻画某个词与其上下文之间的关系,我们需要在词向量中捕获这个词的上下文信息。同时,前面还提到统计语言模型(Statistical Language Model)恰好具有捕捉上下文信息的能力。于是,在构建上下文与目标词之间的关系时,很自然的一种思路就是使用语言模型。在语言模型中,为了更好地保留词序信息和构建更有效的语言模型,我们希望在n元模型中选用更大的n。但是,当n较大时,长度为n的序列出现的次数就会非常少,此外在估计n元条件概率时,我们还会遇到数据稀疏问题。为了更好地解决使用n元模型估算概率时遇到的数据稀疏问题,神经网络语言模型应运而生。从历史上看,早期的词向量只是神经网络语言模型的副产品。

2003年,Bengio等人在一篇名为A Neural Probabilistic Language Model的论文中提出了神经网络语言模型(Neural Network Language Model,NNLM)。NNLM在学习语言模型的同时,也会得到词向量。因此通常情况下,词向量可被认为是神经网络语言模型的副产品。词嵌入的训练方法大致可以分为两类:一类是无监督或弱监督的预训练,另一类是端对端的有监督训练。无监督或弱监督的预训练以Word2Vec模型和自编码器为代表。此类模型的特点是,不需要大量人工标记的样本就可以得到质量还不错的嵌入向量。不过因为缺少任务导向,这可能与想要解决的问题还有一定的差距。因此,在得到预训练的嵌入向量后,往往还需要用少量人工标注的样本微调整个模型。相比之下,端对端的有监督模型在最近几年越来越受到人们的关注。与无监督模型相比,端对端的模型在结构上往往更加复杂。同时,因为有着明确的任务导向,端到端模型学习到的嵌入向量往往也更加准确。例如,通过将一个嵌入层和若干卷积层连接起来而形成的深度神经网络,不仅可以实现对句子的情感分类,而且可以学习到语义更丰富的词向量表达。

词嵌入为许多自然语言处理任务带来了解决数据稀疏问题的新灵感,因为它可以将文本中的每个词表示为低维、连续且有实值的向量。对于旨在完成自然语言处理任务的神经模型而言,预包含的词嵌入将发挥重要作用,并作为第一层被广泛应用于最先进的模型中。为此,人们提出了许多基于词嵌入的方法来从文本中捕获更多的语义信息并提高分类精度。

Google的Word2Vec工具包于2013年发布,它实现了在大规模的语料库中以无监督方式有效地学习词向量,用以表示词的语义信息,即通过一个嵌入空间使语义上相似的词在这个嵌入空间中距离很近。而在Word2Vec工具包出现之前,已经有一个工具包实现了用深度神经网络(Deep Neural Network,DNN)来训练词向量。这个工具包有两个模型,分别是CBOW(Continuous Bag-Of-Words)和Skip-Gram。

Word2Vec模型实际上分为两部分,一部分是建立模型,另一部分是通过模型获取词嵌入向量。Word2Vec的整个建模过程实际上与自编码器的思想很相似:先基于训练数据构建一个模型,之后再训练这个模型。我们的目的不是用训练好的模型处理新的任务,而是希望得到模型通过训练数据学到的参数,如隐藏层的权重矩阵。

BERT(Bidirectional Encoder Representation from Transformer)模型架构基于多层的双向编码组成。BERT模型的主要创新之处在于预训练方法上,即使用遮蔽语言模型和下一句预测两种方法来分别捕捉词语和句子级别的表达。其中,“双向”表示BERT模型在处理某个词时,可以同时利用前面的词和后面的词两部分信息。这种“双向”的来源在于BERT模型与传统语言模型不同,BERT模型不是在给定所有前面的词的条件下预测最可能的当前词,而是随机遮掩一些词,并利用所有没有被遮掩的词进行预测。

BERT模型的输入是一个线性序列,两条句子可通过分隔符进行分割:在最前面和最后面增加标识符号。每个词有下列3个嵌入。

1)词嵌入:适合使用BERT模型的分类任务。

2)句子嵌入:因为训练数据由两条句子构成,所以每条句子都有一个整体的句子嵌入来对应每个词。句子嵌入可通过执行下一句预测任务得到。

3)位置信息嵌入:在自然语言处理中,词的顺序是很重要的特征,因此需要对位置信息进行编码。位置编码是由Transformer架构本身决定的,因为基于完全注意力的方法并不像CNN或RNN那样编码词与词之间的位置关系。但是,正因为这种特性,我们才能无视距离长短,建模两个词之间的关系。为了使Transformer架构能够感知词与词之间的位置关系,我们需要使用位置编码为每个词加上位置信息。

将每个词对应的3个嵌入叠加起来,便形成了BERT模型的输入。BERT模型与其他预训练模型有两点不同:首先是特征提取器采用了Transformer架构,其次是在预训练时采用了双向语言模型。

BERT模型的亮点是效果好且适用性强,几乎所有自然语言处理任务可以套用BERT模型的这种两阶段解决思路,而且效果有明显提升。可以预见的是,未来一段时间,在自然语言应用领域,Transformer架构将占据主导地位,而且这种两阶段的预训练方法也将主导各种应用。

1.4 实体识别任务

随着计算机的普及以及电子文本得到广泛应用,海量信息给信息获取带来了挑战,人们迫切需要一些智能化的工具来协助处理这些大规模、非结构化的文本信息。这些智能化工具的实现往往需要丰富的语义知识作为支撑,命名实体作为文本中重要的语义知识,得到广大研究人员的重视和关注。但由于命名实体本身具有随意性、复杂性、多变性等特点,命名实体识别(Named Entity Recognition,NER)至今仍是一个重要且具有挑战性的研究课题。

命名实体识别是自然语言处理的基本任务之一,也是信息抽取的关键组件,对信息检索、机器翻译和自动应答等各领域的研究均有重要意义,具有广阔的应用前景。早期的方法基于领域专家编写的规则进行实体识别,实现难度和任务要求相对较高;目前的主流则是基于深度学习的实体识别方法,循环神经网络(Recurrent Neural Network,RNN)是处理文本序列的常用结构。2015年,Huang等人提出了一系列基于长短期记忆网络(Long Short-Term Memory,LSTM)的序列标注模型,包括LSTM、Bi-LSTM、LSTM-CRF、Bi-LSTM-CRF等。2020年,Ma等人在字符表示中融入了词汇信息,提出了面向中文实体识别的SoftLexicon模型。

命名实体识别任务旨在从非结构化的一段自然语言文本中提取出具有特定含义的词语(即实体),并标注它们的位置及类型。一般来说,命名实体识别任务主要需要对文本中的3大类(实体类、时间类和数字类)和7小类(人名、机构名、地名、时间、日期、货币和百分比)进行识别。标注时一般采用BIO或BIOES方式。其中:B即Begin,表示实体的开始;I即Inside,表示实体中其余的部分;O即Outside,表示不是实体的部分;E即End,表示实体的结尾;S即Single,表示词语本身就是实体。

图1.3给出了命名实体识别的一个样例,其中采用的是BIO标注方式。在这个样例中,“张”和“三”分别被标注为B-PER和I-PER,它们分别表示人名实体的开头和其余部分;“衡”和“阳”分别被标注为B-LOC和I-LOC;“南” “华”“大”“学”分别被标注为B-ORG、I-ORG、I-ORG、I-ORG;剩下的字则被标注为O。由此可以看出,一共可以识别出3个实体:张三(人名)、衡阳(地名)和南华大学(机构名)。

图1.3 命名实体识别样例

命名实体识别任务最早是在第6届的消息理解会议(Message Understanding Conference)上提出的,研究历史已近20年,取得的成果十分丰硕,在很多领域得到了广泛应用。传统命名实体识别的常用方法有如下几种。

1)基于规则和词典的方法。此类方法的识别效果主要依靠特定领域专家手动编写规则和词典,工作量巨大,而且这些规则依赖于具体的语言、领域和文本风格,导致移植性差,难以推广到新的领域。

2)基于统计的方法。此类方法主要包括最大熵模型(Maximum Entropy Model,MEM)、支持向量机(Support Vector Machine,SVM)、隐马尔可夫模型、条件随机场(Conditional Random Field,CRF)等。最大熵模型主要通过选择符合条件的熵最大的分布来对样本进行预测。最大熵模型结构紧凑,使用方便,能够根据需要设置条件,从而调整模型对预测数据的适应度以及对标注数据的拟合程度。但是,当样本量较大时,约束函数的数量也相应增加,导致优化求解的迭代过程变得缓慢,训练时间长,复杂性高。另外,由于需要明确的归一化计算,所需计算量较大,训练成本难以承受。隐马尔可夫模型通过动态规划中的维特比算法来对命名实体标注序列求全局最优解,因而加快了不同解法路径的计算速度,效率高但准确率较差。隐马尔可夫模型偏重于需要实时处理大量文本的应用,如短文本命名实体识别。条件随机场则在对某个词进行标注时充分融合了其内部及上下文相关特征信息,同时使用隐马尔可夫模型的维特比算法来筛选最大概率的全局最优标注序列路径,特征选择更为灵活,全局效果相对更优。基于统计的方法利用原始数据进行模型训练,不需要过多的人工干预,降低了人力成本,具有良好的灵活性和鲁棒性。但是此类方法对选取特征的正确性要求较高,并且对语料库依赖较大,泛化性较差。

3)基于混合的方法。此类方法包括对基于统计的方法进行融合和内部层叠融合,还包括对基于规则和词典的方法以及基于统计的方法进行融合。基于混合的方法通过采用融合技术,能够高效地将各类模型、算法结合起来,可修正实体边界并改进实体语义分类结果,提高模型的精确率与召回率。

近年来,随着算力(计算能力的简称)的不断提高,深度学习逐渐兴起,越来越多的研究人员开始使用基于神经网络的方法推进解决命名实体识别问题。与传统方法相比,基于神经网络的方法是数据驱动的,对人工依赖较低,可直接由构建好的神经网络在已有数据上自行训练并自动提取所需特征,进而实现对命名实体的准确识别,使用这种方法训练出来的模型具有较强的泛化能力。

1.5 关系抽取任务

实体关系抽取(Entity and Relation Extraction,ERE)是信息抽取的关键任务之一,目的是从自然语言文本中抽取出一对实体,识别并判断其中两个实体之间的语义关系,这对于理解文本知识结构和扩充现有知识库有重要意义。

早期的方法一般通过人工构造句法树和语言规则进行关系抽取,例如,Aone等人于1998年采用专家编写的文本规则进行关系抽取,Humphreys等人在同一年首次采用句法树进行关系抽取。2006年,Hinton等人发表的论文Reducing the Dimensionality of Data with Neural Networks揭开了深度学习的序幕,经过多年发展后,深度学习成为完成包括实体关系抽取等在内的众多自然语言处理(NLP)任务的主流方法。Zeng等人于2014年首次在实体关系抽取中使用CNN提取句子和单词特征。Xu等人于2015年提出基于LSTM的关系抽取方法。2018年,BERT模型问世,BERT模型刷新了完成各种NLP任务的纪录,越来越多基于BERT模型的关系抽取模型产生。Shi等人于2019年采用BERT模型实现了关系抽取。

由于关系抽取能够提取文本信息并使许多自然语言处理应用从中受益,如知识图谱、对话生成、搜索引擎和问答系统等,因此吸引了众多研究人员的关注。

具体来说,就是给定一段自然语言文本并指出其中出现的两个实体,根据文本的语义信息推测这两个实体是否具有关系。如果有关系,那么具体是哪种关系。关系抽取任务的输入是一句话或多句话,输出则是一个包含实体和关系的三元组,如图1.4所示。

图1.4 实体关系抽取示例

图1.4所示的文本中包含3个实体:“新冠肺炎疫苗实施计划”“世界卫生组织”“新冠疫苗”。根据实体的上下文信息,获取它们在文本中的语义关系,即可抽取出图1.5所示的三元组。

图1.5 实体关系三元组

所形成的简单的知识图谱如图1.6所示。

图1.6 知识图谱

利用关系抽取,我们可以从海量的非结构化或半结构化的自然语言文本中抽取出有意义的结构化信息,在数据爆炸式增长的信息化时代,这可以在很大程度上帮助我们减轻构建知识库的成本,具有重要的意义和广阔的应用前景。

关系抽取是一项经典的任务,如何减轻对人工标注数据的依赖并尽可能准确地自动抽取文本中的信息,始终是自然语言处理的一个热点研究方向,人们对此已经取得一些阶段性的成果。目前,主流的关系抽取方法主要基于机器学习,大致可以分为3种:无监督的关系抽取、半监督的关系抽取以及有监督的关系抽取。无监督的关系抽取基于分布假设理论。在关系分类中,如果两个实体对具有相同的语义关系,则包含这两个实体对的文本也具有相似的语境。基于这种假设,无监督的关系抽取将实体对的上下文作为表示实体关系的特征,关系抽取的过程被相应地转换为计算文本的相似度。半监督的关系抽取主要基于以下假设:如果两个实体在知识库中被标记为某种关系,则认为同时包含这两个实体的所有句子都在表达这种关系,从而可以作为模板或训练语料以获取更多的实体对。虽然半监督的关系抽取不需要大量的标注样本,减轻了模型对人工标注数据的依赖,但是其过强的设定不可避免地会产生许多噪声。由于文本语言表达的复杂性和多样性,包含同一实体对的文本并不一定表示它们具有相同的语义关系。有监督的关系抽取则将关系抽取任务当作多分类问题,并利用大量标注数据来训练分类器以用于关系抽取。

近年来,深度学习在有监督的方法中得到人们广泛的关注,由于不需要手动选择特征,避免了人工选取特征的误差,深度学习在各项任务中都取得显著的效果。卷积神经网络、长短期记忆网络、双向长短期记忆网络等逐渐被应用于关系抽取,并且性能较好。但是,此类方法严重依赖于大量的人工标注数据,在数据稀疏的领域面临很大的阻碍。为此,最近许多研究致力于将小样本学习方法应用于关系抽取,这在一定程度上缓解了数据稀疏对基于神经网络的有监督的关系抽取造成的困扰。

随着各项理论和技术取得突破,关系抽取任务也得到快速发展,但同时也迎来许多新的挑战。

1)跨句子的关系抽取:当前,主流的关系抽取方法大多基于单条句子,这些方法虽然在很多领域取得了较好的效果,但是在现实场景中,关系的实体对可能分别位于不同的句子中,需要通过多条句子才能获取实体对的语义关系。以图1.4为例,“世界卫生组织”和“新冠疫苗”就存在跨句子进行关系抽取的情况,这无疑增加了模型理解文本语义和判断实体关系的难度。在实际应用中,由于存在大量多句子联合抽取的情况,因此对跨句子关系抽取的研究势在必行。

2)开放领域的关系抽取:处在前沿的关系抽取研究工作一般是在设定好的关系集合上进行的,关系抽取被当成一个分类任务。在这种情况下,无法抽取预定义集合之外的实体关系,甚至同一实体对也可能存在多种关系,在更换关系类型后,模型的性能往往会大幅下降。开放领域的关系抽取成为一个研究热点。

3)具有时空属性的关系抽取:大部分的关系抽取任务是抽取一个关系三元组(实体,关系,实体),但有时候,关系具有时效性和空间属性,如“2020年2月8日,三岛市又有3名新冠肺炎患者治愈出院”。关系三元组(三岛,治愈,新冠肺炎患者)只在某个时间范围内成立,这就是关系的时间属性。三元组很难表达出关系的时空属性,因此需要考虑多元关系抽取。包含时空属性的多元关系能表达更加具体和丰富的关系信息,是未来的一个重要研究方向。

1.6 事件抽取任务

由于人类语言的复杂性,文本的自然语言处理可以分为4个层次:文字、语法、语义和语用。当前的自然语言处理技术在前两个层次的任务中取得了巨大的成功,在许多商业应用中也取得了成功。然而,更先进的结构化搜索引擎需要在文字和语法层次的基础上更深入地理解语言。信息抽取(Information Extraction)是实现文本理解的一项重要基础性工作。

信息抽取是指自动提取实体、关系和事件并生成结构化的文本,对文本相关信息抽取的过程主要涉及3个层次的抽取任务:命名实体识别(Named Entity Recognition)、实体关系抽取(Entity Relation Extraction)和事件抽取(Event Extraction)。其中,事件抽取是指对特定事件及其涉及的论元进行识别,比如识别某交通事故及其发生的时间、地点、伤亡情况等论元。

事件抽取旨在从自然语言文本中抽取我们感兴趣的事件并以结构化的形式呈现出来。事件抽取可以应用于不同的领域,比如,在金融领域抽取“并购”“转账”“破产”等事件,在医疗领域抽取“诊断”“检查”“治疗”等事件。通常情况下,一个完整的事件是由以下几部分组成的。

1)事件描述(Event Mention):描述事件的词组、句子或句群,标志一个特定事件的发生。例如,图1.7中的句子就是对一个“合并”事件的事件描述。

2)事件触发词(Event Trigger):最能表达事件的词和词组,是决定事件类型的重要特征。事件触发词一般是动词或名词,在图1.7中,“合并”一词就是事件触发词。

3)事件类型(Event Type):与事件触发词对应的事件的具体类型。

4)事件论元(Event Argument):事件的参与者或属性(如时间、地点、参与人员等)。事件论元是事件的重要信息,主要由实体名称、时间表达式或属性值等细粒度单位组成,比如图1.7中的“10月8日”“美团网”“大众点评网”。

5)论元角色(Argument Role):事件论元与其所参与事件之间的关系,也就是事件论元在事件中扮演的角色。在图1.7中,事件论元“美团网”和“大众点评网”在事件中扮演“组织”的角色,“10月8日”扮演“时间”的角色。

图1.7 事件抽取样例

为了获取事件触发词、事件类型、事件论元和论元角色,一般的事件抽取任务需要分成4个阶段来处理:事件触发词检测(Event Trigger Detection)、事件触发词分类(Event Trigger Typing)、事件论元识别(Event Argument Identification)和事件论元角色识别(Event Argument Role Identification)。

近年来,越来越多的国内外学者开始对事件抽取进行研究,早期主要是针对英文文本的事件抽取,随后包括中文在内的多种语言文本的事件抽取研究也取得不同程度的进展。2005年,自动内容抽取(Automatic Content Extraction,ACE)国际评测会议正式将事件抽取任务设置为一项评测任务,经过多年的发展,ACE成为事件抽取领域最有影响力的公开评测会议。ACE对新闻及评论文本进行标记,一共归纳出8个主要的事件类型以及33个事件子类型,同时还确定了事件抽取中触发词、论元角色等概念的定义及评估标准。在ACE项目的支持下,语言数据联盟(Linguistic Data Consortium)为2005年的ACE评测任务整理并标注了一个多语言的信息抽取数据集,里面的数据来源于广播对话、广播新闻和电话对话,语言数据联盟的专业人员对其中的实体、关系和事件进行了各种类型的标注。这个数据集在随后的多届ACE事件抽取评测任务中不断被完善和扩展,成为事件抽取领域一个权威的通用数据集。ACE的事件抽取语料是针对通用背景的,此外还有一些事件抽取语料是针对特定领域的。例如,BioNLP是针对生物医学领域的事件抽取语料。

尽管事件抽取具有实用性和广泛的应用前景,但在实践中,在事件抽取系统作为一种有效的工具被广泛采用之前,仍应克服一些问题和挑战。首先是数据注释成本的问题,高效的事件抽取系统往往依赖于高质量的标注数据,数据的标注需要标注人员具备相关领域的专业知识。其次是特征的选择问题,事件抽取需要使用一些NLP资源或工具(如句法依存解析、词性标注、命名实体识别等),如何更合理地利用这些由NLP资源和工具生成的特征也是一个需要解决的问题,因为这些上游的资源和工具所产生的错误会被传播到下游的任务中。例如,在进行命名实体识别时,有可能检测到错误的实体,错误的实体会在关系抽取阶段被利用,从而影响关系抽取任务的性能。最后,我们还需要考虑跨句子甚至跨文档的事件抽取,因为在很多情况下,一个事件的触发词和论元会分布于多条句子中。

早期的事件抽取模型主要基于模板匹配和传统的机器学习。为了解决数据标注成本过高的问题,有人提出了几种基于模式匹配(规则)的注解系统,以加快注解过程。基于模式匹配的方法首先需要获得一组模式(模式由谓词、事件触发词及其语法上下文的约束组成),然后使用一组丰富的自定义词汇特征(如同义词、词义标记)、句法特征(如语法级特征、依赖路径)和语义特征来标识角色。Chieu等人提出了一种基于分类的单槽和多槽信息提取模型,性能优于基于模式匹配的方法。Boguraev等人利用最大熵来完成触发词的检测,他们还设计了TiMBL分类器来区分事件类型。在随后的研究中,一些研究人员捕捉到文档级别的特征以改进事件抽取模型。Grishman等人利用跨文档特性来分解文档边界。Hong等人利用不同类型事件的信息进行预测,通过设计文档级预测模型,实现了对文档级事件的有效提取。基于特征的方法虽然可以通过丰富不同形式的特征来实现性能的提升,却存在严重依赖于人为因素的问题,费时且容易出错。

随着深度学习在自然语言处理中不断发展,对事件抽取的研究已经从早期的基于模板匹配和传统机器学习的方法转向基于深度学习的神经网络方法。Nguyen等人将非连续卷积引入传统的CNN模型,在事件检测方面取得优异的性能。Chen等人则提出一种动态多池化CNN模型,实现了对事件抽取任务的句子语义线索进行编码。Sha等人增强了带有依赖的递归神经网络,以捕获用于事件提取的句法信息。Lin等人提出了3种混合表示方法,从而将字符级和词级特征结合了起来。Zhang等人提出了一个联合模型,旨在通过捕获结构信息提取事件引用和实体。

1.7 预训练模型

随着对各种深度学习技术研究的进一步开展、深入和不断发展,不同处理类型的深度神经网络被广泛地用于解决现实中各种不同的需要用计算机来解决的问题。特别是,深度神经网络已经从计算机视觉(Computer Vision,CV)的各个领域扩展应用到自然语言处理(NLP)的各个领域,如卷积神经网络(CNN)、递归神经网络(Recursive Neural Network,RNN)、图神经网络(Graph Neural Network,GNN)和各种注意力机制(attention mechanism)。这些神经网络模型各有各的优点,它们都能缓解特征工程问题:通过神经网络提取特征,然后对提取出的特征进行学习。

虽然神经网络模型在自然语言处理任务中继续前进和发展,并且持续地取得成功,但是在与计算机视觉等领域的比较中,性能的提升和改善很有可能没有那么成果斐然。当前,大多数NLP任务使用的数据非常少(机器翻译除外)。深度学习的神经网络一般会有很多参数,这使得它们在训练中对数据较少任务的适应性太强。在实际应用中,虽然能很好地学习数据的特征,但是学得太好往往导致过拟合问题。因此,早期的NLP神经网络模型在很多任务中使用的神经网络层数都很少并且相对比较简单,通常只有一到三个神经网络层。

预训练模型(Pre-Trained Model,PTM)通过从大规模的数据中学习大量与特定任务无关的模型,并在后续任务中做进一步细化,对特定任务进行微调,从而使模型适应任务的能力更强。当前,预训练模型的训练数据已从单语言、单模态扩展到多语言、多模态。

预训练模型首先通过自监督学习的方法,从大规模的数据中获得与具体任务无关的模型。预训练模型在应对具体任务时可以进行微调,也就是针对具体的任务进行参数修正,训练数据可以是适应任务的各种数据。预训练模型在经过微调后,可用于支持分类、序列标记、结构预测和序列生成等各项技术,并构建文摘、机器翻译、图片检索、视频注释等应用。

近年来,大量的研究工作和验证结果表明,对于大型的任务数据库和数据资料集来说,PTM已经能够自动学习并以通用编程语言的形式加以表达,这对于进行后续的大型任务处理非常有用。为了有效避免对新的体系模型从头到尾进行重复训练,随着现代计算语言技术和处理能力的进一步优化和发展,深度训练模型正在不断地优化和提高深度训练的计算能力。PTM的结构也正在从浅层向更深入的层次发展。第一代单词PTM的主要目标之一就是通过大量优秀的词汇来学习词嵌入,因此模型不再需要重复学习那些基础词汇。词嵌入对模型计算效率的要求往往很低,如Skip-Gram和GloVe等模型。尽管目前通过预训练已经可以快速知道单词的基本意义,但是通过学习词嵌入计算方式得到的词汇的含义与每个上下文结构无关,无法通过对每个上下文进行有效的分析来快速捕捉所需的新单词,如多义单词消歧、句法结构、语义处理角色等。第二代单词PTM学习的词嵌入则包括学习上下文的多个单词,如Cove、Elmo、OpenAI GPT和BERT等模型。

在深度学习时代,为了使训练深层模型的各个参数能够同时防止过拟合,一般情况下需要使用很多已标注的参数来训练模型。但是在自然语言处理的各个应用领域,标注准确的数据集是十分难得的资源。PTM的作用和意义就在于根据大量无标注的数据对任务进行上游的预训练,在经过上游的预训练后,再执行下游的任务,从而提高NLP任务的性能。总的来说,PTM具有以下优势。

1)在利用拥有大量无标记数据的数据集进行预训练后,就可以学习到更通用的公有特征,这有利于完成接下来的任务。

2)为后面的任务模型提供优秀的目标初始化参数,提高目标执行任务的范围和广度以及任务泛化时的性能,并且可以加快实现任务收敛。

3)PTM是一种有效的正则化手段,可以避免对小规模的数据集过拟合(初始化参数随机的深层模型很容易对小规模的数据集过拟合)。

自监督学习中的语言模型大致可以分为两类:基于上下文的语言模型和基于对比的语言模型。基于上下文的语言模型有LM、DAE和PLM。LM利用联合概率的无偏估计来预测单词之间的相关性。DAE是自编码语言模型,旨在通过引入噪声构造MLM(屏蔽语言模型)以获取上下文信息的表示。MLM的工作原理如下:首先使用[MASK]替换原来句子中的一些词,假设原来的句子是“I Love You”,则经过替换后,句子就变成“I [MASK] You”;然后利用上下文预测替换后的句子是什么。PLM是排列语言模型,PLM结合了LM和DAE的优点。基于对比的语言模型主要有DIM、RTD、NSP和SOP。DIM旨在判断全局特征和局部特征是否来自同一实例。RTD则引入噪声并训练分类器以区分真实样例和引入噪声后的虚假样例。NSP旨在区分两条句子是否来自同一数据集并且连续。SOP则首先利用连续的句子作为正样例,然后将两对连续的句子互相交换,从而构造负样例。

1.8 小样本学习

小样本学习(Few-Shot Learning,FSL)是元学习(meta learning)在监督领域的应用,主要目的是让模型学会学习。在大多数时候,我们没有足够的数据来训练机器学习模型,此时就需要从小样本的数据中快速学习模型,并期望达到接近大数据学习的效果。

近年来,机器学习在自然语言处理、计算机视觉、语音识别等领域取得了优异的成果,特别是深度学习将人工智能推向了新的高潮。一般来讲,机器学习的成功得益于3个因素:快速发展的计算机资源(GPU、TPU等)、复杂模型(LSTM、Transformer等)以及大规模的数据集。一方面,现在的模型虽然在数据密集型应用中取得了很好的结果,但其优异的性能基本上是依赖海量数据驱动的,随着训练样本数量的减少,模型的性能会急剧下降。然而,人工标注高质量的数据耗时且费力,这意味着模型通常会受到数据缺乏的影响。另一方面,在很多情况下,目标任务都是针对特定领域的数据进行的,如医疗数据、商业数据等,这些数据本身收集成本昂贵,可用于训练的数据规模通常有限。以上两方面在很大程度上限制了机器学习的应用和效果。因此,如何使机器学习能够从非常有限的样本中进行高效学习并推广其认知能力,成了现在的研究热点。

机器学习和人类智能的差异在于人类具有更强的学习能力,人类非常擅长通过极少量的样本识别新的事物,然而机器学习模型在这种情况下容易产生过拟合。例如,人类只需要通过几张图片,就可以认识图片上展示的内容,如“飞机”“大象”等。强大的学习和应用能力是人类的优势。在人类快速学习能力的启发下,研究人员希望机器学习模型通过学习一定类别的大量样本后,就可以获得快速学习和辨别的能力。这种能力使得机器学习模型在面对新的类别时,只需要少量的样本就能进行快速识别。如果可以做到这一步,机器学习与人类智能的差距就会显著减小。

对于机器学习,早期的一些探索旨在解决训练样本过少导致的过拟合问题。

1)数据增强(data augmentation),旨在学习增强数据的方法。在自然语言处理中,可以借助同义词替换、随机插入、随机交换、随机删除等方式,通过少量可用的数据生成更多等价数据。

2)正则化(regularization),包括L1正则化、L2正则化等。可通过在代价函数中增加额外的正则化项,来提高模型的泛化能力和缓解过拟合问题。虽然这些方法在小样本场景中有一定的作用,但是效果有限。

元学习法是目前主流的方法。一方面,利用过去学习的经验指导如何快速学习新知识,而不是从零开始学习,这是一个类似于人类学习新事物的迭代过程,两者都是在已有的知识背景下学习新的内容。另一方面,元学习法利用已经学到的知识来解决新的问题,如果已有的先验知识可以帮助解决新问题,则对于新的问题就不需要太多的样例。

具体来说,在元学习法中,小样本学习会将训练过程分解为不同的元任务(meta task)。小样本学习的训练集具有很多的类别,每个类别包含多个样本。在元训练阶段,从训练集中随机抽取C个类别,每个类别包含K个样本。首先构建一个元任务(一共C×K个样本),这些数据被称为支持集(support set);然后从这C个类别的剩余数据中随机抽取若干样本作为模型的预测对象,这些数据被称为查询集(query set)。要求模型能够从这C×K个样本中学会如何区分查询集中的这C个类别的样本。这样的任务被称为C-way K-shot问题,在小样本场景下,K通常很小(K<10)。

为了让描述更直观,我们以图片分类为例。图1.8给出了一个3-way 3-shot示例,实际上也就是完成一个三分类任务,为每个类别提供3个样本供模型学习。在元训练阶段,构建一系列这样的三分类任务,指导模型学习如何根据支持集预测查询集中样本的类别。在元测试阶段,构建一个与元训练阶段一致的元任务(3-way 3-shot)进行测试。最后,对元任务使用全新类别进行测试。

图1.8 小样本学习任务样例

在元训练阶段,每次训练都会采样得到不同的元任务,这些元任务包含由不同类别组成的支持集,这使得模型不仅能学到与任务相关的部分(如包含在当前任务样本中的知识),也能学到不同任务中的共性部分(与任务无关,比如如何提取用于比较样本类型的特征以及如何衡量样本的相似性)。通过这种方式,对于由遇到过的或未遇到过的类别组成的元任务,模型都能较好地对它们进行分类。

元学习不学习如何解决特定的问题,而是学习如何解决一类任务。学会解决的任务越多,模型处理其他新任务的能力就越强。

总的来说,对于小样本学习,我们有多种解决方法,包括基于度量的方法、基于优化的方法和基于数据增强的方法。其中,基于度量的方法是目前性能较好的一种方法。在度量学习的框架下,我们已经有许多先进的学习模型,如经典的原型网络、匹配网络、孪生网络,以及基于这些模型探索出来的新模型,如带有两级注意力的原型网络、结合了胶囊网络的原型网络等。在后续章节中,我们将详细介绍小样本学习模型在关系抽取中的应用以及最近的研究进展。在现实场景中,小样本和数据不平衡这两个问题往往是共存的,所以小样本学习的最终目标是使用从某领域获得的知识来辅助其他领域的学习。目前,虽然小样本学习对原有数据和目标数据在同一领域的任务中已经接近人类的水平,但是在跨领域的场景中仍面临很大的挑战,因此对小样本学习的研究仍有很长的路要走。

1.9 领域自适应

通常情况下,对于深度学习任务而言,训练数据与测试数据的分布是一致的。但是在现实生活中,我们经常遇到训练数据和测试数据的分布并不一致的情况。此时,领域自适应就派上用场了。领域自适应旨在通过训练源域的数据,将学习到的知识迁移到目标域的数据的任务中,一般源域的数据都是有标签的,目标域的数据都是标签不足甚至没有标签的,邻域自适应可以增加能用的数据。在自然语言处理中,不同分布或者说不同领域的数据限定是很模糊的,可以指不同的主题、作者、体裁甚至不同的语言。下面的例子属于领域自适应,如图1.9和图1.10所示。

图1.9 来自维基百科的训练数据

图1.10 来自医疗领域的训练数据

假设现在的任务是进行关系抽取,训练集是来自维基百科的文本数据,测试集是来自医疗领域的文本数据。对来自维基百科的数据进行训练,得到的三元组关系[乔布斯,创立,苹果公司],就是通过很多来自维基百科的文本和三元组组成源域,然后预测来自医疗领域的文本关系的,如[世界卫生组织,提供,新冠疫苗]。

什么是不同领域?Plank于2016年给出了如下直接的定义:variety space。Plank在自己的论文中提出了如下理论:一个语料或者说一个数据集可以看成一个子空间(variety space中的一个样本)。这个语料可以由一些实例组成,在关系抽取中,这些实例一般指的是具体的文本,如一句话或一段话。另外,这些实例是从一个更加高级且未知的维度空间中提取出来的,这个维度是模糊的隐藏因素,既可以是来自不同领域的文本(如法律领域和医疗领域的文本),也可以是不同的作者,或是其他未知的相关信息。

在领域自适应中,有个专有名词叫作不变域或域不变特征,用于表示源域和目标域之间共同的特征。例如,源域是真实狗的照片,目标域是手绘狗的照片,它们之间的分布肯定是不一致的。如果直接用真实狗的照片去训练分类器,然后直接用于预测手绘狗的任务,准确率肯定比较低。我们需要找到真实狗和手绘狗的公有特征,比如狗的外貌特征、毛发特征等;然后去除一些私有特征,如照片的风格特征和手绘的风格特征等;最后利用公有特征训练分类器,此时得到的分类效果就会比较好。

什么是领域自适应?以关系抽取为例,在领域D={x, p(x)}中,x指的是特征空间,如句子上下文的特征、实体特征和位置特征等组成的特征空间,p(x)是特征在特征空间中的边缘分布函数。任务是T={Y, P(Y|X)},其中,Y指的是标签空间中实体(如头实体和尾实体)之间的关系,P(Y|X)是从训练数据中学习得来的。领域自适应的目的是从源域的数据中学习P(Y|X),使模型可以在目标域获得较好的泛化性能。X在源域中的分布函数不等于X在目标域中的分布函数。领域自适应在本质上就是迁移学习,通过学习源域的特征预测源域的标签,并迁移到通过学习目标域的特征预测目标域的标签。

图1.11给出了一个领域自适应的例子。在图1.11中,左上方的三角形和五边形表示源域的两种标签不同的数据,实线代表分类任务的结果。可以看出,模型很好地完成了二分类任务——能够很好地区分映射到同一向量空间的两种标签不同的数据。右上方的五角星和菱形代表的是目标域数据。如果直接将源域的数据作为分类任务的训练集,并将目标域的数据作为分类任务的测试集,测试结果将如图1.11的左下方所示,分类结果很差,无法区分五角星和菱形。但是,在经过领域自适应后,如图1.11的右下方所示,三角形靠近五角星,五边形靠近菱形,分类结果较好。由此可见,在经过领域自适应后,本来无标签的目标域数据(如三角形和菱形)就可以通过靠近有标签的源域数据得到分类,这正是领域自适应的目的。

图1.11 领域自适应样例

在最近的研究中,领域自适应的方法大致可以分为如下3类。

1)基于差异的领域自适应(Discrepancy-based Domain Adaptation):通过对源域的数据进行训练,然后对目标域的数据进行微调,拉近两个领域之间的距离来进行领域自适应。

2)基于对抗学习的领域自适应(Adversarial-based Domain Adaptation):通过对源域与目标域的数据进行对抗训练,并利用生成器对源域和目标域进行特征对齐,然后辨别数据属于哪个领域,从而学习两个领域之间的共同点,进行领域自适应。

3)基于数据重构的领域自适应(Reconstruction-based Domain Adaptation):通过对数据进行处理来拉近目标域和源域之间的距离,从而学习这两个领域之间的不变性。

近年来的一些研究参考了DSN中的相关成果,无监督的领域自适应是一个很多人都在研究的课题,目前出现了一些相关的技术。本节主要关注基于卷积神经网络的方法。基于卷积神经网络进行无监督的领域自适应已经取得很大的进展。有些研究人员通过训练一个二分类器来识别哪些特征来自源域,哪些特征来自目标域。通过这个分类器,我们可以找到源域和目标域之间的边界。Mansour等人将上述理论扩展到了处理多个源域的情况。

Ganin等人和Ajakan等人通过使用对抗网络学习源域和目标域之间的域不变特征,然后通过这些域不变特征训练模型,从而拉近了源域和目标域之间的距离,最后利用基于源域的分类器来分类目标域。卷积后的参数在后面的几层通过最大平均偏差(Maximum Mean Discrepancy,MMD)计算源域和目标域之间的距离,并通过损失函数拉近该距离。分类器一共有两个,一个是域分类器,另一个是类辨别器,前者用于区分源域和目标域,后者用于分类源域的数据。深度对抗神经网络能够最小化特定于域分类器的参数的域分类损失,同时最大化这两个分类器的公有参数的域分类损失。通过使用梯度反转层(Gradient Reversal Layer,GRL),实现这种极小或极大优化成为可能。

Tzeng等人和Long等人提出了改进版本,他们用MMD度量的最小化代替了域分类损失的最大化。MMD度量是在从每个域的样本集中提取的特征之间计算得出的。Tzeng等人提出的深度域混淆网络(Deep Domain Confusion Network)在CNN体系结构中有一层MMD损失,Long等人提出的深适应网络则有多层MMD损失。

1.10 多模态任务

当前,数字化浪潮席卷全球,数据信息呈指数增长态势,大数据已经深刻地影响到人们的工作、学习和生活。根据人类接收数据信息的方式,我们将不同信息的来源或形式称为不同的模态。例如,不同的语言、不同类型的传感器(如雷达、红外、加速度计)、不同的媒体数据(如语音、图像、视频、文字)、不同的成像原理(如B超、CT、核磁共振)等,都可以称为不同的模态。图1.12给出了多模态数据的一个例子。

目前,在以深度学习为主的机器学习算法的推动下,人们在NLP、CV等领域的研究已经取得巨大的成功。随着单模态人工智能潜在问题的解决,研究人员意识到不同模态数据的相关性越来越强,同时更高层次的AI任务往往涉及跨多模态的更复杂的信息处理,传统的局限于单一模态的研究往往不能充分利用跨模态信息。特别地,现阶段,CV、NLP等领域的单模态任务在技术上取得突破,这为多模态任务的学习带来难得的机遇。鉴于多模态学习的重要性,本节将重点介绍近年来多模态学习任务的相关研究进展和未来研究趋势,并总结多模态学习的基本任务。考虑到数据的异构性和模态表示强弱的不一致,本节还提出了在自然语言处理领域引入多模态信息所面临的两大挑战。

图1.12 多模态数据的一个例子

多模态机器学习(Multi-Modal Machine Learning,MMML)自20世纪70年代起步,经历了人类行为多模态、多模态计算机处理、多模态互动研究、多模态深度学习4个发展阶段。早期的多模态研究的是视听语音识别。随着多媒体技术的不断发展,多模态研究开始应用于媒体内容索引和检索。21世纪初,多模态交互领域开始发展壮大,越来越多的学者开始研究人类在社交过程中的多模态行为。目前,多模态最具代表性的应用是“看图说话”,其主要任务是通过图文匹配,生成与图像对应的文本描述。近年来,深度学习研究逐渐发展起来,并取得许多重大进展,成为人工智能的一个重要分支。深度多模态学习在深度学习的浪潮下实现长足的进步并发展成为多模态机器学习的主流。目前,多模态学习的基本任务主要包括分类问题处理、多模态语义分析、视觉常识推理、跨模态匹配、跨模态检索、跨模态样本生成、多模态人机对话等。

1. 分类问题处理

单模态的分类问题关注的是对一类特定数据进行分析和处理,相较于单模态数据,多模态数据具有全面性和复杂性。2015年,浙江大学的庄越挺团队设计出一种隐含条件随机场,旨在通过研究多模态数据间的关联,学习不同模态间的潜在共享结构,挖掘与监督学习数据间的相互作用,并将之应用于分类任务。2017年,中国科学院计算技术研究所的张勇东教授等人提出利用带注意力机制的递归神经网络将文本与图像特征融合,用于虚假新闻检测。

另外,情感分析问题也可认为是分类问题。与常规分类问题不同,情感分析问题中提取的特征往往带有明确的情绪信号。从多模态的角度分析,网络社交场景中衍生的大图片、文本、表情符号、音频信息等均带有情感倾向。

2. 多模态语义分析

语义分析能够对数据进行更高层次的处理。目前,人工智能场景涉及多模态信息。计算机通过处理不同数据之间的关系和结构,来理解不同数据中隐含的高层语义。例如,语音助手需要理解语言、语音等多种信息才能与人类交流,因此必须对这些信息进行语义分析。语义理解是有效进行推理决策的前提。

3. 视觉常识推理

视觉常识推理(Visual Commonsense Reasoning,VCR)是一项极具挑战性的任务,具体包括两个子任务:一是回答用自然语言表达的视觉问题,二是解释做出的回答。目前,在视觉常识推理方面排在前两位的模型分别是百度ERNIE团队的ERNIE-ViL-large和微软D365 AI团队的ViLLA-large。

4. 跨模态匹配

跨模态匹配是较为复杂的机器学习任务,其核心在于分别对图像和文本特征进行合理的表示、编码,从而准确地度量它们的相似性。目前,最常见的跨模态信息匹配任务是图像-文本匹配,比如将图像与文本映射到相同的语义空间,然后通过距离对它们的相似度进行判断。

5. 跨模态检索

跨模态检索是跨模态匹配的升级版,除了需要实现跨模态匹配,还需要尽可能快速地实现匹配结果的准确性。通过对异构数据进行加工,在实现有效特征匹配的前提下,根据文本内容对图片进行自动检索。在多模态信息检索任务中,引用最多的是哈希算法。跨模态哈希算法通过将不同模态的高维数据映射到低维的海明空间,实现了有效减小数据存储空间并提高计算速度。目前,跨模态检索的主要问题在于图像-文本的注释平行语料库难以获得,抑或代价高昂。此外,人工注释文本与机器生成的注释文本之间存在明显的差异,如何在使用尽可能少的注释语料库的情况下,通过在少量的标注语料库上进行监督训练,并在大量的未标注语料库上进行弱监督训练,来进行有效的跨模态检索,也是一个亟待解决的问题。

6. 跨模态样本生成

跨模态样本生成旨在有效地构造多模态训练数据,提高跨模态匹配与翻译的效果。目前,由图像生成文本(如图像语义自动标注)、由图像生成图像(如图片风格迁移)的生成任务发展较为成熟,由文本生成图像的生成任务则较为新颖。最近,谷歌的研究人员推出了TRECS框架,该框架能够生成更逼真的图像以及更符合文字的描述。

7. 多模态人机对话

人机对话是人工智能面临的重要挑战。相对于传统的单一模态交互,对话主导的多模态人机交互在移动交互、自然交互方面有着更为广泛的应用潜力,如智能家居、推荐系统、商品问答、多模态语音助手、多模态导航等。对话任务在文本生成任务的基础上,进一步采集表情、语调、姿势等多模态信息进行分析和处理,输出拟人化的多模态表示,实现人机交互。多模态的对话不仅有语言交互,也有视频、图像等信息的交互。对于对话中的手势、说话时的情绪等信息,语言理解时融合多模态信息,可以使机器掌握更完整的语境信息;语言生成时融合多模态信息,可以使对话更加生动形象。例如,未来可以利用多模态导航告诉机器人“去看看办公室里有没有打印机”,机器人在理解指令的情况下,能够结合多模态信息导航、查找并返回信息。

过去,大部分的研究工作是将文本信息加入CV任务以提升效果,但是随着时代的发展,研究人员发现将其他模态引入自然语言处理领域能够帮助实现语义的“消歧”(即消除歧义)和理解,从而实现性能更好的自然语言处理模型,辅助完成NLP任务。但是,多模态学习是否适用于所有的NLP任务,如何融合不同模态的信息,是将多模态信息应用于NLP领域需要解决的两大难题。

1)必须明确哪些NLP任务需要多模态信息辅助完成。例如,2019年,Douwe Kiela等人提出了多模态(文本、图片)的双向Transformer模型,增强了自然语言处理的文本表示,用于分类任务;2020年,来自UIUC(伊利诺伊大学厄巴纳-香槟分校)和哥伦比亚大学的研究人员提出了首个全面、开源的多模态事件抽取系统GAIA,旨在使用跨模态语言(英语、俄语、乌克兰语)提取和集成知识,并将知识分为细粒度类型(实体、关系、事件提取);同年,卡内基·梅隆大学的Yansen Wang等人设计出一个基于多模态的Web开放域关键词抽取模型,并提出了一种利用多模态辅助关键词提取(key phrase extraction)任务(从给定的文档中自动提取关键词短语)的建模方法,实现了将多模态应用于NLP信息抽取任务。

另外,目前已有很多知识图谱被广泛用于处理结构化数据和文本数据(采用文本信息抽取技术)。相较于传统的知识图谱,多模态知识图谱重在构建多模态下的实体以及模态实体间的语义关系。研究人员发现,将多模态学习应用于知识图谱的表示和构建,能够使现有的模型在综合考虑文本和视觉特征的同时,获得更好的性能,达到很好的效果。清华大学的刘知远和孙茂松团队提出了一个融合实体图像的知识表示学习模型,他们创新性地在知识表示学习任务中引入图像信息,并在知识图谱补全、三元组分类等任务上取得出色的效果,证明了跨模态的知识表示能够辅助知识驱动型的任务。东南大学认知智能研究所的王萌团队重在开展多模态知识图谱构建方面的研究,通过利用多模态实体链接技术,创建了一个基于Richpedia[1]的多模态知识服务网站。

[1] Richpedia是一个全面的多模态数据集。

2)不同模态的信息如何融合?同源多模态信息和异源多模态信息是否应该具有相同的语义融合范式?如何利用模态表示、融合策略、对齐、映射、协同技术这5种不同的融合技术,结合具体的任务进行模态融合?2021年,Zhen Xu等人提出创建一个基于Transformer的通用框架来自动执行多模态数据建模,并寻找不同的模态间最佳融合策略,来正确表示并融合电子病历中不同的模态体系结构,这是将多模态学习应用于医疗领域的一大研究进展。

由于人类是在多模态环境中进行语言理解的,因此在NLP领域引入多模态信息来解决NLP相关任务,是未来NLP领域的一个重要研究方向。

1.11 对话任务

1.11.1 生成式对话

人机对话(Human-Machine Dialogue)是人机交互技术的核心,旨在让机器理解和运用自然语言以实现人机通信。不像订机票、订酒店场景中的对话那样有明确的目的,很多时候的人机对话没有目的且不属于固定语料领域,这给对话系统带来很大的挑战。相较于任务导向型对话需要准确的答案,开放域的对话更像是在做“主观题”,没有标准答案,只要符合语义语境就可以(见图1.13)。

图1.13 开放域的对话相比具体任务对话有多种选择

生成式对话系统通常是使用基于深度学习的Encoder-Decoder架构来完成的。基于深度学习的技术通常不依赖于特定的答案库或模板,而是依据从大量语料中习得的语言能力来进行对话,根据问题的内容直接生成回答的方法被定义为基于某个条件的生成模型。深度学习的Seq2Seq技术可以非常好地实现生成模型的框架,其最大的优势就是可以避免人为特征工程的端到端框架,即利用强大的计算和抽象能力自动从海量的数据源中归纳、抽取对解决问题有价值的知识和特征, 使这一过程对于问题的解决者来说透明化,从而规避人为特征工程带来的不确定性和繁重的工作量。

比较经典的基于RNN的Seq2Seq模型,所生成的对话往往比较简单,没有什么逻辑,因此Seq2Seq模型存在很多的变体来解决不同的对话生成问题。Alessandro Sordoni等人针对对话生成时上下文考虑不足的问题,使用“Seq2Seq + Context”的思路,在系统回答用户时,考虑对话历史信息,将上下文引入编码器,相当于提供了语境和一些额外信息,因而有助于解码器更好地应答会话请求的内容。Dzmitry Bahdanau等人使用“Seq2Seq + Attention”的思路,解决了解码器对最近的词语关注过度的问题,他们还利用注意力机制检测每一个输入词语的重要性。此外,有研究人员使用动态记忆网络增强了模型对上下文句子进行表征提取的能力,或是改进目的函数以降低安全语句对会话请求的影响。另有一些研究人员考虑了用户个性信息,他们构建了Speaker模型,旨在为不同用户以及同一用户针对不同的对象生成不同风格的会话。

1.11.2 任务导向型对话

与以闲聊为目的的对话有很大的不同,任务导向型对话的最终目的是完成任务,过程是循序渐进的,需要在每一轮对话中采取合适的决策,然后慢慢完成对话任务。任务导向型对话主要有两种设计方法:基于管道的方法和端到端的方法。

1. 基于管道的方法

基于管道的方法要求开发者分别实现系统的各个子模块,然后拼接这些子模块,最终形成一个完整的系统。这种方法的特点是,不同的子模块可以采取不同的技术手段来实现。图1.14给出了一次基于管道的对话的具体过程。

图1.14 一次基于管道的对话的具体过程

自然语言理解(Natural Language Understanding,NLU)模块的作用是把输入的自然语言转换为计算所能理解的形式语义,一般涉及领域分类、意图分类和语义槽填充(slot filling)。NLU模块应尽可能完整、清晰、准确地将用户输入转换为计算机所能理解的形式。例如,在用户输入“找常胜路附近的医院”后,NLU模块便首先判断出当前对话涉及的领域为“医院”,用户意图为“查找医院”,语义槽为“地点”,属性值为“常胜路”。

对话管理(Dialog Management,DM)模块是任务导向型对话系统的中枢,控制着整个对话的流程。DM模块的输入是NLU模块输出的结构化语义,作用是通过考虑历史对话信息和上下文语境信息等进行全面的分析,给出对话系统要执行的动作。DM模块由对话状态追踪模块和对话策略模块组成。

自然语言生成(Natural Language Processing,NLP)模块的作用是将DM模块输出的抽象表达转换为句法符合要求、语义准确的人类所能看懂的自然语言,转换方法有基于规则模板的方法、基于语言模型的方法和基于深度学习的方法。

2. 端到端的方法

深度学习的高速发展让端到端的对话得以实现。端到端的对话系统使用端到端模型代替了基于管道的方法中的所有模块或部分模块,根据用户不同的输入,直接产生输出。端到端的对话系统分为基于监督学习方法的对话系统、基于强化学习方法的对话系统以及基于混合学习方法的对话系统3种。图1.15给出了端到端对话的流程。

图1.15 端到端对话的流程

基于监督学习方法的对话系统需要大规模的对话数据来训练对话系统的各个部分,以此提高对话的准确率。以基于内存网络的端到端模型为例,这种模型会对历史对话进行建模,然后通过内存网络查找想要的信息。研究人员还提出了一种在完成相似词嵌入后拼接关于词的说明向量的方法,从而解决了未登录词的问题。这种端到端模型由于采用了端到端的训练方式,因此容易失去词序关系,进而丢失语义信息且难以结合知识库。另外,这种模型是基于模板检索的对话生成的,模板需要人工制定,工作量大且迁移性差。后来,基于端到端神经网络的任务导向型对话系统被提出。这种系统把对话作为从上下文信息到系统回复的映射,使用端到端方式(即根据输入直接生成输出)训练整个模型。不过,这种系统需要大量的训练数据来训练模型。

虽然基于监督学习方法的对话系统具有不错的效果,但其缺点也很明显。为此,有学者提出使用强化学习方法来构建端到端的对话系统。Zhao等人首先提出了一种长短期记忆网络的深度Q网络的变体网络,即深度循环Q网络(Deep Recurrent Q-Network,DRQN)。DRQN是一个端到端的深度强化学习框架:输入用户的问题,推断对话的内部状态,然后直接输出系统要执行的动作。DRQN把数据库的查询模板作为系统可选择的动作,对话策略可以输出对数据库进行相关搜索的动作,搜索结果则作为下一轮的输入,以便继续输出搜索结果。DRQN能够联合并优化自然语言理解模块和对话管理模块,效果优于传统的对话模型,甚至可以用于所有的数据库。但是,由于收敛需要大量的样本且需要与外部知识库交互,因此DRQN的可拓展性不足,而且不能很好地处理非精确条件下的用户输入。Dhingra等人构造了端到端的KB-Info Bot,KB-Info Bot使用“软查询”的后验分布来表示用户对知识库中实体的兴趣度,并将这种软查询和强化学习结合,以帮助用户在不使用正则表达式进行查询的前提下从知识库中获取相关信息,然后根据用户的反馈信息训练端到端的对话模型。可以看出,KB-Info Bot能够在不使用正则表达式进行查询的情况下从知识库中检索信息。

基于混合学习方法的对话系统将监督学习与深度学习或强化学习结合了起来,旨在共同构建端到端的任务导向型对话系统。William等人提出的混合编码网络(Hybrid Code Network,HCN)就是一种结合监督学习和深度学习进行优化的端到端方法。处理流程如下:首先输入用户的问题,提取实体;然后结合历史对话,将提取的实体映射为向量,作为RNN的输入(RNN作为对话管理模块,旨在结合一些领域知识、动作掩码和预定义的模式,输出系统要执行的动作);最后,根据RNN输出的动作并结合预定义的模式生成响应。以上方法结合传统的监督学习和深度学习来进行端到端的训练,只需要很少的训练数据,就可以取得与传统的端到端方法等同甚至更优的成绩,而且可以自动学习对话状态。但缺点是很多模块需要人为地进行设置,比如需要人为地设置对话状态跟踪、数据库模块以及指定动作掩码等。

当前,任务导向型对话系统的端到端方法仍面临诸多挑战。

1.12 本书结构

本书从自然语言处理的具体任务出发,介绍相关任务和技术。然后针对医疗电子病历文本进行介绍,并结合自然语言处理任务,阐述相关电子病历文本的知识抽取技术以及作者团队在这方面取得的一些研究成果。

参考文献

[1] Jurafsky D,H Martin J. 自然语言处理综述[M]. 冯志伟,孙乐,等译.北京:电子工业出版社,2005.

[2] Baeza-Yates R,Ribeiro-Net B. 现代信息检索[M]. 王加津,等译.北京:机械工业出版社,2005年.

[3] 李航.统计学习方法[M]. 2版.北京:清华大学出版社,2019.

[4] 梁南元.书面汉语自动分词综述[J]. 计算机应用与软件,1987(3): 44-50.

[5] 奉国和,郑伟.国内中文自动分词技术研究综述[J]. 图书情报工作,2011,55(2): 41-45.

[6] 唐琳,郭崇慧,陈静锋.中文分词技术研究综述[J]. 数据分析与知识发现,2020,4(Z1):1-17.

[7] 魏欧,吴健,孙玉芳.基于统计的汉语词性标注方法的分析与改进[J].软件学报,200011(4):473-480.

[8] 刘浏,王东波.命名实体识别研究综述[J]. 情报学报,2018,37(3): 329-340.

[9] 孙镇,王惠临.命名实体识别研究进展综述[J]. 现代图书情报技术,2010(6): 42-47.

[10] 赵凯琳,靳小龙,王元卓.小样本学习研究综述[J]. Journal of Software,2021,32(2).

[11] 刘建伟,丁熙浩,罗雄麟.多模态深度学习综述[J]. 计算机应用研究,2020,37(6): 1601-1614.

[12] 陈鹏,李擎,张德政,等.多模态学习方法综述[J]. 工程科学学报,2020,42(5):13.

[13] 尹奇跃,黄岩,张俊格,等.基于深度学习的跨模态检索综述[J].中国图象图形学报,2021,26(06):1368-1388.

[14] 曹均阔,陈国莲.人机对话系统[M]. 北京:电子工业出版社,2017.

[15] 俞凯,陈露,陈博,等.任务型人机对话系统中的认知技术:概念、进展及其未来[J].计算机学报,2015,38(12):2333-2348.

[16] 古桂元.基于知识驱动的人机对话系统设计与实现[D]. 北京邮电大学,2019.

[17] 魏鹏飞,曾碧,廖文雄.PPO强化学习的多智能体对话策略学习方法[J/OL].小型微型计算机系统:1-9[2021-11-26].

[18] 赵阳洋,王振宇,王佩,等.任务型对话系统研究综述[J].计算机学报,2020,43(10):1862-1896.

相关图书

自然语言处理迁移学习实战
自然语言处理迁移学习实战
Python计算机视觉和自然语言处理 开发机器人应用系统
Python计算机视觉和自然语言处理 开发机器人应用系统
文本上的算法——深入浅出自然语言处理
文本上的算法——深入浅出自然语言处理
精通Python自然语言处理
精通Python自然语言处理
Python自然语言处理
Python自然语言处理

相关文章

相关课程