分享

【文本生成现代方法】Modern Methods for Text Generation

 520jefferson 2020-09-13





















摘要




















合成的文本生成具有挑战性,取得成功的不多。最近,一种名为Transformer的新架构允许机器学习模型更好地理解序列数据,比如翻译或摘要。BERT和GPT-2在其核心中都使用 Transformers,在诸如文本分类、翻译和NLI任务中表现出了良好的性能。在本文中,我们分析了这两种算法,并比较了它们在文本生成任务中的输出的质量。





















介绍




















自然语言处理(NLP)是一个很大的领域,我们可以在其中找到不同的任务:文本分类、命名实体识别、语言翻译……这些任务有一个共同的挑战:用人类语言编写的文本(通常是非结构化文本)。在本文中,我们关注的任务是使用条件语言模型和新的Transformer架构生成的文本。

为了理解文本生成,有必要定义什么是语言模型(LM)。在维基百科中,统计语言模型是一个单词序列的概率分布,例如,给定一个长度为m的序列,它分配一个概率P(w_1,…,w_m)到整个序列。因此,我们可以使用条件LM来查找序列中下一个单词出现的概率:P(w_m+1 |w_1,…,w_m)。

在本文中,我们假设你对深度学习、单词向量和嵌入空间有基本的了解。尽管如此,我们在这里描述一些与理解基于Transformer的模型相关的模型和技术。





















Seq2Seq 模型




















在很长一段时间里,条件文本生成是基于Seq2Seq模型[1]的。Seq2Seq背后的思想是由两个递归神经网络(RRN)组成的,它们试图从前一个状态序列预测下一个状态序列(这两个神经网络分别接收编码器和解码器的名称)。扩展最广的两个RNNs是由Sepp Hochreiter和Jurgen Schmidhuber[2]于1997年引入的LSTM和Junyoung Chung等[3]于2014年引入的GRU。然而,用RNNs生成的文本远非完美:它们往往是废话,有时还包含拼写错误。基本上,一个错误的预测就有可能使整个句子变得毫无意义。此外,由于神经网络需要以序列的形式处理数据,因此不可能并行化处理。





















上下文的词嵌入




















传统上,模型接收一系列标记(通常是单词),并将它们转换为静态向量。简而言之,它们只是表示单词含义的数字向量。一个广泛扩展的模型是Word2vec(由Mikolov等人在2013年引入),它计算每个 token的静态向量(这些向量称为嵌入)[4]。此外,Word2vec的向量在句法和语义词的相似性方面提供了最先进的(SOTA)性能。

使用单词向量的强大之处在于它们可以使用数学运算符。例如,我们可以对向量进行加减运算:

最近的技术包括将上下文合并到单词嵌入中:用上下文化的单词表示替换静态向量已经使几乎每个NLP任务的显著改进。ELMo在2018年[5]中引入了这种单词嵌入:向量是深双向语言模型(biLM)内部状态的学习函数。这是一个突破,它将引导模型进一步理解单词。例如,它们可能有不同的歧义词(例如rock可以是一块石头或一种音乐类型),而不是拥有相同的静态矢量





















Transformers




















谷歌的研究人员在2017年的论文“Attention Is All You Need”[6]中发布了一种名为Transformer的新模型。简单地说,这个体系结构由自注意力层和逐点的全连接层组成(参见图2)。与我们描述的Seq2seq类似,Transformer包括编码器、解码器和最后的线性层。

这些模型被设计用来处理序列数据(在NLP中特别有用)。注意,与Seq2seq相反,它们不包含递归或卷积,所以它们不需要按顺序处理序列。这个事实允许我们并行化(比RNNs多得多)并减少训练时间。

专知便捷查看

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多