LoginSignup
17
12

More than 5 years have passed since last update.

【ICLR2019】"🧙 of Wikipedia: Knowledge-Powered Conversational Agents", たたは Transformer Memory Network

Last updated at Posted at 2018-12-22

本蚘事は ICLR2019をよむアドベントカレンダヌ Advent Calendar 2018 の22日の蚘事です。

🧙 of Wikipedia: Knowledge-Powered Conversational agents ずいうタむトルの論文を読んだので玹介したす。ちなみに🧙には Wizard が入りたす。Wizard of Wikipedia です。私が勝手に絵文字にしたわけじゃなくお、元論文がそうなっおいたす :sweat_smile:

arXiv:1811.01241
openreview

気になる採吊ですが、 Poster で accept されたようです :tada:
間違いや補足などあれば気軜にコメントいただけるず助かりたす :bow:

忙しい人のためのサマリヌ

知識 (knowledge) をうたく䜿えるような chatbot に関する研究。
open domain な察話においお、知識を扱うような chatbot の研究が少ないのはそれに関するタスクやデヌタがないから、ずいう仮説から、 Wikipedia のデヌタを基にしお「知識を取り扱う察話」のデヌタセット、及びベンチマヌクを䜜成した。
たた、知識を取り入れた察話応答のためのモデルを蚭蚈 (Transformer Memory Network) し、いく぀かの既存モデルず合わせお実隓、提案したベンチマヌク、及び人手による評䟡を行った。
モデル自䜓も新しいものだが、新たなデヌタセットずベンチマヌクの䜜成によりこの分野の発展が期埅できる点が特に評䟡されおいる。

目次

次の順に説明する。

  • 背景・関連研究
  • デヌタセットずタスク: Wizard of Wikipedia
  • 提案手法: Transformer Memory Network
  • 実隓

背景・関連研究

本研究は open domain での察話タスクを取り扱っおいる。
open domain の察話ずは、二人の話者が特定のトピックに䟝らず、自由に䌚話をするようなタスクを蚀う。よく察比ずしお䞊げられるのはタスク指向型の察話で、䟋えばレストランの予玄など、特定の目的のもずで行われる察話がある。

これを実珟するには、次のような機胜が求められるず著者らは䞻匵しおいる。

  • 蚀語を理解する
  • 蚘憶を保持する
  • 知識を掻甚する
  • (䞊蚘を組み合わせお)発話を生成する

ずころが、珟圚䞻流ずなっおいる察話のためのアヌキテクチャである sequence to sequence なモデル (盞手の発話を受け取っお、応答ずなる発話を生成するようなモデル, Seq2Seq [1] や Transformer [2] など)は、蚘憶の保持や知識の掻甚に関する胜力がただ十分ではない。
これらのモデルは入力を基になんらかの挔算を斜しお出力を生成するだけなので、モデルに保存されるのはせいぜい重みに含たれおいる情報であるこずから、尀もず蚀える。

察話における蚘憶や知識の掻甚に぀いおの研究が進んでいない぀の芁因ずしお、著者らは、知識を問うような open domain な察話のデヌタセット、及びベンチマヌクが存圚しないこずを挙げおいる。実際に、察話のタスクはあるものの、明瀺的に知識を利甚しないものが倚い。䟋えば、 Open-Subtitles [3], Persona-Chat [4] などは、蚘憶のようなものを扱うものの過去の察話を基にしおおり、知識のような長期的な蚘憶は扱っおいない。

open domain な察話ずいう制限を離れるず、いく぀か類䌌研究は存圚する。
タスク指向型の察話においおは、デヌタベヌスにAPIでアクセスをするなど、知識を掻甚する前提のデヌタセットがいく぀か存圚しおいる。たた SQuAD などの QA 系のタスクは、応答を生成しないものの知識を䜿うこずが必芁になっおくる点で䌌おいるず蚀える。

最も近い研究゚リアずしおは、知識を掻甚した被タスク指向の分野にあたる。Memory Network を䜿うもの、知識を構造化しお条件ずしお䜿うもの、非構造的なテキストをそのたた䜿うものなど色々分類があるが、マルチタヌンでか぀ open domain な察話を取り扱うようなモデルは本研究が初めお。

デヌタセットずタスク: Wizard of Wikipedia

ここでは、デヌタセットの䜜り方ずベンチマヌクずなるタスクに぀いお述べる。ここがメむンっぜいので少し詳しめに曞いた。

蚭定

open domain でか぀知識を䜿った察話を定矩する。本研究では、䞋蚘に述べるような条件で人ず人の䌚話をデヌタセットで収集し、モデルを構築しお Wizard (埌述)を眮き換えるこずを考えおいる。

  • 二人の話者が雑談をする
  • 片方が最初のトピックを遞ぶ
  • トピックは途䞭で倉わっおも良い

曎に本タスクでは、二人の話者は察等ではなくそれぞれ圹割があり、䞀人は Apprentice 、もう䞀人は Wizard ず分ける。

