HAN模型理解2
Hierarchical Attention Networks for Document Classification 论文的理解
在论文的摘要中,它提出了论文的两个特点。第一个就是对应文章所有具有的分层结构,这个模型采取了相应的分层结构。这个文章的分层结构怎么理解呢?
文章是具有分层结构的,单词构成了句子,句子构成了文章。根据这个结构,HAN提出了在表示文章的时候,先是在第一层得到句子的表示,然后在第二层得到文章的表示。(这句话
可能有点费解,这个结构在第一层使用的是单词向量,所以在第一层最后得到的就是一个句子的表示结果,在第二层,我们输入的是句子的表示向量,得到的第二层结果就是文章的表示向量)。
第二个特点就是这个模型在单词和句子两个层次上都应用了相应的attention原理。这个attention原理本质是提取出句子中重要单词和文章中重要的句子。
所以这个机制对于文章内容的精确表示起到了很重要的特征。
为什么我们要根据这个文章的结构,而在HAN中使用相应的结构和attention原理呢?我们在想一个论文的创新点的时候,初衷一定是这个创新点能够让我们的神经网络结构可以在精准度上得到提升。
那么在HAN中使用和文章相对应的结构,一定是能够对结果产生不错的效果。我们从直觉上去感受一下这个创新的地方。从生活常识中,我们知道,如果在情感分类短文本任务中,一个句子中
能够表达情感观点的就是最重要的那么几个词,而不是整整一句话。那么对于一个文章,最重要的并不是全部的句子,而是就那么几个句子(不同文章可能数量不一样)。
还有一点就是相同的单词在不同的句子中肯定有着不同的意思,表现不同的情感。用的最多的一个极端例子就是,苹果这个词,既可以是个水果,也可以是个品牌。
那么相对应的我们可以想到,同一个句子在不同文章中肯定也有不同的表现。
上面所说的,就是我们为什么在HAN中,使用分层结构加上attention原理。总结就是说,分层结构,让我们从本质上把握这个文章(从单词出发,经过句子,最后来到全局角度,也就是文章)。attention机制,是让我们把握住句子中
重要的单词和文章中重要的句子。这个机制会自动的让神经网络依据单词的上下文和文章的上下文,找到重要的单词和重要的句子。
具体到HAN模型,可以看一下图片。
简单讲,它可以由四部分组成: 一个处于单词层面的编码器,一个处于单词层面的attention层,一个处于句子层面的编码器,一个处于句子层面的attention层。
对于编码器来讲,在这里使用的是双层GRU
对于attention来说,假设我们文章有L个句子\(s_i\) ,而且每个句子包含有\(T_i\)个单词。对于\(w_{it}\)这个符号,它代表的是第i个句子中的第t个单词,其中t的取值范围是[1,T]
如何构建文档向量
HAN模型理解2的更多相关文章
- HAN模型理解1
HAN 模型 最开始看这个模型是看的这个解释: RNN+Attention(HAN) 文本分类 阅读笔记 - 今天做作业没的文章 - 知乎 https://zhuanlan.zhihu.com/p/4 ...
- caffe_手写数字识别Lenet模型理解
这两天看了Lenet的模型理解,很简单的手写数字CNN网络,90年代美国用它来识别钞票,准确率还是很高的,所以它也是一个很经典的模型.而且学习这个模型也有助于我们理解更大的网络比如Imagenet等等 ...
- border,padding,margin盒模型理解
安静的敲着键盘,已势不可挡的姿势逼近php,我想我是一个幸福的人,未来不可期,做好现在,偶尔写着自己能看懂的API,慢慢悠悠的回味一下前端基础知识. 本文盒模型理解. <!DOCTYPE htm ...
- css 盒子模型理解
盒子模型是html+css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局.下面是自己积累和总结的关于css盒子模型的知识^_^,希望对初学者有用. 一.css盒子模型概念 CSS ...
- css总结7:盒子模型理解
1 盒子模型 1.1盒子模型的盒子: 以博客园页面为例: 1.2盒子内部构造:边框(border).内容(content).填充(padding).边界(margin)---CSS盒子模式都具 ...
- Java内存 模型理解
概述 在正式讲Java内存模型之前,我们先了解一些物理计算机并发问题,然后一点点的引出Java内存模型的由来. 多任务处理在现在计算机操作系统中几乎是一项必备的功能.这不单是因为计算机计算能力强大,更 ...
- BiLSTM-CRF模型理解
适用任务 中文分词.词性标注.命名实体识别是自然语言理解中,基础性的工作,同时也是非常重要的工作. 在很多NLP的项目中,工作开始之前都要经过这三者中的一到多项工作的处理. 在深度学习中,有一种模型可 ...
- uboot的驱动模型理解
uboot的驱动模型,简称dm, 具体细节建议参考./doc/driver-model/README.txt 关于dm的三个概念: uclass:一组同类型的devices,uclass为同一个gro ...
- kafka模型理解
1.消息发送至一个topic,而这个topic可以由多个partition组成,每条消息在partition中的位置称为offset 2.消息存在有效期,如果设置为2天,则消息2天后会被删除 3.每个 ...
随机推荐
- position的参考基准
static(静态):position默认的样式:占据标准流的位置, 它会忽略top.bottom.left . right 的设置 relative(相对): 占据标准流的位置:可将其移至相对于其正 ...
- ps_cc:制作sprite拼贴图片
我们的目标是: 将 合并为一张图片 step1:制作动作,便于批处理和重复使用 首先随便新建空白文档(建议:90x300px) 录制动作,alt+F9 上图中,可以新建分组前端,再新建动作 ...
- iDempiere 使用指南 采购入库流程
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- Android - 常见的控件布局,左中右,左右等
这里汇总的是自己在工作过程中,使用过的常见空间布局,记录在这里.详情如下: 1. 三个控件,分别处于左,中,右 要点:使用RelativeLayout <RelativeLayout andro ...
- sudoers文件解析
分类: LINUX 今天在用户组中新加了一个普 通用户,开始这个用户没有sudo权限,于是通过sudo visudo修改了sudo的配置文件,赋予了普通用户的root权限.后来想着能不能将/etc/s ...
- TP5.1:数据库的增删改查操作(基于数据库操作)
1.在app/index/controller文件夹下创建一个文件,名为:Operation 注意:起名一定要避开关键字,例如:mysql,curd等等,如果使用关键字起名,会造成报错! 在Opera ...
- 在ABAP里取得一个数据库表记录数的两种方法
方法1:使用函数EM_GET_NUMBER_OF_ENTRIES 这个函数使用起来很简单,只需要将想查询的数据库表名称维护进输入参数IT_TABLES: 上图说明这个函数支持批量操作,我查询的两张表名 ...
- 初识QT中的qDebug()
首先在头文件中包含 #include<QDebug> 当开发者需要为一个装置.文件.字符串或者控制台,写出调试和跟踪信息时,该类被使用. 在需要使用的地方插入: qDebug(][]); ...
- IOS 解析Json数据(NSJSONSerialization)
● 什么是JSON ● JSON是一种轻量级的数据格式,一般用于数据交互 ● 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除 外) ● JSON的格式很像OC中的字典和数组 ...
- 矩阵连乘的相乘次数(ZOJ1094)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=94 解题报告: 1.数据结构: ///矩阵行数和列数 struct N ...