Seq2Seq模型细节理解

Seq2Seq模型是一种基于encoder-decoder的机器翻译方法,广泛应用于语音识别、机器翻译等领域。模型由两个RNN组成,encoder编码输入序列,decoder生成输出序列。随着输入序列增长,encoder难以存储所有上下文,导致性能下降。为解决此问题,引入了Attention Mechanism,允许decoder在解码时关注输入序列的特定部分,提高模型性能。
摘要由CSDN通过智能技术生成

1. Seq2seq model

1.1 什么是Seq2Seq模型

  Seq2Seq模型是一种基于encoder-decoder的机器翻译方法。该方法将可变长度的输入序列映射到另一长度的输出序列,两个序列长度可以不相等。

1.2 应用领域范围

  • 语音识别与产生(Speech Recognition and Speech Generation)
  • 机器语言翻译(Machine Language Translation)
  • 聊天机器人(Chatbot)
  • 智能问答(Smart Q & A)
  • 名称实体/主题提取(Name entity/Subject extraction)
  • 关系分类(Relation Classification)
  • 路径查询回答(Path Query Answering)
  • 文字摘要(Text Summarization)
  • 产品销售预测(Product Sales Forecasting),等等。

1.3 工作原理

  Seq2Seq模型由两个RNNs组成:encoder和decoder。Encoder接收输入序列(句子),在每一个时间步骤处理一个符号(词语)。最终转换成一个固定长度的特征向量(context vector)。在这个过程中,encoder将会编码序列中重要的信息而丢失掉那些不那么重要的信息。context vector可以视为整个输入序列的信息总结。Decoder逐步生成另一个输出序列,在每个时间步骤产生一个输出符号(词语)。Decoder初始化的时候,接收上一时刻的隐藏状态(context vector)和 < G O > <GO> <GO>分词特殊符号(开始decoding的标志)。以后每一时间步骤接收上一时刻的隐藏状态和符号(词语)输出。具体流程如下:

1.输入序列在输入到encoder之前,进行Embedding处理:word2id+embedding。
2.编码整个输入序列:每一个时间步骤输入一个token,同时产生一个隐藏状态作为下一个时间步骤的隐藏状态输入。最终得到固定长度的context vector。
3.初始化decoder:context vector作为初始隐藏状态 + < G o > <Go> <Go> token作为初始输入。
4.decoder运行,每一个时间步骤产生隐藏状态和一个输出。输出是下一个词语出现的概率。选择最大的概率,经过Embedding+id2word,输出最终的词语。
5.把步骤4得到的上一时刻的隐藏状态和最大概率词语向量做为这一时刻的输入,运行这一时刻的decoder。
6.重复步骤4和5,直到生成 < E O S > <EOS> <EOS> token或达到目标序列的最大长度。
至此,Seq2Seq模型运行完毕。

(1)输入到模型的序列长度都一样,对于不同长度的序列,使用padding补上不足的部分。其中,使用到的特殊符号意义如下:
< E O S > <EOS> <EOS>:End of sentence
< P A D > <PAD> <PAD>:Filler
< G O > <GO> <GO>:Start decoding
< U N K > <UNK> <UNK>:Unknown; word not in vocabulary
假设输入序列的输入长度为10,以如下智能问答为例:
Q: How are you ? ===> [ P A D , P A D , P A D , P A D , P A D , P A D , “ ? ” , “ y o u ” , “ a r e ” , “ H o w ” ] [ PAD, PAD, PAD, PAD, PAD, PAD, “?”, “you”, “are”, “How” ] [PAD,PAD,PAD,PAD,PAD,PAD,?,you,are,How]
A: I am fine. ===> [ G O , “ I ” , “ a m ” , “ f i n e ”

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值