1.attention干什么的
attention模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但是在我们深入仔细地观察时,其实眼睛聚焦的就只有很小的一块,这个时候人的大脑主要关注在这一小块图案上,也就是说这个时候人脑对整幅图的关注并不是均衡的,是有一定的权重区分的。这就是深度学习里的Attention Model的核心思想。
2.attention原理
我们在翻译machine的时候主要想关心机器而不是学习。
因为attention其实就是一个当前的输入与输出的匹配度,在上文中就是h1和z0的匹配度,其中的match为计算这两个向量的匹配度的模块,出来的α10即为由match算出来的相似度。(这里的相似度可以用很多比如余弦相似度)
3.HAN原理
层级“注意力”网络的网络结构如图1所示,网络可以被看作为两部分,第一部分为词“注意”部分,另一部分为句“注意”部分。整个网络通过将一个句子分割为几部分(例如可以用“,”讲一句话分为几个小句子),对于每部分,都使用双向RNN结合“注意力”机制将小句子映射为一个向量,然后对于映射得到的一组序列向量,我们再通过一层双向RNN结合“注意力”机制实现对文本的分类。
简而言之,就是一个文本而言,重要的词构成句子,重要的句子构成文本,那么就可以找出文本的意思了,那么就可以进行分类
4.attention模型进行分类
def _attention(self, query, attn_states):
conv2d = nn_ops.conv2d
reduce_sum = math_ops.reduce_sum
softmax = nn_ops.softmax
tanh = math_ops.tanh
with vs.variable_scope