MBZUAI(アブダビ)に滞在しました

アラブ首長国連邦UAE)のアブダビにあるMohamed bin Zayed University of Artificial Intelligence(MBZUAI)という大学に、縁あって2か月間滞在させていただきました。 備忘録もかねて2ヶ月間の思い出を振り返りたいと思います。 また、UAEへの留学やMBZUAIへの進学・就職に興味をもっている方に少しでも情報が役に立てば幸いです(※役立ち情報とかを書いているわけではないですが)。

言語処理学会の準備などで忙殺されていたらなんだかんだ帰国してから2か月以上もたってしまい、ブログ執筆を正直あきらめかけていたのですが、乾先生に是非何か書いてねと言われたことを思い出し、非常に乱雑なのですが一旦書き上げたので投稿させていただくことにしました。

MBZUAIのメインエントランス

執筆者の基本情報など

  • 執筆者の情報(当時):
  • 滞在期間:
    • 2024年11月11日から2025年1月13日までの約2ヶ月間。
    • UAEでは比較的涼しい時期です。
  • 滞在場所:
  • 滞在期間中の身分:
    • 乾チームのVisiting Student(VISA上は違う呼び方だったかも)

アブダビへの行き方・宿泊先の選び方

エティハド航空が成田空港⇔アブダビ空港間の直行便を運航しているので、それを利用しました。 宿泊先については,AirBnbで大学近くのアパートメントを転々としました。

アブダビ(あるいは大学周辺)の良かったところ

静かで落ち着いている(故に研究に集中しやすい)

アブダビ(特にMBZUAI周辺)は静かで落ち着いていたため、研究に集中しやすかったです。 (ショッピングモールモールに行けば賑やかな雰囲気を楽しむこともできます。)

猫が多い(しかも人懐っこい)

アブダビには(特に大学のあるマスダール・シティには)猫がいっぱいいました。 しかもみんな人懐っこい…!! 毎日どこかしらの猫ちゃんが相手をしてくれるので退屈しません。

私の前で堂々とくつろぐ猫
2匹で仲良くくつろぐ猫

夕方~夜にかけての気温(ただし季節限定)

私の滞在していた11月~1月は特に過ごしやすい季節でした。 昼間(特に11時頃~14時頃)はこの季節でも流石に暑く、宿から大学までの徒歩10分程度でも額に汗が浮かぶほどだったのですが(これは私が汗っかきなのもある)、16時頃から涼しくなりはじめ、外で過ごすのにちょうどよい気温になります。 猫を探しに散歩に出かけるのでもよいですし、少し早めの夕飯をとりにレストランに行くのもよいです。 大学周辺でもYas Mallなどのショッピングモールでも大抵のレストランには屋外席あります。 そこで食事を楽しみつつ、水平線の向こうに太陽が沈んでいくのを眺めながら茶を飲んだりシーシャを吸ったりしてくつろげば、もう最高の気分になります。 この季節のUAEの夕方~夜の気温は本当に心地が良く、これだけでも滞在の価値があると断言できます。 また、雨も降らず、空が曇ることも殆どなく(遠くに雲を臨むことはあれど、自分の真上を覆ったことは結局なかったと記憶しています)、毎日この穏やかな気候が続きます。

フムス

「明日はもっと良くなるだろう」という雰囲気が漂っている

アブダビはまだまだ発展途上の場所です。 大学周辺でもアパートメントの建築が進んでおり、毎日ちょっとずつ建物が出来上がっていくのを眺めて過ごしました。 大学構内でも大体いつも何かしら工事がされていたり、たまに謎に絵が飾られたり、ちょっとずつ変化していくのを目の当たりにしながら研究生活を送りました。 ショッピングモールや観光地に遊びに行くと、子どもたちがそこらをよく駆け回っていました。 そういった環境で2ヶ月間過ごしたことによって「明日はもっとよくなるだろう」という漠然とした雰囲気をこの国から感じました。 こういう雰囲気の中にいると不思議と研究のやる気も湧いてきます。

工事現場(そのうちアパートメントになると思われる)
グランドモスク&遊んでいるキッズ

滞在中の研究内容など

以前から個人的に強い関心を抱いていたreservoir computingの研究をしてみたいと申し出てみたところ、乾先生や栗林さん、平岡さんなどが興味を示してくださり、滞在期間中はreservoir computing関連の研究に取り組んでいました。

目下の成果物としては、以下のプレプリントがあります:

arxiv.org

やらかしエピソード(…けど無事だった。ということからこの国の安全性を示唆したい)

  • 宿泊先の鍵を紛失した:AirBnbで借りていた部屋の鍵を紛失してしまい、スペアの鍵を借りることになってしまいました…(幸い追加料金を請求されることはありませんでした)。
  • 宿泊先のチェックイン日を間違えた:↑とは別の部屋での話ですが、1/1チェックインの予約だったのに12/31チェックインで予約したものと勘違いしてしまい、間違って前日にチェックインしてしまいました…(AirBnbだとそういうことができてしまう場合がある…)。部屋でしばらくくつろいでいたところ、真の宿泊者が到着。勘違いが発覚して部屋を追い出されてしまいました。結局その日は大学に戻って夜を明かしました。
  • VISAの問題で出国できなかった:帰国に際して前もってやっておかねばならない手続きを把握しておらず、帰国日夜の空港のpassport controlを通過できず、帰国することができませんでした。結局3日ほど滞在期間が延び、その間に追加で観光を楽しむことができたのは怪我の功名でした。

結局大学では満足に寝ることもできず、早朝に散歩に出かけて朝焼けを眺めました。
ジュバイルマングローブ林(滞在期間延長ついでに行ってみた)

そのほか感じたことなど(※眉唾物です)

日本とUAEは気候も文化も大きく異なる国どうしですが、地政学的な断層に位置している(例えば西側陣営と東側陣営の間に位置している)という意味では案外似たような境遇にあるのではないかと思っています。 UAEは文化的に間違いなく中東の国ですが、中東の国の中では比較的アメリカとの関係も深い国です*1。 それはそれとしてBRICS経済圏に与していたりと、どちらともいえない絶妙な政策をとっているようです。 日本も政治的には西側ではありつつも、文化的には間違いなく東アジアの国家です。 こういった絶妙な位置に立たされている国どうしだからこそ、互いにシンパシーを感じることもあるのではないでしょうか。 乾先生をはじめとして、日本人が続々とアブダビに集まりつつある現状も、そう考えてみると単なる偶然ではないように思えてきます。 両国の今後の関係性に注目していきたいです。

まとめ

MBZUAI(アブダビ)は非常に良い場所でした。 大学周辺は落ち着いていて研究に集中しやすく、フレンドリーな猫がたくさんいて、一方で急速な発展を目の当たりにしながら過ごすことのできる面白い国です。 皆さんも、機会があればぜひ滞在してみてほしいです(博士やポスドクなども募集しているそうです!)。

ラクダ(結構フレンドリー)

*1:ガザ地区の問題について宗教的には明らかにイスラエルに対して腸が煮えくり返るような思いをしているはずのエミラティ達は、他方でどのような気持ちでアメリカと外交しているのでしょう…(たった2ヶ月の滞在で彼らの本音を聞き出す機会に恵まれることはありませんでしたが)。

めっちゃ個人的な意見で大変恐縮なのですが、自然言語処理の研究者はS&P500よりもオルカンに積み立てたほうが無難なのではないでしょうか

主旨

最近アメリカを中心に色んな所で大規模言語モデル(LLM)の開発が盛んで、研究者を含め自然言語処理NLP)研究に関わりのある人々を日々賑わせています。 他方で、新NISA等の節税制度の新設をきっかけとして、日本国内には空前の投資ブームが到来しつつあります。 このような流れの中で個人的に危惧しているのは、特定の企業・国・地域への集中投資が、個々人の資産を大きくしたいという願望を増長し、研究に携わる人々の冷静な判断を阻害するようになってしまうのではないかということです。

本記事の主旨は、

  • (特に強い拘りがなければ)NISAの積み立て投資枠は、S&P500のような100%アメリカ株で構成されている銘柄よりも、より広く分散されたオルカンみたいな銘柄で埋めるのが無難なんじゃないかなぁ~という個人的な意見、

あるいは少なくとも、

  • 個人の資産拡大願望と各国のリリースするLLMの良し悪しの判断は冷静に切り分けられるように常に意識していないと危ういよなぁ~という危機感

を共有したいというところにあります(S&P500も非常に優秀な株価指数ですので、今すぐ全員S&P500からオルカンに乗り換えろ!みたいな強い主張をしたいわけではないということを念のため断っておきます)。

DeepSeekショックについての所感

今回の話は、投資にあまり興味がない人であっても決して無関係ではいられない問題であるとも感じています。

例えば最近、中国のAI企業DeepSeekのリリースしたLLM『DeepSeek-R1』が世間をざわつかせていましたね。 聞くところによればなんと、わずか8億円程度の研究予算でChatGPTに匹敵する性能が得られたというではありませんか。 このニュースを受けて株式市場は大慌て。 特にNVIDIAの株価はたった一日で17%も下落し、同社は実に約90兆円もの時価総額を一瞬にして失ってしまいました。

これに対して、専門家たちは

  • そんなわずかな予算でLLMの研究開発ができるわけがありません。

という比較的冷静な指摘をしていた印象でした。

一方で、DeepSeekに対して冷ややかな視線を向ける人々のうちの何%かは、実は直近の高値でNVIDIA株を購入してしまって、内心相当焦っているのかもしれません。 そうなってしまうと最早「専門家としての冷静な批判」と「個人の資産拡大願望(≒資産減に対する焦燥感)」を完全に切り離して意見を述べることは相当難しくなってしまうでしょうし、実際そういう雰囲気を感じてしまうSNSポストを何件か見ました。*1

