\section{はじめに}
ユーザから情報を取得することは，対話システムの主要な用途の1つである．初期の研究であるATIS\cite{hemphill1990atis}では，出発地，目的地，希望の日時等，フライト検索に必要な情報を得ることが対話システムの目的であった．近年では，ものやサービスに対するユーザ評価や意見を収集することを目的とするインタビュー対話システムも提案されている\cite{johnston2013spoken}．しかし，対話システムとのやり取りによって，うまくユーザの嗜好や評価を聞き出すことはまだ十分に達成できていない．一方，人同士の会話に目を向けると，会話を通して客の好みをうまく聞き出していることがわかる．例えば，ソムリエは，客の嗜好を捉えて客の好みにあった料理やワインを勧めるが，その際，客の好みの料理や食味などについて質問する他にも，ワインや食べ物について，専門家としての知識を使って話題の幅を広げながら会話をしている．その結果，ユーザに負担をかけることなく，ユーザの嗜好をうまく収集している．また，商品推薦などの個人化されたサービスでは，ユーザの好みや嗜好の情報が必要であるが，アンケートで数多くの質問項目に回答するのはユーザの負担となることが問題となっている\cite{smyth2007case,lam2008addressing}．そのため，システムとの対話を楽しんでもらいながら，ユーザの嗜好を聞き出すことができれば有用性は高い．そこで本研究では，対話を通してユーザの嗜好を獲得する対話システムの実現を目指し，関連する話題を選択し，その話題を展開しながらユーザの料理や材料の好みについて尋ねるインタビュー対話システムを提案する．これを実現するために，本研究では，分野についての大規模な知識を活用することに着目し，大規模知識を利用した関連話題の選択と質問生成に焦点を当てる．これまでの大規模知識ベースを用いた対話システムの研究では，大規模知識ベースを用いて関連エンティティやその属性を推論することにより，ユーザからの質問に対して多様なシステム応答を生成すること\cite{han2015exploiting}や，雑談対話において意味のある返答を生成すること\cite{moon2019opendialkg}が主要な目的であり，ユーザ情報の取得のための質問生成については取り組まれていない．また，\citeA{lee2015conversational}は知識グラフのエンティティ間の関係を話題とみなし，話題どうしの関連の強さを大規模テキストWikipediaに基づき学習し，話題のベクトル表現（本研究では「話題埋め込み表現」と呼ぶ．）を作成している．そして，この話題埋め込み表現を用いて関連話題の選択を行うことを提案している．しかし，話題埋め込み表現を利用し関連話題を選択しても，その話題についての情報が大規模知識に登録されていなければ，応答生成ができないという問題がある．この問題を解決するために，本研究では，知識グラフのベクトル表現（本研究では「知識グラフ埋め込み表現」と呼ぶ．）を利用して，欠損した知識を補完（この手続きを本研究では「知識グラフ補完」と呼ぶ．）したうえで，関連話題を用いた質問を生成する手法を提案する．以上の議論から，本研究では，話題埋め込み表現を用いて関連話題を選択し，知識グラフ埋め込み表現を用いて知識補完を行いながら，大規模知識グラフに基づき，質問を生成することができるインタビュー対話システムを提案・実装することを目的とする．これにより，対話の中で言及される料理について多様な話題を展開しつつ，料理に関するユーザの嗜好を聞き出すための質問生成を実現する．さらに，実装したシステムを用いたユーザスタディを実施し，本研究で提案する質問生成手法の有用性を検証する．本研究の貢献を以下に示す．\noindent(1)話題埋め込み表現を用いて関連話題を選択し，知識グラフ埋め込み表現を用いて欠損している知識の補完を行うことで，多様なバリエーションの関連話題を選択し，それらについての質問を生成する手法を提案する．\noindent(2)上記(1)の提案手法を料理に関するドメインに適用し，提案手法による質問生成機能を搭載した対話システムを実装する．また，実装した対話システムを用いてユーザスタディを実施し，対話文脈の継続効果があることを示すとともに，提案手法により生成された質問の質を調査する．さらに，対話破綻が一定以下に抑えられた場合には，被験者の主観評価において話題の多様性や文脈の継続性が印象付けられることを示す．本論文は，以下のように構成される．\ref{sec:related_works}章では，関連研究について述べ，\ref{sec:tk_embed}章では大規模知識を用いた関連話題の決定と知識補完による質問生成について述べる．\ref{sec:SDS}章では，実装した対話システムについて説明し，\ref{sec:exp_results}章では，評価実験について述べ，質問生成性能について\ref{sec:eval_questions}章，対話生成性能について\ref{sec:eval_dialogues}章で述べる．最後に\ref{sec:conclusion}章では，本研究のまとめと今後の課題を述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}
\label{sec:related_works}ある目的のためにユーザから情報を聞き出す対話としてインタビュー対話がある．例えば，世論調査\cite{johnston2013spoken}や授業評価\cite{stent2006dialog}を目的とした対話システムが開発されている．これらの対話システムでは，ユーザから収集するべき項目に従い，システムがあらかじめ決められた質問をし，ユーザから肯定・否定，あるいは5段階評価といった限定的な回答を得る，一問一答に近い対話を行っている．ユーザが言及した単語について，さらに詳しく尋ねることを目的とした質問生成の研究も行われている．%%%%\citeA{井上昂治2018自律型アンドロイド}はユーザ発話中のキーワードを抽出し，井上他\citeyear{井上昂治2018自律型アンドロイド}はユーザ発話中のキーワードを抽出し，テンプレート「今おっしゃった（キーワード）について，もう少し詳しく説明してください」にキーワードを埋め込み，掘り下げ質問をしている．また，疑問詞を用いた質問の生成手法として，名詞と疑問詞のN-gramを用いた方式\cite{milhorat2019conversational}や，動詞の格フレームを利用した研究がある\cite{古川智雅2018格フレームを用いた質問生成によって深掘りを行う対話システム,下岡和也2017音声対話ロボットのための傾聴システムの開発}．さらに，\citeA{片山太一2018相手の発話を深掘りするための質問生成技術}は機械学習を用いてTwitterのつぶやきから質問を生成する方法を提案している．本研究では，疑問詞を用いた質問生成機構をシステムの基本機能として実装するが，これに加えて，大規模知識を用いた質問生成手法を提案する．また，システムの質問の仕方や質問内容によって，ユーザから得られる情報が影響されることが報告されている\cite{pappu2014knowledge}．\citeA{hirano2016analyzing}は，人対人のテキストベースのチャット実験を行い，相手の発話に関連した話題選択が対話へのユーザ満足度に寄与することを報告している．このように，ユーザ応答に応じて適切に関連話題の提供や質問の変更をすることが，会話を続けることに役立ち，そして好みや嗜好といったユーザ情報を引き出すことに貢献すると考える．このような対話システムを実現するには，幅広い対象に対して，適切な話題を提供することが重要となる．非タスク指向型対話システムにおける話題の提供や応答生成として，Twitterデータを用いた応答生成\cite{稲葉通将2014twitter,higashinaka2016syntactic}や，単語分散表現を用いた話題の提供\cite{中野哲寛2015雑談対話システムにおける単語分散表現を用いた話題展開手法,mikami2018topic}が提案されている．これらの研究は様々な話題を提供するという点において，本研究と関連するが，大規模知識を用いて関連話題を選択する方法ではない点，また，質問生成を目的としていない点において本研究とは手法も目的も異なる．次に，大規模知識ベースを情報源とした応答生成に関する研究について述べる．\citeA{han2015exploiting}は大規模知識ベースFreebaseを用いて，知識ベース中に存在する対象と関連のある知識を用いて応答生成を行っている．また，\citeA{lee2015conversational}はWikipediaとFreebaseを用いて，ユーザの質問に対して関連した回答をするシステムを作成している．例えば，ビル・ゲイツの両親に関する話題から，関連話題として，ビル・ゲイツの子供へと話題を遷移する．彼らは，Wikipedia記事から複数のFreebaseの述語（親や子供のように，対象間の関係を表す）を抽出し，抽出した述語の並びをSkip-gramにより学習することにより，話題（述語）どうしの近さを表現する埋め込み表現を作成している．本研究では，\citeA{lee2015conversational}の方式を参考に話題の埋め込み表現の作成を行うが，これに加え，選択した関連話題についての知識が大規模知識に存在しない場合には，知識グラフ埋め込み表現を用いた知識グラフ補完\cite{bordes2013translating,藤岡勇真2018対話システムにおける知識グラフの埋め込み表現を用いた応答生成の試み}を用いて解決する．話題埋め込み表現による関連話題選択や，知識グラフ補完について，それぞれ手法は提案されているが，本研究の目的は，これらを統合することにより，多様な話題について質問生成する手法を提案することである．一方，料理に関連した研究では，近年，楽天レシピ\footnote{楽天レシピ:\url{https://recipe.rakuten.co.jp/}}やクックパッド\footnote{クックパッド:\url{https://cookpad.com/}}のようなユーザ投稿型の料理レシピサイトが普及し，大規模なレシピの情報を利用して，%%%%料理に対する味の推定\cite{松長大樹2014料理画像及び素材一覧に基づく料理の味推定に関する検討}，料理に対する味の推定(松長他2015)\nocite{松長大樹2014料理画像及び素材一覧に基づく料理の味推定に関する検討}，%%%%オノマトペを含む食味表現推定\cite{松長大樹2015料理画像及び素材一覧に基づく料理の食味表現推定}，オノマトペを含む食味表現推定(松長他2015)\nocite{松長大樹2015料理画像及び素材一覧に基づく料理の食味表現推定}，オノマトペによるレシピ検索\cite{渡辺知恵美2015オノマトペロリ}などの研究が行われている．また，ユーザの嗜好を推定し，ユーザに料理，レストラン，レシピなどを推薦する研究も行われている\cite{trattner2017food}．推薦によく用いられるアルゴリズムとして，内容ベースと協調フィルタリングがある．内容ベースの方式では，ユーザがレシピにつけた評価に基づき，そのレシピの材料にスコアを付与し，さらに材料のスコアを用いて未評価のレシピについても評価値を求め，推薦を行う\cite{freyne2010intelligent}．協調フィルタリングでは，アイテムへの評価の付け方，つまり嗜好が自身と似ているユーザを見つけ，そのユーザが好むアイテムを推薦する推薦方式である．しかし，これらのアルゴリズムを用いた料理推薦システムの問題点として，多数のアイテム（料理やレシピ等）に関してユーザに評価してもらう必要があり，それが容易ではないという点がある\cite{trattner2017food}．そこで，ユーザとのインタラクションの中で，料理についての嗜好や評価を含むユーザ情報を収集する技術として，本研究で提案する質問方式は役立つと考える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{大規模知識を用いた関連話題の決定と知識グラフ補完による質問生成}
\label{sec:tk_embed}本章では，はじめに，本研究で用いる大規模知識Freebaseについて述べ，続いて話題埋め込み表現と知識グラフ埋め込み表現の作成について述べる．最後に，質問生成における話題埋め込み表現と知識グラフ埋め込み表現の利用について説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{大規模知識Freebase}\label{subsec:freebase}FreebaseはMetaweb社発のオープンな知識データベースであり，Freebaseにおける知識は，RDF(TheResourceDescriptionFramework)という構造化されたデータ形式をとり，主語（Subject，以降Sと呼ぶ），述語（Predicate，以降Pと呼ぶ），目的語（Object，以降Oと呼ぶ）というトリプル構造からなる．Freebaseは19億トリプルもの知識を持ち，多くの要素はhttp://rdf.freebase.com/ns/m.abc123（あるいは一部省略し，m.abc123）のようなURIの形式で表される\cite{chah2017freebase}．ある対象についての知識例として，「カルボナーラ」の知識トリプルの一部を表\ref{tab:triple_exp}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table1\begin{table}[b]\input{12table01.tex}\caption{「カルボナーラ」が持つ知識トリプル例}\label{tab:triple_exp}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Freebase上ではカルボナーラのエンティティには，ユニークな識別子(machineidentifier,mid)として「m.0273gv」が与えられている．ここでカルボナーラ識別子をSとした場合，このSが複数の述語Pを持ち，それぞれの目的語Oとして文字列や，数値，別の識別子を持つ．例えば，カルボナーラのPであるfood.dish.ingredientsのOを参照すると，材料の1つである「パルミジャーノ・レッジャーノ」を示す識別子m.01sbt1が得られる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.1\begin{figure}[b]\begin{center}\includegraphics{28-2ia12f1.pdf}\end{center}\caption{「カルボナーラ」記事からの述語(P)抽出例}\label{fig:Extract_p}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{話題埋め込み表現と知識グラフ埋め込み表現の作成}\label{subsec:generate_p_embed_k_embed}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{Wikipediaによる話題埋め込み表現の作成}\label{subsubsec:wiki_p_embed}関連性の高い話題を選択するために，話題の近さを扱うベクトル空間を作成する．本研究では，Freebaseの材料やジャンルなどを示す述語Pを話題とする．そして\citeA{lee2015conversational}の手法に基づき，Wikipedia文書中から，記事名の単語（e.g.カルボナーラ）をSとした場合の述語Pを抽出し，その並びを話題の流れと見なし，Skip-gramで学習を行うことで話題の近さを表すベクトル空間を作成する．以下の手順(a)，(b)に詳細を示す．\noindent\underline{\textbf{(a)Wikipedia記事から述語の並びを抽出}}:まず，Wikipedia記事から述語の抽出を行う．図\ref{fig:Extract_p}に「カルボナーラ」記事からの述語抽出例を示す．「カルボナーラ」記事タイトルをSとし，Freebaseにおいてこれとの間にPリンクが定義されているエンティティ(O)を本文中から抽出する．例えば，本文中のエンティティ「グアンチャーレ」，「パンチェッタ」をOとした時に，Pとして，材料を示すfood.dish.ingredientsが得られ，「ローマ」をOとした時には，Pとしてジャンルを示すfood.dish.cuisineが得られる．これら抽出されたPの並びを，記事ごとに作成する．なお，Pの抽出は，Wikipedia英語版の料理に関係する記事を対象とする．その理由は，日本語版に比べ英語版の方が記事の内容が詳細であったからである．Wikipedia記事が料理に関係するかどうかの判定には，Wikipedia記事に記載されたカテゴリを使用する．手順としては，日本語語彙体系\cite{池原悟1997日本語語彙大系}において，食料カテゴリの下位カテゴリである食品，料理，嗜好品に分類される単語を人手で英単語に翻訳し，それらがWikipedia記事のカテゴリ記述中に含まれていれば料理に関係する記事とみなす．表\ref{tab:detail_extracted_p}に料理に関するWikipedia記事と得られた述語(P)の詳細を示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table2\begin{table}[b]\input{12table02.tex}\caption{料理に関係するWikipedia記事と得られた述語(P)の詳細．()内の数値は標準偏差を示す．}\label{tab:detail_extracted_p}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\noindent\underline{\textbf{(b)Skip-gramによる話題埋め込み表現の作成}}:(a)で得た料理記事ごとに抽出したPの並びを話題の系列と見なし，Skip-gramを用いて学習を行う\cite{mikolov2013distributed}．Skip-gramはPの並びに対して，あるPとその周辺のPの出現確率を高めるよう学習する．その結果として，話題間の近さをPのベクトル間の距離として計算することができる．本研究では，このベクトル空間を以降，「話題埋め込み表現」と呼ぶ．Skip-gramを用いた学習として，ライブラリのGensim\footnote{Gensim:\url{https://radimrehurek.com/gensim/}(version3.4.0)}を利用し，window幅は5とし，各話題(P)を100次元で表現するモデルの学習を行った．表\ref{tab:p_neighbors}に学習した話題埋め込み表現において，材料を示すP:food.dish.ingredientsの最近傍5つのPを示す．P:food.dish.ingredientsの最近傍として，料理のジャンルを示すfood.dish.cuisineが出現している．続いて料理のタイプを示すfood.dish.type\_of\_dish1が現われている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table3\begin{table}[b]\input{12table03.tex}\caption{話題埋め込み表現におけるP:food.dish.ingredientsの最近傍述語上位5つ}\label{tab:p_neighbors}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{話題埋め込み表現を用いた関連話題の選択}\label{subsubsec:select_relate_p}上記の話題埋め込み表現により，現在の話題であるPに関連する話題（P'と表記）を選択することができるようになる．例えば，「カルボナーラ」について図\ref{fig:Relate_p}のような話題遷移が可能となる．はじめに，カルボナーラをSとしたトリプルから，赤線で示した材料を示すP:food.dish.ingredientsとその目的語Oのパンチェッタを用いて質問したとする．その後，この話題に関連した話題を提供する際に，P:food.dish.ingredientsに近い話題P'を話題埋め込み表現により取得する．ここで表\ref{tab:p_neighbors}に示すように話題food.dish.ingredientsと最も近い話題としてP':food.dish.cuisineが選択される．その結果，図\ref{fig:Relate_p}の破線で示される，カルボナーラをS，food.dish.cuisineをP'，イタリア料理をOとするトリプルを用いて，システムの次の質問を現在の話題と関連付けたものにすることが可能になる．質問生成方法については，後に\ref{subsec:qg_using_p_embed_k_embed}節で説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.2\begin{figure}[b]\begin{center}\includegraphics{28-2ia12f2.pdf}\end{center}\caption{話題埋め込み表現を利用した「カルボナーラ」についての話題遷移例}\label{fig:Relate_p}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{知識グラフ埋め込み表現を用いた知識グラフ補完}\ref{subsubsec:select_relate_p}節では話題埋め込み表現を用いた話題遷移について述べた．しかし，話題埋め込み表現のベクトル空間中で近傍として選ばれた述語P'を持つ知識トリプルがFreebase中に必ずしも存在するわけではないという問題が存在する．例えば，Freebaseにおいて，「餃子」というエンティティは，Pとしてfood.dish.cuisineを持つ．このPから，話題埋め込み表現において距離の近い関連話題として，P':food.dish.ingredientsを選んだところ，餃子をS，food.dish.ingredientsをP'とする知識トリプルは存在せず，その目的語(O)を得ることはできず，知識トリプルの利用を前提とした質問生成ができない．このような知識グラフの問題に対して，知識グラフのベクトル表現である知識グラフ埋め込み表現を利用し，明示的に与えられていないノードやリンクについて予測・補完を行う技術として知識グラフ補完(Knowledgegraphcompletion)がある．本研究では知識グラフ埋め込み表現のモデルの1つとして，TransE\cite{bordes2013translating}を用いる．TransEはトリプル構造の知識について，S，Oをベクトル空間上の点とし，それを結ぶPをベクトルとし，以下の式を満たすようにトリプル構造を空間に配置する．\pagebreak\[S+P\approxO\]これを用いることにより，所望のOが知識トリプルに存在しなくても，SとPを用いたベクトル演算により空間上での予測が可能となる．\noindent以下にTransEを用いた知識グラフ埋め込み表現の作成方法を説明する．\noindent\underline{\textbf{(i)食に関する知識トリプルの抽出}}:TransEの学習データとして，食に関する知識トリプルをFreebaseより抽出した．そのために，エンティティのカテゴリやタイプを表すP:type.object.typeに着目し，このリンクのOが料理や材料など食についての分類を示すfood.foodであるとき，そのSを取得した．つまりP:type.object.type，O:food.foodを持つエンティティ(S)を食に関連したエンティティとした．次に，このようなエンティティをSまたはOに持つすべての知識トリプルを収集した．その結果，食に関する知識トリプル数は267,019，エンティティ種類数(S,O)は127,214，P種類数は764となり，これらを学習データとした．\noindent\underline{\textbf{(ii)TransEを用いた知識グラフ埋め込み表現の作成}}:TransEの学習には，知識グラフ埋め込み表現の学習用ライブラリOpenKE\cite{han2018openke}を使用し，次元数100で学習した．また，学習された知識グラフ埋め込み表現において，学習されたパラメータを使いベクトル演算を行うと，1つの予測に30秒程度かかるため，特徴空間内での超平面による空間分割に相当する近似最近傍探索(Approximatenearestneighbor)を用いて計算を高速化した．これには近似最近傍探索を実装したライブラリAnnoy\footnote{Annoy:\url{https://github.com/spotify/annoy}(version1.15.0)}を用いた．これにより，演算処理時間は0.1秒以下に高速化することができた．以上の手順でFreebaseに存在しないトリプルについて補完を可能にした．例えば，「餃子」をSとした場合，P':food.dish.ingredientsの対象となるOが存在しない問題について，TransEによるOの予測結果を表\ref{tab:predict_o}に示す．値が小さいほど類似度が高いことを示す．表に示されるように，穀粉，ネギ，食肉など，餃子の材料と考えられるものが類似度において上位に予測されている．以上，現在の話題対象である料理や材料をSとし，話題埋め込み表現を用いてにこれに関連した話題(P')を選択することができ，さらに，選択されたP'においてその対象となるOが存在しない場合には，知識グラフ埋め込み表現を用いてOとなる対象を予測・補完することができる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table4\begin{table}[t]\input{12table04.tex}\hangcaption{TransEによるS:餃子P':food.dish.ingredientsからのOの予測（類似度:$\sqrt{2-2*cos(v,e)}$,$v$:演算により得られた予測ベクトル,$e$:エンティティベクトル）}\label{tab:predict_o}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{話題埋め込み表現と知識グラフ埋め込み表現を用いた関連質問の生成（質問方式Rel）}\label{subsec:qg_using_p_embed_k_embed}本節では，前節までに作成した，話題埋め込み表現と知識グラフ埋め込み表現を利用した知識グラフ補完を組み合わせた関連質問（質問方式Rel）の生成方法について説明する．話題埋め込み表現と知識グラフ埋め込み表現を用い，図\ref{fig:Q3_b}に示す手順により，関連質問を生成する．はじめに，話題の遷移元として直近で使用した料理エンティティSと直近で使用したPをシステム内部状態（\ref{subsec:internal_state}節で後述）から取得する．そして，直近のPに関連する話題P'として，話題埋め込み表現における直近のPベクトルから$cos$類似度を用いて，最近傍のPを指定数取得する\footnote{$cos$類似度へのしきい値を設けた取得制限は行っていない．}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.3\begin{figure}[t]\begin{center}\includegraphics{28-2ia12f3.pdf}\end{center}\caption{話題埋め込み表現と知識グラフ埋め込み表現を用いた関連質問の生成プロセス}\label{fig:Q3_b}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%さらに，これら複数の近傍P'からそれぞれに対応するOを取得し，これらSP'Oを質問トリプルの候補とする．Oは原則Freebaseから取得するが，Freebaseに存在しなければ，知識グラフ埋め込み表現を用いて予測する．得られた質問トリプル候補の中からランダムに1つ選択し，述語Pごとに用意した質問文テンプレートを使い，質問文を生成する．質問文テンプレートの例を表\ref{tab:p_templates}に示す．Freebaseの料理や材料の知識，話題埋め込み表現に出現しやすい25種類のPについて各1$\sim$2パターンのテンプレートを作成した．実装では近傍P'の取得数は10，知識グラフ補完により1組のS，PからOのベクトルを予測し，このOのベクトルから最近傍エンティティを3つ取得し，Oの候補として補完した\footnote{知識グラフ補完の計算に，$v$:予測したOのベクトル,$e$:エンティティベクトルとすると$\sqrt{2-2*cos(v,e)}$を用いた類似度計算を行うが，類似度へのしきい値を設けた取得制限は行っていない．}．テンプレートを用いた質問文生成時に知識グラフ補完を行ったOを用いる時は，「ですが」と言い切らず，「であると予想しますが」などのように不確定な表現にする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table5\begin{table}[t]\input{12table05.tex}\hangcaption{述語Pとそれに対応するトリプルを用いた質問テンプレート例．質問文中の表現について複数の候補がある場合に，[]内で候補を\textbarで区切って示している．}\label{tab:p_templates}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{対話システムの実装}
\label{sec:SDS}本章では，話題埋め込み表現と知識グラフ埋め込み表現を用いた質問方式を実装した対話システムについて説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{提案手法の概要}図\ref{fig:Dialog_exp}に実行例と用いる質問方式を示す．実行例に示すように，実装した対話システムでは，\ref{sec:tk_embed}章で提案した話題埋め込み表現と知識グラフ埋め込み表現を用いた関連質問(Rel)に加え，文脈初期化質問(Init)，疑問詞を用いた質問(WH)，Freebaseトリプルを用いた質問(Frb)の3種類の質問方式を追加した．追加した質問方式については\ref{sub:rg}節で説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.4\begin{figure}[t]\begin{center}\includegraphics{28-2ia12f4.pdf}\end{center}\caption{実行例と用いる質問方式}\label{fig:Dialog_exp}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%会話は，文脈初期化質問Init（例．図\ref{fig:Dialog_exp}【実行例】のS1：好きな食べ物は何ですか？）から開始される．この質問により，最初の話題となる料理名や材料名をユーザから聞き出す．システムは，ユーザ応答から得られた料理名または材料名に対応するエンティティ（以後，キーエンティティと呼ぶ）を抽出し，これらに関連した質問を生成する．そしてそれに対してユーザが回答する．したがって，会話はシステム主導で進行する．図\ref{fig:Dialog_exp}の実行例では，U1中の「カレーライス」がキーエンティティとして認識される．S2では，キーエンティティ「カレーライス」について深掘りする狙いで，疑問詞を用いた質問WHを行っている．S3，S4は知識を用いた質問である．S3では，「カレーライス」(S)のP:ジャンルが日本料理である，という知識をFreebase中のトリプルから得ることにより，質問を行っている(Frb)．S4では，一つ前のS3で提供した話題（P:ジャンル）に関連する話題として，話題埋め込み表現を用いて，P'：材料の話題が選択されている．ここで，カレーライスの材料についての知識がFreebaseには存在しないという問題が生じる．このように，Freebaseにおいて知識が欠落している場合には，\ref{subsec:qg_using_p_embed_k_embed}節の手法を使い，知識グラフ埋め込み表現により，知識を補完した上でS4が生成される(Rel)．図\ref{fig:Architexture}にシステム構成図を示す．主要なモジュールとして，入力理解部，質問方式決定部，質問生成部，内部状態を持つ．おおまかには，まず，ユーザ入力文が入力理解部で処理され，キーエンティティが得られると，質問方式決定部では，そのキーエンティティについて，質問方式セット（例：Init，WH，Frb,Rel）の中から質問方式が決定され，質問生成部で決定した質問方式を用いて質問が生成される，という流れになる．以下では各モジュールについて説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.5\begin{figure}[t]\begin{center}\includegraphics{28-2ia12f5.pdf}\end{center}\caption{システム構成図}\label{fig:Architexture}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{入力理解部}\label{subsec:LU}本システムはFreebaseに存在する料理や材料のエンティティを起点に，質問を生成する．そのため，入力理解部では，料理または材料のエンティティをキーエンティティとして，ユーザ入力文から1つ抽出する．具体的には，料理エンティティはFreebaseより，P:type.object.type，O:food.dishを持つエンティティ(S)とし，材料エンティティはP:type.object.type，O:food.ingredientを持つエンティティ(S)とし，各エンティティの日本語ラベル\footnote{日本語ラベルを持つエンティティに対し，表記揺れに対処するため日本語ラベルを拡張した．例えば，エンティティの日本語ラベル「焼肉」について，ラベル「焼き肉」，「やきにく」を追加した．}に該当するものをユーザ入力文より取得する\footnote{入力文中に複数のキーエンティティが含まれる場合，料理エンティティを優先し，ランダムに1つ選択する．}．また，入力理解部では，対話をスムーズに継続することが困難な状態である対話破綻\linebreak\cite{martinovsky2006error,higashinaka2015towards}を検知するために，不明や否定を表す表現リストをあらかじめ作成し，ユーザ発話中にこれらの表現が含まれていれば対話破綻とみなし，質問方式決定部に伝え，新たな料理名や材料名を聞き出す文脈初期化質問Initを生成する．具体例として，システムは次のような場合に対話破綻と判断した：システムの質問に対し，システム発話への理解不能を表す「わかりません」が入力された場合\footnote{Freebaseのエンティティの中にはフィッシュケーキやクワハーダといった一般的に知られていない単語も存在する．このようななじみのないエンティティを用いたシステム発話に対してユーザが不明を表明し，対話破綻を招く可能性が高い．これを回避するために，日本語Wikipediaにて出現頻度が40未満である単語（エンティティ）は質問生成から除外することとした．}，システム発話への否定（例えば，「〇〇は好きですか？」という質問についてユーザが「〇〇は嫌いです」と回答）が入力された場合，予測補完した知識が正しくないとユーザが判断した場合（例えば，システム発話「ラーメンの材料にジャガイモが使われていると予想しますが…」といった知識の予想による発話に対し，「ジャガイモは使われていません」と異議を示す）．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{内部状態}\label{subsec:internal_state}内部状態では，以下の3種類の履歴が管理・更新される．\noindent\underline{\textbf{キーエンティティ履歴}}:ユーザ入力文から抽出した最新のキーエンティティを保持する．また，適用した質問方式を適用済み質問方式セットに保持する．\noindent\underline{\textbf{料理エンティティ履歴}}:入力理解部で抽出したキーエンティティの中で，料理エンティティであるもののみを保持する．直近の料理エンティティをSとして使用し，質問を生成する質問方式がFrbかRelの場合に，この履歴を参照する．\noindent\underline{\textbf{質問トリプル履歴}}:質問方式Frb,Relにおいて使用したトリプルを保持する．このトリプル履歴から直近のPを参照し，関連話題の遷移元として質問方式Relで使用する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{質問方式決定部}\label{subsec:decide_method}質問方式決定部では，入力理解部から送信される情報と内部状態の情報を参照し，採用する質問方式を決定する．具体的には，システムが認識した最新のキーエンティティに対し，あらかじめ設定された質問方式セット\footnote{本研究では，評価実験（\ref{sec:exp_results}章）において，実験条件によって設定する質問方式セットを変更した．}に含まれる質問方式を1度ずつ適用するという制約の下で，質問方式を1つ選択する．なお，この制約は評価実験（\ref{sec:exp_results}章）において，あるキーエンティティに対して設定された各質問方式の適用回数を均一に設定し，利用可能な質問方式の違いによる効果を検証するためである．%cameraここでは，質問方式セット(Init,WH，Frb，Rel)を例に，Algorithm\ref{alg:q_algo}に質問方式決定アルゴリズムの詳細を示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%algo1\begin{algorithm}[b]\caption{質問方式決定アルゴリズム}\label{alg:q_algo}\input{12algo01.tex}\begin{flushleft}※実験条件ごとに質問方式セットは異なる．\end{flushleft}\end{algorithm}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%入力理解部が対話破綻を検知した場合には，新たなキーエンティティ入力を促す文脈初期化質問Initを適用する（アルゴリズムLine:1$\sim$2）．対話破綻ではない場合には，現在のキーエンティティについての未適用の質問方式セットを，文脈初期化質問Initを除いた質問方式セットと最新キーエンティティでの適用済み質問方式セット($\mathcal{M}$)の差分より求める（アルゴリズムLine:4）．未適用質問方式セットが空である場合には，現在のキーエンティティについて全ての質問方式を適用した（質問生成に必要な情報の不備により，実際には生成できなかった場合も含む）ことを意味する．この場合，新たなキーエンティティ入力を促す文脈初期化質問Initを適用する（アルゴリズムLine:5$\sim$6）．アルゴリズムLine:7$\sim$8では，ユーザの発話したキーエンティティについて，直ちに知識を用いた質問方式を用いるのではなく，キーエンティティそのものへの深堀り質問として質問方式WHを優先的に適用する．上記いずれの場合にも当てはまらない場合には，未適用質問方式セットのうちランダムに1つ選択する（アルゴリズムLine:10）．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{質問生成部}\label{sub:rg}質問方式決定部により決定された方式を用いて質問文を生成する．ここでは，\ref{sec:tk_embed}章で述べた方式以外の既存技術による3種類の質問方式についてのみ説明する．\noindent\textbf{■文脈初期化質問（質問方式Init）}あらたなキーエンティティを得るための5種類の文脈初期化質問テンプレートの中からランダムに選択する．例えば，「最近何を食べましたか？」「好きな食べ物はなんですか？」などがある．\noindent\textbf{■疑問詞を用いた質問（質問方式WH）}キーエンティティについて，具体的にユーザの好みやこだわりを引き出す狙いで，疑問詞「どんな」を用いたテンプレート「どんな＋\$キーエンティティ＋が好きですか？」の\$部分にキーエンティティの語を代入して質問文を生成する．\noindent\textbf{■Freebaseトリプルを用いた質問（質問方式Frb）}Freebaseトリプルを用いた質問(Frb)は，Freebaseに存在するキーエンティティをSとする質問生成可能なトリプルからランダムに1つ取得し，ジャンルや材料などを示す述語Pを話題とみなし，テンプレートに適用することにより質問文を生成する．これはFreebaseを用いた最もシンプルな質問文生成であり，すでに\citeA{han2015exploiting}によって提案・実装されている手法である．質問生成のテンプレートは\ref{subsec:qg_using_p_embed_k_embed}節で提案した表\ref{tab:p_templates}のテンプレートを用いる．例えばS:カルボナーラ，P:food.dish.cuisine，O：イタリア料理，のトリプルに対し，P:food.dish.cuisineの1つめの質問文テンプレートを適用すると，「カルボナーラのジャンルはイタリア料理ですが、イタリア料理で好きな料理は何ですか？」という質問文が生成される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{ユーザスタディの実施}
\label{sec:exp_results}\ref{sec:tk_embed}章で質問生成手法を提案し，\ref{sec:SDS}章では，それを実装した対話システムを構築した．本章では，対話システムにおける本手法の有用性を検証することを目的とし，評価実験を行う．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験の概要}話題埋め込み表現と知識グラフ補完を組み合わせた質問生成手法が対話システムにおいてどのような効果を持つのかを検証するために，被験者にシステムとの対話を行ってもらうユーザスタディを実施した．話題埋め込み表現の利用の有無や知識グラフ補完の有無により，利用可能な質問生成手法の異なる3つの条件を設定し（\ref{subsec:syscond}節），各被験者が3つの条件全てを実施する被験者内実験デザインを採用した．また，評価指標として，1:提案手法による質問の妥当性，2:対話文脈の継続性に加え，3:アンケートによる被験者の主観評価を用いた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験手法}%旧section:実験の概要実験はWebアプリケーション上で行われ，システム質問に対する応答を入力欄にタイプし，送信ボタンを押すことにより，システムとの会話を行ってもらった．システムと被験者とのやりとりは対話履歴欄に表示される．すべての実験条件でユーザに50回の入力を指示し，ユーザの入力回数が50回に達し，それに続くシステム応答を表示したのち対話は停止し，対話終了ボタンを押すことで対話結果がサーバに送信される．また，各条件の対話終了後，評価アンケートのページにアクセスし，付録表\ref{tab:enquete}に示す20項目からなる5段階リッカート尺度のアンケートに回答するよう求めた．また，自由記述欄も設けた．被験者はクラウドソーシングサイトで募集した48人である．分析対象として，対話終了ボタン押し忘れにより対話履歴結果に不備が生じた1名，対話中に同一の回答を30回以上繰り返した被験者1名のデータを除いた46人のデータを使用した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験条件}\label{subsec:syscond}各被験者には以下に示す3つの実験条件(BL,TE,TE+KE)の全てを実施してもらい，条件の順序はランダムに決定した．表\ref{tab:q_set}は各実験条件でシステムが生成可能な質問方式セットを示している．この質問方式セットに含まれる各質問方式を，直近のユーザ入力文より得られたキーエンティティに対し，1度ずつ適用するよう質問方式決定アルゴリズム（\ref{subsec:decide_method}節）を設計した．この設計は同一の質問方式による質問の繰り返しを避け，あるキーエンティティに対して設定された各質問方式の適用回数を均一にするためのものである．ただし，条件BLは，他の2条件よりも生成可能な質問方式が1種類少ないため，Frb質問を2回適用することにより，質問方式適用回数を全条件で統一した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table6\begin{table}[t]\input{12table06.tex}\hangcaption{各実験条件と質問方式セット．※TE，TE+KEと質問方式適用回数を統一するため，Frbを2回適用する．}\label{tab:q_set}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\noindent\textbf{■ベースライン(Baseline:BL)}インタビューシステムの基本機能として，Init,WH,Frbの質問方式のみを生成できるシステムを実装し，これをベースライン条件とする．したがって，この条件では，話題埋め込み表現と知識グラフ埋め込み表現を用いた関連質問(Rel)は行わず，大規模知識の利用については，Freebaseのトリプルを使った質問(Frb)のみが可能となる．\noindent\textbf{■話題埋め込み表現(Topic-Embedding:TE)}条件BLで利用可能な3種類の質問方式に加え，Freebaseに存在する知識の範囲内で話題埋め込み表現による関連質問Relを生成する．これは，\citeA{lee2015conversational}の手法に相当する，つまり，この条件では，知識グラフ埋め込み表現を用いた知識グラフ補完は行わず，話題埋め込み表現により選択された関連話題に関してFreebase中に知識が存在しなければ，その関連質問は生成しない．\noindent\textbf{■話題埋め込み表現＋知識グラフ埋め込み表現\\(Topic-Embedding+Knowledge-Graph-Embedding:TE+KE)}条件BLで利用可能な3種類の質問方式に加え，知識グラフ補完を行いながら話題埋め込み表現による関連質問Relを行う．つまり，本条件が提案手法を実装したシステムである．条件TEでは，話題埋め込み表現による関連話題はFreebaseに存在する知識のみに限られるが，条件TE+KEでは選択する関連話題に関する知識が欠損していれば，知識グラフ補完を行う．条件TEと条件TE+KEを比較することにより，話題埋め込み表現による関連質問Relにおける知識グラフ補完の効果を検証することができる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連質問(Rel)の質問生成性能評価}
\label{sec:eval_questions}本章では，提案手法である関連質問(Rel)について，話題埋め込み表現から選択された関連話題についての知識がFreebaseに存在しない場合に，知識グラフ補完を行うことで，質問候補の作成可能率が向上し，話題のバリエーションが増えることを評価実験の結果から確認する．また，知識グラフ補完により得た知識トリプルの適切性，質問文の回答性の評価を行った．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{関連質問(Rel)の質問候補作成可能率と話題のバリエーションの比較}\label{subsec:s_rate_variation}はじめに，関連質問(Rel)について，話題埋め込み表現により選択された関連話題を用いて質問候補となりうるものを作成できた割合として質問候補作成可能率を算出した．また質問候補作成可能である時に提供可能な話題の種類数を算出した．Rel質問の質問候補作成可能率は以下の式により算出した．\[Rel質問の質問候補作成可能率=\frac{Rel質問の質問候補作成可能回数}{Rel質問の適用回数}\]Rel質問の質問候補作成可能回数は，直近の料理エンティティSと話題埋め込み表現により選択した10個の近傍話題P'を組み合わせ（\ref{subsec:qg_using_p_embed_k_embed}節），それぞれに対応するOを取得し，利用可能なSPOトリプル候補数を求め\footnote{対話システムの制約として，利用可能なSPOトリプルは以下の条件を満たすものとした．エンティティOが日本語ラベルを持ち，そのラベルが一般ユーザにとってなじみのない単語ではなく（\ref{subsec:LU}節），選択した関連話題P'の生成文テンプレートが存在し，これまでの対話に同じトリプルを用いた質問を行っていない．}，その候補数が1以上であれば質問候補作成可能とみなし，その回数を表す．Rel質問を備える条件TE，TE+KEのRel質問の質問候補作成可能率の平均値を表\ref{tab:success_rate}に示す．知識グラフ補完を行わない条件TEでは，Rel質問の質問候補作成可能率は0.18であるが，補完を行うことで条件TE+KEでは，Rel質問の質問候補作成可能率は0.81に向上した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table7\begin{table}[b]\input{12table07.tex}\caption{Rel質問の質問候補作成可能率}\label{tab:success_rate}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%また，1回のRel質問候補作成可能時に提供可能な話題Pの種類数（最大10話題）の平均を算出した．その結果，条件TEは1.13であるのに対し，条件TE+KEでは4.56であり，提供可能な話題の種類数も増加することが確認された．次に，各条件において，知識を用いた質問が生成された回数と話題のバリエーションを算出した．知識を用いた質問の回数は，1対話当たりのFrbとRel質問の合計回数と定義した．話題のバリエーションは，各対話においてFrbもしくはRel質問の生成に用いられたPの種類数とした．どちらも対応のあるデータであり，かつ3群間で等分散性があるため，統計検定にはTukey-Kramer法を用いた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.6and7\begin{figure}[t]\begin{minipage}{207pt}\begin{center}\includegraphics{28-2ia12f6.pdf}\end{center}\caption{知識を用いた質問の回数$(\astp<.05\;\ast\astp<.01)$}\label{fig:Spo_count}\end{minipage}\hfill\begin{minipage}{193pt}\begin{center}\includegraphics{28-2ia12f7.pdf}\end{center}\caption{話題のバリエーション$(\ast\astp<.01)$}\label{fig:P_set_len}\end{minipage}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%図\ref{fig:Spo_count}に知識を用いた質問の回数の平均を示す．条件TE+KEが条件BL，TEより有意に回数が多かった($p<.01,p<.01$)\footnote{条件TEが条件BLより知識を用いた質問の回数が有意に少ない理由として，Frb質問はユーザの言及するキーエンティティをSとし，Freebaseに存在するトリプル（質問候補）から1つ選択して質問生成するのに対し，条件TEのRel質問（知識グラフ補完なし）では，話題埋め込み表現を用いて関連話題としてPを10個（実験設定）選択し，それらのトリプルを得て，その中からランダムに1つトリプルを選び，質問生成を行うが，Freebaseに定義されているトリプル数が少ないため，関連話題を選択しても，そのトリプルを取得することができず，多くの場合Rel質問候補の作成に失敗する．そのため，質問候補の作成可能率の高いFrbのみを用いる条件BLの方が結果的に質問回数が多くなったと考えられる．}．同様に，図\ref{fig:P_set_len}の話題のバリエーションにおいても，条件TE+KEが条件BL，TEより有意に多かった($p<.01,p<.01$)．以上，知識グラフ補完により，関連話題を用いた質問の質問候補作成可能率が大きく改善したことで，提案システムは知識を用いた質問をより多く生成でき，また話題のバリエーションもより豊富になっていることを確認した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{知識グラフ補完と関連質問(Rel)の評価}\label{sub:eval_rel_q}本節では，関連質問Relの中でも，特に知識グラフ補完を利用して生成された質問の質を評価するために，質問生成に用いた知識トリプル(S,P,O)の適切性と生成された質問文への回答性を調査した．評価対照データとして以下の2つの質問サンプルを作成した．\textbf{知識グラフ補完により得られた知識トリプルから生成された質問サンプル：}条件TE+KEにて知識グラフ補完を適用して生成されたRel質問100個．\textbf{Freebaseに存在する知識トリプルから生成された質問サンプル：}Freebaseに存在する知識トリプルを用いて生成されたFrb，Rel（知識グラフ補完なし）質問134個．これはすべての実験条件からサンプリングした．上記の2つの質問サンプル群について，知識トリプルの適切性と質問文の回答性の評価を行った．これら相互の影響を避けるために，2つの評価作業は独立して行った．また，この評価は\ref{sec:exp_results}章のユーザスタディに関わっていない評価者2名で行った．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{評価1：知識グラフ補完により得られた知識トリプルの適切性}\label{subsub:eval_triple}評価者は，知識トリプルの適切性として，あるSが与えられた場合のPとO，それぞれの適切性を評価した．Sは対話中にユーザが言及したキーエンティティである．OはSとPに対応する目的語であり，Freebase中のエンティティである場合と，知識グラフ補完により補完したエンティティである場合がある．Pの適切性は，対象(S)に対しての話題(P)として適切であるか（〇），不適切とは言えないがやや違和感を感じるか（△），あるいは不適切だと感じるか（×）で評価してもらった．また，Oの適切性は，対象(S)と話題(P)を考慮した上で，目的語(O)が適切か（○），不適切とは言えないがやや違和感を感じるか（△），不適切だと感じるか（×）を評価してもらった（付録\ref{appendix_detail_eval_triple}）．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table8\begin{table}[b]\input{12table08.tex}\hangcaption{知識トリプルの適切性．()内の数値は2名の評価者から得られた評価の総数を示す.したがって，両者の評価が一致しない場合もそれぞれの評価をカウントした．}\label{tab:test_eval_po_result}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{tab:test_eval_po_result}に知識トリプルの適切性の評価結果を示す．まず，Pの適切性については，○と△を合わせて許容できる，ラベル×を許容できない，の2つに分類した場合，Freebaseに存在する知識トリプルでは，許容できるとした評価の割合が96.6\%，知識グラフ補完により得られた知識トリプルでは，許容できるとした評価の割合が87.5\%であった．知識グラフ補完により得られた知識トリプル中のPは全てRel質問の話題埋め込み表現から選択されたPである．したがって，ユーザが言及したキーエンティティ(S)に対し，知識グラフ補完によるRel質問の話題埋め込み表現から選択された話題(P)について，許容できるという評価が87.5\%であることがわかった．次に，Oの適切性の評価については，Pの適切性の評価に依存するため，Pの適切性において評価者の一方が許容できない（Pの評価が×）と評価したものを排除した．その結果，Freebaseに存在する知識トリプル中のOについて許容できるとした評価の割合は86.2\%だった．一方，知識グラフ補完により得られた知識トリプル中のOの適切性は，許容できるとした評価の割合は19.4\%であった．つまり，Oの補完を適切でないと判断した評価の割合は80.5\%と高いことを示す．例えば，知識グラフ補完を適用した知識トリプルの中で，両評価者がOの適切性に×をつけたものを表\ref{tab:test_complement_o}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table9\begin{table}[t]\input{12table09.tex}\hangcaption{両評価者がOの補完を適切でないと判断した知識トリプル例．Pの（）内は直前のOが表すエンティティの性質を示し，複数の性質がある場合には，$|$で区切っている．}\label{tab:test_complement_o}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%このように，知識グラフ補完によりOを正しく補完する割合は低いと言わざるを得ず，補完を用いたトリプルから構成する質問文に対する評価にも影響していると考えられる．実装に用いた知識グラフ埋め込み表現のモデルTransEについて欠点が指摘されており，改良したアルゴリズムによるモデルは他に提案されている\cite{trouillon2016complex,nguyen2017overview}．今後，新しいモデルも取り入れながら，知識グラフ補完の精度を向上させることで，不適切な補完を減らすことができると考える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{評価2：知識グラフ補完を用いた関連質問(Rel)の回答性}\label{subsub:eval_triple_sysresp}評価者は知識トリプルの適切性（\ref{subsub:eval_triple}節）で使用した同じ質問サンプルの知識トリプルから，対話で実際に生成された質問文を提示し，回答可能であれば○，回答不能ではないがやや違和感を感じる場合は△，回答不能であれば×と評価してもらった．%camera%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table10\begin{table}[t]\input{12table10.tex}\hangcaption{システム質問文の回答性．()内の数値は2名の評価者から得られた評価の総数を示す.したがって，両者の評価が一致しない場合もそれぞれの評価をカウントした．}\label{tab:test_eval_resp_result}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{tab:test_eval_resp_result}にシステム質問文の回答性の結果を示す．知識トリプルの評価と同じく，○と△を合わせて許容できる，×を許容できないとものして，2つに分類した．Freebaseに存在する知識トリプルから生成された質問では，回答可能（○）である割合が76.9\%であり，△も合わせると許容できる割合は92.9\%に上る．これは知識トリプルの適切性評価から予測できる結果である．一方，知識グラフ補完により得られたトリプルを用いたRel質問では，許容できると判断された割合は65\%であった．\ref{subsub:eval_triple}節で述べたように，補完したOにおいて，適切性が許容範囲であると判断された割合は19.4\%であったにもかかわらず，質問文の回答性についての評価では，許容できるという判断が大幅に増えた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table11\begin{table}[t]\input{12table11.tex}\caption{Oの補完が不適切でありながら，質問文の回答性は許容できると判断された例}%\label{tab:test_eval_combine_kgresp}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{tab:test_eval_combine_kgresp}に補完したOの適切性については許容できないが，質問の回答性評価では許容できると判断された例を示す．具体的には，知識グラフ補完により得られたトリプルを用いたRel質問のうち，知識トリプルの適切性（\ref{subsub:eval_triple}節）の評価において，Pの適切性は許容でき（○か△），Oの補完は適切でない（×）と判断され，質問文の回答性の評価では許容できる（質問文の回答性の評価が○か△）と判断されたものである．各システム質問文の前半では，補完したOからなる知識トリプルが出現し，そのOについての適切性では不適切（×）と評価したものの，質問文の後半は間違いがない表現であるため，回答性という観点で評価すると回答不能から，回答不能ではないがやや違和感を感じる（△）へ許容範囲を広げたと考えられる．このように，質問文テンプレートの中で補完された知識をどう利用するのかによって，生成された質問文への評価が影響されるため，知識補完の性能向上だけでなく，質問文の表現や，その回答性についても今後さらに検討する必要がある．%camera候補2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{対話生成性能評価}
\label{sec:eval_dialogues}前章では，ユーザスタディの中でシステムから生成された個別の質問文，\pagebreak特にRel質問の質について評価した．本章では，対話全体への影響やユーザの印象評価を含め，対話システムの観点から提案手法の効果を検証する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{対話生成における仮説}提案手法による対話への効果として，対話文脈の継続性と被験者の主観評価についての仮説を設定し，検証する．\noindent\textbf{【仮説1】}%初稿:仮説2条件BLは関連話題を使った質問は行わず，条件TEは選択された関連話題についてFreebaseに存在する範囲でのみ質問するのに対し，条件TE+KEでは，Rel質問の質問候補作成可能率が上がることにより，関連話題へと展開する可能性が高い．そのため，条件TE+KEでは関連話題への展開が連鎖的に起こり，他の2条件に比べ，1つのキーエンティティから話題を展開した対話をより長く継続すると予想される．\noindent\textbf{【仮説2】}条件BL，TEはユーザの言及する料理や材料についてFreebaseに定義されている知識を使った質問に限られるのに対し，条件TE+KEでは知識グラフ補完により多くの料理や材料について多様な話題を用いた質問が対話に出現すると考える．そのため，ユーザは条件TE+KEでの対話は他の条件と比べ，ユーザの発言をシステムが理解し，話題のバリエーションが多く，関連性のある応答を行い，対話を継続させ，ユーザから会話や情報を引き出している印象をもつと予想される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{文脈継続性の比較【仮説1】}\label{subsec:context_turn}仮説1を検証するために，文脈あたりのターン数に着目して分析した．ここで文脈とは，ユーザ入力から得られた1つのキーエンティティをきっかけとし，他のエンティティへと話題を派生しつつ対話を継続した区間とし，ある文脈初期化質問(Init)から次のInit質問までの対話区間と定義した．なぜなら，Init質問は対話開始時，対話破綻時，および現在のキーエンティティについての適用可能な質問方式を全て使い切ってしまった時に生成されるため，そこを文脈の区切りとみなせると考えたからである．各条件の文脈あたりの平均ターン数のグラフを図\ref{fig:Turn_context_addexp}に示す．対応のあるデータであり，かつ3群間に等分散性が認められないため，統計検定にはWilcoxon符号付き順位検定を用いた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.8\begin{figure}[t]\begin{center}\includegraphics{28-2ia12f8.pdf}\end{center}\caption{文脈あたりの平均ターン数$(\astp<.05\;\ast\astp<.01)$}\label{fig:Turn_context_addexp}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%条件TE+KEの文脈あたりの平均ターン数が最も多く，条件BL，TEとの間に有意差($p<.01$,$p<.01$)があった．条件TEは他条件に比べ，知識を用いた質問回数が有意に少ないことから（\ref{subsec:s_rate_variation}節），ユーザから新しいキーエンティティを引き出す機会が少なく，結果として他条件に比べ，文脈あたりの平均ターン数も有意に少なくなったと考えられる．以上，「仮説1：条件TE+KEでは，他の2条件に比べ，1つのキーエンティティから話題を展開した対話をより長く継続すると予想される」は支持された．そこで，実際に実験において観察された条件TE+KEにおける対話継続の様子を説明する．図\ref{fig:bl_teke_dialogue_sample}に，条件BLとTE+KEの対話例を示す．条件BLの対話（対話例1）はFreebaseに存在する知識のみを用いて質問を行い，比較的破綻なく対話は進行している．しかし，対話例1中のキーエンティティ「青魚」に対し，「青魚」の知識トリプルからジャンル話題を用いたFrb質問（対話例1-Sys\_34）を生成するが，ユーザの応答は「イタリアンも好きです」であり，そこから新たな料理名，材料名のキーエンティティを得られない．そこでシステムは2回目のFrb質問の適用を試みるが，先ほど使用した知識トリプルが「青魚」についてFreebase中で定義されている唯一のトリプルであったため，Frb質問の生成に失敗し，結果的に初期化質問Init（対話例1-Sys\_35）が生成され，文脈がリセットされる．このような場合に，条件TE+KEでは，知識グラフ補完を用いることでFreebaseに定義されていない知識についての質問生成を可能にしている．例えば，対話例2-Sys\_26で，Frb質問をしたのち，Sys\_27では，Rel質問によりFreebaseに定義されていない材料についての話題を用いて質問している．また，対話例3-Sys\_8でFrb質問をしたのち，対話例3-Sys\_9では，料理「たこ焼き」に何を添えるかについての質問を生成している．このようにFreebaseに知識が存在しない，または少ない状況で，知識グラフ補完によるRel質問により，ユーザから幅広い情報を得る機会を増やし，また，新たな料理名をユーザから引き出し，それを種として質問をすることで対話を継続できたと考える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.9\begin{figure}[t]\begin{center}\includegraphics{28-2ia12f9.pdf}\end{center}\caption{条件BLと条件TE+KEでの対話例}\label{fig:bl_teke_dialogue_sample}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{主観評価結果}\label{sub:enq_ret_and_problems}仮説2を検証するため，実験協力者には各条件での対話終了後，付録表\ref{tab:enquete}に示したアンケートに回答してもらった．全被験者の主観評価に加えて，知識グラフ補完の失敗が原因となった対話破綻による主観評価への影響を考慮し，知識グラフ補完によるRel質問を備えた条件TE+KEにおいて，対話が他条件と同程度にうまくいった対話に限定した場合の主観評価も調査した．他条件と同程度に対話がうまくいった基準として，対話破綻回数を用いた．知識グラフ補完を行わない条件BL，TEでの対話中の対話破綻回数の中央値が2回であることから，条件TE+KEを含め全条件で対話破綻回数が2回以下であるデータ（被験者10人）を対象とし，分析した．システムの全体的な印象についての質問項目（Q1--Q7）に加え，提案手法の効果を評価するために，次に示す5つの評価指標について分析した．システムの質問はユーザの発話と関連したものであったか（関連性：Q8,11,15），システムはユーザの発話を理解して質問していたか（理解：Q9,10），話題のバリエーションは豊富であったか（バリエーション：Q12,13,14），システムはユーザから会話や情報を引き出していたか（情報引き出し：Q16,19），対話の継続性（継続性：Q17,18,20）の5つの指標について，それぞれ該当する質問項目の評価値をまとめ，条件間の評価値の差についてWilcoxon符号付き順位検定を行った．システムの全体的印象(Q1--Q7)については，全データおよび対話破綻回数が2回以下のデータともに条件に差がないことを確認した．次に，上で定義した5つの評価指標について，全被験者による主観評価結果を図\ref{fig:Enq_merge_all}，対話破綻回数が2回以下の被験者による主観評価結果を図\ref{fig:Enq_merge_b2all}に示す．「関連性」と「理解」については，全被験者のデータを用いた場合と対話破綻回数が2回以下のデータのみ分析した場合のどちらにおいても，条件間に有意差は認められなかった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.10\begin{figure}[b]\begin{center}\includegraphics{28-2ia12f10.pdf}\end{center}\caption{全被験者による5つの指標に関する主観評価結果$({\dag}p<.1)$}\label{fig:Enq_merge_all}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.11\begin{figure}[b]\begin{center}\includegraphics{28-2ia12f11.pdf}\end{center}\caption{対話破綻が2回以下の被験者による5つの指標に関する主観評価結果$({\dag}p<.1\astp<.05)$}\label{fig:Enq_merge_b2all}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%一方，「バリエーション」と「継続性」については，全データを分析対象とした場合は条件間に差は認められなかったが，対話破綻回数が2回以下の場合のみを分析すると，条件TE+KEは条件BL,TEと比較して「バリエーション」の評価は有意に高かった($p<.05,p<.05$)．「継続性」についても，条件TE+KEは条件BL，TEよりも評価値が高く，有意傾向が見られた($p<.1,p<.1$)．「情報引き出し」については，全データでは，条件TE+KEと条件BL，TEとの間に有意傾向が見られた($p<.1,p<.1$)．対話破綻回数が2回以下のデータでは，条件TE+KEと条件BLの間に有意差があったが($p<.05$)，条件TEとの間には有意差は認められなかった．以上，仮説2について，全被験者のデータを使用した場合では，条件TE+KEは条件BL，TEより，「情報引き出し」の評価値が高く，その差には有意傾向がみられた．また，対話破綻回数が少ない場合には，条件TE+KEは条件BLより，「バリエーション」，「情報引き出し」の評価値は有意に高く，「継続性」の評価値でも有意傾向がみられた．条件TEとの比較では，「バリエーション」の評価値は有意に高く，「継続性」においてもTE+KEの方が評価が高く，その差には有意傾向がみられた．以上の結果は，\ref{subsec:s_rate_variation}，\ref{subsec:context_turn}節で述べた客観評価の結果と一致するものであり，システムの特長がユーザの印象評価にも表れていることが確認できた．対話破綻回数が少ない場合に限定した分析では期待した結果が得られたが，全データでは効果がかなり限定的であったことから，対話破綻を防ぐことが，対話システムにおいて提案手法の長所を活かすためには不可欠であることが明らかになった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{まとめ}
\label{sec:conclusion}本研究では，料理に関するユーザの嗜好を引き出すインタビュー対話に向けて，様々な料理についての関連話題を用いた質問を行う対話システムを作成した．グラフ構造を持つ大規模知識を利用し，知識グラフのエンティティ間の関係を話題とみなし，話題どうしの関連の強さを大規模テキストWikipediaより学習し，Skip-gramにより話題埋め込み表現を作成することで，関連話題の選択を可能にした．また，質問生成時に欠損している知識を知識グラフ埋め込み表現を用いて知識グラフ補完を行うことで，関連話題を用いた質問の候補作成可能率を大きく改善し，提供する話題のバリエーションを増やした．知識グラフ補完の質的な評価も行った．その結果，知識グラフ補完を行った知識トリプルにおいて，Pが適切，あるいは不適切とは言えないがやや違和感を感じると評価された場合に，Oが適切であると判断された割合は19.4\%と低い結果であったが，知識グラフ補完により得られたトリプルから構成した質問文について，回答可能，あるいは回答不能ではないがやや違和感を感じると判断された割合は65\%であった．クラウドソーシングで募集した被験者に，Web上のシステムとの対話をする評価実験を行った結果，関連話題の選択と知識グラフ補完を組み合わせた提案システムは，話題のバリエーションに富み，ユーザの言及した料理名や材料名をきっかけとした会話をより長く継続できることがわかった．また，対話破綻回数が2回以下の被験者に限り，比較的，対話がうまくいったと考えられる場合に，提案システムはバリエーション，そして，有意傾向にとどまるが継続性についても，肯定的な主観評価が得られることがわかった．今後の課題として，まず，本稿で提案した質問は不確実な知識を用いているため，対話破綻やシステムの応答に対してユーザが異論を示す状況が見られた．このような問題に対して，知識グラフ埋め込み表現を作成するモデルの改良による知識グラフ補完精度の向上や，知識トリプルを用いた質問の表現を工夫することで対話の継続が期待できる．本研究では知識トリプルのSPOが揃った前提のもとで質問を組み立てたが，「Sで好きな材料(=P')はありますか?」のように，Sについて関連述語として推定したP'だけで質問することも考えられるが，今回の実験設定では生成されないため，これらを含めた検討が今後必要である．また，対話の中でユーザから正しい知識を教えてもらうといった知識獲得を行い，対話を継続しつつ，知識ベースの更新や知識グラフ埋め込み表現を改良するなどの方向性も考えられる．その他に，関連話題選択方法の改良も必要である．本手法では，関連話題の近さを扱う目的でWikipediaからの話題の抽出を行っており，抽出した話題も，料理ドメインにおけるFreebaseの述語を対象としている．そのため，人間どうしの会話で行われるような話題のバリエーション，話題選択とは異なる可能性がある．これについては，例えば，\citeA{moon2019opendialkg}を参考にし，大規模な対話コーパスと知識グラフを結びつけたデータを使い，深層学習を用いて対話履歴を考慮した知識トリプルの選択を行うといった改良が考えられる．加えて，対話で得られた情報が，ユーザの嗜好を実際に捉えているか，料理推薦などに役立つかの調査も必要である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgment本研究はJSPS科研費19H01120，19H04159，JSTAIP日独仏AI研究JPMJCR20G6，およびJSTムーンショット型研究開発事業JPMJMS2011の助成を受けたものである．%JSTAIP%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.6}\bibliography{12refs}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\appendix
\section{アンケート項目}
ユーザスタディ（\ref{sec:exp_results}章）で使用したアンケート項目を表\ref{tab:enquete}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table12\begin{table}[h]\input{12table12.tex}\caption{アンケート項目}\label{tab:enquete}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{知識トリプルの適切性評価の詳細}
\label{appendix_detail_eval_triple}\ref{subsub:eval_triple}節で行った知識トリプルの適切性の評価作業の詳細を示す．表\ref{tab:test_eval_kg_app_example}に知識トリプルの適切性評価作業シートと評価の例を示した．評価シートの各行には，評価対象のS，P，Oの組と，Pの適切性，およびOの適切性の評価を記入する欄が設けられている．表\ref{tab:test_eval_kg_app_example}では，評価記入欄に評価の例が記載されている．評価対象としたSPOは，補完されたOも含み，実際に質問生成に使用された知識トリプルである．Pについては，Freebaseの述語を自然言語の表現で示している．表現の候補が複数ある場合には[]内で示し，候補を\textbarで区切っている．\newpage評価者は，はじめにPの適切性を評価するよう指示された．具体的には，「評価シート中の対象(S)に対しての話題(P)の適切性を判断し，以下の3つのいずれかを選び，評価シートに記入してください」，と指示した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table13\begin{table}[t]\input{12table13.tex}\caption{知識トリプルの適切性評価作業シートと評価の例}\label{tab:test_eval_kg_app_example}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{oframed}\noindentPの適切性：\\○：対象(S)についての話題(P)として適切．\\△：対象(S)についての話題(P)として不適切とは言えないが，やや違和感を感じる．\\×：対象(S)についての話題(P)として不適切．\end{oframed}次に，Oの適切性を評価するよう指示した．具体的には，「対象(S)と話題(P)を考慮した上で，目的語(O)の適切性を判断し，以下の3つのいずれかを選び，評価シートに記入してください」，と指示した．\begin{oframed}\noindentOの適切性：\\○：対象(S)と話題(P)の目的語(O)として適切．\\△：対象(S)と話題(P)の目的語(O)として不適切とは言えないが，やや違和感を感じる．\\×：対象(S)と話題(P)の目的語(O)として不適切．\end{oframed}なお，評価者は，知識トリプルの適切性を評価するため，エンティティについて調べることを許可された．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{曽傑}{%2017年成蹊大学理工学部情報科学科卒業．2019年同大学院理工学研究科修士課程修了．現在，同研究科博士課程在籍．自然言語処理，対話システムの研究に従事．人工知能学会学生会員．}\bioauthor{中野有紀子}{%1990東京大学大学院教育学研究科修士課程修了．同年，日本電信電話（株）入社．2002MITMediaArts\&Sciences修士課程了．2002--2005（独）科学技術振興機構社会技術研究開発センター専門研究員，2005--2008東京農工大学大学院工学府特任准教授，成蹊大学理工学部情報科学科准教授を経て，現在，成蹊大学理工学部情報科学科教授．知的で自然なユーザインタフェースの実現に向けて，人との言語・非言語コミュニケーションが可能な会話エージェントの研究に従事．博士（情報理工学）．ACM，人工知能学会，電子情報通信学会，情報処理学会各会員．}\end{biography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\biodate\end{document}