見出し画像

今日からはじめるAI文芸実践入門:ドライブレコーダーから文学を生成する

はじめに

こんにちは、朝日新聞社メディア研究開発センターの浦川です。

今回は「今日からはじめるAI文芸実践入門:ドライブレコーダーから
文学を生成する」と題して、動画データからのテキスト生成について書いていこうと思います。

車の運転という行為は、始めと終わりがある、またその間に場面を転換しながら、さまざまなことが起こる、日常の中にまるで非日常的な一部始終=物語を生むかのような行為です。今日ではこの「運転」は主に映像によって記録され、趣味的また非常に実利を伴う形で扱われますが、このデータをつかって何か「物語」のようなテキストを生成することはできないだろうか。そんな思いつきから、今回〈ドライブレコーダーからのテキスト生成〉に取り組んでみます。

なお、画像系列からのテキスト生成を扱った関連研究に、Huangらの以下の論文などが挙げられます。

また、動画に対するキャプション生成を用いたアート作品として、Kyle McDonaldによるNeuralTalk and Walk(2015)などがあります。

ドライブレコーダーからのテキスト生成

さて、さっそくドライブレコーダーからテキストを生成していこうと思います。

今回は以下に示します図のように、3つの言語モデルを用いた生成を行っていきます。ひとつひとつみていきましょう。

図1:全体の流れ

(1)キャプション生成モデル

画像からキャプション生成を行うモデルです。ドライブレコーダーの画像から、それを説明するテキストを生成するために用います。実装は、Hugging Face Hubで公開されている以下のモデルを利用します。

(2)英日翻訳モデル

(1)で得られる英語のキャプションを、日本語へ翻訳するモデルです。こちらも実装は同じくHugging Face Hubで公開の下記を用います。

(3)文単位による穴埋めモデル

最後に、与えられた2つの文章の間におさまる文を生成するモデルです。

(2)までで、ドライブレコーダーから日本語による画像キャプションの羅列を得ることができましたが、このままでは説明文をただ並べただけのテキストがあるだけになってしまいます。そこで、各キャプション間に文脈に沿ったテキストを生成・挿入していくことで、その内容を広げていきましょう

今回これを、BARTと呼ばれる事前学習済み言語モデルをfine-tuningすることで行います。

図2:文穴埋めモデルの学習データ

上のように、文書中のある2文で挟まれた箇所を<mask>として、その中身を当てさせるようなタスクを訓練するデータを作成し、BARTと呼ばれる言語モデルをfine-tuningします。

今回、学習データは青空文庫から著作権の消滅した文書を抽出し作成、モデルは朝日新聞の記事により事前学習を行ったBARTを用意しました。

図1では、実際に2つのキャプションから生成した文章が載っています。

道路の標識のついた高速道路。
その上に、小さな橋がかかっている。
車は橋の下のトンネルを通っている。

図1から。太字が生成部分。

いかがでしょうか。2文の間をつなぐテキストが生成されている、といってよいような感じがします。

さて、以上の構成から、

  1. ドライブレコーダー画像にキャプションを付与

  2. キャプションを英語→日本語翻訳

  3. 各キャプション間におさまる文章を埋めていく

という過程を踏むことで、〈ドライブレコーダー文学〉を形づくる準備ができました。

やってみましょう

では、実際に走行したドライブレコーダーの記録から、テキストの生成を行ってみます。

今回は、ある日の走行記録から以下に示す6枚の画像を人手で抽出し、それらから得られるキャプションを穴埋めする形でテキストを生成していきます。

図3:生成に用いる画像とそのキャプション

以下が実際の生成文です。

道路の横に高速標識のついた高速道路。
この道路は、淋しい大旋風で閉ざされ、しかも汽車の附近にあるのである。
車は橋の下のトンネルを通っている。
白い煙が幾重にものこって、トンネルの中はまるで暗かった。
霧のような空に隣接した高速道路を走行する車。
遠くから見ると、その車は赤く明るいカーブをくぐる。
通り過ぎる車との交差点にある交通信号。
前の橋の欄干に赤々と光るイルミネーションの灯が反射して、道ばたに水の音が響き渡る。この橋に坐る前の通り、信号のない方角を駈け出す電燈が駕籠のように流れて、汽車の岬に一列に並んで駱色の青い花。
海の隣りの交通量で溢れた通り。
そして海の近くを幾らも遠くに歩きながら、白い波波を遮りつつ海の塊を見比べて見ると、その波は沖に向かって一々と動き出し、その流れに身をかがめて行くのが見えた。
日陰の霧の日に空を背景にして,浜辺の近くにある大きな水の塊。

図3のキャプション群からの生成結果。太字部分が生成。

いかがでしょう。高速道路、トンネル、信号、海といったキャプション中の語を文脈として掬いながら、間を埋めるテキストを生成できていることが確認できます。ここで高速道路から唐突に〈大旋風〉〈汽車〉といった語によって虚構が展開されていくのは、文学作品という学習データならではの傾向かもしれません。

加えて、例えば②の画像では屋根付きの遮音壁(と思われるもの)を〈橋の下のトンネル〉と認識してキャプションが生成されているのがわかります。この辺りの「誤読」を面白がるのかそうでないのか、といったところも作り手や受けての解釈に委ねられているところでしょうか。

またもう一つ。渋滞に嵌った記録から生成してみます。

図4:生成に用いる画像とそのキャプション

高いビルの隣の通りを車で下っている。
そのビルの中の大きな戸口から、穏やかな頬が泡立つように見えた。
道路の反対側に車を止めてある街道。
そこの道幅は三、四メートルしかない。
高いビルの隣の通りをバスで下って行く。
「おい、来い」と彼女は言った。高いビルは、淋しい、高いビル。
高いビルの隣の通りを車で下っている。
一通りの道路が溜息をついたまま、爪の先まで廻っている。
日が照り輝いた日に交通量の多い都市の通り。
この通りを眺めると、また人の影も見えなくなる。
高いビルの隣の通りをバスで下って行く。

図4のキャプション群からの生成結果。太字部分が生成。

いかがでしょうか。停滞した時間の中で、渋滞独特の気怠さが醸し出されているような気がします(今回はサンプリング出力した生成候補からテキストを選んでいるので、そうとも読めるように編集している、ともいえます)。

今回、前後2文のみを与えてテキストを生成するモデルを用意しましたが、より長い文脈を捉えるような学習をすることで、より筋の通った内容が生成できそうです。またドライブレコーダーからの画像抽出を人手で行いましたが、これも自動化ができるでしょう。

おわりに

今回は、キャプション生成モデルと英日翻訳モデル、それから文単位の穴埋めモデルを用いて、ドライブレコーダーからテキストを生成する、といったことを試してみました。

近年、自動運転やコネクテッドカーの概念が徐々に普及しつつあるなかで、車や運転にまつわる環境が次々とデータ化されているように感じます。今回はドライブレコーダーの情報に限りましたが、より細かな情報と組み合わせることで、より個人的かつ具体的な内容を加味した生成が行えるかもしれません。またドライブレコーダーに限らず、散歩や旅行の間に撮った写真などでも、それらを同様に時系列で並べることで今回のようなテキストを生成することができるでしょう。

我々メディア研究開発センターでは、TSUNAに代表される見出し生成といったタスクのほか、今回のような言語モデルの創造的な応用に関しても日々研究を行なっております。興味を持たれた方は、ぜひこちらまでご連絡ください。

(メディア研究開発センター・浦川通)