首页 > 编程知识 正文

机器翻译人工翻译(四年级阅读理解)

时间:2023-05-06 14:26:05 阅读:101838 作者:892

本文转载自PaddlePaddle。

自然语言处理主要研究用自然语言实现人与计算机有效交流的各种理论和方法。基于神经网络的深度学习技术具有强大的表达能力和端到端的问题解决能力,因此在自然语言处理任务中的应用越来越广泛和有效。

最近,百度PaddlePaddle开放了语义表示模型ERNIE,在很多中文NLP任务上超越了谷歌的BERT,展示了百度在NLP技术上的领先能力。同时也表明,PaddlePaddle作为国内唯一功能齐全的深度学习平台,正在不断巩固框架能力,引领技术进步。

事实上,除了ERNIE之外,PaddlePaddle官方还有许多其他的自然语言处理模型,涵盖了各种自然语言处理任务,包括语义表示、语义匹配、阅读理解、机器翻译、语言模型、情感倾向分析、词汇分析等。

本文将对这些模型进行梳理和介绍。

00-1010知识增强语义表示模型Ernie(Enhanced presentation Through Knowledge Integration)使模型通过掩蔽词和实体等语义单元来学习完整概念的语义表示。与学习原始语言信号的BERT相比,ERNIE直接对先验语义知识单元进行建模,增强了模型的语义表示能力。

ERNIE模型本身保持基于单词特征输入的建模,使得模型在应用中不需要依赖其他信息,具有更强的通用性和可扩展性。与词特征输入模型相比,词特征可以对词的组合语义进行建模。比如在对代表红、绿、蓝等颜色的词进行建模时,我们可以通过同一个词的语义组合来学习词与词之间的语义关系。

此外,ERNIE的训练语料库引入了多源数据知识。除了百科文章的建模,我们还研究了新闻信息和论坛对话的数据。在这里,我们重点讨论论坛对话的建模。学习对话数据是语义表示的重要方式,同一回复对应的Query往往语义相似。

基于这一假设,Katherine使用DLM(对话语言模型)对查询-响应对话结构进行建模,以对话对为输入,引入对话嵌入来识别对话的erine,并使用对话响应损失来学习对话的隐含关系,通过这种方法进一步提高了模型的语义表示能力。

ERNIE对自然语言处理的各种中文任务的验证,如语言推理、语义相似度、命名实体识别、情感分析、问答匹配等。说明该模型的效果全面超越了BERT,如下表所示。

项目地址:

https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE二牛:

00-1010语义匹配是衡量文本相似度的NLP任务。许多自然语言处理任务可以转化为语义匹配问题。比如搜索可以看作查询词和文档之间的语义匹配,对话系统和智能客服可以看作问答之间的语义匹配。

PaddlePaddle正式提供了两个语义匹配相关的模型:DAM和AnyQ-SimNet。

语义表示-ERNIE

DAM是一个完全基于Attention机制的神经匹配网络。DAM的动机是在多轮对话中捕捉不同粒度的对话元素中的语义依赖,从而在多轮上下文中更好地进行回复。它可用于检索聊天机器人多轮对话中响应的选择。

DAM的灵感来自机器翻译的Transformer模型。从两个方面扩展Transformer的关键关注机制,引入统一网络。

00-1010通过添加来自单词嵌入的注意机制,逐渐捕获不同粒度的语义表示。这些多粒度语义表示有助于探索上下文和答案的语义相关性。

语义匹配-DAM,AnyQ-SimNet

贯穿了上下文和答案的注意机制,能够捕捉不同段落对的依赖关系,从而为多轮上下文匹配答案中的文本关系提供互补信息。

DAM模型网络结构

该模型在Ubuntu和豆瓣对话语料库上进行了多轮对话任务的测试,如下表所示,与其他模型相比效果最好。

三角洲坝模型效果比较

PaddlePaddle开源DAM项目提供数据accur

备、模型训练和推理等详细的应用步骤。该项目的地址为:

https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleNLP/deep_attention_matching_net

SimNet

SimNet 是百度自主研发的语义匹配框架,该框架在百度内有广泛的应用,主要包括 BOW、CNN、RNN、MM-DNN 等核心网络结构形式,同时基于该框架也集成了学术界主流的语义匹配模型。使用 SimNet 构建出的模型可以便捷的加入AnyQ系统中,增强AnyQ系统的语义匹配能力。