以上はあくまで妄想に過ぎないですが、仮に自分はあまり熱心に投資をしていないために平静を保っていられるのだしても、周囲もそうであるとは限らないという点に留意しておくことは重要そうです(SNSのタイムラインをそういう俯瞰的な視点でとらえるという意味でも)。

また、S&P500はアメリカの優秀な企業500社から構成される非常に優れた指数ですから、一部の個別株のような極端な値動きをすることは殆どないと思います。 それでも、アメリカ株100%の指数であること、そしてそれに投資するということは、アメリカの経済成長(だけ)を願ってしまうようになるリスクを抱えるということを忘れてはいけません。

日本株についての所感

アメリカ vs 中国のLLM研究開発競争以外の場所、例えば日本におけるLLM研究開発についても似たようなことが言えるのかもしれません。 日本国内でもLLM研究開発が盛んに行われていますが、これを冷ややかな目で見る人が一定数いるのは、もしかしたら上の例と逆のパターン「日本株に全く投資をしていないから」かもしれません。 日本株に投資するかは勿論個人の判断ですが、「持たない」というポジショニングによっても個人の願望が形成されうる可能性について覚えておくこともまた一定の価値があると思います。

まとめ

バイデン政権の頃から米中対立が徐々に深刻化し新たな東西冷戦が始まろうとしていたり(トランプ政権ほど露骨でないのが逆にタチ悪い)、インドを中心としてBRICS経済圏が新勢力として台頭しそうな不穏な雰囲気を出してきていたり、国内では社会保障の負担が増え続けて銀行預金だけではどうも厳しそうな感じになってきていたりと、世界情勢や資産形成を全く気にせず生きていくのがまぁまぁ難しい時代に突入しそうな雰囲気があって、なんか、なんかとにかくイヤ~な感じですが、それでも研究開発を通して新しい技術が生まれること自体は(それがどの国から出てきたものであっても)喜ばしいことのはずです。 少なくとも研究者は、そういったことを素直に喜んだり、あるいは冷静な批判を述べたりできるような存在であってほしいものです。

ひとまず私は、オルカン積立を通して世界市場にマルっと投資をすることによってポジショニングによる願望の増長を極力抑えたうえで、どの国・地域が台頭することになっても素直な視点をもてるように備えておくのが無難じゃないかなぁ~と思った次第でした。*2

*1:そもそも最近の米国株はPERが高すぎるとか、逆イールドが解消済みであるとか、S&P500を吊り上げている銘柄が全体のごく一部に偏る状況が続いていてこれは経験的に暴落につながる可能性が高いとか、シンガポールへの半導体輸出が不自然に増えているとか、そういった不穏な指摘は以前からずっとされてきていたので、DeepSeekのレポートが本当のことを言っているかどうかとかは最早あまり重要ではなく、専業トレーダーでもないのに最近の米国の半導体株に投資すること自体が相当冷静さを欠いた行為だと個人的には思いますが、市場予測は本記事の目的ではないのでこの辺で…。

*2:オルカン vs S&P500論争においては、しばしば「オルカンも6割アメリカ株だから意味ない」という意見が見られますが、ここまで読んでいただいた方には「いやそういう話をしているわけではないよ」ということはご理解いただけると思います。

NLP2025での活動予定(テーマセッション・スポンサーシップ)

NLP2025での活動予定です。

テーマセッション:言語とコミュニケーションの創発

NLP2024に引き続き、テーマセッション企画『言語とコミュニケーションの創発を採択頂きました。 創発コミュニケーション(言語創発)や記号創発ロボティクス、進化言語学等に関する発表を広く募集したいと考えています。 応募の際に作成した趣旨は以下です:

LLM が言語処理分野に革命的な影響を与え,そのモデリング能力や知能に強い関心が集まる一方,人間の言語が持つ構成性や分布意味論,実世界への接地などに関する根本的な問題には依然として多くの謎が残されている. さらに,LLM の生成する文章がウェブ上の言語空間に干渉し始めており,このフィードバックループが言語動態に今後どのような影響を与えるかも新たなテーマとなりつつある. 我々は今「言語はどのようにして創発したのか?」「言語は今後どこに向かっていくのか?」という 2 つの問題に直面している. 言語創発,記号創発ロボティクス,共創的言語進化といった領域は,これらの問いを探る構成論的な研究分野である. 去年に引き続き,テーマセッションを通じて分野間の交流を促進し,アイデアや問題意識の共有を図る.

「言語はどのようにして創発したのか?」という兼ねてよりの疑問に加えて、今回は「言語は今後どこに向かっていくのか?」というもう一つの問を今回の趣旨の柱に加えてみました。 LLMの登場により、LLMの生成したテキストが相当量インターネット空間に混ざり始めているという(概ね事実と考えて差し支え無さそうな)噂話がありますが、これは人間以外の言語話者が言語空間に干渉し始めるような時代に突入してしまったということを意味すると思います。 もしかしたら、新たな言語やコミュニケーションが"創発"する時代に突入しているのかも…? そんなことを思いつつ趣旨を作成しました。

趣旨作成時の呟き:

テーマセッションへの応募方法

※去年度の経験に基づきます。

基本的には一般発表と同じです。 発表申し込みの際、関連分野のカテゴリをプルダウン形式で選ぶ項目が出てくると思います。 そこに「テーマセッション5:言語とコミュニケーションの創発」が含まれているので、それを選択してください。 「言語の起源」や「言語のこれから」を問ういずれの研究テーマにしても、一般発表のカテゴリでは「その他の言語学」を選択せざるを得ないようなニッチな研究になりがちな気がしています。 そういった研究の適切な受け皿になれるよう頑張りたいです。

発表応募の受け入れに関する制限

※去年度の経験に基づきます。

仮に1セッションの発表数を  n とすると、

  • 当テーマセッションへの発表申し込み件数が  n にも  2n にもならなかった場合

には、一部の発表を一般発表に移さざるを得なくなってしまいます。 申し込みを検討してくださっている方は、そこだけ何卒ご容赦ください。

※申込件数が安定して  2n を超えるようになってきたときには、テーマセッションではなくワークショップを企画するタイミングなのだと思います。 いつかワークショップも開催できたら嬉しいです。

スポンサーシップ:シルバースポンサーになります

CL Nomadicという団体名でNLP2025のシルバースポンサーになります。

sites.google.com

学術分野の(バランスの取れた)発展には、単なる好奇心で出資してくれるパトロンの存在も少なからず必要なのではないかと考えています。 勿論ただの大学院生にそんな大金があるはずもないので、何人かで合わせて出資を行い、少しずつ出資の規模を大きくしていけたらと考えています。

個人的に特に気になっているのが、所謂「スポンサー賞」の存在です。 スポンサー賞とは、学会のスポンサーのうち特に大きな出資をしている企業や団体が、自分達の事業に関連する優れた研究発表に与えることのできる賞のことを指します。 スポンサー賞自体は素晴らしい取り組みであると感じる一方、営利企業側の理屈が過度に押し出された演出は学生に偏ったイメージを刷り込んでしまうのではないかと危惧しています。

そこで、自分達が、計算言語学者の立場からスポンサー賞を出せばよいのではないかと考えるようになりました(より正確には、出資は自分達がしつつ、賞選考は当分野の第一線で活躍している研究者を更に何人か集めて行うような形を検討中です)。

言語処理学会の場合、スポンサー賞授与の権利を得るための最低限の予算は33万円です(プラチナスポンサー22万円+スポンサー賞授与の権利11万円)。 今年から毎年33万円出せといわれると流石にちょっと厳しいのですが、5年くらいの間に、仲間集めと堅実な資産運用を進めていけば、かなり現実的な範囲に収まってくるのではないかと思います(今後のインフレやライフステージの変化が怖いですけどね…)。

まずは、活動実態を作っていくためにシルバースポンサー(5.5万円)からやっていきます。

当時の呟き:

内心(ベイズ○○とか変分○○とか理解したいけどよく分かっていない…)と感じている人は『ガウス過程と機械学習』を読んだら良いと思う

機械学習の理論寄りの研究にしばしば登場するベイズ○○(Bayesian ○○)とか変分○○(Variational ○○)とかって、なんかとっつきづらいですよね…。 毎度「へぇ~!面白そう~!」と思って論文に目を通してみるものの、あまり馴染みのない用語の羅列に圧倒されてしまって諦めるのを繰り返して幾星霜…という方はそれなりに多いのではないでしょうか? そんな方にはぜひ『ガウス過程と機械学習』の一部だけでも読んでみていただきたいというのがこの記事の趣旨です(※誰に頼まれたのでもなく勝手に宣伝しています)。

ベイズ○○とか変分○○とかが使われるときに割とよくあるシナリオ

論文の中でベイズ○○や変分○○が使われているときは、たいていの場合何らかのデータ  X=\{\boldsymbol{x}_{i}\}_{i=1}^{N} を説明する生成モデル  P_{\boldsymbol{\theta}}(X)=\prod_{i=1}^{N}P_{\boldsymbol{\theta}}(\boldsymbol{x}_{i}) を作りたい(or 改良したい)と著者は考えています。 そして、生成モデルがデータを「上手く説明できている度合い」として対数(周辺)尤度を考えるのが一般的です。

 \displaystyle
\log P_{\boldsymbol{\theta}} (X) = \sum_{i=1}^{N} \log P_{\boldsymbol{\theta}}(x_{i})

さらに、この手の研究では次のような“仮説”を置きます:

 \boldsymbol{x} が生成されるメカニズムの背後には、
