目录

  • 《Hierarchical Attention Network for Document Classification》—— 用于文本分类的层次注意力网络
  • 1、文本分类
    • 1.1 文本挖掘
    • 1.2 数据类型
    • 1.3 文本分类
  • 2、层次注意力网络
    • 2.1 基于GRU的词序列编码器:
    • 2.2 单词序列编码器
    • 2.3 单词注意力机制
    • 2.4 句子编码器
    • 2.5 句子注意力机制
    • 2.6 文档分类
  • 3、实验和结果
    • 3.1 数据集
    • 3.2 实验任务
    • 3.3 对比模型
    • 3.4 模型参数
    • 3.5 论文实验结果
    • 3.6 可视化分析
  • 4、总结
    • 4.1 论文主要创新点
  • 5、推荐阅读论文

《Hierarchical Attention Network for Document Classification》—— 用于文本分类的层次注意力网络

  • 作者:Zichao Yang,Diyi Yang,Chris Dyer,Xiaodong He;
  • 单位:卡耐基梅隆大学,微软研究院;
  • 论文来源:ACL 2016;

1、文本分类

1.1 文本挖掘

文本挖掘是一个以半结构或者无结构的自然语言文本为对象的数据挖掘,是从大规模文本数据集中发现隐藏的、重要的、新颖的、潜在的、有用的规律的过程;

文本分类是文本挖掘的一个常见任务

1.2 数据类型

非结构化数据
没有固定结构的数据,直接整体进行存储,一般存储为二进制的数据格式;
半结构化数据
结构化数据的一种形式,它并不符合关系型数据库等形式关联起来的数据模型结构,但包含相关标记,用来分割语义元素以及对记录和字段进行分层;
结构化数据
能够使用数据或者统一的结构加以表示,如数字、符号。

1.3 文本分类

文本分类是自然语言处理的基本任务。目的是将非结构化文档(例如,评论,电子邮件,帖子,网站内容等)分配给一个或者多个类。

文本分类流程

  1. 文本数据获取;
  2. 文本预处理;
  3. 文本的向量表示;
  4. 构造分类器;
  5. 模型评估;

2、层次注意力网络


网络组成结构

  • word encoder:单词序列编码器
  • word attention:单词注意力机制
  • sentence encoder:句子编码器
  • sentence attention:句子注意力机制

2.1 基于GRU的词序列编码器:

  • RNN的一个变种,使用门机制来记录序列当前的状态;
  • 隐藏层状态的计算公式:ht=(1−zt)⊙ht−1+zt⊙ht~h_{t}=\left(1-z_{t}\right) \odot h_{t-1}+z_{t} \odot \tilde{h_{t}}ht=(1zt)ht1+ztht~
  • 更新门:zt=σ(Wzxt+Uzht−1+bz)z_{t}=\sigma\left(W_{z} x_{t}+U_{z} h_{t-1}+b_{z}\right)zt=σ(Wzxt+Uzht1+bz)
  • 候选状态:ht~=tanh⁡(Whxt+rt⊙(Uhht−1)+bh)\tilde{h_{t}}=\tanh \left(W_{h} x_{t}+r_{t} \odot\left(U_{h} h_{t-1}\right)+b_{h}\right)ht~=tanh(Whxt+rt(Uhht1)+bh)
  • 重置门:rt=σ(Wrxt+Urht−1+br)r_{t}=\sigma\left(W_{r} x_{t}+U_{r} h_{t-1}+b_{r}\right)rt=σ(Wrxt+Urht1+br)

2.2 单词序列编码器

我们假设文档有L个句子,每个句子sis_isi包含T个单词,单词witw_{it}wit表示第i个句子中的第t个单词,对于单词witw_{it}wit,使用embedding词嵌入矩阵获取单词对应的词向量:xit=Wewit,t∈[1,T]x_{it} = W_ew_{it},t\in [1,T]xit=Wewit,t[1,T]

获得句子中每个单词对应的词向量后,使用双向GRU或者双向LSTM将正向和反向的信息结合起来获得隐藏层的输出:hit=[hit→,hit←]h_{i t}=[\overrightarrow{h_{i t}}, \overleftarrow{h_{i t}}]hit=[hit

,hit

]

其中:hit→=GRU→(xit)\overrightarrow{h_{i t}}=\overrightarrow{G R U}\left(x_{i t}\right)hit

=GRU

(xit)
hit←=GRU←(xit)\overleftarrow{h_{i t}}=\overleftarrow{G R U}\left(x_{i t}\right)hit

=
GRU

(xit)

以上为单词序列编码器的基本原理过程。

2.3 单词注意力机制

并非所有的单词都对句子的含义表示有同等的作用,因此引入了注意力机制来提取对句子含义更重要的词,并且汇总词信息来形成句子向量。

