Attention mechanism中,给输入序列中对应的每一个Ht分配权重(打分)究竟是怎样打分
(本问题相关背景阅读可戳这里:Attention based model 是什么,它解决了什么问题? )注意机制的具体实现方式可以有很多种,所以最开始那篇文章很抽象地写了一个a(s, h),然后说他们的a就取了个前馈网就过去了;这里的a在一般的应用场景里没有必要取得太复杂,题主后面列出来的w\u0026#39;tanh(Ws+Vh+b)也算是这个前馈网络的一种最常见的实现方法(此处w,W,V,b为待学习参数)。说白了其实就是把当前状态s_{i-1}和编码端信息h的关系套一个参数化黑箱(比如前面那个简单的一层非线性前馈网络),再给产生的得分套一个softmax,然后根据输出和答案之间的损失,通过反向传播去学习这个黑箱的参数(例如上面的w,W,V,b),从而使得这个黑箱函数a(.)可以捕捉到s和h的关系。或许直觉上更容易理解一些的做法是a(s,h) = similarity_W(s,h)或s\u0026#39;Wh(双线性),这样学出来的函数可以直接反映当前状态s和编码端信息h的某种相似度;解码部分产生输出的时候会随时根据当前隐状态信息s,去编码器端找尽可能和s相似的h,把更多注意力放在它们上面。不同作者可能偏好使用不同的实现方式,它们最后在性能上可能差异并不大,不过目前还没看到比较系统的比较。p.s. 不确定题主说的“这两个参数”指的是什么;s和h并不是要学习的参数……参数在函数a(.)里面
■网友
最近刚好看了这篇文章,这篇文章很多细节作者都给了一个参考文献一笔带过。
这篇文章讲的是用框架RNN Encoder Decoder,结合attention机制去完成机器翻译。Encoder-Decoder这个框架想必都比较清楚,而RNN Encoder Decoder则是在Encoder、Decoder的过程使用RNN,具体框架我按文中的公式整理了一个图:
h和s其实是Encoder-Decoder过程中使用RNN计算得到的隐含层向量。
上面的图是传统的模型,这篇文章用Attention机制修改了c.
Attention机制中公式
定义的是(文章中给出的解释)第j个输入(hj)和第i个输出的匹配评分。(其实在翻译中主要是为了处理类似China和中国的对应,希望在China与中 和 China与国 的匹配评分都比较高)。
这样eij表示的是输入j与输出i之间的匹配得分,这样aij就可以表示给定给定输入j,翻译输出为i的概率。(输入的是source words,输出的是target words)
而ci表示attention计算得到的向量,也就是decoder的输入。Ci的含义可以理解为当前预测词yi的context,是yi的预测与source sentence那一部分相关联。(如将“I love China”翻译为“我爱中国”,China其实和“中国”相关联,即China的预测过程需要“中国”出席(attend))。
接下来的decoder过程的输入就是ci,y_{i-1}, s_{i-1}了,最终得到输出yi(从而得到预测词)。
【Attention mechanism中,给输入序列中对应的每一个Ht分配权重(打分)究竟是怎样打分】 关于如何打分,在训练过程中训练数据表示连贯的"中” “国"和“China”匹配分数很高,在负反馈的过程中相关的权重便得以更新,以后这批语料就可以用上述得到的attention模型配合训练的权重完成打分。
推荐阅读
- 江苏■1月4日江苏新增境外输入新冠肺炎确诊病例1例
- 李兰娟:国外疫情持续蔓延,严防输入是当下最重要任务
- 重庆彭水县境外输入无症状感染者的密接者均为阴性
- 病例■连云港通报8日新增1例境外输入新冠肺炎确诊病例详情
- 江苏■12月8日江苏新增境外输入新冠肺炎确诊病例1例
- 广州同一入境航班检出2例输入性恶性疟个案
- python 爬虫,咋获得输入验证码之后的搜索结果
- 广东新增确诊病例3例、无症状感染者1例,均为境外输入
- 新冠肺炎|轨迹公布!深圳今新增输入病例 为港籍司机 曾5次核酸阴性
- 为啥Apple Store充值不能随意输入金额而是分为几个档次充值
