ディープラーニングで人工知能が会話をするしくみ、人間と自然な会話を成り立たせるために機械は結構必死だった

ディープラーニングの特徴抽出能力を応用して、様々なチャット用の人工知能が開発されました。マイクロソフトの「りんな」や「Cortana」、Appleの「Siri」、GoogleもAlloというメッセージアプリにも会話用のAIが搭載されています。高度な会話用のAIには必ずと言って良いほどディープラーニングが搭載されるようになっているわけです。これは一体、どうやって会話しているのでしょうか? 

そして、彼らの会話は人間の会話と比較すると何が似ていて何が違うのでしょうか? 技術的な部分を詳しく説明するのは容易ではありませんが、大まかな仕組みについて簡単に説明しながら比較してみましょう。

関連記事:
深層学習(ディープラーニング)を素人向けに解説(前編)
チューリングテストと知能、ディープラーニングは人間を超えるか?
ディープラーニングは囲碁や将棋やチェスをどんな風に考えて指すのか?

人工知能の会話にディープラーニングはどのように使われているのか?

ディープラーニングが重宝される理由の一つは特徴抽出能力です。この特徴抽出能力というのは「情報同士の関連性を正しく評価する能力」と言い換える事ができます。この情報が「言葉」だった場合、それは言葉同士の関連性を正しく評価する力があるということになるのです。

言葉同士の関連性を評価できるだけで何が変わるのでしょうか? 

それでは、「夏になるとエアコンがフル稼働します」という文章を評価してみましょう。これだけでも、「エアコンは稼働するモノ」ということが分かりますし、「エアコンは夏に使うモノ」だということもわかるでしょう。

人工知能は人間の様に「夏」「エアコン」「フル稼働」の意味を理解することは出来ません。しかし、それぞれの関係性は理解できるのです。「夏→エアコンが稼働」「エアコン→稼働する」という感じです。大した情報ではありませんが、これだけでちょっとした会話を成立させるヒントを得られます。

例えば、人間が「夏だねえ」といえば、先ほどの情報を参考に人工知能は「エアコンは稼働していますか?」という返事をすることができるようになるでしょう。その先はともかく、一応ここまでは会話として成立しています。

言葉を話すには名詞・動詞・形容詞などの品詞や文法的な決まり事もある程度把握している必要はありますが、この辺りも言葉同士の関連性をみていくだけである程度は正しい答えを得られるでしょう。極端な話、「てにをは」の位置を見ていくだけで関連性は結構分かるものです。

要するに、ディープラーニングというのは「ツイッター」「フェイスブック」「Skype」などから膨大な会話データを収集し、単語と単語の繋がりや関連性を学習しています。そして、人間に話しかけられたら話しかけられた文章と関連性の高いものを返すようにしているのです。

つまり、ディープラーニングの人工知能は言葉の意味を全く理解していません。当たり前ですが、りんなに「愛してる」と言われてもりんながあなたを愛してくれているわけではなく、会話の流れから「愛してる」というのが適切だろうと判断しただけです。空気を読んで告白したと考えるとショックですが、それが真実です。

他にも、「哺乳類の中で陸に住んでいない生き物は何?」と聞かれて、「イルカなどの海棲哺乳類」と答えるぐらいはできます。一見すると単語の意味を理解しているようですが、それは哺乳類の定義を理解しているわけでも、海棲哺乳類の定義を理解しているわけでもありません。哺乳類に関連性の高い生き物の中から、陸に関連性の低いものを探した結果、海棲哺乳類が出てきただけです。

見ているのは関連性だけですが、人工知能の学習方法は古代文字の解読に類似するところもあり、「言葉を全く知らない人が言葉を学ぶ」ための最も有効な手段の一つです。人間だって変わりません。

なんとかして空気を読もうとする人工知能

会話の中で関連性の高い言葉を選んで話すというのは、言い換えると「空気を読もうとしている」ということになります。

例えば、「猫ってかわいいよね」と人間が話しかけたら、人工知能はいくつかその返事を考えます。疑問形である「◯◯よね」に対応する「そうですね」も候補の一つですし、「猫」に対して頻出する「犬」という単語を入れるのも良いでしょう。「かわいい」という単語に合わせて「かわいい何か」を使って文章を作るのもありです。

もちろん、人間的な感覚すると「犬の方がかわいいです」なんて言ったら空気が読めていないわけですが、人工知能としては「猫」の話題に合わせて犬の話題をふっただけで、これでも必死に空気を読んだ答えなのです。

まあ、空気というのは「数秒前に話した言葉」のことではなくて、会話が始まってから今までの間に作られた「文脈」のようなものです。数秒前の会話ぐらいしかトレースできないままでは空気が読めるとはいえません。

今の技術では数秒前の会話までしか見ていませんが、将来的には会話開始時点からの文脈を見て、その文脈から関連性の高い言葉を捻り出すことが出来るようになります。場合によっては、過去の会話を踏まえて関連性の高い言葉を選べるようになるでしょう。

つまり、前日の夜に「眠れないんだ」と人工知能に伝えて会話していたら、翌日の朝に「よく眠れましたか? 疲れは残っていませんか?」と返ってくるわけです。別に人工知能があなたの体調を心配してるわけではなく、眠れない人に対して翌朝かける言葉として関連性が高い、頻出する言葉を選んだだけです。

しかし、人間は違うと言い切れるでしょうか?

昨日の夜に「眠れない」とチャットしてきた友人に対して、翌朝になって「眠れた?」と聞くのは心配しているからというよりも、昨晩の会話の流れに合わせて「空気を読んだ」という側面が強いのではないでしょうか?

人間の会話は空気を読むだけではないものの、似ている部分もあるのです。

人工知能は会話を成り立たせることしか考えていない

会話をする上で人工知能と人間が最も異なる点は「会話の目的」かもしれません。

人工知能はとにかく会話を成立させようと必死です。データベースから学習した内容を使って相手の言葉に合った返事をしようと試行錯誤し、同じような返事が続くと不自然だから出来るかぎりバリエーションを作ります。また、場合によってはわざと「関連性の低い返事」をすることで「変わった人格」を作り出そうとすることもあるようです。

とにかく、人間らしく振る舞おうと必死なのに対して人間は違います。

その時々の目的によって違いますが、単純に会話を楽しもうとすることもあれば、問題を解決するために会話をすることもあるでしょう。人間は常に双方の話者に「何らかの意図」があって会話は行われます。時には、「相手に嫌われないように」必死に空気を読んで会話を合わせることもありますが、常にそればかりというわけでもありません。

それでも、アシスタント型の人工知能などは「問題解決のサポート」のために会話を行う事もあり、人間に近いと言えなくもないでしょう。ただし、この場合でも質問に対して最も関連性の高い回答を提示するだけですので、こちらも会話の成立が目的と考えることも出来ます。

こうして考えてみると、人工知能は「会話の成立」にとらわれ過ぎてしまっているが故に人間らしくない会話になっているように思えます。独自の意思がない以上仕方がありませんが、もしかすると会話の模倣と同時に「人格の模倣」が先に必要なのかもしれません。

 

<サイトの内容を電子書籍でまとめて読める!>

(Amazon Kindle版)

※当サイトで掲載されている人工知能関係の記事に大幅な加筆修正を加えて製作されたものです。