机器翻译与Seq2Seq模型

机器翻译(MT):将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问题通常称为神经机器翻译(NMT)。 主要特征:输出是单词序列而不是单个单词。 输出序列的长度可能与源序列的长度不同。

Encoder-Decoder

在这里插入图片描述
为了解决输入和输出序列长度不等的问题,机器翻译使用了Encoder-Decoder结构,Encoder将输入序列转化成语义编码,Encoder再将语义编码转化成输出序列。

Sequence to Sequence 模型

Sequence to Sequence 是一种序列转换模型,广泛地应用于机器翻译、语音识别等领域中,一般采用Encoder-Decoder结构。
在机器翻译的训练阶段,Encoder的输入是原始序列,hidden state即语义编码。Decoder是一个生成式语言模型,初始化是Encoder的hidden state。 < b o s > <bos> <bos>是开始符,作为第一个输入,结合hidden state,预测第一个单词。接下来的输入是目标序列,结合前一个神经元的hidden state,预测下一个单词,直到 < e o s > <eos> <eos>(结束符)。然后和目标序列作比较,计算损失函数。
在这里插入图片描述
在机器翻译的预测阶段,Encoder部分与训练阶段相同。由于不知道目标序列,Decoder把上一个预测的单词作为下一个神经元的输入,直到结束。
在这里插入图片描述

具体结构

在这里插入图片描述
Encoder和Decoder都可以由n层的RNN构成,RNN的输入是序列单词的词向量。dense层(全连接层)将隐藏单元映射到单词表中,选择得分最高的单词作为输出。

beam search

在Seq2Seq预测过程中,需要通过上一个预测的单词,来预测下一个词,然后再将得到的单词作为输入,预测下一个单词。这种方法效率很高,但有个问题就是它只考虑了局部最优化,没有考虑到全局最优化。如果在预测序列中有一个单词预测的不准确,那么它会影响后面所有单词的预测。
Seq2Seq在预测下一个单词过程中会得到所有单词出现的概率,一般取概率最高的单词作为输出。Beam Search如果把Beam设置为n,算法每次搜索到概率最大的n个单词,而不是一个单词。
假如词表大小为5,里面有abcde五个单词,Beam大小为2,预测到的第一个单词是c和e,单词是c时下个输出可能是ca,cb,cc,cd,ce,单词是e时,下个输出是ea,eb,ec,ed,ee,我们在这10个可能中挑到概率最大的两个组合ce和eb,依次再以e和b为输入获得10个组合可能,找到概率最大的两个组合,这就是Beam Search的基本原理。

参考:https://blog.csdn.net/wdmlovekerry/article/details/80375346

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值