見出し画像

今日からはじめるAI文芸実践入門:短歌編

今回のテックブログは「機械学習の力を借りて短歌を作ってみる」という試みのお話です。クリエイティブ×言語処理といったテーマを中心に研究活動を行う浦川さんが、その試みと実践方法について紹介します。

はじめに

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

今回「今日からはじめるAI文芸実践入門:短歌編」と題して、機械学習を用いたテキスト創作について書いていこうと思います。

私はこれまで、さまざまな言語モデルの応用案件(後で紹介します)に携わってきました。一方で最近個人的に短歌に嵌っていて、読んだり書いたりしています(機械学習などは使わず、自分で書くのが主。結社には属していないのですが、新聞歌壇などにはよく投稿しています)。

そんななか、短歌の創作においても機械学習を応用することはできないかという疑問が自然と浮かんでまいりました。ということで、今回はいくつかの手法を提案してみたいと思います。

「今日からはじめる」とある通り、この記事は最近の研究や公開されている情報を元に、今できることを中心に書きます。また「実践」として、実際に使ってみることを主眼において、事例紹介や技術に関する説明は簡単に紹介するか、省いています。最後には公開されているモデルを扱った事例も紹介します。

なぜ、短歌

短歌は、皆さんご存知の通り、三十一文字とも呼ばれる型をもっています。

5・7・5・7・7の5つの句から構成される短い文字系列であり、この短歌の定型は今日の機械学習によって生成しうる形態です。そこへ作り手の意図も十分に加えられると考え、実際に試していきます。

機械学習を用いた短歌生成には、先行事例があります。今回のような言語モデルを使った生成では「恋するAI歌人」が、また俳句ではありますが「AI一茶くんプロジェクト」なども挙げられるでしょう。

一方、実際の作歌において機械学習を用いるようなアプローチの実例はそう多くないように感じます。今回は、実際に短歌をつくる人間の立場からどのような利用法が考えられるかについて焦点を当て、書いていくことになります。

やってみましょう

さっそく、短歌をつくっていきます。
今回、以下の3つの手法を用いて作歌を行います。

ほうり投げる
語を動かす
脳を変える

以下、それぞれについてみていきましょう。

・ほうり投げる

まずは、「ほうり投げる」。

途中まで書いた短歌を言語モデルに渡して(ほうり投げて)、続きはお任せしようというある種怠惰なアプローチです。

ここでいう言語モデルとは、与えられたデータから語の連なりを学習したモデルで、入力として与えられた文をもとに、それに続く語を生成するものと思ってよいかと思います。下図では、例として「現在、私は短歌」という入力から次に来る単語を生成する様子を図示しています。

スクリーンショット 2021-06-08 16.12.12

では、実際に言語モデルを作ってみようと思います。が、それには短歌らしい系列を生成するための学習が必要となります。例えば、我々の保有するGPT-2では大量の新聞記事を学習データとしてモデルを作っており、それによって日本語文章の生成が可能となっています。このモデルを基にして、wikipediaのデータでfinetune(新たなデータでモデルのパラメータを調整)した事例に「#この記事は実在しません」があります。

今回は対象が短歌ですので、短歌を学習データとして用います.....と、したいところですが、実際の作歌を考えるとなるべくオープンなデータを用いたい、という要請があるでしょう。そこで例えば著作権の切れたデータとして過去の歌人のものが存在していますが、私はふだん文語では短歌を書きませんので、文語ではないデータが欲しいという欲求もあります。

以上を踏まえ、今回Wikipediaのデータから短歌の定型を満たすような系列を抽出し、それを学習データとします(このWikipediaから短歌系列を抽出する先行事例として、偶然短歌があります。またWikipediaのテキストはライセンスに基づき二次利用可能ですので、生成文が単なる引用また改変となる場合などには注意が必要でしょう)。

妹の_ショコラと共に_様々な_依頼を受け_報酬を得る
村名は_平安時代_末期から_江戸時代まで_存在した
見習いの_制服である_緑色の_服と三角_帽子を贈る
現在は_バイオディーゼル_燃料に_適するとして_注目される

上のような、破調も許容した形で短歌(らしい)データを抽出することができました(それぞれリンク先が引用元。句切れに_を挿入)。抽出にあたって、体言のみで構成されるような例を省くなどして、不自然な語の流れを除去するようなフィルタリングを行なっています。これら6万件のデータで、先ほどのGPT-2をfinetuneします。これで、ある入力を与えると、それに続く短歌らしい系列を生成する言語モデルを用意することができました。

