見出し画像

日本の古典和歌を埋め込みベクトルで分析する

今年もアドベントの季節が来ました。この記事は、まつーらとしお氏の主催する、アドベントカレンダー「言語学な人々」2023の12月16日のエントリーとして書かれました。今年は、カレンダー増刷で、黒木邦彦氏主催の、別館(言語学なるひとびと)もあります。どちらもご覧下さい。

和歌集の歌風の分析

日本の古典和歌集には、それぞれの性格があります。『万葉集』は自然を歌っていて、「素朴」な歌もあるが、『古今集』は、宮中の「優雅」な伝統を反映している、など、言い方はいろいろあり得ますが、それぞれ異なった歌風を持っていることは間違いありません。それを、コンピュータ、特にAIで分析してみるというのがこのエントリーの内容です。日本語学会の機関誌『日本語の研究』19巻3号(2023年12月)に掲載した拙論(「和歌集の歌風の言語的差異の記述ー大規模言語モデルによる分析−」)の解説記事となります(来年6月にはJSTAGEで全文公開されます)。

埋め込みベクトルとは?

本エントリーでは、和歌1首それぞれを、ChatGPTのような大規模言語モデル(以下、LLM)を用いて、埋め込みベクトルという数値に変換し、その数値を比較対照することで、全体の性質を見ていきます。

まず「埋め込みベクトル」の簡単な説明をします。ごく単純な共起分布をベクトル化する例をあげますと、「山」と「川」がどんな単語とともに現れやすいかを1か0で表現するとします。と、次のように

       高い 長い 登る 流れる 頂上  橋
山  [ 1      0      1       0          1    0 ]
川  [ 0     1       0      1           0      1 ]

となり、山は[1 0 1 0 1 0]、川は[0 1 0 1 0 1]というような6次元のベクトルで示すことができます。これに現れやすさの頻度などを加えればもっと精度もあがります。このベクトルは周辺の単語の分布を示しているだけですが、すぐにわかるように、この値が近い単語は、明らかに意味が似ています。「丘」という単語のベクトルを上の要領で調べてみればすぐにわかります(Z.ハリスの「分布仮説」という考え方がこの元祖です。Z.ハリスはチョムスキーの先生)。

LLMによるベクトル作り

このようなベクトルを深層学習によって作るツールとしてWord2Vecという革命的なものが2013年にGoogleのミコロフ氏、サツキバー氏等によって発案されましたが、その後、(中間を省略しますが)さらに発展して、transformerという最近の深層学習アーキテクチャを用いて、BERTなどでもベクトルを作ることができます。そして、今では、OpenAIのChatGPTの元になったGPT3をベースにした、text-embedding-ada-002というベクトル作成専用のLLMがOpenAIのクラウドで公開されており、APIでアクセスすることで、1536次元の、単語や文のベクトルを簡単に得ることができます。このLLMには、OpenAIの持つ膨大な多言語コーパスを学習させてあるため、それに単語や文を放り込むと、言語を越えて、その類似性を判別できるというすさまじい力を持っています。漢文や、日本の古典語に対しても、かなりよい性能を持っていますので、今回はこれを使います。(ローカルのベクトル作成のLLMでもほぼ同じようにできますが、それはまた後日。)

漢詩で和歌をベクトル検索する

だから、この能力を使えば、例えば、漢詩からでも、ダイレクトに和歌を検索することができます。こういう方法をベクトル検索と言って、ビジネスの世界では、マニュアルやFAQを検索するときによく使いますが、文学・語学でも有用です。次は、漢詩で和歌を検索する例です。

質問文: 池凍東頭風度解窓梅北面雪封寒
順位: 本文(コサイン類似度)
1: 梅の花それとも見えず久方の天霧る雪のなべて降れれば (0.83671372975217)
2: 逢坂の嵐の風は寒けれどゆくへ知らねばわびつつぞ寝る (0.8344075388592953)
3: 梅の香の降りおける雪にまがひせば誰かことごとわきて折らまし (0.8313966248472829)
4: 浦ちかく降りくる雪は白波の末の松山越すかとぞ見る (0.8297397632079765)
5: 細枝結ふ葛城山に降る雪の間なく時なく思ほゆるかな (0.8293573454140316)

(和漢朗詠集と古今和歌集のベクトル検索)

このように、『和漢朗詠集』の中の藤原篤茂の漢詩を題材として、『古今集』から、この漢詩に近い意味の順に和歌をリストアップするということが簡単にできてしまいます。(それぞれを内部でベクトル化して、コサイン類似度で、ベクトルの類似性を計っています。)このように、古典の意味を理解することについて、漢文も含め、なかなか有能なことがわかるので、次は歌集全体を見てみます。

