AIは言葉を理解しているのか? ソシュールとチョムスキーから考える
前回は、画像を点に分解して、コンピュータには画像がどう見えているのかを確かめました。
今回は、画像ではなく「言葉」です。
本編にコードは出てきません。10年後に読んでも、たぶん古くならない話だけを書きます。最後に、読み飛ばしてもいいおまけとして、短いコードを一つだけ置きました。
はじめに:目の前の犬を、なぜ「犬」と呼ぶのか
目の前に、一匹の犬がいるとします。僕たちはそれを「犬」と呼びます。
でも、犬が最初から「犬」という名前を持っていたわけではありません。英語ではDog、フランス語ではChienです。同じ動物なのに、呼び名は違います。
ここで、一つ疑問が出てきます。
言葉は、世の中にあるものに、名札を貼っただけなのでしょうか。
この見方を、言語学では「言語名称目録観」と呼びます。言葉とは、もともとあるものの名前の一覧だ、という考え方です。
20世紀のはじめに、これに異を唱えた人がいます。言語学者のフェルディナン・ド・ソシュールです。そして、もう一人、まったく違う方向から言葉の謎に迫った人がいます。ノーム・チョムスキーです。
この二人の考え方を入り口にして、最後に「AIは言葉を理解しているのか」を考えてみます。
1. ソシュール:言葉の意味は、ほかの言葉との関係で決まる
ソシュールは、ジュネーヴ大学で行った講義で知られています。本人は本を残さず、死後の1916年に、弟子たちが講義ノートをまとめて『一般言語学講義』として出しました。
名前と物は、必然では結びついていない
「犬」という音と、犬という動物のあいだに、自然な必然性はありません。日本語ではイヌ、英語ではドッグ、フランス語ではシアン。どれが正しいということもなく、その社会の中で「そう呼ぶことにしている」だけです。これを「言語記号の恣意性」といいます。
言葉は、世界をどこで区切るかが違う
もっと身近な例があります。
日本語には「水」と「湯」があります。冷たいか熱いかで、別の言葉になっています。一方、英語では、基本的にどちらもwaterです。熱いときはhot waterと、足して言います。
「兄」と「弟」もそうです。日本語は年上か年下かを言葉で分けますが、英語のbrotherは分けません。
同じ世界を見ていても、どこに線を引くかは、言語によって違います。言葉は、もともとある区切りを写しているのではなく、区切りそのものを作っています。
(念のため書いておくと、これは単純化した例です。waterと「水・湯」は、きれいに一対一で対応しているわけではありません。)
同じものを指していても、「価値」が違う
ソシュール本人が使った、一番有名な例があります。
英語のsheepと、フランス語のmouton。どちらも、あの羊という動物を指します。ところが、英語には羊の肉を指すmuttonという別の言葉があります。フランス語のmoutonは、動物も肉も、一語で言います。
ソシュールは、こう整理しました。指しているもの(意味)は同じでも、その言葉が、ほかの言葉との関係の中で占めている位置(価値)は違う。
言葉の値打ちは、その言葉単体では決まらない。ほかの言葉との違いと関係で決まる。
犬と猫と狼の違い、で考えてもいいのですが、それは別々の動物なので、当たり前に聞こえます。sheepとmoutonのように、同じ動物を指していても値打ちが違う、というところに、ソシュールの凄みがあります。
将棋で考えてみる
ソシュールは、この考え方を説明するのに、チェスを使いました。ここでは、日本人になじみのある将棋に置き換えてみます。
将棋の駒は、木でも、プラスチックでも、紙切れに「歩」と書いただけのものでも、決まりが同じなら、同じ将棋が指せます。駒の素材には、意味がありません。
大事なのは、「飛車は縦横にどこまでも動ける」「歩は一つ前にしか進めない」といった決まりと、盤の上の駒どうしの関係です。歩は、相手の陣地に入って成ると、「と金」にひっくり返って、金と同じ動きになります。駒の値打ちは、駒そのものではなく、いまの盤面の中での位置で決まっています。
言葉も同じです。「犬」という音そのものに、値打ちが入っているのではありません。猫や狼や、ほかの無数の言葉との関係の中で、はじめて位置が決まります。
(これも単純化したたとえです。ソシュール自身が、チェスと言語には根本的な違いがあることも認めています。また、「猫がいなければ、犬という概念は生まれない」と言っているわけでもありません。)
2. チョムスキー:人間は、聞いたことのない文を作れる
次は、ノーム・チョムスキーです。
ソシュールが、言葉の「体系」に目を向けたのに対して、チョムスキーは、人間が言葉を「生み出す力」に目を向けました。
規則は有限なのに、文は無限に作れる
僕たちは毎日、生まれてから一度も聞いたことのない文を、平気で作っています。誰かの言ったことを、そのまま繰り返しているわけではありません。覚えた単語と、頭の中の規則から、新しい文を組み立てています。
たとえば、こんなふうに、文の中に文を入れていくことができます。
- 猫が鳴いた。
- 太郎は、猫が鳴いたと言った。
- 花子は、太郎が、猫が鳴いたと言ったと思った。
- 先生は、花子が、太郎が、猫が鳴いたと言ったと思ったと知っていた。
文の中に、別の文が入っている。さらにその中にも、文が入っている。この入れ子には、理屈の上では、終わりがありません。
使っている規則は、ごくわずかです。それなのに、作れる文は無限にあります。この「限られた規則から、無限の文が生まれる」という仕組みを、チョムスキーは「生成文法」として研究しました。
文法が正しいことと、意味が通ることは、別
チョムスキーの一番有名な例を紹介します。1957年の著書『Syntactic Structures』に出てくる文です。
Colorless green ideas sleep furiously.
(色のない緑色の考えが、猛烈に眠る。)
意味は、めちゃくちゃです。色がないのに緑色。考えが眠る。しかも猛烈に。
でも、英語の文の形としては、ちゃんと成り立っています。「形容詞、形容詞、名詞、動詞、副詞」と並んでいて、文法としては正しい。
では、この文の語順を、逆にしてみます。
Furiously sleep ideas green colorless.
こちらは、文として成り立ちません。ただの単語の並びです。
ここが面白いところです。どちらの文も、意味は通じません。そして、どちらも、実際の英語の文章には、まず出てきません。それなのに、僕たちは、前の文だけを「文の形をしている」と感じます。
チョムスキーは、ここから、こう主張しました。「出てくる見込みの低さ」だけを頼りにした統計では、この二つの違いは説明できないはずだ。どちらも、同じくらい「英語から遠い」文として、一緒に切り捨てられてしまうからだ。
3. 二人は、何が違うのか
| ソシュール | チョムスキー | |
|---|---|---|
| 注目したもの | 言葉の体系 | 人間の言語能力 |
| 問い | 言葉の意味は、どう成り立つのか | 人間は、どうやって新しい文を作れるのか |
| 見方 | 言葉どうしの関係の中の「価値」 | 限られた規則から、無限の文を作る仕組み |
ソシュールは、言葉を、社会が共有している「関係の網」として見ました。チョムスキーは、言葉を、人の頭の中にある「文を生み出す力」として見ました。
同じ「言語」を見ていても、見ている方向がまったく違います。
4. では、AIは言葉を理解しているのか
ここで、AIです。
いまの生成AIは、大量の文章から、「どんな言葉が、どんな言葉と一緒に使われやすいか」を学んでいます。そして、それまでの文脈をもとに、次に来る言葉の確からしさを計算して、文を作っています。細かい仕組みは、これからも変わっていくでしょう。
これを聞いて、チョムスキーの主張を思い出してください。「出てくる見込みの統計だけでは、文法は説明できない」。
実は、この主張には、後日談があります。2000年に、研究者のフェルナンド・ペレイラが、新聞記事の文章から作った単純な統計モデルで、先ほどの二つの文を比べました。結果は、前の文(Colorless green ideas…)のほうが、逆順の文より、はるかに高い確率になりました。チョムスキーが「統計では区別できないはずだ」と言った二つを、ごく単純な統計モデルが、区別してしまったのです。
(ここで書いた確率の倍率は、資料によって数字が違うので、書いていません。原典はこちらで読めます。)
1957年に出された主張と、2000年の反論と、いまのAI。この問いは、70年近く続いています。
そして、AIの時代になって、チョムスキー自身が、2023年に、共著者とともにNew York Timesに寄稿しました。いまのAIが言語と知識をとらえる仕方には欠陥がある、という批判です(The False Promise of ChatGPT)。それに対する反論も出ていて、本人の応答はこちらで読めます。
二人の見方を借りると、答えは二つに割れる
ソシュールの見方なら:意味は、言葉どうしの関係から生まれる。ならば、膨大な文章から言葉の関係を吸い上げたAIは、かなりの「意味」を持っている、と言えそうです。
チョムスキーの見方なら:人間は、生まれつきの力で、自分で説明を作る。AIは、すでにある文章の型をなぞっているだけで、言葉を理解しているとは言えない、となります。
そもそも、「理解」とは、何を指しているのか
答えが割れる理由は、「理解」という言葉が、一つの意味ではないからかもしれません。
- 関係を正しく扱える:言葉どうしの関係を、間違えずに使える
- 自分で説明を作れる:新しい状況でも、筋の通った説明を、自分で組み立てられる
- 体験として知っている:実際に感じたことがある
「海は冷たい」と、AIは説明できます。でも、AIは海に入ったことがありません。
1つ目は、ソシュールの見方で、かなりできていそうです。2つ目は、まさに論争の真ん中です。3つ目は、ソシュールの理論でもチョムスキーの理論でも、うまく説明がつきません。
おまけ:入れ子の文を、プログラムで作ってみる(読み飛ばしてOK)
2章で見たような、文の中に文が入っていく仕組みは、プログラムでも書けます。
規則から文を作るという考え方は、プログラミング言語の文法の書き方(BNFなど)と、同じ形をしています。コンピュータに命令を伝える言葉も、この種の規則で決められています。言語学で整理された「規則から文を作る」という見方が、コンピュータの言葉の文法の書き方にも受け継がれている、というわけです。
実際に、20行ほどで動く例を置いておきます(JavaScriptです)。
// 規則は、たった3種類。これだけで、入れ子の文が作れる。
const grammar = {
文: [["名詞", "が", "動詞"], // 猫が鳴いた
["名詞", "は、", "文", "と", "言った"], // 太郎は、(文)と言った
["名詞", "は、", "文", "と", "思った"]], // 花子は、(文)と思った
名詞: [["猫"], ["太郎"], ["花子"], ["先生"]],
動詞: [["鳴いた"], ["笑った"], ["走った"]],
};
function generate(symbol, depth = 0) {
const rules = grammar[symbol];
if (!rules) return symbol; // 規則がなければ、そのまま出す
const next = symbol === "文" ? depth + 1 : depth;
const rule = (symbol === "文" && depth >= 3) // 入れ子が深くなりすぎたら、止める
? rules[0]
: rules[Math.floor(Math.random() * rules.length)];
return rule.map(s => generate(s, next)).join("");
}
for (let i = 0; i < 8; i++) console.log(generate("文"));
実行するたびに、結果は変わります。たとえば、こんな文が出ます。
太郎が鳴いた
先生は、太郎は、花子が鳴いたと言ったと言った
猫は、太郎は、先生が笑ったと言ったと思った
文の中に文が入り、その中にさらに文が入っています。使っている規則は、3種類だけです。
コードでは、読めなくなるほど深くなる前に止めています。でも、規則そのものには、入れ子の深さの上限がありません。「限られた規則から、無限の文が生まれる」という、チョムスキーの見方を、小さな形で確かめられます。
ただし、これは言葉の「形」を作っているだけです。意味は、何も分かっていません。「猫は、太郎は、先生が笑ったと言ったと思った」を、僕たちが読んで「変な文だな」と感じる、その感覚はどこから来るのか。本編の続きを、もう一度考えたくなります。
おわりに
ソシュールは、言葉の値打ちが、ほかの言葉との関係で決まることを示しました。チョムスキーは、限られた規則から、無限の文を生み出す人間の力に注目しました。
そして、AIという新しい鏡を前にして、僕たちは、昔からあった問いに、もう一度ぶつかっています。
機械のバグを直そうとしていたはずが、いつの間にか、人間の方を見つめていた。
あなたが「理解した」と言うとき、それは、上の三つのうち、どれのことですか?