なお今回は権利にまつわる話は省略していますが、例えば以下では学習データからモデル、その生成物までの著作権について簡潔にまとめられています。
パテント Vol. 72 No. 8「AI創作物」の著作権法上の保護 (特集 AI技術の権利化)

では実際に、いくつか入力を入れて生成結果を見てみましょう。
まず、入力の元となる短歌を書いてみます。例えば、こんなものはどうでしょう。

語と語たち並んだ様を学習し感覚と書く梅雨の青空

今回やってみたいことの気持ちです。
これを、いくつか途中までのところで切って、言語モデルに入れてみます。

語と語たち_母が異なる言語にも興味を持つ臆病な乙女
語と語たち並んだ様を_書きながら歌うシーンを見下ろしている
語と語たち並んだ様を学習し_自由奔放に生きる人間
語と語たち並んだ様を学習し感覚と書く_感性や記憶

_の前までが入力で、太字部分が言語モデルによる出力です。

いかがでしょうか。これをそのまま短歌と呼んで良いかという点はさておき、定型を学習しながら文字列が生成できていることがわかります。

これらを眺めてみますと、作歌開始時には想定していなかったような展開を得る、という印象を受けます。また、入力するテキストの長さによってその自由度が変化しているようにも思えます。さらに、それぞれの出力に一貫性がないというのも、書きたいことに縛られていない、という意味では作歌を広げるよい点になるかもしれません。これらをそのまま短歌としたり、またこれらの結果を元にして新たに自作の短歌を練るなど、様々なアプローチでの協業可能性が考えられるでしょう。

・語を動かす

二つ目の手法は、「語を動かす」。

「語が動く」という表現は作歌の実際の現場でもよく聞かれる表現のようですが、それをMasked Language Model(MLM)と呼ばれる言語モデルを利用して行います。

スクリーンショット 2021-06-04 17.45.24

MLMとは、上図で示すように、テキストの一部にマスクをかけ、そこへ当てはまる語を前後の文脈から推論するモデルです。

語を埋めることを学習した言語モデルですが、これをあえて「語を動かす」ために使ってみたいと思います。

今回は、朝日のデータで学習したMLMであるRoBERTaを用います(以前つくった「[穴埋め式]世界ことわざ辞典」という作品でも同様のモデルを使用しました)。

先ほどの短歌から「感覚」をマスクして、当てはまる語を推論させます。

語と語たち並んだ様を学習し<mask>と書く梅雨の青空

語と語たち並んだ様を学習しと書く梅雨の青空
語と語たち並んだ様を学習し言葉と書く梅雨の青空
語と語たち並んだ様を学習し生き生きと書く梅雨の青空
語と語たち並んだ様を学習しいきいきと書く梅雨の青空
語と語たち並んだ様を学習しと書く梅雨の青空
語と語たち並んだ様を学習しと書く梅雨の青空
語と語たち並んだ様を学習し自然と書く梅雨の青空
語と語たち並んだ様を学習しと書く梅雨の青空
語と語たち並んだ様を学習しと書く梅雨の青空

当てはまりそうな語を100件列挙し、先頭10件を並べてみました。冒頭のものほど確率の高い語です。まず、もともとあった言葉と音数が合わないので一度型が崩れてしまうことがわかります。この辺りは、短歌のデータで学習することで改善できるかもしれません。また、これくらいは想像できるといいますか、あまり並ぶ語に飛躍がないとも思います。当てはまりそうな順に並べているので当然かもしれません。これを逆順に並べてみます。

語と語たち並んだ様を学習しと書く梅雨の青空
語と語たち並んだ様を学習し明日と書く梅雨の青空
語と語たち並んだ様を学習し不思議と書く梅雨の青空
語と語たち並んだ様を学習しほんと書く梅雨の青空
語と語たち並んだ様を学習しと書く梅雨の青空
語と語たち並んだ様を学習しみなと書く梅雨の青空
語と語たち並んだ様を学習しと書く梅雨の青空

先ほどよりは......という感じがします。例えば、

語と語たち並んだ様を学習し凜として書く梅雨の青空

というように、調子を整えて眺めてみることはできるでしょう。
他の語でもみてみます。

語と語たち並んだ様を切り離し感覚と書く梅雨の青空
語と語たち並んだ様を学習し感覚と揺れる梅雨の青空
語と語たち並んだ様を学習し感覚と書く一瞬の青空
語と語たち並んだ様を学習し感覚と書く梅雨の回廊

