pixivの小説を改善している Webエンジニアの pawa と申します。最近は個人的な好奇心でGPT-2の日本語モデルを使って小説を書いて遊んだりして人工知能と人類共同での創作可能性を探っています。
普段は以下のような記事を書いています。
- 硬式庭球部 活動100回の軌跡
- 【人工知能×創作】AIで小説を書くのに挑戦(AIXオンラインセミナーに参加)してみた
- 文学作品の話者同定(兼言語処理学会年次大会の参加レポート2019)
- pixivコミック作品のタグが自動生成されるまでの軌跡
去年に引き続き、今年の3月も「言語処理学会 第26回年次大会(以下NLP2020)」に参加してきました。例年通り「創作活動にどう活かせるか」という観点で色んな発表を聴いてきましたので、その内容を簡単に紹介したいと思います。
- Hierarchical Transformer によるストーリー生成 [1]
- 日本語語順分析に言語モデルを用いることの妥当性について [5]
- 楽曲の歌詞をもとにした曲名生成 [6]
- 他、興味深かった研究発表
- おわりに
- 参考文献
Hierarchical Transformer によるストーリー生成 [1]
「ストーリー1文目、あるいは1文目を含む複数文を入力として、それに続く文を生成することが目的のタスク」[1-p.81] です。
従来研究との違い
- 従来:入力と出力が1対1
- 本研究:ストーリーの文数を制御しながら生成可能
要旨
- ニューラルネットワークを用いてストーリー生成を行う。
- 1つ目の文を入力して与え、後に続く文を再帰的に生成する。
- 言語モデル:Hierarchical Recurrent Encoder Decoderの RNN を Transformer に置き換えた Hierarchical Transformer (HT) を扱う。
- LDA*1でトピック推定して複数の上位トピックからのAttentionを取る。
- 生成中の文が相対的にストーリーのどの位置を生成しているかを考慮させる。
- 素のHTよりはトピックや生成位置を組み合わせるほうが性能評価は向上した。
用語整理
孫引きもありますが自然言語処理エンジニアとして働いているわけではないのでご容赦ください。
- ニューラルネットワーク: 「脳神経系を模擬した,並列・分散・学習的な情報処理の数理的なモデル」[2-p.9]
- Hierarchical Recurrent Encoder Decoder (HRED): 「Seq2Seqは入力と出力を1対1で学習しているため,いわゆる一問一答形式の出力しか行えない.そこで,HREDはSeq2Seq のEncoder層とDecoder層の間にこれまでの会話の流れを学習するContext層を追加し,会話の流れの考慮を可能とした」[3-p.307] モデル。
- Seq2Seq: 「EncoderとDecoderが協力して、時系列データ*2を別の時系列データへと変換」[4-p.288] するモデル。
- Encoder-Decoderモデル:「seq2seqはEncoder-Decoderモデルとも呼ばれます。」[4-p.287] 「吾輩は猫である」という文章(時系列データ)を「I am a cat」に翻訳(別の時系列データに変換)する場合を考えると、Encoderが「吾輩は猫である」という文章をエンコードしてDecoderにその情報を渡し、Decoderはそのエンコードした情報を元に「I am a cat」を生成するイメージ。[4-p.288を要約] 「これらのEncoder と Decoder には RNN を使うことができるのです。」[4-p.288]
- RNN: 一方向のネットワークだと時系列データの性質(パターン)を十分に学習できない。この問題を解決するのがRNN。RNNがループする閉路(閉じた経路)を持つことでデータは絶えず循環することができる。データが循環することにより、過去の情報を記憶しながら、最新のデータへと更新される。[4-p.175,184を要約]
- 欠点:「時間方向で並列的に計算することは(基本的には)できない。できない。ディープラーニングの学習がGPUを使った並列計算の環境で行われることを想定すると、大きなボトルネックになります」[4-p.370]。 → この欠点のためにRNNを避けたい。
- Transformer: RNNを取り除く研究の中で有名なものの1つのモデル。RNNではなく Attention を使って処理する。Self-Attentionというテクニックが利用される点が重要。[4-p.370を要約]
- Self-Attention: 「ひとつの時系列データ内において各要素が他の要素に対してどのような関連性があるのかを見ていこうというもの」[4-p.370]。
- Attention: 「必要な情報だけに「注意」を向けさせることができます」[4-p.325]。
補足
「HREDやSeq2Seqには,同じ入力に対する出力は同じになるという問題点が存在する. そこで,Context層に確率的なノイズである潜在変数を加えることによって,同じ入力に対して多様な出力が可能」[3-p.307] となる Latent Variable Hierarchical Recurrent Encoder-Decoder というのも提案されているようです[3]。
実際に生成されたストーリーの比較
TA(トピック情報を考慮させたもの)のみとTA+SLRPE(ストーリーのどの位置を生成しているかを考慮させる)を比較してみると、SLRPEも用いたストーリー生成のほうが結末としてより結末らしい文になっていました。
SLRPEのみとTA+SLRPEの比較では、前者が話題に一貫性のないストーリーであるのに対して、後者はペットの話題で一貫していました。
創作活動にどう生かせるか
1文を人手で書いてそれに続く文を自動生成してインスピレーションを得ながら小説を書き上げる――などでしょうか。全て人工知能が書き上げて面白いお話にするのは困難でも執筆支援としては使えそうです。
GPT-2でのストーリー生成と比較すると、GPT-2もそれなりに一貫性がある文章を生成してくれますが、ストーリーの生成位置は考慮してくれないようなので、この点に関してはこちらの研究の生成器のほうが優っていると感じました。
日本語語順分析に言語モデルを用いることの妥当性について [5]
要旨
- 日本語の語順は比較的自由。だが完全に自由というわけではない → 多くの研究によって基本語順の存在が示唆されている → テキストの読みやすさに密接に関わっている。
- 「語順分析に言語モデルを用いる」とは?
- 学習データの観測に基づき,テキストの尤もらしさを求められる。
- p(品質に 影響を 与えた) > p(影響を 品質に 与えた) → この情報を使う。
- この研究の問い:ある仮説に従った語順の言語モデル尤度が高いことを,その仮設を支持する証拠として用いて良いか。
- なぜ言語モデルを語順分析に用いたいか
- 人間の観察に基づく検証:高コスト
- 用例の数え上げに基づく検証:比較的低コストだが良い解析器が必要
- 言語モデル尤度に基づく検証
- 解析器を必要としない
- 近年は言語モデルの実装コストも低い
- だが仮説に従う語順とそうでない語順が必要
- 高精度な解析器の準備よりは現実的
- 言語モデル:次の単語を予測するTransformerベースの言語モデル
- 各用例に対するスコア:p(左から右に用例を生成) ✕ p(右から左に用例を生成)
- 妥当性の検証
- 人間の語順選好との相関の高さ → 相関係数:0.90(サブワードレベル言語モデル)
- 既存研究と同様の結論が導かれるか → 検証した10の仮説で全て結論が一致
- → 妥当性を支持
創作活動にどう生かせるか
言語モデル尤度をベースに未知の語順ルールを発見して校正ツールにルールを追加して「こっちの語順の方が良くないか」というような自動提案ができるかもしれません。
楽曲の歌詞をもとにした曲名生成 [6]
小説本文をもとにしたタイトル生成に近いので挙げました。
要旨
- よくある論文タイトルの自動生成との違い:論文タイトルは論理的な内容をまとめたものであって歌詞と曲名の関係とは性質が異なるのではないかと [6] の著者らは考える。
- 曲名と歌詞の関係は様々
- 歌詞中の語から曲名をつける方法がふさわしいケース
- 歌詞全体のイメージを別の言葉で端的に表現するほうがふさわしいケース
- 歌詞全体を入力としたエンコーダ・デコーダモデルを採用し,Seq2Seqモデルを構築
- データの前処理・モデル構築に3つの異なる手法を用意して対照実験
- アテンション実装の有無
- トークン化手法(形態素解析 or サブワード分割)
- 日本語の活用形を原形に直すか否か
- 「SentencePieceを用いた場合は同じ語句の繰り返しはあるものの,正解曲名に近い曲名を出力できていた」[6-p.787]
創作活動にどう生かせるか
個人の趣味でGPT-2で小説や詩を書いてみた結果、どういうタイトルを付けるかに関しても非常に悩ましいことが分かりました。本文を入力として、10個くらいタイトル候補を人工知能が挙げてくれると嬉しいですね。
他、興味深かった研究発表
系列ラベリングによる小説のあらすじからの人物情報抽出の検討 [7]
『「異世界で年老いた執事が活躍する小説」や「勇者と魔王が友達になる小説」という検索要求を満たす検索サービスは存在しない』[7-p.885] と指摘されていました。サービス提供側としてはネタバレ問題にうまく対処しながらそういう検索もできるようにしていきたいですね。まだ実用には遠いレベルです。
言語モデルによる物語中のイベントの顕現性推定 [8]
「物語には様々なイベント(できごと)が登場するが,それらが全て同じ顕現性をもつわけではない.例えば,童話『シンデレラ』において「シンデレラが王子に見初められる」というイベントは物語において重要な役割を果たし,物語を特徴づける顕現性の高いイベントだが,「シンデレラが井戸で水を汲む」というイベントはそうではない.⺠俗学および物語論における物語の類型分類・分析の研究により,物語の類似性の認識における顕現性の高いイベントの重要性が示唆されており,物語の類似性を計算機によって計算する際にもこういったイベントの顕現性を考慮することが重要であると考えられる.」[8-p.1089]
物語の類似性によるレコメンドができれば面白そうですが実用はまだまだとても厳しいといったところでしょうか。
テキストから推定される筆者の性格特性情報の活用の試み [9]
小説のある一人の登場人物のセリフを集めることでその登場人物の性格の特性値を推定できると思われます。精度は高いのですが小説の書き手の方や読み手の方に有効に使ってもらえるような活用方法は中々思い浮かびません。小説の登場人物に性格特性値を設定して、その特性値に従って一貫した会話(発話)文を人工知能に生成させる方面へ応用するほうが創作には役立ちそうだと思いました。
おわりに
私が学生の頃は一貫性のある文章を生成するのは夢のような話でしたが、今やGPT-2などの公開プログラムで個人のパソコンでもある程度一貫性のある文章をAIで生成できる時代になってしまいました。私は小説は読む専門でしたが、文章生成AIの登場によって小説を書く機会さえ出てきました。これから自然言語処理技術が創作の世界をどう変えていくのか楽しみです。人類にとってより良い方向に変わっていくことを望みたいです。
参考文献
[1] 渥美和大, 狩野芳伸. Hierarchical Transformer によるストーリー生成. 言語処理学会 第26回年次大会, pp.81-83, 2020.
[2] 神嶌敏弘他, 深層学習 - Deep Learning -:近代科学社, 2015.
[3] 和田翔, 萩原将文. 転移学習を用いた階層型潜在変数付きエンコーダ・デコーダによる自動相談システム. 日本感性工学会論文誌, Vol.18, No.4 pp.307-314. 2019.
[4] 斎藤康毅, ゼロから作るDeep Learning ❷ ―自然言語処理編:オライリー・ジャパン, 2018.
[5] 栗林樹生他. 日本語語順分析に言語モデルを用いることの妥当性について. 言語処理学会 第26回年次大会, pp.493-496, 2020.
[6] 菊地晏南, 高崎環, 中本圭. 楽曲の歌詞をもとにした曲名生成. 言語処理学会 第26回年次大会, pp.784-787, 2020.
[7] 岡裕二, 安藤一秋. 系列ラベリングによる小説のあらすじからの人物情報抽出の検討. 言語処理学会 第26回年次大会, pp.885-888, 2020.
[8] 大竹孝樹他. 言語モデルによる物語中のイベントの顕現性推定. 言語処理学会 第26回年次大会, pp.1089-1092, 2020.
[9] 那須川哲哉他.テキストから推定される筆者の性格特性情報の活用の試みと考察. 言語処理学会 第26回年次大会, pp.1439-1442, 2020.
*1:LDAに関しては『トピックモデルによる統計的潜在意味解析』が理解しやすいです。
*2:文章を時系列データとみなす。