NLP中文本生成任务

文本生成任务

1.生成式任务

释义: 输出Y没有预设的范围,受输入X影响

各领域应用:

  1. 在人工智能的各个领域都有,包括很多跨领域任务
  2. 图像领域:图像/视频生成, 图像补全等
  3. 语音领域:语音合成等
  4. 文本领域:机器翻译等

在NLP中,输入输出均为不定长的序列;如:机器翻译、机器作诗、自动摘要等。

2.自回归模型实现

释义: 基于语言模型和一段"引言",生成后续文本。

训练示意图: 即错位进行训练

预测时:

释义: 通过"引言" 预测出下一个字,将下一个字拼接到引言中,再次放入模型预测,反复执行,直到到达设置的停止条件,比如预测出结束符或者是达到预测文本长度。

3.Encoder-Decoder结构

简介: Encoder-Decoder结构是一种基于神经网络完成seq2seq任务的常用方案
释义: 下面是一个简单的LSTM网络的Encoder-Decoder结构

  1. Encoder:即直接将文本转化为向量,并且对其中的语义进行一定的理解,输出为向量
  2. Decoder:接收经过一定处理的Encoder信息,将其按照需要解码为对应的字符输出,这一步也会涉及对向量的信息进行一些理解。

3.1Attention机制出现


引子:

  1. 截图中可以看出,Decoder部分的解码内容,每个解码信息和前面的Encoder传递的内容关联度不一样,有的甚至没有关系。
  2. Encoder的内容和Decoder的每个实际解码内容重要性不一样,LSTM网络构成结构中,将Encoder的信息全部拿去参与Decoder就不太好。只需要拿关键的重要信息即可
  3. 找到Encoder输入的信息与Decoder的信息的重要性关联关系,这样的机制就叫注意力机制,即Attention。

举例

文本中每个词对于结果的影响是不同的,可以认为他们应当被赋予不同的权重,这种权重也可以称为attention;比如换为,意思即完全相反。

3.2Attention思想

改进版本:

释义: 改进版本后,每次计算在Decoder解码时的attention矩阵。

实现思路:

  1. Query是Decoder解码的内容,上一个解码的词,会加入到下一个词的解码中,这是LSTM的网络设计
  2. key是Encoder编码后输入到Decoder的内容,因为输入的内容在具体解码的步骤的重要性不一样,中间加入了注意力矩阵。
  3. 注意力矩阵是找出Encoder输入中,对下一个预测的重要性,该矩阵需要从Decoder上一个输入、和Encoder输入计算的来
    4.即在Decoder预测第二步的结果时,先通过Decoder第一步输出,结合Encoder输入,计算出当前权重矩阵。再将Encoder输入与权重矩阵计算,得到注意力结果,结合Decoder第一步输出,解码出第二步结果。
    5.第一步没有解码结果时,会有一个预设的编码代替。

3.3soft - Attention


注意: 这里的Value就是输入的key,即Encoder结果;其他逻辑没变。

3.4hard - Attention

注意: 相对于soft-attention,这里将计算的注意力结果更加极端,之前是a1,a2,a3,a4概率加和为1;其中比较重要的概率较大;通过one-hot即,概率大的为1;其他的为0;结果就只和某些关键信息有关。

释义: 使用部分隐向量计算attention

3.5Teacher Forcing

释义: 即每次训练数据都使用正确的内容进行训练。

详细讲解

现在有一个文本生成任务,需要通过输入x1,x2,x3;生成y1,y2,y3

训练过程如下:

第一步:s1: x1, x2, x3 ... xn, - > y1

第二步:s2: x1, x2, x3 ... xn, , y1 - > y2

第三步:s3: x1, x2, x3 ... xn, , y1, y2 -> y3
关键点: 需要第一步的预测结果,y1参与到第二步训练中,那么y1,模型能够百分比预测准吗?
不能,模型前期训练时,准确率更低

怎么办?

  1. 每一步的训练,都使用正确的内容来训练,即第一步y1预测的值,不作为第二部训练数据,第二步训练时,直接使用正确预测值参与训练。这样,第一步到第三步,都可以一起训练,效率提高;这就是Teacher Forcing;和模型预测时逻辑不一样,有信息泄露问题,但是训练材料较大时,就没有啥问题了。
  2. 训练时,第二步预测,采取第一步预测的结果,不管第一步预测结果对不对。即和模型预测时逻辑一样。

3.6详解Mask Attention

引子: 下面是一个经典的transformer的网络结构图,在右侧Decoder部分,与Encoder不同的地方在于Masked Multi-Head Attention

在实际预测中:

1.上述transformer的左侧输入信息,经过Encoder,成为K、V值,输入到右侧的Multi-Head Attention中。

2.右侧输入就是需要预测的值,第一轮输入时,即为< sos >,预测的头信息,经过Masked Multi-Head Attention计算后,成为Q值,参与到下一步的Multi-Head Attention计算,最后的到第一个预测结果

3.第一个预测结果出来后,加入到< sos > 后面,开始第二轮预测,即重复步骤2

4.从上面步骤可以得知,Masked Multi-Head Attention主要是计算预测值之间的注意力关系。

