文本与标准化流

基本思路

  • 最直接的应用方式是在字符或词汇表上定义离散流,如离散流[1]中显示了字符级别语言建模的性能与RNN相当,但具有更快生成运行时间。另一个可选方法应用更广泛,使用离散似然但连续的隐含空间定义一个隐含变量模型,之后标准化流可如往常一样在隐含空间上被定义。例如类流[2]用于字符级别语言建模。此外,[3-7]在词嵌入的连续空间上定义标准化流,作为翻译、句法syntactic结构、句法分析parsing模型的子组件
  • 对于离散标准化流和基于去量化的标准化流,均只涉及语言建模任务;基于文本嵌入的标准化流,可有一个统一的面向标准化流模型的抽象建模框架
  • 针对上述三类模型,考虑到标准化流模型能够精确建模数据分布的特点,可引入文本异常检测[8]任务进行统一比较

离散标准化流

Discrete Flows[1]

  • 使用离散变量之间的函数关系,利用概率分布函数的离散变量变换实现离散形式的文本数据建模
    • 考虑离散变量\(\mathbf{x}\)(除了\(\mathbf{x}\),下面涉及的变量均是离散的)和可逆离散输出函数f,离散变量变换为\(p_{X}(\mathbf{x})=p_{Z}(f^{-1}(\mathbf{x}))\)
    • 离散自回归变换:通过使用取余操作符来获得离散输出
      • \(z_d=f^{-1}(x_d)=(\mu_d+\sigma_d·x_d)ModK\),其中\(\mu_d\)\(\sigma_d\)均是\(\mathbf{x}\)的自回归函数,如\(\mu_d=\text{one_hot}(argmax(\theta_d))\)
      • 由于argmax不可微,所以该工作利用梯度近似的思想,在反向传播时用softmax-temperature函数进行替换
    • 离散耦合变换:对于\(d\in \{1,...,d^{'}\}\)\(z_d=x_d\);对于\(d\in \{d^{'}+1,...,D\}\),具体变换公式同上,不过\(\mu_d\)\(\sigma_d\)均是\(\mathbf{x}_{1:d^{'}}\)的函数。由于耦合变换下有部分变量维度没有经过变换,因此它的建模能力要弱于自回归变换
  • 存在梯度近似问题: 在反向传播时计算的梯度是一个近似值;同时,Hoogeboom等人[9]也指出梯度近似的引入使得流的层数(即变换函数个数)不能太多,否则会导致梯度偏差越来越大。而标准化流一般是通过增加流的层数来提升性能的

基于去量化的标准化流

Categorical Normalizing Flows[2]

  • 先将作为离散变量的文本数据转换成连续变量(借助VAE的思想,将去量化过程建模成一个变分推断问题),从而可在连续变量上应用标准化流模型以间接实现离散形式的文本数据建模
    • \(\mathbf{x}\)看作是一个整数向量,向量长度为S,去量化过程可表示成\(\mathbf{v}=\mathbf{x}+\mathbf{z},\mathbf{z}\in[0,1)^D\)。使用\(p_{model}(\mathbf{v})\)表示去量化后数据的分布,\(P_{model}(\mathbf{x})\)表示原始离散数据的分布,同时引入一个去量化噪声分布\(q(\mathbf{z}|\mathbf{x})\),这个分布可作为参数通过学习得到。此时可以得到真实似然的下界: \(logP_{model}(\mathbf{x})=log\int p_{model}(\mathbf{x}+\mathbf{z})d\mathbf{z}=log\int q(\mathbf{z}|\mathbf{x})\frac{p_{model}(\mathbf{x}+\mathbf{z})}{q(\mathbf{z}|\mathbf{x})}d\mathbf{z}\ge \int q(\mathbf{z}|\mathbf{x})log\frac{p_{model}(\mathbf{x}+\mathbf{z})}{q(\mathbf{z}|\mathbf{x})}d\mathbf{z}=E_{\mathbf{z}\sim q(·|\mathbf{x})}[log\frac{p_{model}(\mathbf{x}+\mathbf{z})}{q(\mathbf{z}|\mathbf{x})}]\)
    • 给出离散变量之间的条件独立性假设:\(p_{model}(\mathbf{x}+\mathbf{z})=p_{model}(\mathbf{z})\prod_{i}p(x_i|z_i)\)
    • 编码器\(q(\mathbf{z}|\mathbf{x})\)和解码器\(p(x_i|z_i)\);以logistic分布(可学习的均值和scaling)来编码每个类,因此编码分布\(q(z_i)\)是一个K logistics的混合,每一个对应一个类;用g来表示logistic,编码器为\(q(\mathbf{z}|\mathbf{x})=\prod_{i=1}^Sg(z_i|\mu(x_i),\sigma(x_i))\);使用贝叶斯可得到解码器\(p(x_i|z_i)=\frac{\tilde{p}(x_i)q(z_i|x_i)}{\sum_{\hat{x}}\tilde{p}(\hat{x})q(z_i|\hat{x})}\)\(\tilde{p}(x_i)\)是类上的先验;因此目标函数变换成\(logP_{model}(\mathbf{x})\ge E_{\mathbf{z}\sim q(·|\mathbf{x})}[log(p_{model}(\mathbf{z})\prod_{i=1}^S\frac{\tilde{p}(x_i)}{\sum_{\hat{x}}\tilde{p}(\hat{x})q(z_i|\hat{x})})]\)
  • 存在重建损失问题: 引入变分推断将离散变量转换成连续变量,导致此类模型只能得到一个近似的似然值

基于文本嵌入的标准化流

  • 在文本嵌入上应用标准化流,以优化嵌入空间,从而提升下游任务性能
  • 假设数据空间,即文本嵌入空间为X,这里的嵌入可以是句子嵌入或预训练词嵌入。隐含空间,即服从简单分布如高斯分布的空间为Z。可以将这类模型的训练目标统一成如下形式: \(O=log(p_X(\mathbf{x})·p_{ts})=log(p_Z(f^{-1}(\mathbf{x}))|det\frac{\partial f^{-1}(\mathbf{x})}{\partial \mathbf{x}}|)+logp_{ts}\),其中\(p_{ts}\)是特定任务下的一个概率分布函数
  • 根据\(p_{ts}\)是否为空,可将现有相关工作分成两大类:1)若除了获得优化后的嵌入表示,还有其他的学习目标,则\(p_{ts}\)不为空,如[4][7];2)若仅仅是要获得优化后的嵌入表示,则\(p_{ts}\)为空,如[3][6]

词性标注和依赖解析[4]

  • 考虑词性标注和依赖解析任务,需要联合学习词嵌入表示和离散句法结构,此时就需要引入一个句法模型来学习离散的句法结构,即\(p_{ts}=p_{syntax}(y)\),其中y是某个词的标记

文本风格迁移[7]

  • 关注文本风格迁移任务(改变句子的风格同时保持其内容不变),为解决问题(文本内容与风格完全分离的困难性导致了内容保存与风格迁移精度的矛盾),提出风格实例支持方法,StyIns,利用生成流技术从每个风格的多个实例中抽取潜在风格属性,形成一个更具区分度和表达力的隐含风格空间。将该空间和基于注意力的结构组合,能更好保持内容,同时达到高的迁移精度。整个模型组成:源encoder映射一个给定句子x到一组隐含状态H;然后decoder以H和z为输入生成一个迁移后的句子y,其中z从\(p(z|\Phi_K^j)\)(隐含风格空间)中采样
    • 不仅需要获得文本风格嵌入表示用于风格迁移,还需要进行文本内容的保存,因此就需要引入一个内容保存模型,即\(p_{ts}=p(y_1|y_2,x)\),其中\(y_1,y_2\)是风格不同、内容相同的句子,x表示的风格与\(y_1\)相同
  • 实验中考虑了三个迁移任务,分别是情感修改sentiment modification、形式改写formality rephrasing以及诗性生成poeticness generation

双语词汇归纳[3]

  • 考虑两个嵌入空间,分别对应一种语言,均假设服从混合高斯,并提出DeMa-BWE模型学习两个嵌入空间之间的映射,以对齐两个空间,获得良好的双语词嵌入表示

语义文本相似性[6]

  • 关注语义相似性任务,由于BERT总是会诱导句子的一个非平滑各项异性语义空间,降低语义相似性的性能,所以提出通过由无监督目标学习的标准化流将各项异性句子嵌入分布变换成一个平滑且各项同性的高斯分布。实验考虑一系列语义文本相似性任务

适用场景

  • 在文本分析任务中,不同标准化流模型的适用场景
  • 当将标准化流应用于语言建模任务时,由于存在的梯度近似或重建损失问题,使用流模型进行建模会产生一定的性能损失,但基于去量化的标准化流模型的建模性能相对更优。如果任务对生成速度有更高要求且允许一定的建模性能损失,则可以考虑基于耦合变换的非自回归模型
  • 直接对离散形式的文本数据建模并不能很好地捕获文本的内在模式,而使用文本嵌入应该是一个更好的选择。因此当遇到更多不同的复杂文本分析任务时,可优先考虑基于文本嵌入的标准化流模型

文本异常检测

  • 半监督异常检测,即只在正常的数据上训练

深度异常检测

  • 典型的深度异常检测方法通过自动编码机或GAN来学习正常的特征,但异常的数据会导致高的重建损失或与生成样本特别不同
  • 自监督
    • 已经应用于图像异常检测,能更好学习到正常的特征;该方法通过训练一个模型,来区分应用于视觉数据的不同变换,然后使用输出计算异常分数
    • 在文本序列上引入一个pretext任务[10],加入两个独立且互补的自监督信号,一个在token级别,一个在序列级别

参考文献

  • [1] 2019 | Discrete Flows: Invertible Generative Models of Discrete Data | Dustin Tran et al.
  • [2] 2020 | Categorical Normalizing Flows via Continuous Transformations | Phillip Lippe and Efstratios Gavves
  • [3] 2019 | Density matching for bilingual word embedding | Chunting Zhou et al.
  • [4] 2018 | Unsupervised learning of syntactic structure with invertible neural projections | Junxian He et al.
  • [5] 2019 | Un-supervised learning of PCFGs with normalizing flow | Lifeng Jin et al.
  • [6] 2020 | On the Sentence Embeddings from Pre-trained Language Models | Bohan Li et al.
  • [7] 2020 | Text Style Transfer via Learning Style Instance Supported Latent Space | Xiaoyuan Yi et al.
  • [8] 2019 | Self-Attentive, Multi-Context One-Class Classification for Unsupervised Anomaly Detection on Text | Lukas Ruff et al.
  • [9] 2019 | Integer discrete flows and lossless compression | Emiel Hoogeboom et al.
  • [10] 2021 | ACL | DATE: Detecting Anomalies in Text via Self-Supervision of Transformers | Andrei Manolache et al.

posted on 2021-04-15 11:52  锋上磬音  阅读(242)  评论(0编辑  收藏  举报