2019年

機械学習(正確には深層学習/ディープラーニング)を使用した自然言語処理の入門書を読むと、現在の機械学習は単語や文章の「意味を理解せずに」学習したり、推論したりするようだ。
「現在のAIは意味を理解できない」という類の言及はよく耳にするが、意味が理解できなくとも自然言語処理ができるというのは、少々驚きであるとともにかなりの違和感を感じる。
この違和感は、機械学習を人間に置き換えてみれば明らかである。単語や文章の意味を理解できない人間が、他人と会話をしたり、文章を要約する場面を想像すれば誰もが違和感を感じるだろう。
さらに、ある書籍には、「自然言語処理の本質的問題はコンピュータに私たちの言葉を理解させることである」と書かれているのだから、益々混乱する。
私はAIの専門家ではないので、以下、私の大雑把な理解の範囲で書き進める(専門技術という観点からは間違いがあるかもしれない。この点はご容赦ください。)
それでは、現在の機械学習は、意味が理解できないのに、どのようにして自然言語処理を行っているのだろうか?
自然言語処理の基本的な部分は、推論ベースの手法とよばれるものである。そして、この推論ベースの手法は、「分布仮説」に基づいている。分布仮説とは、単語の意味は周囲の単語によって形成される(単語の意味はコンテキスト(文脈)によって形成される)というものである。
この説明だと分かり難いので具体例をあげてみる。例として「私は昨日友人と一緒に公園にXX」という短い文章を考えてみる。この場合、「XX」に入る単語は「行った」である(そのほか、「行かなかった」なども考えられるが・・・)。
このように、XXに入る単語は文脈から形成される(推論できる)ということだ。
同様に、「私は昨日友人と一緒にXXに行った」などの例が考えられる。この場合、XXに入る単語は、「公園」に限らず、「海」とか「学校」とか「お店」など、いろいろ単語が思い浮かぶが、目的語以外の名詞は入らないと考えられる。すなわち、XXに入る単語(の候補)はその文脈から絞られてくる。
さらにこの文章の前後の文章までをコンテキストに含めれば単語の候補はもっと絞られてくるだろう。 

では、機械学習(正確には言語モデル、ニューラルネットワーク)が文脈から単語を推論できるのはどのような仕組みによるのだろうか?
これは、「コーパス」と呼ばれる大量の文章(例えばウィキペディアのような大量の文章)を学習させることで実現している。ニューラルネットワークはコーパスにおける単語の出現パターンを学習し、その結果として単語や文章のベクトル表現が得られる(単語の意味に相当するものをベクトルにエンコードする)。(自然言語処理の分野では、単語の密なベクトル表現を、「単語の埋め込み」とか「単語の分散表現」と呼ぶそうだ)
ニューラルネットワークが学習した結果得られる単語ベクトルは、単語の意味とは異なる(と思われる)。これは単語間の類似性だとか単語間のパターンのようなものだろう(多分)。
このあたりは少々抽象的で分かり難いので、このような推論ベースのアプリを使った例を書籍から引用する。有名な類推問題に「king - man + woman = ?」というのがある。
答えは「queen」である。コーパスで学習したニューラルネットワークはこの答えを導き出せる。(正確には、答えとしてどのような単語があてはまるのか、該当する単語とその確率を算出することができる)
ここで注意が必要なのは、どのようなコーパスを使うかで単語ベクトルは異なってくるということ(従って回答を導き出せないケースも考えられるであろうということ)と、ニューラルネットワークは「king」や「man」の意味を理解しているわけではない、という点である。個々の単語の意味は理解できていなくとも、単語ベクトル間の類似性や、単語ベクトルの加減算などの処理を行うことで、回答として確率の高い単語を推論できるということだろう。この例を見ても明らかなように、この仕組みは人間の言語理解とはずいぶんとかけ離れていると感じる。

ヴィトゲンシュタインは、語の意味は言語における使用(use)にあると説いたそうだ。「意味」には普遍性がなく、あるのは記号(語)とその使い方や、使い手の意思に関わる状況だけだという。言語(すなわち記号)を学ぶとは、社会のなかでその語の「使用法」を学ぶことに他ならないという。
この考え方は機械学習の仕組みに近いようにも感じるが、はたしてどうなのだろうか?(私には良く分からない)

