Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2019: Target-Guided Open-Domain Conversation #242

Open
jojonki opened this issue May 31, 2019 · 0 comments
Open

2019: Target-Guided Open-Domain Conversation #242

jojonki opened this issue May 31, 2019 · 0 comments

Comments

@jojonki
Copy link
Owner

jojonki commented May 31, 2019

Target-Guided Open-Domain Conversation
Jianheng Tang, Tiancheng Zhao, Chenyan Xiong, Xiaodan Liang, Eric P. Xing, Zhiting Hu
ACL 2019. Data and code available at this https URL. fixed typos
https://arxiv.org/abs/1905.11553

概要

Open-domainのチャットにおいて,スムーズに目的のトピックに対して会話を移行できうるシステム.荒い粒度のキーワードを利用してシステム応答をコントロールする.またこのような対話のコーパスは存在していないため,ターンレベルの教師あり学習を利用.そしてゆるい制約下のもと,目的のトピックに対して会話を運んでいく.定性評価と人評価を行い,意味があって効果的な対話をできているこを確認した.

この研究で実現できるのは下記のような対話.tiredというトピックから始まり,いかに目的のe-booksの話にもっていくか,ということがスムーズな遷移で行われている.
Screen Shot 2019-06-01 at 12 06 20 PM

イントロ

open-domainシステムはしばしば一貫していない結果となるが,既存の研究ではopen-endedでありながら何かしらのゴール(セラピー,教育におけるアイデアのインスパイア,推薦,説得など)を行う研究がある.このようにopen-domainでありながらゴールを設定したいという要求はあるが,2つのチャレンジが伴う;1.ゴールをどう定義するか,2.対話戦略をどう応答にエンコードするか

我々のシステムでは,coarse-grainedな発話キーワードを利用して各システム応答をモデル化しコントロールする.そしてdiscourse-levelのルールを目的のターゲットに向けて対話を持っていく.その際にターンレベルの教師あり学習を通してスムーズな会話のトランジションを実現する.また既存の日常対話のデータセットを利用してキーワード拡張された対話データセットを作り出した.

キーワードトランジションのために,ペアワイズのPMI-based,ニューラル,ハイブリッドカーネル手法を研究.

関連研究

タスク定義:Target-guided Open-domain対話

今回のtarget-guided open-domain対話のタスク定義をする.
今回のタスクでは,任意の初期トピックからターゲットトピックtに導く話.本論ではトピックとは単語(McDonald,本,など)と定義する.このターゲットは人に対しては未知情報とする.エージェントは各ターンで発話履歴にアクセスでき,次のような2つを満たす応答を生成する;1.スムーズなトランジション:現在のコンテキストに即した自然で適当な発話,2.ターゲット達成:目的ターゲットへの到達(具体的にユーザーがターゲット単語or類似単語を発話したら達成とする)この2つの条件は補完関係かつ競合している.例えば人がI went to a movieといったことに対して,Do you like cat?というのは不適切だからだ.この2つをうまくバランスをとって会話をする必要がある.

提案アプローチ

本システムを構成するコアモジュール,ターンレベルキーワード遷移予測器,discourse-levelターゲットガイド戦略,応答選択器,の3つを以下で説明していく

Screen Shot 2019-06-01 at 1 17 41 PM

ターンレベルキーワード遷移予測器

ここでは各ターン毎に,対話履歴を受けて次応答のキーワードを予測する.このモジュールはターゲットトピックとは独立しているため,対話の流れに対してアラインできる.またこのような設定であるため任意のopen-endedなチャット対話コーパスを利用して,発話キーワードの予測器を教師あり学習で作ることができる.
この予測器として,以下の,ペアワイズのキーワード線形遷移,ニューラル,カーネルベースの,3手法を試した.

  • ペアワイズのPMI-based遷移
    Pointwise Mutual Information(PMI, Church 1990)の手法では,あるキーワードからあるキーワードのペアをモデル化する.w_i -> w_jへの遷移を考えるとき,下記のように定義できる.取り出したキーワード候補は互いに独立として,PMIスコアを計算する(ngram的な考え).この手法はシンプルで解釈性が高いが,未知遷移やスパース性に弱い

Screen Shot 2019-06-01 at 12 54 42 PM

  • ニューラルベースの予測器
    対話履歴をRNNでエンコードし,キーワード分布を出力するネットワークを利用.このネットワークは,観測されたデータの尤度を最大化するようにして鍛える.愚直な方法だが,大量のデータを必要とする

  • ハイブリッドカーネルベース手法
    ニューラルの抽出性能とペアワイズの近さ尺度を組み合わせたハイブリッド手法を提案する.具体的には,現在のキーワードと次キーワード(1つ)のペアを作り,単語埋め込みのコサイン類似度を計算.そしてK個のRBFカーネルに渡す.これにより出力はK次元のベクトルとなる.これをsingle-unitのニューラルネット(affine)に渡し,キーワードの候補分布を出力する.もし現在のキーワードが複数ある場合は,K次元のカーネル出力を足し合わせで,ニューラルネットに流す.この手法が結果的に一番強かった.