在实际训练中:

  1. 实际训练中,在右侧输入到Masked Multi-Head Attention的预测值,是完整的一句话。如果不做处理,就和预测时不一样了,预测时,前面预测的值,在预测时,是没有计算和后面值得注意力结果得。
  2. 需要将完整得预测值输入,进行批量得训练,怎么办呢?
    3.将前面预测值和后面预测值得关联关系,遮住,也就是masked的由来

下面就是Masked过程

  1. 计算出预测值之间的注意力关系时,将实际预测中,前面没有办法关注到后面预测值的注意力分数,减去一个较大的值。得到下面右侧的图。
  2. 由于实际预测中,不存在的注意力分数,即右上角的-inf,减去较大值后,较小;经过Softmax后,就得到右侧的注意力分数了。当然:实际中,是不会有0值的,可以理解经过softmax后,值会很小,这部分注意力分数几乎不影响

3.6.1通过Mask控制训练方式


释义:

  1. Bidirection LM的训练方式,代表模型是BERT
  2. Left-to-Right LM的训练方式,代表模型是GPT,相当于Decoder only
  3. Seq-to-Seq LM的训练方式,可以类比为翻译任务,根据已知的输入句子,输出一个句子,可以类比理解为原来的模型T5,相当于使用Encoder-Decoder的含义
  4. 拓展,预训练模型GPT的微调,一般就可以理解为使用的Seq-to-Seq LM的训练方式

4.生成式任务评价指标

简介: 生成式任务的评价指标和其他的任务不太一样,并且在当前的发展情况下,没有太统一的方案。

原理:

  1. 本身这个评价方法是在翻译任务中的
  2. 采用的是N-gram的方式,将翻译的内容,和标准的翻译内容,进行字词的匹配,比如1-gram、2-gram、... n-gram;
  3. 这样就得到了,机器翻译的内容,在标准内容中,是否存在,存在多少,和其预测的词梳理比,得到一个概率
  4. Wn是指采用不同的长度的词得到的概率,最后在相加时,设置的比重。
  5. BP是惩罚函数;即在机器翻译的内容比标准翻译的长度短时,举例:机器预测:of the;标准译文:Red is one of the primary colors.这种情况,按照上面的计算方式仍然是100%;所以需要有一个惩罚函数。
    6.机器预测比标准译文长,按照固有计算方式,就会降低其评价的指标。

拓展: ROUGE评价指标和上述方案类似,不做详细介绍。

5.生成式任务常见问题

1 .语言模型文本生成结果有时会出现段落不断重复的现象。

解决方案: 1.优化模型,增大模型参数,提供广泛的训练数据

2.采样策略相关参数调整

5.1采样策略

Beam Size:是指在序列标注任务中的解码路径保留条数。在生成式任务中也可以使用。

示意图:

Temperature Sampling: 输出每个字的概率分布时,通过参数T,对softmax部分做特殊处理,temperature越大,结果越随机;反之则约固定。
原理: 就是在原来的Softmax函数中,添加分母T,公式如下:由于函数的性质,往右其取值约来越陡;往左越平缓。那么就导致,T特别大时,不同的字的概率被压缩的比较小,最后导致概率接近。T特别小,则原理概率大的预测,更是被放大,不同的字之间预测的概率差距较大。

示意图:

Top-P: (动态)采样时,先按概率从高到。低排序,从累加概率不超过P的范围内选择。取值范围0-1。
详细释义: 在CRF中,当前预测值,有多个,每个预测值的概率不一样,还需要计算前面的预测值选择对当前预测值的影响,来综合选择。在这种情况下,当前预测值的词表大小是非常大的,上万,按照当前节点预测的概率,从高到低进行,进行前后文计算。前节点的预测值有高到达,选择概率和在Top-P之内的,进行前后文计算,其他的就不管了。

Top -- K: 采样从概率最高的K个字中选择,和Top-P类似,Top-P选择的K是动态的,只有K个字的概率和大于了Top-P就停止;而Top-K是指定K个。

Repetition Penalty: Frequency Penalty、Presence Penalty类似;用于限制语言模型输出重复的内容。取值范围 > 1

释义: 简单的来说,就是在模型输出,在过softmax前,将输出概率分布中,将重复内容的概率机械的减小。

示例如下:

Max Memory: 从后向前,截断送入模型文本,到指定长度。
举例 :max memory = 3
输入: abcde --> cde (被截断)

5.2指针网络-pointer-network


释义: 基于文章摘要总结的任务,通常摘要总结的内容都出现在原文中,设计指针网络,是将原文中高频的词的概率加到attention的网络的预测中,和最后预测的概率分布上,提高原文词的输出概率。

5.3T5

基于seq2seq也可进行模型预训练

bert是一个encoder

seq2seq训练可以得到encoder + decoder

代表:T5

在T5中,提出了所有的NLP任务都可以看作是生成式任务这一理念。

相关推荐
985小水博一枚呀31 分钟前
【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer
AltmanChan32 分钟前
大语言模型安全威胁
人工智能·安全·语言模型
985小水博一枚呀35 分钟前
【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer·迁移学习
数据与后端架构提升之路1 小时前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
爱技术的小伙子1 小时前
【ChatGPT】如何通过逐步提示提高ChatGPT的细节描写
人工智能·chatgpt
深度学习实战训练营2 小时前
基于CNN-RNN的影像报告生成
人工智能·深度学习
昨日之日20064 小时前
Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载
人工智能·whisper·语音识别
浮生如梦_4 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
深度学习lover4 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程