実は目に見えない変数(潜在変数) \boldsymbol{z} が関与している。

より具体的には:

まず、何らかの確率分布(いわゆる事前分布)  P_{\boldsymbol{\theta}}(\boldsymbol{z}) から  \boldsymbol{z} がサンプリングされて、
次に、 \boldsymbol{z} に依存して( P_{\boldsymbol{\theta}}(\boldsymbol{x} | \boldsymbol{z}) に従って) \boldsymbol{x} がサンプリングされる。

というふうに考えます。 つまり、

 \displaystyle
\log P_{\boldsymbol{\theta}}(\boldsymbol{x}) = \log\sum_{\boldsymbol{z}} P_{\boldsymbol{\theta}}(\boldsymbol{x} | \boldsymbol{z})P_{\boldsymbol{\theta}}(\boldsymbol{z})

の形で表される確率モデルを考え、この確率モデルの対数周辺尤度  \log P_{\boldsymbol{\theta}}(X) を最大化問題を考えるのがこの手の研究や論文における前提であることが多いです。

ベイズ○○とか変分○○とかの理解を阻む壁(だと個人的に感じる部分)

(込み入った理論の説明はこの記事の目的ではないので詳細をざっくり省きますが)生成モデルの対数周辺尤度  \log P_{\boldsymbol{\theta}}(X)の最大化のためには、 いわゆる事後分布  P_{\boldsymbol{\theta}}(\boldsymbol{z}|\boldsymbol{x}) の計算が(どーしても)必要になってきます。 ベイズの定理に従えば、事後分布は

 \displaystyle
P_{\boldsymbol{\theta}}(\boldsymbol{z} | \boldsymbol{x})
=
\frac{
P_{\boldsymbol{\theta}}(\boldsymbol{x} | \boldsymbol{z}) P_{\boldsymbol{\theta}}(\boldsymbol{z})
}{
\sum_{\boldsymbol{z}}
P_{\boldsymbol{\theta}}(\boldsymbol{x} | \boldsymbol{z}) P_{\boldsymbol{\theta}}(\boldsymbol{z})
}

と表されますが、これを直接計算するのは(特に分母を計算するのが)現実的ではありません。

例えば  \boldsymbol{x} 64\times 64 のRGB画像データだったとして、 有り得る全ての  \boldsymbol{z} について、 典型的にはニューラルネットワークで表される  P_{\boldsymbol{\theta}}(\boldsymbol{x} | \boldsymbol{z}) が返す値を調べて総和を取る (のを与えられたすべての  \boldsymbol{x} について実行する……)なんてほぼ不可能ですよね( \boldsymbol{z} が連続の場合は  \sum \int に置き換えることになりますが、 P_{\boldsymbol{\theta}}ニューラルネットワークで表されているときに、積分の結果が綺麗に求まることなどまずありません)。

このような事情があるため、ベイズ○○とか変分○○とか言っている論文の殆どは「効率的に事後分布を近似するにはどうしたらよいのか」という議論にページの多くを費やします。 しかも大抵数式が込み入ってて読みづらいですし、理論的によほど優れた結果をもたらしているわけでもない限り、著者の考えた独自のヒューリスティクスであることも多いです(効率性と近似性の議論においてヒューリスティクスの設計がとても重要であることは言うまでもないのですが)。

もし、生成モデルに関する大前提(前節参照)や、事後分布の効率的な近似計算が重要であることの理論的背景(本記事では割愛)を知らないまま、込み入った数式の羅列(に見える代物)を理解しようと頑張ったとしたら、初学者には相当な苦痛になるでしょう。

個人的には、これがベイズ○○とか変分○○が衒学的で難しい分野として敬遠されがちな原因の1つではないかと考えています。

やっかいな事例:変分オートエンコーダ

約10年前、変分推論の画期的なモデルとして登場し、今でも興味深い研究テーマとして取り沙汰される変分オートエンコーダ(VAE)も、例にもれず「効率的に事後分布を近似するにはどうしたらよいのか」という議論にページの殆どを費やしています。 それ故に「単なるオートエンコーダの亜種」だと思い込んで飛びついた初学者の頭を悩ませることになります。 VAEは「ノイズを入れたロバストなオートエンコーダだから偉い」のではなくニューラルネットワーク誤差逆伝播)の特徴を最大限活かして効率的な事後分布の近似手法を設計してみたら、なんとオートエンコーダのようなアーキテクチャになったではないか!」という新たな発見があったから偉いし面白いのです。

arxiv.org

VAEの当該論文を改めて見直してみると、“Auto-Encoding Variational Bayes” というタイトルになっています。 変分オートエンコーダ(VAE)というのは結果として生まれた産物であって、そもそもの目的は「変分ベイズ(Variational Bayes)を自己符号化(Auto-Encoding)として再定式化すること」だったのだということが伺えますね。

補足

VAEが導入している近似(ヒューリスティクス)のうちのいくつかは正直ちょっと乱暴だと思います(例えば  \boldsymbol{\phi} \boldsymbol{\theta} を同時に動かすところとか)。 変分推論側の立場からすれば「なんでこれでも大丈夫なんだ…」という感じです。 実のところあんまり大丈夫ではないらしく(e.g., posterior collapse)、それ故に後に多くの派生形が生まれたのだと思います。

ガウス過程と機械学習』をオススメしたい

この短い駄文記事にできることはせいぜい一番初めのとっかかりとなる動機付け程度で、まとまった知識や考え方を手に入れるにはやはり教科書のようなものが必要です。 記事の冒頭で触れた通り、改めて私からはガウス過程と機械学習』(著:持橋・大羽)をお勧めさせていただきます。

ガウス過程と機械学習』は、タイトルの通りガウス過程(Gaussian Process)に関する入門書ですが、生成モデルに関する前提となる(ガウス過程に限らない)より一般的で重要な考え方や心構えが非常に分かりやすくまとまっています(特に第0章から第4章にかけて)。 正直、これで理解できなかったら他に何を読めば理解できるのかというくらい分かりやすかったです。

蛇足

それはそれとして、ガウス過程は非常に興味深い理論で、これ自体学ぶ価値が大いにあります(※個人の意見です)。 もし第0章から第4章までの間にガウス過程にも興味を持った方がいたら、ぜひ第5章以降も読んでみていただきたいです。

内側外側アルゴリズムは暗に誤差逆伝播をしているのではないかという話 (Eisner, 2016)

確率文脈自由文法(Probabilistic Context-free Grammar; PCFG)を教師なしで学習する手法として内側外側アルゴリズム(inside-outside algorithm)が知られています。 内側外側アルゴリズムがある種のEMアルゴリズムとして理解できることはあまりに有名ですが、 実は、PCFGをある種の人工ニューラルネットワークと見做したとき、おおよそ

にそれぞれ対応していると見做せるという興味深い話があります。 今回は、内側外側アルゴリズムがどうして誤差逆伝播と見做せるのかについて解説していくれている、以下のよるチュートリアルペーパーを紹介させていただきます。

紹介する論文

Jason Eisner. 2016. Inside-Outside and Forward-Backward Algorithms Are Just Backprop (tutorial paper). In Proceedings of the Workshop on Structured Prediction for NLP, pages 1–17, Austin, TX. Association for Computational Linguistics.

aclanthology.org

背景

文脈自由文法 (CFG)

まず、文脈自由文法(CFG)を記述するのに必要な記号を導入します:

  • \Sigma; 終端記号(terminal symbol)の集合
  • \mathcal{N}; 非終端記号(non-terminal symbol)の集合
  •  S \in \mathcal{N}; 開始記号
  • \mathcal{R}; 生成規則(production rule)の集合

終端記号 w\in\Sigma とは要するに単語のことです(※自然言語処理分野でよく見るEOSとは別物なので注意)。 非終端記号 N\in\mathcal{N} は統語範疇(名詞句とか動詞句のような文法上の分類)のことを指します。 開始記号  S \in \mathcal{N} は統語範疇の中でも特に「文」を意味する記号で、特別に  S と名付けて区別することが多いです。

生成規則 R\in\mathcal{R}

 \displaystyle
R=A\to BC
\quad
\text{または}
\quad
R=A\to w

の形で表されるものとします。 ここで A,B,C\in\mathcal{N},~w\in\Sigma です。 *1

CFGをもとに、構文木を一応ちゃんと定義しておきたいと思います(形式ばった定義なので読み飛ばしても特に支障はありません)。 まず、以下のように帰納的に定義されるラベル付き木の集合(のうち極小のもの)  \mathcal{X} を考えます:

  1.  R = A \to w \in \mathcal{R} について、 A をラベルとする根ノードと  w をラベルとする葉ノードをもつ木は  \mathcal{X} に含まれる。
  2.  T_1, T_2 \in \mathcal{X} をそれぞれ  A_1, A_2 をラベルとする根ノードをもつ構文木とする。このとき、各  A \to A_1 A_2 \in \mathcal{R} について、 A をラベルとするノードを根にもち、 T_1, T_2 を子にもつような木  T \mathcal{X} に含まれる。

ここで、構文木とは、 \mathcal{X} に含まれるラベル付き木のうち、根ノードのラベルが開始記号  S \in \mathcal{N} であるもののことを指します。 構文木の集合を  \mathcal{T} とおけば、

 \displaystyle
\mathcal{T} = \{T \in \mathcal{X} \mid l(T)=S\}

と書けます(ここで、 l(\cdot) は根ノードのラベルを表すものとします)。

構文木の葉ノードのラベルを“左”から順番に(あるいは深さ優先探索で到達する順に)並べたもの  \boldsymbol{w} = w_{1}\cdots w_{n}と呼びます。

