自然语言处理 | (29) 基于Hierarchical Attention Network的文本分类原理

目录

 

1.文本分类任务介绍

2. Hierarchical Attention Network结构

3. Hierarchical Attention Network文本分类原理概述


1.文本分类任务介绍

文本分类是自然语言处理的一个基本任务,试图推断出给定文本(句子、文档等)的标签或标签集合。

文本分类的应用非常广泛,如:

  • 垃圾邮件分类:2分类问题,判断邮件是否为垃圾邮件
  • 情感分析:2分类问题:判断文本情感是积极还是消极;多分类问题:判断文本情感属于{非常消极,消极,中立,积极,非常积极}中的哪一类。
  • 新闻主题分类:判断一段新闻属于哪个类别,如财经、体育、娱乐等。根据类别标签的数量,可以是2分类也可以是多分类。
  • 自动问答系统中的问句分类
  • 社区问答系统中的问题分类:多标签多分类(对一段文本进行多分类,该文本可能有多个标签),如知乎看山杯
  • 让AI做法官:基于案件事实描述文本的罚金等级分类(多分类)和法条分类(多标签多分类)
  • 判断新闻是否为机器人所写:2分类

不同类型的文本分类往往有不同的评价指标:

  • 2分类:accuracy,precision,recall,f1-score...
  • 多分类(单标签多分类):Micro-Averaged-F1,Macro-Averaged-F1...
  • 多标签多分类:Jaccard相似系数...

​​​​​​​

2. Hierarchical Attention Network结构

  • 1. Embedding
  • 2. Word Encoder: 在词层面使用双向GRU/LSTM(可以是多层,一般使用一层)来得到一个句子中每个词的表示信息
  • 3. Word Attention:词层面的Attention机制,对一个句子中每个词的表示信息进行加权求和(重要的词将获得更大的权重(需要学习)),得到句子的表示信息
  • 4. Sentence Encoder:在句子层面使用双向GRU/LSTM(可以是多层,一般使用一层)来得到篇章/文档中每个句子的表示信息
  • 5. Sentence Attention:句子层面的Attention机制,对一个篇章/文档中每个句子的表示信息进行加权求和(重要的句子将获得更大的权重(需要学习)),得到整个篇章或文档的表示信息。
  • 6. 将整个篇章/文档的表示信息通过一个Softmax层(输出层使用softmax激活函数,FC+Softmax)进行多分类

3. Hierarchical Attention Network文本分类原理概述

在自然语言处理中,文本分类中的文本可以一个句子,文档(短文本,若干句子)或篇章(长文本),之前我们学习的TextCNN、TextRNN和RCNN在处理一个句子或文档(短文本)分类时效果比较好,对于篇章(长文本)效果可能会下降。对于文档或篇章分类,我们可以使用Hierarchical Attention Network。

对于文档或篇章分类来说:词是句子的组成形式,而句子又是文档的组成形式。这种情况下,可能存在内在的结构,很显然文档中的每个部分重要性肯定是不同的,那么我们怎么决定文档中每一个部分的重要性呢?

模型有两个不同的特征:

  • 1. 模型采用一个层次结构来反映文档的层次结构
  • 2. 模型在单词和句子层面分别使用一个Attention机制,确保模型能够在不同的层面捕捉重要信息。

首先我们把输入文档统一为一个固定的长度(可以是最长文档的长度,也可以是任意的合理的长度,长度以包含的词数度量),这样我们可以对batch_size个文档同时进行处理,输入大小为[batch_size,document_length].然后把每一文档分为若干个句子,每一个句子有相同的长度,[batch_size,num_sentence,setence_length].

WordEncoder: 对于文档中的每一个句子分别进行处理,对于该句子中的每一个单词,通过一个嵌入层得到他的嵌入表示,然后通过一个双向的GRU/LSTM(可以多层,一般使用一层)来编码句子信息(每一个时间步骤,输入句子中的一个词)。把两个方向上的隐藏状态进行拼接,可以构成句子的表示,同时可以捕获上下文信息。

Word Attention:句子中的每一个词的重要性是不同的,通过Attention机制,得到双向GRU/LSTM每一个时间步骤上隐藏状态对应的权重,然后对隐藏状态加权求和,得到句子的表示信息。同理可以得到文档中所有句子的表示信息。

Sentence Encoder:得到文档中每个句子的表示信息后,同样使用一个双向的GRU/LSTM(可以多层,一般使用一层)来编码文档信息(每一个时间步骤输入文档中的一个句子)。把两个方向上的隐藏状态进行拼接,可以构成文档的表示,同时可以捕获上下文信息。

Sentence Attention:文档中的每一个句子的重要性是不同的,通过Attention机制,得到双向GRU/LSTM每一个时间步骤上隐藏状态对应的权重,然后对隐藏状态加权求和,得到整个文档的表示信息。

Softmax(FC+Softmax):对得到的文档的表示信息,通过一个Softmax层(输出层使用softmax激活函数)进行多分类。

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值