自然言語対話システム

今日の内容
自然言語処理システム特論
Natural Language Processing Systems
第11回
2016/6/29
芝浦工業大学 工学部 情報工学科
杉本 徹
[email protected]
• 自然言語対話システム
– 対話システムの歴史
– 対話システムの分類
– 対話システムの構造
– 対話システムの処理方式
– プランに基づく対話処理
• プランニング,プラン認識
• 輪講とレポート課題について
(音声)対話システムとは?
• ユーザによる一連の自然言語入力を「理解」
し,それに対して「適切に」応答するシステム
自然言語入力
(音声,タイプ入力)
応答
(音声)
対話
システム
• 特に,音声でやり取りするものを 音声対話
システムと呼ぶ
– 音声対話システム特有の課題
• 音声認識(不確実性への対処),音声合成
• より口語的な入力表現の理解(省略,言い淀みなど)
ELIZA [Weizenbaum 1966]
• 心理カウンセラの役割を演じる対話システム
• 例: Doctor: Please, describe your problems.
User : I'm in trouble.
Doctor: Why do you say you are in trouble?
User : I want you some advice.
Doctor: Is It because of your plans that you say
you want me some advice?
• 入力の表層的パターンに基づいて適当に生
成した応答を返すだけ(「人工無脳」の元祖)
• Emacs 「Esc-x doctor」で試すことができる
対話システムの歴史
• ELIZA
• SHRDLU
• その後の対話システム
SHRDLU [Winograd 1972]
• 積木の世界におけるユーザから
の指令や質問への応答を行う
• 例:Person: PICK UP A BIG RED BLOCK.
Computer:
Person:
Computer:
Person:
Computer:
Computer:
Person:
Computer:
Person:
Computer:
OK. (does it)
GRASP THE PYRAMID.
I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.
FIND A BLOCK WHICH IS TALLER THAN THE ONE
YOU ARE HOLDING AND PUT IT INTO THE BOX.
BY "IT", I ASSUME YOU MEAN THE BLOCK WHICH IS
TALLER THAN THE ONE I AM HOLDING.
OK. (does it)
WHAT DOES THE BOX CONTAIN?
THE BLUE PYRAMID AND THE BLUE BLOCK.
WHAT IS THE PYRAMID SUPPORTED BY?
THE BOX.
1
その後の対話システム
• データベース検索インタフェース(1980年代)
• 音声認識技術の発展(1970~90年代)
• 音声対話システムの実験,実用化
– MIT Voyager システム(地理案内) 1990年前後
– DARPA ATIS(航空券案内) 1990年代
– Rochester TRIPS(経路計画) 2000年前後
– コールセンターの自動音声応答(IVR)
• 一問一答型の音声対話システム
対話例1
• MIT Voyager システム(地理案内)
User
: Can you tell me how to get to the Chinese
restaurant?
Voyager: Where are you?
User : I am near a bank.
Voyager: I know of many banks. Can you specify which
one you mean?
User : The one on Main Street.
Voyager: The only bank on Main Street that I know of is
the Baybank at 226 Main Street in Cambridge.
The Chinese restaurants that I know of are
Hong Kong and Royal East.
対話例2
• Darpa Communicator システム(航空券案内)
SYS : What airport woodja like to fly out of?
USER: MIAMI FLORIDA
Voyager: Leaving from Miami,
And, what city are you flying to?
User : MINNEAPOLIS MINNESOTA
Voyager: Flying from Miami to Minneapolis,
What date would you like to fly?
User : UH MONDAY OCTOBER TWENTY THIRD
Voyager: Leaving on the 23rd of October,
And what time didja wanna leave?
User : UH LATE MORNING
対話システムの分類
• 対話の目的,主導権,情報の
形式,順序の自由度,モード
などによる分類
対話の目的
• タスク指向型対話(task-oriented dialogue)
– ユーザが何らかのタスクを遂行する目的を持ち,
システムもその目的のためのサービスを提供する
– タスクの種類: 情報検索,情報伝達(予約など),
物理的行為(旅行など)
• 非タスク指向型対話(雑談)
– 目的がはっきりと決まっていない対話
(対話すること自体が目的)
対話の主導権
• システム主導
– システムが決まった手順でユーザから情報を順次
引き出すことによって対話の目的を達成する
• ユーザ主導
– ユーザが自発的に質問や要求を入力し,システム
がそれに応答していく
• 混合主導
– 話の流れに応じて対話の主導権が移動する
• 例: システム主導対話の後,ユーザに主導権を渡す
2
参照する情報の形式,対話の順序
• 対話で参照される情報の形式
対話のモード
• タイプ入力
– 関係データベース
– 一般の知識表現 (フレーム,意味ネットワーク等)
– 自然言語テキスト
• 対話の順序
– 必須項目のやり取り中心 ⇒ 順序固定も可能
– 任意項目が多い場合
⇒ 順序に柔軟性が必要
– 項目立てができない場合 ⇒ ユーザ主導で
– ある程度推敲された入力を期待できる
• 音声入力(音声対話)
– 音声認識(不確実性の増大)
– より口語的な表現(省略,言い淀みなど)
• マルチモーダル対話
– 言語以外の情報(視覚情報など)を入出力に併用
– 顔の向き,視線,ジェスチャー,表情など
対話システムの構造(タイプ入力)
対話システム
対話システムの構造
応答出力
• タイプ入力の場合
• 音声入力の場合
タイプ入力
(文字列)
言語
生成
応答内容
言語
理解 意味表現
推論
知識
計画
立案
文脈情報
応答
内容
決定
情報検索
・
操作実行
対話システムの構造(音声入力)
音声対話システム
応答出力
言語
応答
音声 表現 言語 内容
合成
生成
音声
言語
音声入力 認識 認識 理解 意味
結果
表現
推論
知識
計画
立案
文脈情報
応答
内容
決定
情報検索
・
操作実行
対話システムの処理方式
• 状態遷移方式
• 知識駆動方式
• プランに基づく方式
3
状態遷移方式
知識駆動方式
• 対話の流れが固定的な場合の処理方式
• 例: 航空券予約システム
– 例: フレーム型知識表現における slot filling
その他
の入力
出発地はどこですか?
空港名の入力
その他の入力
目的地はどこですか?
空港名の入力
空港名を入力して下さい
空港名の入力
その他の入力
出発日は何日ですか?
• 領域知識の構造に対応した制御を行う
空港名を入力して下さい
空港名の入力
スロット名
スロット値
必須性
地域
?
必須
最寄り駅
?
任意
客室タイプ
?
任意
料金の制約
?
任意
その他
の入力
プランに基づく方式
• 発話行為(speech act)の考え方
– 全ての発話は何らかの目的を持って行われる
• ユーザの発話の理解 ⇒ プラン認識
– 入力内容の背後にあるユーザの意図(目標)や
プランの全体像を推測する
• 応答内容決定・生成 ⇒ プラン生成・実行
– システム自身の目標(多くの場合,ユーザの目標
達成支援)を達成するためのプランを作り,その
一環として,応答出力(や操作・検索実行)を行う
参考1: 対話に関する理論
• 発話行為論(Austin, Searle)
– 例: 「水をください」 → 発話行為タイプ = 依頼
命題内容
= 水を渡す
– 適切性条件,間接発話行為,…
• 協調の原則(Grice)
– 量の公理,質の公理,関連性の公理,様態の公理
• 談話構造(Grosz)
– 言語構造+注意状態(焦点)+意図構造(プラン)
• 共同行動,共通基盤,話者交代,…
ホテル検索システム
確率モデルを用いた対話制御の最適化
• 対話制御の困難さ
– 対象タスクが変わるたびに,制御用のルールや
パラメータの再設定が必要
– 例1: 曖昧な事項の確認戦略
– 例2: 対話の主導権(システム,ユーザ,混合)
• 事例(コーパス)に基づく対話制御の最適化
– 教師あり学習(supervised learning)
– 強化学習(reinforcement learning)
参考2: 雑談対話システム
• コミュニケーション自体が目的
→情報機器やロボットと人間の新しい関わり方
• 言語理解,応答生成,対話制御
– 広範な話題に対応するため,タスク指向型対話システム
とは異なる技術が必要
• ユーザ適応
– ユーザの嗜好の把握,発話内容の記憶など
• 個性(一貫性)
– 性格,感情,言葉づかいなど
• 評価方法?
4
協調的応答とプラン認識
• 例:
プランに基づく対話処理
乗客: 京都行きの列車は何時に出ますか?
駅員: 12時30分,16番ホームからです.
• 相手の発話の背後にある意図やプランを認識する
ことにより,
– 表面上要求されている以上の情報の提供
– 相手のプランに含まれる問題の指摘や代替プランの提案
– 間接的発話の意図理解や,省略補完,参照解決
1.プランニング
2.プラン認識
などが可能になる
プランニング(プラン生成,計画立案)
• プラン(計画)とは?
1.プランニング
– 目標とする状態や行動を実現するような,プラン
オペレータ(可能な動作)の系列
• プランオペレータの構成
プラン名
前提条件
プラン実行のための必要条件
制約
プランの適切さを保証する条件
行為本体
基本行為またはプランの系列
効果
プランによって達成される状態
• プランライブラリ
プランオペレータの例
• 積木の世界
プランニング(プラン生成)
• 単純なアルゴリズム
– 積木 x を場所 from の上から to の上へ移動する
プランオペレータ
プラン名
Move(x, from, to)
前提条件
On(x, from) ∧ Clear(x) ∧ Clear(to)
制約
Block(x)
行為本体
―
効果
On(x, to) ∧ Clear(from)
Clear: 上部が空いている
目標リストの初期設定
目標リストから目標を1つ選ぶ
存在しなければ
終了(成功)
その目標を達成できる
プランオペレータを1つ選ぶ
存在しなければ
終了(失敗)
そのプランオペレータの前提条件および
行為本体の内容を目標リストに追加し,
効果の内容を目標リストから削除する
5
列車旅行のプランオペレータ
プランニングの例
C
• 積木の世界
A
B
• 列車旅行
– 現在の状態: Block(A), Block(B), Block(C), On(A, Table),
On(B, Table), On(C, B),Clear(A), Clear(C), Clear(Table)
プラン名
TakeTrainTrip(agent, train, dest)
行為本体
BuyTicket(agent, clerk, ticket)
Board(agent, train)
dest = to_station(train)
train = for_train(ticket)
At(agent, dest)
制約
– 目標: on(A, B)
– プランニング:
on(A, B)
↑
Move(A, from, B)
↑
Clear(B)
↑
Move(x, B, to)
効果
from = Table
• 乗車
制約
At(太郎,京都)
発話行為のプランオペレータ
• 情報伝達
TakeTrainTrip(太郎,のぞみ29号,京都)
Board
(太郎,のぞみ29号)
GoTo
(太郎,16番ホーム,12時30分)
• 依頼
GetOn
(太郎,のぞみ29号)
参考: BDIアーキテクチャ
• 合理的な行為者のモデル
• 情報伝達
Beliefs
Actuators
Reasoner
Intentions
Inform(speaker, hearer, prop)
Believe(speaker, prop)
効果
Believe(hearer, prop)
プラン名
Request(speaker, hearer, action)
前提条件
Intend(speaker, action)
効果
Intend(hearer, action)
制約
Agent(action, hearer)
プラン名
Inform(speaker, hearer, prop)
前提条件
Believe(speaker, prop)
効果
Believe(hearer, prop)
Desires
• 依頼
外界(環境)
プラン名
前提条件
発話行為のプランオペレータ
行為者(エージェント)
Sensors
Board(agent, train)
GoTo(agent, gate, time)
GetOn(agent, train)
gate = depart_gate(train)
time = depart_time(train)
x = C, to = Table
プランの例(京都へ行く)
BuyTicket
(太郎,駅員,切符)
プラン名
行為本体
Plan Library
プラン名
Request(speaker, hearer, action)
前提条件
Intend(speaker, action)
効果
Intend(hearer, action)
制約
Agent(action, hearer)
6
発話行為のプランオペレータ(続き)
• 真偽情報
伝達
• 値情報
伝達
プラン名
InformIf(speaker, hearer, prop)
前提条件
BelieveIf(speaker, prop)
行為本体
Inform(speaker, hearer, prop)または
Inform(speaker, hearer, ¬prop)
効果
BelieveIf(hearer, prop)
プラン名
InformRef(speaker, hearer, term, prop)
前提条件
BelieveRef(speaker, term, prop)
行為本体
Inform(speaker, hearer, prop)
効果
BelieveRef(hearer, term, prop)
制約
Parameter(term, prop)
発話プランの例
BelieveRef(太郎,time,
time=depart_time(のぞみ29号))
InformRef(speaker,太郎,time,
time=depart_time(のぞみ29号))
speaker→駅員
Intend(駅員,InformRef(駅員,太郎,time,
time=depart_time(のぞみ29号))
Request(太郎,駅員,InformRef(駅員,太郎,time,
time=depart_time(のぞみ29号))
「のぞみ29号は何時に出ますか?」
プラン認識とは?
• プランニング(プラン生成)の逆のプロセス
– 観察された行動(発話など)から,行為者(話者)
の意図やプランの全体像を推測する
2.プラン認識
– 一種の仮説(説明)生成推論(abduction)
– 主なプラン認識手法
• 経験的な推論規則による方法
• 論理に基づく方法
• 数値的(確率的)なモデル
プラン認識ルールの例
ルール名
条件
結論
前提-行為
行為Aの前提条件が成立
してほしい
Aが生起してほしい
行為本体-
行為
Aの行為本体が生起して
ほしい
Aが生起してほしい
行為-効果
Aが生起してほしい
Aの効果が実現してほしい
目標-行為
他の行為者にAを意図して
ほしい
その行為者にAを実行して
ほしい
真知識
命題Pの真偽を知りたい
Pが真になってほしい
偽知識
Pの真偽を知りたい
Pが偽になってほしい
値知識
項tを含む命題Pの真偽を
知りたい
tの値を知りたい
Pの中のtの値を知りたい
tが関連する意図が実現して
ほしい
項知識
発話プラン認識の例
BelieveRef(太郎,time,
time=depart_time(京都行き列車))
「行為‐効果」ルール
InformRef(駅員,太郎,time,
time=depart_time(京都行き列車))
「目標‐行為」ルール
Intend(駅員,InformRef(駅員,太郎,time,
time=depart_time(京都行き列車))
「行為‐効果」ルール
Request(太郎,駅員,InformRef(駅員,太郎,time,
time=depart_time(京都行き列車))
「京都行きの列車は何時に出ますか?」
7
発話プラン認識の例(続き)
At(太郎,京都)
「行為‐効果」ルール
TakeTrainTrip(太郎,京都行き列車,京都)
「行為本体‐行為」ルール
Board(太郎,京都行き列車)
「行為本体‐行為」ルール
協調的な応答生成への応用
• プラン認識によって発話の背後にある相手の意図や
プランを理解し,そのプランの実現を支援するような
(例:必要な情報の提供)自分のプランを生成して
応答発話を作り出す
• 例: 「美術館行きのバスはどこですか?」
– 応答1:「3番乗り場です」
GoTo(太郎,gate,time)
– 応答2:「3番乗り場です.あと5分で発車します」
「項知識」ルール
BelieveRef(太郎,time,
time=depart_time(京都行き列車))
続き
• こんな対話もありうる
「美術館行きのバスはどこですか?」
「今日は美術館はお休みですよ」
「美術館の隣のレストランへ行きたいのです」
「失礼しました.バスは3番乗り場から発車します」
– 応答3:「今日は美術館はお休みですよ」
– 応答4:「美術館はお休みなので,博物館をお勧めします」
ここまでのまとめ
• プランに基づく対話のモデル化と処理
– 対話中のそれぞれの発話は,何らかの目標を達成するプラ
ンの要素として遂行される発話行為と考えられる
– プランニング(プラン生成)の過程を逆にたどるプラン認識の
推論により,発話者(対話システムのユーザ)が持つ意図を
理解できる
– その応用として,
• 要求された以上の協調的な情報提供
• 相手(ユーザ)の誤解の指摘や代替プランの提案
• 間接的な発話や断片的な発話の理解
などが実現できる
今日のまとめ
• 自然言語対話システム
– 対話システムの歴史
– 対話システムの分類
輪講とレポート課題について
– 対話システムの構造
– 対話システムの処理方式
– プランに基づく対話処理
• プランニング,プラン認識
8
次回から輪講
• 7月6日, 13日, 20日,27日
• 指定された論文の中から1つ選んで2~3人で担当
• 1つの論文内で担当範囲を分担し,それぞれ自分の担当範囲
のスライド作成および発表を行う.
– 各グループの発表スライドは,1つのファイルにまとめる
• 発表には,論文内容(の要約)の紹介および論文を読んで自分
が考えた考察を含めること.
– 発表時間 15分間 + 質疑 10分間
• 成績評価は,発表の内容 と 論文の理解度 を考慮して行う.
レポート課題
• 課題: 輪講で発表した論文の内容とこれまでの講義
内容を踏まえて, 自然言語処理システム
(「対話システム」のように限定してもよいし,
一般の自然言語処理システムを対象として
もよい) の現状評価と今後の展望を論じよ.
(構成の一例: 輪講で発表した論文の要旨と考察 +
より広い観点での考察)
• 分量: A4用紙 1枚程度
• 形式,提出法: MSワード形式,またはPDF形式の
ファイルをメール添付して杉本へ提出
• 提出期限: 8月2日(火) 23:59 まで (厳守)
9