投稿

ことばの構成性 – Pregroup Grammar

【 知っているけど、知らないこと 】 今回のセッションは、Chomskyの「生成文法」論を出発点とする現代の文法理論を、LambekのPregroup文法を一つの到達点として紹介しようというものです。 ことばは、より基本的な要素からあるルールに従って構成されています。これをことばの「構成性」と言います。少し単純化して、この基本的な要素を「語」、そのルールを「文法」と呼ぶことにしましょう。 意味もまた、より基本的なものから、何らかのルールに従って構成されていると考えることができます。意味もまた「構成性」を持つのです。 ここでは、まず、ことばと意味の「構成性」についての、基本的な観察をまとめてみましょう。  ⚫️ 文は文法に従って語から構成される   ⚫️ 文の意味は、語の意味に依存し、語の意味から構成される  ⚫️ 文の意味は、文の文法的構成に依存する こうした観察は、現代の言語学が初めて行った訳ではありません。 少なくとも、ことばの構成性としての文法については、驚くべきことに、紀元前4世紀に、インドのパーニニは、精緻なサンスクリット文法の記述を成し遂げていたと言います。インド人恐るべしです。 パーニニは、「生成文法の祖」と言われることもあるのですが、残念ながら、サンスクリット語を知らない僕には、彼が説明しようとしたこと、彼の文法理論をうまく説明することはできそうもありません。 僕らが、ある言語の「文法」を語ることができるのは、僕らが「よく知っている」言語についてだけです。それでは、逆に、僕らは、「よく知っている」言語について、その「文法」を「よく知っている」と言えるでしょうか? 僕は日本語は普通に読み書きできます。それは、文法的に正しい日本語を話すことができ、文法的におかしい日本語はそれと気づくことができるということですので、日本語の文法を知っているということはできるかもしれません。ただ、僕は、日本語の文法を、きちんとは知りません。 ある言語を自由に使えるということと、その言語の文法を知っているということは、イコールではありません。日本語の文法など知らなくても、僕らは、日本語を使えます。でも、僕らの「どこか」では、日本語の文法を正確に理解しているのです。 誰もが暗黙のうちには自明のこととしてそれを知っているのに、誰も明確な形ではそれを意識しないという、「文法」の奇妙

意味の形式的理論 -- Functorial Semantics

【 「意味の世界」の広がりについて 】 このところ「意味」の話をよくしているのですが、そこでの「意味」は、ほとんどの場合、「ことばの意味」のことです。 耳で聞くはなし言葉と、目で見る文字で書かれた文では、意味理解の仕方は異なるものですが、あまりその違いを意識することは少ないかもしれません。 それは、両者とも「ことば」としてくくることができて、両者とも同じ意味を伝えることができることを、よく知っているからです。 ただ、「意味」の世界は、ことばの世界にだけ広がっているわけではありません。 「ことば」を持つのは人間だけですが、ことばを持たない動物も、世界を「意味の連関」として捉えているのは確かなように、僕は考えています。 「意識」なしでは「意味」の認識は不可能だと思われるので、それは、「意識」が、生物の進化の歴史の中でいつの段階で生まれたのかという問題にもつながっていきます。コロナ・ウィルスに「意識」を見出すのは難しいと思いますが、我々、人間だって、我々を構成する数兆の細胞の一つ一つに、「意識」があると主張できる訳ではありません。 こうした方向で下降していくと、生物と無生物の境界にたどり着くのですが、そこまでいくのなら、「意識」ではなく「情報」のあり方として問題を捉える方が、スマートにリーチが広がるように思っています。 確かなことは、「ことばの意味」の世界は、我々の「意識」の進化の一つの到達点だということです。その意味では、我々皆の前に広がっている「ことばの意味」の世界は、「意味」を考える上で、とても重要な対象だと、あらためて思います。 ただ、この到達点は、中間的なものだと僕は考えています。 基本的には、ことばを自在に操る言語能力の上に、数学的な能力が構成されていきます。歴史的には、我々は、現在の言語能力を10万年近く前に獲得しています。ただし、文字の歴史は、たかだか数千年のものです。そして、文字の発明と数学の誕生は、ほぼ同時期です。 今回のセッションから始まるセミナー第二部の「もう一つの意味の分散表現論」は、数学的なことばと意味の理論の基礎を紹介しようとしたものです。 ------------------------------------- 「 意味の形式的理論 -- Functorial Semantics 」を公開しました。 https://youtu.be/k3

BERT

