赞
踩
定义:是一类特殊的递归神经网络体系结构,通常用于解决复杂的语言问题,例如机器翻译,问答,创建聊天机器人,文本摘要等
输入一段序列(文本),输出一段序列(文本)
构成:
编码器Encoder:内部由LSTM构成,读取输入序列,对输入信息进行解析与汇总,用于帮助解码器准确预测
解码器Decoder:内部由LSTM构成,读入编码器的输出,用于输出序列
信息瓶颈(The information bottleneck):
定义:随着输入序列的长度增加,模型效果不断变差,导致无法处理很长的序列
原因:由于存储单元长度固定,当句子长度大于存储单元长度时,就会出现信息瓶颈现象
解决方法:
方法1:One vector per word
定义:将每个单词转化为向量输入给解码器,而不是一次将整个句子向量化
方法2:注意力机制
定义:使用注意力机制,对相关性大的词给予更高权重
直观理解:一种高效信息提取方法
比如你在找你的钥匙,于是你问别人钥匙在哪,他告诉了你几个钥匙最可能在的地方
这就是注意力的原理,即通过对可能位置的询问来快速找到钥匙
简要原理:
通过询问Q,遍历所有键K,对每一键K计算注意力并乘上值V,最终得到各键值对的加权结果
方法:
(1)依次比较计算,得到与各单词的注意力
(2)为高注意力的词分配高权重,提高其对结果的影响程度
定义:由键(K)、询问(Q)和值(V)构成,其中列是询问(Q)行是键(K),值(V)是两者的相关度
例:具有意思相近的词,其相关度大
灵活注意力(Flexible attention):
定义:不同的语言有不同的语法结构,相应词的位置不是固定的,因此注意力需要有灵活性以适应不同的语法结构,需要两两单词之间计算注意力
注意力层是额外加入的一层,可以让模型专注于重要的数据上
询问Q、值V、键K,用于在注意力层中进行信息提取
具有较强灵活性,即使翻译的两语言语法结构存在较大差异也适用
详细介绍:https://www.coursera.org/learn/attention-models-in-nlp/supplement/eUcOC/attention
定义:是NLP中重要的子任务,将相同含义的词或短语对应在一起
功能:
用在机器翻译任务中
词义探索与去歧义
能逐步提取信息并评分
计算:
将编码器和解码器隐藏层中的信息结合得到分数,并用其更新解码器
构建训练数据:
源语言和目标语言相同含义的句子放在一起
词表示:
(1)使用训练好的词嵌入,以取得最好的效果
(2)或者将每个词用独热码进行表示,构建由词到编码的映射和由编码到词的映射
(3)添加起始符和终止符
向量化:
将每个词转化为对应编码,并进行填充(padding),使各数据长度相同
定义:一种模型训练方法,通过使用正确数据指导模型,来提高训练速度与效果
原理:
允许模型的解码器(decoder)使用正确数据用于验证,进而提高训练速度与准确度
流程:
使用真实输出计算注意力,并用来更新decoder,以此提高训练效果
(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)最终将模型生成结果和真实结果比较
定义:一种评价指标,主要用于评价机器翻译的效果
计算方法:待选文本中有多少n-gram出现在参考文本中 / 待选文本中n-gram个数
例1:n=1,即BLEU-1
"I"在参考文本中出现1次,"am"在参考文本中出现1次,因此待选文本中共有2个1-gram出现在参考文本中
待选文本共用5个1-gram,因此其BLEU=2/5
例2:
缺点:
不考虑具体语义
不考虑句子结构
定义:通过与人工句子比较,评价生成文本的准确度和召回率
计算方法:
召回率(Recall):参考文本中有多少文本被模型生成
准确率(Precision):模型生成的文本有多少与参考文本相关
(1)Recall计算:生成文本与参考文本相同单词数 / 参考文本总单词数
(2)Precision计算:生成文本与参考文本相同单词数 / 生成文本总单词数
缺点:没有考虑主题与观念信息,低ROUGE不一定意味着翻译错误
定义:随机选择单词生成
缺点:过于随机,很难准确翻译句子
解决:给高概率词分配更高的权重,使其更容易被选中
定义:每次选择概率最高的词
缺点:局部最优不代表全局最优,即每次选择最好的词,但最终构成的句子并不好
定义:用于控制生成文本的随机性
低容忍度产生的句子更准确、保守
高容忍度产生的句子更随机、有创意,但也更容易错误
定义:一种更广泛搜索的解码方法,通过在每一步中从多个分支中选择最优选项来生成文本
例子:
缺点:
更难计算,需要处理大量参数
无法处理一些语气词等无意义词
定义:在多个样本中不断相互比较,最终选出最好的一项
流程:以4个样本为例
(1)计算样本1和样本2的相似度
(2)计算样本1和样本3的相似度
(3)计算样本1和样本4的相似度
(4)计算前三步结果的平均值
(5)重复上述步骤,直到任意两样本都被比较过,最后选出最好的一项
项目代码:https://github.com/Ogmx/Natural-Language-Processing-Specialization
可将代码与数据下载至本地,使用jupyter notebook打开
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。