シリコンバレーで試行される、機械に言語を教える方法

5a9f5bb00af9080e15b03b321a8e20f1
Image by Anton Repponen via Attribution Engine. Licensed under CC0.

人間のようにコミュニケーションするコンピュータやロボットの構築は何十年にも渡る夢であった。

市場の動向や投資水準からもこれが望まれていることがよく分かる。Markets and Markets社は自然言語処理(NLP)産業が2021年までには16.1%増の160億7000米ドル市場になると発表、またディープラーニングについては 2022年には17億2000米ドル市場に達し、2016年から2022年にかけての年平均成長率は65.3%であると推定している。

もちろん、チャットボットで遊んだことがあれば、これがまだ達成されていない約束であることがわかるだろう。実際の人間とは話してはいないなと感じる「奇妙な谷」があり、一方で機械たちは私たちが言っていることの意味を「理解」はしていない。

たとえば、私が Poncho のようなひょうきん天気ボットを使用する時、「外出時には何を着るべきですか?」と尋ねたとしてもボットは「おっと、私はそれを理解できないです。お手伝いをするためには ‘help’とタイプしてください」と答えてしまう。しかし「外出に傘を持っていくべきですか?」と尋ねると「いいえ、カリフォルニアのサンタクララでは傘は要りません」としごく絶妙な答えが返ってくるのだ。

ただ少なくとも現時点の言語理解においてコンピュータは人間のやることが出来ない。成人した人間は当然ながら自分の母国語に対応できるようになる。曖昧な部分をすばやく把握し、代名詞が指し示すその前で話題になっていた「何か」を理解し、単語やフレーズの始まりと終わりを特定できる。コンピュータはこの次元では少なくとも大多数のユーザーを満足させられるレベルにまでは達してはいない。

機械が本当にインテリジェントなものになるには、言語ベースのコミュニケーションにおけるギャップが解決される必要がある。つまるところ、機械に真の言語能力を持たせなければ、真の人工知能(AI)はないのだ。

機械による言語理解は AI の至高の目標であり、これを解決した企業は想像を絶する収益を得ることになるだろう。

機械学習とニューラルネットワークは、自然言語処理の問題に対してますます頻繁に適用されている。このアプローチは、しばしば AI と呼ばれる有用なアプリケーションを生み出す。しかし、意味のある会話や人間とコンピュータとのやり取りにおける問題を解決するわけではない。つまり、AI に期待される「知性」はまだ欠けているのだ。

意味を探し続ける

機械翻訳の場合の言語アプリケーションの限界は即座に思い出される。Google Neural Machine Translation は最近の進歩改良により人間の翻訳と並べて比較した場合、翻訳文作成でエラーが60%削減されるという結果を叩き出し、パフォーマンスを非常に向上させた。

しかし、まだ「The dog that ran past the barn fell」というような簡単な文章を中国語に訳しその後英語に訳し直した場合、元の文章にはならない(「The dog ran past the barn」という近いものにはなる)。

Microsoft が最近買収した Maluuba のように、大量の複雑なテキストをリアルタイムで読み込んで理解できる AI システムを作りたいと考えている他の企業は、何千もの条項に対応する人為的な質問と回答のデータセットを作成するために人的・物的資源を費やしている。

彼らの目標はコンピュータが満足のいく結論を出し、研究者が他のテキストから抽出した正しい答えを導き出すための適切なアルゴリズムを作成することなのだ。

ただ、これらのアプローチの問題は「意味」というものがが翻訳から除外されていることだ。

本当のことを言ってしまうと単語がどのくらいの頻度で出現するかを分析しながら巨大なボキャブラリを処理することは、言語コミュニティの言語使用パターンに関する情報は提供するかもしれないが、特定のフレーズや会話についての意味については何も決定的な情報はもたらされない。

「この特定の文は今ここではいったい何を意味しているのか」ーーそれを知る必要があるのだがこのレベルで失敗するシステムでは、自然言語理解(NLU)の問題を本当に解決していない。

もし私が「時間が「1la」になったのでお腹すきましたよね、一緒に何か食べましょう」と言えば、言われた人は昼食時で空腹だから一緒に食事に行くことに同意するだろう、と私は確信している、

