【ご報告】4月の投稿はストップし、5月から再開します

1日1投稿できるように進めてきましたが、新型コロナウイルスの影響による活動の変化に伴い時間がなかなか取れないため4月の投稿はストップとし、5月よりまた再開とできればと思います。

再開の際にはまたよろしくお願いいたします。

ロジカルシンキングまとめ②|ロジカルシンキングを学ぶ #5

f:id:lib-arts:20200301203354g:plain

連載の経緯は#1に記しました。

「詭弁」と「論理学」|ロジカルシンキングを学ぶ #1 - Liberal Art’s diary
演繹的な論理学から入ると導入としては抽象的で難しいものになりそうなため、#1〜#3では「詭弁」と「論理学」ということで、ロジカルシンキングがうまくいっていない例を見つつ、それを論理学的に整理や考察を行いました。

「詭弁」と「論理学」|ロジカルシンキングを学ぶ #1 - Liberal Art’s diary

「詭弁」と「論理学」②|ロジカルシンキングを学ぶ #2 - Liberal Art’s diary

https://lib-arts.hatenablog.com/entry/logical-thinking3
#4からは下記を参考にロジカルシンキングについてまとめていきます。

ロジカルシンキング - Wikipedia

#4では上記のページの途中までを取り扱いました。
https://lib-arts.hatenablog.com/entry/logical-thinking4
#5は引き続き、Wikipediaの内容を確認していきます。
以下目次になります。
1. 三角ロジックとトゥールミン・モデルについて
2. 発達心理学の記述に現れる論理思考について
3. 日本語と日本人の特殊性との関連について
4. 英文・日本文の作文指導との関連について
5. まとめ


1. 三角ロジックとトゥールミン・モデルについて
1節では「三角ロジックとトゥールミン・モデル」について確認します。

f:id:lib-arts:20200315172408p:plain
上記では三角ロジックの解説として、「トゥールミンモデルに基づき、正三角形の各頂点に主張、客観的事実、論拠が配置され、これらの三要素が揃っていることをもって論理的であるとする考え方」とされています。

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

トゥールミンモデルの略形については上記とされており、三角モデルがこれに主に基づくとされています。

f:id:lib-arts:20200315174002p:plain
上記によるとトゥールミン(Toulmin)モデルは元々法律的な議論を行うモデルとして考案されたものである一方で、用語の揺らぎはあるものの分野を問わず広く用いられているとされています。この際に結論(conclusion)か主張(claim)か、データ(data)か事実(fact)か、といった用語選択は分野によって様々とされています。

f:id:lib-arts:20200315174435p:plain
また、上記では三角ロジックの応用についてまとめられています。具体的には、戦略コンサルティングの文脈における「So what / Why so?」や、演繹法ワラント->データ->クレーム)と帰納法(データ->ワラント->クレーム)などが紹介されています。

2. 発達心理学の記述に現れる論理思考について

f:id:lib-arts:20200315174845p:plain
発達心理学における論理思考については、「人間の成長過程における言語の観察において『論理的思考』の能力を獲得する段階が位置付けられている』とされています。


3. 日本語と日本人の特殊性との関連について

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

上記では、日本語の曖昧さと「日本語は論理的な言語ではない」や「日本人は論理的思考が苦手である」という古くからの主張について取り扱われています。これらに関しては英語やフランス語をはじめとする欧米の言語に堪能な明治時代の日本の知識人によって主張され、志賀直哉などが日本語不要論を展開したりしたともされています。
近年では反論も出されているようです。日本人は他の国に比べ議論が下手だという印象はかなり受けますが、こちらの原因が言語によるのか文化によるのかは確かに調査や考察を慎重に行った方が良いなという印象です。


4. 英文・日本文の作文指導との関連について

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

作文指導としてはアメリカでは20世紀初頭に『The Elements of Style』によって、より簡潔な英文についての指針が提示された以降、意図を的確に伝えることができる英文を書く能力が重視されるようになったとされています。また、文章の段落構成や段落の文の記述、文のつながりなどが作文の授業で教えられており、こうした文章の構成規則に従った文章のことを『論理的』と表現されるとなっています。
個人的な経験として、小中学校における作文の課題に良い印象はなかったのですが、理由としては『自由に書きましょう』と言われたのが非常にあるなと思います。後から振り返るに、『自由に書く』というのはかなり無理があるなと思います。もう少し文章構成の訓練を積ませるべきではないでしょうか。守破離とも言いますが、型を身につけなければ自由な発想はむしろ難しいのではないかと思います。


