2018
Huang, C. Z. A., Vaswani, A., Uszkoreit, J., Shazeer, N., Simon, I., Hawthorne, C., Dai, A. M., Hoffman, M. D., Dinculescu, M., & Eck, D. (2018). Music transformer: Generating music with long-term structure. In arXiv.
Overview - 何がすごい?
TransformerがNLP領域で長期の依存関係を低コストで学習できることを示した。音楽もミクロからマクロまで様々な解像度での時間的な依存関係を持つことから、Transfromer/Self Attention の考え方を音楽にも生かせるのではないか。
結果としてPerformanceRNNの4倍以上の長さの曲(数1000ステップ)を生成できることを示した。
Abstract
Music relies heavily on repetition to build structure and meaning. Self-reference occurs on multiple timescales, from motifs to phrases to reusing of entire sections of music, such as in pieces with ABA structure. The Transformer (Vaswani et al., 2017), a sequence model based on self-attention, has achieved compelling results in many generation tasks that require maintaining long-range coherence. This suggests that self-attention might also be well-suited to modeling music. In musical composition and performance, however, relative timing is critically important. Existing approaches for representing relative positional information in the Transformer modulate attention based on pairwise distance (Shaw et al., 2018). This is impractical for long sequences such as musical compositions since their memory complexity for intermediate relative information is quadratic in the sequence length. We propose an algorithm that reduces their intermediate memory requirement to linear in the sequence length. This enables us to demonstrate that a Transformer with our modified relative attention mechanism can generate minute- long compositions (thousands of steps, four times the length modeled in Oore et al. (2018)) with compelling structure, generate continuations that coherently elaborate on a given motif, and in a seq2seq setup generate accompaniments conditioned on melodies1. We evaluate the Transformer with our relative attention mechanism on two datasets, JSB Chorales and Piano-e-Competition, and obtain state-of-the-art results on the latter.
Motivation
音楽に特有の繰り返しなどの構造を低コストで学習したい!
Architecture
データの表現
Performance RNNの表現方式を採用
Relative Position Self-Attention
本論文の技術的なコア。
元々のTransformerの論文ではサイン、コサインでタインミングの情報をエンコードしていた。"Self-Attention with Relative Position Representations"が導入したのはQとKの距離を相対的に考慮にいれる。
元々のSelf-attention
この論文で利用されたRelative Position Self-Attention
は (l, l)のテンソル (lはシーケンスの長さ) 相対的な距離を表現する。で、 はのテンソル (l, l)それぞれの距離に対して d次元のembeddingを持っている。
Skewing
問題はこのがでかすぎること。計算量が のオーダーになる。 そこでSkewingと呼ぶ、配列をゴニョゴニョする方式で にしちゃう。。。というのがこの論文の技術的なポイントなのだけど、Skewingの計算の意味の理解が正直追いついてない💦
さらにシーケンスを細かくブロックに切って、ブロック内と一つ前のブロックのみをAttendするようにして計算量をさらに抑える工夫もしている (Relative Local Attention)
Results
まずはValidationの数値が向上していることを確認
- 以前のRNNベースのもよのよりも格段に長い曲を生成できる
- Self-attentionの学習に必要なメモリを 8.5GBから4.2MBと言ったスケールで大きく減らすことに成功
生成された曲の例
先行研究 RNN (Performance RNN)
Further Thoughts
- Skewing の処理がよくわからない、、、
Links
Music Transformer: Generating Music with Long-Term Structure - Magentaブログ
Transformer 元論文
Attention is All You NeedSelf-Attention with Relative Position Representations
Performance RNN
Music Transformerが生み出す 繰り返し構造の解析など
pytorchの実装