CN116561314B - 基于自适应阈值选择自注意力的文本分类方法 - Google Patents
基于自适应阈值选择自注意力的文本分类方法 Download PDFInfo
- Publication number
- CN116561314B CN116561314B CN202310552473.1A CN202310552473A CN116561314B CN 116561314 B CN116561314 B CN 116561314B CN 202310552473 A CN202310552473 A CN 202310552473A CN 116561314 B CN116561314 B CN 116561314B
- Authority
- CN
- China
- Prior art keywords
- attention
- layer
- self
- text
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 238000013507 mapping Methods 0.000 claims abstract description 112
- 238000012549 training Methods 0.000 claims abstract description 86
- 230000003044 adaptive effect Effects 0.000 claims abstract description 83
- 238000012360 testing method Methods 0.000 claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims abstract description 20
- 239000013598 vector Substances 0.000 claims description 121
- 238000013528 artificial neural network Methods 0.000 claims description 54
- 239000011159 matrix material Substances 0.000 claims description 50
- 238000005070 sampling Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 16
- 238000012216 screening Methods 0.000 claims description 16
- 230000004927 fusion Effects 0.000 claims description 8
- 230000003321 amplification Effects 0.000 claims description 6
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 6
- 230000015654 memory Effects 0.000 claims description 5
- 230000008451 emotion Effects 0.000 claims description 4
- FLDSMVTWEZKONL-AWEZNQCLSA-N 5,5-dimethyl-N-[(3S)-5-methyl-4-oxo-2,3-dihydro-1,5-benzoxazepin-3-yl]-1,4,7,8-tetrahydrooxepino[4,5-c]pyrazole-3-carboxamide Chemical compound CC1(CC2=C(NN=C2C(=O)N[C@@H]2C(N(C3=C(OC2)C=CC=C3)C)=O)CCO1)C FLDSMVTWEZKONL-AWEZNQCLSA-N 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims description 3
- 101100481876 Danio rerio pbk gene Proteins 0.000 claims description 3
- 101100481878 Mus musculus Pbk gene Proteins 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 238000011176 pooling Methods 0.000 claims description 3
- 238000013459 approach Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 16
- 230000000694 effects Effects 0.000 abstract description 8
- 230000010354 integration Effects 0.000 abstract description 2
- 238000013135 deep learning Methods 0.000 description 8
- 238000003058 natural language processing Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical group OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000010972 statistical evaluation Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于自适应阈值选择自注意力的文本分类方法,目的是解决现有文本分类方法速度慢,效果差的问题。技术方案是:首先构建由自适应注意力模块和分类映射模块构成的文本分类系统。构建训练集和测试集,利用训练集采用有监督方式对文本分类系统进行训练,得到训练好的文本分类系统。利用训练好的文本分类系统对用户输入的文本进行自适应注意编码,分类映射得到分类结果即输入文本所属类别,实现对目标文本的分类。采用本发明可以避免冗余的注意力和编码上下文时无关词信息的集成。可以在不失去灵活性的情况下既保持计算效率,又有效提高文本分类效果,使得文本分类Acc值较其它已有使用注意力机制的方法有所提高。
Description
技术领域
本发明涉及自然语言处理文本分类领域,具体涉及一种基于自适应阈值选择自注意力的文本分类方法。
背景技术
自然语言是人类交流和思维的主要工具,是人类区别其他动物的本质特性,人类的多种智能都与语言有着密切的关系,而文字是记录语言的工具,人类的逻辑思维以语言为形式,人类的绝大部分知识也是以语言文字的形式记载和流传下来的。文本中大量的文字能够表达丰富的语义信息和特征内容,帮助人们理解文本所要传达的信息。在全球智能化及信息化的时代,自然语言中信息的抽取与处理技术一直是科学家们重点研究内容。人工智能技术的发展与硬件设备计算性能的提升,推动了自然语言处理领域信息抽取、文本分类、阅读理解等多项技术的深入研究。文本分类是自然语言处理中最基本的一项任务,诸如情感分析、意图识别、文本匹配、指代消解等自然语言处理任务都可以转换为对所属目标的分类任务。
文本分类方法主要分为三大类:基于规则的算法、基于统计机器学习的算法和基于深度学习的算法。基于规则的算法预先请相关语言学专家人工构造分类规则模板,以字符串正则匹配为主要分类方法,这类算法依赖于人工建立的规则,具有耗时耗力,移植性差且覆盖的范围和准确率有限的特点。基于统计机器学习的算法主要包括朴素贝叶斯,KNN,决策树,支持向量机等,这类算法将文本分类问题拆分成了特征工程和分类器两部分。特征工程包括文本预处理、特征提取、文本表示三个部分,最终目的是把文本转换成计算机可理解的格式,并封装足够用于分类的信息方便分类器进行文本分类。但基于统计机器学习的算法主要问题是文本表示是高纬度且高稀疏的向量,特征表达能力很弱,且需要人工进行特征工程,成本很高。基于深度学习的算法使用神经网络能够从文本中自动提取文本特征,实现端到端的解决问题。以卷积神经网络和循环神经网络为基础的深度学习算法能够自动提取深层文本特征,相比前两类算法准确率更高,也更方便。
基于神经网络的深度学习方法在决定一个文本所对应类别时,所用的上下文信息是整句话的信息,这种获取上下文信息的方式存在着较多的冗余信息,这些冗余信息所带来的噪音在决定该单词所对应的文本类别时会产生负面影响。近年来,注意力机制被广泛应用到基于深度学习的自然语言处理各个任务中。随着注意力机制的深入研究,各式各样的注意力机制被研究者们提出。其中,自注意力机制是注意力机制的变体,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。自注意力机制在自然语言处理中的应用,主要是通过计算单词间的相互影响,来解决长距离依赖问题。
之前已有的一些文本分类方法,通过BiLSTM(见文献“Long short-term memory”,1997,长短期记忆)或者TextCNN(见文献“Convolutional Neural Networks for SentenceClassification”,2014,基于卷积神经网络的句子分类)直接对文本进行分类,但是由这些方法得到的表示缺少对自身的关注,无法得到融合表示的内部词之间的相互影响,如果能够对于词级别编码合理地应用自注意力机制进行融合得到文本表示,可以有效提高文本分类任务的识别性能。
同时,现有的许多利用自注意力机制的文本分类方法仍然存在局限性,如BiLSTM+Attention(见文献“Attention-Based Bidirectional Long Short-Term MemoryNetworks for Relation Classification”,2014,基于注意的双向长短期记忆网络的关系分类)以及最经典的Transformer(见文献“Attention is all you need.”,2017,注意力是你所需要的)等方法使用的全连接的自注意力方法,这种方法会让查询向量关注到输入的所有词,使得不相关的词被注意力整合,容易导致文本中不重要的词被关注,从而影响最终的分类效果。在利用自注意力机制时,针对关键的词进行更好的关注,而对不重要的词进行选择性忽略,充分利用好自注意力结果能够有效提高文本分类的性能。
因此,如何充分利用好自注意力机制的特点,让注意力更好地集中在人们更需要关注的区域上,提供一种效果更好的文本分类方法,是本领域技术人员正在探讨的热点问题。
发明内容
本发明要解决的技术问题是提供一种基于自适应阈值选择自注意力的中文文本分类方法。基于深度学习的算法,与背景技术中全连接的自注意力机制的文本分类方法采用全连接的自注意力机制不同,本发明采用自适应阈值选择的自注意力机制,通过自动生成的注意力阈值来动态调整对每个词的注意力,解决现有注意力机制集成无关注意力,冗余度过高而导致的速度慢,效果差的问题,使得文本分类任务更加简洁准确。
为解决上述技术问题,本发明技术方案是:首先构建由自适应注意力模块和分类映射模块构成的文本分类系统。使用IMDB、TREC两个数据集作为文本分类系统的训练集和测试集,利用训练集采用有监督方式对文本分类系统进行训练,得到各个模块的网络权重参数,进而得到训练好的训练好的文本分类系统。然后利用训练好的文本分类系统对用户输入的目标文本进行词融合、上下文编码,最后解码得到分类结果,即输入文本所属类别,实现对目标文本的分类。
本发明包括以下步骤:
第一步:构建文本分类系统。文本分类系统由自适应注意力模块和分类映射模块构成。
自适应注意力模块与分类映射模块相连,由词映射层,自适应阈值选择自注意力层,第一正则化层,前馈神经网络层和第二正则化层构成。
词映射层与自适应阈值选择自注意力层相连,接收用户输入的文本(包括用户输入的文本序列X、训练集文本集合T),若接收到用户输入的文本序列X,X={x1,x2,...,xi,...,xI}(其中xi表示X中的第i个词,1≤i≤I,I为X中的词个数),利用GloVe6B词嵌入方法(取自https://www.kaggle.com/datasets/anindya2906/glove6b,2018)将每个词映射为词级别编码,得到词级别编码G(X),G(X)={G(x1),G(x2),...,G(xi),...,G(xI)}(其中G(xi)表示xi经过GloVe6B映射后的词级别编码)。词映射层将词级别编码G(X)发送给自适应阈值选择自注意力层;
自适应阈值选择自注意力层与词映射层、第一正则化层相连,从词映射层接收G(X),将G(X)与对应参数相乘作为计算注意力的查询(query)向量、键(key)向量和值(value)向量,通过查询向量和键向量计算得到注意力权重矩阵A,通过G(X)计算出注意力权重阈值对注意力权重矩阵A和注意力权重阈值/>进行可微二值化操作,通过伯努利采样方法对A中的注意力值进行筛选,得到筛选后的注意力权重矩阵A’,利用A’与值向量计算得到筛选注意力后的表示Attn,将Attn发送给第一正则化层;
第一正则化层与自适应阈值选择自注意力层、前馈神经网络层相连,从自适应阈值选择自注意力层接收Attn,对Attn进行残差连接和正则化操作,得到第一次正则化表示Attn1,将Attn1发送到前馈神经网络层;
前馈神经网络层与第一正则化层、第二正则化层相连,从第一正则化层接收Attn1,对Attn1进行线性映射,得到线性映射后表示f(Attn1),将f(Attn1)发送到第二正则化层;
第二正则化层与前馈神经网络层、分类映射模块相连,从前馈神经网络层接收f(Attn1),对f(Attn1)进行残差连接和正则化处理,得到输出向量即序列句子级表示向量f(Attn1)2,将f(Attn1)2发送给分类映射模块。
分类映射模块与自适应注意力模块的第二正则化层相连,是一个线性分类层,线性分类层将从第二正则化层接收的f(Attn1)2进行线性映射,得到原始预测向量(logits向量),对logits向量进行Softmax操作后得到文本对应每个类别的概率,取最高概率的类别作为该文本的类别。
若词映射层接收训练集文本集合T,各模块的操作与对X的操作一样,但接收训练集文本集合T时分类映射模块需要采用交叉损失熵函数计算损失loss进行反向传播来更新模型参数,而接收X时不需要。
第二步:准备训练文本分类系统的数据集,方法是:
2.1采用TREC、IMDB数据集中的样本构建训练集、测试集。将TREC数据集(取自https://cogcomp.seas.upenn.edu/Data/QA/QC/,2002)中的5452条样本放到训练集,500条样本放到测试集;将情感分类IMDB数据集(取自http://ai.stanford.edu/~amaas/data/sentiment,2011)中的25000条样本放到训练集,25000条样本放到测试集。其中数据的每条样本包含一条文本和其对应的实际标签。训练集中的文本集合构成训练集文本集合T,训练集中的实际标签序列集合构成训练集实际标签序列集合T#;令T={T1,T2,···Tm,···,TM},其中Tm表示T中的第m条文本序列(其中1≤m≤M,M为T中的文本总数,M=30452);表示Tm的第i个词(其中1≤i≤I);测试集中的文本集合构成测试集文本集合V,测试集样本中的实际标签序列集合构成测试集实际标签序列集合V#,T用于训练文本分类系统,T#用于在训练文本分类系统时计算训练损失,校正模型;V用于测试文本分类系统,V#用于和测试输出的标签进行比对,衡量进行测试的文本分类系统的性能。
第三步,采用T对自适应注意力模块、分类映射模块进行有监督方式训练,得到不同的网络权重参数,方法为:
3.1初始化权重参数,将自适应阈值选择自注意力层的参数集合 Wt中的元素初始化为[0,1]的随机数;将前馈神经网络层的参数集合WF中的元素初始化为[0,1]的随机数;将分类映射模块的线性分类层的参数集合WY中的元素初始化为[0,1]的随机数。
3.2设置网络训练超参数,将批处理大小(batch_size)设置为8,将编码丢弃率(dropout)设置为0.5,将注意力保留数量阈值(K)设置为3,将阶跃函数放大因子(α)设置为50,将Gumbel-Softmax温度系数(τ)设置为1,将损失函数中的正则化系数(λ)设置为4×10-6,其它超参数最优值采用随机搜索的方法进行寻找,其范围满足:网络模型学习率(learningrate)设置为集合{1×10-3,8×10-4,6×10-4}中的任意值,衰减率(decay)值设置为0.05,头数(head)设置为集合{4,8,12}中的任意值,头维度(headdimension)设置为集合{8,10,12}中的任意值,前馈神经网络层大小(FFNsize)设置为集合{4,6,8}×head×headdimension中的任意值,预热学习率(warmup)设置为集合{1,5,10}中的任意值。
3.3采用有监督方式迭代训练自适应注意力模块、分类映射模块,每一轮训练得到预测标签序列T’,计算T’与T#的分布差距,得到损失值,最小化损失值并更新网络参数,直到满足迭代次数要求,得到自适应阈值选择自注意力层、前馈神经网络层及线性分类层的权重参数,方法如下:
3.3.1初始化训练迭代参数itretation=1;初始化迭代阈值E,E是[1,30]内的整数,实验证明,训练迭代22(即E为22)次时,文本分类的Acc值(即查准率,表示分类正确的个数的占该类别所有个数的比例)最高。因此优选E为22。
3.3.2令m=1。
3.3.3自适应注意力模块从T读取第m条文本序列Tm,自适应注意力模块的词映射层将Tm中的每个词映射为词级别编码G(Tm), 将G(Tm)发送给自适应阈值选择自注意力层。
3.3.4自适应阈值选择自注意力层对G(Tm)进行注意力筛选,得到筛选注意力后的表示TAttn,将TAttn发送到第一正则化层;方法是:
3.3.4.1自适应阈值选择自注意力层采用融合阈值法对G(Tm)进行注意力筛选,首先将G(Tm)与参数相乘作为查询(query)向量Q,将G(Tm)与参数/>相乘作为键(key)向量K,将G(Tm)与参数/>相乘作为值(value)向量Val,对query,key和value向量计算得到注意力矩阵A;然后利用G(Tm)计算得到注意力阈值向量/>融合阈值法是:
3.3.4.1.1令i=1;
3.3.4.1.2自适应阈值选择自注意力层将Tm的第i个单词的词级别编码与参数相乘作为查询向量Q的第i行Qi,与参数/>相乘作为键向量K的第i行Ki,与参数/>相乘作为值向量Val的第i行Vali,利用自注意力方法(见文献“Attentionisallyouneed.”,2017,注意力是你所需要的)计算得到第i个词/>对于/>的注意力向量,作为注意力矩阵A的第i行Ai。
3.3.4.1.3自适应阈值选择自注意力层根据G(Tm)计算注意力阈值向量的第i行方法是:
3.3.4.1.3.1计算Ai的初始阈值Li, 其中Wt是自适应阈值选择自注意力层的参数矩阵,是G(Tm)的第i行即第i个词的词级别编码,⊙代表向量之间相同的位置对应相乘,mp(G(Tm))代表对G(Tm)进行平均池化操作,[]内构成矩阵,中间的分号表示拼接操作。
3.3.4.1.3.2为了防止计算得到的初始阈值导致关键信息丢失,自适应阈值选择自注意力层将第i个词的查询向量Qi所对应的阈值设置为 其中topki代表A的第i行Ai中的第k大的值。
3.3.4.1.4令i=i+1,如果i≤I,转3.3.4.1.2;否则说明得到注意力矩阵A和注意力阈值向量转3.3.4.2。
3.3.4.2自适应阈值选择自注意力层采用二值可微化方法构造二值化矩阵Z,用来表示A中的注意力值是否有效。Z中第i行第j列元素zij=0或1,zij=1表示A中第i行第j列注意力值Aij大于阈值键向量Kj被查询向量Qi选择,zij=0表示Aij小于阈值/>键向量Kj被查询向量Qi丢弃。方法是:
3.3.4.2.1令i=1,j=1;
3.3.4.2.2使用近似阶跃函数得到关于Aij的采样变量bij,其中α是放大系数,α大于1。
3.3.4.2.3令代表zij取值为k的概率,根据采样变量定义得到/> 由于argmax操作是不可微操作,训练时无法进行梯度回传,所以采用Gumbel-Softmax分布采样(见文献“Categoricalreparameterizationwithgumbel-softmax.”,2017,使用gumbel-softmax进行分类重参数化。)来获得zij,方法是采用基于Gumbel-Softmax的采样方法,用代替直接伯努利采样/>其中gk和gl是Gumbel分布采样变量,从Gumbel(0,1)分布(见文献“ExtremeValueTheory:AnIntroduction”,2006,极值理论简介)中随机采样得到,τ是温度系数,设置为1。由以上定义得到/>
3.3.4.2.4令j=j+1,若j≤I,转3.3.4.2.2;若j>I,令i=i+1,若此时i≤I,令j=1,转3.3.4.2.2,若此时i>I,说明所有zij计算完毕,得到T的二值化矩阵Z,转3.3.4.3。
3.3.4.3自适应阈值选择自注意力层根据二值化矩阵Z利用赋值计算法计算T的筛选后的注意力权重矩阵A',并利用A'计算筛选注意力后的表示TAttn,将TAttn发送到第一正则化层。方法是:
3.3.4.3.1令i=1,j=1;
3.3.4.3.2若zij=1,令A'的第i行第j列元素A'ij=Aij;若zij=0,则令A'ij=-∞。
3.3.4.3.3令j=j+1,若j≤I,转3.3.4.3.2;若j>I则令i=i+1,若i≤I,令j=1,转3.3.4.3.2,否则说明得到了新的注意力矩阵A'中所有元素,转3.3.4.3.4。
3.3.4.3.4自适应阈值选择自注意力层根据A'计算筛选注意力后的表示Attn,将A'逐行进行softmax操作,得到softmax(A'),再将softmax(A')与值向量Val相乘得到TAttn,将TAttn发送到第一正则化层。
3.3.4.4第一正则化层从自适应阈值选择自注意力层接收TAttn,利用正则化方法(见文献“Attentionisallyouneed.”,2017,注意力是你所需要的)将TAttn进行层正则化和残差连接,得到第一次正则化后的表示TAttn1,将TAttn1发送给前馈神经网络层。
3.3.4.5前馈神经网络层从第一正则化层接收第一次正则化后的表示TAttn1,利用线性映射方法(见文献“Attentionisallyouneed.”,2017,注意力是你所需要的)对TAttn1进行线性映射,得到线性映射后的表示f(TAttn1),即f(TAttn1)=WF×TAttn1,将f(TAttnn1)发送给第二正则化层。
3.3.4.6第二正则化层从前馈神经网络层接收f(TAttn1),利用正则化方法将f(TAttn1)进行层正则化和残差连接,得到第二次正则化后的表示f(TAttn1)2,将f(TAttn1)2作为序列句子级表示向量发送给分类映射模块。
3.3.5分类映射模块从第二正则化层接收f(TAttn1)2,将f(TAttn1)2线性映射为类别个数维度的logits向量,对logits向量进行softmax操作,得到Tm对应的每个类别的概率,取最高概率的类别作为预测标签T’。
3.3.6分类映射模块采用交叉损失熵函数计算T’和T#之间的差距,得到损失值Loss,使用SGD优化算法(见文献“AStochastic Approximation Method”,1951,一种随机逼近方法)对Loss最小化,通过反向传播以更新一次文本分类系统中各模块(包括自适应阈值选择自注意力层、前馈神经网络层、线性映射层)的权重参数。
3.3.7令m=m+1,如果m≤M,转3.3.3;如果m>M,说明T的M个文本都已经参与训练,一次迭代训练已经完成,转3.3.8。
3.3.8令itretation=itretation+1,如果itretation≤迭代阈值E,转3.3.2;否则说明训练满足迭代次数要求,训练结束,得到了文本分类系统中自适应阈值选择自注意力层、前馈神经网络层、线性映射层的权重参数,转第四步。
第四步,将训练得到的权重参数赋值给文本分类系统各模块。即将训练得到的Wt作为自适应注意力模块自适应阈值选择注意力层计算注意力和阈值的网络权重参数;将训练得到的WF作为自适应注意力模块前馈神经网络层的网络权重参数,将训练得到的WY作为分类映射模块的线性分类层权重参数,得到训练好的文本分类系统。
第五步:使用训练好的文本分类系统对用户输入的文本X进行文本分类,得到X的文本类别,方法为:
5.1自适应注意力模块的词映射层接收用户输入的文本X,X={x1,x2,···,xi,···,xI}(其中xi代表输入文本中的第i个词),将文本中的每个词映射为词级别编码,得到X的词级别编码G(X)={G(x1),G(x2),··G(xi),···,G(xI)},G(xi)为词xi的词级别级编码,将G(X)发送给自适应阈值选择自注意力层。
5.2自适应阈值选择自注意力层从词映射层接收X的词级别编码G(X),对G(X)进行注意力筛选,得到筛选后的表示XAttn,将XAttn发送给第一正则化层。
方法是:
5.2.1自适应阈值选择自注意力层采用3.3.4.1步所述融合阈值法,首先将G(X)与参数相乘作为查询(query)向量QX,将G(X)与参数/>相乘作为键(key)向量KX,将G(X)与参数/>相乘作为值(value)向量ValX,对query,key和value向量计算得到X的注意力矩阵AX;然后利用G(X)计算得到X的注意力阈值向量/>
5.2.2自适应阈值选择自注意力层利用AX和采用3.3.4.2步所述二值可微化方法构造X的二值化矩阵ZX,用来表示AX中的注意力值是否有效;ZX中第i行第j列元素/>或1,/>表示AX的第i行第j列元素/>大于/>的第i个元素/>KX的第j行键向量/>被QX的第i行查询向量/>选择,zij=0表示注意力得分/>小于阈值/>键向量/>被查询向量/>丢弃。
5.2.3自适应阈值选择自注意力层根据ZX采用3.3.4.3步所述赋值计算法计算筛选后的X的注意力矩阵A'X,并利用A'X计算X的筛选注意力后的表示XAttn,将XAttn发送给第一正则化层。
5.2.4第一正则化层从自适应阈值选择自注意力层接收XAttn,采用正则化方法对XAttn进行层正则化和残差连接,得到X的第一次正则化后的表示XAttn1,将XAttn1发送给前馈神经网络层。
5.2.5前馈神经网络层从第一正则化层接收XAttn1,采用线性映射方法将XAttn1进行线性映射,得到线性映射后的表示f(XAttn1),即f(XAttn1)=WF×XAttn1,其中WF为前馈神经网络层的参数,将f(XAttnn1)发送给第二正则化层。
5.2.6第二正则化层从前馈神经网络层接收线性映射后的表示f(XAttn1),利用正则化方法将f(XAttn1)进行层正则化和残差连接,得到X的第二次正则化后的表示f(XAttn1)2,将f(XAttn1)2作为序列句子级表示向量发送给分类映射模块。
5.5分类映射模块接收自适应注意力模块输出的f(XAttn1)2,将f(XAttn1)2映射为类别个数维度的原始预测向量(logits向量),经过Softmax操作得到X对应每个类别的概率,取最高概率对应的类别作为X的文本类别。
采用本发明可以达到以下技术效果:
本发明第一步构建了一个完整的文本分类系统,融合了自适应注意力模块、分类映射模块。
自适应注意力模块在第3.3.4.1步生成自适应阈值(是利用A'计算筛选注意力后的表示TAttn),在第3.3.4.2步构造二值化矩阵来确定注意力机制需要关注的重点,在3.3.4.3-3.3.4.6步得到最后用于分类映射的编码信息;自适应阈值选择自注意力层的设计有利于让每个词关注更重要的内容,避免冗余的注意力。自适应阈值选择自注意力层通过动态选择关注重点来改进传统的Transformer的架构,避免了编码上下文时无关词信息的集成。这种由数据驱动的机制在不失去灵活性的情况下既保持了计算效率,又可以有效提高文本分类效果,使得文本分类Acc值较其它已有使用注意力机制的方法有所提高。
附图说明:
图1是本发明第一步构建的文本分类系统逻辑结构图;
图2是本发明总体流程图。
图3为本发明与背景技术所述的基于深度学习的算法中已有的文本分类方法(BiLSTM、TextCNN、BiLSTM+Attention、Transformer)在两个数据集上的Acc评价指标的比较结果。
具体实施方式
第一步:构建文本分类系统。文本分类系统由自适应注意力模块和分类映射模块构成。
自适应注意力模块与分类映射模块相连,由词映射层,自适应阈值选择自注意力层,第一正则化层,前馈神经网络层和第二正则化层构成。
词映射层与自适应阈值选择自注意力层相连,接收用户输入的文本(包括用户输入的文本序列X、训练集文本集合T),若接收到用户输入的文本序列X,X={x1,x2,...,xi,...,xI}(其中xi表示X中的第i个词,1≤i≤I,I为X中的词个数),利用GloVe6B词嵌入方法(取自https://www.kaggle.com/datasets/anindya2906/glove6b,2018)将每个词映射为词级别编码,得到词级别编码G(X),G(X)={G(x1),G(x2),...,G(xi),...,G(xI)}(其中G(xi)表示xi经过GloVe6B映射后的词级别编码)。词映射层将词级别编码G(X)发送给自适应阈值选择自注意力层;
自适应阈值选择自注意力层与词映射层、第一正则化层相连,从词映射层接收G(X),将G(X)与对应参数相乘作为计算注意力的查询(query)向量、键(key)向量和值(value)向量,通过查询向量和键向量计算得到注意力权重矩阵A,通过G(X)计算出注意力权重阈值对注意力权重矩阵A和注意力权重阈值/>进行可微二值化操作,通过伯努利采样方法对A中的注意力值进行筛选,得到筛选后的注意力权重矩阵A’,利用A’与值向量计算得到筛选注意力后的表示Attn,将Attn发送给第一正则化层;
第一正则化层与自适应阈值选择自注意力层、前馈神经网络层相连,从自适应阈值选择自注意力层接收Attn,对Attn进行残差连接和正则化操作,得到第一次正则化表示Attn1,将Attn1发送到前馈神经网络层;
前馈神经网络层与第一正则化层、第二正则化层相连,从第一正则化层接收Attn1,对Attn1进行线性映射,得到线性映射后表示f(Attn1),将f(Attn1)发送到第二正则化层;
第二正则化层与前馈神经网络层、分类映射模块相连,从前馈神经网络层接收f(Attn1),对f(Attn1)进行残差连接和正则化处理,得到输出向量即序列句子级表示向量f(Attn1)2,将f(Attn1)2发送给分类映射模块。
分类映射模块与自适应注意力模块的第二正则化层相连,是一个线性分类层,线性分类层将从第二正则化层接收的f(Attn1)2进行线性映射,得到原始预测向量(logits向量),对logits向量进行Softmax操作后得到文本对应每个类别的概率,取最高概率的类别作为该文本的类别。
若词映射层接收训练集文本集合T,各模块的操作与对X的操作一样,但接收训练集文本集合T时分类映射模块需要采用交叉损失熵函数计算损失loss进行反向传播来更新模型参数,而接收X时不需要。
第二步:准备训练文本分类系统的数据集,方法是:
2.1采用TREC、IMDB数据集中的样本构建训练集、测试集。将TREC数据集(取自https://cogcomp.seas.upenn.edu/Data/QA/QC/,2002)中的5452条样本放到训练集,500条样本放到测试集;将情感分类IMDB数据集(取自http://ai.stanford.edu/~amaas/data/sentiment,2011)中的25000条样本放到训练集,25000条样本放到测试集。其中数据的每条样本包含一条文本和其对应的实际标签。训练集中的文本集合构成训练集文本集合T,训练集中的实际标签序列集合构成训练集实际标签序列集合T#;令T={T1,T2,···Tm,···,TM},其中Tm表示T中的第m条文本序列(其中1≤m≤M,M为T中的文本总数,M=30452);表示Tm的第i个词(其中1≤i≤I);测试集中的文本集合构成测试集文本集合V,测试集样本中的实际标签序列集合构成测试集实际标签序列集合V#,T用于训练文本分类系统,T#用于在训练文本分类系统时计算训练损失,校正模型;V用于测试文本分类系统,V#用于和测试输出的标签进行比对,衡量进行测试的文本分类系统的性能。
第三步,采用T对自适应注意力模块、分类映射模块进行有监督方式训练,得到不同的网络权重参数,方法为:
3.1初始化权重参数,将自适应阈值选择自注意力层的参数集合 Wt中的元素初始化为[0,1]的随机数;将前馈神经网络层的参数集合WF中的元素初始化为[0,1]的随机数;将分类映射模块的线性分类层的参数集合WY中的元素初始化为[0,1]的随机数。
3.2设置网络训练超参数,将批处理大小(batch_size)设置为8,将编码丢弃率(dropout)设置为0.5,将注意力保留数量阈值(K)设置为3,将阶跃函数放大因子(α)设置为50,将Gumbel-Softmax温度系数(τ)设置为1,将损失函数中的正则化系数(λ)设置为4×10-6,其它超参数最优值采用随机搜索的方法进行寻找,其范围满足:网络模型学习率(learningrate)设置为集合{1×10-3,8×10-4,6×10-4}中的任意值,衰减率(decay)值设置为0.05,头数(head)设置为集合{4,8,12}中的任意值,头维度(headdimension)设置为集合{8,10,12}中的任意值,前馈神经网络层大小(FFNsize)设置为集合{4,6,8}×head×headdimension中的任意值,预热学习率(warmup)设置为集合{1,5,10}中的任意值。
3.3采用有监督方式迭代训练自适应注意力模块、分类映射模块,每一轮训练得到预测标签序列T’,计算T’与T#的分布差距,得到损失值,最小化损失值并更新网络参数,直到满足迭代次数要求,得到自适应阈值选择自注意力层、前馈神经网络层及线性分类层的权重参数,方法如下:
3.3.1初始化训练迭代参数itretation=1;初始化迭代阈值E,E是[1,30]内的整数,实验证明,训练迭代22(即E为22)次时,文本分类的Acc值(即查准率,表示分类正确的个数的占该类别所有个数的比例)最高。因此优选E为22。
3.3.2令m=1。
3.3.3自适应注意力模块从T读取第m条文本序列Tm,自适应注意力模块的词映射层将Tm中的每个词映射为词级别编码G(Tm), 将G(Tm)发送给自适应阈值选择自注意力层。
3.3.4自适应阈值选择自注意力层对G(Tm)进行注意力筛选,得到筛选注意力后的表示TAttn,将TAttn发送到第一正则化层;方法是:
3.3.4.1自适应阈值选择自注意力层采用融合阈值法对G(Tm)进行注意力筛选,首先将G(Tm)与参数相乘作为查询(query)向量Q,将G(Tm)与参数/>相乘作为键(key)向量K,将G(Tm)与参数/>相乘作为值(value)向量Val,对query,key和value向量计算得到注意力矩阵A;然后利用G(Tm)计算得到注意力阈值向量/>融合阈值法是:
3.3.4.1.1令i=1;
3.3.4.1.2自适应阈值选择自注意力层将Tm的第i个单词的词级别编码与参数相乘作为查询向量Q的第i行Qi,与参数/>相乘作为键向量K的第i行Ki,与参数/>相乘作为值向量Val的第i行Vali,利用自注意力方法(见文献“Attention is all you need.”,2017,注意力是你所需要的)计算得到第i个词/>对于/>的注意力向量,作为注意力矩阵A的第i行Ai。
3.3.4.1.3自适应阈值选择自注意力层根据G(Tm)计算注意力阈值向量的第i行方法是:
3.3.4.1.3.1计算Ai的初始阈值Li, 其中Wt是自适应阈值选择自注意力层的参数矩阵,是G(Tm)的第i行即第i个词的词级别编码,⊙代表向量之间相同的位置对应相乘,mp(G(Tm))代表对G(Tm)进行平均池化操作,[]内构成矩阵,中间的分号表示拼接操作。
3.3.4.1.3.2为了防止计算得到的初始阈值导致关键信息丢失,自适应阈值选择自注意力层将第i个词的查询向量Qi所对应的阈值设置为 其中topki代表A的第i行Ai中的第k大的值。
3.3.4.1.4令i=i+1,如果i≤I,转3.3.4.1.2;否则说明得到注意力矩阵A和注意力阈值向量转3.3.4.2。
3.3.4.2自适应阈值选择自注意力层采用二值可微化方法构造二值化矩阵Z,用来表示A中的注意力值是否有效。Z中第i行第j列元素zij=0或1,zij=1表示A中第i行第j列注意力值Aij大于阈值键向量Kj被查询向量Qi选择,zij=0表示Aij小于阈值/>键向量Kj被查询向量Qi丢弃。方法是:
3.3.4.2.1令i=1,j=1;
3.3.4.2.2使用近似阶跃函数得到关于Aij的采样变量bij,其中α是放大系数,α大于1。
3.3.4.2.3令代表zij取值为k的概率,根据采样变量定义得到/> 由于argmax操作是不可微操作,训练时无法进行梯度回传,所以采用Gumbel-Softmax分布采样(见文献“Categoric al reparameterizationwith gumbel-softmax.”,2017,使用gumbel-softmax进行分类重参数化。)来获得zij,方法是采用基于Gumbel-Softmax的采样方法,用/>代替直接伯努利采样/>其中gk和gl是Gumbel分布采样变量,从Gumbel(0,1)分布(见文献“ExtremeValueTheory:AnIntrod uction”,2006,极值理论简介)中随机采样得到,τ是温度系数,设置为1。由以上定义得到/>
3.3.4.2.4令j=j+1,若j≤I,转3.3.4.2.2;若j>I,令i=i+1,若此时i≤I,令j=1,转3.3.4.2.2,若此时i>I,说明所有zij计算完毕,得到T的二值化矩阵Z,转3.3.4.3。
3.3.4.3自适应阈值选择自注意力层根据二值化矩阵Z利用赋值计算法计算T的筛选后的注意力权重矩阵A',并利用A'计算筛选注意力后的表示TAttn,将TAttn发送到第一正则化层。方法是:
3.3.4.3.1令i=1,j=1;
3.3.4.3.2若zij=1,令A'的第i行第j列元素A'ij=Aij;若zij=0,则令A'ij=-∞。
3.3.4.3.3令j=j+1,若j≤I,转3.3.4.3.2;若j>I则令i=i+1,若i≤I,令j=1,转3.3.4.3.2,否则说明得到了新的注意力矩阵A'中所有元素,转3.3.4.3.4。
3.3.4.3.4自适应阈值选择自注意力层根据A'计算筛选注意力后的表示Attn,将A'逐行进行softmax操作,得到softmax(A'),再将softmax(A')与值向量Val相乘得到TAttn,将TAttn发送到第一正则化层。
3.3.4.4第一正则化层从自适应阈值选择自注意力层接收TAttn,利用正则化方法(见文献“Attentionisallyouneed.”,2017,注意力是你所需要的)将TAttn进行层正则化和残差连接,得到第一次正则化后的表示TAttn1,将TAttn1发送给前馈神经网络层。
3.3.4.5前馈神经网络层从第一正则化层接收第一次正则化后的表示TAttn1,利用线性映射方法(见文献“Attentionisallyouneed.”,2017,注意力是你所需要的)对TAttn1进行线性映射,得到线性映射后的表示f(TAttn1),即f(TAttn1)=WF×TAttn1,将f(TAttnn1)发送给第二正则化层。
3.3.4.6第二正则化层从前馈神经网络层接收f(TAttn1),利用正则化方法将f(TAttn1)进行层正则化和残差连接,得到第二次正则化后的表示f(TAttn1)2,将f(TAttn1)2作为序列句子级表示向量发送给分类映射模块。
3.3.5分类映射模块从第二正则化层接收f(TAttn1)2,将f(TAttn1)2线性映射为类别个数维度的logits向量,对logits向量进行softmax操作,得到Tm对应的每个类别的概率,取最高概率的类别作为预测标签T’。
3.3.6分类映射模块采用交叉损失熵函数计算T’和T#之间的差距,得到损失值Loss,使用SGD优化算法(见文献“AStochastic Approximation Method”,1951,一种随机逼近方法)对Loss最小化,通过反向传播以更新一次文本分类系统中各模块(包括自适应阈值选择自注意力层、前馈神经网络层、线性映射层)的权重参数。
3.3.7令m=m+1,如果m≤M,转3.3.3;如果m>M,说明T的M个文本都已经参与训练,一次迭代训练已经完成,转3.3.8。
3.3.8令itretation=itretation+1,如果itretation≤迭代阈值E,转3.3.2;否则说明训练满足迭代次数要求,训练结束,得到了文本分类系统中自适应阈值选择自注意力层、前馈神经网络层、线性映射层的权重参数,转第四步。
第四步,将训练得到的权重参数赋值给文本分类系统各模块。即将训练得到的Wt作为自适应注意力模块自适应阈值选择注意力层计算注意力和阈值的网络权重参数;将训练得到的WF作为自适应注意力模块前馈神经网络层的网络权重参数,将训练得到的WY作为分类映射模块的线性分类层权重参数,得到训练好的文本分类系统。
第五步:使用训练好的文本分类系统对用户输入的文本X进行文本分类,得到X的文本类别,方法为:
5.1自适应注意力模块的词映射层接收用户输入的文本X,X={x1,x2,···,xi,···,xI}(其中xi代表输入文本中的第i个词),将文本中的每个词映射为词级别编码,得到X的词级别编码G(X)={G(x1),G(x2),··G(xi),···,G(xI)},G(xi)为词xi的词级别级编码,将G(X)发送给自适应阈值选择自注意力层。
5.2自适应阈值选择自注意力层从词映射层接收X的词级别编码G(X),对G(X)进行注意力筛选,得到筛选后的表示XAttn,将XAttn发送给第一正则化层。
方法是:
5.2.1自适应阈值选择自注意力层采用3.3.4.1步所述融合阈值法,首先将G(X)与参数相乘作为查询(query)向量QX,将G(X)与参数/>相乘作为键(key)向量KX,将G(X)与参数/>相乘作为值(value)向量ValX,对query,key和value向量计算得到X的注意力矩阵AX;然后利用G(X)计算得到X的注意力阈值向量/>
5.2.2自适应阈值选择自注意力层利用AX和采用3.3.4.2步所述二值可微化方法构造X的二值化矩阵ZX,用来表示AX中的注意力值是否有效;ZX中第i行第j列元素/>或1,/>表示AX的第i行第j列元素/>大于/>的第i个元素/>KX的第j行键向量/>被QX的第i行查询向量/>选择,zij=0表示注意力得分/>小于阈值/>键向量/>被查询向量/>丢弃。
5.2.3自适应阈值选择自注意力层根据ZX采用3.3.4.3步所述赋值计算法计算筛选后的X的注意力矩阵A'X,并利用A'X计算X的筛选注意力后的表示XAttn,将XAttn发送给第一正则化层。
5.2.4第一正则化层从自适应阈值选择自注意力层接收XAttn,采用正则化方法对XAttn进行层正则化和残差连接,得到X的第一次正则化后的表示XAttn1,将XAttn1发送给前馈神经网络层。
5.2.5前馈神经网络层从第一正则化层接收XAttn1,采用线性映射方法将XAttn1进行线性映射,得到线性映射后的表示f(XAttn1),即f(XAttn1)=WF×XAttn1,其中WF为前馈神经网络层的参数,将f(XAttnn1)发送给第二正则化层。
5.2.6第二正则化层从前馈神经网络层接收线性映射后的表示f(XAttn1),利用正则化方法将f(XAttn1)进行层正则化和残差连接,得到X的第二次正则化后的表示f(XAttn1)2,将f(XAttn1)2作为序列句子级表示向量发送给分类映射模块。
5.5分类映射模块接收自适应注意力模块输出的f(XAttn1)2,将f(XAttn1)2映射为类别个数维度的原始预测向量(logits向量),经过Softmax操作得到X对应每个类别的概率,取最高概率对应的类别作为X的文本类别。
为验证本发明的效果,进行以下实验,实验过程是:
选择步骤2.1中的测试集文本集合V作为文本分类测试集,来模拟用户输入,评测本发明性能。实验的软件系统环境为Ubuntu22.04版本(即Linux系统的一个版本),搭载英特尔XeonGold系列6154中央处理器,处理频率为3.0Hz,另外配有四块英伟达TeslaV100显卡,每块显卡CUDA核心数为5120个,显存容量为32GB。在本实验环境下,采用本发明对V中的文本类别进行识别。测试过程与对用户输入的文本进行识别的方法一致,最后对识别的结果进行统计评价。
图3比较了本发明与基于深度学习算法已有的4种方法(BiLSTM、TextCNN、BiLSTM+Attention、Transformer)在IMDB、TREC两个数据集下的Acc值,这4种方法均不包含本发明所设计的自适应注意力模块的自适应阈值选择自注意力层。令V的预测标签为V’,在对比真实标签V#后得到以下评估指标:精确率(Acc)。本发明以Acc值作为最终的文本分类识别评价指标。通过图3可以看出,在IMDB、TREC两个数据集上,采用本发明进行文本分类相较于表的第一列中背景技术提出的四种深度学习算法,显著提高了Acc值。且本发明具有更简单的网络结构,能提高文本分类速度,本测试说明了本发明所提出方法的有效性。
以上对本发明所提供的基于自适应阈值选择自注意力的文本分类方法进行了详细介绍。本文对本发明的原理及实施方式进行了阐述,以上说明用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通研究人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (5)
1.一种基于自适应阈值选择自注意力的文本分类方法,其特征在于包括以下步骤:
第一步:构建文本分类系统;文本分类系统由自适应注意力模块和分类映射模块构成;
自适应注意力模块与分类映射模块相连,由词映射层,自适应阈值选择自注意力层,第一正则化层,前馈神经网络层和第二正则化层构成;
词映射层与自适应阈值选择自注意力层相连,接收用户输入的文本序列X或训练集文本集合T,若接收到用户输入的文本序列X,X={x1,x2,...,xi,...,xI},其中xi表示X中的第i个词,1≤i≤I,I为X中的词个数,利用GloVe 6B词嵌入方法将每个词映射为词级别编码,得到词级别编码G(X),G(X)={G(x1),G(x2),...,G(xi),...,G(xI)},其中G(xi)表示xi经过GloVe 6B映射后的词级别编码;词映射层将词级别编码G(X)发送给自适应阈值选择自注意力层;
自适应阈值选择自注意力层与词映射层、第一正则化层相连,从词映射层接收G(X),将G(X)与对应参数相乘作为计算注意力的查询即query向量、键即key向量和值即value向量,通过查询向量和键向量计算得到注意力权重矩阵A,通过G(X)计算出注意力权重阈值对注意力权重矩阵A和注意力权重阈值/>进行可微二值化操作,通过伯努利采样方法对A中的注意力值进行筛选,得到筛选后的注意力权重矩阵A’,利用A’与值向量计算得到筛选注意力后的表示Attn,将Attn发送给第一正则化层;
第一正则化层与自适应阈值选择自注意力层、前馈神经网络层相连,从自适应阈值选择自注意力层接收Attn,对Attn进行残差连接和正则化操作,得到第一次正则化表示Attn1,将Attn1发送到前馈神经网络层;
前馈神经网络层与第一正则化层、第二正则化层相连,从第一正则化层接收Attn1,对Attn1进行线性映射,得到线性映射后表示f(Attn1),将f(Attn1)发送到第二正则化层;
第二正则化层与前馈神经网络层、分类映射模块相连,从前馈神经网络层接收f(Attn1),对f(Attn1)进行残差连接和正则化处理,得到输出向量即序列句子级表示向量f(Attn1)2,将f(Attn1)2发送给分类映射模块;
分类映射模块与自适应注意力模块的第二正则化层相连,是一个线性分类层,线性分类层将从第二正则化层接收的f(Attn1)2进行线性映射,得到原始预测向量即logits向量,对logits向量进行Softmax操作后得到文本对应每个类别的概率,取最高概率的类别作为该文本的类别;
若词映射层接收训练集文本集合T,各模块的操作与对X的操作一样,但接收T时分类映射模块采用交叉损失熵函数计算损失loss进行反向传播来更新模型参数,接收X时不需要采用交叉损失熵函数计算损失loss进行反向传播来更新模型参数;
第二步:准备训练文本分类系统的数据集,方法是:
2.1采用TREC、IMDB数据集中的样本构建训练集、测试集;将TREC数据集中的5452条样本放到训练集,500条样本放到测试集;将情感分类IMDB数据集中的25000条样本放到训练集,25000条样本放到测试集;其中数据的每条样本包含一条文本和其对应的实际标签;训练集中的文本集合构成训练集文本集合T,训练集中的实际标签序列集合构成训练集实际标签序列集合T#;令T={T1,T2,···Tm,···,TM},其中Tm表示T中的第m条文本序列,1≤m≤M,M为T中的文本总数,M=30452; 表示Tm的第i个词,其中1≤i≤I;测试集中的文本集合构成测试集文本集合V,测试集样本中的实际标签序列集合构成测试集实际标签序列集合V#,T用于训练文本分类系统,T#用于在训练文本分类系统时计算训练损失,校正模型;V用于测试文本分类系统,V#用于和测试输出的标签进行比对,衡量进行测试的文本分类系统的性能;
第三步,采用T对自适应注意力模块、分类映射模块进行有监督方式训练,得到不同的网络权重参数,方法为:
3.1初始化自适应阈值选择自注意力层的参数集合Wt中的元素、前馈神经网络层的参数集合WF中的元素、分类映射模块的线性分类层的参数集合WY中的元素的值;
3.2设置网络训练超参数,包括设置批处理大小batch_size,编码丢弃率dropout,注意力保留数量阈值K,阶跃函数放大因子α,Gumbel-Softmax温度系数τ,损失函数中的正则化系数λ的初始值,并采用随机搜索的方法寻找网络模型学习率learning rate,衰减率decay,头数head,头维度head dimension,前馈神经网络层大小FFN size,预热学习率warmupp这些超参数最优值;
3.3采用有监督方式迭代训练自适应注意力模块、分类映射模块,每一轮训练得到预测标签序列T’,计算T’与T#的分布差距,得到损失值,最小化损失值并更新网络参数,直到满足迭代次数要求,得到自适应阈值选择自注意力层、前馈神经网络层及线性分类层的权重参数,方法如下:
3.3.1初始化训练迭代参数itretation=1;初始化迭代阈值E,E是[1,30]内的整数;
3.3.2令m=1;
3.3.3自适应注意力模块从T读取第m条文本序列Tm,自适应注意力模块的词映射层将Tm中的每个词映射为词级别编码G(Tm),将G(Tm)发送给自适应阈值选择自注意力层;
3.3.4自适应阈值选择自注意力层对G(Tm)进行注意力筛选,得到筛选注意力后的表示TAttn,将TAttn发送到第一正则化层;方法是:
3.3.4.1自适应阈值选择自注意力层采用融合阈值法对G(Tm)进行注意力筛选,首先将G(Tm)与参数相乘作为查询query向量Q,将G(Tm)与参数/>相乘作为键key向量K,将G(Tm)与参数/>相乘作为值value向量Val,对query,key和value向量计算得到注意力矩阵A;然后利用G(Tm)计算得到注意力阈值向量/>融合阈值法是:
3.3.4.1.1令i=1;
3.3.4.1.2自适应阈值选择自注意力层将Tm的第i个单词的词级别编码与参数/>相乘作为查询向量Q的第i行Qi,与参数/>相乘作为键向量K的第i行Ki,与参数/>相乘作为值向量Val的第i行Vali,利用自注意力方法计算得到第i个词/>对于/>的注意力向量,作为注意力矩阵A的第i行Ai;
3.3.4.1.3自适应阈值选择自注意力层根据G(Tm)计算注意力阈值向量的第i行/>
3.3.4.1.4令i=i+1,如果i≤I,转3.3.4.1.2;否则说明得到注意力矩阵A和注意力阈值向量转3.3.4.2;
3.3.4.2自适应阈值选择自注意力层采用二值可微化方法构造二值化矩阵Z,用来表示A中的注意力值是否有效;Z中第i行第j列元素zij=0或1,zij=1表示A中第i行第j列注意力值Aij大于阈值键向量Kj被查询向量Qi选择,zij=0表示Aij小于阈值/>键向量Kj被查询向量Qi丢弃;方法是:
3.3.4.2.1令i=1,j=1;
3.3.4.2.2使用近似阶跃函数得到关于Aij的采样变量bij,其中α是放大系数,α大于1;
3.3.4.2.3令代表zij取值为k的概率,根据采样变量定义得到采用基于Gumbel-Softmax的采样方法,用/>代替直接伯努利采样/>其中gk和gl是Gumbel分布采样变量,从Gumbel(0,1)分布中随机采样得到,τ是温度系数,设置为1;由以上定义得到
3.3.4.2.4令j=j+1,若j≤I,转3.3.4.2.2;若j>I,令i=i+1,若此时i≤I,令j=1,转3.3.4.2.2,若此时i>I,说明所有zij计算完毕,得到T的二值化矩阵Z,转3.3.4.3;
3.3.4.3自适应阈值选择自注意力层根据二值化矩阵Z利用赋值计算法计算T的筛选后的注意力权重矩阵A′,并利用A′计算筛选注意力后的表示TAttn,将TAttn发送到第一正则化层;方法是:
3.3.4.3.1令i=1,j=1;
3.3.4.3.2若zij=1,令A′的第i行第j列元素A′ij=Aij;若zij=0,则令A′ij=-∞;
3.3.4.3.3令j=j+1,若j≤I,转3.3.4.3.2;若j>I则令i=i+1,若i≤I,令j=1,转3.3.4.3.2,否则说明得到了新的注意力矩阵A′中所有元素,转3.3.4.3.4;
3.3.4.3.4自适应阈值选择自注意力层根据A′计算筛选注意力后的表示Attn,将A′逐行进行softmax操作,得到softmax(A′),再将softmax(A′)与值向量Val相乘得到TAttn,将TAttn发送到第一正则化层;
3.3.4.4第一正则化层从自适应阈值选择自注意力层接收TAttn,利用正则化方法将TAttn进行层正则化和残差连接,得到第一次正则化后的表示TAttn1,将TAttn1发送给前馈神经网络层;
3.3.4.5前馈神经网络层从第一正则化层接收第一次正则化后的表示TAttn1,利用线性映射方法对TAttn1进行线性映射,得到线性映射后的表示f(TAttn1),即f(TAttn1)=WF×TAttn1,将f(TAttnn1)发送给第二正则化层;
3.3.4.6第二正则化层从前馈神经网络层接收f(TAttn1),利用正则化方法将f(TAttn1)进行层正则化和残差连接,得到第二次正则化后的表示f(TAttn1)2,将f(TAttn1)2作为序列句子级表示向量发送给分类映射模块;
3.3.5分类映射模块从第二正则化层接收f(TAttn1)2,将f(TAttn1)2线性映射为类别个数维度的logits向量,对logits向量进行softmax操作,得到Tm对应的每个类别的概率,取最高概率的类别作为预测标签T’;
3.3.6分类映射模块采用交叉损失熵函数计算T’和T#之间的差距,得到损失值Loss,使用SGD优化算法对Loss最小化,通过反向传播以更新一次文本分类系统中自适应阈值选择自注意力层、前馈神经网络层、线性映射层的权重参数;
3.3.7令m=m+1,如果m≤M,转3.3.3;如果m>M,说明T的M个文本都已经参与训练,一次迭代训练已经完成,转3.3.8;
3.3.8令itretation=itretation+1,如果itretation≤迭代阈值E,转3.3.2;否则说明训练满足迭代次数要求,训练结束,得到了文本分类系统中自适应阈值选择自注意力层、前馈神经网络层、线性映射层的权重参数,转第四步;
第四步,将训练得到的权重参数赋值给文本分类系统各模块;即将训练得到的Wt作为自适应注意力模块自适应阈值选择注意力层计算注意力和阈值的网络权重参数;将训练得到的WF作为自适应注意力模块前馈神经网络层的网络权重参数,将训练得到的WY作为分类映射模块的线性分类层权重参数,得到训练好的文本分类系统;
第五步:使用训练好的文本分类系统对用户输入的文本X进行文本分类,得到X的文本类别,方法为:
5.1自适应注意力模块的词映射层接收用户输入的文本X,X={x1,x2,···,xi,···,xI},其中xi代表输入文本中的第i个词,将文本中的每个词映射为词级别编码,得到X的词级别编码G(X)={G(x1),G(x2),··G(xi),···,G(xI)},G(xi)为词xi的词级别级编码,将G(X)发送给自适应阈值选择自注意力层;
5.2自适应阈值选择自注意力层从词映射层接收X的词级别编码G(X),对G(X)进行注意力筛选,得到筛选后的表示XAttn,将XAttn发送给第一正则化层;方法是:
5.2.1自适应阈值选择自注意力层采用3.3.4.1步所述融合阈值法,首先将G(X)与参数相乘作为查询query向量QX,将G(X)与参数/>相乘作为key向量KX,将G(X)与参数/>相乘作为value向量ValX,对query,key和value向量计算得到X的注意力矩阵AX;然后利用G(X)计算得到X的注意力阈值向量/>
5.2.2自适应阈值选择自注意力层利用AX和采用3.3.4.2步所述二值可微化方法构造X的二值化矩阵ZX,用来表示AX中的注意力值是否有效;ZX中第i行第j列元素/>或1,表示AX的第i行第j列元素/>大于/>的第i个元素/>KX的第j行键向量/>被QX的第i行查询向量/>选择,zij=0表示注意力得分/>小于阈值/>键向量/>被查询向量/>丢弃;
5.2.3自适应阈值选择自注意力层根据ZX采用3.3.4.3步所述赋值计算法计算筛选后的X的注意力矩阵A′X,并利用A′X计算X的筛选注意力后的表示XAttn,将XAttn发送给第一正则化层;
5.2.4第一正则化层从自适应阈值选择自注意力层接收XAttn,采用正则化方法对XAttn进行层正则化和残差连接,得到X的第一次正则化后的表示XAttn1,将XAttn1发送给前馈神经网络层;
5.2.5前馈神经网络层从第一正则化层接收XAttn1,采用线性映射方法将XAttn1进行线性映射,得到线性映射后的表示f(XAttn1),即f(XAttn1)=WF×XAttn1,其中WF为前馈神经网络层的参数,将f(XAttnn1)发送给第二正则化层;
5.2.6第二正则化层从前馈神经网络层接收线性映射后的表示f(XAttn1),利用正则化方法将f(XAttn1)进行层正则化和残差连接,得到X的第二次正则化后的表示f(XAttn1)2,将f(XAttn1)2作为序列句子级表示向量发送给分类映射模块;
5.5分类映射模块接收自适应注意力模块输出的f(XAttn1)2,将f(XAttn1)2映射为类别个数维度的原始预测向量即logits向量,经过Softmax操作得到X对应每个类别的概率,取最高概率对应的类别作为X的文本类别。
2.如权利要求1所述一种基于自适应阈值选择自注意力的文本分类方法,其特征在于3.1步初始化权重参数的方法是:将Wt中的元素初始化为[0,1]的随机数;将WF中的元素初始化为[0,1]的随机数;将WY中的元素初始化为[0,1]的随机数。
3.如权利要求1所述一种基于自适应阈值选择自注意力的文本分类方法,其特征在于3.2步所述batch_size设置为8,dropout设置为0.5,K设置为3,α设置为50,τ设置为1,λ设置为4×10-6,learning rate设置为集合{1×10-3,8×10-4,6×10-4}中的任意值,decay值设置为0.05,head设置为集合{4,8,12}中的任意值,head dimension设置为集合{8,10,12}中的任意值,FFN size设置为集合{4,6,8}×head×head dimension中的任意值,warmup设置为集合{1,5,10}中的任意值。
4.如权利要求1所述一种基于自适应阈值选择自注意力的文本分类方法,其特征在于3.3.1步所述迭代阈值E初始化为22。
5.如权利要求1所述一种基于自适应阈值选择自注意力的文本分类方法,其特征在于3.3.4.1.3步所述自适应阈值选择自注意力层根据G(Tm)计算注意力阈值向量的第i行/>的方法是:
3.3.4.1.3.1计算Ai的初始阈值Li,Li=Wt×[G(Ti m);mp(G(Tm));G(Ti m)⊙mp(G(Tm));G(Ti m)-mp(G(Tm))],其中Wt是自适应阈值选择自注意力层的参数矩阵,G(Ti m)是G(Tm)的第i行即第i个词的词级别编码,⊙代表向量之间相同的位置对应相乘,mp(G(Tm))代表对G(Tm)进行平均池化操作,[]内构成矩阵,中间的分号表示拼接操作;
3.3.4.1.3.2自适应阈值选择自注意力层将第i个词的查询向量Qi所对应的阈值设置为其中topki代表A的第i行Ai中的第k大的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310552473.1A CN116561314B (zh) | 2023-05-16 | 2023-05-16 | 基于自适应阈值选择自注意力的文本分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310552473.1A CN116561314B (zh) | 2023-05-16 | 2023-05-16 | 基于自适应阈值选择自注意力的文本分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116561314A CN116561314A (zh) | 2023-08-08 |
CN116561314B true CN116561314B (zh) | 2023-10-13 |
Family
ID=87487656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310552473.1A Active CN116561314B (zh) | 2023-05-16 | 2023-05-16 | 基于自适应阈值选择自注意力的文本分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116561314B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116992033B (zh) * | 2023-09-25 | 2023-12-08 | 北京中关村科金技术有限公司 | 文本分类的阈值确定方法、分类方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111368079A (zh) * | 2020-02-28 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种文本分类的方法、模型训练的方法、装置及存储介质 |
CN112560438A (zh) * | 2020-11-27 | 2021-03-26 | 同济大学 | 一种基于生成对抗网络的文本生成方法 |
WO2021143396A1 (zh) * | 2020-01-16 | 2021-07-22 | 支付宝(杭州)信息技术有限公司 | 利用文本分类模型进行分类预测的方法及装置 |
-
2023
- 2023-05-16 CN CN202310552473.1A patent/CN116561314B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021143396A1 (zh) * | 2020-01-16 | 2021-07-22 | 支付宝(杭州)信息技术有限公司 | 利用文本分类模型进行分类预测的方法及装置 |
CN111368079A (zh) * | 2020-02-28 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种文本分类的方法、模型训练的方法、装置及存储介质 |
CN112560438A (zh) * | 2020-11-27 | 2021-03-26 | 同济大学 | 一种基于生成对抗网络的文本生成方法 |
Non-Patent Citations (1)
Title |
---|
顾天飞 ; 彭敦陆 ; .基于配对排序损失的文本多标签学习算法.小型微型计算机系统.2020,(10),第31-36页. * |
Also Published As
Publication number | Publication date |
---|---|
CN116561314A (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980683B (zh) | 基于深度学习的博客文本摘要生成方法 | |
Cao et al. | A novel neural topic model and its supervised extension | |
CN109766277B (zh) | 一种基于迁移学习与dnn的软件故障诊断方法 | |
CN111858931B (zh) | 一种基于深度学习的文本生成方法 | |
CN109522411A (zh) | 一种基于神经网络的写作辅助方法 | |
CN112819023B (zh) | 样本集的获取方法、装置、计算机设备和存储介质 | |
CN110704601A (zh) | 利用问题-知识引导的渐进式时空注意力网络解决需要常识的视频问答任务的方法 | |
CN111881262A (zh) | 基于多通道神经网络的文本情感分析方法 | |
CN111105013B (zh) | 对抗网络架构的优化方法、图像描述生成方法和系统 | |
CN112052684A (zh) | 电力计量的命名实体识别方法、装置、设备和存储介质 | |
CN112016313B (zh) | 口语化要素识别方法及装置、警情分析系统 | |
CN112749274B (zh) | 基于注意力机制和干扰词删除的中文文本分类方法 | |
CN111738007A (zh) | 一种基于序列生成对抗网络的中文命名实体识别数据增强算法 | |
CN113821670B (zh) | 图像检索方法、装置、设备及计算机可读存储介质 | |
CN111078847A (zh) | 电力用户意图识别方法、装置、计算机设备和存储介质 | |
CN112766507B (zh) | 基于嵌入式和候选子图剪枝的复杂问题知识库问答方法 | |
CN112232087A (zh) | 一种基于Transformer的多粒度注意力模型的特定方面情感分析方法 | |
CN116561314B (zh) | 基于自适应阈值选择自注意力的文本分类方法 | |
CN116303977B (zh) | 一种基于特征分类的问答方法及系统 | |
CN114528835A (zh) | 基于区间判别的半监督专业术语抽取方法、介质及设备 | |
CN111145914B (zh) | 一种确定肺癌临床病种库文本实体的方法及装置 | |
CN114692605A (zh) | 一种融合句法结构信息的关键词生成方法及装置 | |
CN115270752A (zh) | 一种基于多层次对比学习的模板句评估方法 | |
CN111026887A (zh) | 一种跨媒体检索的方法及系统 | |
CN114239730A (zh) | 一种基于近邻排序关系的跨模态检索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |