一文超详细讲解文本风格迁移

点击上方,选择星标置顶,每天给你送干货

阅读大概需要33分钟

跟随小博主,每天进步一丢丢

作者: 龚俊民(昵称: 除夕)

学校: 新南威尔士大学

单位:Vivo AI LAB 算法实习生

方向: 自然语言处理和可解释学习

知乎: https://www.zhihu.com/people/gong-jun-min-74


前言:自然语言的文本风格,可以是比风格更广泛的东西。文本风格迁移的应用,是可以比你想象中的应用更大。图像的风格转换,大家都很熟悉。在之前的其中一期里,我们也讲过语音的风格转换。这堂课中,我们要来讲文本的风格转换。

文本的风格转换可以有很多不同的面相。比如,我们可以把负面的句子转换为正面的句子。这个问题,如果我们有成对的数据,就可以直接端对端训练结束。但问题在,在文本风格迁移任务中,通常难以收集到成对的数据。我们不知道一个负面的句子应该对应到哪个正面的句子。所以我们很难直接用有监督学习去训练这个模型,而是要用无监督的方法,从未成对的文本数据中自动学习。这样的技术对我们来说其实也不陌生,图像/语音风格迁移就是这么做的。

我们可以用 Cycle GAN 的方法来做无监督的文本风格转换。首先我们需要一个判别器 D,用来判断一个句子的情感是正面的还是负面的。同时,我们也需要一个生成器 G,用来把正面的句子转换成负面,或把负面的句子转换成正面。在 Cycle GAN 中,仅仅有生成器和判别器是不够的,我们还需要有另一个句子能把生成器 G 输出的句子重构回去的模型 R。对于 G 而言,它有两个目标,一个是确保判别器觉得它输出的句子是正面的,另一个是确保模型R,能把它输出的句子重构回它输入的样子。但文本中使用 GAN 的技术会有个问题。对于图像/语音训练的时候,我们会把生成器G和判别器D接在一起当作是一个比较大的网络。生成器G需要调整它的输出,让它的输出丢到判别器D中后,得出的结果是我们想要的。

文本上,生成器 G 的输入输出长度可能会不同,不像语音那样输入输出长度一样可以用CNN解决。所以这里生成器G通常是一个序列到序列的模型。判别器 D 的输入是一个序列,输出是一个类别。生成器G生成输出的时候,存在一个采样的操作。如果我们把生成器G和判别器D当作一个模型去训练,这个采样的操作由于不可微分,所以整个网络反向传播时,中途会断掉。也就是说,我们无法用梯度下降的方法来训练我们的网络。文字是离散的,反向传播不可导。因此我们需要想一些额外的技术去解决。

解决文本中 GAN 不可导问题,有三个主流的技术,它们分别为 Gumbel-softmax,把判别器的离散输入变成连续输入,强化学习方法。

Gumbel-softmax 我们这里简单略过。它的思想和 VAE 很像,用了重参数化的技巧。这个技巧让原本采样这件不能微分的事变得可以微分了。更详细的解读可以看苏剑林大神的个人博客,这里就不冗述。

另一种解决方案是避开采样,直接把生成器生成的输出分布向量输入给判别器。

这个想法这么单纯,为什么没有被广泛使用呢?因为生成器输出的分布和正常的句子之间还是有很大差别。判别器可以通过这种差别轻易判断二者哪个是哪个,而不是通过文本的风格判断。这个在实作中也不是完全不可行的。如果采用的是比较弱的判别器,或训练的时候,下比较大的限制,比如用 WGAN,去弱化判别器的能力,也许它就没有那么轻易地能判断出真实的离散句子和连续的生成分布的差别。当然我们也可以不用独热编码去表示输入句子,而是用它的连续值表征,比如 Word2vec 或 BERT。对于生成器的输出,我们也不用其归一化后的分布,而是用嵌入的加权和。或许这样就可以制造出两组本质上没那么容易被区分开的表征,而只能让判别器去通过其文本风格区分。这一招还是大有可为的。

最后一招是用强化学习来解。什么东西不能微分,就用Policy Gradient 来硬训练一发。我们把生成器G看作是强化学习中的 Agent。从它的输出分布中采样出来的 tokens,看作是强化学习中的 Action。判别器D则是强化学习中的互动环境。判别器的输出,便是奖励 Reward。这样问题就变成了强化学习中,训练 Agent 让它在环境中累计期望奖励最大的问题。但这边 GAN 和 强化学习有一点不一样的是,强化学习中,环境,即通过 Action 计算出 Reward 这件事是固定的。比如在下围棋时,输赢的规则是固定的。游戏中,杀死一只怪物得多少分也是固定的。但现在判别器D 是一个网络,它的参数更新会让环境发生变化。游戏规则的改变会让强化学习的训练变得更加困难。

因此,RL+GAN 的方法表面上看起来觉得可行,但实际上训练却难到爆炸。

DeepMind 将用强化学习去训练生成器的各种技巧都试了一遍,并把实验都汇总在一篇叫ScratchGAN 的论文中。他们用的评估指标是越小越好的 FED。ScratchGAN 给我们的启发是。SeqGAN-step 是最重要的技巧。如果不用我们是训练不起来的。

为什么 RL 的训练这么困难?因为判别器D要看完完整的序列后,才会给它一个分数。但对于生成器G而言,到底是哪一段文字让这个序列的分数变低,却无法从反传的梯度中反馈知道。因此生成器G的奖励是非常稀疏的。它和下围棋很像。一整盘棋下完,才知道输赢。所以我们需要一种技巧能让生成器在每一步生成都获得奖励反馈。这样生成器就能根据让奖励下降生成出的 token,去更精准地更新参数。

让生成器能在每一步生成都获得奖励的方法有三种。第一种是用蒙特卡洛搜索。它和 AlphaGo 的方法很像。生成器G先采样生成出很多以 You 开始的句子,统统丢给判别器D去判断当前的子序列有多好。第二种方法是训练一个特殊的判别器,它可以计算一个子序列的奖励。最后一种方法也是训练一个特殊的判别器,于第二种不同在,对于输入的完整序列,它可以一步步读序列算分数。实验表明,蒙特卡洛方法是有效的比较好,但它的计算量比较大。第三种方法可以和蒙特卡洛搜索方法效果差不多,而且运算量比较少。第二种方法效果一般。

使用了之前的技巧让文本序列版的 CycleGAN 可以训练后,我们接下来可以看一下效果。从负面到正面情感的风格迁移中。模型能够有意识地把让文本是负面的关键字替换成正面的关键字。比如胃疼->生日快乐,上班->睡,够贱->帅,变态->帅。

在 ICLR 19 的一篇论文中,他们还尝试了更多种类的文本风格迁移,比如轻松和烦躁,男性和女性,年轻人和老人的风格互换。

在图像/语音处理过程中,如果我们存在多种风格,我们就不会用 CycleGAN,而是StarGAN 的做法。文本风格迁移中,我们也可以这样。

Style Transformer 便是文本版的 StarGAN。

之前语音风格转换有两种做法。一种做法是用 CycleGAN,另一种是做特征解纠缠。文本版是不是也可以用特征解纠缠的方式去做呢?答案是可以的。我们可以训练两个编码器,一个把决定文字内容模板的特征抽出来,另一个把决定文本风格的特征抽出来。解码器再利用两个特征向量去还原出原本的句子。训练的时候,当作一个自编码器训练。做文本风格转换的时候,我们只需要让文本输入给内容编码器提取出内容模板向量,再加上另一个别的风格的特征向量,让解码器解码,就可以得到风格迁移后的文本。

文献上确实有不少这类的方法。这里我们不细讲。只是列出一些文献作为参照。它们的思路和用在语音风格迁移的方法大同小异。最早类似的方法用的是 GAN 的技术。这些都是比较早的,17年的论文。但近年来,这一招没有那么流行了,反而是 Cycle GAN 的方法比较好。这是因为文字要压缩成 embedding,其实并没有那么容易。在16-17年阶段,很流行用 VAE 去训练 Seq2Seq 的编码器。还有一个原因是,文字本身是离散的。如果我们把它压缩到一个隐变量空间,它会有很多空洞没法产生文字。

在文本风格迁移任务中,把文本压缩到一个连续的向量中,不那么容易。但我们或许可以用离散的东西,比如另外一段文字,去表示该文本。比如内容编码器可以把一段文字的内容模板抽取出来,决定其风格的内容给 MASK 掉。这样我们就可以用删除了一些词汇的模板序列再加上它的风格嵌入,丢给解码器,重构出原来的文本去训练。内容编码器可以把原本序列中不对其风格起作用的文本抽取出来,作为其内容表征。风格编码器输入是一个代表指定风格的独热编码向量,比如情绪正面负面,输出是该风格的特征嵌入。风格中性的内容文本和风格嵌入一同输入一个解码器。解码器的目标是根据中性模板生成出决定其风格的关键词。比如模板中的主体是食物,如果是正面情感,它就会输出食物真美味,如果是负面情感,它就会输出食物真难吃。

前言:这部分我们来说一说,文本风格迁移任务可以如何变得强大。它不光光可以把文本从负面情感变成正面情感。还可以做无监督的摘要、翻译甚至语音识别。

如果我们把文章当作是一种风格,其摘要看作是另一种风格。我们就可以直接训练一个模型把文章转换为摘要,而不需要任何标注的数据。

以前做文本摘要通常都是有监督的。但是要产生这种带标注的数据,非常耗费人力。

但如果我们套用文本风格迁移 CycleGAN 的做法,就无需对数据有那么大依赖。生成器G是一个序列到序列的模型,输入是一篇文章,输出是其摘要。重构器R则要把生成器G生成的摘要还原成原文档。判别器D则用来判断生成器G生成的摘要和人类手写的摘要,哪个更真实。

该方法在 Gigaword 数据集上可以看到,无监督的方式略逊于有监督的摘要生成方式。Trivial 的做法是直接把新闻的前几句抽出来作为摘要。它的效果也不差。即便我们不用Gigaword语料去训练无监督模型,而是用 CNN/Diary Mail 的标题数据去训练判别器,它也可以做得很好。ROUGE-1评估有多少unigram是一样的,ROUGE则评估有多少Bigram是一样的。L就是 LCS,最长公共子序列。ROUGE-1分数和人类的感知是最像的。

这边还列了一些其它类似的无监督学习的摘要算法作为参考。

语言和语言之间也可以看做是不同的文本风格。基于此,我们可以做无监督的翻译。

但是,直接学句子到句子的无监督翻译太难了。我们可以先换一种思路。找不同语言之间词向量的映射。这样就可以做到词到词的翻译。每一种语言,我们都可以无监督地得到那一种语言的词向量。我们把相同语义的词对应到一起,让它们的词向量是一样的。假设我们现在有一堆英文数据,和一堆中文数据,分别训练得到了各自的词向量。我们假设二者之间存在一种映射关系。希望能找到一个函数去学出这个映射关系。这样我们就通过这个映射,来找出词对词的翻译。比如上图例子中,英文数据只需要逆时针旋转一下就可以得到到中文数据的映射。这也是当下一个非常热门的研究。我们可以用生成器为 W 建模,输入是英文词向量,输出是中文词向量,判别器则用来判断生成的中文词向量和真实的中文词向量越接近越好。但是这种方法没有考虑词汇之间的语序,因此其效果的上限是有限的。

但今天也有很大的突破。ACL 18 有个叫 VecMap 的方法。过去的基于有监督的方法需要用到5k的中英文词汇映射字典。但当下无监督的方法,可以做到不用词典比有监督的方法还好。

以上是词到词的无监督翻译。现在我们来说一下句子到句子的无监督翻译。我们想把语言A翻译成语言B,但是我们没有语言A和语言B的配对数据。我们先去训练两个序列到序列的去噪自编码器,它们分别能重构语言A和语言B的句子。接着,我们希望语言A的编码器输出的嵌入向量,丢给语言B的解码器能够解码出其意思相近的语言B。但对于语音B的解码器来说,这段嵌入向量可能是一段乱码,它很难解码得到正确的翻译。所以我们要用各式各样的技巧来解决这个问题。比如我们可以加一个判别器,用来判断语言A的编码器输出向量和语言B的编码器输出向量有什么不同。两个编码器除了要让其各自的解码器能重构原来加上噪音的句子以外,还需要骗过判别器,让它区分不出二者的差别。

上面这种方式不能保证语言A编码器输出到语言B解码出的句子B,在语义上与输入句子A对应。它有可能出现 How are you 对应到 再见的翻译。所以我们需要借助另外一个无监督学习的翻译模型。这个模型不一定要表现很好,但至少能保证源语言句子到目标语言句子的翻译在语义上不会差的太离谱。这个翻译模型可以只用词到词的无监督翻译模型得到。训练时,就可以反复迭代进行。

这种无监督的翻译结果也非常惊人。无监督学习用 10M 个句子学到的效果相当于有监督学习用 100K个句子对得到的效果。

近年来比较大的进步是用BERT来预训练。依然是无监督的方法,效果会好上一个层级。

文本风格迁移甚至可以做无监督的语音识别。生成器G的输入是一段声音,输出是这段声音的语音识别文字结果。而判别器需要去判断它像不像是人说的句子。

我们会先用一个声学token发现技术,去把连续的声音信号变成 token。这种token发现技术,能够根据相似的声学信号模式特点,分割成相应的 token id。

当我们可以把声音信号变成离散的token之后,它就可以变成和翻译一样类型的问题。就可以用 CycleGAN 的问题解决范式和技巧去解。

这个结果做在 TIMIT 语料上。前面那种是语料中,语音和文字之间有一一对应关系,但没有其配对的标签。后面那种是,语料中语音和文字之间没有一一对应关系。

指标是用 PER,越低越好。有监督的 RNN 模型,大概在 17.7 左右。但对于完全无配对标注数据的无监督模型而言。PER 差得惨不忍睹。虽然很烂,但可以看出它是有学到一些东西的。

于是我们想办法进一步提升。这个技巧受到一篇 ICLR 19 的启发。我们可以先用一套叫 GAS 的技术找出 Phoneme 对应的语音上的边界。每个声学特征向量都会接入一个神经网络去分类出它的 Phoneme。往下再用采样去取一个声学边界中的一个 phoneme 结果。这便作为生成器的输出。整体训练目标是取骗过判别器。判别器需要从真正的 Phoneme 和 生成的 Phoneme 中区分出哪个是真的。为什么这里不用 RNN ,而用 DNN 呢?因为我们不希望生成器随便产生 Phoneme 序列。因为这样对判别器来说太好判断真假了。RNN 有时可以无视声学特征,自己输出一堆好的 Phoneme 序列,去骗过判别器。

我们来看第二个版本的生成器的结果。它显著好于第一个版本。也就是说无监督学习中是能够学到一些东西的。

接着,我们发型,Phoneme 边界的好坏,对表现影响非常大。所以我们希望一边训练无监督的语言识别,一边想办法找到更好的 Phoneme 边界。我们先会有一个初始的边界,用CycleGAN 的方法得到第一代的语音识别系统。这个系统可以去识别那些无标注的声音信号,这样就能得到一些伪标注数据。接着我们用这些伪标注数据去训练一个 HMM,可以更好地找到 Phoneme 边界。如此反复迭代,我们就可以不断提升语音识别系统的表现。

当我们使用了迭代版本去训练模型,我们可以把 PER 一路从50%下降到33.1%。

其实当前无监督学习的方法,已经能追平几十年前用有监督学习做的HMM方法了。

当我们知道无标注数据可以增强效果后,我们也不必做完全的无监督训练,而是结合有标注数据,做半监督训练。这种半监督训练方式可以充分利用海量无标注数据的信息,大大减少对标注数据的依赖,而且还可以把错误率从 21.7& 降低到 18.7%。

文本风格迁移除了 CycleGAN 的方法外,还有特征解纠缠的方法。从近年来的文献上看,这种方法也是可行的。这里就只列出 Reference。甚至还有人尝试做了无监督的语音翻译。

后记

别看无监督训练效果肯定不如有监督学习,就放弃了无监督学习。标注数据的成本有时昂贵到你要砍掉好几个项目。因此结合有标注和无标注数据一起做半监督学习,是一个非常具有产出的方向。

Reference

李宏毅 《人类语言处理 2020》Text Style Transfer and Unsupervised Summarization/Translation/Speech Recognition

• [Lee, et al., ICASSP’18] Chih-Wei Lee, Yau-Shian Wang, Tsung-Yuan Hsu, Kuan-Yu Chen, Hung-Yi Lee, Lin-shan Lee, Scalable Sentiment for Sequence-to-sequence Chatbot Response with Performance Analysis, ICASSP, 2018

• [Ning Dai, et al., ACL’19] Ning Dai, Jianze Liang, Xipeng Qiu, Xuanjing Huang, Style Transformer: Unpaired Text Style Transfer without Disentangled Latent Representation, ACL, 2019

• [Lample, et al., ICLR’19] Guillaume Lample, Sandeep Subramanian, Eric Smith, Ludovic Denoyer, Marc'Aurelio Ranzato, Y-Lan Boureau, Multiple-Attribute Text Rewriting, ICLR, 2019

• [Lample, et al., EMNLP’18] Guillaume Lample, Myle Ott, Alexis Conneau, Ludovic Denoyer, Marc’Aurelio Ranzato, Phrase-Based & Neural Unsupervised Machine Translation, EMNLP,2018

• [Hu, et al., ICML’17] Zhiting Hu, Zichao Yang, Xiaodan Liang, Ruslan Salakhutdinov, Eric P. Xing, Toward Controlled Generation of Text, ICML, 2017

• [Fu, et al., AAAI’17] Zhenxin Fu, Xiaoye Tan, Nanyun Peng, Dongyan Zhao, and Rui Yan, “Style transfer in text: Exploration and evaluation,” AAAI, 2017.

• [Shen, et al., NIPS’17] Tianxiao Shen, Tao Lei, Regina Barzilay, Tommi Jaakkola, Style Transfer from Non-Parallel Text by Cross-Alignment, NIPS, 2017

• [Li, et al., NAACL’18] Juncen Li, Robin Jia, He He, Percy Liang, Delete, Retrieve, Generate: a Simple Approach to Sentiment and Style Transfer, NAACL, 2018

• [Xu, et al., ACL’18] Jingjing Xu, Xu Sun, Qi Zeng, Xuancheng Ren, Xiaodong Zhang, Houfeng Wang, Wenjie Li, Unpaired Sentiment-to-Sentiment Translation: A Cycled Reinforcement Learning Approach, ACL, 2018

• [Wang, Lee, EMNLP’18] Yau-Shian Wang, Hung-Yi Lee, "Learning to Encode Text as Human-Readable Summaries using Generative Adversarial Networks", EMNLP, 2018

• [Chu, et al., ICML’19] Eric Chu, Peter Liu, “MeanSum: A Neural Model for Unsupervised Multi-Document Abstractive Summarization”, ICML, 2019

• [Baziotis, et al., NAACL’19] Christos Baziotis, Ion Androutsopoulos, Ioannis Konstas, Alexandros Potamianos, “SEQ^3: Differentiable Sequence-to-Sequence-to-Sequence Autoencoder for Unsupervised Abstractive Sentence Compression”, NAACL 2019

• [Conneau, et al., ICLR’18] Alexis Conneau, Guillaume Lample, Marc'Aurelio Ranzato, Ludovic Denoyer, Hervé Jégou, Word Translation Without Parallel Data, ICLR 2018

• [Lample, et al., ICLR’18] Guillaume Lample, Ludovic Denoyer, Marc'Aurelio Ranzato, Unsupervised Machine Translation Using Monolingual Corpora Only, ICLR, 2018

• [Lample, et al., NeurIPS’19] Guillaume Lample, Alexis Conneau, Cross-lingual Language Model Pretraining, NeurIPS, 2019

• [Artetxe, et al., ACL’18] Mikel Artetxe, Gorka Labaka, and Eneko Agirre, A robust self-learning method for fully unsupervised cross-lingual mappings of word embeddings, ACL, 2018