Paddle版本Simnet提供了BOW,CNN,LSTM及GRU四种网络实现,可以通过配置文件的形式灵活选择您需要的网络,损失函数,训练方式。

PaddlePaddle官方提供了完整的数据准备、训练和推理的相关使用方法。

SimNet项目链接:

https://github.com/baidu/AnyQ/tree/master/tools/simnet/train/paddle

阅读理解-DuReader

机器阅读理解是指让机器像人类一样阅读文本,提炼文本信息并回答相关问题。对人类而言,阅读理解是获取外部知识的一项基本且重要的能力。同样,对机器而言,机器阅读理解能力也是新一代机器人应具备的基础能力。

DuReader 是一个解决阅读理解问题的端到端模型,可以根据已给的文章段落来回答问题。模型通过双向Attention 机制捕捉问题和原文之间的交互关系,生成 Query-Aware 的原文表示,最终基于 Query-Aware 的原文表示通过 Point Network 预测答案范围。

DuReader模型在最大的中文 MRC 开放数据集——百度阅读理解数据集上,达到了当前最好效果。该数据集聚焦于回答真实世界中开放问题,相比其他数据集,它的优点包括真实的问题、真实的文章、真实的回答、真实的场景和翔实的标注。

DuReader受启发于三个经典的阅读理解模型(Bi-DAF、Match-LSTM和R-NET),是一个双向多阶段模型,共有5层:

词嵌入层——用预训练词嵌入模型将每一个词映射到一个向量上

编码层——用双向LSTM网络为每一个问题和段落的位置抽取上下文信息

Attention flow层——耦合问题和上下文向量,为上下文中的每一个词生成query-aware特征向量

Fusion层——利用双向LSTM网络捕获上下文的词之间的相互信息

解码层——通过问题的attention池化的answer point网络定位答案在段落中的位置。

Paddle Github链接:

https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleNLP/machine_reading_comprehension

机器翻译-Transformer

Transformer 最早是谷歌提出的一种用以完成机器翻译等 Seq2Seq 学习任务的一种全新网络结构,它完全使用 Attention 机制来实现序列到序列的建模,相比于以往NLP模型里使用RNN或者编码-解码结构,具有计算复杂度小、并行度高、容易学习长程依赖等优势, 整体网络结构如图1所示。

△ 图1:Transfomer模型结构

Encoder 由若干相同的 layer 堆叠组成,每个 layer 主要由多头注意力(Multi-Head Attention)和全连接的前馈(Feed-Forward)网络这两个 sub-layer 构成。

Multi-Head Attention,在这里用于实现 Self-Attention,相比于简单的 Attention 机制,其将输入进行多路线性变换后分别计算 Attention 的结果,并将所有结果拼接后再次进行线性变换作为输出。

参见图2,其中 Attention 使用的是点积(Dot-Product),并在点积后进行了 scale 的处理以避免因点积结果过大进入 softmax 的饱和区域。

Feed-Forward,网络会对序列中的每个位置进行相同的计算(Position-wise),其采用的是两次线性变换中间加以 ReLU 激活的结构。

△ 图2:多头注意力(Multi-Head Attention)

此外,每个 sub-layer 后还施以 Residual Connection 和 Layer Normalization 来促进梯度传播和模型收敛。

PaddlePaddle官方提供了该模型的数据准备、训练和推理等方法。

目前在未使用 model average 的情况下,英德翻译 base model 和 big model 八卡训练 100K 个 iteration 后测试 BLEU 值如下表所示:

Transformer 模型支持同步或者异步的分布式训练。Paddle官方提供了详细的配置方法。

Github项目地址:

https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleNLP/machine_reading_comprehension

语言模型-LSTM,GRU

RNN、LSTM和GRU是深度学习在NLP中应用的基础语言模型。

RNN模型在同一个单元中,每个时刻利用当前和之前输入,产生当前时刻的输出,能够解决一定时序的问题,但是受到短时记忆影响,很难将信息从较早的时间传到较晚的时间。LSTM通过引入门结构(forget,input,output三种门结构),能够将序列的信息一直传递下去,能够将较早的信息也引入到较晚的时间中来,从而客服短时记忆。

GRU与LSTM非常相似,但是只有两个门(update,reset),因而参数更少,结构简单,训练更简单。