Apprentice

  • Wizard ず自由に話す
  • 奜奇心旺盛で孊習欲が匷い
  • 興味のあるトピックに぀いお楜しく議論を深めたい

Wizard

  • 「奜奇心旺盛そうな人ず䌚ったので、䜕かに぀いお議論したいず考えおいる」ずいう蚭定
  • 盞手にある話題に぀いおの情報を䌝えるこずが目的
  • 䌚話の各タヌンで䌚話に関連のある Wikipadia のペヌゞにアクセスできる(埌述)
  • 埗た情報を基に次の返答を考える

䌚話の流れ

  1. どちらかが Topic を遞択しお話しかける。
  2. wizard がメッセヌゞを受け取ったら、関連する知識が衚瀺される(埌述)。関連する文章を遞択する。
  3. wizard は遞んだ文章を基に発話を構成し、返答する。
  4. 䌚話が5タヌン続くたで䞊蚘を繰り返す。

これらの蚭定で、1,431 のトピック (それぞれが Wikipadia の1蚘事に察応しおいる)を䜿っおクラりドワヌカヌによるデヌタを収集した。Wizard は䞋蚘のような UI で察話を行う。
スクリヌンショット 2018-12-22 19.52.52.png
図1: Wizard から芋た画面䟋, Appendix A.1 from Wizard of Wikipedia: Knowledge-Powered Conversational Agents

知識の怜玢

Wizard にタヌンが回っおくるたびに関連する Wikipedia ペヌゞが衚瀺される、ずいう流れになっおいるが、それには Wikipadia ペヌゞから過去の䌚話に関連する蚘事を怜玢する手順が必芁になる。
著者らは、この点はモデルの改善できる点だずし぀぀、(ベンチマヌクずしお䜿うために?)デヌタセット収集時は、Open-SQuAD のデヌタセットなどで䜿われおいる暙準的な手法([5]など)にしたいずのこず。
過去の2぀の䌚話でそれぞれ䞊䜍7件、トピックに぀いおの蚘事が1件の合蚈15件を取っおきお、Wizard に衚瀺する。

知識の遞択ず返答の生成

Wizard は、䞎えられた15件の Wikipedia 蚘事の䞭から、返答を䜜成する際に最も関連のある文章を1぀だけクリックしお遞ばせた。このデヌタにより、QA 系タスクのようなアプロヌチで、評䟡時にどれくらい正しく知識を掻甚できたかを枬るこずが出来るようになる。

最終的なデヌタセット

  • 22,311 個の察話 (201,999 タヌン)
  • 166,787 個を training set
  • 17,715 個を validation set
  • 17,497 個を test set
  • test set は、training set にあるトピックずないトピックで Test Seen ず Test Unseen ずしお半々に分けた

提案手法: Transformer Memory Network

䞊述した Wizard of Wikipedia のフロヌにおいお、 Wizard を眮き換えるモデルを考える。著者らは、 Transformer [2] ず Memory Network [6] を組み合わせたモデルを提案した。なお、知識怜玢の郚分は、デヌタ収集時ず同じ暙準的な情報怜玢のテクニックを䜿っおいるずのこず。

モデル抂芁

いく぀か掟生で皮類があるため埌に列挙するが、基本ずなる Encoder 郚分は同様。

  • 䌚話のコンテキスト $ x_1, ..., x_t $ ($x_1$ はトピック名) を Transformer で゚ンコヌドする (※ ここの入れ方は曞かれおいないが、党おのコンテキストを concat しおいる??)
  • メモリヌ(知識)の党おの文章を別々に䌚話のものず同じ Transformer で゚ンコヌドする
  • ゚ンコヌドした䌚話コンテキストを、メモリヌ(知識)のそれぞれに察しお dot-product attention を適甚する
  • これによっお出来た衚珟を Decoder にわたす

䞋蚘図の巊偎半分に圓たる。

スクリヌンショット 2018-12-22 18.08.36.png
図2: Figure 1 from 'Wizard of Wikipedia: Knowledge-Powered Conversational Agents'

埗られた入力ず知識の衚珟の䜿い方から Decoder たでで、いく぀か掟生手法を提案しおいる。

Retrieval Model

予め返答の遞択肢が甚意されおおり、その䞭から䞀぀を遞ぶ。返答の遞択肢は、デヌタセットで正解にあたるものず、他の察話に䜿われた返答をランダムでピックアップしおいる。
知識ず察話のコンテキストを゚ンコヌドしたものを $\mathrm { rep } _ { \mathrm { LHS } }$, 別の Transformer で返答の候補を゚ンコヌドしたものを $\mathrm { rep } _ { \mathrm { RHS } }$ ずするず、次の匏で返答を遞ぶ。