• [Hartmann, et al., NeurIPS’19] Mareike Hartmann, Yova Kementchedjhieva, Anders Søgaard, Comparing Unsupervised Word Translation Methods Step by Step, NeurIPS, 2019

• [Li, et al., EMNLP, 2017] Jiwei Li, Will Monroe, Tianlin Shi, Sébastien Jean, Alan Ritter, Dan Jurafsky, Adversarial Learning for Neural Dialogue Generation, EMNLP, 2017

• [Matt J. Kusner, et al., arXiv, 2016] Matt J. Kusner, José Miguel Hernández-Lobato, GANS for Sequences of Discrete Elements with the Gumbel-softmax Distribution, arXiv 2016

• [Tong Che, et al, arXiv, 2017] Tong Che, Yanran Li, Ruixiang Zhang, R Devon Hjelm, Wenjie Li, Yangqiu Song, Yoshua Bengio, Maximum-Likelihood Augmented Discrete Generative Adversarial Networks, arXiv 2017

• [Yu, et al., AAAI, 2017] Lantao Yu, Weinan Zhang, Jun Wang, Yong Yu, SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient, AAAI 2017

• [Sai Rajeswar, et al., arXiv, 2017] Sai Rajeswar, Sandeep Subramanian, Francis Dutil, Christopher Pal, Aaron Courville, Adversarial Generation of Natural Language, arXiv, 2017

• [Zhen Xu, et al., EMNLP, 2017] Zhen Xu, Bingquan Liu, Baoxun Wang, Chengjie Sun, Xiaolong Wang, Zhuoran Wang, Chao Qi , Neural Response Generation via GAN with an Approximate Embedding Layer, EMNLP, 2017

• [Alex Lamb, et al., NIPS, 2016] Alex Lamb, Anirudh Goyal, Ying Zhang, Saizheng Zhang, Aaron Courville, Yoshua Bengio, Professor Forcing: A New Algorithm for Training Recurrent Networks, NIPS, 2016

• [Yizhe Zhang, et al., ICML, 2017] Yizhe Zhang, Zhe Gan, Kai Fan, Zhi Chen, Ricardo Henao, Dinghan Shen, Lawrence Carin, Adversarial Feature Matching for Text Generation, ICML, 2017

• [Jiaxian Guo, et al., AAAI, 2018] Jiaxian Guo, Sidi Lu, Han Cai, Weinan Zhang, Yong Yu, Jun Wang, Long Text Generation via Adversarial Training with Leaked Information, AAAI, 2018

• [Kevin Lin, et al, NIPS, 2017] Kevin Lin, Dianqi Li, Xiaodong He, Zhengyou Zhang, Ming-Ting Sun, Adversarial Ranking for Language Generation, NIPS, 2017

• [Tual, Lee, TASLP, 2019]Yi-Lin Tuan, Hung-Yi Lee, Improving Conditional Sequence Generative Adversarial Networks by Stepwise Evaluation, TASLP, 2019

• [Xu, et al., EMNLP, 2018] Jingjing Xu, Xuancheng Ren, Junyang Lin, Xu Sun, Diversity-Promoting GAN: A Cross-Entropy Based Generative Adversarial Network for Diversified Text Generation, EMNLP, 2018

• [Weili Nie, et al. ICLR, 2019] Weili Nie, Nina Narodytska, Ankit Patel, RelGAN: Relational Generative Adversarial Networks for Text Generation, ICLR 2019

• [Ofir Press, et al., ICML workshop, 2017]Ofir Press, Amir Bar, Ben Bogin, Jonathan Berant, Lior Wolf, Language Generation with Recurrent Generative Adversarial Networks without Pre-training, ICML workshop, 2017

• [William Fedus, et al., ICLR, 2018] William Fedus, Ian Goodfellow, Andrew M. Dai, MaskGAN: Better Text Generation via Filling in the______, ICLR, 2018

