attention 机制入门

本文介绍了Attention机制在NLP中的应用,特别是在神经网络机器翻译(NMT)中的作用。Attention机制使得decoder可以根据需要关注输入序列的不同部分,解决了seq2seq模型中固定长度向量表示的局限性。通过计算单词的语境向量和权重,确定输入句子中哪些部分对输出更重要。文章引用了相关论文,并提供了seq2seq模型的keras实现链接,适合想深入了解和实践Attention机制的读者。
摘要由CSDN通过智能技术生成

在下面这两篇文章中都有提到 attention 机制:

使聊天机器人的对话更有营养
如何自动生成文本摘要

今天来看看 attention 是什么。

下面这篇论文算是在NLP中第一个使用attention机制的工作。他们把attention机制用到了神经网络机器翻译(NMT)上,NMT其实就是一个典型的sequence to sequence模型,也就是一个encoder to decoder模型
https://arxiv.org/pdf/1409.0473.pdf

encoder 里面用的是 Bi RNN,这样每个单词的表达不仅能包含前一个单词的信息,还可以包含后一个; 前向RNN按输入序列的顺序,生成同样顺序的隐藏层状态,反向RNN则逆向生成隐藏层状态序列,然后我们将每个时刻的这两个状态合并为一个状态,这样它就既包含当前单词的前一个单词信息,也包含后一个信息; 这个状态之后将被用于 decoder 部分。

这里的条件概率是这样的,

和一般的encoder decoder区别就是这个条件概率考虑了每个单词的语境向量 c

c 就是由前面得到的 h 计算

权重 alpha 由 e 计算,alpha i j 相当于 y i 是由 x j 翻译而成的概率,这个概率就反映了 hj 的重要性

这里就应用了 attention 机制,这样 decoder 就决定了输入句子中的什么部分需要加以注意

有了注意力机制就不用把所有的输入信息都转化到一个固定长度的向量中

e 是个 score,用来评价 j 时刻的输入和 i 时刻的输出之间的匹配程度,

a 是一个 alignment midel,是一个前向神经网络。

这篇文章中有 seq2seq+attention 的实现:

[seq2seq 的 keras 实现](http://www.jianshu.com/p/c294e4cb4070)


推荐 阅读原文
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值