ATT-CNN(attention based CNN)

2024-03-20 08:18
文章标签 cnn attention based att

本文主要是介绍ATT-CNN(attention based CNN),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ATT-CNN文本分类,论文解读(Attention-based Convolutional Neural Networks for Sentence Classification)

  • Attention-based CNN
    • 1. Basic CNN
    • 2. ATT-CNN


作者:sigma_Tian
来源:CSDN
原文:https://blog.csdn.net/tcx1992/article/details/80118443
版权声明:本文为博主原创文章,转载请附上博文链接!

NLP问题中,现有的关于attention机制的研究大多是对不同句子之间的相关性进行建模,如机器翻译中源语言与目标语言之间的词对齐以及问答中question与answer之间的词语相似性。 对句子中单词之间相关性的研究很少。在此文中,作者提出了一种attention based CNN(ATT-CNN),其中attention机制的作用是,在没有任何外部语法信息的情况下自动捕获非连续词的上下文信息和关系。

Attention-based CNN

首先介绍一下通用的CNN,在文本分类中也叫TextCNN。在此基础上介绍ATT-CNN

1. Basic CNN

BasicCNN模型通常先用向量表示(word embedding,如word2vec)替换句子中的每个单词,并创建句子矩阵 A ∈ R l × d A\in R ^ {l \times d} ARl×d ,其中 l l l是句子长度(zero-padded), d d d是embedding的维度。
(1) A = [ x 1 , x 2 , x 3 , . . . , x i , . . . , x l ] T , A=[x_1,x_2,x_3,...,x_i,...,x_l]^T, \tag 1 A=[x1,x2,x3,...,xi,...,xl]T,(1)
其中 x i ∈ R d x_i\in R^d xiRd对应着句子中第 i i i个词的 d d d维词向量。接下来在一个宽度为 n n n n n n个词)的滑窗上进行卷积操作。具体来说,该操作采用filter W ∈ R n d × h W\in R^{nd\times h} WRnd×h与句子中的每个n-gram之间的点积来获得另一序列 c c c c c c由一系列从以下公式计算的 h h h维向量 c i c_i ci组成:
(2) c i = f ( W ⋅ x i : n + b ) , c_i=f(W\cdot x_{i:n} + b),\tag 2 ci=f(Wxi:n+b),(2)
其中 f f f为非线性激活函数,如ReLU(rectified linear unit)、sigmoid等, x i : n x_{i:n} xi:n n n n个词向量拼接而成: x i : n = x i ⊕ x i + 1 ⊕ . . . ⊕ x i + n − 1 x_{i:n}=x_i\oplus x_{i+1} \oplus ...\oplus x_{i+n-1} xi:n=xixi+1...xi+n1。最后对 c c c进行max pooling操作,后接一个全连接softmax层,其输出即为各标签的概率分布。
BasicCNN难以捕获长期的上下文信息和非连续词之间的相关性。这种弱点在dependency-based CNN中得以部分克服,但在实际使用中它总是需要额外的资源来获得良好的依赖树,例如口语处理。 一种新的基于注意力机制的CNN可以用来缓解这个问题。

2. ATT-CNN

