ジョイジョイジョイ

ジョイジョイジョイジョイジョイ

2024 まとめ

2024 年も色々やりましたので活動を振り返ります。

目次

★が付いているのは特におすすめのコンテンツです。気になったものがあればぜひ読んでみてくださいね。

今年は本を二冊出版しました。

グラフニューラルネットワーク ★

joisino.hatenablog.com

昨年の『最適輸送の理論とアルゴリズム』に引き続き、機械学習プロフェッショナルシリーズより『グラフニューラルネットワーク』を出版しました。

グラフニューラルネットワーク (GNN) はその名の通り、グラフデータに対するニューラルネットワークです。グラフデータとしてはソーシャルネットワークや化合物グラフが有名ですが、テキストも一直線のグラフ、画像もグリッドグラフ、それらを組み合わせたものもグラフなので、何にでも使えるというのが大きな特徴です。最近は物理シミュレーション気象予報などにもよく使われています。

機械学習分野全体の潮流として、モデルは可能な限り一般的なものにして、とにかく様々なデータをモデルに入れるアプローチが広がっていますが、GNN はまさにそういう方向性に適しています。

一方で、関係の無いところには辺を張らないことで、きめ細やかな制御を実現したり、(トランスフォーマーなどと比べて)速度を向上させることもできます。そうした柔軟性が GNN の人気の理由です。

事前学習が難しいなどの課題はあるものの、乗り越えるための研究は精力的になされており、これからもどんどん伸びていく技術だと感じています。

この本では、数理的な内容を中心に GNN を基礎から解説しています。なぜこういうモデルを考えるのか、なぜうまくいくのか・いかないのかをしっかり理解したい人にはとてもおすすめです。

実装面については GitHub で notebook を無料公開しているのでこちらもぜひご活用ください。

github.com

深層ニューラルネットワークの高速化 ★

joisino.hatenablog.com

その名の通りニューラルネットワークの高速化する方法を解説した本です。2 倍高速になると半分のマシンで済むようになるので、高速化はコストを下げることにもつながります。

Readable を運営していると、モデルの推論コストがビジネス上とても重要なことを日々実感します。

機械学習分野において標準的なモデルサイズは年々増加しており、機械学習を中核とするサービスでは推論コストが重くのしかかってきます。そうした中で、推論コストを少しでも下げられると大きな利益に繋がります。

しかも、人件費や通信費などはどう頑張っても削る量に限界がありますが、ニューラルネットワークの推論コストはちょっとした工夫で半分になったり 1/10 になったり平気でします。コスト削減のテクニックを知っているのと知らないのとでは大違いです。これまでコスト的に無理だと思われていたサービスが推論コストの削減で採算が取れるラインまで持ってこられると、新しい価値を提供できるようになるので、ビジネス上も非常にインパクトが大きいです。

この本ではそういった推論コストを下げるテクニックを数多く紹介しています。

ちょっとした工夫で品質を落とさずに半分や 1/10 の時間で推論ができるようになるのですが、これはよく考えると不思議なことです。他の機械学習モデルではここまでのコスト削減ができることはほとんどありません。人間の脳にしても 1/10 に圧縮して同じような思考ができるかというとそんなことはありません。なぜニューラルネットワークではこのようなことができてしまうのか、その理由もこの本では詳しく掘り下げています。この議論はニューラルネットワークの奥深い原理に基づいており、本書は高速化という題材を通してニューラルネットワークの原理を学ぶためにも適しています。

実用的でありながら、原理を学ぶための読み物としても面白い本になったと自負しています。ニューラルネットワークに関わる人であれば面白いと感じること請け合いなので、ぜひ読んでみてくださいね。

論文

2024 年に主著で書いた論文は 2 本でした。

このほか、博士論文を提出したのと、去年の暮れに投稿していた Making Translators Privacy-aware on the User’s Side が今年 TMLR に採択されました。

論文化を待っている研究アイデアがネタ帳の中で渋滞しているので、来年はもう少したくさん論文を書ければいいなと思っています。

Training-free Graph Neural Networks and the Power of Labels as Features

この論文では訓練不要な GNN を提案しました。訓練することもできます。

あるモデルがどのような関数を表現できるかということは盛んに研究されています。ニューラルネットワークは線形関数を表現できる、線形モデルは XOR を分類するような関数を表現できない、などいろんな結果があります。二層のニューラルネットワークが任意の関数を任意の精度で近似できる万能近似定理は有名ですね。

「こうこうこういう風にパラメータを設定すればこの関数が表現できる」というように、構成的に表現能力を証明すると良いことがあります。

この論文では、GNN がラベル伝播法を表現できることを構成的に示しました。

構成したそのパラメータを GNN の初期値に設定すると、GNN は初期値の時点でラベル伝播法と同じ動作をするので、訓練せずともラベル伝播法と同じくらい良い精度を達成できます。

しかも、ここから訓練を開始すると、そこからさらに改善されて、ラベル伝播法の精度を上回ることができます。

一般に、表現能力の高いあるモデルが実用上うまくいっている手法 X を包含していることを構成的に示せると、手法 X を模倣するようにモデルを初期化し、そこから訓練をはじめることで手法 X をさらに上回る精度になることが期待できます。

表現能力の理論は「示しておくと変なことが起こらないのでとりあえず安心」というように消極的に使われることが多いのですが、初期化に使うという方向性を考えると実用性がぐっと増すので好きです。

Overhead-free User-side Recommender Systems

arxiv.org

joisino.hatenablog.com

軽量で便利なユーザーサイドの推薦アルゴリズム RecCycle を提案しました。Amax のもとになった手法です。

ユーザーサイドで Amazon の推薦システムを作ろうと考えると、典型的なアプローチでは Amazon をクローリングするなどして情報を集める必要があります。

しかし、ユーザーがクローラを運用するのは大変だし、Amazon に負荷がかかり迷惑にもなります。

RecCycle はクローラを使わず、ユーザーが普通に Amazon を利用しているときに表示される情報を活用して推薦システムを作ります。ユーザー自身が無意識的にクローラーの役割を果たすイメージです。

ユーザーサイドの推薦システムを作ることでの追加の負荷が Amazon に一切かからない点と、別途クローラを運用する必要が無いので楽というのがメリットです。

アルゴリズムの側で能動的に情報を収集できないので活用できる情報量に限りがあるというのがデメリットですが、「公式からのとてもよい推薦だったんだけど実は画面の端に表示されていて見落としていたものを集めてもう一回提示する」くらいは少なくともでき、そういったシンプルなものでも役に立ったりします(し、実はそれよりもっとリッチなことができたりします)。

ブログ

今年はブログ記事をたくさん書きました。

Readable のオウンドメディア Readable's Compass にも寄稿しました。

去年のまとめ記事で述べた 2024 年の抱負が「もっと勢力的にアウトプットする」でした。たくさんブログ記事を書いたのはこの抱負を意識した部分も大きかったです。今年は抱負を貫徹できたと思っています。

モデルパラメータの算術 ★

joisino.hatenablog.com

モデルマージやタスクベクトルなど、パラメータを足し引きをしてモデルを操作する手法の気持ちをまとめました。

モデルマージは黒魔術として捉えられることが多いですが、一次近似やニューラルタンジェントカーネルなどを使って数理的に納得感の強い説明にすることを心がけました。

モデルマージはなんとなく知っているけどなぜうまくいくか分からないという方はぜひ読んでみてくださいね。

大学で読んだ情報科学関連の教科書 ★

joisino.hatenablog.com

昔から独学が好きでした。面白い理論は自分から理解しにいきたいので、授業で教わるのはもったいないとすら思っていました。そんなわけで、教科書は自力でたくさん読んできました。

今年の 3 月に博士課程を修了し、ちょうどよい区切りだったので学部と大学院をあわせた 9 年間で読んだ情報科学関連の教科書をまとめたのがこの記事です。

高校までは勉強の順番はきれいに整備されていて、教科書を読む順番を簡単に決められます。しかし大学以降はそもそもどういう教科書が候補にあるか分かりづらく、しかも「入門」と書いてあるのに異様に難しかったりして、読む順番を決めるのも極めて難しいです。

この記事は、情報科学を独学する道筋の参考にできることを意識して書きました。

一冊一冊ちゃんと読んでいけば確かな実力が付くことは保証します。

全部合わせるとたぶん 30 万円くらいにはなりますが、大学の学費に換算すると半年分くらいですし、9 年で割ると 1 日あたり 100 円くらいなので、それで 9 年学んだ博士と同レベルの知識が身に付くと思うと安く感じます。

紹介した本を全てちゃんと読み切るのは相当に大変だと思うので、気になった本をピックアップして読んでいくでも、とりあえず全部流し読みして情報学科で 9 年間で学ぶことの全体像を把握するでも、思い思いにリストを使っていただければと思います。

トランスフォーマーは RNN である ★

joisino.hatenablog.com

トランスフォーマーを RNN として解釈する話です。

単にトランスフォーマーを RNN とみるだけならばどうということは無いですが、トランスフォーマーを特徴の空間で定式化するとより強い繋がりが明らかになります。

トランスフォーマーはアテンションの関数によって、低次元の RNN、高次元の RNN、無限次元の RNN として解釈できます。通常の softmax のアテンションは無限次元の RNN に相当します。

無限次元の RNN は表現力が高く、「このトークンにだけアテンションする」といったハードなアテンションを表現することができます。一方、低次元の RNN に相当するトランスフォーマーは、状態が低次元空間で混ざっているので、「このトークンにだけ」というようにはならず、近くにあるトークンは全てにアテンションをするというような、なだからなテンション分布になります。

表現力が高ければ高いほどよいという訳ではありません。

単語単位のトークンであれば、「この単語にだけアテンションする」というのは合理的ですが、音声フレームをトークンとする音声モデリングで「この音声フレームにだけアテンションして 1 ミリ秒後の次フレームには一切アテンションしない」としたり、画像ピクセルをトークンとする画像モデリングで「このピクセルにだけアテンションして隣のピクセルには一切アテンションしない」とするのは意味がありません。粒度の細かいトークンにおいてはこのようにトークンを独立に扱ってアテンションをすると品質が低下してしまいます。トークンが細かい場合は、「だいたいこのあたりのフレームにアテンションする」や「だいたいこのあたりのピクセルにアテンションする」といったなだらかなテンションが合理的です。このため、低次元の RNN に相当するトランスフォーマーが適しています。

実際には、softmax のアテンション = 無限次元の RNN が普及しすぎているので、特に考えずに無限次元の RNN が使われることが多いです。しかし、これだとうまくいかないので、画像をパッチ単位の粗いトークンに分割してから入力することで「このトークン = パッチにだけアテンションする」といったハードなアテンションがうまく効くようにトークンの粒度を調整します。これはこれで解決策としてありですが、softmax のアテンションありきで入出力を無理やり調整している感じであり、きれいな対処法ではありません。トランスフォーマーを RNN として見なすことを知っていると、低次元の RNN に相当するトランスフォーマーを使うことで、パッチ化という前処理を省いたスッキリしたモデル化ができるようになります。

テキストの場合、softmax のアテンション = 無限次元の RNN を使う場合はトークナイザーが極めて重要です。トークナイザーを使わず生のバイト単位でトランスフォーマーに入力すると「このバイトにだけアテンションする」といったことが起こりますが、これでは精度が落ちることが知られています [Wang+ 2024]。トークナイザーはトークナイザーで悪さをすることがあります。例えば、apple という単語は [apple] という一つのトークンですが、appple は [ap][pp][le] というように 3 つ全く異なるトークンになります。このため、言語モデルは「apple の p を一文字増やして」や「apple の l と a を入れ替えて」というような文字単位の操作が極めて苦手です。これは言語モデルそのものの欠点というよりは、トークナイザーの性質に由来する欠点です。トークナイザーが悪さをすることがあるので、トークナイザーを廃止したいという動きがあるのですが、通常のトランスフォーマーはバイト単位だとうまくいきません。ということで、これを克服するべく、トークナイザーを撤廃する代わりに、低次元の RNN を使うことで粒度の細かい生のバイトを扱っても問題ないようにするという方向性の研究が行われています [Wang+ 2024]。

トランスフォーマーを低次元・無限次元の RNN として解釈できることを知っていると、いろいろなことが分かって便利です。このほか、低次元にすると無限次元のときより高速に実行できるといった恩恵もありまます。記事中や『深層ニューラルネットワークの高速化』でも詳しく取り上げているので、興味のある方はぜひ読んでみてくださいね。

サービス開発

Readable

readable.jp

論文翻訳サービスの Readable は今年で 3 年目に突入しました。

今年の 6 月には翻訳モデルを大きくアップデートして、精度が大きく向上しました。

11 月にはブラウザ拡張を大きくアップデートして、より安定して使えるようになりました。

以前精度や安定性が原因でやめてしまった方も、またぜひ一度試してみてくださいね。

来年も引き続き開発を続けていく予定です。これからも何卒よろしくお願いいたします。

Amax

joisino.hatenablog.com

論文のところで紹介したユーザーサイドの推薦手法 RecCycle を応用して、実際に Amazon で使える Chrome 拡張 Amax をリリースしました。オウンドメディアのエイマックスマガジンも運営しています。

ユーザーサイドの推薦システムは私が創った研究分野です。

普段から推薦システムを研究しているのですが、いくらよいアルゴリズムを思いついても、Amazon 社に入社して実装しない限り amazon.co.jp でそのアルゴリズムの恩恵を受けられないし、Netflix 社に入社て実装しない限り netflix.com でその恩恵を受けられません。

日常的にこれらのサービスを使っていてイマイチな推薦を受けたとき、自分ならもっと推薦ができるのになとモヤモヤしていました。特に、グローバル社会で日本の存在感が低下するにつれ、日本人向けにチューニングされた推薦が提供される機会が減ってきていると感じます。X (Twitter) なんかはその傾向が顕著ではないでしょうか。

そういったモヤモヤを形にして自分なりに答えを出したのがユーザーサイドの推薦システムの研究です。

ユーザーサイドの推薦システムの研究は 4 年以上続けて、関連論文も 9 本出しました。これまでは論文レベルの検証でとどまっていたのですが、今年ようやくこの Amax で実用化にこぎつけることができたという形です。

来年以降も、研究・実用化ともに、精力的に活動していく予定です。

手軽で便利なのでぜひ Amax を使ってみてくださいね。

講演

今年は色んなところで講演をさせていただきました。 スライドは SpeakerDeck に上げています。おかげさまで、講演が終わったあとも、色んな方にスライドを読んでいただきました。

クリック率を最大化しない推薦システム ★

speakerdeck.com

正確に言えば、これは外部の講演ではなく、所属していた研究室での発表スライドを公開したものです。

インターネットがお金に直結するようになってから、インターネット上のシステムを制御するのが難しくなってきました。

人は楽してお金を稼ぎたいものなので、まっとうなコンテンツを生み出すよりも楽に攻略できる方法があると、そちらに流れていってしまいます。

「よくクリックされる記事をよい記事を見なしますよ」という基準は、全員がまっとうにコンテンツを生産していた太古の時代は良かったのですが、クリックされるためだけに生み出された釣りタイトルや釣りサムネのような戦略が徐々に増えてきて、最近ではクリック数だけの基準は機能しなくなっています。

それを乗り越えるための研究が数多くなされています。まだ完璧な解決策はないものの、現時点での可能な限りの対策をこのスライドで紹介しています。

学会に参加すると、このスライド見たよ、面白かったよと感想をいただけることが多く嬉しい限りです。

気づきも多いスライドに仕上げられたと自分でも気に入っています。

Introduction to Graph Neural Networks

speakerdeck.com

Machine Learning Summer Seminar (MLSS2024@Okinawa) での講演です。

大会場で英語で講演するのは初めてだったので緊張でした。

僕たちがグラフニューラルネットワークを学ぶ理由

speakerdeck.com

拙著『グラフニューラルネットワーク』の出版イベントでの講演です。

MLSS の講演を日本版にした感じですね。

ニューラルネットワークの損失地形 ★

speakerdeck.com

YANSシンポジウムでの招待講演です。

拙著『深層ニューラルネットワークの高速化』の中でも特に面白い、損失地形についての話を分かりやすくまとめました。

モデルの性能を測るとき、損失値という一点で考えたり、損失の履歴 = 学習曲線という線で考えたりすることが多いですが、周囲の損失地形を考えるともっと色んなことが分かるというお話です。

「盆地」や「縁」といった概念はイメージしやすく、数理的な詳細なしでも直観的に理解できるので、ニューラルネットワークの理論を学ぶ第一歩としてもおすすめです。

ニューラルネットワークに関わる人であればみなさん面白く読めると思うのでぜひ読んでみてくださいね。

研究の進め方 ランダムネスとの付き合い方について ★

speakerdeck.com

機械学習若手の会 (YAML) での招待講演です。

研究におけるランダムネスについては常々考えていましたが、この講演ではそれを言語化しました。

渾身の力を振り絞って書いた作品があまり読まれなかったり、逆に適当に書いた作品が拡散されてたくさん読まれてしまったり、思うようにいかないものです。

この講演では、そういったランダムネスの影響を可能な限りコントロールする方法について述べました。

こちらも、このスライド見たよ、面白かったよと学会などで感想をいただけることがあって嬉しい限りです。

研究に限らず、創作要素を含む仕事全般で有効な考え方なので、ぜひ読んでみてくださいね。

おわりに

今年の目標「もっと勢力的にアウトプットする」は達成できたと思います。

勢いはよかったのですが、スケジュール的に無理が出ることがあったり、論文が少なくアウトプット先が偏ったりしたので、来年は出力量は保ちながらもっと安定してアウトプットしたいですね。

今年も私の作品を見ていただいた方はありがとうございました。感想をもらえるのも大変励みになっております。

来年もどうぞよろしくお願いいたします。

連絡先: @joisino_ / https://joisino.net