ついでに、関数  f_{R}:\mathcal{X}\to\mathbb{N} を以下のように定義しておきます:

 \displaystyle
f_{R}(T) = \begin{cases}
\mathbb{I}_{R=l(T)\to l_{1}(T)} & (T~\text{の子は葉ノード})\\
\mathbb{I}_{R=l(T)\to l_{1}(T)l_{2}(T)}+\sum\limits_{i\in\{1,2\}}f_{R}(s_{i}(T)) & (\text{それ以外})
\end{cases}

ここで、

  •  \mathbb{I}_{\_} は支持関数(indicator function)、
  •  l_{i}(T) は「 T の根の  i 番目の子」のラベル、
  •  s_{i}(T) は「 T の根の  i 番目の子」を根とする、 Tの部分木

を表すものとします。  f_{R}(T) とは要するに「ラベル付き木  T\in\mathcal{X} を生成する過程で生成規則  R が用いられた回数」のことです。

WCFG と PCFG

CFGの各生成規則に「重み」を付けたものが重み付き文脈自由文法(WCFG)です。

  •  \mathcal{G}:\mathcal{R}\to\mathbb{R}_{\geq 0}; 生成規則の重みを与える関数(単に重みを呼ぶことにします)

さらに、次の性質が満たされるとき、WCFGは特に確率文脈自由文法(PCFG)になります:

 \displaystyle
\text{任意の}~N\in\mathcal{N}~\text{について}~\sum_{R\in\mathcal{R}: \textrm{LHS}(R)=N} \mathcal{G}(R) = 1.

ここで、 \textrm{LHS}(\cdot) は生成規則の左辺(Left Hand Side)を表します。

以降では、基本的にPCFGを考えることにします(上の等式制約は常に成り立っているものとして扱います)。

重み  \mathcal{G} が与えられたとき、構文木  T の確率は

 \displaystyle
P(T) = \prod_{R \in \mathcal{R}} \mathcal{G}(R)^{f_{R}(T)}

と定義します。 ただし、 f_{R}(T) は「構文木  T 内で生成規則  R が用いられた回数」です。 文脈次第では  P(T) の代わりに  P(\boldsymbol{w}, T) という表記も使いたいと思います( T の中に  \boldsymbol{w} の情報は既に含まれているため、この表記はやや冗長です)。

また、文  \boldsymbol{w} が与えられたときの構文木の事後確率  P(T | \boldsymbol{w})

 \displaystyle
P(T | \boldsymbol{w}) = \frac{P(\boldsymbol{w}, T)}{P(\boldsymbol{w})} = \frac{1}{Z}\prod_{R \in \mathcal{R}} \mathcal{G}(R)^{f_{R}(T)}

という形で表されます。 単に  Z = P(\boldsymbol{w}) と置いているに過ぎないのですが、後で見るように、この部分を  Z と置いておくと便利なのでこうしておきます。

PCFGは対数線形モデルでもある

PCFGは構文木(と文)に(同時)確率を割り当てる確率モデルとして定義されました。 ここで、各生成規則  R \in \mathcal{R} について \theta_{R} = \log\mathcal{G}(R) とおき、これを並べてベクトル化したもの  \boldsymbol{\theta} \mathrel{:=} (\theta_{R})_{R \in \mathcal{R}} を考えましょう。  \mathcal{G}(R)\geq 0 ですから、 \theta_R \in \mathbb{R}\cup\{-\infty\} であり、 \boldsymbol{\theta} |\mathcal{R}| 次元ベクトルということになります。 この見方から分かるように、PCFGは  \boldsymbol{\theta} によってパラメタ化された生成モデル  P(\boldsymbol{w}, T | \boldsymbol{\theta}) であるとみなすこともできるのです。 なお、このように定式化されたモデルは対数線形モデル(log-linear model)と呼ばれます。

また、 \mathcal{G}(R)^{f_{R}(T)} = \theta_{R}f_{R}(T) より、対数線形モデルは

 \displaystyle
\begin{aligned}
P(\boldsymbol{w}, T | \boldsymbol{\theta})
&= \exp \left( \langle \boldsymbol{\theta}, \boldsymbol{f}(T) \rangle \right)
\\
P(T | \boldsymbol{w}, \boldsymbol{\theta})
&= \frac{1}{Z}\exp \left( \langle \boldsymbol{\theta}, \boldsymbol{f}(T) \rangle \right) 
\end{aligned}

という形で表されることも分かります。 ただし、 \boldsymbol{f}(T)=(f_{R}(T))_{R\in\mathcal{R}} は「各生成規則  R\in\mathcal{R}構文木  T 内で使用された回数を並べたベクトル」を返す素性関数、  \langle \cdot, \cdot \rangle はベクトルの内積です。

PCFGの学習 ― EMアルゴリズムの視点からの動機付け ―

生成モデルの学習方法と言えばEMアルゴリズムです。 ここでは、PCFGの学習の仕方についてEMアルゴリズムの観点から動機づけしてみたいと思います。

PCFGの学習では、データとして与えられた文  \boldsymbol{w} の対数尤度の最大化を目的とします:

 \displaystyle
\log P(\boldsymbol{w}|\boldsymbol{\theta}) = \log \sum_{T \in \mathcal{T}}P(\boldsymbol{w}, T | \boldsymbol{\theta})

これによって、ある意味で言語モデルの対数尤度を最大化する(クロスエントロピー損失を最小化する)かのごとく、PCFGの学習が進むであろうことが期待できます。 ただし、 T に関する総和  \sum_{T \in \mathcal{T}} の部分がこの問題を少し難しくしています。 これに対処するためにEMアルゴリズムが必要になってくるのです。

PRML(下巻)によれば*2、対数尤度  \log P(\boldsymbol{w} | \boldsymbol{\theta}) は次のように分解できるのでした。

 \displaystyle
\log P (\boldsymbol{w} | \boldsymbol{\theta} )
=
\mathcal{L}(Q, \boldsymbol{\theta}) + D_{\textrm{KL}}(Q || P)

ただし、 \mathcal{L} D_{\textrm{KL}} はそれぞれ次のように定義されます:

 \displaystyle
\begin{aligned}
\mathcal{L}(Q, \boldsymbol{\theta}) &=\sum_{T}Q(T)\log\left(\frac{P(\boldsymbol{w}, T | \boldsymbol{\theta})}{Q(T)}\right)
\\
D_{\textrm{KL}}(Q || P) &= \sum_{T} Q(T) \log \left(\frac{Q(T)}{P(T | \boldsymbol{w}, \boldsymbol{\theta})}\right)
\end{aligned}

ここで唐突に登場している Q(T)は、 T上の任意の確率分布です(今回はちょっと違いますが、変分推論の文脈であれば「変分事後分布」などと呼ばれたりします)。

この分解の下で、EMアルゴリズムは次のEステップとMステップを交互に繰り返しながら、モデルのパラメータを  \boldsymbol{\theta}^{(0)}, \boldsymbol{\theta}^{(1)}, \ldots, \boldsymbol{\theta}^{(t)}, \ldots と徐々に改善していくプロセスとして解釈されます:

  • Eステップ: D_{\textrm{KL}}(Q||P) Q に関して最小化します(具体的にはゼロにします)。これは単に  Q(T)=P(T | \boldsymbol{w}, \boldsymbol{\theta}^{(t)}) とするだけで達成されます。
  • Mステップ:直前のEステップで得られた  Q を使いつつ、 \mathcal{L}(Q,\boldsymbol{\theta}) を最大化して新たなパラメータ  \boldsymbol{\theta}^{(t+1)} を得ます。即ち、
 \displaystyle
\begin{aligned}
\boldsymbol{\theta}^{(t+1)}
&=
\mathop{\textrm{arg max}}\limits_{\boldsymbol{\theta}^{\textrm{new}}}
\sum_{T}P(T | \boldsymbol{w}, \boldsymbol{\theta}^{(t)}) \log \left( \frac{P(\boldsymbol{w}, T | \boldsymbol{\theta}^{\textrm{new}} )}{ P(T | \boldsymbol{w}, \boldsymbol{\theta}^{(t)}) } \right)
\\
&=
\mathop{\textrm{arg max}}\limits_{\boldsymbol{\theta}^{\textrm{new}}}
\sum_{T}P(T | \boldsymbol{w}, \boldsymbol{\theta}^{(t)}) \log P(\boldsymbol{w}, T | \boldsymbol{\theta}^{\textrm{new}})
\end{aligned}

Eステップにおいて  D_{\textrm{KL}}(Q||P) が最小化されている(ゼロになっている)間、 \log P(\boldsymbol{w} | \boldsymbol{\theta}) = \mathcal{L}(Q, \boldsymbol{\theta}) が成り立ちます。 これにより、次のMステップにおいて \mathcal{L}(Q, \boldsymbol{\theta}) を最大化することと  \log P(\boldsymbol{w} | \boldsymbol{\theta}) を最大化することが等価になります。 故に、EステップとMステップを交互に繰り返していけば、おのずと  \log P(\boldsymbol{w} | \boldsymbol{\theta}) の最適化が進むというわけです(必ずしも大域解に収束するとは限らないという点には注意が必要です)。