图1展示了ATT-CNN模型的架构。 如图1所示,在输入层和卷积层之间引入了attention层。 具体地,attention层是为每个单词创建上下文向量。 上下文向量与单词向量拼接,作为单词新的表示,将其输入到卷积层。 直观来看,一对彼此远离的词往往联系较少。 因此,可以考虑将距离衰减添加到注意机制中。
attention机制的思想是在导出 x i x_i xi的上下文向量 g i g_i gi时学习将注意力集中在特定的重要单词上。 图1中的红色矩形表示 g i g_i gi。注意机制是另外的MLP,与ATT-CNN的所有其他组件共同训练。 当预测句子类别时,该机制确定哪些单词应该比句子上的其他单词更受关注。 打分后的单词以加权和组合:
(3) g i = ∑ j ≠ i α i , j ⋅ x j , g_i=\sum_{j\neq i} \alpha_{i,j} \cdot x_j ,\tag3 gi=j̸=iαi,jxj,(3)
其中 α i , j \alpha_{i,j} αi,j被称为attention权重,要求 α ⩾ 0 \alpha\geqslant0 α0 ∑ j α i , j ⋅ x j = 1 \sum_j \alpha_{i,j} \cdot x_j=1 jαi,jxj=1,这里可通过softmax 规范化来实现。描述attention机制的公式如下:
(4) α i , j = e x p ( s c o r e ( x i , x j ) ) ∑ j ′ e x p ( s c o r e ( x i , x j ′ ) ) , \alpha_{i,j}=\frac{exp(score(x_i,x_j))}{\sum_{j'}exp(score(x_i,x_{j'}))},\tag4 αi,j=jexp(score(xi,xj))exp(score(xi,xj)),(4)
(5) s c o r e ( x i , x j ) = v a T t a n h ( W a [ x i ⊕ x j ] ) , score(x_i,x_j)=v_a^Ttanh(W_a[x_i\oplus x_j]),\tag5 score(xi,xj)=vaTtanh(Wa[xixj]),(5)
其中score值由上面提到的MLP来计算。简单来说,我们使用这个MLP来模拟单词对 ( x i , x j , j ≠ i ) (x_i,x_{j,j\neq i}) (xi,xj,j̸=i)的相关性。 并且那些具有较大score值的 x j , j ≠ i x_{j,j\neq i} xj,j̸=i在上下文向量 g i g_i gi中占有更多权重。
图1 ATT-CNN结构
图1: ATT-CNN网络结构;在attention层,虚线对应着公式(4)-(5), 实线对应着公式(3),点划线为复制操作

以情绪分类中的以下句子为例:
There’s not one decent performance from the cast and not one clever line of dialogue.
当我们在这个句子中学习单词performance的上下文向量时,attention机制将更多的注意力集中在not和decent的单词上。 特别是,score(performance, not)和score(performance, decent)预计会比其他单词对更大。
此外,我们引入衰减因子 λ ∈ [ 0 , 1 ] λ∈[0,1] λ[0,1]作为score函数输出的惩罚,以减少随着句子长度增长而产生的噪声信息的影响。
(6) s c o r e ( x i , x j ) = ( 1 − λ ) k ⋅ s c o r e ( x i , x j ) , score(x_i,x_j)=(1-\lambda )^k\cdot score(x_i,x_j),\tag6 score(xi,xj)=(1λ)kscore(xi,xj),(6)
其中 k = ∣ j − i ∣ − 1 k=|j-i|-1 k=ji1。当我们设定 λ → 0 λ→0 λ0时,将考虑更广范围的上下文; 而如果我们增加λ使其接近1,则只考虑局部范围内的上下文。
最后,我们将 x i x_i xi的扩展词向量 x i ′ x_i' xi定义为 x i x_i xi及其上下文向量的串联,然后使用 x i ′ x_i' xi更新句子矩阵A,它将被送入上文提到的BasicCNN中。
(7) x i ′ = x i ⊕ g i x_i'=x_i \oplus g_i\tag7 xi=xigi(7)

代码地址

这篇关于ATT-CNN(attention based CNN)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828836

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的身份识别。对于考勤系统而言,CNN可以自动从摄像头捕捉的视频流中检测并识别出员工的面部。 我们在该项目中采用了 RetinaFace 模型,它基于CNN的结构实现高效、精准的

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构

CNN-LSTM模型中应用贝叶斯推断进行时间序列预测

这篇论文的标题是《在混合CNN-LSTM模型中应用贝叶斯推断进行时间序列预测》,作者是Thi-Lich Nghiem, Viet-Duc Le, Thi-Lan Le, Pierre Maréchal, Daniel Delahaye, Andrija Vidosavljevic。论文发表在2022年10月于越南富国岛举行的国际多媒体分析与模式识别会议(MAPR)上。 摘要部分提到,卷积

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention 文章目录 一、基本原理1. 变分模态分解(VMD)2. 双向时域卷积(BiTCN)3. 双向门控单元(BiGRU)4. 注意力机制(Attention)总结流程 二、实验结果三、核心代码四、代码获取五、总结 时序预测|变分模态分解-双向时域卷积

【tensorflow CNN】构建cnn网络,识别mnist手写数字识别

#coding:utf8"""构建cnn网络,识别mnistinput conv1 padding max_pool([2,2],strides=[2,2]) conv2 x[-1,28,28,1] 卷积 [5,5,1,32] -> [-1,24,24,32]->[-1,28,