• [Cyprien de Masson d'Autume, et al., arXiv 2019] Cyprien de Masson d'Autume, Mihaela Rosca, Jack Rae, Shakir Mohamed, Training language GANs from Scratch, arXiv 2019

• [Liu, et al., ICASSP’18] Alexander H. Liu, Hung-yi Lee, Lin-shan Lee, Adversarial Training of End-to-end Speech Recognition Using a Criticizing Language Model, ICASSP 2018

• [Liu, et al., INTERSPEECH’18] Da-Rong Liu, Kuan-Yu Chen, Hung-Yi Lee, Lin- shan Lee, Completely Unsupervised Phoneme Recognition by Adversarially Learning Mapping Relationships from Audio Embeddings, INTERSPEECH, 2018

• [Chen, et al., INTERSPEECH’19] Kuan-yu Chen, Che-ping Tsai, Da-Rong Liu, Hung-yi Lee and Lin-shan Lee, "Completely Unsupervised Phoneme Recognition By A Generative Adversarial Network Harmonized With Iteratively Refined Hidden Markov Models", INTERSPEECH, 2019

• [Chen, et al., SLT’18] Yi-Chen Chen, Sung-Feng Huang, Chia-Hao Shen, Hung-yi Lee, Lin-shan Lee, "Phonetic-and-Semantic Embedding of Spoken Words with Applications in Spoken Content Retrieval", SLT, 2018

• [Yeh, et al., ICLR’19] Chih-Kuan Yeh, Jianshu Chen, Chengzhu Yu, Dong Yu, Unsupervised Speech Recognition via Segmental Empirical Output Distribution Matching, ICLR, 2019

• [Chung, et al., NIPS 2018] Yu-An Chung, Wei-Hung Weng, Schrasing Tong, James Glass, Unsupervised Cross-Modal Alignment of Speech and Text Embedding Spaces, NIPS, 2018

• [Chung, et al., ICASSP 2019] Yu-An Chung, Wei-Hung Weng, Schrasing Tong, James Glass, Towards Unsupervised Speech-to-Text Translation, ICASSP 2019

• [Ren, et al., ICML 2019]Yi Ren, Xu Tan, Tao Qin, Sheng Zhao, Zhou Zhao, Tie-Yan Liu, Almost Unsupervised Text to Speech and Automatic Speech Recognition, ICML 2019

• [Jennifer Drexler, et al., SLT 2018] Jennifer Drexler, James R. Glass, “Combining End-to-End and Adversarial Training for Low-Resource Speech Recognition”, SLT 2018

苏剑林. (2019, Jun 10). 《漫谈重参数:从正态分布到Gumbel Softmax》[Blog post]. Retrieved from https://kexue.fm/archives/6705

添加个人微信,备注:昵称-学校(公司)-方向,即可获得

1. 快速学习深度学习五件套资料

2. 进入高手如云DL&NLP交流群

记得备注呦

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LVS(Linux Virtual Server)是一种基于 Linux 系统的负载均衡集群技术,它主要用于将网络流量分发到多个服务器上,以提高系统的可靠性、可扩展性和性能。 LVS 集群一般包括四个组件:调度器(LVS 调度器)、前端服务器(负载均衡器)、后端服务器(真实服务器)和存储服务器(用于共享数据)。首先,调度器接收来自客户端的请求,然后根据配置的调度算法(如轮询、加权轮询、最小连接数等)将请求分发到多个前端服务器。前端服务器接收到请求后,通过相应的负载均衡算法将请求转发到后端的真实服务器上进行处理。在整个过程中,存储服务器用于存放共享的数据,以确保所有的真实服务器都能获取到相同的数据,并提供一致的服务。 LVS 集群的优点是能够提高网站的稳定性和可靠性,当某一台服务器出现故障时,调度器会自动将请求分发到其他可用的服务器上,从而保证服务的连续性。同时,LVS 集群还能够通过增加前端服务器和后端服务器的数量来提高系统的性能和吞吐量,以满足不断增长的用户需求。 在实际应用中,LVS 集群需要合理配置,包括选择合适的调度算法、调整每台服务器的权重、选择适当的硬件设备等。此外,还需要及时监控集群的运行状态,及时发现和解决故障,以确保整个系统的正常运行。 总的来说,LVS 负载均衡集群是一种强大而高效的集群技术,能够帮助企业提高系统的可靠性和性能,是现代互联网应用中不可或缺的重要组成部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值