Paddle提供了基于Penn Tree Bank (PTB)数据集的经典循环神经网络LSTM语言模型实现,通过学习训练数据中的序列关系,可以预测一个句子出现的的概率。

Paddle也提供了基于Penn Tree Bank (PTB)数据集的经典循环神经网络GRU语言模型实现,在LSTM模型基础上做了一些简化,保持效果基本持平的前提下,模型参数更少、速度更快。

Github链接:

https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleNLP/language_model/lstm

https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleNLP/language_model/gru

情感倾向分析-Senta

情感倾向分析针对带有主观描述的中文文本,可自动判断该文本的情感极性类别并给出相应的置信度。情感类型分为积极、消极、 中性。情感倾向分析能够帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,为企业提供有力的决策支持。

Senta 模型是目前最好的中文情感分析模型,可自动判断中文文本的情感极性类别并给出相应的置信度。它包含有以下模型:

Bow(Bag Of Words)模型— 是一个非序列模型。使用基本的全连接结构。

浅层CNN模型—是一个基础的序列模型,能够处理变长的序列输入,提取一个局部区域之内的特征。

单层GRU模型—序列模型,能够较好地解序列文本中长距离依赖的问题。

单层LSTM模型—序列模型,能够较好地解决序列文本中长距离依赖的问题。

双向LSTM模型—序列模型,通过采用双向LSTM结构,更好地捕获句子中的语义特征。百度AI平台上情感倾向分析模块采用此模型进行训练和预测。下图展示了这种模型的原理。

△ 基于Bi-LSTM的情感分类模型

总体来说,基于Bi-LSTM的情感分类模型包括三层:单词语义层,句子语义层,输出层。

单词语义层,主要是将输入文本中的每个单词转化为连续的语义向量表示,也就是单词的Embedding。句子语义层,通过Bi-LSTM网络结构,将单词语义的序列转化为整个句子的语义表示。输出层,基于句子语义计算情感倾向的概率。

在PaddlePaddle的该模型项目地址上,给出来在C-API目录下给出了bilstm_net模型的下载脚本download.sh,可供用户下载使用(模型可支持C-API、python两种预测方式),该模型在百度自建数据集上的效果分类准确率为90%。

Github项目地址:

https://github.com/baidu/Senta

中文词法分析-LAC

LAC是一个联合的词法分析模型,能够整体性地完成中文分词、词性标注、专名识别等NLP任务。LAC既可以认为是Lexical Analysis of Chinese的首字母缩写,也可以认为是LAC Analyzes Chinese的递归缩写。

中文分词 — 是将连续的自然语言文本,切分成具有语义合理性和完整性的词汇序列的过程。

词性标注(Part-of-Speech tagging 或POS tagging)— 是指为自然语言文本中的每个词汇赋予一个词性的过程。

命名实体识别(Named Entity Recognition 简称NER)— 即”专名识别”,是指识别自然语言文本中具有特定意义的实体,主要包括人名、地名、机构名、时间日期等。

LAC基于一个堆叠的双向 GRU 结构(Bi-GRU-CRF),在长文本上准确复刻了百度AI开放平台上的词法分析算法。网络结构如下图所示。

△ 用两个Bi-GRU 堆叠的Bi-GRU-CRF网络

Bi-GRU是GRU网络的一种拓展,由一个反向的GRU与一个正向的GRU耦合而成,将一个完整的句子作为。两个GRU的输入相同,但是训练方向相反。两个网络的结果拼接以后作为输出。堆叠多个Bi-GRU可以形成深度的网络,从而能够促进语义的表示能力。本模型堆叠了两层Bi-GRU。

之后,将Bi-GRU的输出连到一个全连接层。它将Bi-GRU 层的输出转为一个多维度向量,向量的维度是所有可能标签的数量。整个网络最上方,使用了CRF(条件随机场)对最后的标签做联合解码。

效果方面,分词、词性、专名识别的整体准确率95.5%;单独评估专名识别任务,F值87.1%(准确90.3,召回85.4%),总体略优于开放平台版本。在效果优化的基础上,LAC的模型简洁高效,内存开销不到100M,而速度则比百度AI开放平台提高了57%。

Github 链接:

https://github.com/baidu/lac

PaddlePaddle官方模型库Github地址

https://github.com/PaddlePaddle/models

PaddlePaddle Github项目地址:

https://github.com/PaddlePaddle

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。