一方、言語学や言語脳科学の観点から、現在の機械学習の仕組みに対して疑問を投げかける識者もいる。以前紹介した「チョムスキーと言語脳科学」(酒井邦嘉:著、集英社インターナショナル)には以下の指摘がある。
「自然言語処理という人工知能の主要な一分野は、当初は言語学の成果を取り入れて発展したにもかかわらず、その後、袂を分かつことになり、いまだ融和の兆しが見えない」
これは、コンピュータを使った自然言語処理が、当初はシソーラスをベースに研究・開発が進められていたが、やがてこの方法の限界から、コーパスを使用した統計的手法(推論ベースの手法)に舵を切ったことを指摘しているのだと思われる。
シソーラスとは、単語の意味や、単語間の階層構造を格納した辞書のことである。当然のことながら、単語やその意味は時間の経過とともに変化する。従って、シソーラスは常にメンテナンスしていかなければならない。このメンテナンスにかかる労力を考えるとこの方法は現実的ではないことが分かる。
先の書籍では、人工知能が言語をうまく扱えない本当の理由として以下を指摘している。
「自動翻訳で広く使われている技術は、二言語間の膨大なデータに基づいて単語どうしのマッピングを行うものである。人間のように文意や発話意図の解釈に基づいて翻訳するわけではない」
「木構造で成り立っている文を、先読み処理(線形順序)だけで扱うのは原理的に不可能である」
これは、自然言語は(言語学的には)基本的に木構造になっていることを指している。
このように言語学の(あるいは統辞解析の)観点から、いまいまの機械学習の仕組みには限界があるとみているようだ。この指摘は私たち「普通の人間」の感覚に近いと思う。

機械学習が単語や文章の意味を理解しているか否かを確かめる方法はあるだろうか?
私が一つ思いつくのは、以前紹介した「大人のための国語ゼミ」(野矢茂樹:著、山川出版社)にある「文の接続(つなぎ)」に関わる例題である。
この書籍で著者は文のつなぎには「語調モード」と「理解モード」があると指摘している。語調モードとは、文の調子だけを感じ取る読み方であり、理解モードとは、その名のとおり文章の意味を論理的に解釈する読み方である(簡単に言うと、ボーッとして読んでいるのか、文章の論理を追いながら読んでいるのか、の違いである)
現在の機械学習は語調モードだと思う。従って、「語調モードでは正しくみえても理解モードでは間違っている文章」は苦手なのではないかと想像する。(これはあくまで私の推測です)

話は少し変わるが、「合成性の原理」というのも考察に値するテーマだと思う。
合成性の原理とは、「文の意味は各単語の意味を足したものである」という考え方である。この考え方も、単語の並びを時系列に学習し、推論するという観点から、現在の機械学習の方法に近いと感じる。
しかし、認知言語学ではこの原理を否定している。認知言語学では、「意味とは、ことばの足し算を超えた知識(フレーム知識)に支えられ、対象や事象を主体的に概念化したものである」と考えている。
確かに、母語の背景には、言語共同体の経験や価値観あるいは信念などの文化がある。ことばの意味を正しく理解するためには、その母語の背景にある文化を知る必要がある。
このあたりが自然言語処理にどのように関係してくるのか、私にはまだ良く分からないが・・・。

最近は「ことばの意味を理解できない」若者が増えているという記事を良く目にする。
例えば、日経ビジネスには「9時10分前を理解できない若手・・・」のような記事がでている。これは、「9時10分前には集合するように」と注意しても、その意味を理解できない若手がいるという話である(9時10分前が8時50分を意味していることが分からない、ということらしい)。
ちょっと驚いたが、この手の話(例)がいくつも出ている。
こうなると意味を理解できない機械学習の方が人間よりも優秀だと言われても仕方がないか・・・。

(追記)

日経コンピュータ誌(2019/12/12)にAIの特集が出ていた(自然言語処理に関わる記事もある)。
そのなかに、「ついに読解力も人超え・・・」なる記事があり、「BERTに日本語の文章を学習させれば、日本語の文章の意味を理解できるようになる」との記載がある。
私はBERTなるものを全く知らないが、本ブログ記事に記した通り、今の機械学習は「原理的」に「意味を理解せずに」、統計的に(あるいは確率的に)単語や文章を処理しているのではないかと思うのだが・・・。
私のモヤモヤは解消されないままだ。

 

Update

2019年1月
« 12月   2月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

Navigation