Navigation

    Gpushare.com

    • Register
    • Login
    • Search
    • Popular
    • Categories
    • Recent
    • Tags

    基于梯度的NLP对抗攻击方法【EMNLP 2021】

    语音识别与语义处理领域
    1
    1
    203
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 155****7220
      155****7220 last edited by Alice_恒源云

      Facebook提出了一种NLP通用的攻击方法,而且可以通过梯度优化,论文发表在EMNLP2021,名为Gradient-based Adversarial Attacks against Text Transformers,源码在facebookresearch/text-adversarial-attack

      Background

      我们首先定义模型h:X→Yh:\mathcal{X}\to \mathcal{Y}h:X→Y,其中X\mathcal{X}X和Y\mathcal{Y}Y分别是输入输出集。设测试样本x∈X\mathbf{x}\in \mathcal{X}x∈X被模型正确预测为标签yyy,则有y=h(x)∈Yy=h(\mathbf{x})\in \mathcal{Y}y=h(x)∈Y。如果一个与x\mathbf{x}x无限接近的对抗样本x′\mathbf{x}^{\prime}x′使得h(x′)≠yh(\mathbf{x}^{\prime})\neq yh(x′)​=y,则x′\mathbf{x}^{\prime}x′是一个好的对抗样本。我们可以通过定义函数ρ:X×X→R≥0\rho: \mathcal{X}\times \mathcal{X} \to \mathbb{R}_{\ge 0}ρ:X×X→R≥0​来量化x\mathbf{x}x和x′\mathbf{x}^{\prime}x′的接近程度。设阈值ϵ\epsilonϵ > 000,如果ρ(x,x′)≤ϵ\rho (\mathbf{x},\mathbf{x}^{\prime})\leq \epsilonρ(x,x′)≤ϵ,则认为对抗样本x′\mathbf{x}^{\prime}x′与样本x\mathbf{x}x非常接近

      寻找对抗样本的过程通过被视为一个优化问题,例如对于分类问题来说,模型hhh输出一个logits向量ϕh(x)∈RK\phi_h(\mathbf{x})\in \mathbb{R}^Kϕh​(x)∈RK,使得y=arg⁡max⁡kϕh(x)ky = \arg \max_k \phi_h(\mathbf{x})_ky=argmaxk​ϕh​(x)k​,为了使得模型预测错误,我们可以将margin loss选作对抗损失:

      9dedaf2d-f4bd-43bf-ba42-27b76ab10e38-image.png

      当损失为0的时候,模型会在超参数κ\kappaκ的控制下预测错误。margin loss在2017年的论文Towards evaluating the robustness of neural networks,关于图像对抗算法中就被证明过有效

      这部分注释我想仔细解释下为什么margin loss可以使得模型分类错误。模型训练的最终目的是为了优化margin loss,使得它的损失值降为0,即
      ebf1628b-1a1b-4864-afd6-eabe4dd30efa-image.png
      只要满足上式情况,损失值就为0了。通过变形我们可以得到
      ec6c8b30-236d-4d99-ae8b-69988b02a089-image.png
      其中,ϕh(x)y\phi_h(\mathbf{x})_yϕh​(x)y​指的是输入x\mathbf{x}x被模型正确预测为类别yyy的logit值。不妨设
      e1dbc67a-25ea-4615-85bc-e22e1d04d698-image.png
      并且i≠yi\neq yi​=y,这表明在所有的错误类别中,第iii类的logit最大,并且结合上面的不等式可得
      eb3a7def-3e81-4c51-b89d-47711c6c6c7e-image.png
      总结一下,我们的优化目标永远都是使得损失值降为0,但是损失降为0并不一定代表就要模型对所有的样本都正确预测,margin loss优化的目标就是使得模型预测错误类别iii的logit比预测正确类别yyy的logit大κ\kappaκ。但凡存在一个样本预测正确,损失都不可能为0

      给定对抗损失ℓ\ellℓ,构造对抗样本的过程可以被视为一个有限制的优化问题:
      d7f6efd5-50fb-4aa9-aa4d-36d4120e5639-image.png
      我们可以把约束ρ\rhoρ带入损失函数中,将原本的硬约束变为软约束
      89e4fa2e-d697-43f9-a9ad-a5f2d143b977-image.png
      如果约束函数ρ\rhoρ是可微的,就可以用基于梯度的优化器来优化了

      式(2)在图像或者语音等连续数据领域已被广泛应用,但实际上它并不适用于文本数据,主要有两点原因:

      1. 数据空间X\mathcal{X}X是离散的,因此无法利用梯度进行优化
      2. 约束函数ρ\rhoρ难以度量文本数据,例如在一个句子中插入"不是",这个词会否定整个句子的意义,但如果我们用编辑距离去计算两个句子的差异,它们的编辑距离仅为1

      GBDA: Gradient-based Distributional Attack

      论文作者所提出的方法解决了上面两个问题:

      1. 利用**Gumbel-Softmax**使得采样过程可以被梯度优化
      2. 通过引入困惑度和语义相似度这两个软约束,促使对抗样本的语义更加流畅以及与原样本间的语义更接近

      Adversarial Distribution

      令z=z1z2⋯zn\mathbf{z} = z_1z_2\cdots z_nz=z1​z2​⋯zn​是句子z\mathbf{z}z的token序列,其中ziz_izi​来自于一个固定的词汇表V=1,…,V\mathcal{V} = {1,…,V}V=1,…,V。设概率分布PΘP_{\Theta}PΘ​来自于一个参数化的概率矩阵Θ∈Rn×V\Theta \in \mathbb{R}^{n\times V}Θ∈Rn×V,句子z∼PΘ\mathbf{z}\sim P_{\Theta}z∼PΘ​中的每个token都是通过下面的公式独立抽样出来的
      93d26a1a-84bb-4a81-9e9e-6ac0d4616919-image.png
      其中,πi=Softmax(Θi)\pi_i = \text{Softmax}(\Theta_i)πi​=Softmax(Θi​)表示第iii个token概率分布的向量

      我们的目标是优化参数矩阵Θ\ThetaΘ,使得z∼PΘ\mathbf{z}\sim P_{\Theta}z∼PΘ​为模型hhh的对抗样本,为了做到这一点,我们需要优化的目标函数为
      251d3bad-ff31-4d9f-9bef-a1b95e00e417-image.png
      其中,ℓ\ellℓ为可选的对抗损失,例如margin loss

      Extension to probability vector inputs

      公式(5)很明显不是一个可导的函数,因为分布是离散的,并且我们是通过采样得到的,采样这个操作没有公式,也就无法求导。但是,我们可以对公式(5)进行缩放,将概率向量作为输入,并且使用Gumbel-Softamx作为arg⁡max⁡\arg \maxargmax的估计值,以此来引入梯度

      句子z\mathbf{z}z中每个token ziz_izi​在Vocabulary中的索引iii可以通过Word Embedding表查到相应的词向量。特别地,我们定义e(⋅)\mathbf{e}(\cdot)e(⋅)为embedding函数,因此token ziz_izi​的embedding为e(zi)∈Rd\mathbf{e}(z_i)\in \mathbb{R}^de(zi​)∈Rd,其中ddd是embedding维度。给定一个概率向量πi\pi_iπi​,它决定了token ziz_izi​的抽样概率,则我们定义
      fba65a47-e5c2-496d-9d4d-d704c277b514-image.png
      为对应于概率向量πi\pi_iπi​的嵌入向量。特别地,如果token ziz_izi​的概率向量πi\pi_iπi​是一个one-hot向量,则e(πi)=e(zi)\mathbf{e}(\pi_i)=\mathbf{e}(z_i)e(πi​)=e(zi​)。有了公式(6),我们可以将输入概率向量序列π=π1⋯πn\boldsymbol{\pi} = \pi_1\cdots \pi_nπ=π1​⋯πn​拓展为一系列embedding的拼接:
      72b17348-5d15-43af-813f-9ec21d887405-image.png

      Computing gradients using Gumbel-softmax

      对模型hhh进行扩展,将概率向量作为输入,使得我们能够利用Gumbel-softmax得到式(5)的平滑估计。设输入概率序列π~=π~1⋯π~n\tilde{\boldsymbol{\pi}} = \tilde{\pi}_1\cdots \tilde{\pi}_nπ~=π~1​⋯π~n​来自Gumbel-softmax分布,根据下面的公式得到:

      fd919b62-d1d4-41c1-a7eb-2b7281534ca9-image.png

      其中gi,j=−log⁡(−log⁡(ui,j)),ui,j∼U(0,1)g_{i,j}= -\log(-\log(u_{i,j})), u_{i,j}\sim U(0,1)gi,j​=−log(−log(ui,j​)),ui,j​∼U(0,1),即ui,ju_{i,j}ui,j​服从均匀分布。TTT越接近0,π~i\tilde{\pi}_iπ~i​越接近one-hot分布

      通过定义公式(5)的光滑近似值,我们就可以使用梯度下降优化参数Θ\ThetaΘ了
      e429c822-c7a4-4a44-b575-24d52fb62f30-image.png

      Soft Constrains

      由于作者引入Gumbel-softmax,同时将概率向量作为模型的输入,将不可导的公式(5)改写成了可导的公式(8),因此可以很容易的将其他任何可导的约束函数作为优化目标的一部分。利用这一优势,作者将流畅性和语义相似性约束引入进目标函数中,以产生更流畅和语义更接近的对抗样本

      Fluency constraint with a Language model

      之前的工作都是基于词级别的攻击,例如使用Word2vec、GloVe等,或者是利用同义词替换来保证语义原样本和对抗样本之间的语义相似性,但是这些方法或多或少都会存在一些问题,例如产生的对抗样本语法不连贯、语义不流畅

      因果语言模型(Causal language models, CLMs),或者说自回归语言模型的训练目标是最大化条件概率p(xi∣x1,x2,…,xi−1)p(x_i\mid x_1,x_2,…,x_{i-1})p(xi​∣x1​,x2​,…,xi−1​)。更具体地说,给定一个具有对数概率输出的CLM ggg,一个序列x=x1⋯xn\mathbf{x} = x_1\cdots x_nx=x1​⋯xn​的负对数概率(Negative log-likelihood, NLL)是通过自回归的方式计算出的
      ae63d4cb-397f-41ca-98e5-b8b623ad7c73-image.png
      其中,log⁡pg(xi∣x1⋯xi−1)=g(xi∣x1⋯xi−1)\log p_g(x_i\mid x_1\cdots x_{i-1})=g(x_i\mid x_1\cdots x_{i-1})logpg​(xi​∣x1​⋯xi−1​)=g(xi​∣x1​⋯xi−1​)

      由于之前我们定义模型的输入是某个token的概率向量,因此我们也可以扩展NLL的定义:
      f1f42ed6-bb87-41de-86fa-3a09234d4730-image.png

      其中
      4b3b4ff0-b38e-455a-9067-b1f6dad14c6a-image.png

      Similarity constraint with BERTScore

      作者提出使用BERTScore,这是一个用于评估生成文本相似性的方法。设x=x1⋯xn\mathbf{x} = x_1\cdots x_nx=x1​⋯xn​以及x′=x1′⋯xm′\mathbf{x}^{\prime}={x}_1^{\prime}\cdots {x}_m^{\prime}x′=x1′​⋯xm′​是两个token序列,令ggg为语言模型,我们可以得到基于上下文语境的向量表示

      6fa4b2b2-1769-4256-890b-aaf906b92d2c-image.png

      则序列x\mathbf{x}x和x′\mathbf{x}^{\prime}x′的BERTScore定义如下:

      3ff0cf95-0da7-44b6-aa4c-40cac2e7c940-image.png
      其中,wi=idf(xi)/∑i=1nidf(xi)w_i = \text{idf}(x_i) / \sum_{i=1}^n \text{idf}(x_i)wi​=idf(xi​)/∑i=1n​idf(xi​)是token xix_ixi​标准化后的逆文档频率

      我们可以很容易地用式(6)中描述的概率向量序列π=π1⋯πm\boldsymbol{\pi}=\pi_1\cdots \pi_mπ=π1​⋯πm​来代替x′\mathbf{x}^{\prime}x′,并使用ρg(x,π)=1−RBERT(x,π)\rho_g(\mathbf{x},\boldsymbol{\pi})=1- R_{\text{BERT}}(\mathbf{x},\boldsymbol{\pi})ρg​(x,π)=1−RBERT​(x,π)作为一个可导的软约束

      Objective function

      最后,我们把margin loss、流畅性约束与BERTScore相似性约束都整合起来,构成我们最终的优化目标:
      3382ba80-bf11-433f-a666-bb983e02b8bc-image.png
      其中,λlm\lambda_{\text{lm}}λlm​,λsim\lambda_{\text{sim}}λsim​>000均为超参数,每次迭代时从P~Θ\tilde{P}_{\Theta}P~Θ​采样一批输入,并用Adam优化器最小化L(Θ)\mathcal{L}(\Theta)L(Θ)。具体来说,论文中的超参数设置为
      eecbb9b4-23d9-405e-a91b-aedbdc288228-image.png

      Result

      实验结果表明,作者的攻击能够在几乎所有情况下将模型的准确率降低到10%以下,同时保持高水平的语义相似性(余弦相似度高于0.8)

      同时作者做了一个消融实验,观察流畅性约束的存在,对生成的句子以及最终的结果有什么影响

      个人总结

      说实话有些尴尬,我在翻EMNLP的Accepted Papers时,「Adversarial」字样突然映入我眼帘,一开始我还以为这是一种新的对抗训练方法,于是便点开论文看了看,边看边写这篇文章,结果写到快结束的时候感觉有些不对劲,我发现这篇论文其实主要不是讲Adversarial的,而是讲Attack的,但我并不是做深度学习Attack的,所以我基本上是浪费了很多时间看了个和我研究不相关的东西。由于我对深度学习攻击并不了解,所以也没什么很特别的感悟

      1 Reply Last reply Reply Quote 3
      • Referenced by  Alice_恒源云 Alice_恒源云 
      • Referenced by  Alice_恒源云 Alice_恒源云 
      • Referenced by  Alice_恒源云 Alice_恒源云 
      • First post
        Last post