周明博士
创新工场首席科学家、澜舟科技创始人
中国计算机学会副理事长、国际计算语言学会原主席
本文根据周明博士日前给北京大学中文系研究生所作的讲座简化而成,目的是提供一个神经网络NLP的科普读物。读者只要用20分钟时间阅读本文,就可以快速理解神经网络自然语言处理技术的主要技术。
引言
这几年人工智能在感知智能方面进展迅速。而我们今天看到的一个明显趋势是AI正由感知智能快速向认知智能迈进。AI正在从能说会看,走到能思考、回答问题,走到决策和推理。认知智能的应用例子比比皆是。例如,达到了接近人类水准的机器翻译已经在手机和桌面普遍使用,聊天机器人几乎可以通过图灵测试,搜索引擎得益于阅读理解以及预训练模型,搜索相关度大幅度提升,自动客服系统已经普及,知识图谱在金融等领域得到快速应用。都在推动产业发展。从大数据,到建立信息检索,到建立知识图谱,实现知识推理,到发现趋势,形成观点和洞见。AI正在深刻推动产业的发展。本文试图深入浅出地简要介绍认知智能的核心技术--神经自然语言处理(NLP)的最基本的技术。
01
神经NLP的基本技术
    神经NLP建立在神经网络的基础之上。神经网络因为和大脑中的神经元网络结构相似而得名,它的本质是一种计算模型,通过对输入层进行若干个隐含层的非线性变化,最终在输出层输出预测。
    为了训练一个神经网络,我们需要准备一个规模适当的训练集(输入-结果对)进行学习。首先从训练集合中随机取出一个输入-结果对(如下图中输入为(x0, x1),结果为ŷ ),据网络逐层计算得到输出(y)。然后与标准答案相比,计算损失(E)。接下来通过一个反向传播过程修正神经网络的各层参数。这个过程持续进行直到损失或者错误率低于某一个阈值或者训练次数达到某一个阈值。
    对神经网络有了基本了解,接下来就可以学习神经网络NLP了。以下四个技术循序渐进地构成了神经NLP的核心:
  1. 词的编码(词的语义表达);
  2. 句子的编码(句子的语义表达);
  3. 编码-解码(把一个输入句子进行编码,然后再解码生成另外一个句子。比如机器翻译)目前常用的是Transformer技术;
  4. 预训练-微调技术。具体做一个NLP任务时的简单的方法。
1、词的编码(也称词的表示)。
所谓词的编码就是用一个多维向量表征一个词的语义,我们希望意义相近的词的表示在多维语义空间也接近。所谓“观其伴知其意”, 一个词的语义可以用其上下文的词汇来定义——同时这也意味着为了获得一个词的语义表示,需要有一个大型的语料库。
这里介绍Word2Vec的方法:通过设计一个简单的神经网络,用周围的词来预测当前词,接着根据损失来调整网络;经过大规模的语料库的多轮训练,最终可得到每一个词的词义表示。
2、句子的编码。
有了词的表示,就可以进一步得到句子的表示。句子的表示可以通过循环神经网络(RNN)实现,其每一个词汇对应一个隐状态,表示从句首到目前词位置的信息。可以认为最后一个词对应的隐状态是句子的表示。此外也可以用卷积神经网络表示。这里不再赘述。
3、编码-解码技术。
编码-解码技术就是把一个输入句子(片段)变换为一个输出句子(片段)。比如机器翻译是把一种语言变换到另外一种语言。Transformer是现有的编码和解码主流技术。它引入了自注意力机制,避免信息丢失的同时也可以并行计算。而且引入多头注意力模型可以捕捉不同角度的特征信息。
4、预训练模型。
预训练-微调技术是指通过自监督学习机制从语料库学习与任务正交的知识,然后再用某一具体任务的标注数据对神经网络进行微调。其中预训练步骤获得一个与具体任务正交(就是无关)的预训练模型。第二个步骤是微调,即针对具体任务修正网络。预训练模型的训练使用自监督学习技术(就是不需要进行人工的数据标注),可以训练单语言、多语言和多模态的模型。
为什么要做预训练模型
首先预训练模型是一种迁移学习的应用,利用几乎无限的文本,学习到了输入序列中每一个成员上下文相关的表示以及整体的输入序列的表示,隐式嵌入了一般语言知识。其次,它可以将从开放领域学到的知识转移到下游任务,增强了低资源任务和低资源语言任务。从结果上看,预训练模型在几乎所有 NLP 任务中都取得了目前最佳的成果。最后,预训练模型+微调机制具备很好的可扩展性,在支持一个新任务的时候,只需要利用该任务的标注数据进行微调即可,无需对任务本身的领域知识进行新的训练。 
    当前在预训练模型领域较为关注的研究重点包括:如何训练超大规模参数的模型,对已有模型架构的创新性研究、获得更加有效的训练方法和训练加速的方法。还有就是简化微调的步骤比如像GPT-3用一套提示机制来统一所有下游任务的微调。除此之外,多模态预训练模型和推理的加速方法也是目前的研究焦点。
