小结4:机器翻译相关技术、注意力机制

机器翻译(MT):

1 定义

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

  • 数据清洗
  • 分词
  • 建立词典
  • 建立mini-batch(记得pad)

2 Encoder-Decoder

encoder:输入到隐藏状态
decoder:隐藏状态到输出
1)encoder:可以是CNN或者RNN,这里我们选用RNN实现,讲信息不断的保存在hidden节点中,进行信息的不断传递;
2)语义编码c:提取汇总信息,一般选用encoder中的最后一个隐藏节点的信息作为语义编码;
3)decoder:一般选用RNN或LSTM等神经网络实现,利用以往的信息c和前一个节点的输出预测当前节点的输出,进而实现seq2seq模型的实现:

在这里插入图片描述
在这里插入图片描述
https://blog.csdn.net/xbinworld/article/details/54605408
大致代码结构:

class Encoder(nn.Module):
    def __init__(self, **kwargs):
        super(Encoder, self).__init__(**kwargs)

    def forward(self, X, *args):
        raise NotImplementedError
class Decoder(nn.Module):
    def __init__(self, **kwargs):
        super(Decoder, self).__init__(**kwargs)

    def init_state(self, enc_outputs, *args):
        raise NotImplementedError

    def forward(self, X, state):
        raise NotImplementedError
class EncoderDecoder(nn.Module):
    def __init__(self, encoder, decoder, **kwargs):
        super(EncoderDecoder, self).__init__(**kwargs)
        self.encoder = encoder
        self.decoder = decoder

    def forward(self, enc_X, dec_X, *args):
        enc_outputs = self.encoder(enc_X, *args)
        dec_state = self.decoder.init_state(enc_outputs, *args)
        return self.decoder(dec_X, dec_state)

3 Seq2Seq

在这里插入图片描述
其中利用Embedding技术,将单词进行嵌入
同时使用LSTM网络进行训练与预测

4 Beam search

1首先说下贪婪搜索
在这里插入图片描述
每次选择预测概率最大的词,作为输入
2 束搜索
在这里插入图片描述每次选择多个

注意力机制

https://daiwk.github.io/posts/nlp-self-attention-models.html
在这里插入图片描述
点积计算方法,还有MLP等、以及自注意力

Transformer

待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值