対話から始まる世の中の変革、その土台となる技術(前編)
こんにちは。Cygnusです。
前回は、人が自然に話すように言葉の流れを理解し、前に話された情報を覚えて話を進めるための技術を紹介しました。(前回記事:https://future-tech-association.org/2018/01/16/kotoba_kioku_tech/)
少し大げさな(?)タイトルをつけた今回は、人と人の意思疎通、意思伝達の手段として最も身近な「対話」に着目し、人と機械のインターフェースとして大きな可能性を秘めている「対話」を可能とする技術を全2回に渡って紹介します。
豊富な知識に基づく自然な対話を目指して
対話システムの歴史は古く、最初は定型文や表現パターンの「発話」に対し予め決まった文やパターンの「応答」を返すというものでした。
発話)◎◎へはどうやって行けますか?
応答)△△から◎◎への交通機関を使ったルートを聞いていますか?
発話)はい。
応答)◎◎へは「~」のルートで行くことができます。
単純なパターンであっても、機械が答えやすいような質問に人の方で合わせて発話したり、機械もパターンにないからといってエラーを返すのではなく、推定される質問のパターンに誘導するような応答を返したりと工夫をすることで、ある程度実用に耐えられるものでした。
ただ、やはり発話のパターンに限りがあると使える人も限られてきますし、適切な応答を選び出せるような知識データベースを構築することで有用なものにする必要性が出てきました。多岐に渡る分野の発話に対して有用な対話システムを実現するには以下の技術が不可欠と考えられます。
①スムーズに意思疎通できる(発話も促進できる)自然な応答文生成
②適切に構築され、メンテナンスされていく知識データベース
それぞれの技術について、実例も交えながらどのように実現しているかを追っていきます。
自然な対話の実現
まずは、スムーズに意思疎通できる応答文の生成技術について記載します。
以前別の記事(https://future-tech-association.org/2017/12/13/natural_language/)でも記載しましたが、自然言語処理は、AIの進展に欠かせないディープラーニングにより実用的な発展を遂げてきています。その中でも機械翻訳の分野で目覚ましい成果を上げた「Sequence to Sequence Learning」(以下「Seq2Seq」)に注目が集まっています。これは文や文章のように並び順が重要な「系列」データを、入力の系列から出力の系列へ変換する手法で、「RNN:Recurrent Neural Network」、主にその拡張技術である「LSTM:Long short-term memory」と呼ばれるネットワークを入力側と出力側で組み合わせて実現するものです。
※RNN、LSTMについては、記事「言葉の流れを理解し、記憶する技術の発展」をご参照ください。
Seq2Seqの概要を記載します。
上図のように、入力側(Encoder:水色系列のLSTM)と出力側(Decoder:橙色系列のLSTM)の2個のRNNを用意して、それを中間層(図中の赤矢印)で繋ぎ合わせたものです。
「GO」は出力(Decode)の開始を表し、それが入力されたことでDecoder側に処理が移ります。「EOS」は終端記号を表し、それが出力されたら文が終了することを表します。
Encoderの系列での学習結果を中間ノードとしてDecoder側に渡し、Decoder側の予測結果を次の系列の入力に読み込ませていき、出力の系列を学習していきます。
この入力⇒出力のバリエーションにおいて、
「翻訳元言語の文章⇒翻訳先言語の文章」を学習すれば機械翻訳、「発話の文章⇒応答の文章」を学習すれば対話に応用することができます。
例えば、「仕事は順調?」「かなり良い感じです」という発話と応答があった場合、Encoder側で発話の単語「?」「順調」「は」「仕事」をベクトル化して順々に入力、その学習結果である中間層をDecoder側へ渡し、応答の予測結果を次の入力にしながら学習を行います。Decoderでは、最初に出力された「かなり」が次の入力となり、その後に出力された「良い」がまた次の入力となり・・と続いて、「EOS」の出力で終了します。
日本語を扱う場合、文の先頭よりも末尾の方が次につながる情報が多い傾向があるため、発話を逆順で入力するのがコツで、実際に精度が向上することが知られています。例を用いて説明します。
発話:最近寒いですが、風邪などにかかっていませんか?
応答:体調は万全です。
例えば上記の対話で言うと、「最近寒いですが」よりも「風邪などにかかっていませんか」が応答を予測するのに重要と判断できます。
実際の発話と応答の組み合わせデータを大量に学習させると、発話に対して自然な応答を出力できるようになる実績がでており、現在の対話技術の研究や商用利用においてSeq2Seqの利用が盛んに行われています。
この技術により、あくまで語の並びとして自然な応答は概ね実現できますが、正しい情報で応答するには、次に記載する知識データベースが重要となります。
豊富な知識に基づく応答
次に、適切な応答をするための知識データベースについて記載します。
実績のある事例として、膨大なユーザーに対して商用利用されているサービスで使われている技術について記載します。
・NTTdocomo しゃべってコンシェル
携帯端末から音声での発話により、天気・エリア情報、ニュース、画像・動画等コンテンツ、など多様なデータに簡単にアクセスできるサービスとして、多くの方に利用されています。このサービスを支える知識データベースがどのようなものかを記載します。
「知識検索エンジン」と名付けられたデータベースは、「DB型QAシステム」と「検索型QAシステム」の2つで成り立っています。
まず「DB型QAシステム」は、質問文の解釈結果によってDBを検索するものとなっており、代表的なものにEntity-Propertyタイプの解釈方法があります。これは、ある対象物(Entity)の属性情報(Property)を聞くような質問に対応できるものです(たとえば、『Entity:渋谷区の面積、Property:15.11平方Km』のようなもの)。このEntity-Propertyの組をDBに保持しておくことで、応答を獲得することができるものですが、DBでヒットしなかった場合に、「検索型QAシステム」に処理を移します。
「検索型QAシステム」は、質問文のタイプを判定し、タイプに応じてWeb検索を実施の上応答候補をランキング表示するものです。質問タイプは、以下のようなものがあります。
・Factoid型:単語程度の短い応答を求める
・真偽型:Yes/Noを答える
・定義型:長めの文による応答を求める
・理由型:理由を求める
代表的なFactoid型のものについて記載すると、人名、地名、組織名、数値など何を聞く質問なのかを判定の上、質問文から抽出したキーワードの組み合わせでWeb検索を実施し、検索結果から人名や地名など必要なものを特定して応答します。
発話:日本一広い県はどこですか?
県名を聞く質問と判断し、Factoid型として処理する。
このように、予め構造化されたDBとそれ以外の知識としてWebを活用することで、有用な応答を獲得しています。
・IBM Watson
アメリカの人気クイズ番組でクイズ王に勝利したことでも知られる「IBM Watson」は、医療や臨床、裁判の判例、さらに人材マッチングなど専門的な分野に対し、深い洞察による人間にとっての最適解を得ることを目的としたシステムです。各種分野の知見をコンピューターが扱えるように構造化したデータを「知識ベース」と呼び、人手による質の高い情報のインプットと、専門家の解釈方法を機械学習を通じて高めていることで育てていきます。
「知識ベース」の構築方法は大きく分けて2つあります。1つ目は、対話フローとその対話の目的(意図)をインプットし、適切な対話を可能とする方法です。「質問」とその「意図」、それに対する「応答」のペアをインプットしてそれを機械学習し、専門家のレビューをフィードバックすることで精度を高めていきます。これは、「情報がただあるだけでなく、どの意図でどんな流れで使われるかで『専門家の解釈』を疑似的に取り込む」という考えをベースにしています。(ここでいう『専門家の解釈』とは、例えば医療であれば医学書の知識よりも医師による症例検討・決定の知識・プロセスを取り込んで行くもの)
2つ目は専門的な文書(書籍、論文やWebページ、固有データ(医療の臨床データや人材のマッチングデータ等))に対し人手でアノテーション(ラベル付けのようなもの)し、機械学習とフィードバックにより精度を上げていく方法です。
GUIを使って文書の単語や文節にアノテーションし、まずはEntity(主に名詞)を識別します。その後にEntity間の関係(同一、反対、内包など)を入力することで、人がEntityをどのように識別しどのような関係を定義しているか、機械学習を繰り返すことによりEntityの識別と関係性の識別が自動的にできるようになっていくものです。
このようにシンプルなインプット・フィードバックの仕組みにより、日々増加・変化する大量のデータに対して専門家の解釈や人手同様の識別を適用しながら取り込んで行きます。これにより教科書的ではない実践的な考察として学習していくことで知識ベースの質を高め続けるシステムとなっています。
次回に向けてのまとめ
今回ご紹介したような、ディープラーニングの技術による自然な対話と、知識データベースによる適切な応答を組み合わせた手法は、世界中で研究されています。研究者が推進する手法の発展と、産業界で日々創り出される大量の実践データの学習、この両輪が非常に重要になってきます。
次回は、世界中から産学の研究者が集うSIGdial(談話・対話研究の国際会議)2017における研究をご紹介しながら、対話システムで開拓していく将来の展望について記載する予定です。
参考記事
- Sequence to Sequence Learning with Neural Networks
- Attention Seq2Seqで対話モデルを実装してみた
- 自然言語処理の概要と展望
- 言葉の流れを理解し、記憶する技術の発展
- 実サービスにおける音声認識と自然言語インタフェース技術(<特集>音声対話システムの実用化に向けて)
- Lexical Acquisition through Implicit Confirmations over Multiple Dialogues
- IBM Watson の仕組み:機械学習で洞察の精度を高める(前編)
- チャットボットの性能を左右する? IBM Watsonの「知識ベース」とは
- SIGdial 2017