我们从单词序列编码器获得了句子中每个单词的隐层输出hith_{it}hit,隐层输出hith_{it}hit是构建单词注意力机制的基础,在论文中使用的注意力模型为加性模型:s(x,q)=vTtanh(Wx+Uq)s(x,q) = v^Ttanh(Wx+Uq)s(x,q)=vTtanh(Wx+Uq)

公式中的W,U和v都是可学习的参数。

在论文中通过随机初始化WwW_wWw和偏置bwb_wbw进行训练获得hith_{it}hit的隐藏信息uitu_{it}uit,即:uit=tanh⁡(Wwhit+bw)u_{i t}=\tanh \left(W_{w} h_{i t}+b_{w}\right)uit=tanh(Wwhit+bw)

得到新的词表示uiju_{ij}uij之后,为了衡量每个单词的重要性,我们随机初始化一个上下文向量uwu_wuw,进而计算句子中每个单词的重要性:αit=exp⁡(uit⊤uw)∑texp⁡(uit⊤uw)\alpha_{i t}=\frac{\exp \left(u_{i t}^{\top} u_{w}\right)}{\sum_{t} \exp \left(u_{i t}^{\top} u_{w}\right)}αit=texp(uituw)exp(uituw)

得到每个单词的重要性之后,我们可以通过加权平均得到句子的向量表示:si=∑tαithits_{i}=\sum_{t} \alpha_{i t} h_{i t}si=tαithit

以上为单词注意力机制的基本原理。

2.4 句子编码器

在得到句子的向量表示sis_isi之后,用类似的方法得到文档向量。我们使用双向GRU获得前向和后向的句子向量表示hih_ihihi=[hi→,hi←]h_{i}=[\overrightarrow{h_{i}}, \overleftarrow{h_{i}}]hi=[hi

,hi

]

公式中的前向GRU和后向GRU计算公式计算如下:h⃗i=GRU⁡→(si),i∈[1,L]\vec{h}_{i}=\overrightarrow{\operatorname{GRU}}\left(s_{i}\right), i \in[1, L]h

i=GRU

(si),i
[1,L]

h←i=GRU⁡←(si),t∈[L,1]\overleftarrow{h}_{i}=\overleftarrow{\operatorname{GRU}}\left(s_{i}\right), t \in[L, 1]h

i=GRU

(si),t
[L,1]

2.5 句子注意力机制

为了获得文档的向量表示,我们同样使用加性注意力机制,基于句子级别的上下文信息,我们可以得到文档的向量表示vvvui=tanh⁡(Wshi+bs)u_{i}=\tanh \left(W_{s} h_{i}+b_{s}\right)ui=tanh(Wshi+bs)

αi=exp⁡(ui⊤us)∑texp⁡(ut⊤us)\alpha_{i}=\frac{\exp \left(u_{i}^{\top} u_{s}\right)}{\sum_{t} \exp \left(u_{t}^{\top} u_{s}\right)}αi=texp(utus)exp(uius)

v=∑iαihiv=\sum_{i} \alpha_{i} h_{i}v=iαihi

2.6 文档分类

文档向量vvv是文档的高级表示,可用做文档分类的功能,在文档向量vvv上接一个softmax层:
p=softmax⁡(Wcv+bc)p=\operatorname{softmax}\left(W_{c} v+b_{c}\right)p=softmax(Wcv+bc)

其对应的损失函数为:L=−∑dlog⁡pdjL=-\sum_{d} \log p_{d j}L=dlogpdj

3、实验和结果

3.1 数据集

  • 论文中使用了六个数据集:Yelp review 2013,2014,2015;IMDB review;Yahoo Answers;Amazon reviews;
  • 每个数据集合中80%的数据用作训练集合,10%的数据用作验证集合,剩余10%的集合用作测试集合;

3.2 实验任务

在六个数据集上的文本进行分类实验;

3.3 对比模型

  • 线性模型
  • SVM
  • word-based CN
  • Character-based CNN
  • Conv/LSTM-GRNN

3.4 模型参数

  • 批量大小:64
  • 动量值:0.9

3.5 论文实验结果

3.6 可视化分析



为了进一步说明注意力机制的作用,作者对attention注意力机制下的单词和句子权重进行可视化,上图中的蓝色越深表示单词在句子中的权重越大,粉色越来越深说明句子在文本中的权重越大。

4、总结

4.1 论文主要创新点

  1. 提出了一种用于文本分类的层次注意力网络;
  2. 该网络受限构建句子的表示,然后将它们聚合成文档表示;
  3. 该网络在单词和句子级别应用了两个级别的注意力机制;

5、推荐阅读论文

  1. Tianyang Zhang et al.2018. Learning Structured Representation for Text Classification via Reinforcement Learning.
  2. Joulin et al.2017.Bag of Tricks for Efficient Text Classification.
  3. Johnson et al.2017. Deep Pyramid Convolutional Neural Networks for Text Categorization.
  4. JacobDevlin et al.2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.

