CTRL: A Conditional Transformer Language Model for Controllable Generation②(Language Modeling 〜 Controllable Generation)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #43

f:id:lib-arts:20200305193722p:plain

言語処理へのDeepLearningの導入をご紹介するにあたって、#3〜#8においては、Transformer[2017]やBERT[2018]について、#9~#10ではXLNet[2019]について、#11~#12ではTransformer-XL[2019]について、#13~#17ではRoBERTa[2019]について、#18~#20ではWord2Vec[2013]について、#21~#24ではALBERT[2019]について、#26〜#30ではT5[2019]について、#31〜#32ではERNIEについて、#33〜#34ではELMo[2018]について、#35〜#36ではself-attention、#37〜#38ではDecomposable Attentionについて、#39〜#41ではReformer[2020]について取り扱ってきました。

XLNet②(事前学習におけるAutoRegressiveとPermutation)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #10 - Liberal Art’s diary

RoBERTa(論文の詳細④ RoBERTa、Related Work、Conclusion)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #17 - Liberal Art’s diary

ALBERT③(The Elements of ALBERT)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #23 - Liberal Art’s diary

T5(Text-toText Transfer Transformer)③(Section2_Setup)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #28 - Liberal Art’s diary

Reformer: The Efficient Transformer②(Locality-Sensitive Hashing Attention)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #40 - Liberal Art’s diary
#42以降では条件付きのTransformerを用いることで、生成の制御を行うCTRL(Conditional TRansformer Language Model)に関する下記の論文を取り扱っていきます。

[1909.05858] CTRL: A Conditional Transformer Language Model for Controllable Generation
#42ではAbstractとIntroductionを確認し、論文の概要を把握しました。
https://lib-arts.hatenablog.com/entry/nlp_dl42
#43ではSection2のLanguage ModelingからSection4のControllable Generationまでを取り扱います。
以下目次になります。
1. Language Modeling(Section2)
2. Language Modeling with CTRL(Section3)
3. Controllable Generation(Section4)
4. まとめ


1. Language Modeling(Section2)
1節ではSection2のLanguage Modelingについて取り扱います。基本的な言語に関する数式モデルの定義についてまとめられています。

f:id:lib-arts:20200311234408p:plain
上記では、言語などの系列の表現としてx=(x_{1},...x_{n})がある際に、言語のモデリングの目的はp(x)を学習させることであるとされています。この時xが系列であるために、確率の連鎖律(the chain rule of probability)を用いてこの同時分布(distribution)をp(x)=\Pi_{i=1}^{n} p(x_{i}|x_{< i})のように分解する(factorize)ことが自然だとされています。
これによって言語モデルを次の単語の予測問題に変換することができます。ここでパラメータを\theata、データセットDとおいて、データセットが得られた際の負の対数尤度(negative log-likelihood)をL(D)としています。このように、言語モデリングの数式定義の一般的な事項についてSection2のLanguage Modelingでは簡単な取りまとめを行なっています。


2. Language Modeling with CTRL(Section3)
2節ではSection3のLanguage Modeling with CTRLについて取り扱います。言語モデルを条件付きで表すにあたっての数式表現について記載されています。

f:id:lib-arts:20200312000031p:plain
まず上記では、言語モデルに条件付けを行うにあたって、制御コードのcを定義しています。これにより言語モデルp(x|c)と表現できるとされています。Section2と同様、p(x|c)p(x|c)=\Pi_{i=1}^{n} p(x_{i}|x_{< i},c)のように分解を行うことができ、負の対数尤度のL(D)もSection2と同様計算できるとされています。

f:id:lib-arts:20200312000903p:plain

f:id:lib-arts:20200312000920p:plain

次に上記は基本的に通常のTransformer系の話に制御コードのcを導入しただけと考えておけば十分です。Attention layerをl(大体が6〜24層)、モデルの次元をd(大体が512〜2048)とおいています。また層の一つ一つは二つのモジュールから構成されているとなっており、これは通常のTransformerと同様にmulti-head attentionとfeedforward networkの二つが紹介されています。

f:id:lib-arts:20200312001526p:plain

続くSection3-1ではDataについて紹介されています。学習データとしてはWikipediaなどを中心に用いて、全体としては140GBのデータであるとされています。

f:id:lib-arts:20200312001755p:plain
次にSection3-2では並行で行なった実験の設定について記載されています。上記を見ると、CTRLはモデルの次元としてd=1280、48層などの設定が記載されています。


3. Controllable Generation(Section4)
3節ではSection4のControllable Generationについて取り扱います。

f:id:lib-arts:20200312212240p:plain

上記では数式(1)で条件としてtemperatureのTが与えられた時のi番目のトークンの予測確率について定式化しています。ここでx_{i}はスコアであるとされています。ここでtemperatureのTが0に近い時はピークが大きくなる分布となり、Tを限りなく大きくすると一様分布に近づくとされています。

f:id:lib-arts:20200312212850p:plain
条件が与えられた際の確率分布のわかりやすい例としては、上記のようにFig1で図示されています。promptsが与えられた際に、回答の確率分布が上記のように表現されています。

f:id:lib-arts:20200312213156p:plain

Section4-2では上記のように様々な条件コードとPromptに対して文書生成を行なっています。

f:id:lib-arts:20200312213512p:plain

具体的な文書生成としては上記のようにpromotsとcontrol codesを指定することで続く文書などを生成しています。


4. まとめ
#43ではCTRLの論文のSection2のLanguage ModelingからSection4のControllable Generationまでを取り扱います。
#44では引き続きCTRLの論文のSection5以降を取り扱っていきます。