黄 瑶,潘丽丽,熊思宇,蒋湘辉,马俊勇
(中南林业科技大学计算机与信息工程学院,湖南 长沙 410004)
香农将整个网络空间的信息安全系统分为加密系统、隐私系统和隐藏系统。在保护信息安全的同时,加密系统和隐私系统也暴露了信息的存在性和重要性,这使得目标暴露给潜在的攻击者,从而容易受到有针对性的攻击。隐藏系统将秘密信息嵌入到特定的载体中,以确保信息安全。隐藏系统作为一种非常独特的信息安全系统,在保障网络空间安全方面发挥着重要作用。
在网络空间中,有不同的载体可以用于信息隐藏,包括图像[1,2]、音频[3,4]、视频[5,6]和文本[7-11]等,其中,文本作为人类交流最常用的一种载体,表达的信息非常丰富且使用频率很高,很适合进行信息隐藏。因此,文本隐写术的研究具有很高的实用价值。然而,由于文本的冗余信息量较少,隐藏文本中的信息具有一定的挑战性。目前,文本隐写术可以分为2种:基于文本修改的[9-11]隐写术和基于文本生成的[7,8]隐写术。基于文本修改的隐写术主要是通过修改和替换不同粒度的文本内容来嵌入秘密信息,如采用同义词替换来实现秘密信息嵌入,其特点是文字变化少,因此可以达到较高的隐蔽性。然而,由于文本信息的冗余度很小,基于文本修改的隐写术难以达到很高的隐藏容量。基于文本生成的隐写术可以根据秘密信息自动生成隐写文本,具有更高的信息隐藏能力。然而,如何生成高质量的自然文本是基于生成的文本隐写术面临的一个关键问题。文献[7]提出一种基于循环神经网络的隐写文本自动生成模型,首先从大量的正常文本中学习统计语言分布模型,然后生成符合这种统计模式的文本;在句子生成过程中,利用二叉树对每个单词的条件概率分布进行编码,实现秘密信息隐藏,但该模型忽略了句子间的相关性,并且存在暴露偏差的问题,影响隐写系统的安全性。
本文提出一种基于生成对抗网络与多头注意力的文本隐写术TS-GANMA(Text Steganography based on Generative Adversarial Networks and Multi-head Attention)。在生成对抗网络的对抗训练中,多头注意力得分参与计算奖励,以优化文本生成器,解决隐写过程中暴露偏差的问题,使生成的隐写文本具有更好的隐蔽性。
在早期阶段,有些研究人员研究了基于规则的文本隐写术。然而,这些方法遵循简单的模式,难以保证生成的隐写文本的语法正确性和语义流畅性。基于文本生成的隐写术通常具有很高的隐藏容量,被认为是文本隐写领域一个重要的研究方向。基于文本生成的隐写术经历了2个发展阶段:基于马尔可夫链的隐写术和基于神经网络的隐写术。与基于文本修改的隐写术不同,基于文本生成的隐写术不需要预先给定载体,而是根据需要传输的秘密信息直接生成隐写文本。基于马尔可夫链的文本隐写术主要利用马尔可夫链的无记忆性和不变性对随机过程建模,通过不同的状态转移映射成不同的秘密信息,实现秘密信息的隐藏[12,13]。然而,基于马尔可夫链的隐写术对长序列依赖不敏感,而这种不敏感会降低隐写文本的生成质量。近年来随着自然语言处理的发展,出现了越来越多的自动文本生成模型。基于神经网络的文本隐写术常用的语言模型有基于循环神经网络RNN(Recurrent Neural Network)的生成模型[7]、基于变分自编码器VAE(Variational Auto-Encoder)的生成模型[14]和基于Transformer的生成模型[15]等。Hochreiter等[16]提出的长短期记忆LSTM(Long Short-Term Memory)网络可以很好地捕捉序列长期依赖。实验表明LSTM隐写术取得了更好的隐写文本生成效果。Fang等[8]采用LSTM网络作为语言模型,使用块状编码对候选词提前分块,使得生成词与秘密信息建立映射关系。
基于文本生成的隐写术的性能很大程度取决于文本生成方法本身。生成自然、流畅、无偏见的文本是保证隐写术安全性的前提。目前,大多数方法都使用最大似然估计MLE(Maximum Likelihood Estimation)训练文本生成模型[7,17,18]。最大似然估计是一种常用的参数估计方法,其基本思想是在已知概率分布函数的情况下,通过观测到的样本数据,求解出该概率分布函数的未知参数的最优值。但是,这种训练方法存在偏差暴露的问题,影响隐写文本的生成质量。针对以上问题,本文提出了基于生成对抗网络与多头注意力的文本隐写术TS-GANMA,在TS-GANMA对抗训练中多头注意力参与计算奖励,将得到的奖励信号用于更新生成器。通过该模型得到的文本生成器能够生成高质量的隐写文本。
本节首先展示所提出的基于生成对抗网络与多头注意力的文本隐写术TS-GANMA的总体结构。该方法包括1个基于双层LSTM的生成器和1个基于Transformer的鉴别器;然后给出了生成器和鉴别器的详细设计;最后介绍训练过程中奖惩模块和多头注意力的作用。
本文提出的基于生成对抗网络的TS-GANMA结构主要包括1个生成器和1个鉴别器,如图1所示。由于长短期记忆网络(LSTM)对于时序信号具有较强的建模能力,本文选择双层LSTM作为生成器来增强整个网络的建模能力。LSTM可以获取每个时间步长的单词概率,并将当前时间步长的输出作为下一时间步长的输入。训练过程中,生成器生成大量生成文本,然后利用生成文本与真实文本对鉴别器进行训练。因为Transformer具有强文本特征提取能力,本文使用基于Transformer的网络作为鉴别器。在生成器训练时预先设置训练步数,通过生成器生成批量生成文本,再将生成文本送到鉴别器中,以获得它们与真实文本的接近程度。然后使用分类概率和文本通过Transformer鉴别器得到的多头注意力分数共同计算奖励值,引导生成器继续训练。通过生成器和鉴别器对抗训练,使两者共同得到提升。算法1中给出了训练的整个过程,图2为算法1的流程图。
Figure 1 Structure of TS-GANMA model
Figure 2 Flow chart of TS-GANMA model training
算法1TS-GANMA模型训练
输出:生成器G。
步骤1随机初始化生成器G和鉴别器D;
步骤2输入T,使用最大似然估计的方法预训练生成器G;
步骤4输入T和S,使用最小化交叉熵预训练鉴别器D;
步骤5 forepochdo/*epoch表示训练的总轮次*/
步骤6forg-epochdo/*g-epoch表示对抗学习时生成器训练的轮次*/
步骤7将生成序列输入到鉴别器D;
步骤8在每个时间步骤上,应用蒙特卡洛搜索抽样,得到完整序列;
步骤9根据鉴别器D计算每个序列的对应的奖励{D1,D2,D3,…,D|T|};
步骤10通过鉴别器D得到序列的多头注意力得分和分类结果,输入到奖惩模块对奖励再次更新,得到最终的奖励;
步骤11根据最终的奖励更新生成器G参数;
步骤12endfor
步骤13ford-epochdo/*d-epoch表示对抗学习时鉴别器训练的轮次*/
步骤14使用当前的生成器G生成负样本S和正样本训练鉴别器D;
步骤15endfor
步骤16endfor
步骤17returnG;
TS-GANMA运行模式如下:首先,通过生成对抗网络训练大量真实文本样本,优化生成器;其次,利用训练好的生成器自动生成文本,在生成过程中,通过对每个词的条件概率分布进行编码,嵌入秘密信息。
文本生成的结果可以建模为序列X=(x1,x2,…,xn)。本文主要利用LSTM对序列信号进行特征提取和建模,增加LSTM层以加强生成器对文本的序列信号的建模能力。生成器依次读取序列的每个单词,通过词嵌入将单词转换为固定长度的单词向量,并将其提供给双层LSTM。对于LSTM层,输入为当前t时刻单词向量xt和t-1时刻的隐藏层状态ht-1,输出为Ot,基于双层LSTM的生成器工作原理如式(1)所示:
(1)
其中,It表示输入门,Ft表示遗忘门,Ot表示输出门,Ct表示细胞状态,ht表示隐藏状态,W和b分别表示学习的权重和偏差;[·,·]表示矩阵连接,tanh(·)表示激活函数。
t时刻的输出为ht和Ot,ht作为t+1时刻的隐藏状态继续参与下一个操作,Ot作为输出发送到生成器的下一个全连接层。全连接层的Softmax可以将概率进行投影得到向量St=(St1,St2,…,Stq),其中,Stj(1≤j≤q,q表示训练集文本中独一无二单词的数量)表示单词uj出现在序列中t时刻位置的条件概率,具体如式(2)所示:
Stj=S(uj|u1,u2,…,uj-1)
(2)
TS-GANMA会以一定的概率抽样结果或选择概率最高的值作为文本序列的下一个元素,迭代完成整个文本序列的生成。
鉴别器的主要作用是判断输入文本是真实的文本还是生成的文本。由于Transformer可以从不同的粒度提取文本的特征,本文采用Transformer的编码器作为鉴别器,以增强网络的鉴别能力。通过Transformer中的多头注意力机制得到鉴别序列更丰富的文本数据特征,将得到的多头注意力分数运用到后续的奖励计算。鉴别器的输入是由n个单词组成的完整文本序列X=(x1,x2,…,xn),序列从生成器生成的文本或者真实文本中获得。鉴别器的第1层为嵌入层,将序列中的每个单词转换为1个单词向量,从而形成1个单词向量矩阵x,然后将单词向量矩阵x输入到Transformer层,输出通过全连接层和激活函数生成,最后可以得到正常文本的预测概率。鉴别器的损失函数如式(3)所示:
(3)
本文在鉴别器中加入了的Dropout机制,防止网络过拟合。
生成对抗网络是用来生成实值连续数据的,不能直接生成离散的标记序列。TS-GANMA模型通过损失梯度指导生成器参数进行“轻微变化”,使得生成的实值连续数据具有离散的效果,与真实数据的相似度更高。如果生成的数据是基于离散标记的,鉴别器的“轻微变化”指导就没有意义。这是因为在有限的字典空间中可能没有对应的标记表示这种“轻微变化”,不能使用损失函数直接更新生成网络参数。因此,本文使用强化学习的方法,并使用奖励作为生成网络损失函数来更新生成网络。目标函数定义如式(4)所示:
(4)
(5)
其中,F(·)表示奖惩函数,Z表示由鉴别器得到的分类概率,W表示多头注意力得分权重。
生成器的训练目的是最大化目标函数,使得鉴别器判别生成器生成的文本为真实文本。但是,鉴别器通常只能为一个完整的序列进行鉴别。因此,在奖惩函数计算中需要关注的是一个长期的累积奖励,在每个时间步骤上,应用蒙特卡洛搜索抽样未知的后续单词。搜索过程如式(6)所示:
(6)
其中,x1:|T|表示搜索出的整个文本序列,cl表示当前序列的长度,N表示搜索的次数。
对于一个不完整的序列,本文选择一个与生成器共享参数的网络进行采样搜索;通过采样补充序列的后续部分,形成一个完整的序列,然后通过鉴别器进行鉴别得到分类概率。当前序列长度为cl时,鉴别器得到的分类概率的计算方法如式(7)所示:
(7)
其中,|T|表示完整序列的长度。
使用鉴别器估计的概率作为奖惩模块的一个基本奖励。通过鉴别器得到的一个基本奖励输入到奖励函数中,并将多头注意力的得分和序列分类结果输入到奖励函数,得到最终的奖励。由于序列的长度会使得注意力得分过大或过小,通过数学缩放的方法,可以在不改变数据之间大小关系的情况下缩放数据。因此,本文采用数学缩放方法对多头注意力得分进行缩放,得到的结果为多头注意力得分权重W如式(8)所示:
(8)
其中,AS表示多头注意力得分,down表示区间的大小,up表示区间的下限。
鉴别器得到的分类概率Z和多头注意力得分权重W传入到奖惩模块,应用奖励函数F(·)得到最终的奖励,如式(9)所示:
(9)
其中,CR表示完整序列的分类概率。
最后得到的奖励为最终奖励,通过奖励对生成器反馈进行参数更新。设置学习率为a,生成器的参数更新如式(10)所示:
θ←θ+a∇θJ(θ)
(10)
目标函数的J(θ)梯度可以导出式(11):
∇J(θ)=
(11)
本文实验基于TensorFlow和Python进行,使用NVIDIA®GeForce®GTXTM2070 GPU和CUDA10.0加快模型训练。词向量的维度设置为32,生成器的隐藏单元数目设置为32,学习率设置为0.001。本文选择Adam优化器,Dropout设置为0.5。生成器的预训练使用最大似然的方法训练,训练轮次为80,鉴别器预训练轮次为80,对抗学习轮次为100。
本文使用Image COCO和EMNLP WAMT17文本数据集作为真实文本样本。Image COCO是用于图像字幕的文本数据集,本文去掉句子长度小于10的样本,然后随机选取10 000个样本作为训练数据。EMNLP WMT17是一个用于机器翻译的文本数据集,本文选取其中的英语新闻数据,去除长度小于15的句子和低频词,并随机选取10 000个样本作为训练数据。
隐写术的目的是隐藏信息,以保证重要信息的安全。因此,嵌入容量是一个隐写系统的重要评估标准。嵌入容量用嵌入率来衡量,嵌入率定义为每个单词可嵌入的秘密比特的平均数量,具体计算方法如式(12)所示:
(12)
其中,Num表示生成句子的数量,Kdi表示第di个句子嵌入的比特数,Ldi表示第di个句子的长度。
为了测试TS-GANMA模型的对抗学习对生成文本质量的提升效果,本文定义一个随机初始化的LSTM网络作为样本生成器,模型训练的目的是使生成器生成的样本尽可能接近样本生成器生成的样本。本文采用似然损失作为衡量它们相似性的指标,具体计算方法如式(13)所示:
NLLoracle=
(13)
其中,Goracle(·)表示样本生成器,Gθ(·)表示目标生成器。
BLUE评分作为评分标准来衡量生成文本和人工文本之间的相似程度[19]。BLUE分数越高说明生成文本与真实文本越相似。高阶的n-gram用于衡量句子的流畅性,NN表示n-gram的阶数,通常取2~5,具体计算方法如式(14)所示:
(14)
其中,BP(Brevity Penalty)表示过短惩罚,句子越短,BP越接近0;Wdn表示权重;Pdn表示n-gram的精度。
为了保证隐写文本的隐蔽性,隐写文本分布与真实数据分布的统计差异要更小。本文使用自然语言处理中的句子质量测试标准度量困惑度ppl(perplexity)作为评价指标,值越小表示生成的文本质量越高,具体计算方法如式(15)所示:
(15)
其中,Num表示生成句子的数量,pci(x1,x2,…,xn)ci表示第ci个句子中的单词概率。
为了验证TS-GANMA模型的有效性,本节从文本质量、嵌入率等方面将其与主流隐写模型进行比较。本文随机初始化LSTM网络为Oracle,作为真实模型。通过Oracle生成10 000个长度为20的序列作为真实样本,分别使用最大似然估计MLE训练生成器Gα和使用基于TS-GANMA的方法训练生成器Gβ,其中Gα和Gβ的网络结构完全相同,两者学习曲线如图3所示。
Figure 3 TS-GANMA and MLE training loss
图3前80个轮次两者都是使用最大似然估计的方法训练生成器,因此损失值很接近,稳定在9.85左右。从第81个轮次开始,TS-GANMA模型进行100个轮次的对抗训练,损失值明显减少,最终稳定在9.30左右。而MLE的方法损失还是保持在9.85左右。说明TS-GANMA模型能生成更符合Oracle样本概率空间的序列,提高了生成文本的质量。
本文还在真实数据上测试TS-GANMA模型的性能,对比TS-GANMA模型与SeqGAN (Sequence Generative Adversarial Nets)模型[20]在Image COCO文本数据集上的BLUE分数,结果如表1所示。
Table 1 Comparison of BLUE fractions of different models
根据表1得知,TS-GANMA模型的BLUE2~BLUE5分数优于SeqGAN模型的。高阶BLUE分数能体现整个文本的质量,TS-GANMA模型的BLUE4分数和BLUE5分数相较于SeqGAN分别提高了0.06和0.05,表明本文模型能够提升生成文本的质量。TS-GANMA模型通过多头注意力提取了更丰富的文本特征,并且将多头注意力得分参与奖励的计算,得到更利于生成器的反馈信息,优化文本生成器。因此,TS-GANMA模型生成的句子质量更高,更接近真实文本。
将本文提出的隐写术TS-GANMA与主流隐写术进行对比,包括LSTM-block[12]、LSTM-vlc[11]和ADG(Adaptive Dynamic Grouping)[21]。本文模型主要通过在生成文本的过程中对每个词的条件概率分布进行编码来实现信息隐藏。本文采用一种非定长编码[7],首先对生成的候选词的条件概率进行非定长编码;然后根据秘密信息的二进制序列选择对应的编码候选词,生成隐写文本。基于每个文本数据集分别训练生成器,使用每个生成器生成500个句子,通过随机生成的0、1比特流指导生成不同嵌入率的隐写文本。不同隐写模型获得的困惑度的均值和标准差如表2所示。在表2的ppl列中,当ER=1.82时,TS-GANMA隐写术在数据集Image COCO上的均值和标准差分别为15.15和15.15±2.43。
Table 2 Mean and standard deviation of confusion degree of different steganographic models
由表2可知,对于每个文本数据集,随着嵌入率ER的增加,困惑度均值逐渐增加,文本质量降低。因为嵌入的比特数增加会使得候选词增加,影响词的选择,导致生成的词不连贯。从实验结果可知,在不同嵌入率下,TS-GANMA隐写术的困惑度相比其它隐写术的困惑度都低。在相同嵌入率,对比基于LSTM的经典隐写术LSTM-block和LSTM-vlc,TS-GANMA的困惑度分别下降50%~60%和7%~10%;对比ADG,TS-GANMA的困惑度下降了20%左右。从表2可以发现,LSTM-block隐写术的困惑度较高,这主要是因为该方法隐写生成的文本不连贯。TS-GANMA隐写术虽然与LSTM-vlc隐写术采用了相同的编码方法,但是TS-GANMA相比LSTM-vlc更进一步降低了隐写文本的困惑度,这是因为TS-GANMA利用生成对抗网络有效地解决了暴露偏差的问题。此外,TS-GANMA隐写术利用多头注意力得分参与奖励计算,优化了文本生成模型,使得生成的文本分布更接近真实的文本分布,从而进一步提升了隐写文本的质量。
本文提出了一种基于生成对抗网络与多头注意力的文本隐写模型,该模型能够自动生成高质量的隐写文本。在对抗训练过程中,将鉴别器得到的奖励信息反馈给生成器,引导生成器生成与真实文本一致的文本,能够解决文本隐写过程中暴露偏差的问题。同时,本文将多头注意力得分参与奖励计算,得到的文本生成模型能够生成高质量的隐写文本。实验表明,TS-GANMA模型可以进一步减少在最大似然估计训练下已经收敛的生成器的损失,优化文本生成模型。通过对比主流隐写模型生成的句子的困惑度,验证了在不同隐写嵌入率下生成隐写文本时,TS-GANMA模型生成的隐写文本更拟合真实文本的分布,可以保证隐写任务的隐蔽性和安全性。