しかしコーパスの学習アルゴリズムを適用して訓練された機械では上記の文をまったくありえない文とするので理解されず、拒否または無視されてしまう。学習アルゴリズムを備えたボットは「わかりません、ヘルプキーを押してください。」と応答するだろう。

これは、問題を指摘するための極端な例である。

しかし根本的に言えば、私たちが言うことを理解するよう教え、コーパスによる言葉の頻度分布にではなく、私たちの言うことに応えようとさせるなら、人間の言葉をコンピュータに教えるための別のアプローチが必要になるのは明白なのだ。

人間のように学ぶ

巨大なデータからパターンを学習しようとするのではなく、人間が言語を学習する過程を見直すことで NLU の難問を解決する必要がある。人間が意味を伝達するためにどのように言語を取得し操作するのかを理解することによって、このプロセスの模倣を作ることができるのだ。

大まかに言えば、成人はわずか4,000語の語彙でコミュニケーションができる。日常会話とコミュニケーションにおいては、現実の物や人、プロセス、および文脈の中で、これらの言葉がどのように組み合わされているかによってうまく働く。

この能力は、何千もの本がある部屋に人を拘束し、語の配列パターンとそれぞれの確率を知るように求めることによって達成されるものではない。むしろ私たちは一人ひとりが実際の生活時間の中で出会うあらゆる言葉やフレーズを意味を持ったものにまとめることで言語を学ぶ。

言葉は私たちの脳の中で、実際の世界の何かにもマッピングされていた経験と合致した時、意味を持つのだ。「痛い」という言葉は意味を持つ。なぜなら私たちは痛みを感じ、既に痛みを経験しているからだ。 「傷つける」という言葉は、「傷ついた」という体験を表現する聴覚素材である。

興味深いことにたとえ文法でさえ、直接的に意味によってマッピングされることが分かる。

私たちは心の中で「だった」というのは過ぎ去ったものを言い、「している」というのはこの瞬間に占める空間(時間)の話であると感じているので、「昨日空腹だった」と「今空腹である」とは別物であるとわかっている。 実のところ私たちは伝えられている経験を「感じる/感知する/知る」で表すために文法の要素を使う。

文法自体は抽象的なものではないが、私たちがどのようにして言語を通して意味を体験するか、という点について重要な部分を握っているのだ。

コンピュータに会話能力と言語を教えるためには、言語をコンピュータ内の何らかの意味表現につなげる必要がある。 そうすることによってのみ真の AI や人間と似た言語の機械とのやり取りが実現する可能性がある。

機械に言語を理解させるプロセスは、機械に「知られている」意味にどの単語やフレーズがマップされているかを特定付けるものになる。そして機械の言語学習は、特定のものが意味することを発見する(または人間が教える)プロセスになるのだ。

会話モデルの作成

シリコンバレーにはこの課題を解決しようとする企業が多く集まっている。カリフォルニア州パロアルトの Pat Inc.など、私がここに示したアプローチを実際に採用している企業もあり、ここでは自然言語理解アプリケーションプログラムインターフェイス(NLU API)内の汎用辞書に格納されている意味にフレーズを直接関連付ける手法を開発している。

Wit.ai は、Facebook が Messenger プラットフォームを強化するために買収した神経言語プログラミングーー自然言語理解(NLP-NLU)プラットフォームで、新しい会話モデルをトレーニングしたり、ユーザーとプラットフォーム間のやりとりをモニターするためのツールセットをリリースしている。

カリフォルニア州サンノゼに本社を置く Viv は、最近 Samsung が買収した機械学習プラットフォームであり、これを使えば開発者はインテリジェントで会話型のインターフェースをあらゆるものに組み込むことができる。

将来は有望であり、シリコンバレーに拠点を置く企業の初期における驚異的な成果は既に経験済みである。このように私は人類が言語に近づく方法に集中的に焦点を当て続ける限り、今後数年間で機械への人間言語の教育は大きな進歩を遂げると見込んでいる。

【原文】
【via VentureBeat】 @VentureBeat

----------[AD]----------