自然言語処理システム特論
Natural
Language
Processing Systems
第11回 2019/6/26
芝浦工業大学 工学部 情報工学科 杉本 徹
[email protected]
今日の内容
• 自然言語対話システム –
対話システムの歴史–
対話システムの分類–
対話システムの構造–
対話システムの処理方式–
プランに基づく対話処理•プランニング,プラン認識
•
輪講とレポート課題について(音声)対話システムとは?
• ユーザによる一連の自然言語入力を「理解」
し,それに対して「適切に」応答するシステム
• 特に,音声でやり取りするものを 音声対話 システムと呼ぶ
–
音声対話システム特有の課題•音声認識(不確実性への対処),音声合成
•より口語的な入力表現の理解(省略,言い淀みなど)
自然言語入力
(音声,タイプ入力)
応答
(音声)
対話 システム
対話システムの歴史
• ELIZA
• SHRDLU
• その後の対話システム
ELIZA [Weizenbaum 1966]
• 心理カウンセラの役割を演じる対話システム
• 例:
• 入力の表層的パターンに基づいて適当に生 成した応答を返すだけ(「人工無脳」の元祖)
• Emacs 「Esc-x doctor」で試すことができる
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?
SHRDLU [Winograd 1972]
• 積木の世界におけるユーザから の指令や質問への応答を行う
• 例:
Person: PICK UP A BIG RED BLOCK.Computer: OK. (does it) Person: GRASP THE PYRAMID.
Computer: I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.
Person: FIND A BLOCK WHICH IS TALLER THAN THE ONE YOU ARE HOLDING AND PUT IT INTO THE BOX.
Computer: BY "IT", I ASSUME YOU MEAN THE BLOCK WHICH IS TALLER THAN THE ONE I AM HOLDING.
Computer: OK. (does it)
Person: WHAT DOES THE BOX CONTAIN?
Computer: THE BLUE PYRAMID AND THE BLUE BLOCK.
Person: WHAT IS THE PYRAMID SUPPORTED BY?
Computer: THE BOX.
その後の対話システム
• データベース検索インタフェース(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
参考: 音声対話システムの系譜
(出典:河原達也「音声対話システムの進化と淘汰」人工知能学会誌 28(1), 2013)
対話システムの分類
• 対話の目的,主導権,情報の 形式,順序の自由度,モード などによる分類
対話の目的
• タスク指向型対話(task-oriented dialogue)
–
ユーザが何らかのタスクを遂行する目的を持ち,システムもその目的のためのサービスを提供する
–
タスクの種類: 情報検索,情報伝達(予約など),物理的行為(旅行など)
• 非タスク指向型対話(雑談)
–
目的がはっきりと決まっていない対話(対話すること自体が目的)
対話の主導権
• システム主導
–
システムが決まった手順でユーザから情報を順次 引き出すことによって対話の目的を達成する• ユーザ主導
–
ユーザが自発的に質問や要求を入力し,システム がそれに応答していく• 混合主導
–
話の流れに応じて対話の主導権が移動する•例: システム主導対話の後,ユーザに主導権を渡す
参照する情報の形式,対話の順序
• 対話で参照される情報の形式 –
関係データベース–
一般の知識表現 (フレーム,意味ネットワーク等)–
自然言語テキスト• 対話の順序
–
必須項目のやり取り中心 ⇒ 順序固定も可能–
任意項目が多い場合⇒ 順序に柔軟性が必要 –
項目立てができない場合 ⇒ ユーザ主導で対話のモード
• タイプ入力
–
ある程度推敲された入力を期待できる• 音声入力(音声対話)
–
音声認識(不確実性の増大)–
より口語的な表現(省略,言い淀みなど)• マルチモーダル対話
–
言語以外の情報(視覚情報など)を入出力に併用–
顔の向き,視線,ジェスチャー,表情など対話システムの構造
• タイプ入力の場合
• 音声入力の場合
対話システムの構造(タイプ入力)
タイプ入力
(文字列)
推論 計画 立案 応答 内容 言語 決定
理解
情報検索
・ 操作実行 言語
生成 知識
文脈情報
意味表現 応答内容 応答出力
対話システム
対話システムの構造(音声入力)
音声入力
推論 計画 立案 応答 内容 言語 決定
理解
情報検索
・ 操作実行
知識
文脈情報 応答出力
音声対話システム
音声 認識 認識
結果 言語 生成 音声
合成
意味 表現 応答 内容 言語
表現
対話システムの処理方式
• 状態遷移方式
• 知識駆動方式
• プランに基づく方式
状態遷移方式
• 対話の流れが固定的な場合の処理方式
• 例: 航空券予約システム
出発地はどこですか?
目的地はどこですか?
出発日は何日ですか?
空港名を入力して下さい
空港名を入力して下さい 空港名の入力
空港名の入力
空港名の入力
空港名の入力 その他の入力
その他の入力 その他 の入力
その他 の入力
知識駆動方式
• 領域知識の構造に対応した制御を行う –
例: フレーム型知識表現における slot filling ホテル検索システムスロット名 スロット値 必須性 地域 ? 必須 最寄り駅 ? 任意 客室タイプ ? 任意 料金の制約 ? 任意
プランに基づく方式
•
発話行為(speech act)の考え方–
全ての発話は何らかの目的を持って行われる• ユーザの発話の理解 ⇒ プラン認識 –
入力内容の背後にあるユーザの意図(目標)やプランの全体像を推測する
• 応答内容決定・生成 ⇒ プラン生成・実行 –
システム自身の目標(多くの場合,ユーザの目標達成支援)を達成するためのプランを作り,その 一環として,応答出力(や操作・検索実行)を行う
確率モデルを用いた対話制御の最適化
• 対話制御の困難さ
–
対象タスクが変わるたびに,制御用のルールや パラメータの再設定が必要–
例1: 曖昧な事項の確認戦略–
例2: 対話の主導権(システム,ユーザ,混合)• 事例(コーパス)に基づく対話制御の最適化 –
教師あり学習(supervised learning)–
強化学習(reinforcement learning)対話制御戦略の強化学習
•
対話をMarkov決定過程としてモデル化 –状態の集合 S•現在の話題,確信度,履歴など –システムが取りうるアクションの集合 As
•値質問,値確認,DB検索,主導権変更など –状態遷移確率 P(St | St-1, at-1)
–報酬 R
•タスク遂行の効率性,ユーザ満足度など –戦略π:S→As
•試行を繰り返すことにより高報酬の戦略を学習する
参考1: 対話に関する理論
• 発話行為論(Austin, Searle)
–例: 「水をください」 → 発話行為タイプ = 依頼 命題内容 = 水を渡す –適切性条件,間接発話行為,…
• 協調の原則(Grice)
–量の公理,質の公理,関連性の公理,様態の公理
• 談話構造(Grosz)
–言語構造+注意状態(焦点)+意図構造(プラン)
•
共同行動,共通基盤,話者交代,…参考2: 雑談対話システム
• コミュニケーション自体が目的
→情報機器やロボットと人間の新しい関わり方
• 言語理解,応答生成,対話制御
–広範な話題に対応するため,タスク指向型対話システム とは異なる技術が必要
• ユーザ適応
–ユーザの嗜好の把握,発話内容の記憶など
• 個性(一貫性)
–性格,感情,言葉づかいなど
• 評価方法?
ニューラル対話モデル
• Recurrent Neural Network (LSTMなど)を用いて,
入力文の符号化(encode)と,得られたベクトルから の応答文の復号化(decode)を end to end で行う
•
学習データ: 対話コーパス中の隣接発話ペア今日 は 暑い です
もう 夏 です ね
Encoder RNN
Decoder RNN
(ベクトル)
(入力文)
(応答文)
ニューラル対話モデルの課題
• 対話の流れに応じた制御が困難
• 応答の多様性に乏しい
• 外部知識の利用
• キャラクターの一貫性
プランに基づく対話処理
1.プランニング 2.プラン認識
協調的応答とプラン認識
•
例:•
相手の発話の背後にある意図やプランを認識する ことにより,–表面上要求されている以上の情報の提供
–相手のプランに含まれる問題の指摘や代替プランの提案 –間接的発話の意図理解や,省略補完,参照解決
などが可能になる
乗客: 京都行きの列車は何時に出ますか?
駅員: 12時30分,16番ホームからです.
1.プランニング
プランニング(プラン生成,計画立案)
• プラン(計画)とは?
–
目標とする状態や行動を実現するような,プラン オペレータ(可能な動作)の系列• プランオペレータの構成
• プランライブラリ
プラン名
前提条件 プラン実行のための必要条件 制約 プランの適切さを保証する条件 行為本体 基本行為またはプランの系列
効果 プランによって達成される状態
プランオペレータの例
• 積木の世界
–
積木 x を場所 from の上から to の上へ移動する プランオペレータClear: 上部が空いている
プラン名 Move(x, from, to) 前提条件 On(x, from) ∧ Clear(x) ∧ Clear(to)
制約 Block(x)
行為本体 ―
効果 On(x, to) ∧ Clear(from)
プランニング(プラン生成)
• 単純なアルゴリズム
目標リストの初期設定
目標リストから目標を1つ選ぶ
その目標を達成できる プランオペレータを1つ選ぶ
そのプランオペレータの前提条件および 行為本体の内容を目標リストに追加し,
効果の内容を目標リストから削除する
存在しなければ 終了(成功)
存在しなければ 終了(失敗)
プランニングの例
• 積木の世界
–
現在の状態: Block(A), Block(B), Block(C), On(A, Table), On(B, Table), On(C, B),Clear(A), Clear(C), Clear(Table)–
目標: on(A, B)–
プランニング: on(A, B)↑
Move(A, from, B) from = Table
↑ Clear(B)
↑
Move(x, B, to) x = C, to = Table
A B
C
列車旅行のプランオペレータ
• 列車旅行
• 乗車
プラン名 TakeTrainTrip(agent, train, dest) 行為本体 BuyTicket(agent, clerk, ticket)
Board(agent, train) 制約 dest = to_station(train)
train = for_train(ticket)
効果 At(agent, dest)
プラン名 Board(agent, train) 行為本体 GoTo(agent, gate, time)
GetOn(agent, train) 制約 gate = depart_gate(train)
time = depart_time(train)
プランの例(京都へ行く)
BuyTicket (太郎,駅員,切符)
TakeTrainTrip(太郎,のぞみ29号,京都)
Board (太郎,のぞみ29号)
GoTo
(太郎,16番ホーム,12時30分) GetOn
(太郎,のぞみ29号) At(太郎,京都)
発話行為のプランオペレータ
•
情報伝達•
依頼プラン名 Inform(speaker, hearer, prop) 前提条件 Believe(speaker, prop)
効果 Believe(hearer, prop)
プラン名 Request(speaker, hearer, action) 前提条件 Intend(speaker, action)
効果 Intend(hearer, action) 制約 Agent(action, hearer)
参考: BDIアーキテクチャ
• 合理的な行為者のモデル
Beliefs Desires
Intentions Reasoner
Plan Library Sensors
Actuators
行為者(エージェント)
外界(環境)
発話行為のプランオペレータ
•
情報伝達•
依頼プラン名 Inform(speaker, hearer, prop) 前提条件 Believe(speaker, prop)
効果 Believe(hearer, prop)
プラン名 Request(speaker, hearer, action) 前提条件 Intend(speaker, action)
効果 Intend(hearer, action) 制約 Agent(action, hearer)
発話行為のプランオペレータ(続き)
•
真偽情報伝達
•
値情報 伝達プラン名 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号))
Intend(駅員,InformRef(駅員,太郎,time,
time=depart_time(のぞみ29号))
Request(太郎,駅員,InformRef(駅員,太郎,time,
time=depart_time(のぞみ29号))
speaker→駅員
「のぞみ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(京都行き列車))
「京都行きの列車は何時に出ますか?」
「行為‐効果」ルール
「目標‐行為」ルール
「行為‐効果」ルール
発話プラン認識の例(続き)
TakeTrainTrip(太郎,京都行き列車,京都) Board(太郎,京都行き列車)
GoTo(太郎,gate,time) At(太郎,京都)
BelieveRef(太郎,time,
time=depart_time(京都行き列車))
「行為‐効果」ルール
「行為本体‐行為」ルール
「行為本体‐行為」ルール
「項知識」ルール
協調的な応答生成への応用
• プラン認識によって発話の背後にある相手の意図や プランを理解し,そのプランの実現を支援するような
(例:必要な情報の提供)自分のプランを生成して 応答発話を作り出す
•
例: 「美術館行きのバスはどこですか?」–応答1:「3番乗り場です」
–応答2:「3番乗り場です.あと5分で発車します」
–応答3:「今日は美術館はお休みですよ」
–応答4:「美術館はお休みなので,博物館をお勧めします」
続き
• こんな対話もありうる
「美術館行きのバスはどこですか?」
「今日は美術館はお休みですよ」
「美術館の隣のレストランへ行きたいのです」
「失礼しました.バスは3番乗り場から発車します」
ここまでのまとめ
• プランに基づく対話のモデル化と処理
–対話中のそれぞれの発話は,何らかの目標を達成するプラ ンの要素として遂行される発話行為と考えられる –プランニング(プラン生成)の過程を逆にたどるプラン認識の
推論により,発話者(対話システムのユーザ)が持つ意図を 理解できる
–その応用として,
•要求された以上の協調的な情報提供
•相手(ユーザ)の誤解の指摘や代替プランの提案
•間接的な発話や断片的な発話の理解 などが実現できる
今日のまとめ
• 自然言語対話システム –
対話システムの歴史–
対話システムの分類–
対話システムの構造–
対話システムの処理方式–
プランに基づく対話処理•プランニング,プラン認識
輪講とレポート課題について
次回から輪講
• 7月3日, 10日, 17日
• 指定された論文の中から1つ選んで2~3人で担当
• 1つの論文内で担当範囲を分担し,それぞれ自分の担当範囲 のスライド作成および発表を行う.
–各グループの発表スライドは,1つのファイルにまとめる
• 発表には,論文内容(の要約)の紹介および論文を読んで自分 が考えた考察を含めること.
–発表時間 12分間 + 質疑 8分間
• 成績評価は,発表の内容 と 論文の理解度 を考慮して行う.
–発表時間を大幅にオーバーした場合は減点
レポート課題
• 課題: 輪講で発表した論文の内容とこれまでの講義
内容を踏まえて, 自然言語処理システム
(「対話システム」のように限定してもよいし,
一般の自然言語処理システムを対象として
もよい) の現状評価と今後の展望を論じよ.
(構成の一例: 輪講で発表した論文の要旨と考察 + より広い観点での考察)
• 分量: A4サイズ 1ページ程度
• 形式: MSワード形式,またはPDF形式のファイル (ファイル名に学籍番号を含めること)
• 提出方法: この授業のシェアフォルダに提出
• 提出期限: 7月24日(水) 23:59 まで (厳守)