ブログではないです

ブログでなくはないです

Constructing Datasets for Multi-hop Reading Comprehension Across Documents [Welbl+, arXiv'17]

https://arxiv.org/pdf/1710.06481.pdf

概要

WIKIHOPというReading comprehensionのデータセットの作成・分析についての話。データセットの分析や関連研究との比較,RCデータセットの構築で起こりがちなバイアスについてなどしっかり気を使っていて勉強になった。

タスクとしてはWikipedia中の記事を読んで,Wikidata上に登録されている他エンティティの関係性を表すトリプル (subject, relation, object) のobjectを当てる。 *1 WikiReading に似ているが大きな違いはタイトルにもmulti-hopとあるように,subjectとなるエンティティの記事だけではなくそこに含まれるリンクを辿って,関係のある他の記事も用いた上でobjectを当てる形式にしていること。 またWikiReadingはobjectの名前を記事中からの抽出,あるいはモデル自身の語彙から生成する必要があるテキスト生成タスクであるのに対し,WIKIHOPは候補objectが与えられた上での選択タスクになっている.*2

どういうことかというと例えばfig.1 のような例では ("Hanging gardens of Munbai", "country", ?) というクエリの回答として "India" を推定する上で必要な情報は"Hanging gardens of Munbai"には書かれておらず,リンクを辿って "India"までの全ての記事を見てようやく推定が可能になる.このように推定のためには複数記事の情報を統合する必要があるような関係トリプルを集めたデータセットとなっている。

fig1  fig2

具体的にデータセットをどう作っているかというとfig.2のようにsubjectとなる記事からスタートして,記事中に登場した全ての他エンティティについての記事も辿る,というのをtype-consistent entityに当たるまで繰り返す。 type-consistent entityの定義はwikidata中に登録されている他の全トリプル中で,クエリのrelationを伴って登場したことのあるobject。今回の例だと (*, "country", object) というトリプルがwikidataに存在していれば object はtype-consistent entity であり,その記事にたどり着けばそれを回答候補に加え探索を打ち切る。*3

ここでは省略するが実験においては簡単なベースラインやneural-basedなモデルなどいろいろ試した上で,登場する回答候補エンティティを[Hermann+, NIPS'15]のようにマスクすることで表層を手がかりとして使わせない(=文脈をちゃんと理解するように強制させる)場合や関係のない記事を抜いた場合どう変わるのかなど,実験結果の分析についてもなかなか興味深い事が色々。

*1:ここでは省略するがWikipedia/Wikidata以外にも薬剤に特化した知識ベースを使ってMEDHOPというデータセットも作っている

*2:WikiReadingのような設定の場合,エンティティ名って結構低頻度語であることが多いと思うんだけどその結果必要以上に生成が難しくなっちゃったりしないんだろうか?

*3:この際タスクの趣旨のためにsubjectの記事にobjectが登場するようなものは除外している