「この制度を利用できますか」と聞かれても、年齢、居住地、就労状況など必要な条件が分からなければ、規則を読んだだけでは答えられません。足りない情報を見つけ、利用者へ確認し、その回答と規則を照合する必要があります。
ShARC(Shaping Answers with Rules through Conversation)は、規則文、利用者の質問と状況、これまでの会話を入力し、YES、NO、IRRELEVANTのいずれかを答えるか、次の確認質問を生成する対話型機械読解データセットです。
実在する規則を948件の短い規則文へ分けた
原論文「Interpretation of Natural Language Rules in Conversational Machine Reading」は、Marzieh Saeidi、Max Bartolo、Patrick Lewis、Sameer Singh、Tim Rocktäschel、Mike Sheldon、Guillaume Bouchard、Sebastian Riedelによる研究で、EMNLP 2018に採択されました。論文は、規則の解釈と不足情報の確認を組み合わせたConversational Machine Readingという課題を定式化しています。
元資料は、英国、米国、オーストラリアの制度・規制情報を掲載する264件のウェブ文書です。出典はgov.uk、Benefits.gov、IRS、USCIS、DMV.orgなど10ドメインにまたがり、給付制度、助成、税、移民、交通規則などを含みます。
文書をそのまま作業者へ渡したのではありません。段落と箇条書きを検出してまとめるヒューリスティックを使い、長さと箇条書き数の上限で分割しました。こうして948件のrule snippetを作っています。上限の具体値は論文に記載されていません。また、規則を先に論理式や条件表へ変換したのではなく、自然言語の規則を読みながら後続の会話木を構築しました。
質問・会話・シナリオを別工程にした
一人の作業者に質問、利用者像、会話を一括して作らせると、YESや最初の条件に偏るおそれがあります。そこで制作工程を四段階に分けました。
- 規則文の抽出:ウェブ文書から段落・箇条書きをまとめ、短い規則文にする。
- 最初の質問の作成:専門の評価者が規則文を読み、主題には合っているが、そのままでは答えられない質問を一件作る。
- 会話木の作成:クラウドワーカーが規則文、最初の質問、先行する会話を読み、必要な確認質問または最終回答を入力する。
- シナリオの作成:別のワーカーが会話木の一部を見て、その質問と回答に整合する利用者の状況を書く。
最初の質問は948件あり、この工程は一般のクラウドワーカーではなく専門の評価者が担当しました。指示は、規則文の話題に合うこと、重要な情報が欠けていて直接回答できないことの二点です。
人が質問し、仮想利用者がYES/NOを返した
会話生成では、人が案内役になり、規則からまだ確認すべき条件をYES/NOで答えられる質問にします。質問はプログラム上の仮想利用者へ送られ、仮想利用者がYESまたはNOを無作為に返します。その情報で結論が出ればワーカーが最終回答を入力し、出なければ次の質問を作ります。
一回の作業で通るのは二分木の一経路だけです。そこで別のワーカーには、先行作業と反対の回答を与えて未作成の枝を続けてもらい、YES側とNO側を展開しました。異なる作業者が順番に枝を伸ばすことで、一つの規則文と最初の質問から複数の会話経路を持つ木を作っています。会話木948件には、シナリオを加える前の時点で6,058件の発話ノードがありました。
会話の一部を利用者シナリオへ書き換えた
シナリオ作成者には、会話木から選んだ一件以上の確認質問とYES/NO回答を提示しました。提示範囲は一問分から会話全体まで変化します。作業者は、その内容と矛盾しない利用者の状況を文章で書き、元の質問をそのまま繰り返さず言い換えるよう促されました。
さらに、別の会話から取った無関係な質問も一件混ぜ、利用者が不要な情報を話す状況を作りました。完成時には、シナリオへ取り込まれた質問・回答を会話履歴から外し、シナリオだけで分かる条件を改めて質問しない構造にします。残りの質問・回答は履歴として保持されます。この方法で6,637件のシナリオが作られました。
IRRELEVANTの例は自動的にも作っています。無関係な質問は、同じ出典文書を避けて別文書から無作為抽出しました。無関係なシナリオも別の規則から候補を取り、確認質問どうしのTF-IDF類似度が閾値未満のものだけを採用しています。
MOREは公開データの最終回答文ではない
課題の出力は、YES、NO、IRRELEVANT、または自由記述の確認質問です。IRRELEVANTは、提示された規則文が最初の質問と無関係な場合に使われます。
論文の分類実験では、「まだ確認質問が必要」という状態をMOREと呼び、YES/NO/IRRELEVANT/MOREの4分類にしました。ただし、公開データのanswerにMOREという文字列を保存するのではなく、その時点で求める具体的な確認質問が入ります。分類と質問生成を分けて評価するときだけ、確認質問をMOREへまとめています。
木の構造を使って誤りを見つけた
二分木の同じ質問から分かれたYES枝とNO枝が、同じ最終回答へ到達した場合、その質問は冗長か、どこかに誤注釈があります。この形を自動検出し、該当する部分木を切り戻して再アノテーションしました。
別の作業者が作った会話を引き継ぐときは、先行する内容が妥当かを確認させ、不正なら理由を書いて却下させました。却下された部分木も削除して作り直しています。シナリオ作成時には、提示された質問と回答が互いに矛盾していないかを最初に確認させました。
Amazon Mechanical Turkの作業者には、承認率97%超、完了HIT数1,000件超、英国・米国・カナダ在住という条件を設定し、資格試験は満点を合格条件としました。作業後も回答の一部を抽出して品質点を付け、基準を超えた作業者だけを残しています。
会話生成200件を各3人で再評価したところ、YES、NO、確認質問の判断一致率は72.3%、無作為に選んだ二者間の平均Cohen’s κは0.82でした。シナリオ100件の検証では、資格試験と継続検品を通った作業者のデータは平均89件が承認され、未選別の作業者では38件でした。自動生成した負例やシナリオ展開で誤りが起きやすい開発・テストデータは、専門の評価者が全件確認し、必要に応じて修正しています。
948本の木を32,436件の予測問題へ展開した
948件の規則文、948件の最初の質問、948本の会話木、6,058件の基本発話、6,637件のシナリオは同じ単位ではありません。シナリオと自動生成した負例を会話木の各地点へ組み合わせると37,087件になり、シナリオが到達不能な枝を参照する例を除いて、最終的に32,436件のutterance単位の予測問題が残りました。
分割は学習21,890件、開発2,270件、テスト8,276件です。木の本数は628/69/251、出典文書数は181/24/59で、分野ごとの出典比率がおおむね70%/10%/20%になるよう分けました。同じ発話を無作為に振り分けるのではなく、出典文書と会話木の単位を分離しています。
公式データの一件には、utterance_id、tree_id、source_url、snippet、question、scenario、history、evidence、answerが入ります。モデルへの入力は規則文、質問、シナリオ、履歴であり、条件との対応を示すevidenceと正解answerは入力に含めません。
類似データの設計で分けて考えたいこと
ShARCから参考にできるのは、規則の抽出、質問、会話、利用者シナリオを別工程にし、同じ人の判断癖が全体へ及ぶのを抑えた点です。また、最終回答だけでなく、どの条件がシナリオから分かり、何が履歴で確認済みかを分けて保存すると、誤答の原因を追跡できます。
一方、ShARCは複数の質問順序を比較して最短経路を選ぶデータではありません。評価対象は各時点でYES/NO/IRRELEVANT/MOREのどれかを判断できるかと、正解として収録された次の確認質問を生成できるかです。「少ない質問で結論へ到達できるか」をShARC固有の評価項目として扱うことはできません。
業務マニュアルや日本語の制度文を同じ形式へ展開する場合も、規則にない条件を常識で補わず、原文、質問、回答、履歴、根拠となる条件を対応付ける設計が考えられます。ただし、これはShARCで日本語の制度案内を扱ったという意味ではなく、その制作工程を別領域へ応用する際の論点です。
RESEARCH DATA SUPPORT
規則文と確認質問を対応させる対話データ制作をご相談いただけます
株式会社イングクラウドでは、制度文・業務マニュアルの収集と条件整理、利用者シナリオの作成、確認質問と回答履歴のアノテーション、複数作業者による検品を支援しています。研究上の問いを、作業者への提示情報、分岐条件、却下・再判定基準へ落とし込む段階からご相談いただけます。
