技术领域
[0001] 本发明涉及一种半监督学习和文本分类,具体涉及一种对抗学习、深度半监督学习和强化学习方法。
相关背景技术
[0002] 21世纪以来,随着信息技术的快速发展,互联网已经对我们的日常生活产生重大而深刻的影响。在海量的互联网数据中,文本数据最为常见、数据量最大、内容最丰富,因此文本挖掘技术受到了研究者们的广泛关注。实现文本数据挖掘最为常见的手段就是文本分类。传统的文本分类方法通常是以有监督学习的方式进行,为了达到较好的学习效果,通常需要充足的有标记样本且数据噪声越少越好,但这些条件在实际应用中难以得到满足,这是因为获取有标注的文本通常需要大量的人力和时间,而且在样本数据激增时产生噪声的可能性也越大,因此只利用有标记样本训练得到的学习器的泛化性能往往是十分有限的。
[0003] 半监督文本分类能够同时利用有标记样本和未标记样本训练学习器,通过不同的半监督学习方法同时利用有标记和无标记样本的信息能提高分类器的泛化性能。传统的半监督学习方法通常基于统计机器学习的思路,后来基于神经网络的半监督学习方法变得越来越流行,但它们大都是针对词嵌入做改进,使用不同的方法得到无监督语言模型,而后将得到的词嵌入输入到CNN或RNN中,并未考虑对网络本身做出改进,也没有使用更加强大的方法使模型的鲁棒性和正则化能力更强。
[0004] 对抗学习方法以神经网络为基础,可以通过原始样本和对抗样本的相互作用、网络与网络之间的对抗不断迭代训练,进而显著提高文本分类器的性能。
具体实施方式
[0071] 下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0072] 一种基于对抗训练和对抗学习网络的半监督文本分类方法,该方法主要包括三个阶段,分别是:预测网络和评判网络的初始化阶段、预测网络和评判网络的对抗学习阶段、模型预测阶段,如图1-3所示,具体包括如下步骤:
[0073] 步骤1,初始化阶段:初始化预测网络和初始化评判网络。在初始化预测网络阶段,根据无监督预训练初始化模型的词嵌入层并进行对抗扰动和虚拟对抗扰动,采取混合式代价函数计算得到预测网络;初始化评判网络阶段,根据得到的预测网络对无标记样本集进行标签预测,并使用交叉熵最小化初始化评判网络。详细分为如下步骤:
[0074] S101、对输入文本使用序列自编码器进行无监督预训练,将得到的词嵌入保存。
[0075] S102、对词嵌入进行对抗扰动和虚拟对抗扰动,并将扰动后得到的序列输入至基于attention 机制和双向LSTM网络的预测网络中。
[0076] 将包含T个词的序列表示为{x1,x2,…,xT},其对应的标记为y。为了将离散输入转换为连续的向量表示,定义词向量矩阵 其中K表示词汇表中的单词数,每一行Vk是关于第k个词的词向量,之所以是K+1行,是因为需要一个额外的词尾标记EOS。作为文本文本模型,使用基于BiLSTM和attention机制的神经网络,在时间步t时,输入是离散的词xt,与之对应的词向量为et,将对抗扰动和虚拟对抗扰动加入到模型的Embedding层。
[0077] 当对上面定义的模型应用对抗和虚拟对抗训练时,首先要将词嵌入ek标准化为公式为:
[0078]
[0079] 其中,
[0080]
[0081]
[0082] fj表示第j个词的词频,通过整个训练样本集求得。
[0083] 对抗训练用于增强对小的、近似最坏情况下扰动的鲁棒性。用x表示输入,用θ表示分类器的参数,当对抗训练应用于分类器时,对抗样本rat的生成公式如下:
[0084]
[0085] 其中,
[0086]
[0087] 它可以通过神经网络使用反向传播得到。
[0088] 因为要将对抗扰动应用在词向量上,我们用[e1,e2,…,eT]表示词向量序列s,模型的条件概率为p(y|s;θ),其中θ是模型的参数,在词向量序列s上的对抗扰动需要对 进行一点改动,如下公式所示:
[0089]
[0090] 所以可以得到经过对抗扰动后的词向量序列s*为 s*=s+rat
[0091] 相应的对抗损失定义为下式:
[0092]
[0093] 其中NL是有标记样本的数量。
[0094] 虚拟对抗训练引入额外的代价如下:
[0095]
[0096] 其中rvat是虚拟对抗扰动,根据下式生成:
[0097]
[0098]
[0099] 可以得到经过虚拟对抗扰动后的词向量序列s*为s*=s+rva
[0100] 上式所对应的虚拟对抗损失Lvat定义如下:
[0101]
[0102] 其中N表示有标记样本和无标记样本的总数量,即N=NL+NU,NU是无标记样本的数量。 S103、基于混合式代价函数训练预测网络,使用梯度下降法使得混合式代价最小化。
[0103] 为了能够让模型在有标记样本和无标记样本上训练达到最好的效果,本文提出使用混合式代价函数(Loss of Mixed Cost Function,Lmcf),通过最小化混合式代价函数来得到模型的参数,混合式代价函数Lmcf定义如下:
[0104] Lmcf=λcLc+λatLat+λvatLvat
[0105] 其中Lc是只在有标记样本集上应用模型的代价函数,可以使用交叉熵,Lat是对抗损失,Lvat是虚拟对抗损失,λc、λat、λvat为超参数。
[0106] S104、根据得到的预测网络对无标记样本集进行标签预测,并使用交叉熵最小化初始化评判网络。
[0107] 使用评判网络Jω估计输入数据标签对是真实数据标签对的概率。在所提出框架中,通过使用一组真实标记实例{(xi,yi)∈DL}作为正例和一组未标记实例及其对应的预测标记 作为反例来训练Jω。Jω需要能尽可能清楚地区分正例和反例,因此通过使评判模型的交叉熵最小化得到,如下式所示:
[0108]
[0109] 步骤2,对抗学习阶段:通过预测网络和评判网络的对抗作用,更新网络模型的参数,利用policy gradient策略对预测网络进行不断的优化,直至达到最优的效果。
[0110] 基于强化学习来建模预测问题,强化学习将输入x视为状态state,将x相应的预测标记 为动作action。预测器 可以被视为策略网络(Policy Network),策略网络确定在模型给定参数θ及状态x的情况下选择动作 的概率。策略模型的目标是生成合适的预测标记以最大化期望奖励R:
[0111]
[0112] 其中Y是所有可行的动作空间,f(·)是选择 作为动作的action-value函数,在半监督学习中,给定输入数据,一个好的预测器需要能生成尽可能接近真实标记的预测标签,因此 action-value函数可以被定义为预测标记 和真实标记y之间的相似度,公式如下:
[0113]
[0114] 在action-value函数中使用 的主要优点是Jω是动态更新的,因此它可以迭代进一步改善预测器Pθ。
[0115] 最大化式目标函数需要计算关于模型参数θ的梯度,如下:
[0116]
[0117] 上式可以变形写成:
[0118]
[0119] 在实践中使用小批次的数据来训练,一个批次假设由m个有标记样本和m个无标记样本组成,近似的梯度计算如下:
[0120]
[0121] 因此,预测模型的参数θ的更新公式为:
[0122]
[0123] 其中η表示学习率,θt表示当前t时刻的参数,θt+1表示t+1时刻的参数值,以上是policy gradient的核心内容。
[0124] 步骤3,模型预测阶段,使用已经训练好的预测网络对新样本的标签进行预测,得到新样本的标签。
[0125] 使用已经训练好的预测网络对新样本进行预测,通过softmax函数得出最接近真实情况的标签。
[0126] 结合图2说明对抗学习网络互相对抗学习的过程:
[0127] 对抗学习网络将self-training和对抗网络的思路相结合,在self-training框架下构建的模型不需要通过实例重构来近似数据分布,因此克服了基于GAN的半监督学习方法的局限性,另一方面,受对抗网络的启发,对抗学习网络中将评判网络J(judge network)引入self-training 以分辨某个数据实例的给定标记是否是真实的,从而降低有可能造成错误累积的风险,使得 self-training变得更加稳定,鲁棒性增强。
[0128] 假设有标记样本集合DL表示为DL={(x1,y1),…,(xL,yL)|xi∈X,yi∈Y},未标记样本集合 DU表示为DU={(xL+1,…,xL+U)|xi∈X}。将半监督学习的预测网络P形式化为一个强化学习的agent,其中它的状态(state)是输入数据,动作(action)是预测标记。因此,学习问题的主要目标转换为要学习到一个好的策略(policy),使得所生成的预测标记可以使总的奖励 (reward)期望最大化,可以通过policy gradient的策略学习预测网络P,评判网络J用于评估预测标记并提供评估反馈以指导预测网络P的学习。采用J的输出作为奖励的反馈可以迭代地改进预测网络P,因为奖励也是动态更新的。具体步骤如下:
[0129] S201、预测网络利用有标记数据集样本进行学习,学习之后对未标注数据集给出相应的预测。
[0130] S202、评判网络同时利用有标记数据集和无标记数据集,并通过交叉熵最小化初始化评判网络。
[0131] S203、评判网络根据给出的预测标记给予相应的奖励返回给预测网络。
[0132] S204、预测网络根据奖励值通过policy gradient方法不断调整、优化预测网络的参数。
[0133] S205、以上步骤迭代重复,直至达到最大迭代次数停止。
[0134] 图3是基于对抗训练和对抗学习网络的算法流程图,具体步骤为:
[0135] S301、对抗学习之前,在有标记样本数据集上通过混合式代价函数预训练预测网络。
[0136] S302、根据预测网络对未标记样本给出预测标记。
[0137] S303、通过在有标记和无标记样本的预测标记实例上使用最小化交叉熵预训练评判网络。
[0138] S304、进入对抗学习的循环主体,在每轮循环中对m个无标记样本通过预测网络得到其预测标签,每迭代k步后,将会根据真实标记样本对和无标记样本及其预测标签对中更新评判网络。
[0139] S305、计算更新后的action-value函数,计算期望收益的梯度。
[0140] S306、通过policy gradient更新预测网络的参数。
[0141] S307、结束。
[0142] 综上所述,本发明通过使用对抗学习的方法来解决半监督文本分类问题,通过使用对抗扰动对输入进行扰动生成对抗样本,使用虚拟对抗扰动生成虚拟对抗样本,进而使用对抗训练进行预测模型的训练和学习,其中预测模型基于attention机制和双向LSTM网络。同时我们利用评判网络与预测网络的对抗作用迭代更新网络的参数,使得模型能不断调整,优化自身,达到更好的分类性能。基于对抗训练的方法使用对抗训练损失和虚拟对抗训练损失,相当于一种正则化的方式,可以有效避免模型出现过拟合;对抗学习网络使得模型不断迭代优化,有效提升了模型的泛化性能。本方法利用对抗训练可以有效提高模型的正则化能力,增强模型的鲁棒性,同时借鉴对抗学习可以直接利用未标记样本进行模型的训练,通过对抗学习网络中子网络间的对抗作用不断迭代,能有效提高网络的分类性能。
[0143] 以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。