Discourse-levelターゲットガイド戦略

このモジュールは,対話の過程でディスカッショントピックを積極的に進めることで最終目標を達成することを目指す.このようなpublic dataは存在しないが,キーワードの拡張によりこれをシンプルにかつ効果的に可能としている.
Fig 2 右側を見て欲しい.現在Basketballが現在のテーマで,ターゲットはDanceである.この中で唯一有効な候補はParty(0.62)である.Sportはターゲットには向かわないためNGである // 🤔候補とターゲットのスコアも計算しているかよくわからない.近さのスコアは単語埋め込みのコサイン距離を採用している

Keyword-augmented Response Retrieval

このモジュールでは,対話履歴と予測したキーワードに沿った応答を生成する.本論ではretrievalベースな手法を採用したが,生成ベースの手法でも適用可能.この手法はWu 2016の手法に,キーワード条件付けを行うことで実現.具体的には,対話履歴,キーワードをそれぞれRNNでエンコードする.同様にDBにある各応答候補もそれぞれエンコードする.そして,応答候補と対話履歴,応答候補とキーワード,のペアでアダマール積(各要素毎の積)をとる.このようにしてできた2つのベクトルをsingle-unitのニューラルネットに流し,sigmoidでマッチング確率を取る.(一番スコアが高いペアを採用)
ターンレベルのトランジションと同様に,教師あり学習の方法で応答retrievalも学習できる.学習はpositiveペアの最大化,negativeペア(応答候補をランダムサンプル)の最小化で学習できる(ランキング学習のマナー)

データセット

データセッとはPersonaChat (Zhang 2018)を利用.これはクラウドワーカーにペルソナを与え,日常対話をしてもらうことで集めた対話データ.この対話データは家族,個人の興味,仕事,など様々なトピックにまたがっており,トピックが頻繁に変わるようなものになっている.ただしこのデータは特定のターゲットトピックについて話しているわけではない.
このコーパスの利用のため,まず全対話を集めペルソナ情報は捨てた.そしてTF-IDFとPOSタガーを利用してルールベースによりキーワードを抽出し,データを拡張.// この方法に関しては付録情報参照(まだ公開されてない模様)
Screen Shot 2019-06-01 at 1 37 06 PM

実験

実験セットアップ

ベースラインは下記の通り

  • Retrieval (Wu, 2016)
    本論が採用したRetrievalなチャットシステム.ただしキーワード拡張やターゲットキーワードの設定はない
  • Retrieval-Stgy
    常軌にターゲットガイド戦略を適用したもの(Sec 4.2).具体的には,現在発話から提案手法のキーワード抽出器を利用してキーワードを抽出し,キーワード候補を得る.応答取得時に,少なくとも候補のキーワードが1つ以上入っているものを採用する.
  • Ours (提案手法)
    PMI, Neural, Kernelのキーワードトランジション手法を3種類試したバリエーションが存在.また比較のためRandom手法も利用(キーワードをランダムにピックアップ)

RNNにはSingle-layerのGRU,単語埋め込みはGloVe.

ターンレベル評価

まず最初に各ターンのパフォーマンスを評価(ターンレベルのキーワード予測と応答選択の両方).この時discourse-levelのターゲット制約は無効にして,システムが次キーワードおよび応答選択をどれほど正しく予測できるか評価することに特化した.

キーワード予測には,3つの評価メトリクスを採用

  1. R_w@K: K=1,3,5のキーワードリコール(上位Kに単語が入っているか)
  2. P@1: 1位のprecision
  3. Cor: 単語埋め込みベースの類似スコア(Liu 2016)

応答選択タスクには,ランダムに19のネガティブ応答(誤った応答)をテストケース毎に選び,R_20@Kを計算.つまり,20候補の中でのrecallとなる
もう1つは,MRR(Mean Reciprocal Rank,平均逆順位)を採用する.// 上位Nから数えて何番目に正解が出たか,その時の番目の逆数の平均

結果はTable 3.

  • Kernel遷移がR_20@3をのぞいて全てのメトリクスで他手法より良かった
  • 興味深いことにRandomはベースのRetrievalに近い性能.キーワード抽出のエラーが学習後にシステムによって無視されていることを意味する.// 🤔提案手法と比べてもそんなに差がないような..

