\section{はじめに}
高性能かつ頑健な言語処理モデルを構築するために，多様な質問応答(QA)タスクにおける訓練，評価，分析が重要である．QAタスクには，抽出型，生成型，多肢選択式など様々なタイプがあり，Multi-hop推論や実世界知識など多くの技術・知識が必要となる．QAタスクを解くモデルとして，様々なQAタスクを統合的に解くUnifiedQA\cite{khashabi-etal-2020-unifiedqa}や，他のタスクと統合的に解くFLAN\cite{wei2022finetuned}などが提案されているが，このような統合的な解析が可能なのは英語だけであり，他の言語では多様なQAデータセットが存在しないので不可能である．本研究では，基本的なQAデータセットであるJSQuAD\cite{kurihara-etal-2022-jglue}やJaQuAD\cite{so2022jaquad}，JAQKET\cite{JAQKET}程度しか存在しない日本語に焦点を当てる．我々は，日本語に存在しないQAデータセットの中で重要なものとして，人間の情報欲求から自然に発生する質問からなるNaturalQuestions(NQ)データセット\cite{kwiatkowski-etal-2019-natural}に着目する．\color{black}本論文では，人間の情報欲求から自然に発生する質問を「自然な質問」と呼ぶ．\color{black}SQuAD\cite{rajpurkar-etal-2016-squad}のようなQAデータセットでは，質問をアノテータに作成してもらうため自然な質問ではなく，annotationartifacts\cite{gururangan-etal-2018-annotation}が存在するという問題がある．これに対して，NQでは，検索エンジンにユーザが入力したクエリが用いられており，自然な質問と考えられる．日本語版NQを構築するためにNQを日本語に翻訳するという方法が考えられるが，文法等の違いによる翻訳文の不自然さ，日本との文化の違いが大きな問題となるため，翻訳は用いない．我々は，日本語の検索エンジンのクエリログを利用して，JapaneseNaturalQuestions(JNQ)を構築する．また，より良いNQデータセットを得るために，オリジナルのNQのデータセット仕様を再定義する．なお，クエリログからデータセットを構築するために，NQでは訓練されたアノテータが雇用されていたが，JNQではコストを低減するためにクラウドソーシングで行う．本手法は，クエリログが手に入る言語であれば，どの言語にも適用できるものである．本研究では，JNQに加えて，NQの派生でyes/no質問からなるBoolQ\cite{clark-etal-2019-boolq}の日本語版JapaneseBoolQ(JBoolQ)も構築する．JBoolQの質問文，yes/noanswerは，JNQと同様の方法で収集する．\color{black}また，JNQと同様，より良いデータセットを得るために，オリジナルのBoolQのデータセット仕様を再定義する．\color{black}構築の結果，JNQは16,641質問文，79,276段落からなり，JBoolQは6,467質問文，31,677段落からなるQAデータセットとなった．JNQとJBoolQの例を図~\ref{fig:NQ-example}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F1\begin{figure}[t]\begin{center}\includegraphics{32-2ia4f01.eps}\end{center}\caption{JNQとJBoolQの例}\label{fig:NQ-example}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%さらに，JNQからlonganswer抽出，shortanswer抽出，open-domainNQの3タスク，JBoolQからyes/noanswer識別の1タスクの合計4タスクを定義し，それぞれのベースラインモデルを評価する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S2
\section{関連研究}
既存のQAデータセットは，質問が自然なものとそうでないものに大別できる．質問が自然ではないQAデータセットとして，SQuAD\cite{rajpurkar-etal-2016-squad}やSQuAD2.0\cite{rajpurkar-etal-2018-know}がある．これらのデータセットの質問は，前述のとおり，短いテキストを読んだアノテータが作成しているため自然な質問ではない．そのため，作成した質問に生じるパターン(annotationartifacts)や，質問とテキスト間における表現の重複(lexicaloverlap)がデータセット利用時に問題となる．自然な質問を収めたQAデータセットとしてNaturalQuestions\cite{kwiatkowski-etal-2019-natural}やBoolQ\cite{clark-etal-2019-boolq}がある．これらのデータセットでは，人間の情報欲求から生じる自然な質問を収集するために，検索エンジンのクエリログを用いている．質問対象の文書はWikipediaの記事であり，その段落や表，スパンや\textsc{yes/no}を答えとしている．他にも，質問をクエリログから集めたデータセットとして，WikiQA\cite{yang-etal-2015-wikiqa}やMSMARCO\cite{bajaj2018ms}がある．これらのデータセットでは，NQやBoolQと答えの形式が異なり，文書中の1文や人間が要約した文を答えとしている．自然な質問の収集を指向した関連するQAデータセットとして，TyDiQA\cite{clark-etal-2020-tydi}がある．上述のSQuADにおける問題を緩和するために，アノテータには段落を提示するのではなくWikipediaの記事の冒頭のみを提示し，そこから連想する質問を考えてもらい，自然な質問を収集している．しかし，検索クエリログを質問として利用する場合と比較すると，この手法で収集した質問は真に自然ではないと言える．英語以外の言語で構築されたNQもしくはBoolQデータセットとして，アイスランド語NQ\cite{snaebjarnarson-einarsson-2022-natural}やロシア語BoolQ\cite{Glushkova_2021}がある．アイスランド語NQはTyDiQAと同じ手法を用いて\color{black}構築されており，\color{black}また，ロシア語BoolQでは質問の冒頭になり得るフレーズをクラウドワーカーに提示し，質問を作成してもらっているため，どちらも，収集された質問は真には自然ではないと言える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3
\section{日本語NaturalQuestionsの構築}
\label{JNQ}本節では，NQと比較しながらJNQの構築方法について説明する．NaturalQuestions(NQ)\cite{kwiatkowski-etal-2019-natural}は，自然な質問文に対し文書を読むことで答えることができるかに焦点を当てたQAデータセットである．各事例は質問文，文書，longanswer，shortanswerから構成される．質問文は，検索エンジンのクエリログから収集されている．文書は，Wikipediaの記事を用いており，一つの質問文に対し一つの文書が与えられる．longanswerは，質問文に対する答えを推測するのに十分な情報を含んでいる文書中の段落や表などである．shortanswerは，質問文に対するできるだけ短い答えであり，文書中のスパンもしくは\textsc{yes/no}である．JapaneseNaturalQuestions(JNQ)も，NaturalQuestionsと同様に，質問文，文書，longanswer，shortanswerから構成する．質問文は検索エンジンのクエリログから抽出し，文書は日本語Wikipediaの記事を用いる．longanswerとshortanswerはクラウドソーシング\footnote{Yahoo!クラウドソーシングを用いた．}を利用することで得る．クラウドソーシングを利用することにより，専門家のアノテータを必要とせずに低コスト，かつ，一定の質を担保したデータセットを構築できる．データセット構築をクラウドソーシングで行うことを考慮し，タスクを簡単化するため，longanswerは段落のみを対象とする．NQでは文書中にlonganswerは一つであるという強い制約があるが，実際は文書中に答えを含む段落が複数存在するので，JNQでは一つの質問文に対するlonganswerが複数ある場合を許容する\color{black}ようにデータセット仕様を再定義する．\color{black}以下ではJNQ構築の各段階について説明する．クラウドソーシングでは，質の良いベンチマークを構築するため，一つの質問に対して10人のクラウドワーカーに回答してもらう．JNQの構築フローを図~\ref{fig:construction_of_JNQ}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F2\begin{figure}[t]\begin{center}\includegraphics{32-2ia4f02}\end{center}\caption{日本語NaturalQuestionsの構築フロー}\label{fig:construction_of_JNQ}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.1\subsection{質問文候補と文書の収集}\label{Question_and_Documents_Collection_for_JNQ}JNQの質問文候補は，Yahoo!検索\footnote{\url{https://search.yahoo.co.jp/}}に入力された検索クエリログから抽出する\footnote{抽出対象としたクエリログの期間等の情報は社内の都合により非公開とする．}．人々は検索をする際，完全な文で検索せずに単語を並べて検索する場合がある．このようなクエリは検索エンジンに特化しており，質問文ではないものも含まれているため，スペースを含むクエリを質問文候補から除く．また，短いクエリは，質問文になっていないことが多いため，8単語以上で構成されるクエリのみを抽出する\footnote{単語分割は形態素解析ツールJuman++で行う．}．その後，以下の質問パターンのいずれかにマッチしたクエリを抽出する．%%%%%\begin{enumerate}\item{「は＋疑問詞」を含む}\item{最後の文字が「?」}\item{「意味」「方法」，「理由」「～方」などの特定の単語を含む}\end{enumerate}%%%%%これらの手順により得られた質問文候補でGoogle検索を行い，検索結果の上位5件以内にWikipediaの記事がある場合，最も上位の記事一つを文書として採用する．検索結果上位5件以内にWikipediaの記事がない質問文候補は除去する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.2\subsection{良い質問文の識別}抽出した質問文候補の中には，質問ではない文や曖昧な質問文が存在するため，クラウドソーシングを用いて良い質問文を得る．\color{black}オリジナルのNQでは，良い質問文を「事実について尋ねるものであり，エンティティや説明で答えることができるもの」，悪い質問文を「曖昧なもの，理解しづらいもの，明らかに誤った前提に依存しているもの，意見を求めるもの，または事実に基づく情報を明確に求めていないもの」と定義している．JNQではこれらを拡張し，\color{black}良い質問文を，「事実，方法，原因・理由について尋ねる質問」と定義し，悪い質問文を，「曖昧」，「前提が間違っている」，「意見を求める」，「作品のタイトル\footnote{例えば「君たちはどう生きるか」のような質問文の形式をとった作品のタイトルのことを指す．}」，「答えるタイミングによって答えが変化する質問」と定義する．\color{black}検索クエリには方法や原因・理由を尋ねる質問文が一定の割合で含まれるので，良い質問文の定義に追加した．\color{black}良い質問文かどうかを，1質問文あたり10人のクラウドワーカーによって判定してもらう．10人のクラウドワーカーのうち，6人以上が良い質問文と判断した質問文候補を質問文として採用する．良い質問文と判断された例を表~\ref{tab:Examples_of_good_question}に示す．悪い質問文と判断された例としては，「今日はどこに行こうかな?」，「amazon支払い方法が承認されません」などがある．%%%%%%%%%%%%%%%%%%%%%T1\begin{table}[t]\input{04table01.tex}\caption{良い質問文の例}\label{tab:Examples_of_good_question}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.3\subsection{longanswer抽出}\label{Long_Answer_Identification}文書つまりWikipedia記事から良い質問文に対する答えを導くのに十分な情報を含む段落をlonganswerとしてクラウドソーシングにより得る．アノテーションコストを下げるため，クラウドワーカーには最大で5段落のみを与える．この5段落は，記事の最初の段落と，\ref{Question_and_Documents_Collection_for_JNQ}節で行ったGoogle検索によって得られるスニペットとの関連度が高い上位4段落（最初の段落以外）から構成する（図\ref{fig:5paragraph}）．これは，概要を提供する最初の段落や，スニペットとの関連性が高い段落には答えが含まれている可能性が高いからである．関連度は，スニペットと段落をそれぞれbagofwordsで表現し，それらのcos類似度で計算する．この5段落に含まれない段落は，longanswerではない段落と判断し，\textsc{none}ラベルを付与する．得られた記事のタイトルや段落のセクション情報は保持しておく．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F3\begin{figure}[t]\begin{center}\includegraphics{32-2ia4f03.eps}\end{center}\caption{クラウドワーカーにlonganswerかどうかを尋ねるために，文書から段落を選ぶ方法}\label{fig:5paragraph}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10人のクラウドワーカーに質問文と各段落を与え，段落が質問の答えを推論するのに十分な情報を含むかどうかを尋ねる．10人中の票数によって段落を3つに分類する．7票以上が\textsc{yes}の場合，その段落をlonganswerとし，\textsc{exist}ラベルを付与する．票数が4票以上6票以下の場合，longanswerかどうか曖昧な段落とし，\textsc{ambiguous}ラベルを付与する．この段落については，学習時に除去することで，ノイズを減らすことができると考えられる．3票以下の場合は，longanswerを含まない段落とし，\textsc{none}ラベルを付与する．段落ごとに判定するため，一つの質問に対して複数のlonganswerが存在する，もしくは，longanswerが一つも存在しない可能性がある．この5段落にlonganswerとなる段落が存在しない場合，質問文に対するlonganswerは文書の中にないと判断する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.4\subsection{yes/no質問識別}\ref{Short_Answer_Identification}節で説明する次のステップでlonganswerである段落からshortanswerを得るが，質問文がyes/no質問かどうかで手続きが異なる．そのため，まず質問文がyes/no質問かどうかをクラウドソーシングで判断する．10人中7人以上がyes/no質問であると判断した場合に，その質問文をyes/no質問とする．4人から6人がyes/no質問であると判断した場合は，yes/no質問かどうかが曖昧な質問文としてデータセットから除去する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.5\subsection{shortanswer識別・抽出}\label{Short_Answer_Identification}質問文がyes/no質問かどうかによって場合分けを行い，以下の手順でspananswerもしくはyes/noanswerをshortanswerとして得る．%%%%%\paragraph{spananswer抽出}質問文がyes/no質問ではない場合，10人のクラウドワーカーに，longanswerと判断された段落内から質問文に対するspananswerを抜き出してもらう．もし，その段落にspananswerが無ければ，クラウドワーカーは\textsc{none}と判定する．10人の回答の集約にあたり，前処理として，ある回答が他の回答に包含される場合は，文字列が長い方の票数が小さい場合のみ，短い方の回答に票を加算する．その後，多数決をとり，最も票を集めた回答をshortanswerとして採用する．最多票数を集めた回答が複数ある場合は，文字列が短い回答を優先し，\textsc{none}が含まれる場合は\textsc{none}ではない回答を優先する．また，評価を頑健にするために，評価用のデータセット(dev,test)においてのみ，shortanswersとして一つ以上の回答を保持する．shortanswersは，shortanswerに選ばれた回答と，それ以外に3票以上集まった回答とする．%%%%%\paragraph{yes/noanswer識別}質問文がyes/no質問の場合，クラウドワーカーは，longanswerと判断された段落から，質問文に対する答えが\textsc{yes}か\textsc{no}かを判断する．10人のクラウドワーカーのうち，8人以上が\textsc{yes}もしくは\textsc{no}のどちらかを回答した場合，その回答をshortanswerとする．\textsc{yes}もしくは\textsc{no}と答えた人数が7人以下の段落は，\textsc{yes}か\textsc{no}か曖昧な質問文と判断し，shortanswerには\textsc{none}ラベルを付与する．つまり，この段落はlonganswerのみと判断される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4
\section{日本語BoolQ}
\label{JBoolQ}BoolQ\cite{clark-etal-2019-boolq}は，自然な質問文，かつ，yes/no質問に焦点を当てたQAデータセットである．non-factoidの質問文が多く含まれており，解くために多様な推論能力が必要とされる．各事例は質問文，段落（NQにおけるlonganswerに相当），答え(\textsc{yes/no})で構成される．質問文と段落は，NQと同様に，検索エンジンのクエリログとWikipedia記事を利用している．BoolQはNQより仕様を簡単化しており，\textsc{yes/no}のどちらかの答えをもつ質問文のみを採用し，文書全体ではなく一つの段落を質問文とペアにしている．日本語BoolQ(JBoolQ)は，JNQにおけるyes/no質問と同じく，質問文，文書，longanswer，yes/noanswerで構成する．\color{black}BoolQとの違いとしては，各質問文は複数のlonganswerをもつ可能性があることと，実際のケースでは\textsc{yes}か\textsc{no}で答えることができない場合があるため\textsc{yes/no}以外に「答えられない」(\textsc{none})を追加したことであり，このようにデータセット仕様を再定義した．\color{black}そのため，BoolQよりも難易度が高く，質問に答えるためには文書に関するより深い理解が求められる．JBoolQは基本的にはJNQと同じ手続きで構築する．ただし，JNQに含まれるyes/no質問は約1\%と少ないことを鑑み，JNQよりも大規模なクエリログから収集する．構築手順は次のとおりである．各ステップの詳細は\ref{JNQ}節を参照されたい．%%%%%%\begin{enumerate}\item質問文候補と文書の収集\footnote{yes/no質問を抽出するためにJNQから条件を改変する．具体的には，6単語以上で，「?」もしくは「か」で終わるクエリを抽出する．}\item良い質問文の識別\itemyes/no質問識別\itemlonganswer識別\itemyes/noanswer識別\end{enumerate}%%%%%%ここで，JNQと比べ，yes/no質問識別とlonganswer識別の順序を逆にしているのは，対象とするyes/no質問に早期に候補を絞り，後段のアノテーションコストを削減するためである．最後に，JNQのyes/no質問をJBoolQにマージする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5
\section{分析}
本節では，構築したJNQとJBoolQについて分析する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.1\subsection{JNQ}%%%%%\paragraph{統計}JNQは16,641質問文からなる．質問文，記事，段落，spananswerの数，平均文字数，最大文字数，最小文字数を表\ref{tab:statistics_of_JNQ}に示す．段落の統計を表\ref{tab:statistics_of_JNQ's_paragraph}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%T2\begin{table}[b]\input{04table02.tex}\hangcaption{JNQにおけるユニークな質問文，記事，段落，spananswerの数と長さ．JNQに採用した段落は，アノテーションしていない段落を含むすべての段落を指す．}\label{tab:statistics_of_JNQ}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T3\begin{table}[b]\input{04table03.tex}\caption{JNQにおいてアノテーションされた段落の統計（延べ79,276段落）}\label{tab:statistics_of_JNQ's_paragraph}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%JNQでは，一つの質問文に対して複数の段落がlonganswerになる場合がある．1質問文あたりのlonganswer数の分布を表\ref{tab:numbers_of_long_answer}に示す．複数のlonganswerを持つ質問文は全体の約10\%，longanswerを持つ質問文の約28\%である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%T4\begin{table}[t]\input{04table04.tex}\caption{JNQにおける1質問文あたりのlonganswer数の分布}\label{tab:numbers_of_long_answer}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{質問タイプ}JNQから100件の質問文をサンプリングし，英訳したときに，どの疑問詞から始まるかによって分類した．その結果を表\ref{tab:questiontypeofJNQ}に示す．質問文のタイプとして，「What」を尋ねる質問がもっとも多く，39\%を占めた．その次に，「How」を尋ねる質問が多く，31\%を占めた．「How」を尋ねる質問のうち，84\%は方法に関する質問であり，全体の1/4を占める結果となっている．NQにおいて「Howto」から始まる質問は全体の1\%未満であることから，JNQでは，事実を尋ねる質問よりも答える難易度の高いと考えられる「Howto」を尋ねる質問が多い．%%%%%%%%%%%%%%%%%%%%%%T5\begin{table}[t]\input{04table05.tex}\caption{JNQの質問文のタイプ分類}\label{tab:questiontypeofJNQ}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{LexicalOverlap}SQuADにおいて指摘されているLexicalOverlapについて調査した．LexicalOverlapは，質問文と段落において重複している単語の割合である．この割合が大きい場合，モデルは質問に対して簡単に答えることができることが知られている．JNQにおいて，各質問文と\color{black}longanswerである\color{black}段落のペアを単語単位で分割し\footnote{単語の分割にはIPAdicを利用したMeCab(\url{https://taku910.github.io/mecab/})を用いた．}，LexicalOverlapを計算した．JNQのLexicalOverlapは59.4\%であり，JSQuADの79.5\%より低い．この結果は，SQuADのような，アノテータが文章を読んだ後に質問文を作成するデータセットによく見られるannotationartifactsの問題に対処していることを示している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.2\subsection{JBoolQ}%%%%%\paragraph{統計}JBoolQは6,467質問文からなる．質問文，段落の平均文字数，最大文字数，最小文字数を表\ref{tab:statistics_of_JBoolQ}に示す．質問文の平均長はJNQより短い．これは，クエリログから質問文候補を抽出するとき，JNQは8単語以上のクエリを抽出したが，JBoolQはより多くのyes/no質問を得るために6単語以上のクエリを抽出したからである．段落の統計を表\ref{tab:statistics_of_JBoolQ's_paragraph}に示す．1質問文あたりのlonganswer数の分布を表\ref{tab:numbers_of_long_answer_JBoolQ}に示す．この分布については，JNQと同様の傾向であった．%%%%%%%%%%%%%%%%%%%%%%%T6\begin{table}[t]\input{04table06.tex}\caption{JBoolQにおける質問文と段落の数と長さ}\label{tab:statistics_of_JBoolQ}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T7\begin{table}[t]\input{04table07.tex}\caption{JBoolQにおける段落の統計（全段落数は31,430）}\label{tab:statistics_of_JBoolQ's_paragraph}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T8\begin{table}[t]\input{04table08.tex}\caption{JBoolQにおける1質問文あたりのlonganswer数の分布}\label{tab:numbers_of_long_answer_JBoolQ}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T9\begin{table}[t]\input{04table09.tex}\caption{JBoolQの質問文のタイプ分類}\label{tab:questiontypeofJBoolQ}{\vskip-2pt}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{質問タイプ}JBoolQから100件の質問文をサンプリングし，質問タイプによって分類した．基本的にBoolQで使用された分類方法を採用し，「可能性」と「必要性」の2つのカテゴリを追加した．その結果を表\ref{tab:questiontypeofJBoolQ}に示す．「その他事実（実体）」に関する質問が31\%を占め，最も多い．JBoolQで新しく追加されたカテゴリである「可能性」と「必要性」を尋ねる質問は，それぞれ23\%と11\%を占め，データセット全体の1/3を占める．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6
\section{実験}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.1\subsection{実験設定}JNQとJBoolQをQAシステム評価のベンチマークとして利用するために，4つのタスクを定義する．JNQからはlonganswer抽出，shortanswer抽出，open-domainNQの3つのタスク，JBoolQからはyes/noanswer識別タスクを定義する．longanswer抽出タスク，shortanswer抽出タスク，yes/noanswer識別タスクにおいては，それぞれ事前学習モデルに対しファインチューニングすることで，モデルの学習を行った．事前学習モデルとして，Tohoku-BERT\footnote{\url{https://huggingface.co/cl-tohoku/bert-base-japanese-v2}}\textsuperscript{,}\footnote{\url{https://huggingface.co/cl-tohoku/bert-large-japanese}}とWaseda-RoBERTa\footnote{\url{https://huggingface.co/nlp-waseda/roberta-base-japanese}}\textsuperscript{,}\footnote{\url{https://huggingface.co/nlp-waseda/roberta-large-japanese-seq512}}を用いる．それぞれ，baseモデル（パラメータ数111M）とlargeモデル（パラメータ数337M）を用いる．JNQおよびJBoolQにおける各質問をランダムにtrainセット，devセット，testセットに分割する．各タスクの統計を表~\ref{tab:statistics}に示す．これらのタスクに対してベースラインモデルを構築する．実験に用いたハイパーパラメータを表\ref{tab:hyper_parameters}に示す．learningrate，epoch，batchsizeについては，devセットを用いて最適なハイパーパラメータを探索し，そのハイパーパラメータを用いてtestセットで性能を評価する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T10\begin{table}[b]\input{04table10.tex}\hangcaption{4つのタスクの統計：longanswer抽出においては質問数，その他のタスクにおいてはインスタンス数である．}\label{tab:statistics}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T11\begin{table}[b]\input{04table11.tex}\caption{実験に用いたハイパーパラメータ}\label{tab:hyper_parameters}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{longanswer抽出}\label{subsec:task.longanswer}JNQでは，NQとは異なり，一つの文書に複数のlonganswerが存在することもあれば，longanswerが存在しない場合もある．従って，システムは，質問と文書が与えられたとき，longanswerを持つすべての段落を選択する必要がある．我々は，段落単位でlonganswerかどうかを判断する2値分類を行うベースラインモデルを構築する．評価尺度には段落単位のprecision，recall，F1スコアを使用する．実験では，以下の2種類の学習セットを用いる．%%%%%\begin{enumerate}\item\ref{Long_Answer_Identification}節で収集した段落で，正例と難しい負例（スニペットとの関連性は高いが，longanswerではない段落）を含む．\item文書中のすべての段落．\end{enumerate}%%%%%\textsc{ambiguous}ラベルが付与された段落は両方の学習データセットから除外する．テストでは，実際の抽出シナリオに近づけるため，文書中のすべての段落を使用する．文書中のすべての段落を含む学習セットを用いる場合，longanswerである段落が少なく学習が難しいため，largeモデルのみ，アノテーションしていない段落をダウンサンプリングする．\color{black}また，人間の精度も評価する．コストの関係上，クラウドワーカーの代わりに一定のスキルがある人に依頼するのは難しいため，データセット構築過程と同様にクラウドソーシングを用いて評価する．\color{black}10人のクラウドワーカーに回答を依頼し，7人以上のクラウドワーカーが同意した場合に，その段落はlonganswerであるとみなし，そうでない場合はlonganswerではないとみなす．コスト上の理由から，テストセット全体を使用する代わりに，100問をサンプリングする．%%%%%\paragraph{shortanswer抽出}本タスクでは，longanswerが存在するとアノテーションされた質問と段落のペアのみを対象とし，yes/no質問はNQに従い除去する．\color{black}SQuAD2.0\cite{rajpurkar-etal-2018-know}のタスク設定と同様に，システムは質問と段落のペアが与えられると，shortanswerが存在する場合は段落からshortanswerとしてスパンを抽出し，shortanswerが存在しなければunanswerableと回答する．\color{black}評価尺度はEM(ExactMatch)と文字単位のF1を用いる．我々は，shortanswer抽出を段落内の各トークンが，答えのスパン開始／終了位置であるかどうかの分類問題として扱い，shortanswerがない場合，答えのスパン開始／終了位置を[CLS]トークンの位置とする\footnote{\color{black}HuggingFace社が提供するtransformersライブラリを利用した(\url{https://github.com/huggingface/transformers/blob/main/examples/legacy/question-answering/run_squad.py})．}．また，テストセット全体について，クラウドソーシングを用いて人間の精度を評価する．3人のクラウドワーカーに回答を依頼し，そのスコアを平均する．%%%%%\paragraph{open-domainNQ}\label{subsec:task.open-domain-nq}本タスクは，紐づいた文書を与えられない設定において，shortanswerを答えるタスクである．shortanswerが存在するとアノテーションされた質問を対象とし，shortanswerが3単語以上の質問は正確に回答することが困難であると考えられるため削除する\color{black}ことで，適度な難易度設定にしている．英語のopen-domainNQタスク\cite{pmlr-v133-min21a}の実験設定に沿って，\color{black}評価指標にはEM(ExactMatch)を使用する．2種類のベースラインモデルを用いる．一つはretriever-readerモデルである．TF-IDFとDPRretriever\cite{karpukhin-etal-2020-dense}をretrieverに，DPRreaderをreaderに使用する．まず，retrieverでWikipediaのデータベースから質問に関連する100段落を検索し，次にreaderで検索された段落から答えを見つける．DPRチェックポイントは，第2回AI王\footnote{\url{https://sites.google.com/view/project-aio/competition2}}で構築されたベースラインモデルのものを用いる．もう一つのベースラインモデルは大規模言語モデルであるOpenAIGPT-4\footnote{gpt-4-turbo-2024-04-09を用いた．}である．ファインチューニングは行わず，ゼロショットで問題を解く．システムプロンプトは``数単語以内で簡潔に回答してください．「です」，「ます」，句読点なども必要ありません。''とする．%%%%%\paragraph{yes/noanswer識別}\label{subsec:task.boolq}\ref{JBoolQ}節で述べたように，JBoolQデータセットでは，BoolQとは異なり，\textsc{yes}，\textsc{no}，\textsc{none}の3種類のラベルが含まれる．すなわち3値分類タスクであり，システムは質問と段落のペアが与えられたとき，\textsc{yes}，\textsc{no}，\textsc{none}のいずれかを回答する．\color{black}\textsc{yes}，もしくは，\textsc{no}を抽出することが目的であるため，\color{black}評価尺度は\textsc{yes}と\textsc{no}についてのprecision,recall,F1のマイクロ平均を用いる．\textsc{yes}か\textsc{no}のラベルを持つ事例は少ないので，これらを5倍にオーバーサンプリングして学習に用いる．また，10人のクラウドワーカーに以下の2つのタスクを行ってもらい，人間の精度を評価する．まず，longanswer抽出と同様の方法で，段落がlonganswerかどうかを判断する．次に，longanswerと判定された段落に対して，\textsc{yes}，\textsc{no}，\textsc{none}の判定を行う．\color{black}longanswerではないと判定された段落には\textsc{none}ラベルを付与する．\color{black}\textsc{yes}，\textsc{no}，\textsc{none}のうち，最も票数の多かったものを採用し，最多票数が同じ場合は\textsc{none}を採用する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.2\subsection{結果}%%%%%\paragraph{longanswer抽出}longanswer抽出タスクの評価結果を表\ref{tab:longanswer}に示す．アノテーションした段落のみ（\textsc{ambiguous}である段落を除く）で学習した場合，recallは高い値を示すが，precisionは低い値を示した．すべてのデータで学習した場合，F1スコアが向上した\footnote{Waseda-RoBERTa-largeの場合，1/8までダウンサンプリングしても精度が出なかった．}．アノテーションされておらず，longanswerではないとして扱われる段落が学習に役立つことを示している．%%%%%%%%%%%%%%%%%%%%%%%%%%T12\begin{table}[t]\input{04table12.tex}\hangcaption{longanswer抽出の精度．ベースラインモデルと人間のPrecision(P)，recall(R)，F1を示す．人間スコアの算出はテストセットからランダムに抽出した100問に対して行った．}\label{tab:longanswer}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%人間は，recallは高いが，precisionが低い．人間が\textsc{exist}であると回答した段落は，確かにlonganswerであることが多いが，クラウドソーシング対象の5段落に含まれていない．これは，アノテーションしていない段落の中にlonganswerを持つ段落がいくつかあることを示している．この問題に対処するためには，モデルによってlonganswerと判定された5つの段落以外の段落についてlonganswerかどうかをクラウドソーシングで判断する方法が考えられる．この検討は今後の課題である．%%%%%\paragraph{shortanswer抽出}shortanswer抽出タスクの評価結果を表\ref{tab:shortanswer}に示す．Waseda-RoBERTa-baseとWaseda-RoBERTa-largeの性能が良いが，Tohoku-BERT-baseおよびTohoku-BERT-largeは性能が低い．Tohoku-BERTは，段落全体を予測して出力する場合があり，これはタスクの定義に沿っていない．これは，我々のデータセットがJSQuAD\cite{kurihara-etal-2022-jglue}と比較して，spananswerが長く難しいことが原因の一つと考えられる．%%%%%%%%%%%%%%T13\begin{table}[t]\input{04table13.tex}\caption{shortanswer抽出の精度}\label{tab:shortanswer}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T14\begin{table}[t]\input{04table14.tex}\caption{open-domainタスクの精度}\label{tab:opendomainnq}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{open-domainNQ}open-domainNQタスクの評価結果を表\ref{tab:opendomainnq}に示す．open-domainNQタスクでは，devセットにおいて，TF-IDF+DPRreaderがDPRよりもわずかに良い結果を示した．質問文の平均長が比較的短く，質問文中のsalientなフレーズや希少なエンティティがDPRの正確な検索を難しくしていると推測される\cite{chen-etal-2022-salient}．GPT-4はTF-IDF+DPRreaderとDPRの精度を上回った．一部の誤答は表記揺れによるものであり，完全一致はしていないが実質的には正解していた．具体的には正答「1坪」に対して回答が「約1坪」，正答「フランクリン・ルーズベルト」に対して回答が「フランクリン・D・ルーズベルト」，正答「69歳」に対して回答が「69歳まで」といった誤答であった．また，「脳の血流を良くする方法」のように標準的な答えがなく，open-domainQAに適さない質問文が含まれており，このような質問文は今後除去することを検討する予定である．%%%%%\paragraph{yes/noanswer識別}yes/noanswer識別タスクの評価結果を表\ref{tab:yesnoansweridentification}に示す．Waseda-RoBERTa-largeが最も高く，F1は60\%程度であった．\textsc{none}ラベルを追加したことでBoolQよりも難易度が高くなっていると考えられる．モデルの性能を向上させるには，より高度な知識や推論能力が必要となり，我々のベンチマークは価値のあるものであると言える．人間は，recallが高い値を示しており，モデルよりも多くの\textsc{yes}，\textsc{no}ラベルを正しく認識することができている．%%%%%%%%%%%%%%%%%%%%%%%%%T15\begin{table}[t]\input{04table15.tex}\caption{yes/noanswer識別の精度}\label{tab:yesnoansweridentification}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.3\subsection{議論}devセットにおけるシステムの正解例と誤り例を表\ref{tab:discussionoflonganswerextraction}から表\ref{tab:discussionofyes/noansweridentification}に示す．各タスクにおいて，最も性能が高かったシステムの例を載せている．longanswer抽出タスク（表\ref{tab:discussionoflonganswerextraction}）の正解例では，システムが段落中の「ホーム球場」と質問文中の「本拠地」を同義と判断し，\textsc{exist}と判断することができている．誤り例1では，流域面積について触れられているが，日本で一番広いかどうかについては記述されていないため正解は\textsc{none}だが，システムは\textsc{exist}と予測している．誤り例2では，人間はひゅうが飯が丼物であると推測し，段落中の「材料となる魚」をご飯の上に乗せると判断しているが，システムは，ご飯の上に乗せると判断できず\textsc{none}となっている．誤り例3では，システムが段落中の「ベル」を人名と判断できず\textsc{none}としたと推測される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%T16\begin{table}[htp]\input{04table16.tex}\caption{longanswer抽出タスクにおけるシステムの正解例・誤り例}\label{tab:discussionoflonganswerextraction}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%shortanswer抽出タスク（表\ref{tab:discussionofshortanswerextraction}）の正解例では，「ブラジルが生産量1位」とは明記されていないが，文脈からブラジルを回答として出力することができている．誤り例1では，鐘の鳴る時間が，質問文中では「朝と晩の6時」，段落中では「午前6時」と「午後6時」で異なっており，これらを正しく認識できずに誤ったと考えられる．誤り例2では，正解は「70歳未満」であり「70歳」は対象となっていないが，システム出力は「70歳」であり「70歳」も対象となってしまっている．%%%%%%%%%%%%%%%%%%%%%T17\begin{table}[t]\input{04table17.tex}\caption{shortanswer抽出タスクにおけるシステムの正解例・誤り例}\label{tab:discussionofshortanswerextraction}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T18\begin{table}[t]\input{04table18.tex}\caption{open-domainタスクにおけるシステムの正解例・誤り例}\label{tab:discussionofopen-domain}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T19\begin{table}[t]\input{04table19.tex}\caption{yes/noanswer識別タスクにおけるシステムの正解例・誤り例}\label{tab:discussionofyes/noansweridentification}\end{table}%%%%%%%%%%%%%%%%open-domainNQ（表\ref{tab:discussionofopen-domain}）では，評価指標としてEMを用いているが，誤り例1のように単位が付くかどうかや，誤り例2のようにカタカナか漢字の違いで完全一致せず，不正解となるケースがあった．また，誤り例3のように，システムが出力した文字列が段落中に無いため，回答が正しくても不正解となる場合もあった．yes/noanswer識別タスク（表\ref{tab:discussionofyes/noansweridentification}）の正解例では，「ルッコラを生で食べられる」とは明記されていないが，「生で料理に利用する」という文脈から「食べられる」と判断することができている．誤り例1では，段落中に「血糖値の上昇を抑える」と記述されているためシステムは\textsc{yes}と出力したと考えられるが，「血圧が下がる」とは記述されていないので正解は\textsc{none}になっている．誤り例2では，段落中に「従業員」という単語がなくシステムは\textsc{none}と出力したが，人間は「従業員」と「労働者」を同義と捉えたため，正解は\textsc{no}となっている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7
\section{結論}
本研究では，日本語NaturalQuestions(JNQ)と日本語BoolQ(JBoolQ)の2つのQAデータセットを構築した．質問文は，検索エンジンのクエリログから収集しており，人間の情報欲求に由来する自然なものである．アノテーションは，コストを低減するためにクラウドソーシングで行った．JNQからlonganswer抽出，shortanswer抽出，open-domainNQの3つのタスク，JBoolQからyes/noanswer識別の合計4タスクを定義し，ベースラインモデルの性能を評価した．構築したデータセットはQAモデルやNLPモデルの訓練，評価，分析に活用でき，日本語においてこれらの研究が促進されることが期待される．%%%Acknowledgement%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgment本研究はLINEヤフー株式会社と早稲田大学の共同研究により実施した．また本論文は以下の論文を拡張・翻訳したものである．Uematsu,T.,Wang,H.,Kawahara,D.,andShibata,T.(2024).ABenchmarkSuiteofJapaneseNaturalQuestions.InProceedingsofthe13thJointConferenceonLexicalandComputationalSemantics(*SEM2024),pp.58--68,MexicoCity,Mexico.AssociationforComputationalLinguistics.\color{black}植松拓也,王昊,福田創,河原大輔,柴田知秀(2024).日本語NaturalQuestionsとBoolQの構築.言語処理学会第30回年次大会発表論文集,pp.679--684.\color{black}%%%Bibliography%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.7}\bibliography{04refs}%%%Biography%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{植松拓也}{%2023年早稲田大学基幹理工学部情報通信学科卒業．2024年現在同大学院修士課程在学中．}\bioauthor{王昊}{%2024年早稲田大学基幹理工学研究科修士課程修了．2024年現在同大学院博士課程在学中．}\bioauthor{福田創}{%2024年現在早稲田大学基幹理工学部学士課程在学中．}\bioauthor{河原大輔}{%2002年京都大学大学院博士課程単位取得認定退学．2005年同修了．博士（情報学）．東京大学学術研究支援員，情報通信研究機構主任研究員，京都大学准教授を経て，2020年より早稲田大学教授．}\bioauthor{柴田知秀}{%2007年東京大学大学院情報理工学系研究科博士課程修了．博士（情報理工学）．同年より京都大学大学院情報学研究科助教．2014年より同特定講師．2019年よりYahoo!JAPAN研究所上席研究員．2023年よりLINEヤフー研究所上席研究員／SBIntuitions株式会社ChiefResearchScientist．自然言語処理に関する研究開発に従事．言語処理学会，人工知能学会，情報処理学会各会員．}\end{biography}\biodate%%%%受付日の出力（編集部で設定します）\end{document}