『古今集』の各首ベクトルの主成分分析

『古今集』全体の和歌の意味がどのような構造になっているかを調べたい場合、まずベクトル化することが第一ですが、1500次元そのままでは人間には理解できません。このような連続量で多次元のデータは、主成分分析で、ベクトルの次元を圧縮して、重要な性質を抽出することが可能です。今回も、主成分分析で、定番の2次元に圧縮してみました。次が『古今集』の各首のベクトルを2次元に圧縮したものを、X軸(第1次元)、Y軸(第2次元)にマッピングしたものです。点ひとつが、各首のベクトルに相当します。XY軸それぞれの最大値・最小値の歌を表示してあります。第1次元がもっとも重要で、次が第2次元となります。

古今集の2次元散布図

このドット(=歌)をひとつずつ(特に各軸の上位・下位の歌)を丹念に見ていくと、それぞれの次元の特徴が見えてきます。

(第1次元・上位)
(Rank 1): 人を思ふ心は我にあらねばや身のまどふだに知られざるらむ
(Rank 2): 思ひけむ人をぞともに思はましまさしやむくいなかりけりやは
(Rank 3): 身を捨ててゆきやしにけむ思ふよりほかなるものは心なりけり
(第1次元・下位)
(Rank 1): 秋ちかう野はなりにけり白露の置ける草葉も色かはりゆく
(Rank 2): 秋の月山辺さやかに照らせるは落つる紅葉のかずを見よとか
(Rank 3): 秋風の吹きと吹きぬる武蔵野はなべて草葉の色かはりけり

上のように、1次元(X軸)では、上位に来る歌は、人間の心情を歌う、いわゆる「人事」の歌となり、下位の歌は自然を描写する「景物」の歌となります(景物はここの例では「秋」が多いですが、その他もあります)。

(第2次元・上位)
(Rank 1): まかねふく吉備の中山帯にせる細谷川の音のさやけさ
(Rank 2): 郭公声もきこえず山彦は外に鳴く音をこたへやはせぬ
(Rank 3): しほの山さしでの磯にすむ千鳥君が御代をば八千代とぞ鳴く
(第2次元・下位)
(Rank 1): 春ごとに花のさかりはありなめどあひ見むことは命なりけり
(Rank 2): 色見えで移ろふものは世の中の人の心の花にぞありける
(Rank 3): 花見れば心さへにぞ移りける色にはいでじ人もこそ知れ

それに対して、このように、2次元では、上位の歌は、鳥の鳴き声や、川の音などで、また下位は花の歌になり、端的に言えば、「鳥」と「花」の対立軸となります。

以上をまとめて、単純なXY軸で書くと、以下のようになります。

      
                       |
                       |
景物     --------+--------- 人事
       |
                       |
      花

なんと、驚くことに

「人事」と「景物」、そして「鳥」と「花」が『古今集』の主要な意味構造の軸となっていることが、LLMの埋め込みベクトルで実証できる

のです。LLMには、ちゃんと『古今集』が「読めている!」ことがわかります。最初にこの結果を見て背筋がぞくっとするほど本当に驚きました。これに気をよくして、次は『万葉集』もやってみました。

『万葉集』の各首ベクトルの主成分分析

『万葉集』もまったく同様にベクトル化してから主成分の1,2次元を調べて見ます。散布図は省略しますが、上位下位の歌だけ示します。

下のように第1次元は、『万葉集』も、やはり「人事」と「景物」とで別れています(ここでは「鳥」の歌が目立ちますが、それ以外もあります)。

(第1次元・上位)
(Rank 1): 我妹子に恋ふるに我はたまきはる短き命も惜しけくもなし
(Rank 2): 我妹子を相知らしめし人をこそ恋の増されば恨めしみ思へ
(Rank 3): 我妹子に恋ひすべながり夢に見むと我は思へど寝ねらえなくに
(第1次元・下位)
(Rank 1): 磯の崎漕ぎ廻み行けば近江の海八十の湊に鶴さはに鳴く
(Rank 2): 舟競ふ堀江の川の水際に来居つつ鳴くは都鳥かも
(Rank 3): 滝の上の三船の山ゆ秋津辺に来鳴き渡るは誰呼子鳥

しかし、下のように、第2次元は異なっています。『万葉集』では、上位は「山」のオンパレードです。下位は、「海」です。