【 文と文の関係へ 】 BERTは、2019年に Google が発表した「言語表現モデル」です。 ここでは、「言語表現モデル」という言い方をしていることに注意したらいいと思います。それは、直接には、Google 機械翻訳のように自然言語処理の何らかの具体的な処理を担うモデルではありません。それ自体は、言語のコンピュータ上の「表現」の構成にもっぱら関わるモデルなのです。 BERTは、Bidirectional Encoder Representations from Transformers のイニシャルをとったものです。そのアーキテクチャーは、前回見たTransformerの前段部のEncoder だけを独立させたようなものです。内部に、Multi headのSelf-Attention Mechanismを抱えています。そのAttention Mechanismから「表現」を「構成」することが、BERTの「言語表現モデル」としての第一の仕事になります。 Transformerから出力を担当するDecoderを切り取って、もっぱらEncoder内に「言語表現」を溜め込んで、どうするのでしょう?  BERTでは、膨大な計算時間をかけて、Encoder内部に「言語表現モデル」を構成するまでの、この段階をPre-training と言います。 BERTで外部に対して何かの仕事をしようとするときには、Pre-training で構成された「言語表現」をそのまま使って、具体的なタスクを実行する出力層を一枚かぶせます。これを Fine-tuningと言います。 「働くBERT」は、Pre-training + Fine-tuning の形をしています。ただ、タスクが変わるたびに、長い計算が必要なPre-trainingの段階を繰り返し実行する必要はありません。「事前に訓練済み」のPre-trained された「言語表現」は、何度も何度も、タスクが変わっても「使い回す」ことができるからです。 BERTの特徴である Bidirectional 「双方向性」を簡単に説明しておきましょう。 言語の分散表現の基本は、まず、「語」に「ベクトル」を対応させることです。 この計算を実行した、Mikalov-Jeff Deanの「Word2Vec」では、ある語の周辺(前後に関わりなく)にどのよ

MacOS Ventura 13.3 とGoogle Drive の同期問題 2

【 MacOS Ventura 13.3 とGoogle Drive の同期問題 2 】 Ventura 13.3 で、Google Drive の同期がうまくいかないという問題ですが、Google Driveのフォルダー名を「マイドライブ」から「MyDrive」に変更したら、うまくいきました。 その原因ですが、こんな記事を見つけました。 「macOS 13.3 VenturaではNFC/NFD問題が再発し、濁音やアクセント記号が付いたファイルをダブルクリックしてもアプリで開けない不具合があるので注意を。」 https://applech2.com/archives/20230402-nfd-and-nfc-issues-in-macos-13-3-ventura.html こんなことのようです。 「UnicodeやUTF-8の正規化形式は度々問題となっており、例えば「が」という文字はNFCでは「が(U+304C)」となるのに対し、NFDでは「か(U+304B)&濁点(U+3099)」となり、ファイル名にNFCの「が」とNFDの「が」をつけると、見かけ上は同じものの、ファイル名としては異なるため、上記iOS 10.3のようにシステムがファイルを参照(開けない)できなくなる場合があります。」 「現地時間2023年03月27日にリリースされた「macOS 13.3 Ventura (22E252)」では、ファイル名にNFC形式の文字が含まれるファイルをダブルクリックしてもファイルが参照できない(見つからない)、または、ファイルに関連付けしてあるアプリだけが起動し、ダブルクリックしたファイルが表示されない不具合が確認されています。」 この問題で、GiTHubもたっていました。 [BUG] Unable to extract file including NFC character from Finder after Ventura 13.3 Update #1233 https://github.com/aonez/Keka/issues/1233 「マイドライブ」、濁点がふたつもある。「MyDrive」じゃなく「マイトライフ」でも良かったんだ。 「NFC/NFD問題が再発」だというけど、ひどいぞ、Apple。 アクセント記号もダメだというから、ドイツ人も、フランス人も、

Transformer

【 Attention こそすべて 】 Transformer は、2017年にGoogleが発表したアーキテクチャーです。 それは、GoogleのBERTやOpenAIのGPTといった現代の大規模言語モデルほとんど全ての基礎になっています。BERTの最後の文字 'T' も、GPTの'T'も"Transformer" アーキテクチャーを採用していることを表しています。 Googleの論文のタイトルは、"Attention is all you need" というものでした。「Attentionこそすべて」ということで、Attention Mechanism さえあれば、RNNもCNNもいらないと思い切ったことをいっています。これは、大規模言語モデル成立への大きな飛躍だったと思います。 このセッションでは、Google BrainのAshish Vaswani らの"Attention is all you need" 論文の紹介をしたいと思います。 まず最初に確認したいのは、見かけはずいぶん違って見えますが、Transformer アーキテクチャーは、大きな成功を収めた2016年のGoogle ニューラル機械翻訳のアーキテクチャーから多くを学んでいるということです。 ポイントをあげれば、Encode-Decoder アーキテクチャーの採用、EncoderとDecoderの分離、両者をつなぐAttention Mechanismの採用、等々。 こうした、Google ニューラル機械翻訳のアーキテクチャーの特徴は、そのまま、Transformerのアーキテクチャーに引き継がれています。それらの中で、Attentionこそが一番重要なのだというのが、Vaswani らの分析なのだと思います。 Attention Mechanismに注目すると、そこには特にパフォーマンスの面で課題があることも浮かび上がってきます。それは、シーケンシャルに実行され並列化されていません。また、Attentionが注目する二つの点の距離が離れると離れるほど計算量が増大します。 "Attention is all you need" 論文は、Attention Mechanismのパフォ

