基于神经网络的文本生成在各种任务中取得了巨大的进展。这些文本生成任务如对话生成、故事生成、摘要生成等可以自由生成文本而不受特定格式的限制。然而,对于歌词(假设乐谱已给定)、宋词、十四行诗等这些独特的文体,有着严格的格式、韵律等要求。这类文本有以下三个典型特征:
(1) 必须完全遵循预定义的格式。
(2) 必须遵循对应的押韵规则。
(3) 在满足上述要求下还必须确保句子的完整性。对于这类给定固定模板,严格要求按照限制格式进行文本生成任务研究较少。为此,本文提出SongNet模型以解决此类遵循固定格式的文本生成问题。
SongNet是一个基于Transformer的自回归语言模型,通过定制化设计一系列符号提高模型在格式、押韵和句子完整性方面的性能。另外,SongNet改进了注意机制,以促使模型能够捕获格式的上下文信息。本文在SongNet基础上提出一个预训练和微调框架,以进一步提高生成质量。最后,在两个收集的语料库(中文和英文)上进行实验,实验结果表明SongNet在自动评测标准上和人工评估方面优于其他模型。
此外,SongNet已在“唱作俱佳”的腾讯AI数字人艾灵的歌词生成方案中得到应用。例如,给定《十年》这首歌词的格式,可以通过SongNet重新进行配词,并保证格式不变,可以根据原来的曲谱进行演唱:
原歌词:十年之前/我不认识你/你不属于我/我们还是一样/陪在一个陌生人左右/走过渐渐熟悉的街头
新配词:夜深人静/思念你模样/多少次孤单/想伴在你身旁/是什么让我如此幻想/为何会对你那般痴狂。
方法
问题定义
输入:一个模板,即一个预定义的格式要求。比如:输出:将替换成真实的文字,生成符合模板格式的完整句子。比如:
Y = love is not love;
bends with the remover to remove:
模型框架
SongNet的模型框架如Figure 2所示:为了解决模板、韵律、句子完整性问题,本文定义了几种符号来对这些特殊的信息进行建模。
模板和韵律符号:其中${c_0}$代表普通文本符号,${c_1}$代表标点符号,${c_2}$代表该位置是韵脚,$</s>$表示子句或句子分隔符,$<eos>$表示整个句子的结束标记。
内部位置符号:$p_i$表示字符在同一子句或句子中的局部位置。需要注意的是,这里的位置符号索引按降序排列。其目的是通过推动这些符号捕捉句子的动态信息,特别是精确地捕捉句子的结束位置,从而提高句子的完整性。
句子符号:对句子位置进行建模,其中$s_i$表示该字符属于句子$i$,其目的是通过定义句子索引特征来增强不同位置的句子之间的相互作用。
训练的时候,所有的符号以及文本字符向量后统一输入到基于Transformer的语言模型中。与BERT和GPT2.0不同的是,SongNet稍微修改了传统的注意力机制以适应本文所提出的问题。
预训练和微调
虽然可以直接拿SongNet在目标语料库的训练数据集上进行训练,但通常语料库的规模有限,例如,在莎士比亚的十四行诗语料库中只有大约150个样本。因此,本文还设计了一个预训练和微调框架,以进一步提高生成质量。
在生成任务中,会遇到给定部分文本,补全其他文本的需求。例如,在模板中,给定部分句子,要求补全其他句子;在句子中,给定部分词,要求补全其他词。为了使得模型能够应对这类需求,在SongNet的预训练阶段,设计了masking策略:模板中保留部分词,模型学习预测其他的词。
生成阶段
在生成阶段可以指定任何格式和押韵符号(该模板记为$C$)来控制生成。SongNet模型从特殊token `<bos>`处开始迭代生成,直到遇到结束token `<eos>`。
实验
实验评测过程采用中英数据集各一套。中文以宋词生成作为预测目标;英文则是生成莎士比亚十四行诗(sonnet)。模型分预训练和微调两个阶段。在预训练阶段,中文语料主要是新闻和维基百科,英文语料是维基百科和BooksCorpus。
评测结果
可以看出SongNet在PPL、多样性、格式准确率、押韵准确率、句子完整性上都取得了不错的得分。相比宋词,十四行诗的效果差一些,主要原因是十四行诗的训练样本太少(只有100首),导致模型无法捕捉到足够有用的特征,在韵律的学习上尤甚。
生成实例说明
指定模板生成:Table 5分别介绍了SongCi和十四行诗生成的几个案例。宋词的格式(CiPai)都是冷启动样本,它们不在训练集中,甚至是新定义的。SongNet仍然可以在格式、韵律和完整性方面产生高质量的结果。对于语料库只有100个样本的十四行诗来说,虽然SongNet可以生成14行文本,但质量就不如宋词那般好了。
总结
本文所提出的SongNet是一个预先训练和微调框架,旨在处理严格格式控制的文本生成。在SongNet中设计了一系列的符号并提高了在格式、韵律和句子完整性方面的建模性能。在中英两个语料库上进行的实验,表明在给定任意冷启动格式的情况下,SongNet在自动化的度量指标和人工评估方面都取得了显著更好的结果。