(第2次元・上位)
(Rank 1): 秋山の木の葉もいまだもみたねば今朝吹く風は霜も置きぬべく
(Rank 2): 冬ごもり春さり来れば鳴かざりし鳥も来鳴きぬ咲かざりし花も咲けれど山をしみ入りても取らず草深み取りても見ず秋山の木の葉を見ては黄葉をば取りてそしのふ青きをば置きてそ嘆くそこし恨めし秋山そ我は
(Rank 3): 雪寒み咲きには咲かず梅の花よしこのころはかくてもあるが
(第2次元・下位)
 (Rank 1): 磯ごとに海人の釣舟泊てにけり我が船泊てむ磯の知らなく
(Rank 2): 奈呉の海人の釣する舟は今こそば舟棚打ちてあへて漕ぎ出め
(Rank 3): 大崎の神の小浜は小さけど百船人も過ぐといはなくに

まとめて、XY軸で表現するとこうなります。

        
                    |
                    |
景物—--- ---+-----------人事
         |
                   |
       海

つまり『万葉集』では、第2次元が「山ー海」の対立なのです。これが、『古今集』では「鳥ー花」の対立になるのです。これは和歌史の通常のひとつの考え方をそのまま裏付けたものですが、これだけ明確に出ると、やはり、LLMの持つ意味解釈の能力のすごさを知ることができると思います!

『万葉集』から『古今集』への変化をもたらしたものは何か? ー漢詩のベクトルで見るー

さて、このように、『万葉』から『古今』への歌風の変化が、ベクトル分析ではっきりと実証できたわけですが、では、その原因はなんでしょうか?これもベクトル分析で考えて見ましょう。『万葉』から『古今』の間の時代は、いわゆる「国風暗黒時代」で、漢詩・漢籍が専ら尊重された時代です。ですので、漢詩を調べてみたらどうかという発想が浮かびます。それで、ちょっと編纂された時代は下りますが、平安時代の人が好きだった漢詩を集めた『和漢朗詠集』の漢詩の部分(白氏文集などが豊富に取り入れられています)を使って、この漢詩もベクトル分析してみましょう。『和漢朗詠集』の漢詩部分をベクトル化して主成分分析したものを、途中経過は省略して、結果だけ下に示します。

     視覚的
                    |
                    |
景物—-------+----------人事
         |
                   |
    聴覚的

古代中国語の内省がないと、こうなっていることはわかりにくいと思います。第1次元は、日本の歌集と同じく「人事」と「景物」で対立しています。第2次元は、「草」「木」「人間」と言った目に見えるものと、「鶯声」「猿(の)叫び」「四面楚歌声」など、耳に聞こえるものが対立要素となっており、まとめると、上のように「視覚」と「聴覚」の対立となります。
これは『万葉』と『古今』の中間としては非常に具合がいいことです。つまり、次のように、Y軸(第2次元)の変化を見ると


(万葉) (漢詩) (古今)

 山    視覚的 ⇒ 花
                       |
                      |
景物------------+------------人事
              |
                      |
 海     聴覚的 ⇒ 鳥

日本の和歌が、「山・海」等の自然の中での詠歌だった『万葉』の世界から、漢詩世界の「視覚」と「聴覚」という新しい美意識の体系を経過することで、『古今集』で「花」と「鳥」という、その具体化による新しい美意識の代表的素材を発生させたと考えることが可能になると思います(Y軸の上下が違いますが、これは特に統計的に問題ありません)。ちなみに、平安時代には「花鳥」に加えて「風月」という美意識のペアもありますが、これも「風」は聴覚、「月」は視覚ですので、やはり、この系列に連なるものと言えそうです。「花鳥風月」という言葉の持つ意味論的素性のルーツは、実はこんなところにあるのではないでしょうか?

埋め込みベクトルを研究することは、AIの思考を知ることの一助でもある

このようにLLMすなわちAIのベクトルを使って古典和歌を分析できるわけですが、これは古典和歌だけではありません。辞書や小説でもこのような分析が可能です(辞書については、語彙・辞書研究会で発表しました。近く計量国語学会の『計量国語学』誌にも小説の分析を掲載予定です。あと、関係の本もいろいろと出版予定です。今回のエントリーを拡大したような内容も予定していますので、お楽しみに。X(twitter)などでいろいろとお知らせしていきます。)

と、同時に、これから、いやがおうでもAIとつき合っていかなくてはならない我々としては、AIがこの世界をどのように認識しているかについて、少しでも理解しておくことが重要だと感じています。AI時代の人文科学はどのようなことをすべきかという問題がありますが、今回示したように、AIの思考方法や、概念把握のあり方を調べることで、それを転用・応用して、人間側の人文科学的な課題を解決していく方法もあると思います。もちろん、AIの発達スピードはすさまじく、人間主体の研究がどこまで可能かわかりませんが、そんなことも少し考えつつ研究しています。

では、皆さま、よいクリスマスと新年を 😍



読んでいただきありがとうございます。ツイートなどしていただけるとうれしいです。