【自然语言处理】:seq2seq当中的Attention注意力机制

技术【自然语言处理】:seq2seq当中的Attention注意力机制 【自然语言处理】:seq2seq当中的Attention注意力机制一.seq2seq机制
传统的seq2seq机制在语言翻译当中使

【自然语言处理】:seq2seq中的注意机制。

一.seq2seq机制

传统的seq2seq机制在语言翻译中使用了两个rnn,一个是编码器,对语言进行编码,另一个是解码器,对我们获得的语言代码进行解码。在解码的过程中,我们可以把我们的语言翻译成另一种语言。其机制如下:

当然,有了这个机制,也会出现一些问题。比如一个隐藏层需要捕捉整个句子的所有信息,但实际上,我们面前的一些信息可能会被省略。同样,一些本应更重要的信息可能不会被模型认为是重要的。

比如输入的英文句子是:Tom chase Jerry,目标翻译结果是:Tom Chase Jerry。在没有注意机制的模型中,该模型认为汤姆的翻译受到汤姆、蔡斯和杰瑞相同权重的影响。但其实不应该这样对待。单词Tom受输入单词Tom的影响应该最大,而其他输入单词的影响应该很小。显然,在不考虑注意机制的编码器-解码器模型中,这种不同输入的重要性并不反映处理,这通常被称为分心模型.

因此,我们引入注意力机制,即注意力,来改变这种情况。

二.Attention注意力机制的原理

你只需要注意杨丽坤的名言。让我们来看看注意力机制是如何实现的。首先,我们将解码器第一隐藏层的值乘以编码器的每个值,即点积,得到一个关注度分数。如下图所示:

然后我们使用softmax得到这些点积结果的概率分布。众所周知,softmax得到的概率之和只有1。使用softmax后的概率分布在这里称为注意力分布。我们找到了第一个编码器单元通过softmax后注意力得分的概率。说明目前我们的注意力集中在第一个编码器单元上。机器的主要注意力是翻译当前单位对应的单词。

然后我们用加权和计算当前编码器的隐藏状态作为我们的注意力输出,并形成一个向量。就是注意力分配的结果应该转化为一个向量。

然后,我们用注意力作用的解码器拼接这个向量,并使用这个拼接结果来计算我们最终的翻译结果。

最后,使用刚才的结果作为我们第二个隐藏层的输入(通常可以这样做)。然后,第二次关注之后,我们两个隐藏层的预测结果就是:命中。然后依次重复这个过程,得到我们最终的翻译结果。

最后,我们总结了注意机制。

其中,我们的隐藏状态或隐藏层可以称为h1、h2.然后我们可以通过点积得到我们的注意力分数。

把这个et放到softmax函数中,得到关注度分布:at。我们用这个at来计算加权和,这个权重就是我们隐藏状态(层)的一个权重(最后恍然大悟,知道这个加权和是怎么来的了!)

最后组合拼接(左右拼接,不上下拼接),得到我们的预测值!具体公式如下图所示:

,

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/48881.html

(0)

相关推荐

  • postman中form-data在java中怎么实现(postman怎么传string数组)

    技术postman怎么实现传递ArrayList 给后台小编给大家分享一下postman怎么实现传递ArrayList 给后台,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!postman 传递 Arra

    攻略 2021年12月18日
  • 亲核取代反应,二甲基胺与氯丙烯亲核取代

    技术亲核取代反应,二甲基胺与氯丙烯亲核取代二甲胺与氯丙烯在氢氧化钠的存在下反应得到二甲基二烯丙基氯化铵(简称DMDAAC),总的反应方程式如下亲核取代反应:2CH2=CHCH2Cl+2(CH3)2NH+NaOH→(CH2

    生活 2021年10月21日
  • nodejs中的fs模块中的方法

    技术nodejs中的fs模块中的方法 nodejs中的fs模块中的方法nodejs中的fs模块
    引入模块
    const fs =require("fs")检测文件是否存在fs.stat(path,call

    礼包 2021年12月2日
  • Python中怎么使用Pandas实现数据清洗后的数据整合

    技术Python中怎么使用Pandas实现数据清洗后的数据整合这篇文章主要讲解了“Python中怎么使用Pandas实现数据清洗后的数据整合”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一

    攻略 2021年11月25日
  • Elasticsearch中如何进行Match查询

    技术Elasticsearch中如何进行Match查询Elasticsearch中如何进行Match查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如

    攻略 2021年11月16日
  • Java处理Exception的方法有哪些

    技术Java处理Exception的方法有哪些这篇文章主要讲解了“Java处理Exception的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java处理Ex

    攻略 2021年11月30日