\label{sec:introduction}対話システムがユーザ発話から抽出するべき情報は，背後にあるアプリケーションに依存する．対話システムをデータベース検索のための自然言語インタフェースとして用いる場合，対話システムはデータベースへのクエリを作成するために，ユーザ発話中で検索条件として指定されるデータベースフィールドとその値を抽出する必要がある．データベース検索対話において，ユーザ発話中からこのような情報を抽出する研究はこれまで多くなされてきた．例えば，\citeA{raymond2007generative,Mesnil2015,Liu2016a}は，ATIS(TheAirTravelInformationSystem)コーパス~\cite{Hemphill:1990:ASL:116580.116613,Dahl:1994:ESA:1075812.1075823}を用いて，ユーザ発話からデータベースフィールドの値を抽出する研究を行っている．ATISコーパスはWizard-of-Ozによって収集されたユーザと航空交通情報システムとの対話コーパスであり，各ユーザ発話中の表現には，出発地や到着日などのデータベースフィールドに対応するタグが付与されている．ATISコーパスを用いた研究の課題はタグの付与された情報を発話から精度よく抽出することである．これらの研究の抽出対象である出発地や到着日などの情報はユーザ発話中に明示的に出現し，直接データベースフィールドに対応するため，データベース検索のための明示的な条件となる．一方，実際の対話には，データベースフィールドには直接対応しないものの，クエリを作成するために有用な情報を含む発話が出現し，対話システムがそのような情報を利用することで，より自然で効率的なデータベース検索を行うことが可能になる．例として，不動産業者と不動産を探す客の対話を考える．不動産業者は対話を通じて客が求める不動産の要件を確認し，手元の不動産データベースから客の要件を満たす不動産を絞り込む．このとき，客の家族構成は，物件の広さを絞り込む上で有用な情報であろう．しかし，家族構成は物件の属性ではなく客の属性であるため，通常，不動産データベースには含まれない．客の家族構成のように，データベースフィールドには直接対応しないが，データベース検索を行う上で有用な情報を{\bf非明示的条件}と呼ぶ\cite{Fukunaga2018}．我々は，非明示的条件を「データベースフィールドに明示的に言及しておらず，『xならば一般的にyである』という常識や経験的な知識によってデータベースフィールドと値の組（検索条件）へ変換することができる言語表現」と定義する．例えば，「一人暮らしをします」という言語表現は，物件の属性について明示的に言及していない．しかし，『一人暮らしならば一般的に物件の間取りは1LDK以下である』という常識により，〈間取り$\leq$1LDK〉という検索条件に変換できるため，これは非明示的条件となる．一方，「賃料は9万円を希望します」や「築年数は20年未満が良いです」のような言語表現は，データベースフィールドに明示的に言及しているため，非明示的条件ではない．また，「渋谷で探しています」のようにデータベースフィールドが省略されている場合でも，省略の補完によって【エリア】というデータベースフィールドに明示的に言及する表現に言い換えることが可能である場合は非明示的条件とはみなさない．\citeA{Taylor1968}による情報要求の分類に照らすと，明示的な検索条件は，ユーザ要求をデータベースフィールドとその値という形式に具体化しているため，調整済みの要求(compromisedneed)に対応する．一方，非明示的条件は，ユーザ自身の問題を言語化しているが検索条件の形式に具体化できていないため，形式化された要求(formalisedneed)に対応する．非明示的条件を利用する対話システムを実現するためには，以下の2つの課題が考えられる．\begin{itemize}\item[(1)]非明示的条件を含むユーザ発話を，データベースフィールドとその値の組（検索条件）へ変換する．\item[(2)]ユーザ発話中から，(1)で行った検索条件への変換の根拠となる部分を抽出する．\end{itemize}課題(1)は，非明示的条件を含む発話からデータベースへのクエリを作成するために必要な処理である．図\ref{fig:dial_ex}に示す対話では，客の発話に含まれる「一人暮らし」という文言から，〈間取り$\leq$1LDK〉という検索条件へ変換できる．本論文では，課題(1)を，発話が関連するデータベースフィールドを特定し，そのフィールドの値を抽出するという2段階に分けて考え，第一段階のデータベースフィールドの特定に取り組む．1つのユーザ発話が複数のデータベースフィールドに関連することもあるので，我々はこれを発話のマルチラベル分類問題として定式化する．発話からフィールドの値を抽出する第二段階の処理は，具体的なデータベースの構造や内容が前提となるため，この論文では扱わず，今後の課題とする．\begin{figure}[b]\begin{center}\includegraphics{26-1ia5f1.eps}\end{center}\caption{対話と非明示的条件から検索条件への変換の例}\label{fig:dial_ex}\end{figure}課題(2)によって抽出された根拠はデータベースへのクエリに必須ではないが，システムがユーザへの確認発話を生成する際に役立つ．非明示的条件を検索条件へ変換する際に用いるのは常識や経験的な知識であり例外も存在するため，変換結果が常に正しいとは限らない．例えば，不動産検索対話において一人暮らしを考えている客が2LDKの物件を希望することもありうる．したがって，システムの解釈が正しいかどうかをユーザに確認する場合がある．この際，システムが行った解釈の根拠を提示することで，より自然な確認発話を生成することができる．図~\ref{fig:dial_ex}のやり取りにおいて，「一人暮らしをしたいのですが．」というユーザ発話をシステムが〈間取り$\leq$1LDK〉という検索条件へ変換したとする．このとき，単に「間取りは1LDK以下でよろしいですか？」と確認するよりも，「一人暮らしということですので，間取りは1LDK以下でよろしいですか？」とシステムが判断した理由を追加することでより自然な対話となる．また，対話として自然なだけではなく，ユーザがシステムの判断に納得するためにも根拠を提示することは重要である\cite{XAI-Gunning,XAI-Monroe}．このような確認発話を生成する際に，ユーザ発話中の「一人暮らし」という表現を〈間取り$\leq$1LDK〉の根拠として抽出することは有用である．また，非明示的条件を含むユーザ発話が与えられたとき，その非明示的条件に関連するデータベースフィールドについての質問を生成するためにも抽出した根拠を利用できる．例えば，図~\ref{fig:dial_ex}中のユーザ発話を【間取り】というデータベースフィールドへ分類し，その根拠として「一人暮らし」を抽出した場合，「一人暮らしということですが，間取りはいかがなさいますか？」という質問を生成できる．非明示的条件に対応できない対話システムでは，このようなユーザ発話に対して，ユーザ発話を理解できなかったという返答を行うか，まだ埋まっていない検索条件について質問を行うことしかできない．また，根拠を抽出し，蓄積することにより，対話中でどのような非明示的条件が出現しやすいかということを，システムの開発者が知ることができる．仮に，「一人暮らし」や「家族4人」のような客の家族構成の情報が頻繁に出現することがわかれば，システムの開発者は，家族構成に関係する情報をデータベースに新規に追加するという改良を施すことができる．本論文では，データベースフィールドへのマルチラベル分類と同時に，根拠抽出を行う．非明示的条件から検索条件への変換の根拠を各発話に対してアノテーションすることはコストが高いため，教師なし学習によって根拠抽出を行う．本論文の貢献は，データベース検索を行うタスク指向対話において，非明示的条件を含むユーザ発話をデータベースフィールドと値の組（検索条件）へ変換し，同時にその根拠をユーザ発話中から抽出する課題を提案することである．本稿では，この課題の一部であるデータベースフィールドへの分類と根拠抽出を行うために，(1)サポートベクタマシン(SVM)，(2)回帰型畳込みニューラルネットワーク(RCNN)，(3)注意機構を用いた系列変換による3種類の手法を実装し，その結果を報告する．本論文の構成は以下の通りである．2節では関連研究について述べ，本論文の位置付けを明らかにする．3節では本論文で利用するデータと問題設定について詳述する．4節ではデータベースフィールドへの分類とその根拠抽出手法について述べる．5節では評価実験の結果について述べ，6節で本論文をまとめる．