前言
本文总结深度学习领域的音乐(midi模式)生成模型的发展,主要关注基于Transformer模型的音乐生成。重点关注这个领域内的技术难点以及创新发展,总结归纳出一些代表性论文及其创新,为该领域研究人员提供一些思路与启发。
目录
Music Transformer
基础概念
本文介绍的是基于Transformer的音乐(midi)生成模型的发展脉络与各个研究重点,本小节先以此领域内首篇文章为例介绍研究背景与任务。请注意,本文仅介绍以Transformer模型为基础的音乐生成模型,其他如RNN、GAN、扩散模型等不在本文进行讨论。本文讨论面向的数据模式是音乐midi格式,音频audio格式不在本文讨论。
音乐除了可以以音频格式表征外,在计算机中还可以用midi格式进行存储。Midi中存储了音乐的各个详细元素信息,如音符音高、音符起始时间、音符时长等,即可以以数字化的模式将一首曲子、曲谱存储下来。
以midi为基础,我们是可以将音乐转化为一个一维序列的,每个元素表示曲子的时间信息、音符信息。同时,在Transformer模型出现以来,其长序列学习能力在多个领域被证实有效,其能力也随着结构的优化不断加强。因此,有学者尝试用Transformer-Decoder对音乐midi序列进行学习,并尝试生成分布近似的序列,以进行“人工智能音乐生成”。
在此任务中,研究人员主要解决两个关键问题。一是如何将midi信息序列转换为有结构的数字序列能让模型建模学习,二是如何用Transformer模型对这个数字序列进行建模,并完成生成任务。这将在后面两个小节分别讨论。
Music Representation
首先,可以按照音乐时间轴将NOTE_ON、NOTE_OFF和TIME_SHIFTS等信息转为一个一维序列,每个出现的信息用一个数字number表示。与NLP领域的文本表征方法类似,构建一个信息与数字的映射表(词典),用作预处理和后处理,即模型学习与生成的是数字序列,再通过词典转回信息序列。在这个关键技术的研究上,有很多研究进行了拓展,包括增加音乐信息、增强序列的结构特征等,在后续章节进行介绍。
Generate Model
在得到数字序列后,与NLP领域相似,我们可以通过Transformer模型的注意力机制、Mask机制等对这个序列进行学习。在模型学习到序列每个元素之间的联系后,输入一个随机符号,并不断将生成的符号重新输入模型,预测每一步的符号,即可逐渐完成完整音乐序列的生成。在生成的过程中,Transformer模型每一步都会得到一个和词典长度相等的特征向量,代表每个元素在当前的输出概率,选择概率最大的元素进行输出。
Music Representation 改进
基础概念
如上文所述,将音乐midi序列表征为数字序列的过程中,如果仅仅是将基础的音乐序列强硬地转换,可能是一个前后语义混乱的序列。因此,有一些研究关注到这个表征过程,尝试将一些音乐信息和特征融入进去,以求得到一个结构良好、表征能力强的序列,以辅助模型学习丰富的音乐信息并生成更好的音乐。
Pop Music Transformer
Pop music transformer: Beat-based modeling and generation of expressive pop piano compositions
作者在原始音乐信息的基础上,在表征序列转换过程中解析出节拍特征并设计相应的词典,转换得到了一个融入了节拍信息的序列,辅助模型更好地建模音乐片段之间的节奏。
如下图所示,Bar、Tempo、Position表示了音乐的节拍信息.
Compound Word Transformer
Compound word transformer: Learning to compose full-song music over dynamic directed hypergraphs
上述表征方法中,序列的每个元素都代表着独立的音乐信息,依靠前后一组元素表示完整的音符信息或节拍信息。但是,有研究人员认为这样会对模型有一定的混淆,前后相关的元素信息不一定能够被准确建模学习到。
因此,该研究提出将相关元素组成一个group,在表征时扩展为一个二维序列,第一维度的每一个元素代表一组信息,音符相关信息或者是节拍相关信息。如下图,这样的区分,能够辅助模型对两种信息进行区分,并更好地建模整体序列信息。
在模型输入与输出的位置,将二维序列通过多个输入输出头进行映射,并拼接即可完成二维序列的表征以及输出端的生成,最后通过类似回溯的算法即可转回midi序列。
Multiple Sequences of Time-valued Notes
Transformer-XL based music generation with multiple sequences of time-valued notes
相似地,也有研究考虑到,原先的表征序列只记录音符开始的绝对时间是无法准确描述音符之间的关系的。因此,可以考虑通过表征前后音符之间的相对时间,即可完成时间维度信息的表征,如下图:
在此基础上,由于输入的是二维序列,且时间维度信息和音符维度信息是部分存在相关性。因此,作者提出了通过多个Transformer模型分别处理输入输出序列,在注意力层前进行特征向量的拼接,以保证两者信息的相关性能够被学习到。
Generate Model 改进
基础概念
在对音乐表征方式的改进之余,也有不少研究针对建模的模型进行了改进。从增强音乐结构特性学习的角度出发,或将某些特征主题序列引入以进行强化特征学习,或引入生成对抗方法以优化训练过程,这些方法都被证明对序列建模有一定地正向促进作用。同时,也有研究者考虑在模型推理生成阶段引入优化方法,每一时刻并不输出最大概率值,而是进行一定的缓存,在一定搜索空间中找到最优输出。
Structure-Enhanced
Structure-Enhanced Pop Music Generation via Harmony-Aware Learning
音乐理论中,音乐是具有一定结构特征的。横向时间轴上,时序具有重复、transition等变化,在纵向上音符或乐器具有一定的组织如和弦。因此,有研究人员将和弦和片段信息作为额外的序列符号分别输入到Transformer模块中,并进行合并后输入到生成模块。输入端对结构信息的处理,被证明对生成音乐质量有所提升。
Theme-Conditioned
Theme Transformer: Symbolic Music Generation With Theme-Conditioned Transformer
处理音乐中的结构特征信息之余,也有人认为可以在音乐生成模型训练过程中利用主题段信息。对于主题段的定义,研究人员认为在整首曲子中重复或相似出现的小片段可以作为主题,曲子是围绕主题段展开的。
因此,研究人员设计了一个新的注意力机制,在注意力层引入了主题段编码信息,以使得学习整体序列时能够引入主题信息。
Generative Adversarial
Symbolic music generation with transformer-gans
对抗学习在图像生成领域被广泛应用,其“矛与盾”对抗的思想能够辅助生成器更好地建模目标域特征。有研究人员关注到,将对抗学习引入到音乐序列生成中,也能辅助模型更好地学习序列特征。因此,借鉴Bert的思想,在一个Transformer-Encoder输入端引入一个CLS符号作为真/假判别的特征符号,再在其输出端构建对抗损失,能够很好地辅助生成器学习某一段序列的“合理性”。
生成器与鉴别器的损失分别如下,即对抗损失与最大似然估计,与对抗和正则约束损失。
Inference Search
Generating Music with Emotions
基于Transformer的音乐生成模型在每一步推理时都是选择特征向量中概率最大的token,但这种方式在NLP领域被证明并不是最优解。Beam Search等方法在NLP领域被广泛应用,能够在一个搜索空间中搜到较优解输出。因此,有研究将这种方法应用到音乐生成模型中,并且利用情感特征等作为搜索得分的计分标准,选择更符合特征的序列输出。
两阶段生成模型的构建
基础概念
上述方法在基于Transformer的音乐生成任务上进行了一定的探索,而其目的都是使得模型对音乐表征序列的学习建模更好。但是,有研究人员发现,仅靠单个模型直接从随机噪声生成完整的音乐序列,对模型是一件十分困难的事。因此,和图像生成领域相似,有研究逐渐探索两阶段生成的方法,即先生成音乐的“sketch”,再进一步生成完整音乐序列。
Melons
MELONS: GENERATING MELODY WITH LONG-TERM STRUCTURE USING TRANSFORMERS AND STRUCTURE GRAPH
构建两阶段音乐生成模型的关键,在于定义出一个中间域,即音乐的“sketch”。这个中间域要即让第一阶段模型学习生成难度降低,又能和完整音乐序列保持联系,做到从噪声到完整音乐序列的连接桥梁。有研究人员提出利用音乐小节间的发展联系作为“sketch”,先生成音乐小节间的结构变化,再生成完整片段。研究证明,音乐小节间的重复、递进等联系能够很好地辅助模型学习音乐序列的特征,以生成结构更良好、质量更高的音乐。
Wuyun
WuYun: Exploring hierarchical skeleton-guided melody generation using knowledge-enhanced deep learning
与将音乐小节间联系作为中间阶段不同,有研究人员直接提取部分音符作为“sketch”。这些音符包括重音、转调音、长音等。这些音符往往是旋律转换的关键部分或者是主旋律的关键音符,作者先在第一阶段生成这部分音符,再进一步生成完整音乐序列。
Three Stage Generation
The Beauty of Repetition: an Algorithmic Composition Model with Motif-level Repetition Generator and Outline-to-music Generator in Symbolic Music Generation
从音乐理论研究出发,有研究探索Motif与完整曲子的关系。研究人员发现,乐曲是在某些音符及其变化的组织下发展的,可以将这些音符及其变化视为曲子的骨架。因此,作者提出先随机挑选一个Motif,再生成其随机变化作为曲子骨架,最后生成完整音乐序列。此方法将音乐的层次结构进一步分解了,为此方向研究奠定了更坚实的基础。
多模态&大模型相关研究
基础概念
本文上述讨论的是基于Transformer的音乐生成模型发展,仅仅是在音乐midi域内的研究工作。而仅仅在midi域内进行生成任务的研究,一方面没有办法利用多个模态的信息辅助模型学习,另一方面扩模态模型具有更强的可控制性和可解释性。因此,有研究人员逐渐开展音乐midi和文本联系的研究,尝试辅助模型学习两个域的联系,并做到文本提示音乐生成与控制音乐生成。
文本-midi 多模态学习
MuseCoco: Generating Symbolic Music from Text
在引入文本域到音乐midi域生成的过程中,有研究人员提出并不直接将两个域进行对齐,而是先从文本中提取音乐描述特征,建立音乐特征与音乐的联系。这个方法主要涉及文本到特征属性,以及特征属性到音乐的转换工作,分别用大语言模型和自建模型完成。
多任务大模型
CLAMP: CONTRASTIVE LANGUAGE-MUSIC PRE-TRAINING FOR CROSS-MODAL SYMBOLIC MUSIC INFORMATION RETRIEVAL
同样是探索音乐midi与文本的联系,有研究人员参考图像领域的CLIP模型,在隐藏域构建描述文本和midi的映射,以做到下游分类等任务。参考CLIP的思想和实现思路,设计了音乐midi域的具有跨模态能力的大模型,为后续研究奠定基础。