《Hierarchical Attention Network for Document Classification》—— 用于文本分类的层次注意力网络相关推荐

  1. 【论文复现】Hierarchical Attention Networks for Document Classification

    写在前面 最近在整理文本分类方面比较经典的模型,看到了"Hierarchical Attention Networks for Document Classification"这篇 ...

  2. 中文短文本分类实例十二-HAN(Hierarchical Attention Networks for Document Classification)

    一.概述 HAN(Hierarchical Attention Networks for Document Classification),层次化注意力机制等,是Zichao Yang等2016年提出 ...

  3. Hierarchical Attention Networks for Document Classification(HAN)

    HAN历史意义: 1.基于Attention的文本分类模型得到了很多关注 2.通过层次处理长文档的方式逐渐流行 3.推动了注意力机制在非Seqseq模型上的应用 前人主要忽视的问题: 1.文档中不同句 ...

  4. 多层注意力模型:Hierarchical Attention Networks for Document Classification

    1.简介 文本分类问题一直是自然语言处理(NLP)中一个广受人们关注的问题.可能好多刚接触深度学习做NLP的项目就是使用循环神经网络(RNN)对IMDB影评进行分类.但使用循环神经网络时一般会遇到一个 ...

  5. Hierarchical Attention Networks for Document Classification 阅读笔记

    之前存在的问题:当所要处理的序列较长时,就会导致网络容易忘记之前的东西 解决办法:提出了"注意力"机制,使得网络工作过程中可以像人一样将注意力放在不同部位.这篇论文就针对文本分类问 ...

  6. BERT gated multi-window attention network for relation extraction 用于关系抽取的BERT门控多窗口注意力网络

    BERT gated multi-window attention network for relation extraction 用于关系抽取的BERT门控多窗口注意力网络 Abstract 实体关 ...

  7. 6个你应该用用看的用于文本分类的最新开源预训练模型 忆臻

    作者:PURVA HUILGOL 编译:ronghuaiyang (AI公园) 原文链接: 6个你应该用用看的用于文本分类的最新开源预训练模型​mp.weixin.qq.com 导读 文本分类是NLP ...

  8. 【NLP】6种用于文本分类的开源预训练模型

    来源 | PURVA HUILGOL 编译 | VK 作者 | Analytics Vidhya [导读]我们正站在语言和机器的交汇处,这个话题我很感兴趣.机器能像莎士比亚一样写作吗?机器能提高我自己 ...

  9. 六种用于文本分类的开源预训练模型

    作者|PURVA HUILGOL 编译|VK 来源|Analytics Vidhya 介绍 我们正站在语言和机器的交汇处,这个话题我很感兴趣.机器能像莎士比亚一样写作吗?机器能提高我自己的写作能力吗? ...

最新文章

  1. mysql 协议说明_MySQL认证协议_MySQL
  2. 程序员涨薪必备技能(1-5年必看!!!)
  3. Kaggle竞赛方案分享:如何分辨杂草和植物幼苗(转)
  4. 迈出从3K到1W的重要一步——掌握设计模式
  5. 私人笔记 -- 将图片插入到指定的单元格位置,并设置图片的宽度和高度
  6. 性能测试之JMeter函数助手详解
  7. 黄聪:VS2008的动、静态编译[转]
  8. html的canvas显示数字,HTML5效果:Canvas 实现圆形进度条并显示数字百分比
  9. 计算机网络技术专业一体化课程方案,计算机网络技术专业网络设备的安装与配置...
  10. D - Send a Table (UVA - 10820)
  11. 联机侠控制台JAVA_联机侠控制台常见问题 | 我的世界 | MC世界侠
  12. 计算机科学之父--图灵
  13. 计算机校友讲座,计算机系举办优秀校友返校讲座
  14. 商业创新奇才,巧用大数据分析带你穿越古代当首富
  15. latex安装后运行报错:系统找不到指定的文件,试试这样吧
  16. python 打印下标和值
  17. 以中国南方航空为竞品结构化分析并设计航空购票网页
  18. HTML详解(3.为什么要学习html)
  19. mt6799芯片资料mt6799参考设计资料
  20. Python攻关之模块(1)

热门文章

  1. SAP Basis Consultant Job Role
  2. VueRouter源码分析
  3. 容器编排技术 -- Kubernetes 中查看Pods和Nodes
  4. MinIO Azure 网关 ​​​​​​​
  5. Nodejs如何自动重启
  6. C#中增量类功能的方式之 继承与扩展
  7. css里的符号含义【串联选择器】和【后代选择器】
  8. 有哪些好的刷题网站?2018年最受欢迎的编程挑战网站
  9. C#LeetCode刷题之#453-最小移动次数使数组元素相等(Minimum Moves to Equal Array Elements)
  10. Redux简介以及Redux应用程序中的状态更新方式