いかがでしょうか。例えば「切り離し」は元々の語(学習)とは意味が逆のようにも感じられ、テキスト全体の雰囲気を別の方向へ誘うような語の入れ替えだと思います。一方で、逆の意味をもつ語というのはわりと想像がしやすいです。その点でいえば、「回廊」など、元の語からは離れつつも意味の通る語が得られるというのも、言語モデルならではと言えるかもしれません。

語の選択をするというプロセスは、例えば類語辞典を参照するような手順とも似て、作者の意図や意識も反映しやすい方法ではないかと思います。言語モデルを応用しながら、自らの語彙選択を広げる/制限するような利用法となりうるでしょう。

・脳を変える

最後は「脳を変える」。

これまでみた言語モデルは、学習データありきのモデルです。どういったデータを学習させるかによって出力も変わり、またこの点が、今まで見た手法に加え書き手に与えられた創作的余地になり得ます。

試しに、夏目漱石のデータから先ほどと同様に短歌の定型を満たす系列を抽出し、それを学習データとして言語モデルを学習してみます。
結果、500件程度のデータを得ました。学習データとしてはたいへん少ないです。が、このデータで先ほど「ほうり投げる」でつくったモデルのパラメータをさらに調整してみます。

結果は以下の通りです。

語と語たち_或いは愛才をともなう短い言葉から発したもの
語と語たち並んだ様を_眺めつつ文章の丁重な取調
語と語たち並んだ様を学習し_そこで思ふ如何要のごとく
語と語たち並んだ様を学習し感覚と書く_精神を少し

先ほど見た例とは明らかに違った結果が得られています。まるで漱石が書いたようだ、とは言いません。けれど語の連なりとしての文体に少し雰囲気が感じられます。ある個人の観点から文体を模倣するのではなく、データからそれが導かれているという点に何を見るのか、問われている気もします。また例えば、作者自身のデータで自分の書き振りを再現してみたり、数学や法律といった文芸とは離れたデータによる学習をしてみたりしても、ちがった発見がありそうです。

実際に手元でやってみるには

これまでに挙げた方法は、社内で学習した言語モデルを用いて行ったものですが、オープンなデータ/モデルを用いて同様のアプローチを取ることも可能です。

例えば京大BARTは、MITライセンスのもと公開されています。

このモデルはBARTと呼ばれるもので、先ほどのGPT-2とは違った構成のモデルです。入力されたテキストを要約したり、別の言語へ翻訳したりするタスクなどで用いられますが、例えば上の句から下の句を生成させる学習ができるでしょう。

スクリーンショット 2021-06-04 18.20.35

実際に先ほどのWikipediaのデータから、上の句と下の句に分けたデータを用意して生成させてみますと、以下の通りです。

語と語たち並んだ様を学習し〈言語を学び教科書を書く〉
語と語たち並んだ様を学習し〈書き換えれば“読み書き”となる〉
語と語たち並んだ様を学習し〈心を癒し交感できる〉
語と語たち並んだ様を学習し〈語学床から磯部まで〉
語と語たち並んだ様を学習し〈円筒形の扁平な翼〉

〈〉内が生成された系列です。上の句と下の句で固定されているため、GPT-2と比べ長さに関して入出力の自由度は減っていますが、同様に系列生成を行うことができました。

おわりに

今回、機械学習を実際の作歌に応用するという目的のもと、いくつかの手法を提案しました。実際に、想定していた最終形とは遠く離れたところに短歌が着地するような、普段とは違った形で短歌を書く過程をご覧いただけたかと思います。

また、機械学習を用いた生成といっても全てが自動で行われるわけではなく、そこには系列・語の選択に加えデータの選別など、作歌性を込める余白が残されていることもみることができたのではないでしょうか。

一方で、機械学習を使った短歌生成が、和歌から続く歴史、また近現代短歌の文脈の上でどんな試みであるか、といったところには議論の余地が大いにあるように思います。利用の是非そのものから問われるでしょう。例えば、実際に生成したものはそれとわかる形で(生成箇所や学習データは明記するなどして)発表するといった、人手でも短歌を書く人間としての真摯な向き合い方、といったことも考えなくてはならないかもしれません。実際、私の場合は注釈を加える余地がない場(新聞歌壇など)では、投稿は自らの頭と手で書いたものに限ったりしています。そのように考えると、こうした技術を用いた短歌を前提とした発表と批評の場などがあってもよいかもしれません。

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

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

中途採用実施中!
朝日新聞社メディア研究開発センターでは、現在中途採用を行っています。このブログで紹介している仕事内容に興味のある方は、ぜひ下記ページにアクセスしてみてください。メディア研究開発センターのメンバーのエントリは、マガジン「M研のおしごと」でまとめて読めます。