5. まとめ
#5では#4に引き続き、Wikipediaロジカルシンキングの項目について確認しました。
#6からは論理学について確認していこうと思います。

PageRank with DGL message passing①|DGL(Deep Graph Library)を動かす #4

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

当シリーズでは、DGL(Deep Graph Library)について確認していきます。

Overview of DGL — DGL 0.4.2 documentation

#1ではDGLのドキュメントを元にインストールと動作事例の確認について、#2では#1の題材における重要ポイントの詳細の確認について、#3では"DGL Basics"について確認しました。
https://lib-arts.hatenablog.com/entry/dgl1
https://lib-arts.hatenablog.com/entry/dgl2
https://lib-arts.hatenablog.com/entry/dgl3
#4以降ではドキュメントより、"PageRank with DGL message passing"を読み進めていきます。

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

PageRank with DGL message passing — DGL 0.4.2 documentation

上記が冒頭部の記載ですが、「小さいグラフにおけるPageRankを用いたmessage passingAPIの異なるレベルについて学ぶことができ、DGLではmessage passingとfeature transformationsはユーザー定義(UDFs; user-defined functions)の関数である」とされています。詳しくは下記で確認していきます。
以下、目次になります。(チュートリアルの目次に準じています)
1. The PageRank algorithmについて
2. A naive implementationについて
3. まとめ


1. The PageRank algorithmについて
1節ではPageRankアルゴリズムについて確認します。

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

上記のようにPageRankは解説されています。まずそれぞれのノードに一様に値を割り振り、更新式に基づいてPV(v)をアップデートしていくとされています。
更新式において、Nはグラフにおけるノードの数、D(v)はノードvから出ていく向きの次数(out-degree、有向グラフのため次数は入ってくる向きと出ていく向きがある)、PV(v)PV(u)はノードvuページランクの値(PageRank value)であるとされています。また、dダンピングファクター(damping factor)とされており、Wikipediaの記載によると「通常0.85に設定されるが、作為的にページランクを上げようとする者に対しては、より小さい値に設定される。(常に 0 ≤ d ≤ 1)」とされています。

ページランク - Wikipedia

PageRankの大枠のアルゴリズムについては確認できたので1節はここまでとします。


2. A naive implementationについて
2節では"A naive implementation"について確認していきます。

f:id:lib-arts:20200317190633p:plain
上記では、100個のノードからなるグラフをNetworkXで作成し、DGLGraphの形式に変換したとあります。

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

記載のコードの実行結果は上記になります。有向グラフがmatplotlibによって描画がされています。ここで、erdos_renyi_graphはランダムなグラフのことですが、第一引数はノードの数でここでは100、第二引数はエッジが存在する確率でここでは0.1、また結果の再現性を担保するために上記ではseedを固定しています(元のチュートリアルではseedを固定していませんでしたが、混乱を防ぐためにもseedを固定することにしました)。

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

次に、PageRankアルゴリズムに沿って初期値の設定を行っています。g.ndata['pv']にPageRankのスコア、g.ndata['deg']にノードから出ていく向きの次数の値を代入しています。

f:id:lib-arts:20200317193239p:plain
0〜4までのノードの持つ値を出力すると上記のようになります。g.ndata['pv']はどの要素も1を100で割った数が入力されるので全て0.01の値を持ち、g.ndata['deg']はエッジの生成確率が0.1のため、大体10前後の次数を持つようになっています。

f:id:lib-arts:20200317193719p:plain
以降では上記のような関数の定義が行われています。詳しくは使用時に確認するとしてここでは省略します。


3. まとめ
#4では"PageRank with DGL message passing"のページより、"A naive implementation"までを読み進めました。
#5では"Batching semantics for a large graph"以降について取り扱っていければと思います。

CTRL: A Conditional Transformer Language Model for Controllable Generation③(Source Attribution以降)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #44

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

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について、#43ではSection2のLanguage ModelingからSection4のControllable Generationまでを取り扱いました。
https://lib-arts.hatenablog.com/entry/nlp_dl42
https://lib-arts.hatenablog.com/entry/nlp_dl43
#44ではSection5のSource Attribution以降について取り扱っていきます。
以下目次になります。
1. Source Attribution(Section5)
2. Related Work(Section6)
3. Future Directions(Section7)
4. CTRL-ALT-DEL(Section8)
5. Conclusion(Section9)
6. まとめ


1. Source Attribution(Section5)
1節ではSection5のSource Attributionについて取り扱います。

f:id:lib-arts:20200314180616p:plain
上記ではドメインの制御コード(domain control codes)を、ベイズの定理を用いて考察を行なっています。言語モデルp_{\theta}(x|c)を学習しているとされており、ここに事前分布のp(c)を与えるなどについて記載されています。(数式が少ないなどいまいち記述が明瞭ではない印象を受けました。)


2. Related Work(Section6)
2節ではSection6のRelated Workについて取り扱います。Related Workでは、"Language modeling"、"Multi-task learning"、"Sampling methods and coverage mechanisms"の三つについて取り扱われています。

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

Language modelingではBengioのLanguage model[2003]やWord2vec[2013]やTransformer[2017]などについて紹介されています。近年ではBERT[2018]などの事前学習モデル(pretrained model)などが研究トピックの中心になっています。
残り二つについては省略します。


3. Future Directions(Section7)
3節ではSection7のFuture Directions(将来研究の方向性)について取り扱います。

f:id:lib-arts:20200314190240p:plain
"More control codes and finer-grained control"ですが、CTRLの論文ではdomain、topic、entity relations、日付など様々な属性に対して取り扱われてきましたが、将来研究ではさらに様々なドメインにおける拡張を行うことを望むとされています。
その他については省略します。


4. CTRL-ALT-DEL(Section8)
5. Conclusion(Section9)
今回は省略します。


6. まとめ
#44ではCTRLの論文のSection5のSource Attribution以降について取り扱いました。
#45以降では下記などを参考にALBERTの実装について確認していきます。

GitHub - google-research/ALBERT: ALBERT: A Lite BERT for Self-supervised Learning of Language Representations

ロジカルシンキングまとめ①|ロジカルシンキングを学ぶ #4

f:id:lib-arts:20200301203354g:plain

連載の経緯は#1に記しました。
https://lib-arts.hatenablog.com/entry/logical-thinking1
演繹的な論理学から入ると導入としては抽象的で難しいものになりそうなため、#1〜#3では「詭弁」と「論理学」ということで、ロジカルシンキングがうまくいっていない例を見つつ、それを論理学的に整理や考察を行いました。
https://lib-arts.hatenablog.com/entry/logical-thinking1
https://lib-arts.hatenablog.com/entry/logical-thinking2
https://lib-arts.hatenablog.com/entry/logical-thinking3
#4からは下記を参考にロジカルシンキングについてまとめていきます。

ロジカルシンキング - Wikipedia

以下目次になります。
1. ロジカルシンキングとは
2. 学術的な観点を踏まえた論理思考
3. コンサルティング会社由来の論理思考
4. まとめ


1. ロジカルシンキングとは
1節ではロジカルシンキングの概要について確認します。

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

上記はWikipediaロジカルシンキングの冒頭です。上記では、ロジカルシンキング(logical thinking)とは「一貫していて筋が通っている考え方や説明の仕方で、日本としては論理的思考と置き換えられることが多い」とされています。論理学に由来する考え方とコンサルティング業界に由来する考え方がわかれているとなっています。

f:id:lib-arts:20200312185045p:plain
意味としてはロジカルシンキングや論理思考についてはあまり語源がしっかりしたものではなく、英語としてはcritical thinking(批判的思考)が用いられることが多いとされています。日本におけるロジカルシンキングが広まった契機はコンサルタント系の著者たちによって、ロジカルシンキングのための様々なツールや手法が企業向けに提唱されたことにあるとされています。従って、ロジカルシンキング英語圏の語彙というよりは、特定の経営コンサルティング会社などに付随する業界用語とみなすことができるとされています。
当シリーズでは厳密な議論というよりは考え方として参考になるものを取り入れていきたいというのが強いので、大きく二つの流れを汲んでおり、それぞれ論理学とコンサルティングであると考えておくものとします。

 

2. 学術的な観点を踏まえた論理思考
2節では「学術的な観点を踏まえた論理思考」の項目について確認していきます。

