NLP&深度学习 DAY5:Sequence-to-sequence 模型详解

Seq2Seq(Sequence-to-Sequence)模型是一种用于处理输入和输出均为序列任务的深度学习模型。它最初被设计用于机器翻译,但后来广泛应用于其他任务,如文本摘要、对话系统、语音识别、问答系统等。


核心思想

Seq2Seq 模型的目标是将一个序列(如一句话)转换为另一个序列,例如:

  • 输入:英文句子 "Hello, how are you?"

  • 输出:法语句子 "Bonjour, comment ça va ?"


模型结构

Seq2Seq 模型通常由两部分组成:

  1. 编码器(Encoder)

    • 将输入序列(如源语言句子)编码为一个固定长度的上下文向量(Context Vector),用于捕捉输入序列的语义信息。

    • 常用循环神经网络(RNN、LSTM、GRU)或 Transformer 作为编码器。

  2. 解码器(Decoder)

    • 基于编码器生成的上下文向量,逐步生成输出序列(如目标语言句子)。

    • 解码器通常也是一个循环神经网络(或 Transformer),每一步生成一个输出词,直到生成结束符(如 <EOS>)。

首先,来简单介绍下RNN(循环神经网络)结构:

1. RNN 简介

                 

                                                                RNN结构  

RNN中,每个单元接受两个输入,一个是当前时间步输入的信息 X_{t} ,另一个是上一个单元的隐藏层状态 H_{t-1}。为什么这种结构的RNN适合用于做文本等序列型数据的任务,主要是因为隐藏状态的存在使得模型具有记忆性。针对不同的任务,根据输入和输出的数量,通常对RNN结构进行调整。

RNN的常见几种结构

1.1 N to N

该模型处理的一般是输入和输出序列长度相等的任务,如

  • 词性标注
  • 语言模型(Language Modeling)

                   

1.2 1 to N

此类结构的输入长度为1,输出长度为N,一般又可以分为两种:一种是将输入只输入到第一个神经元,另一种将输入输入到所有神经元。

一般用于以下任务:

图像生成文字,一般输入 X 为图片,输出为一段图片描述性的文字;
输入音乐类别,生成对应的音乐
根据小说(新闻情感)类别,生成对应的文字

                         

                         

1.3 N to 1

和1 to N相反,一般常见任务有:

  • 序列分类任务,如给定一段文本或语音序列,归类(情感分类,主题分类等)

              

2. Seq2Seq 模型

经过上面对几种RNN结构的分析,不难发现RNN结构大多对序列的长度比较局限,对于类似于机器翻译的任务,输入和输出长度并不对等,为N to M的结构,简单的RNN束手无策,因此便有了新的模型,Encoder-Decoder模型,也就是Seq2Seq模型。

模型一般由两部分组成:第一部分是Encoder部分,用于对输入的N长度的序列进行表征;第二部分是Decoder部分,用于将Encoder提取出的表征建立起到输出的M长度序列的映射。

2.1 编码器 Encoder 

                            

Encoder部分一般使用了普通RNN的结构。其将一个序列表征为一个定长的上下文向量c,计算方式有多种,如下:

2.2 解码器 Decoder

相对于编码器而言,解码器的结构更多,下面介绍三种:

第一种

                                     

这种结构直接Encoder得到的上下文向量作为RNN的初始隐藏状态输入到RNN结构中,后续单元不接受 c 的输入,计算公式如下:

  • 隐藏状态的更新&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值