当前位置:   article > 正文

自然语言处理(NLP)-4.1 Seq2Seq模型与机器翻译(Neural Machine Translation and Seq2Seq Models)_请简述seq2seq模型的基本原理和训练过程,并解释其在机器翻译中的应用

请简述seq2seq模型的基本原理和训练过程,并解释其在机器翻译中的应用

1.序列到序列模型(Seq2seq)

1.1 基本概念

    定义:是一类特殊的递归神经网络体系结构,通常用于解决复杂的语言问题,例如机器翻译,问答,创建聊天机器人,文本摘要等

               输入一段序列(文本),输出一段序列(文本)

       

    构成:

        编码器Encoder:内部由LSTM构成,读取输入序列,对输入信息进行解析与汇总,用于帮助解码器准确预测

        解码器Decoder:内部由LSTM构成,读入编码器的输出,用于输出序列

1.2 问题与解决方法

    信息瓶颈(The information bottleneck):

        定义:随着输入序列的长度增加,模型效果不断变差,导致无法处理很长的序列

            

        原因:由于存储单元长度固定,当句子长度大于存储单元长度时,就会出现信息瓶颈现象

            

    解决方法:

        方法1:One vector per word

            定义:将每个单词转化为向量输入给解码器,而不是一次将整个句子向量化

            

        方法2:注意力机制

            定义:使用注意力机制,对相关性大的词给予更高权重

            


2.注意力机制概述

2.1 基本原理

    直观理解:一种高效信息提取方法

        比如你在找你的钥匙,于是你问别人钥匙在哪,他告诉了你几个钥匙最可能在的地方

        这就是注意力的原理,即通过对可能位置的询问来快速找到钥匙

       

    简要原理:

        通过询问Q,遍历所有键K,对每一键K计算注意力并乘上值V,最终得到各键值对的加权结果

            

2.2 计算流程

    方法:

        (1)依次比较计算,得到与各单词的注意力

            

        (2)为高注意力的词分配高权重,提高其对结果的影响程度

            

2.3 注意力矩阵

    定义:由键(K)、询问(Q)和值(V)构成,其中列是询问(Q)行是键(K),值(V)是两者的相关度

       

    例:具有意思相近的词,其相关度大

               

    灵活注意力(Flexible attention):

        定义:不同的语言有不同的语法结构,相应词的位置不是固定的,因此注意力需要有灵活性以适应不同的语法结构,需要两两单词之间计算注意力

           

2.4 小结

    注意力层是额外加入的一层,可以让模型专注于重要的数据上

    询问Q、值V、键K,用于在注意力层中进行信息提取

    具有较强灵活性,即使翻译的两语言语法结构存在较大差异也适用

   

详细介绍:https://www.coursera.org/learn/attention-models-in-nlp/supplement/eUcOC/attention


3.机器翻译模型训练

3.1 词对齐(Word alignment)

    定义:是NLP中重要的子任务,将相同含义的词或短语对应在一起

        

    功能:

        用在机器翻译任务中

        词义探索与去歧义

        能逐步提取信息并评分

        

    计算:

        将编码器和解码器隐藏层中的信息结合得到分数,并用其更新解码器

        

3.2 数据处理

    构建训练数据:

        源语言和目标语言相同含义的句子放在一起

        

    词表示:

        (1)使用训练好的词嵌入,以取得最好的效果

        (2)或者将每个词用独热码进行表示,构建由词到编码的映射和由编码到词的映射

        (3)添加起始符和终止符

        

    向量化:

        将每个词转化为对应编码,并进行填充(padding),使各数据长度相同

        

3.3 训练

3.3.1 Teacher forcing

    定义:一种模型训练方法,通过使用正确数据指导模型,来提高训练速度与效果

       

    原理:

        允许模型的解码器(decoder)使用正确数据用于验证,进而提高训练速度与准确度

       

    流程:

        使用真实输出计算注意力,并用来更新decoder,以此提高训练效果

       

3.3.2 训练流程

    (1)输入源语言token和目标语言token

    (2)源语言token输入encoder中,计算得到K和V

        目标语言token输入decoder中,计算得到Q,在此过程中使用了teacher forcing

    (3)在得到Q、K、V后,计算得到注意力,使用mask处理paded tokens

    (4)残差层将Q加上注意力后传入下一阶段

    (5)源语言经过LSTM和全连接层进行翻译

    (6)最终将模型生成结果和真实结果比较

        

详细介绍:https://www.coursera.org/learn/attention-models-in-nlp/supplement/vyEkS/training-an-nmt-with-attention


4.模型评估

4.1 BLEU

    定义:一种评价指标,主要用于评价机器翻译的效果

       

    计算方法:待选文本中有多少n-gram出现在参考文本中 / 待选文本中n-gram个数

        例1:n=1,即BLEU-1

            "I"在参考文本中出现1次,"am"在参考文本中出现1次,因此待选文本中共有2个1-gram出现在参考文本中

            待选文本共用5个1-gram,因此其BLEU=2/5

            

        例2:

            

    缺点:

        不考虑具体语义

        不考虑句子结构

       

4.2 ROUGE

    定义:通过与人工句子比较,评价生成文本的准确度和召回率

       

    计算方法:

        召回率(Recall):参考文本中有多少文本被模型生成

        准确率(Precision):模型生成的文本有多少与参考文本相关

            

        (1)Recall计算:生成文本与参考文本相同单词数 / 参考文本总单词数

                

        (2)Precision计算:生成文本与参考文本相同单词数 / 生成文本总单词数

                

    缺点:没有考虑主题与观念信息,低ROUGE不一定意味着翻译错误

            


5.文本生成方法(Sampling and Decoding)

5.1 随机生成(Random sampling)

    定义:随机选择单词生成

    缺点:过于随机,很难准确翻译句子

    解决:给高概率词分配更高的权重,使其更容易被选中

        

5.2 贪心法生成(Greedy decoding)

    定义:每次选择概率最高的词

    缺点:局部最优不代表全局最优,即每次选择最好的词,但最终构成的句子并不好

        

5.3 容忍度(Temperature)

    定义:用于控制生成文本的随机性

               低容忍度产生的句子更准确、保守

               高容忍度产生的句子更随机、有创意,但也更容易错误

        

5.4 Beam search decoding

    定义:一种更广泛搜索的解码方法,通过在每一步中从多个分支中选择最优选项来生成文本

       

    例子:

       

    缺点:

        更难计算,需要处理大量参数

        无法处理一些语气词等无意义词

       

5.5 最小贝叶斯风险(Minimum Bayes Risk,MBR)

    定义:在多个样本中不断相互比较,最终选出最好的一项

       

    流程:以4个样本为例

        (1)计算样本1和样本2的相似度

        (2)计算样本1和样本3的相似度

        (3)计算样本1和样本4的相似度

        (4)计算前三步结果的平均值

        (5)重复上述步骤,直到任意两样本都被比较过,最后选出最好的一项

       


项目代码:https://github.com/Ogmx/Natural-Language-Processing-Specialization

可将代码与数据下载至本地,使用jupyter notebook打开

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/626222
推荐阅读
相关标签
  

闽ICP备14008679号