Google ニューラル機械翻訳

【 意味の共通表現「インター・リンガ」の発見 】 今回取り上げる「Googleニューラル機械翻訳」には、論文が二つあります。一つは、システムのアーキテクチャーを述べたもので、もう一つは、このアーキテクチャーを「多言語」に拡張したシステムの機能の紹介です。 まず、第一論文のアーキテクチャーの方から見ていきましょう。  【 Attention Mechanism 】 実は、「Googleニューラル機械翻訳」のアーキテクチャーに大きな影響を与える考え方が、同じ頃生まれます。それを Attention Mechanism といいます。 先に見た、Ilya Sutskever らの翻訳システムでは、翻訳さるべき文は、Encoderで、一旦、ある決まった大きさの次元(例えば8000次元)を持つベクトルに出力されます。このベクトルを入力としてDecoderが翻訳文を生成します。 Attention Mechanism を提唱した Bahdanau らは、入力された文が長いものであっても短いものであっても同じ大きさの固定長ベクトルに変換されることや、Decoderでの翻訳が、すべて、encoderの最終出力に圧縮された情報一つに依存することに疑問を呈します。 彼らは、EncoderとDecorderを直結することをやめ、かつ、後段のDecorderでの翻訳の各ステップに、前段のEncorderの情報を生かすアーキテクチャーを提案します。それがAttention Mechanismです。 Decoderでの作業中に、「そこを訳すのなら、ちょっとEncoderのこの部分の情報に注意(Attention)を払って」と注意を喚起する仕掛けです。 「Googleニューラル機械翻訳」のアーキテクチャーは、全面的に、このAttention Mechanismを取り入れたものです。 「Googleニューラル機械翻訳」だけではありません。その後の大規模言語モデルへの発展は、アーキテクチャー的には、このAttention Mechanismの発展と考えることができます。次回取り上げる "Trandforner" アーキテクチャーは、Attention Mechanismの最終進化系と言えるものです。それが、現在の「大規模言語モデル」の技術的基礎になりました。  【 第二論文が面白い

Bengioの「次元の呪い」から Sentence to Sentenceまで

 【 区切りをどこに置くか 】 昨日は、セミナーの 第1部「意味の分散表現論の系譜」の最初の章を、「Bengioの「次元の呪い」から BERT Transformer まで」と考えていたのですが、実際にスライドをまとめてみると、とても長いものになってしまいました。それで、二つに分けることにしました。 「意味の分散表現論」は、21世紀に入ってから生まれ、短い期間に飛躍的に発展しました。今回取り上げようと思ったのは、つぎのような出来事です。  ○ 2003年 Bengio:「次元の呪い」-- 語の特徴の分散表現  ○ 2006年 Hinton:Auto Encoder -- 意味的ハッシング  ○ 2011年 Ilya: RNN -- RNNによる文の生成  ○ 2013年 Mikalov: Word2Vec -- 語の意味ベクトル  ○ 2014年 Ilya : Sequence Sequence -- 文の意味ベクトル  ○ 2015年 Karpathy : Unreasonable Effectiveness of RNN  ○ 2016年 Bengio : Attention Mechanism  ○ 2016年 Yonghui Wu : Google 機械翻訳  ○ 2016年 Johnson : Google 多言語翻訳  ○ 2019年 Toutanova : BERT 確かに、少し多いですね。といっても、すべて取り上げたわけではないのですが。 少し考えたのですが、2015年以前と2016年以降に分けることにしました。 2015年以前の発展は、「意味の分散表現論」の基礎が、さまざまな取り組みを通じて、固まった時期に当たっていると思います。中でも、「語の意味ベクトル」の発見と「文の意味ベクトル」の発見は、大きな意味を持っていたと思います。 2016年以降の発展は、こうした基礎レベル・理論レベルでの認識が、大々的に実践的な応用に取り入れられたことによってもたらされたように、僕は感じています。 「意味の分散表現論」は、今、新しい段階に入ろうとしているのだというのが、今回のセミナーで伝えたかったことなのですが、そうした新しい時代の「区切り」が、どのような先行した時代の中から生まれるのかに、関心を持つことは意味のあることだと思います。 今回のコンテンツは、以前に行っ