02
神经NLP的有趣应用
 1、语义分析。把一个自然语言的语句基于一个知识图谱获得其对应的语义表示。涉及到单句,或者上下文有关的句子的分析。
2、信息抽取:把一个无结构的句子或者文本抽取重要的信息。比如时间、地点、人物、事件等等。
3、自动文摘:把重要的信息从单文档、多文档或者长句子抽取出来。
4、机器翻译:中英文翻译等。在有足够双语语料训练的场合,神经机器翻译基本达到了人类翻译的水准。
5、对联系统。输入上联,自动得到下联,和横批。比如当年流行的微软对联。
6、猜谜语。给定谜面得到谜底并且给出理由。给定一个图片,生成一首自由体诗。小冰写诗。
7、歌词生成。把关键词作为输入(图片也可以作为输入,可以对图片进行识别,得到图片中的关键信息),可以对关键词进行适当扩展(同义词、相关词等等),然后使用以上介绍的编码-解码技术,来生成第一句歌词。然后使用第一句歌词作为输入,得到第二句的输出。以此类推。如果经AI配上旋律,电脑就可以唱出这首歌来。
8新兴的搜索引擎和推荐系统。把预训练模型引入搜索引擎和推荐系统,大幅度提升了搜索和推荐能力。
03
未来发展

    神经NLP虽然取得很大进展,但是仍然缺乏常识和推理能力。对于有些人可以轻松回答的问题,而机器人则还不行。AI在多轮对话的能力尤其薄弱。它不能很好地记忆以前做过的事情,导致时间、空间和逻辑的矛盾。除此之外AI是一个黑箱系统,给一个输入,系统产生一个输出,但是结果却不可解释。未来我们还需要许多算法解决若干重要问题,包括神经网络系统和知识系统的融合,研究更好的小样本学习机理,常识的激活和建立,可解释机制等等。
澜舟科技
澜舟科技是一家认知智能公司,针对商业场景数字化转型、以自然语言处理为基础提供商业洞见类产品。主要产品包括基于预训练模型的功能引擎(包括搜索、生成、翻译、对话等)和针对垂直行业场景的 SaaS 产品。我们最近开源了分析、生成、多模态和金融的预训练模型,供大家自由使用。
你如果想快速学习神经网络NLP,可访问澜舟科技的官网langboat.com,其中有一个NLP学院,利用它所提供了最便捷的学习材料,您可以非常容易地上手。
孟子预训练模型开源项目
澜舟科技已将孟子中文预训练系列模型开源!全面覆盖文本理解、文本生成、金融、多模态等不同技术应用领域。希望与开源社区一起让新一代文本智能技术落地各行各业,推动下一波认知智能生产力进化的浪潮。
扫码加入孟子开源社区微信群
直接访问开源项目地址
https://github.com/Langboat/Mengzi
访问澜舟科技官方网站
https://langboat.com

继续阅读
阅读原文