Screen Shot 2019-06-01 at 2 41 32 PM

Target-guided対話評価

次にターゲットガイドな対話の評価を,自動評価と人評価で行う.

セルフプレイシミュレーション

Lewis, 2017とLi 2016bの方法に習い,自動でターゲットガイドな対話を行うタスクシミュレーターを作った.具体的には,base Retrievalを人役として採用する(ターゲットを知らない).シミュレーターはランダムにターゲット単語を選び,対話を開始する.ターゲット単語に到達したかどうかを見るために,WordNetを利用してキーワードがターゲット単語に近いか判定する(類似スコアが0.9以上).また最大ターンは8までに限定した.よって,メトリクスはターゲットに達したかどうかのSuccと達成までの平均ターン#Trunsとなる.

結果はTable 4.

  • Kernel遷移がもっとも成功率が高い
  • Retrieval-Stgyはbaseよりもかなり高くなったが,ターン数がそれなりに必要
  • Kernelにおいて,予測キーワードの81%が次応答に現れており,キーワードがretrievalモデルに大きな影響を及ぼしているのがわかる.

Screen Shot 2019-06-01 at 3 05 21 PM

人評価

DialCrowd toolkit(Lee, 2018,AMTを対話システム評価に使えるようにしたツール)を使って,人評価を2つの観点,ターゲット達成と遷移のスムーズ具合,の2つで評価.
我々は50のテストケース(ターゲットと初期発話を含む)を作った.そしてクラウドワーカーに対してランダムなシステムを割り当て,対話をするように促す.エージェントはターゲットに達したかどうかor最大ターンに達した,でワーカーに通知.そこでターゲットをワーカーに示し,ターゲットが達成したか,対話遷移はスムーズだったか(1から5で評価)で評価.全てのエージェントは同じテストケースを利用.
Table 5に結果.

  • ターゲット達成率,スムーズさ,の両メトリクスでKernelベースの手法が良かった
  • 達成率はTable 4のシミュレーションと一貫していた.
  • RetrievalとRetrieval-Stgyを見るとスムーズさはほぼ同じなのに対して,タスク達成率が大きく異なった.これは我々のdiscourse-level戦略(Sec 4.2)の有効性を示している

Screen Shot 2019-06-01 at 3 11 53 PM

もっとも良かったKernelベースと,他手法をそれぞれ比較させ,どっちが良いかワーカーに尋ねた.3,5割ほど勝っていることがわかる.
Screen Shot 2019-06-01 at 3 19 02 PM

定性分析

Table 7に,ターゲットDanceとMcDonaldの時の事例をそれぞれ載せた.

  • KernelはRetrieve-Stgyよりも短く達成
  • Kernelはrideからmusicにスムーズに素早く移行できてる
  • Retrieval-Stgyは,Open-endedにハマり7ターンまで達成できていない
  • McDonaldは今回はデータセットに含まれないが,Kernelは4ターンで達しているが,Retrieval-Stgyは失敗した

Screen Shot 2019-06-01 at 3 22 31 PM

Table 8にKernelのエラーケースを載せた.エージェントはターゲット達成を果たしたが,不明瞭なロジックでスムーズじゃない遷移を見せた.ターゲットlistenに対して,不適切なコンテキストで遷移した.
Screen Shot 2019-06-01 at 3 26 30 PM

結論

ターゲットガイドなOpen-domain対話の問題を研究した.与えられたターゲットに対してエージェントはそれに向かうようにスムーズな対話を行った.キーワード抽出によりこれを可能にしている.また自動定量評価,人評価を行い,提案手法が優れていることを示した.

本研究はタスク指向対話とopen-domain対話の橋渡しとなるような研究である.対話戦略を立てつつ対話をコントロールできることは非常にメリットがある.我々の手法は非常にシンプルであり,様々なアプリに適用できる.

コメント

  • 問題の切り分けと問題設定がうまい.またこのようなpublic dataがなくても問題ないのも強い
  • 単語埋め込みのコサイン距離を,トピック遷移にそのまま利用するのは議論が生まれそう
  • 単語の近さにWordNetや単語埋め込みのコサイン距離を利用しているが,これが対話遷移において有効なものなのか,今後の研究に期待したい

参考

@jojonki jojonki changed the title 🚧 v2): Target-Guided Open-Domain Conversation Target-Guided Open-Domain Conversation Jun 1, 2019
@jojonki jojonki changed the title Target-Guided Open-Domain Conversation 2019: Target-Guided Open-Domain Conversation Jun 1, 2019
@jojonki jojonki added the Podcast label Jun 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant