赞
踩
之前做项目时同组大佬用到过Attention机制,Attention机制对模型能够有一定的提升作用。
人在看一张图片一篇文章时,不会对所有部分都投入同样的注意力,而是有所侧重。所谓侧重就是赋予不同的权重。
Attention是一种用于提升基于RNN(LSTM或GRU)的Encoder + Decoder模型的效果的的机制。Attention机制目前非常流行,广泛应用于机器翻译、语音识别、图像标注等很多领域,之所以它这么受欢迎,是因为Attention给模型赋予了区分辨别的能力,例如,在机器翻译、语音识别应用中,为句子中的每个词赋予不同的权重,使神经网络模型的学习变得更加灵活,同时Attention本身可以做为一种对齐关系,解释翻译输入/输出句子之间的对齐关系,解释模型到底学到了什么知识,为我们打开深度学习的黑箱,提供了一个窗口。
首先需要介绍Attention机制通常应用的场景:Encoder-Decoder:
Encoder-Decoder框架是深度学习的一种模型框架,是一个解决问题的通用框架,主要解决Seq2Seq类问题。Encoder-Decoder框架的流程可以理解为:先编码,存储,最后解码。用人脑流程来类比,先看到的是源Sequence,人脑根据自己的知识理解这个Sequence,并将理解的记忆下来,形成记忆(对应Context),这个过程叫Encoder。然后,再根据这个Context,针对不同的问题利于Context进行解答,形成答案并输出,这个过程叫Decoder。NLP的许多经典任务都可以抽象为Encode-Decoder,比如:机器翻译、文本摘要、阅读理解及语音识别等。模型的框架如下图所示:
在seq2seq模型中经常会遇到以下问题:
HAN就是多层注意力模型,示意图如下:
利用了两次Attention机制,一层基于词,一层基于句。
首先是词层面:
输入采用word2vec形成基本语料向量后,采用双向GRU抽特征:
一句话中的词对于当前分类的重要性不同,采用attention机制实现如下:
参考:https://github.com/zhaowei555/multi_label_classify/blob/master/han/han.py
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。