TL;DR
- 数理科学10月号という素晴らしい書籍に出会った。
- 参考文献に挙げられていた論文(Zipfian whitening)をざっと読んでみた。
(ポエム)書店での運命的な出会い
私はLLMが単語をベクトルとして扱っていることを知って以来、「言語というデータや言語に基づいた処理(ひいては"思考"そのもの)がどういう現象なのか、幾何学的に理解できるのでは?」という遠大な野望を抱いていた。
そのためにはLLMの仕組みを一歩ずつ理解するところから始めよう、と考え日々調査しながらも、理論的な研究の蓄積があるなら見てみたいと思っていた。しかし幾何学的にとらえようという動きが現状あるのかもわからないしサーベイも困難だ…と悩んでいた。
そんなある日、書店に訪れてみてであったのがこの書籍である。
恥ずかしながら買ったことがない雑誌だったが、私は飛びついた。これが、私が求めていた本だ!と興奮した。
そして、遥かな世界への扉が開けたのであるーーーー。
背景
最近はQiitaでもプロンプトエンジニアリングの記事をよく見かける気がします。個人的にはこれを、「LLMをブラックボックスとみて活用法を考える」方面の技術だととらえています。
これはこれで面白いのですが、私は内部の生データを活用できないか?というところに興味を持っていました。
具体的には、教師データそれ自体が多様体であるし、あるいはwteも図形的に捉えられる。それを使った何かができないか、というところを考えていました。
例えば、類義語辞典を作ってみるとか、文法構造を抽出できるか考察するとか…。色々思いつきます。
そんな時、数理科学10月号に出会ったわけですが、正直上記のことに直接役立つ話ではありません。しかしデータそのものの形を見るという方向性が合致しました。
その類の先行研究があるんだろうと思いつつも、平易な入り口を知らなかったところだったので、渡りに船という感じで購入しました。
読んでみての感想
やはり自分が求めていた本だった!という感覚に狂いはありませんでした。一冊を通して重要な気付きがいくつも得られました。
中でも印象に残ったのは
- 群作用の同変性の観点からCNNを考察し、活用を考える話(群作用に同変なニューラルネットを設計する、など)
- 単語を双曲空間に埋め込む話
- 自己相互情報量の性質から、単語の埋め込み空間について様々な性質が導ける話
などです。ここでは詳しくは触れませんので、ぜひ手に取ってみてください。
関連論文を読む
本書のすばらしさを紹介できたので、この記事の役目は果たしました。
本当ならこの本を通じて自分が理解したことをまとめたいのですが、丸パクリになってしまいそうなので、本の中で参考資料として紹介されていた論文をざっと(abstractとintroductionのみ)読んで理解したことをまとめます。
前提
- word2vecやskip-gramの結果として、高頻度語(≒具体性が低い)はノルムが小さく、低頻度語(≒具体性が高い)はノルムが大きくなる傾向になる
- 低頻度語は教師データが少ないため精度が低い
どういう成果か
- 単語の出現頻度がk位のものの出現頻度は、1位のものの出現頻度の1/k倍になる、というジップの法則という経験則が知られている。
- しかし既存の「単語のベクトル空間への埋め込みを補正する」研究の多くはジップの法則を無視し、単語の出現頻度が一様であると仮定している。これは現実的ではない。
- ジップの法則にしたがった補正を行うことで精度が格段に向上した。
最後はだいぶ雑になってしまいましたが、お読みいただきありがとうございました。