f:id:lib-arts:20200312190007p:plain
論理思考から連想される「論理学」は哲学、数学、計算機科学等の一部となる学問分野で、哲学としての論理学は三段論法に代表されるアリストテレスが体系化した研究にまで遡ることができるとされています。関連でいくつか文献が紹介されていますが、1990年代頃からのものが多いため(論理学を学問として見るならそれほど本質は変わらないと思われるので100年以上前の情報の方が欲しい)、ここでは取り扱わないものとします。


3. コンサルティング会社由来の論理思考
3節では「コンサルティング会社由来の論理思考」の項目について確認していきます。

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

上記では2000年前後にマッキンゼーの出身者によって、マッキンゼーコンサルティングノウハウが紹介されたことについて言及されています。ベストセラーとして「ロジカルシンキング(照屋華子, 2001年)」が紹介されており、MECEなどのテクニックが広く知られるようになったとなっています。

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

細かなテクニックとしては、MECE、So What / Why So、ピラミッドストラクチャ、ロジックツリー、フレームワークなどについて記載されています。これらの手法における論理的の意味は学問的というよりは日常的に使われる意味に近いもので、理解しやすく説得力のある説明をするために根拠付けがどうあるべきかという指針を示すことを主眼としているとされています。

ここまでが記載についてのまとめですが、個人の見解としてはこれらは説明に用いるには便利であるものの、議論において厳密に適用するのはあまり望ましくないのではと思っています。というのも視覚的に論理を表す上では便利ですが、少々誘導的な面や議論の内容によって整理の仕方が適さない場合もあると感じるためです。例えばMECE(Mutually Exclusive and Collectively Exhaustive)一つとっても、厳密な整理が非常に難しい考え方です。そのため、整理手法を使うのが目的ではなく、議論や主張のために手段として整理手法を用いるというのは必ず意識しておく必要があります。


4. まとめ
#4ではロジカルシンキングについてWikipediaの記載を途中までまとめました。
#5でも引き続き、こちらのWikipediaの内容を読み進めていこうと思います。

PointNet②(Related Work 〜 Deep Learning on Point Sets )|3D Point CloudsとDeepLearning #7

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

[1912.12033] Deep Learning for 3D Point Clouds: A Survey

点群に対しての近年DeepLearningの導入について、#1〜#5では上記のSurveyを読み進めました。
https://lib-arts.hatenablog.com/entry/point_clouds_dl1
https://lib-arts.hatenablog.com/entry/point_clouds_dl2
https://lib-arts.hatenablog.com/entry/point_clouds_dl3
https://lib-arts.hatenablog.com/entry/point_clouds_dl4
https://lib-arts.hatenablog.com/entry/point_clouds_dl5
#6以降ではSurveyで確認した内容を踏まえて、論文の確認を行います。まず手始めとして、多くの項目において参照されていたPointNet[2016]について確認しています。
#6ではPointNetの論文のAbstractとIntroductionを確認し、概要についてつかみました。
https://lib-arts.hatenablog.com/entry/point_clouds_dl6
#7ではSection2のRelated WorkからSection4のDeep Learning on Point Setsまでを取り扱います。
以下目次になります。
1. Related Work(Section2)
2. Problem Statement(Section3)
3. Deep Learning on Point Sets(Section4)
4. まとめ


1. Related Work(Section2)
1節ではSection2のRelated Workについて取り扱います。Related Workはそれぞれ"Point Cloud Features"、"Deep Learning on 3D Data"、"Deep Learning on Unordered Sets"の三つが紹介されています。

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

まず1つ目の"Point Cloud Features"について確認します。上記では、多くの研究における点群の従来の特徴量は、特定のタスクに特化して構築されているとしています。いくつかの参照論文を分類すると局所特徴量(local features)と大域特徴量(global features)に分けられ、最適な特徴量の組み合わせ(optimal feature combination)を探すのは決して瑣末な問題ではないとしています。

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

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

次に2つ目の"Deep Learning on 3D Data"では、DeepLearningを用いた3D dataの取り扱いについてまとめられています。先駆的な(pioneers)研究としてColumetric CNNsが挙げられており、この手法ではvoxelを用いた3Dの畳み込みを行なっている一方で、このvoxelを用いたvolumetricな手法ではデータが疎(sparsity)である問題と3D畳み込みにかかるコストの問題による制約もあるとされています。それに対し、FPNNやVote3Dなどを始め様々な研究が提案されておりそれらについて紹介されていますが、最終文で特徴量抽出の表現力によって手法のポテンシャルが制約されていると考えるとされています。

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