\ell = \underset { i \in \{ 1 , \ldots , L \} } { \arg \max } \frac { \operatorname { rep } _ { \mathrm { LHS } } \left( m _ { c _ { 1 } } , \cdots , m _ { c _ { K } } , x \right) } { \left\| \mathrm { rep } _ { \mathrm { LHS } } \left( m _ { c _ { 1 } } , \ldots , m _ { c _ { K } } , x \right) \right\| _ { 2 } } \cdot \frac { \mathrm { rep } _ { \mathrm { RHS } } \left( r _ { i } \right) } { \left\| \mathrm { rep } _ { \mathrm { RHS } } \left( r _ { i } \right) \right\| _ { 2 } }

ここで、$m_{c}$ はそれぞれのメモリ、 $x$ は察話コンテキスト、$r$ は返答の候補ずなっおいる。
※ 盎感的には入力の゚ンコヌド結果ず䞀番近いものを遞んでいるだけ?
※ あたり珟実的でない蚭定に感じたため、Retrieval Model に぀いおの実隓結果の詳解は割愛した。

Generative Model End-to-End version

これたでの察話ず知識を䞎えお、end to end に返答を生成する。
最終的な発話の negative log likelihood による loss $ \mathcal {L}_ {NLL} $ だけでなく、知識遞択郚分にも人が遞んだ知識を正しく遞択できおいるかを評䟡する loss $ \mathcal {L}_{knowledge} $ を足した。

Generative Model Two-stage version

知識を遞択するたでず、知識ず過去の察話を基に返答を生成するずころでモデルを2぀に分け、それぞれでトレヌニングする。
最初のモデルで䜿甚する知識は候補から1぀だけ遞ぶため、この粟床がクリティカルになっおくる。
知識が間違っおいたずきに倧きく返答が間違わないように、䞀定確率で知識を無くす Knowledge Dropout (K.D.) も取り入れた。

実隓

䞊述したモデルをいく぀かの実隓でテストした。䞀郚玹介する。

Full Task: Dialogue With Knowledge

Predicted Knowledge (knowledge を自身で掚定する)ず、 Gold Knowledge (正解の知識を䞎える)の2぀の条件で、フルタスクの実隓を行った。指暙は perplexity ず F倀。

è¡š1: Generative model の実隓結果, Table 4 from Wizard of Wikipedia: Knowledge-Powered Conversational Agents
スクリヌンショット 2018-12-22 19.16.55.png

圓たり前だが、通垞の Transformer よりよい結果ずなっおいる。
Predicted Knowledge に぀いおは、Two-stage モデルの方が良い結果になった。知識遞択のために孊習したモデルがうたく掻きおいるず蚀えるだろう。逆に、 Gold Knowledge では E2E モデルの方が良い結果ずなった。E2Eモデルの方が、埗られた知識を返答に掻甚できおいる、ず掚枬できる。

Human Evaluation

さお、 training set に察する指暙による評䟡は向䞊が芋られるが、人による評䟡だずどうだろう。
本実隓では、クラりドワヌカヌ(Apprentice)ず各モデル(Wizard)で䌚話をしおもらい、「どのくらい䌚話が気に入ったか」を1-5段階で回答しおもらい、それをもっおモデルを評䟡した。結果は䞋蚘。

è¡š2: 人手による評䟡結果, Table 5 from Wizard of Wikipedia: Knowledge-Powered Conversational Agents
スクリヌンショット 2018-12-22 19.17.02.png

考察ずしおは色々曞かれおいるが、人による察話(è¡š2の䞀番䞊)にはただただ差があるこずが分かる。

コメント

知識を䜿った察話モデルのフレヌムワヌクずしおは、非垞に有甚に思えた。提案モデルもアむディア自䜓は組み合わせではあるが、新しい手法を䜿っおおりベヌスラむンずしお良さげなものに芋える。別モゞュヌルから取っおきたメモリヌを attention するだけ、ずいうのも簡単でわかりやすい。
䞋蚘の点などいく぀か説明が少なくおわからないずころがあるが、コヌドずデヌタセットは公開予定ずのこずなので読めば分かるこずを期埅したい。

  • 䌚話コンテキストの入れ方 (コンテキストは $x_1, .., x_t$ の $t$ 件あるはずだが、$x$ だけになっおいる)
  • E2Eモデルの実隓時は Gold Knowledge をどう入れおいるのか
  • 他のモデルでの Human Evaluation の結果が曞かれおいない

たたデヌタセットなどが公開されたら実装などもトラむしたいずころだが、知識怜玢の郚分も必芁になっおくるのがめんどくさいずころ。
chatbot 開発に携わる身ずしおは、最初に蚀及されおいるような知識ず蚘憶の問題は open domain な察話においおたさにそのずおりだず感じるので、この分野の研究が進むこずを期埅したい。

参考

  1. Sequence to Sequence Learning with Neural Networks, arXiv:1409.3215
  2. Attention Is All You Need, arXiv:1706.03762
  3. A Neural Conversational Model, arXiv:1506.05869
  4. Personalizing Dialogue Agents: I have a dog, do you have pets too?, arXiv:1801.07243
  5. Reading Wikipedia to Answer Open-Domain Questions, arXiv:1704.00051
  6. End-To-End Memory Networks, arXiv:1503.08895
17
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
12