ここでまず気になるのが「  \log P(\boldsymbol{w} | \boldsymbol{\theta}) の代わりに  \mathcal{L}(Q, \mathcal{\theta}) の最大化問題を解くことが、本当に問題解決を楽にしているのだろうか?」というものです。 これに関しては、以下のように比較して考えてみることで「まぁ確かに解きやすくはなるかも(そもそも解く方法があれば、の話だが)」くらいの納得感を得ることができます:

  •  \log P(\boldsymbol{w} | \boldsymbol{\theta}) を直接計算する場合: \log P(\boldsymbol{w} | \boldsymbol{\theta}) = \log \sum_{T} P(\boldsymbol{w}, T | \boldsymbol{\theta}) から「非常に沢山ある  T \in \mathcal{T} を全て列挙し、それぞれ  P(\boldsymbol{w}, T | \boldsymbol{\theta}) を計算し、総和をとって対数をとる」という計算が必要になります。 T \in \mathcal{T} を列挙する手続きが現実的ではありません(構文木の深さは高々  \log_2\textrm{length}(\boldsymbol{w}) 程度ですから、候補となる  T の数が有限個であることはすぐに分かりますが、それにしたって現実的とは思えません)。
  •  \mathcal{L}(Q, \boldsymbol{\theta}) を計算する場合:2つの確率分布  P(\boldsymbol{w}, T | \boldsymbol{\theta}) P(T | \boldsymbol{w}, \boldsymbol{\theta}) を計算によって得る必要があります。前者の計算は、使用されている生成規則の重みの積を取るだけで良いので楽勝です。後者の場合はどうでしょう…?一般的に、観測変数  \boldsymbol{w} が与えられたときの潜在変数  T の事後分布を求めるのは難しいとされているので、計算は容易ではないのではないかと一瞬不安になりますが、実は大丈夫です(流石に前者ほど楽勝ではないですが)。というのも、文  \boldsymbol{w} から構文木  T を計算するタスクは構文解析に他ならず、基本的にはCKY法を走らせれば解けるものだからです。

次に気になるのが、 \boldsymbol{\theta}^{(t+1)} の更新式の具体的な解です。 これを求めるために、もう少し式変形をしてみましょう:

 \displaystyle
\begin{aligned}
\boldsymbol{\theta}^{(t+1)}
&=
\mathop{\textrm{arg max}}\limits_{\boldsymbol{\theta}^{\textrm{new}}}
\sum_{T}P(T | \boldsymbol{w}, \boldsymbol{\theta}^{(t)}) \log P(\boldsymbol{w}, T | \boldsymbol{\theta}^{\textrm{new}})
\\
&=
\mathop{\textrm{arg max}}\limits_{\boldsymbol{\theta}^{\textrm{new}}}
\sum_{T}P(T | \boldsymbol{w}, \boldsymbol{\theta}^{(t)})\left(\sum_{R \in \mathcal{R}}\theta_{R}f_{R}(T)\right)
\\
&=
\mathop{\textrm{arg max}}\limits_{\boldsymbol{\theta}^{\textrm{new}}}
\sum_{R\in\mathcal{R}}\underbrace{\left\{\sum_{T}P(T | \boldsymbol{w}, \boldsymbol{\theta}^{(t)})f_{R}(T)\right\}}_{\mathrel{=:c(R;\boldsymbol{w},\boldsymbol{\theta}^{(t)})}}\theta_{R}
\\
&=
\mathop{\textrm{arg max}}\limits_{\boldsymbol{\theta}^{\textrm{new}}}
\sum_{R\in\mathcal{R}}c(R; \boldsymbol{w},\boldsymbol{\theta}^{(t)})\theta_{R}
\\
&=
\mathop{\textrm{arg max}}\limits_{\boldsymbol{\theta}^{\textrm{new}}}
\sum_{A\in\mathcal{N}}\sum_{R\in\mathcal{R}:~\textrm{LHS}(R)=A}
\frac{c(R; \boldsymbol{w},\boldsymbol{\theta}^{(t)})}{\sum_{R'\in\mathcal{R}:~\textrm{LHS}(R')=A}c(R'; \boldsymbol{w},\boldsymbol{\theta}^{(t)})}
\theta_{R}.
\end{aligned}

ここで、 c(R; \boldsymbol{w},\boldsymbol{\theta}_t) は「パラメータ  \boldsymbol{\theta}^{(t)} によって特徴づけられたPCFGが、文  \boldsymbol{w} を生成したときに、生成規則  R \in \mathcal{R} を使用した回数の期待値」と解釈することができます。 最後の式変形は、左辺の異なる( \textrm{LHS}(R)\neq\textrm{LHS}(R') となる)生成規則  R, R' \in \mathcal{R} の間には特に何の制約もないことから、別々の最大化問題に分解できるということから正当化されます。 最後の式を見ると分かるように、 \boldsymbol{\theta}^{\textrm{new}} は非終端記号  A \in \mathcal{N} ごとのクロスエントロピー最小化(対数尤度最大化)問題を解くことによって得られるものであることが分かります。

以上より、

 \displaystyle
\theta_{R}^{(t+1)} = \log\frac{c(R; \boldsymbol{w}, \boldsymbol{\theta}^{(t)})}{\sum_{R' \in \mathcal{R}:~\textrm{LHS}(R)=\textrm{LHS}(R')}c(R; \boldsymbol{w}, \boldsymbol{\theta}^{(t)})}

とすればよいことが分かります。

あとは、 c(R; \boldsymbol{w}, \boldsymbol{\theta}^{(t)}) をCKY法、あるいはそれに近い手法で求めることができればよさそうな気がしてきますよね。 実は、これを実際に求めるための計算方法が内側外側アルゴリズム(inside-outside algorithm)と呼ばれるものです。

この節を書くために参考にさせていただいた文献

PCFGの学習 ― 内側外側アルゴリズム

ここでは、内側外側アルゴリズムについて説明していきます。

まず、内側確率  \iota(A, i, j) を、 i番目から j番目の単語列をカバーする非終端記号 A \in \mathcal{N} が単語列  \boldsymbol{w}_{i:j} を生成する確率

 \displaystyle
\iota(A, i, j) = P(A \Rightarrow \boldsymbol{w}_{i:j} | \boldsymbol{\theta})

と定義します。この定義から分かるように、

 \displaystyle
\iota (A, i, j) =
\begin{cases}
\mathcal{G}(A\to w_i) & (i=j) \\
\sum\limits_{B,C}\sum\limits_{i\leq k\leq j}\mathcal{G}(A\to BC)\iota(B, i, k)\iota(C, k, j) & (i \lt j)
\end{cases}

という再帰的な関係が成り立ちます。 この再帰性を利用することで、CKY法のようなアルゴリズムを用いて効率的に  \iota(A, i, j) を計算することができます(内側アルゴリズム)。

次に、外側確率  o(A, i, j) を、開始記号  S から出発して文頭から  i-1 文字目までは単語列  \boldsymbol{w}_{1:i-1} が生成され、 i 文字目から  j 文字目までは非終端記号  A によってカバーされ、 j+1 文字目から文末までは単語列  \boldsymbol{w}_{j+1:n} が生成される確率

 \displaystyle
o(A, i, j) = P(S\Rightarrow \boldsymbol{w}_{1:i-1}A\boldsymbol{w}_{j+1} | \boldsymbol{\theta})

と定義します。外側確率についても、定義から分かるように

 \displaystyle
\begin{aligned}
o(A, i, j)
&= \sum_{B,C}\sum_{1\leq k < i} \mathcal{G}(B\to CA)\iota(C, k, i - 1)o(B, k, j) \\
&\hphantom{\mathrel{=}}
+\sum_{B,C}\sum_{j < k \leq n} \mathcal{G}(B \to AC)\iota(C, j +1, k)o(B, i, k)
\end{aligned}

という再帰的な関係が成り立ちます。 内側アルゴリズムによって予め全ての  \iota(A, i, j) が計算済みであるとします。 このとき、 o(S, 1, n)=1 から始めて、トップダウン o(A, i, j) を求めていくことで、外側確率も効率的に計算することができます(外側アルゴリズム)。

このとき、内側確率  \iota と外側確率  o を用いることで  c(R; \boldsymbol{w}, \boldsymbol{\theta}) は以下のように表すことができます。

 \displaystyle
\begin{aligned}
&c(R; \boldsymbol{w}; \boldsymbol{\theta})=
\\
&\begin{cases}
\frac{P(A\to w)}{\iota(S,1,n)}\sum\limits_{1\leq i\leq n}o(A,i,i)\mathbb{I}_{w_i=w} & (R=A\to w) \\
\frac{P(A\to BC)}{\iota(S,1,n)}\sum\limits_{1\leq i\leq j\leq k\leq n}o(A,i,k)\iota(B,i,j)\iota(C,j+1,k) & (R=A\to BC)
\end{cases}
\end{aligned}
この節を書くために参考にさせていただいた文献

偏微分を用いて  c(R; \boldsymbol{w}, \boldsymbol{\theta}) を求めることもできる

いくつか前の節で見たように  Z=P(\boldsymbol{w} | \boldsymbol{\theta}) とおけば、

 \displaystyle
P(T | \boldsymbol{w}, \boldsymbol{\theta})
=
\frac{1}{Z}\exp\left(\sum_{R \in \mathcal{R}}\theta_{R}f_{R}(T)\right)

と表せるのでした。 実は

 \displaystyle
\frac{\partial}{\partial\theta_{R}}\log Z = c(R; \boldsymbol{w}, \boldsymbol{\theta})

という興味深い性質が知られています。

このことを式変形で確かめてみましょう。

 \displaystyle
\begin{aligned}
&\mathrel{\hphantom{=}}
\frac{\partial}{\partial\theta_{R}}\log Z
\\
&=
\frac{\partial}{\partial\theta_{R}}\log P(\boldsymbol{w}|\boldsymbol{\theta})
\\
&=
\frac{\partial}{\partial\theta_{R}}
\sum_{T\in\mathcal{T}}P(T|\boldsymbol{w},\boldsymbol{\theta})
\log P(\boldsymbol{w}|\boldsymbol{\theta})
\\
&=
\sum_{T\in\mathcal{T}}
P(T|\boldsymbol{w},\boldsymbol{\theta})
\frac{\partial}{\partial\theta_{R}}\log P(\boldsymbol{w}|\boldsymbol{\theta})
\\
&\hphantom{\mathrel{=}}
+
\sum_{T\in\mathcal{T}}
\frac{\partial}{\partial\theta_{R}}P(T|\boldsymbol{w},\boldsymbol{\theta})
\log P(\boldsymbol{w}|\boldsymbol{\theta})
\\
&=
\sum_{T\in\mathcal{T}}
P(T|\boldsymbol{w},\boldsymbol{\theta})
\left\{
\frac{\partial}{\partial\theta_{R}}\log P(\boldsymbol{w}, T | \boldsymbol{\theta})
-\frac{\partial}{\partial\theta_{R}}\log P(T | \boldsymbol{w}, \boldsymbol{\theta})
\right\}
\\
&\hphantom{\mathrel{=}}
+
\sum_{T\in\mathcal{T}}
P(T|\boldsymbol{w},\boldsymbol{\theta})
\log P(\boldsymbol{w}|\boldsymbol{\theta})
\frac{\partial}{\partial\theta_{R}}\log P(T|\boldsymbol{w}, \boldsymbol{\theta})
\\
&=
\sum_{T\in\mathcal{T}}
P(T|\boldsymbol{w},\boldsymbol{\theta})
\frac{\partial}{\partial\theta_{R}}\log P(\boldsymbol{w}, T | \boldsymbol{\theta})
\\
&\hphantom{\mathrel{=}}
+
\underbrace{
\sum_{T\in\mathcal{T}}
P(T|\boldsymbol{w},\boldsymbol{\theta})
\{\log P(\boldsymbol{w}|\boldsymbol{\theta}) - 1\}
\frac{\partial}{\partial\theta_{R}}\log P(T|\boldsymbol{w}, \boldsymbol{\theta})
}_{\text{この項はゼロになります}}
\\
&=
\sum_{T\in\mathcal{T}}
P(T|\boldsymbol{w},\boldsymbol{\theta})
\frac{\partial}{\partial\theta_{R}}\left(\sum_{R \in \mathcal{R}}\theta_{R}f_{R}(T)\right)
\\
&=
\sum_{R \in \mathcal{T}}
P(T|\boldsymbol{w}, \boldsymbol{\theta})
f_{R}(T)
\\
&=
c(R;\boldsymbol{w},\boldsymbol{\theta}).
\end{aligned}

途中で「この項はゼロになります」という雑な一言で大きな項が消えてしまっていますが、これは何故でしょうか? 1つの回答としては「方策勾配定理(policy gradient theorem)におけるベースライン関数の項に相当しているから」といえそうです(強化学習屋さん向けの説明としてはこれで十分そうですね)。

念のため、この項がゼロになることをもう少し丁寧に確認しておきましょう。 見た目を簡潔にするため  b(\boldsymbol{w}, \boldsymbol{\theta}) = \log P(\boldsymbol{w} | \boldsymbol{\theta}) - 1 とおきます。  b構文木  T には依存していないことが本質です。

 \displaystyle
\begin{aligned}
&\hphantom{\mathrel{=}}
\sum_{T\in\mathcal{T}}
P(T|\boldsymbol{w},\boldsymbol{\theta})
b(\boldsymbol{w},\boldsymbol{\theta})
\frac{\partial}{\partial\theta_{R}}\log P(T|\boldsymbol{w},\boldsymbol{\theta})
\\
&=
\sum_{T\in\mathcal{T}}
P(T|\boldsymbol{w},\boldsymbol{\theta})
b(\boldsymbol{w},\boldsymbol{\theta})
\frac{1}{P(T|\boldsymbol{w},\boldsymbol{\theta})}
\frac{\partial}{\partial\theta_{R}}P(T|\boldsymbol{w},\boldsymbol{\theta})
\\
&=
b(\boldsymbol{w}, \boldsymbol{\theta})
\sum_{T \in \mathcal{T}}
\frac{\partial}{\partial\theta_{R}}
P(T|\boldsymbol{w}, \boldsymbol{\theta})
\\
&=
b(\boldsymbol{w}, \boldsymbol{\theta})
\frac{\partial}{\partial\theta_{R}}
\sum_{T \in \mathcal{T}}
\left(P(T|\boldsymbol{w}, \boldsymbol{\theta})\right)
\\
&=
b(\boldsymbol{w}, \boldsymbol{\theta})
\frac{\partial}{\partial\theta_{R}}
\left(1\right)
\\
&=
0.
\end{aligned}

内側外側アルゴリズムは暗に誤差逆伝播をしているっぽい

ここまでの議論で、

  • PCFGの学習をEMアルゴリズムの観点から動機づけると、 c(R; \boldsymbol{w}, \boldsymbol{\theta}) の計算が必要であることが分かる。
  •  c(R; \boldsymbol{w}, \boldsymbol{\theta}) は内側外側アルゴリズムで求めることができる。
  •  c(R; \boldsymbol{w}, \boldsymbol{\theta}) \frac{\partial}{\partial\theta_{R}}\log Z を計算することによっても求められる。

ということが分かりました。

ここで、 Z=P(\boldsymbol{w} | \boldsymbol{\theta})=\iota(S,1,n) であることに注意すると、連鎖率によって

 \displaystyle
\begin{aligned}
\frac{\partial}{\partial\theta_{R}}\log Z
&=
\frac{\partial(\log Z)}{\partial Z}
\frac{\partial Z}{\partial\mathcal{G}(R)}
\frac{\partial\mathcal{G}(R)}{\theta_{R}}
\\
&=
\frac{1}{Z}\cdot
\frac{\partial Z}{\partial\mathcal{G}(R)}\cdot
\mathcal{G}(R)
\\
&=
\frac{\mathcal{G}(R)}{\iota(S,1,n)}
\frac{\partial Z}{\partial\mathcal{G}(R)}
\end{aligned}

という関係が成り立つことが分かります。

この結果と、内側外側アルゴリズムを見比べてみると、

 \displaystyle
\begin{aligned}
\frac{\partial Z}{\partial\mathcal{G}(R)}
=
\begin{cases}
\sum_{1\leq i\leq n}o(A, i, i)\mathbb{I}_{w_i=w} & (R=A\to w) \\
\sum_{1\leq i\leq j\leq k\leq n}o(A,i,k)\iota(B,i,j)\iota(C,j+1,k) & (R=A\to BC)
\end{cases}
\end{aligned}

が成り立つことが分かります。

勾配  \frac{\partial Z}{\partial\mathcal{G}(R)} と内側外側アルゴリズムの定める再帰的な式が関係付いているということは「もしかして内側外側アルゴリズム誤差逆伝播のようなことをしているのではなかろうか…?」という直感を得ることができます。 実際、Eisner (2016) が指摘するようにこの直感は正しいです。 おおよそ、

に対応しています。 このことを確かめるために、まず偏微分  \frac{\partial Z}{\partial\iota(A, i, j)} について考えてみましょう:

 \displaystyle
\begin{aligned}
\frac{\partial Z}{\partial\iota(A,i,j)}
&=
\sum_{B}\sum_{1\leq k\lt i}
\frac{\partial Z}{\partial\iota(B, k, j)}\frac{\partial\iota(B, k, j)}{\partial\iota(A, i, j)}
\\
&\hphantom{=}
+
\sum_{B}\sum_{j\lt k\leq n}
\frac{\partial Z}{\partial\iota(B, i, k)}\frac{\partial\iota(B, i, k)}{\partial\iota(A, i, j)}
\\
&=
\sum_{B,C}\sum_{1\leq k < i}
\frac{\partial Z}{\partial\iota(B, k, j)}\mathcal{G}(B\to CA)\iota(C, k, i - 1) \\
&\hphantom{\mathrel{=}}
+\sum_{B,C}\sum_{j < k \leq n}
\frac{\partial Z}{\partial\iota(B, i, k)}\mathcal{G}(B \to AC)\iota(C, j +1, k).
\end{aligned}

おや…? この式はどこかで見たような気がしますね…。 そうです。 これは外側確率  o(A, i, j) の(再帰的な)定義式に他なりません。 つまり、

 \displaystyle
o(A, i, j) = \frac{\partial Z}{\partial\iota(A, i, j)}

という関係が成り立ち、外側確率  o(A, i, j) とは  Z の 内側確率  \iota(A, i, j) に関する偏微分だったのです。 さらに、内側確率がbottom-upに(葉から根に向かって)計算されるのに対して、外側確率がtop-downに(根から葉に向かって)計算されるという性質の違いや、外側確率が連鎖率に基づく再帰によって特徴づけられていることなどから、外側確率の計算アルゴリズムはある種の誤差逆伝播法であると言えます。

外側確率の計算アルゴリズムに関する以上の議論を踏まえ、改めて  \frac{\partial Z}{\partial\mathcal{G}(R)} について、連鎖率を用いた式変形を使いながら考えてみましょう。

 R=A\to w の場合:

 \displaystyle
\begin{aligned}
\frac{\partial Z}{\partial\mathcal{G}(R)}
&=
\sum_{1\leq i \leq n}
\frac{\partial Z}{\partial\iota(A, i, i)}\frac{\partial\iota(A, i, i)}{\partial\mathcal{G}(R)}
\\
&=
\sum_{1\leq i \leq n}
o(A, i, i)\mathbb{I}_{w_{i}=w}.
\end{aligned}

 R=A\to BC の場合:

 \displaystyle
\begin{aligned}
\frac{\partial Z}{\partial\mathcal{G}(R)}
&=
\sum_{1\leq i \leq k \leq n}
\frac{\partial Z}{\partial\iota(A, i, k)}\frac{\partial\iota(A, i, k)}{\partial\mathcal{G}(R)}
\\
&=
\sum_{1\leq i \leq k \leq n}
\frac{\partial Z}{\partial\iota(A, i, k)}
\sum_{i \leq j \leq k}
\iota(B, i, j)\iota(C, j+1, k)
\\
&=
\sum_{1 \leq i \leq j \leq k \leq n}
o(A, i, k)\iota(B, i, j)\iota(C, j+1, k).
\end{aligned}

以上のような連鎖率を用いた計算でも内側外側アルゴリズムを再現できていそうです。

まとめ

以上の議論をざっくりまとめると:

といった感じになります。

おまけ

隠れマルコフモデル(HMM)を特殊なPCFG(完全にright-branchingなPCFG)だと思うことにして同様の議論をすれば、HMMの前向き後ろ向きアルゴリズムもある種の誤差逆伝播をしていると理解できます。

感想

こういう何かと何かの等価性が明らかになる系の話は読んでいて気持ちが良いです。 今後、計算言語学の研究をする中でもしPCFGを使いたいとなったら、伝統的な意味での内側外側アルゴリズムの代わりに、PyTorch上でbackpropagationを利用するような実装にしてもいいかもしれません。

*1:本当は  A\to B_{1}B_{2}\cdots B_{m} とか A\to w_{1}w_{2}\cdots w_{n} とか A\to w_{1}Bw_{2} のような形の生成規則もあり得るのですが、アルゴリズムを記述する上での利便性などから、 A\to BC A\to w の2パターンに絞られる場合がほとんどです。 この2パターンに絞られているCFGはチョムスキー標準形(Chomsky Normal Form; CNF)であるといいます。 全てのCFGにはそれと等価な(厳密にはweakly equivalentな)チョムスキー標準形のCFGが存在するので、これによってCFGの表現力が落ちてしまう心配はありません。本記事では、CFGは常にCNFであると仮定します。

*2:BishopのPattern Recognition and Machine Learningの通称です。

Zipfの法則って結局どういう扱いなんだっけ?今更他人に聞けないのでPiantadosi (2014)を読んでこっそり勉強

背景

言語学分野では、Zipfの法則(Zipf's law)と呼ばれる統計的普遍性質が知られています。

Zipfの法則とは、出現頻度が $r$ 番目に多い単語について、その出現頻度がおおよそ $\dfrac{1}{r}$ に比例するという経験則です。 すなわち $r$ 番目の単語の出現頻度を $f(r)$ としたとき、

$$ f(r) \propto r^{-\alpha} $$

が成り立つという経験則です(ここで $\alpha \approx 1$ ですが、厳密には $\sum_{r=1}^{\infty} f(r) < \infty$ となるために $\alpha>1$ である必要があります)。 その名の通り、この経験則は言語学者 George K. Zipf によって発見されました。

式だけ見てもピンと来ないという方は、ぜひWikipediaの当該記事をご覧ください。 この記事によれば、なんと30ヶ国語においてZipfの法則が成り立つそうです。

ja.wikipedia.org

言語の大いなる複雑性を予感させるこの経験則は、言語の研究をする者にとっては非常に魅力的で、何故このような普遍性質が生まれてくるのだろうかとついつい思いを馳せてしまうものです。 これに対するよくある仮説は、発見者の George K. Zipf 本人が言っていたように *1 、Zipfの法則は「できるだけ多くの情報を得たい聞き手側の要請」と「できるだけ手短に発話を済ませたい話し手側の要請」という、相反する(トレードオフの関係にある)二つの要請の間で行われる最適化の帰結である、というものです。 この考え方自体は直感的にかなりそれっぽく感じられるのですが、Zipfの法則について考えるときには一つ注意すべき点があります。 それは、冪分布( $f(r) \propto r^{-\alpha}$ のこと)が創発する原理には無数のシナリオがあり得るということです。 つまり「Zipfの法則の原理を "説明できた気になれてしまう" シナリオは実は他にもたくさん知られているので、1つの説明だけに飛びつくのは危ないかもしれないよ」ということです。

Zipfの法則にまつわる「無数のシナリオ」には具体的にはどんなものがあるのか、恥ずかしながら今までちゃんと把握できていませんでした。 そこで、今回は以下の論文 Piantadosi (2014) を読んでみて、趣旨を簡単にまとめてみようと思い至りました。

Piantadosi, S.T. Zipf’s word frequency law in natural language: A critical review and future directions. Psychon Bull Rev 21, 1112–1130 (2014). https://doi.org/10.3758/s13423-014-0585-6 link.springer.com

Steven T. Piantadosiの論文には、パンチの効いた興味深いものが多い気がします。 この記事の内容とは関係ないですが、つい最近も以下のChomsky批判論文で一部の人々をざわつかせていました。

lingbuzz.net

Piantadosi (2014) の内容について

near-zipfian

上でも述べたように、Zipfの法則は $f(r) \propto r^{-\alpha}$ という形で表されまが、しばしばZipf-Mandelbrot lawなどとも呼ばれる表現

$$ f(r) \propto (r + \beta)^{-\alpha} $$

も使われるそうです。 Piantadosi (2014) では、より一般的な後者をfitting curveとして採用し、これをnear-zipfianと呼ぶことにしています。

冪的なモデルでfittingするときに注意すべきこと

以上の前置きをしたうえで、現実世界の単語の頻度分布はnear-zipfianよりもさらに複雑であることを忘れてはいけないとPiantadosiは指摘しています。 冪分布的なモデルは上記のもの以外にも提案されており、扱うコーパスデータによって一番よくfitするモデルは異なるそうです。 そういった意味で、冪分布的なモデルは「全て間違って」います。 またそれ故に「モデルがデータにまぁまぁよくfitしているように見える」という結果を以てそのモデルが適切であるかどうかを判断していいのかはかなり怪しいです。 例えば、Zipfの法則が次のような、しょうもないアーティファクトから生じた "ノイズ" に過ぎないとしたらどうでしょうか?

実は単語の出現確率は一様なのだが、実際に得られる有限個のサンプルにはどうしても偏りが生じてしまうので、それがたまたま冪分布っぽく見える。

6面サイコロを何回か振れば、すぐにそれが一様分布であることに気が付くでしょうが*2、もしそれが100面サイコロ、1000面サイコロ、10000面サイコロ、……だったとしても、有限回の試行で同じ結論に達することができるでしょうか…? ちょっと怪しいですよね…。 モデルがまぁまぁデータにfitしているというだけでは、同じことが単語の場合でも起こっている可能性を排除できないのです。 幸いにも、コーパスデータをランダムに「出現頻度ランキング $r$ を調べる」用と「各単語の出現頻度 $f$ を調べる」用に2分割して、それぞれ独立にランキングと出現頻度を調べたのち、それらを統合して得られたデータに対してもなおモデルがまぁまぁよくfitするようであれば、このようなアーティファクトを回避できるとPiantadosiは指摘しています(助かった…!)。

Zipfの法則を "説明できた気になれる" モデルたち

モデルfittingの方法論が妥当であるかどうかを確認しただけでなんだか疲労感がすごいですが、Zipfの法則を "説明できた気になる" モデルは、実はこれまでにいくつも提案されてきています(ひえ~!)。 Piantadosi (2014) 内の "Models of Zipf's law" という名前のセクションでは、以下の6つの分類が与えられています:

  1. Random-typing accounts
  2. Simple stochastic models
  3. Semantic accounts
  4. Communicative accounts
  5. Explanations based on universality
  6. Other models

以降では、これらのモデルの概要をそれぞれ説明していきたいと思います。

1. Random-typing accounts

Zipfの法則は(上述した問題とは別種の)単なる統計的なアーティファクト(statistical artifact)に過ぎないのでは?という指摘が一定数あります。 というのも、モンキータイピング系列ですら、冪分布に従う単語の頻度分布を生み出してしまうことが知られているからです。

モンキータイピング系列とは、ランダムに生成された文字列のことを指します。 その名前が示す通り、お猿さんがランダムにキーボードを叩いたときに生成されそうな文字列ということですね。 別のイメージとしては、各面にアルファベット(+スペースキー)が表記された多面サイコロを振り続けて、出目を逐次記録していったときにできる系列ともいえるでしょう。

モンキータイピング系列には、一定確率でスペース文字が入り込みます。 これを疑似的な単語区切りだと思うことにして、頻度ランキングと頻度の関係をプロットしてみることにしたとします。 すると、ランダムに生成された系列であるにもかかわらず、そのプロットが冪分布に従うというのです。 直感的には、長い "単語" は「ずっとスペースキー以外をタイプし続けた」ときにしかお目にかかれないので、短い "単語" に比べて出現確率が低くなります。 この出現確率の偏りが冪分布を生むというわけです*3

一度この説明を見てしまうと、モンキータイピング系列ですら冪分布に従うのだから、Zipfの法則に関してあれやこれやと具体的なシナリオを考えても仕方がないのでは?という気持ちに、少しだけなってしまいますね……。

ちなみにですが、この手の解釈の仕方(または5. Explanations based on universalityのような説明)が好きな方には『言語とフラクタル』もオススメです。

www.utp.or.jp

一方で、人間がモンキータイピング系列を生成しているわけではないことは明らかなので、流石にもう少し現実に即した説明もすべきではとPiantadosiは指摘しています。 確かにそれもそうだ。

2. Simple stochastic models

シンプルな統計モデル(あるいは確率過程)を想定するだけでZipfの法則を再現できるという話もあります。 Yule-Simon過程なんかがその代表例です。

Yule-Simon過程は、大雑把に次のような手順で系列を生成する確率過程です: 確率 $p$ で新しい "単語" を生成する。確率 $1-p$ で今までに生成したことのある "単語" を選択する。このとき、これまでに出現した回数の多い "単語" ほど選ばれる可能性が高くなるようにする(preferential attachment)。

いわゆる「金持ちはより金持ちに(The rich get richer)」に従って "単語" の出現頻度に偏りが生じていきます。 また、一定確率 $p$ で新しい単語も生まれるので、冪分布の独特の形状(両対数グラフで右肩下がりの直線)もちゃんと保持されます。 これまでによく使われた単語が今後もよく使われるという考え方は、非常に直感的でわかりやすく、面白い説明です。

しかしながら、Monkey-typing accountsと同様、現実世界のシナリオをどう関連しているのかをちゃんと説明できていないとPiantadosiは指定しています。

[脱線] Piantadosi (2014) では触れられていないみたいですが、他にもPitman-Yor過程などが知られています。 持橋先生らの研究によれば、これを階層化したバージョン(階層Pitman-Yor過程)を用いると、可変長n-gramモデルを構築できたりするらしいです。 http://chasen.org/~daiti-m/paper/ipsj07vpylm.pdf

3. Semantic accounts

上記2つの説明は、一般的な意味での単語というよりは、抽象的・統計的な系列のことを便宜的に単語としたときの議論に基づいていました。 しかし、現実世界の多くの単語は明らかに「意味」と紐づいていますよね。 だとすると、単語の頻度分布を決めているのは、実は意味構造のほうなのではないかと考えることもできます。

例えば、

  • true/false/undefinedの3値で表される意味の単位(seme)が各単語にいくつか付与されていて、これを効率的に伝達しようとするとZipfの法則が生じる(Guiraud, 1968)
  • 階層性のある意味構造上にシノニム(同義語)が極力生じないようにラベル(≒単語)付けをした結果としてZipfの法則が生じる(D. Manin, 2008)

などの説明がこれまでにされてきたようです。

意味が単語の頻度分布に何らかの影響を及ぼしている可能性は否定できないとしつつも、それが全てではないとPiantadosiは指摘しています。 このことを確かめるために、Piantadosiは(1月2月のほうの)月、惑星、元素、タブーワード、数字に関する単語群にそれぞれ焦点を当てて、ランキング-頻度分布を調べています。 これらは、外的な要因のせいで、他の単語に比べてそんなに自由に頻度を変えられないはずです。 ところが、これらの単語群に絞った場合でもやはりnear-zipfianな分布が現れることが明らかになりました。 また、Piantadosiは、Amazon Mechanical Turk (AMT) で集めたテキストデータを用いた検証も行っています。 AMTにて被験者に与えたプロンプトは以下のようなものでした:

An alien space ship crashes in the Nevada desert. Eight creatures emerge, a Wug, a Plit, a Blicket, a Flark, a Warit, a Jupe, a Ralex, and a Timon. In at least 2000 words, describe what happens next. (ネバダ砂漠に宇宙船が墜落する。8体の生物が現れる。ワグ、プリット、ブリケット、フラーク、ワリット、ジュペ、ラレックス、そしてティモン。次に何が起こるかを2000字以上で述べよ。)

ここで、8体の架空の生物(エイリアン)が登場しますが、当然ながら、これらの頻度分布は事前には定まっていません。 それにもかかわらず、やはりこれらもnear-zipfianな分布に従うことが示されました。 これらの実験結果から、意味がZipfの法則の全てを説明できるわけではなさそうだとPiantadosiは結論付けています。

4. Communicative accounts

次にPiantadosiが紹介しているのは、コミュニケーション(情報伝達)における何らかの最適化問題としてZipfの法則を説明するアプローチです。 これは、発見者であるZipf本人も唱えていたものでした。 Zipfは、話し手(speaker)と聞き手(listener)の努力(effort)の間のトレードオフを考えることでZipfの法則が説明できると考えました。 後にMandelbrotが、情報理論的なコストの最小化問題として説明できると主張し、その理論はさらにD. ManinやFerrer i Canchoらによって拡張されてきたようです。

Ferrer i Canchoらは、一連の研究の中で、意味 $X$ と記号 $S$ の間の相互情報量 $I(X; S)$ 最大化問題(できるだけ多くの情報を知りたいという聞き手側の都合)と記号 $S$ のエントロピー $H(S)$ の最小化問題(できるだけ楽に済ませたいという話し手側の都合)のトレードオフを考えました:

$$ \textrm{minimize}~\Omega(\lambda) = I(X; S)-\lambda H(S). $$

ここで $\lambda$ は両者のバランスを取り持つハイパーパラメータです。 Ferrer i Canchoらは $\lambda$ がちょうどよい値(論文によって0.4付近だったり0.5付近だったりします)になるとき、Zipf's lawが出現することを示しました(ある種の「相転移」的な現象が起きます)。

ただし、これが妥当なモデルであるかどうかを判断するには(数学的にはちゃんとした議論であるということ以外にも)意味やコミュニケーションについて更なる議論が必要であるとPiantadosiは指摘しています。 また、 $\lambda$ のある閾値を境に急激に性質が変化するというのは、頑健性に欠けるためにモデルとして不適切である可能性も指摘しています(このような考え方はSpearman's principleというそうです)。

5. Explanations based on universality

1~4で紹介したような説明よりも更に一般性の高い説明(explanations based on universality)も取りあげられています。 例え話として、Piantadosiは中心極限定理(Central Limit Theorem; CLT)と正規分布に言及しています。 世の中の様々な場面で我々は正規分布に出会いますが、これはCLTによるものであると一般に受け入れられています。 つまり「いろんな場面で正規分布に出会うのは、CLTという数学的必然性によって世の中の大体の分布が正規分布化されてしまうからであろう」とみんなとりあえず納得しています。 もしこれの冪分布バージョンに相当する原理があったとしたら、Zipfの法則を説明する強力な議論になりそうな気がしますよね*4。 もしそのような説明が可能であれば、最早自然言語に限った話ではなく、統計的必然として冪分布は現れるものであり、Zipfの法則もその一例に過ぎないという(説明1や説明2よりも更に一般的な)説明が与えられるはずです。

実際その手の指摘は数多くあり、Piantadosi (2014) の中では、以下のような研究事例が紹介されています*5

  • Corominas-Murtra & Solé (2010)
  • Y. I. Manin (2013)
  • S. A. Frank (2009)

また、Zipfian distribution は最も一般的な分布(most common distribution)の1次近似、Zipf-Mandelbrot distribution はその2次近似に相当しているという指摘 (Belevitch, 1959) もあるそうです。 これは要するに「なんか複雑なcurveを、その1次近似でfitしているだけなんだから、まぁまぁfitするのは当然なんじゃない?」という身も蓋もない指摘をしている研究もあるということだと思われます。

これらは、科学のより広範な視点からZipfの法則を考察しているという意味で非常に興味深いものですが、一方で、これらの説明は「予測可能性」に難があり、 この手の説明が「正しい」または「正しくない」と結論付けるためにどういう検証をしたらよいかが不明瞭である(反証可能性に乏しい?)ことに問題があるとPiantadosiは考えているようです。

6. Other models

1~5の分類に当てはまらないような説明も多く存在するようです。 以下の文献が紹介されていました:

  • 要素をランダムにグループ分けする過程からZipfの法則が生じるという説明 (Baek et al., 2011)
  • ある2種類のエントロピーを同時に最大化する結果として生じるという説明 (Arapov & Shrejder, 1978)
  • Fisher Informationを用いて説明 (Hernando et al., 2009)
  • シンプルな語彙の増大モデル (Popescu, 2009)
  • 頻度順にソートされた語彙リスト上の線形探索 (Parker-Rhodes & Joyce, 1956)

Zipf's lawの今後について

Piantadosi (2014) の中で紹介されていたように、Zipfの法則は色んなシナリオで説明ができてしまいます。 そしてそれ故に、どの理論も説明としての説得力に欠けています。 より多くのデータに対するモデルの妥当性を検証していくことが、正しい理論的説明を見定めるのに重要であるとPiantadosiは指摘しています(正しい理論がもし本当に存在するのならば、の話ですけどね)。

個人的な所感

Zipfの法則の説明を試みた研究って本当に沢山あるんですね。 記事にまとめながら頭がこんがらがってきてしまいました。 1つ1つ咀嚼していけたらと思っています。

Emergent Communication (Language Emergence) の研究をしている一学生としては、Communicative accountsが一番都合の良い説明を与えてくれるのでつい飛びつきたくなっちゃいます。 が、やはり広範な視点から考察するのが重要そうですね。 せっかく調べたので、今後の研究に何らかの形で活かすことができたら嬉しいです。

*1:George Kingsley Zipf (1949), Human behavior and the principle of least effort, Addison-Wesley Press

*2:実際には、6面サイコロであっても一様分布に収束することを確認するのは容易ではないらしいです。参考記事:https://nwuss.nara-wu.ac.jp/media/sites/11/ssh19_04.pdf

*3:「そうだとすると、単語の長さは幾何分布(指数的)に従うはずで、冪的な分布にはならないのでは?」と感じた鋭い人向けの補足:"単語" が長くなるほど、文字の組合せのパターン数が指数的に増加していき、幾何分布の指数的な減衰とうまく打ち消し合うことによって冪が生じます。

*4:普通のCLTでは、期待値と分散が定義できる(有限である)確率分布からのサンプルの平均値を考えますが、これらの条件を緩めると冪分布が収束先になる場合があるらしいです(あんまり詳しくは知らないのですが)。

*5:ちょっとこの辺に関しては、当該論文を読み込んでみないと分からないことが多いですね…。勉強します。