3つ目の"Deep Learning on Unordered Sets"では、点群の特徴として、点に順番がない(unordered)ことが指摘されています。多くの系列を取り扱った音声や言語処理や、規則正しいグリッドで表現された形式である画像や動画などDeepLearningは順番がつけられたデータを取り扱うことが多かったとされています。したがって点群を取り扱う際には、それぞれの点の順番には意味がないということを意識しなければならないとここでは考えておくと良さそうです。


2. Problem Statement(Section3)
2節ではSection3のProblem Statementについて取り扱います。ここではタイトルにあるように、問題の定式化を行なっています。

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

第一パラグラフでは、DeepLearningのフレームワークを用いて点群(unordered point sets)を入力として直接取り扱う設計を行うにあたって、入力情報の定義を行なっています。それぞれの点を\{P_{i}|i=1,...,n\}と表現し、それぞれの点P_{i}に関して座標をベクトルの(x,y,z)と表現しています。点群には色などの情報もあるが、問題の単純化のために(x,y,z)で表した座標のみを入力として用いているとされています。

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

第二パラグラフでは、それぞれのタスクに対応した出力について記載されています。物体分類タスク(object classification task)では、画像分類タスクなどと同様に考えられうるkの分類クラスの候補に対応してk個のスコアを出力するとされています。また、意味的分割タスク(semantic segmentation)では、n個の点に対してm個の分類カテゴリをわりあてる場合は、n × mのスコアを出力するとされています。


3. Deep Learning on Point Sets(Section4)
3節ではSection4のDeep Learning on Point Setsについて取り扱います。モデル全体のニューラルネットワークの構造などについて解説しており、この論文で提案するモデルに関する主要な解説であると考えておくと良いと思います。

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

まず、冒頭部の記載では、Section4-2のネットワーク構造の記載はSection4-1の点の集合における性質(properties)に関連しているとしています。

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

Section4-1のProperties of Point Sets in \mathbb{R}^nの記載では、点群の入力は三つの主要な性質(property)から成り立つとされています。それぞれ、順序を持たない(Unordered)、点同士の関係性(Interaction among points)、変形による不変性(Invariance under transformations)が紹介されています。Unorderedは入力する点に順序の情報がないことで、N個の点群に対してN!通りの不変性を考慮しなければならないとされています。Interaction among pointsについては点がそれぞれ独立していないことについて記載されています。Invariance under transformationsは、回転(rotating)などの変換への不変性について記載されています。

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

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

Section4-2のPointNet Architectureでは、PointNetの全体の処理について記載されています。処理の全体像はFig2に可視化したとされています。また、3つの主要なモジュールがあるとされており、"Symmetry Function for Unordered Input"、"Local and Global Information Aggregation"、"Joint Alignment Network"についてそれぞれ後述されています。

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

Fig2では、PointNetのネットワーク構造について図示されています。n個の点を入力として取り、分類タスクでは、kクラス分類問題を解くにあたって、k個のスコアを出力するとしています。Segmentationを解くネットワークでは、分類問題用のネットワークの拡張とされており、図の二段目の処理がSegmentation Networkにあたるとされています。
以下、"Function for Unordered Input"、"Local and Global Information Aggregation"、"Joint Alignment Network"についてそれぞれ確認していきます。

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

"Function for Unordered Input"では、入力する点の情報をどのように取り扱うかについてのモジュールとされています。

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

様々な方法がある中、上記のようなSymmetric functionを用いたアプローチを採用しているとされています。

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

"Local and Global Information Aggregation"では、大域的な情報をどのように確認するかについて記載されています。解決策としては前述のFig2におけるSegmentation Networkで見ることができるとされています。

f:id:lib-arts:20200311230426p:plain
"Joint Alignment Network"では、変換による不変性を保つために、Joint Alignment Networkについて紹介しています。
Section4-3のTheoretical Analysisについては今回は省略します。


4. まとめ
#7ではPointNetの論文の、Section2のRelated WorkからSection4のDeep Learning on Point Setsまでを取り扱いました。
#8では引き続きPointNetの論文のSection5のExperimentについて確認していきます。

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以降を取り扱っていきます。