\section{はじめに}
近年深層学習を利用した対話システムが注目を集めており，大規模データを活用する対話研究が活発に行われている\cite{adiwardana2020humanlike,smith-etal-2020-put}．現在主流の対話システムは大規模データをもとにして入力発話に対して尤もらしい応答を出力するように学習を行う．しかし，同じ入力発話であっても相手の発話意図によって応答すべき内容は異なる．つまり，対話システムは話者の意図を理解・解釈した上でその解釈した結果に応じて発話を行うべきであると考えられる．本研究では話者の意図理解に向けて，対話中の話者内部状態を取り扱い，以下の2つの課題に取り組む．\begin{enumerate}\item話者内部状態のモデル化\item話者内部状態を踏まえた応答変更\end{enumerate}一般に現実の対話ではたとえ雑談であっても「対話を通して情報を伝達する」や「相手に何らかの影響を与える」などの一定の目的がある．そしてその一貫した目的のもと，複数ターンのやり取りの中で情報が授受されることが自然である．つまり，話者内部状態のモデル化の際には複数ターンのやり取りがあり，かつ対話の目的がその中で一貫している対話データが必要になる．ただ，人間同士の対話は互いの意図が交錯するため，内部状態の分析・モデル化の題材にするのは難しい．一方，近年の深層学習による対話システムと人間の対話は一問一答レベルでは適切な応答ができるものの，複数ターンの対話になると多くの課題が表出する上，その対話には一貫した目的が存在しない場合がほとんどである．そうした背景から本研究では，映画推薦をドメインとするルールベースの対話システムを構築し，対話システムと人間との目的の一貫した複数ターンの対話データの収集を行う．本研究の全体の流れを図\ref{fig:flowchart}に示す．収集した対話データの分析に基づいて，対話中の話者内部状態を以下の3つの軸でモデル化する．\begin{itemize}\item\textbf{知識}：話題に関する知識があるかどうか\item\textbf{興味}：話題への興味があるかどうか\item\textbf{対話意欲}：対話に対して積極的に参加しているかどうか\end{itemize}話者の知識や興味を理解することで適切な情報提供や話題変更を行える．また，対話意欲を考慮することで，例えばユーザの対話意欲が高い場合は聞き役に徹するようにするなど，対話システムが適切な振る舞いができるようになる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.1\begin{figure}[t]\begin{center}\includegraphics{28-1ia5f1.pdf}\end{center}\caption{本研究の流れ}\label{fig:flowchart}\vspace{-0.5\Cvs}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%モデル化した話者内部状態を収集した対話データにアノテートし，これを学習データとして話者内部状態の自動推定を行った．その結果，いずれの内部状態においても7値スケールで$\pm1$のずれを許した場合，約80〜85\%と高い推定精度を達成した．また，話者内部状態の自動推定結果に応じた対話システムの応答の変更にも取り組む．具体的には，知識，興味，対話意欲のそれぞれについてその有無に応じた応答変更のルールを追加で用意する．話者内部状態を自動で推定し，その推定結果に応じて応答変更を行った場合にシステム発話の自然さが向上することを，対話単位での評価と発話単位での評価の両方で確認した．本研究の貢献は以下の2点である．\begin{itemize}\item発話ごとにユーザ内部状態（知識，興味，対話意欲）を付与した1万発話規模のテキスト対話コーパスを構築した．\itemユーザ内部状態を自動推定し，その推定結果に応じてシステム発話を変更することの有効性を実証的に示した．\end{itemize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}
\label{sec:related_work}対話においては，発話自体の内容を理解するのは勿論のこと，それを発話した話者の状態を理解することが重要である．ここでは発話の背後にある話者の内面の状態を「話者内部状態」と呼び，知識・興味・対話意欲の3つに注目する．関連する概念として，対話行為\cite{stolcke-etal-2000-dialogue}がある．対話行為は，対話中の発話を「質問」「情報提供」「約束」といった心理的・社会的な何らかの効果を引き起こす行為として分類したものであり\cite{dialogsystem2015}，対話における話者の意図や目的の理解に広く用いられている\cite{bunt-etal-2012-iso}．対話行為が発話のもたらす効果に注目しているのに対し，本研究で取り扱う話者内部状態は，その行為を選択するに至った話者の，より原始的な内面の状態である．感情は対話研究において積極的に活用が検討されてきた話者内部状態であり，発話からの感情の推定や，感情を踏まえた発話生成の研究が盛んに行われている．\citeA{tokuhisa2009web}はWebから獲得したコーパスを用いて発話から「嬉しい」「楽しい」などの10種類の感情の推定を行った．感情を踏まえた発話生成の研究では，Tweet中の顔文字を感情のアノテーションとみなすことで感情を反映した発話生成を行う手法\cite{zhou-wang-2018-mojitalk}や，感情の明示的表現と暗示的表現に着目し，特定の感情を発話に反映する手法が提案されている\cite{song-etal-2019-generating}．一方で，話者の発話だけからでは陽には読み取れない情報に着目したものとして，ペルソナ\cite{li-etal-2016-persona,zhang-etal-2018-personalizing}がある．ペルソナは話者の年齢や性別といった個人的な背景やそれに基づく話し方などを指す．ユーザごとにID番号を割り振ることで話者の違いを学習する手法\cite{li-etal-2016-persona}や，ユーザの属性を短文数文程度にまとめることでペルソナのモデル化を行ったものがある\cite{zhang-etal-2018-personalizing}．このような感情とペルソナの活用は主に対話システム側の応答を豊かにすることを目的としており，本研究の話者の意図理解とは目的が異なる．ユーザの知識・興味・対話意欲について着目した研究もなされている．\citeA{宮崎2016knowledge}はコールセンタの音声対話を具体例として知識量推定に有効な言語的・対話的特徴量について調査を行っている．またその調査に基づき，対話全体から話者の知識量を推定し，知識の少ない話者の対話を抽出する手法を提案している．興味については，マルチモーダル情報を利用して興味を推定する研究がある\cite{冨増2016,松本2018,西本2018}．また，Wizard-of-Oz法を用いて収集したマルチモーダル対話に，話題への興味の有無をアノテートしたデータについて分析した研究もある\cite{荒木2017,駒谷和範2018}．テキスト対話からユーザの興味を推定する研究としては，人間同士の雑談対話において，発話から決められたトピックについての興味の度合いを推定した研究がある\cite{inaba-takahashi-2018-estimating}．\citeA{inaba-takahashi-2018-estimating}は対話終了後に各被験者に24種類のトピックの興味の度合いを選択させることで1つの対話と24種類の各トピックの興味の度合いの紐付けを行っている．対話意欲では\citeA{千葉2015willingness}がマルチモーダル対話データを分析し，提示された質問や話題に対する話者の対話全体での対話意欲の有無を70〜80\%で推定できることを示した．\citeA{ishihara-2018-willingness}は同様にマルチモーダル情報を用いてインタビュー対話から話者の対話意欲の有無を推定した．これらの先行研究では知識，興味，対話意欲のいずれか1つの推定に取り組んでいるが，本研究では3つの話者内部状態を同時に取り扱う．また，これらの内部状態は対話の中で刻々と変化していくと考えられるため，対話のターンごとに推定を行う．そして，その推定結果によって応答を適切に変更することで，ユーザの内部状態を解釈して自然な応答を行える対話システムを構築する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{映画推薦対話システムの構成}
話者内部状態の観察・分析のためには一貫した目的を持って複数ターンにわたって対話を続ける対話システムが必要となる．そこで映画推薦を目的としたルールベースの対話システムを構築した（図\ref{fig:overview}）．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.2\begin{figure}[t]\begin{center}\includegraphics{28-1ia5f2.pdf}\end{center}\caption{映画推薦対話システムの概要図}\label{fig:overview}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%本システムでは，いくつかのテンプレートを用意し，予め映画ごとにシステム発話の内容を作成しておく．この発話集をシナリオと呼ぶ．映画データベースはこのシナリオと，簡単な質問応答の際に必要な映画情報を保持する．対話管理はダイアログマネージャが担い，必要に応じて映画データベースに格納された映画情報を参照しながら対話を進める．本システムによる対話例を例\ref{ex:dialog_example}に示す．\ex.\label{ex:dialog_example}\a.[$S1$:]ファッションって興味ありますか？\b.[$U1$:]興味ありますよ\b.[$S2$:]ファッションに関係のある映画があるんです．「マイ・インターン」というタイトルです．\b.[$U2$:]タイトルは聞いたことあるような気がします．\b.[$S3$:]素晴らしいの一言ですよ．\b.[$U3$:]そうなんですね．\b.[$S4$:]ロバート・デニーロは優しくカッコいい紳士，憧れますよ．\b.[$U4$:]それはいいですね\b.[$S5$:]是非見てみてください%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{対話戦略}\label{subsec:strategy}現在の技術レベルでもある程度自然で意味のある映画推薦対話が可能となるように，\pagebreak本システムは以下の3つの対話戦略に基づき動作する．\noindent\textbf{(1)システム主導}\quadシステムはユーザ発話に対する簡単な応答をしつつ，基本的にはシナリオ通りに主導的に対話を進める．\noindent\textbf{(2)間接的話題導入}\quadシステムは対話のメインの話題である映画のタイトルをいきなり言うのではなく，以下の3つのパターンのいずれかを用いてその周辺の話題から対話を始める（下線部は映画によって異なる．）\begin{description}\setlength{\leftskip}{1.5em}\item[T1：最近のエンタメニュース]~\\（例）\underline{俳優の染谷将太と女優の菊地凛子夫妻に第2子が誕生したことが11日までに}\\\underline{わかった}と話題です\item[T2：映画のテーマ]~\\（例）\underline{飛行機}って興味ありますか？\item[T3：映画情報（俳優の名前など）]~\\（例）\underline{細田守監督}をご存知ですか？\end{description}\noindent\textbf{(3)推薦ポイント}\quad推薦する映画を褒める文（推薦ポイント）を複数回発話することで，ユーザがその映画を見たいと思えるように念押しする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{映画データベース}映画データベースには213作品の基本情報，解説・あらすじ，ニュース情報，レビュー，シナリオがそれぞれ格納されている．基本情報，解説・あらすじ，レビューは映画レビューサイト\footnote{\url{https://movies.yahoo.co.jp/}}からWebスクレイピングで取得した．基本情報は映画のタイトル，キャスト，スタッフ，ジャンルなどの情報である．レビューは，映画レビューサイトのユーザが映画の感想や評価などを書き込んだ文章であり，各映画につき高評価順に300件ずつ取得した．ニュース情報は，エンタメとスポーツのニュースをニュースサイトからWebスクレイピングで取得した．このニュース情報は\ref{subsec:strategy}節で述べたパターン\textbf{T1}のシナリオの作成に用いる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{対話シナリオ}\label{subsec:scenario}シナリオは対話戦略に沿って映画ごとに複数作成した．シナリオの前半部分では，間接的に話題を導入し，推薦映画を提示する．間接的話題導入の発話は，\ref{subsec:strategy}節で述べた3つのパターン\textbf{T1}〜\textbf{T3}に基づき，映画データベース中の情報を用いて生成する．パターン\textbf{T1}では，最近のエンタメニュースの話題で対話を始め，そのニュースの登場人物の出演映画を推薦する．映画データベースのニュース記事の最初の1文を抽出し，キャストの名前が含まれていたら，「＜最近のエンタメニュースの1文目＞というニュースが話題になっていますね」と発話する．パターン\textbf{T2}では，映画のテーマを用いて「＜テーマ＞って興味ありますか？」といった文で対話を始める．映画のテーマは映画データベースの解説・あらすじからキャスト・スタッフ等の人名を取り除いた上でtf-idfのスコアが最も高い名詞を選択する．ただし，一般的な語がテーマとして使用されるのを防ぐために，tf-idfの最高値が0.35を下回った場合には，その映画についてはパターン\textbf{T2}のシナリオは作成しない．パターン\textbf{T3}では，映画データベースの基本情報に含まれている主要キャスト2名と監督の名前を用いて「＜人名＞さんってご存知ですか？」といった発話から対話を始め，その人物に関連する映画を推薦する．シナリオ後半部分では，各映画のレビューから抽出した2つの推薦ポイント文を発話する．まず，レビューの文章を文単位で分割する．次にレビュー文は口調が統一されていないため，Juman++辞書\footnote{\url{https://github.com/ku-nlp/jumandic-grammar}}を用いて語尾を活用させ，丁寧口調（「です」または「ます」）に変換したのち，語尾に情報提供の口調の「よ」を追加する．さらに，映画を褒めている，かつある程度の長さの文を選ぶ．具体的には，まず独自に選んだ映画に関連するポジディブな単語（「傑作」，「面白い」など）50語の単語ベクトルの和と各文の単語ベクトルの和のコサイン類似度を計算し，類似度と各文の文字数をかけ合わせたスコアを用いてスコア上位100文を抽出する．これを各映画について行い，各シナリオでは100文の中からランダムに2文を用いる．なお，単語ベクトルはWebテキスト約98億文で学習したword2vecを用いた．最後に視聴を促す発話を以下の5つからランダムに選択する．\begin{itemize}\item是非見てみてください\item是非ご覧下さい\item良かったら見てみてはいかがですか？\item面白い作品なのでぜひ見て頂きたいです\itemきっと楽しめると思いますよ\end{itemize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{ダイアログマネージャ}\label{subsec:dialog_manager}ダイアログマネージャは，映画データベースの情報を参照しつつ，推薦映画の決定やシナリオの選択，シナリオに基づく発話を行う．推薦映画の決定はユーザの好みを尋ねてからその返答に応じて決定する方式とランダムに決定する方式の2つを用意し，その割合を8:2とした．ユーザの好みを尋ねる際に用いる質問（＝初期質問）は以下からランダムに選択する．\begin{itemize}\item好きな俳優は誰ですか？\item好きな女優は誰ですか？\item好きな監督は誰ですか？\item好きなジャンルは何ですか？\item邦画と洋画どちらが好きですか？\end{itemize}初期質問をする場合には，例えばユーザが好きな女優を挙げたら，その女優が出演する映画の中から推薦映画を選ぶ．その後，用意されているシナリオから1つ選択し，そのシナリオに基づいて発話を行う．ユーザの発話からの人物名の抽出は正規表現によるマッチングを用いる．ユーザが「いない」等と答えた場合や，初期質問をしない場合には，推薦映画をランダムに決定する．推薦映画の主演キャスト，他のキャスト，監督の名前やジャンルなどの簡単な質問をユーザがした場合には，映画情報データベースを参照してその応答を通常のシステム発話の前に挿入する．質問であるかどうかの判定にはNTTコミュニケーションズが提供するCOTOHAAPI\footnote{\url{https://api.ce-cotoha.com/contents/index.html}}を用いた．COTOHAAPIでは文タイプを平叙文，疑問文，命令の中から判定することができる．本研究ではユーザ発話の文タイプが疑問文である発話を質問とみなし，質問の種類の判定は正規表現ベースでマッチングを行う．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{話者内部状態による応答変更}\label{subsec:response_change}本節では話者内部状態推定器の推定結果に応じてシステムの応答を変更するルールについて説明する．話者内部状態推定器は以下の3つの手続きにより作成する．\begin{enumerate}\item\ref{subsec:strategy}節から~\ref{subsec:dialog_manager}節までで述べた要素によって構成された映画推薦対話システムで対話を収集（詳細は~\ref{subsec:train_dialog_collection}節）\item収集した対話に知識，興味，対話意欲のアノテーションを行い対話コーパスを構築（詳細は~\ref{subsec:annotation}節）\item構築した対話コーパスを用いて話者内部状態推定器を学習（詳細は~\ref{subsec:estimation}節）\end{enumerate}本システムは予めシステム発話の内容が決められたシナリオに基づいて対話を進める．そのため，各話者内部状態の対象（「何に対して知識があるのか」，「何に対して興味がないのか」など）を前のシステムの発話からある程度想定することができる．そこで知識・興味・対話意欲の有無とそのそれぞれの対象に応じて適切な応答を予め用意しておく．表\ref{tab:response_change}に話者内部状態タイプと各応答変更の概要を示す．話者内部状態推定器により各話者内部状態を推定し，用意した適切な応答に変更することでシステム発話がより自然な応答となることを目指す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table1\begin{table}[t]\input{05table01.tex}\caption{話者内部状態による応答変更一覧}\label{tab:response_change}\vspace{-0.5\Cvs}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{知識の有無による応答変更}\label{subsubsec:knowledge_response_change}知識の有無による応答変更には以下の4タイプを用意する．\pagebreak応答変更の判断基準となるユーザ発話には隅付き括弧内にそのユーザ発話の知識の有無を記す．\noindent\textbf{1.人物の知識がない}\quad間接的話題導入のパターン\textbf{T3}の発話の直後のユーザ発話から知識がないことがわかる場合，ユーザはその人物を知らないと考えられる．この場合はその人物についての簡単な説明文を次の発話の前に挿入する．説明文はその人物についてのWikipedia記事の第一文目を活用する．Wikipedia記事の取得にはMediaWikiAPI\footnote{\url{https://www.mediawiki.org/wiki/API:Main_page/ja}}を使用した．具体例を例\ref{ex:rc_example1}に示す．$S_\mathit{before}$と$S_\mathit{after}$はそれぞれ応答変更をしなかった場合と応答変更をした場合のシステム発話を指す．また，主な変更点を$S_\mathit{after}$の下線部に示す．\ex.\label{ex:rc_example1}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]ジョージ・ルーカスさんをご存知ですか？\b.[$U$:]良く分かりません。【知識なし】\b.[$S_\mathit{before}$:]ジョージ・ルーカスさんが監督をされている映画があります。「スター・ウォーズ」というタイトルです。\b.[$S_\mathit{after}$:]\underline{ジョージ・ルーカスさんはアメリカの映画監督、映画プロデューサー、脚本家}\\\underline{です。}ジョージ・ルーカスさんが監督をされている映画があります。「スター・ウォーズ」というタイトルです。\noindent\textbf{2.映画の知識がない}\quad映画のタイトルを提示した直後のユーザ発話から知識がないことがわかる場合，ユーザはその映画を知らないと考えられる．この場合，例\ref{ex:rc_example2}のようにその映画についての情報を次の発話の前に補足する．本研究では補足する情報として映画の公開年度を使用した．\ex.\label{ex:rc_example2}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]好きな女優は誰ですか？\b.[$U$:]綾瀬はるかさんです\b.[$S$:]では綾瀬はるかさんが出演している映画を紹介しますね\b.[$U$:]お願いします\b.[$S$:]「本能寺ホテル」という映画です\b.[$U$:]知らないです。【知識なし】\b.[$S_\mathit{before}$:]最後の京都の現在の町と過去が交差する景色は、人の営みと思いは綿々と繋がっていること、そして過去の人々のお陰で現在の平和があることを示唆していますよ\b.[$S_\mathit{after}$:]\underline{2017年に公開された作品です。}最後の京都の現在の町と過去が交差する景色は、人の営みと思いは綿々と繋がっていること、そして過去の人々のお陰で現在の平和があることを示唆していますよ\noindent\textbf{3.映画の知識がある}\quad映画のタイトル提示および1つ目の推薦発話の直後のユーザ発話に知識がある場合，ユーザがその映画を知っていると考えられるため，その次の発話の語尾を情報提供の口調の「よ」から同意口調の「よね」に変更する（例\ref{ex:rc_example3}）．映画のタイトル提示直後と1つ目の推薦発話直後の応答変更はそれぞれ独立に知識の有無を判定して行われる．\ex.\label{ex:rc_example3}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]好きな俳優は誰ですか？\b.[$U$:]藤原竜也\b.[$S$:]では藤原竜也さんが出演している映画を紹介しますね\b.[$U$:]はい、お願いします\b.[$S$:]「僕だけがいない街」という映画です\b.[$U$:]はい、ＤＶＤで鑑賞しました【知識あり】\b.[$S_\mathit{before}$:]謎解きは勘のいい方ならすぐに分かるレベルですが、本作は物語のベースに暖かいメッセージがこめられていて感動しますよ\b.[$S_\mathit{after}$:]謎解きは勘のいい方ならすぐに分かるレベルですが、本作は物語のベースに暖かいメッセージがこめられていて感動します\underline{よね}\noindent\textbf{4.映画の深い知識がある}\quad例\ref{ex:rc_example4}に示すように映画のタイトル提示および2つの推薦発話の直後の全てで知識がある場合，ユーザはその映画を既に見たことがあると想定し，最後の視聴を促す発話をユーザに視聴経験があると想定した発話に変更する．変更する発話は以下の2つからランダムに選択する．\begin{itemize}\itemまた見てみてはいかがですか\item是非もう一度見てみてください\end{itemize}\ex.\label{ex:rc_example4}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]好きな女優は誰ですか？\b.[$U$:]薬師丸ひろ子\b.[$S$:]じゃあ薬師丸ひろ子さんが出演している作品を紹介しますね\b.[$U$:]よろしくお願いします\b.[$S$:]「コーヒーが冷めないうちに」というタイトルです\b.[$U$:]よく知っていますね【知識あり】\b.[$S$:]設定のせいもあるかもしれないけど、やっぱり、本物の役者さんって言うのは、凄いのだと、改めて感じますよね\b.[$U$:]年季を感じますね【知識あり】\b.[$S$:]数ちゃんと新谷君の心が近づいていって結ばれる軸となるエピソードに、ほっと心が温まりますよね\b.[$U$:]私もです【知識あり】\b.[$S_\mathit{before}$:]面白い作品なのでぜひ見て頂きたいです\b.[$S_\mathit{after}$:]是非\underline{もう一度}見てみてください%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{興味の有無による応答変更}\label{subsubsec:interest_response_change}興味の有無による応答変更には以下の3タイプがある．応答変更の判断基準となるユーザ発話には隅付き括弧内にそのユーザ発話の興味の有無を記す．\noindent\textbf{5.ニュースに興味がない}\quad間接的話題導入のパターン\textbf{T1}の発話の直後に興味がない場合，提示したニュースに興味がないと考えられる．ただ，ニュースに興味がない場合でも映画に興味を示すことは考えられるため，そのまま映画を推薦する．その際，ユーザの発話を無視したという印象を薄くするため，例\ref{ex:rc_example5}に示すように以下のいずれかの発話からランダムに選択した発話を次の発話の前に挿入する．\begin{itemize}\item結構評判みたいですよ。\item結構話題になっているみたいなのですが，\end{itemize}\ex.\label{ex:rc_example5}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]俳優の木村拓哉と歌手の工藤静香の長女・Ｃｏｃｏｍｉが26日、自身のインスタグラムを更新し、久々に外出したことをつづったと話題となっています\b.[$U$:]そうなん【興味なし】\b.[$S_\mathit{before}$:]木村拓哉さん、「無限の住人」という映画に出演されています\b.[$S_\mathit{after}$:]\underline{結構評判みたいですよ。}その木村拓哉さん、「無限の住人」という映画に出演されています\noindent\textbf{6.テーマに興味がない}\quad間接的話題導入のパターン\textbf{T2}の発話の直後に興味がない場合，その映画のテーマに興味がないと考えられる．映画のテーマに興味がない場合，映画についても興味を示さないことが想定されるため，推薦する映画を変更する．その際にユーザの好みを把握するため，例\ref{ex:rc_example6}のように初期質問を行う．この初期質問は\ref{subsec:dialog_manager}節で述べた5つからランダムに選択する．\ex.\label{ex:rc_example6}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]タイムトラベルって興味ありますか？\b.[$U$:]いえ、あまり興味ありません【興味なし】\b.[$S_\mathit{before}$:]タイムトラベルに関係のある映画があります。「アバウト・タイム愛おしい時間について」というタイトルです\b.[$S_\mathit{after}$:]そうなんですね。\underline{では好きな映画監督は誰ですか？}\noindent\textbf{7.人物に興味がない}\quad間接的話題導入のパターン\textbf{T3}の発話の直後に興味がない場合，その映画の監督または主要キャストに興味がないと考えられるため，初期質問を行って推薦する映画を変更する．このとき，例\ref{ex:rc_example7}のように女優（俳優/監督）の名前から対話を始めた場合は好きな女優（俳優/監督）を尋ねる初期質問を行う．\ex.\label{ex:rc_example7}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]サンドラ・ブロックさんをご存知ですか？\b.[$U$:]知っていますが、あまり興味はないです。【興味なし】\b.[$S_\mathit{before}$:]サンドラ・ブロックさんが声優をしている映画があります。タイトルは「ミニオンズ」です。\b.[$S_\mathit{after}$:]そうなんですね。\underline{では好きな女優は誰ですか？}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{対話意欲の有無による応答変更}\label{subsubsec:willingness_response_change}対話意欲の有無による応答変更は以下の1タイプである．応答変更の判断基準となるユーザ発話には隅付き括弧内にそのユーザ発話の対話意欲の有無を記す．\\\noindent\textbf{8.対話意欲がない}\quad2回目の推薦発話の直後に対話意欲がない場合，これまでの推薦の効果が薄いと考えられるため，視聴を促す発話を控えめな言い回しである以下のいずれかの発話からランダムに選択して変更する．例\ref{ex:rc_example8}に具体例を示す．\begin{itemize}\item騙されたと思って見てみてはいかがですか\item見てみたら意外と面白いかもしれませんよ\end{itemize}\ex.\label{ex:rc_example8}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]ヘイリー・アトウェルさんをご存知ですか？\b.[$U$:]しらないな。\b.[$S$:]ヘイリー・アトウェルさんはイングランド生まれの女優です。ヘイリー・アトウェルさんが出演されている映画があります。タイトルは「プーと大人になった僕」です。\b.[$U$:]そうなんですね。\b.[$S$:]はい、プーだけじゃなくて、イーヨーやピグレット、他のキャラたちも、声に魅力があるし、ユアンマクレガーのイギリス人らしいイントネーションも、原語ならではの雰囲気ですよ\b.[$U$:]へー\b.[$S$:]クリストファーロビンに邪魔者扱いされ、悲しそうな顔から、最後は絆を取り戻せて幸せそうな表情に変わるプーさんがキュートすぎてたまりませんよ\b.[$U$:]そうですか。【対話意欲なし】\b.[$S_\mathit{before}$:]是非見てみてください\b.[$S_\mathit{after}$:]\underline{見てみたら意外と面白いかもしれませんよ}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{コーパス構築}
まず，話者内部状態による応答変更を行わないシステムで対話を収集し（\ref{subsec:train_dialog_collection}節），話者内部状態のモデル化を行う（\ref{subsec:modeling}節）．そして，収集した対話にモデル化した話者内部状態のアノテーションを行う（\ref{subsec:annotation}節）．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{学習・分析用対話収集}\label{subsec:train_dialog_collection}本システムを用いてクラウドソーシング\footnote{\url{http://crowdsourcing.yahoo.co.jp/}}で対話を収集した．ワーカーには事前に，213作品の中から対話的に映画を薦めるシステムとの対話であることを伝えている．対話はシステム側から開始し，ワーカーが返答するという順で進める．最後はシステム側の発話で対話を終了する．対話システムは外部サイトとして用意し，ワーカーはクラウドソーシングのタスク画面内の対話システムのURLをクリックし，外部サイトで対話を行う．また，対話終了後にクラウドソーシングのタスク画面上で以下の5段階評価のアンケートに回答する．\begin{description}\item{(1)}\textbf{説得度}:推薦された映画を見たくなりましたか？\\\{5:見たい，4:どちらかと言えば見たい，3:どちらとも言えない，2:どちらかと言えば見たくない，1:見たくない\}\item{(2)}\textbf{流れの自然さ}:対話の流れは自然でしたか？\\\{5:自然だった，4:どちらかと言えば自然だった，3:どちらとも言えない，2:どちらかと言えば不自然だった，1:不自然だった\}\end{description}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table2\begin{table}[t]\input{05table02.tex}\hangcaption{対話コーパス例（対話コーパスは対話を収集したのち，別途話者内部状態をアノテートすることで作成．）}\label{tab:dialog_example}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table3\begin{table}[t]\input{05table03.tex}\hangcaption{収集対話の統計情報（参加ワーカー数はYahoo!クラウドソーシングの会員IDで区別して計算．形態素分割にはJuman++~\protect\cite{Tolmachev2020a}を使用）}\label{tab:dialog_statistics}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table4\begin{table}[t]\input{05table04.tex}\caption{学習・分析用対話のアンケート結果}\label{tab:questionnaire_train}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%外部サイト上でワーカー固有のIDを表示し，クラウドソーシングの回答欄に入力してもらうことで対話とアンケート結果の紐付けを行う．収集した対話例を表\ref{tab:dialog_example}の「対話」列に，その統計情報を表\ref{tab:dialog_statistics}に示す．全部で1,060対話を収集した．また，アンケート結果を表\ref{tab:questionnaire_train}に示す．説得度について51.7\%，流れの自然さについて60.3\%の対話が4以上の評価を獲得した．この結果から本システムが映画推薦という対話の目的を十分に達成しながら，ある程度自然な対話を実現できていることを確認できた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{話者内部状態のモデル化}\label{subsec:modeling}前節で収集した対話を用いて，\pagebreakより自然な対話を実現するために必要な要素について分析を行った．その結果，話者の「知識」・「興味」・「対話意欲」の3つの内部状態を把握し，それぞれの内部状態の有無に応じて適切な応答を行うことが対話の自然さの向上につながると考えた．先行研究においては，知識，興味，対話意欲のそれぞれの重要性は示唆されているものの\cite{宮崎2016knowledge,inaba-takahashi-2018-estimating,千葉2015willingness}，各々を独立に取り扱っている．ただ，これらの内部状態を統合的に考慮することで，話者の内部状態をより豊かに表現でき，より詳細な話者の意図理解につながると考えられる．また，本研究で提案する話者内部状態モデルは，それぞれの内部状態が旅行や音楽などの複数の話題があるインタビュー対話\cite{千葉2015willingness}や雑談対話\cite{inaba-takahashi-2018-estimating}などで取り扱われていることから，今回の映画推薦のドメインに依存せず，雑談を含む他のドメインにおいても汎用的に活用できると考えられる．本研究で用いる各話者内部状態の定義は以下の通りとする．\begin{itemize}\item\textbf{知識}：話題に関する知識があるかどうか\item\textbf{興味}：話題への興味があるかどうか\item\textbf{対話意欲}：対話に対して積極的に参加しているかどうか\end{itemize}なお本研究では，システムの発話によってユーザの内部状態は刻々と変化すると考えられるため，ユーザが発話するごとにその内部状態を考慮する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{話者内部状態アノテーション}\label{subsec:annotation}クラウドソーシングを用いて，収集した対話の全てのユーザ発話に話者内部状態をアノテートする．アノテータは対話履歴を見ながら，各ユーザ発話から読み取れる知識・興味・対話意欲の有無をアノテートする．話者内部状態のアノテーションはあり/なしの2値\cite{yoshino-etal-2015-conversational,Inoue2018}，もしくはあり/どちらでもない/なしの3値\cite{荒木2017}で行われることが多いが，本研究では有無を断定できない発話があることを考慮し，3値でのアノテーションを行う．アノテータは以下に示す3段階の選択肢（それぞれが1点，0点，$-1$点に対応）から設問に対して最も適切なものを選択する．\begin{description}\setlength{\leftskip}{1em}\item[設問：]発話から読み取れる内部状態を下記の選択肢から選んでください．\begin{itemize}\item\textbf{知識}：\{1:知識あり,0:特に読み取れない,$-1$:知識なし\}\item\textbf{興味}：\{1:興味あり,0:特に読み取れない,$-1$:興味なし\}\item\textbf{対話意欲}：\{1:対話への関与が積極的,0:どちらとも言えない,$-1$:対話への関与が消極的\}\end{itemize}\end{description}アノテーションは各発話に対して3人ずつで行う．アノテーションには458名のアノテータが参加した．スコアの集約では各アノテータの多数決を採るという方法もあるが，今回取り扱う話者内部状態では「知識がありそう」などのように，3段階の中にさらにそれぞれの中間的な状態があると考えられるため，3人のアノテータのスコアを合計した3から$-3$までの7段階のスコアをアノテーションとする．アノテーションした対話コーパスの例を表~\ref{tab:dialog_example}に，各内部状態のスコアの分布を表\ref{tab:statistics_internal_state}に示す．興味と対話意欲に関してはスコアが高い傾向にあったが，知識に関してはほぼ一様に分布している．本研究で扱う話者内部状態のアノテーションにはアノテータの主観が介入すると考えられる．そこで，アノテータ間の一致率を測ることでアノテーションの信頼性を検証する\footnote{458名のアノテータがアノテーションを行ったため，各アノテータの，他のアノテータとのアノテーションの一致率を評価した（付録\ref{sec:worker_reliability}）．その結果，極端に信頼性が低いアノテータはごく少数であったため，付与したアノテーションはすべてそのまま使用した．}．ここではアノテータが各発話に対して3人であることと，アノテーションの尺度水準\cite{Stevens1946}が順序尺度とみなせることからKrippendorff's$\alpha$\cite{krippendorff04}を指標として用いる．Krippendorff's$\alpha$は2人以上のアノテータ間の一致度を求めるための指標で，スコア間距離（＝不一致度）を尺度水準によって変更することができるため高い汎用性を持つ．本研究では順序尺度のスコア間距離を用いてKrippendorff's$\alpha$を計算する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table5\begin{table}[b]\vspace{-0.5\Cvs}\input{05table05.tex}\caption{話者内部状態の分布（括弧内は発話数）}\label{tab:statistics_internal_state}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table6\begin{table}[b]\input{05table06.tex}\caption{アノテータ間の一致率}\label{tab:annotator_agreement}\vspace{-0.5\Cvs}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%全データ（\textit{Full}と呼ぶ）でのアノテータ間の一致率を表~\ref{tab:annotator_agreement}の\textit{Full}列に示す．いずれの内部状態についても$\alpha$は0.40程度であった．一般に社会学では$\alpha$が0.80を超える場合に信頼性を持ったデータであると結論付けることができる．しかし言語処理分野においては，マルチモーダル対話データに興味の有無をアノテーションした先行研究\cite{駒谷和範2018}で，尺度水準を間隔尺度としているため単純比較はできないものの，$\alpha$が0.50程度となっている．このアノテーションは専門家によって行われており，不特定多数の人間が参加できるクラウドソーシングによるアノテーションより品質が高いと考えられる．一方，\citeA{Mathieu-native2016}は母語話者と非母語話者のプレゼンテーション能力についてクラウドソーシングによるアノテーションを行っており，言語処理の主観評価タスクでは$\alpha$は0.40程度で妥当であると報告している．したがって，クラウドソーシングによってアノテーションを行った本研究の$\alpha$が0.40程度であるのは妥当であると考えられる．また，アノテータ間でスコアが$-1$と1とに割れている発話をコーパスから取り除いてフィルタリングしたデータを\textit{Filtered}とする．\textit{Filtered}のアノテータ間の一致率を表\ref{tab:annotator_agreement}の\textit{Filtered}列に示す．\textit{Filtered}データを用いることでアノテータ間の一致率の高い，品質の良いデータのみから学習できるという利点がある．その一方で，アノテータ間で意見が割れる難しい事例を取り除くことにもなるため，そうした事例が実際に出現した際に対応が出来ない可能性がある．そこで，\textit{Full}と\textit{Filtered}によって学習した推定器の精度を実験で比較し，フィルタリングの効果について検証する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験}
構築した対話コーパスを利用して，話者内部状態を推定しながらその結果に応じて応答を変更する対話システムを構築する．まず，コーパスから話者内部状態の推定を行う推定器を学習する．次にこの推定器をこれまでに構築した対話システムに組み込み，話者内部状態に応じて応答を変更できるようにする．最後に，構築した応答変更機能付きの対話システムで対話を収集し，その質の評価を行う．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{話者内部状態推定}\label{subsec:estimation}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{話者内部状態推定器の作成}話者内部状態の推定にはBERT\cite{devlin-etal-2019-bert}を用いる．BERTはTransformer\cite{vaswani2017attention}をベースとし，大規模な生コーパスで事前学習した後，各タスクでfine-tuningすることで自然言語処理の様々なタスクでSOTAを達成している．本研究では，NICTBERT日本語Pre-trainedモデルBPEあり\footnote{\url{https://alaginrc.nict.go.jp/nict-bert/index.html}}を利用する．このBERTモデルは日本語Wikipedia全文に対して，半角を全角に正規化したのち，形態素分割およびsubword分割を行い，110万ステップpre-trainingしたものである．話者内部状態推定推定器を図\ref{fig:model}に示す．それぞれの話者内部状態の有無は，「あり」「なし」といったラベルで予測するより，「知識がありそう」などの中間状態を表現しやすい連続値のスコアで予測する方が良いと考え，分類モデルではなく回帰モデルで推定を行う．推定対象のユーザ発話とそれ以前の対話履歴を入力として対象のユーザ発話の話者内部状態推定スコアを出力する．具体的には，推定対象のユーザ発話の先頭と末尾にそれぞれ[CLS]トークンと[SEP]トークンを挿入し，対話履歴はより新しいものを左から順に最大512トークンまで入力する．また，各システム発話，ユーザ発話の前にはそれぞれ分離トークン[S]，[U]を追加する．出力は[CLS]トークンに対応する768次元の隠れ状態ベクトルを1次元に線形変換を行った実数値が推定スコアとなる．3を上回る推定スコアは3に，$-3$を下回るスコアは$-3$に変換する．損失関数には二乗誤差関数を採用し，推定スコアと正解スコアの差が小さくなるように学習を行う．話者内部状態推定器は知識，興味，対話意欲のそれぞれ個別に学習を行い，合計で3つ作成する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.3\begin{figure}[b]\begin{center}\includegraphics{28-1ia5f3.pdf}\end{center}\caption{話者内部状態推定器（[S]，[U]はそれぞれシステム発話，ユーザ発話の分離トークンを指す）}\label{fig:model}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table7\begin{table}[b]\input{05table07.tex}\hangcaption{\textit{Full}および\textit{Filtered}の発話数．括弧内の数字はそれぞれ学習データ，開発データ，テストデータの発話数を表す．}\label{tab:utterances_data}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{実験設定}対話コーパス1,060対話を学習データ：開発データ：テストデータ＝8：1：1の割合で分割する．各データの発話数を表~\ref{tab:utterances_data}に示す．\textit{Filtered}は\textit{Full}と比べて約8割程度のデータ量であった．評価指標は以下の2つを用いる．\begin{itemize}\item\textbf{Acc}:推定スコアと正解スコアの差が$\pm0.5$以下である割合\item\textbf{BroadAcc}:推定スコアと正解スコアの差が$\pm1.5$以下である割合\end{itemize}Accは7値分類の正解率に，BroadAccは7値分類においてスコア$\pm1$まで誤差を許容した正解率に対応している．開発データを使用して，\citeA{devlin-etal-2019-bert}の設定に従い，下記の条件でfine-tuningのハイパーパラメータチューニングを行う．開発データでのAccが最も良い推定器を最終的な推定器として使用する．なおドロップアウト率は実験を通して0.1で固定する．その他のパラメータについては，NICTBERT日本語Pre-trainedモデルBPEありのデフォルトの値を用いる．\begin{itemize}\item\textbf{バッチサイズ}:{16,32}\item\textbf{学習率(AdamW\cite{loshchilov2018decoupled})}:{5e$-$5,3e$-$5,2e$-$5}\item\textbf{エポック数}:{2,3,4}\end{itemize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{結果}各話者内部状態の推定結果を表\ref{tab:internal_state}に示す．$学\!\mathit{Full}$\,-$テ\!\mathit{Full}$は学習・テストともに\textit{Full}を用いる推定器で，いずれの内部状態においてもAccは30\%，BroadAccは70〜80\%程度であった．表~\ref{tab:statistics_internal_state}より知識，興味，対話意欲のマジョリティベースラインがそれぞれ15.6\%，22.2\%，20.4\%であることを考慮すると，各内部状態を妥当に推定できているといえる．次に\textit{Full}データで学習し，\textit{Filtered}のテストデータでテストを行った$学\!\mathit{Full}$\,-$テ\!\mathit{Filtered}$では$学\!\mathit{Full}$\,-$テ\!\mathit{Full}$と比較してAcc，BroadAccともに正解率が向上している．これは\textit{Filtered}がアノテーションの一致率が高い，つまり人間にとっても各話者内部状態の有無を認知しやすいデータとなっていて，推定がしやすくなったためであると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table8\begin{table}[b]\input{05table08.tex}\caption{ユーザ内部状態の推定結果．セル内の数字はパーセント表記．}\label{tab:internal_state}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%さらに，\textit{Filtered}データで学習を行った$学\!\mathit{Filtered}$\,-$テ\!\mathit{Full}$と$学\!\mathit{Filtered}$\,-$テ\!\mathit{Filtered}$はそれぞれ$学\!\mathit{Full}$\,-$テ\!\mathit{Full}$，$学\!\mathit{Full}$\,-$テ\!\mathit{Filtered}$と比べて，興味についてはAcc，BroadAccが多少下がっているものの，知識・対話意欲については向上している．フィルタリングにより学習データ量が減少しているにも関わらず，複数の内部状態で精度が向上していることから，データのフィルタリングは内部状態推定の精度向上に効果があることが分かる．興味については，元々知識や対話意欲と比べて推定精度が高いためフィルタリングによる効果が小さかったと推察される．また，表\ref{tab:annotator_agreement}より，フィルタリング後の興味のアノテータ一致率が知識や対話意欲と比べて低かったことも精度が上がらなかった原因であると思われる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{分析}図~\ref{fig:diff_predict}に推定スコアと正解スコアの絶対誤差をシナリオのターン別にまとめる．例えば「タイトル提示」行の場合，システムがタイトルを提示した直後のユーザ発話を推定対象の発話としている．また，初期質問の有無により推薦映画の決定方法が異なるため，以下のように分割して考察する．\begin{description}\setlength{\labelsep}{0pt}\item[初期質問あり（成功）]：初期質問を行って，ユーザの好みに応じて推薦映画を決めた場合\item[初期質問あり（失敗）]：初期質問を行ったが，システムがランダムに推薦映画を決めた場合（ユーザの好みに合致する推薦映画が映画データベースになかった場合など）\item[初期質問なし]：初期質問を行わず，システムがランダムに推薦映画を決めた場合\end{description}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.4\begin{figure}[b]\begin{center}\includegraphics{28-1ia5f4.pdf}\end{center}\hangcaption{話者内部状態推定スコアと正解スコアの絶対誤差の平均値．角括弧内の数字はサンプル数を指す．また，各セル内の丸括弧内の数字はそれぞれサンプルの正解スコアの平均，不偏分散を示す．絶対誤差の値が大きいほど色が濃くなるようにカラースケールで色付けしている．}\label{fig:diff_predict}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%図~\ref{fig:diff_predict}より「初期質問あり（成功）」の場合は知識，興味，対話意欲のいずれについても誤差が対話全体にわたって小さい．興味，対話意欲に関しては正解スコアの平均が2ポイント前後であり，「初期質問あり（成功）」は高い興味と対話意欲の獲得につながると考えられる．また知識についても「初期質問あり（失敗）」や「初期質問なし」と比較すると正解スコアの平均が1ポイント近く高くなっている．これは好きな俳優や監督などについての映画はある程度ユーザにも知識があるためと考えられる．このように平均的に各内部状態のスコアが高くなっているため，推定器も推測がしやすくなり，誤差が小さくなっていると推察できる．一方，知識の「初期質問あり（失敗）」と「初期質問なし」は対話が進むにつれて推定誤差が大きくなっている．例\ref{ex:es_error1}に実際の対話例を示す．最後のユーザ発話$U4$に対して正解スコアは$-2$，推定スコアは2.22であった．この$U4$のように陽に話者内部状態が読み取れない発話の場合は文脈の解釈が重要になる．その文脈からは，$U2$よりこのユーザは推薦された映画は見ていないことが分かり，$U4$の直前のシステム発話$S4$では映画の中のシーンの説明をしていることが分かる．つまり見ていない映画のシーンに関しては知識がないだろうと推定することができるが，この推定には知識の高度な構造化が必要である．この構造化に向けた知識の推定対象の詳細化は今後の研究課題である．\ex.\label{ex:es_error1}\a.[$S1$:]俳優の染谷将太と女優の菊地凛子夫妻に第２子が誕生したことが１１日までにわかったと話題です\b.[$U1$:]おめでたいです\b.[$S2$:]染谷将太さん、「バクマン。」という映画に出演されていましたね\b.[$U2$:]バクマン。は観ていませんが確か漫画原作ですよね。\b.[$S3$:]話しも素直に友情、青春、ライバル関係、生い立ち等も分かりやすく展開され好感が持てますよ\b.[$U3$:]映画は数年前でしたか。ＤＶＤで観てみたいと思います。\b.[$S4$:]ちょっと分からないんですが、無駄なシーンが一切なく、サクサク進んでテンポがいいので、気持ちいいです\b.[$U4$:]期待できます。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{対話および発話単位での評価}\label{subsec:evaluation}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{話者内部状態推定の導入}話者内部状態の推定器を対話システムに導入する．知識・興味・対話意欲のそれぞれに対して有無を判定し，その結果に基づいて\ref{subsec:response_change}節で述べたようにシステムの応答を変更する．総合的な推定精度を重視して今後の実験では\textit{Filtered}データで学習した推定器を用いる．知識・興味・対話意欲の有無の判定は閾値を設け，正の閾値を上回ったらその内部状態について「あり」，負の閾値を下回ったらその内部状態について「なし」と判定する．本研究では，知識・興味については正の閾値を$1.5$，負の閾値を$-1.5$に，対話意欲については正の閾値を$1.0$，負の閾値を$-1.0$に設定した．また，適用すべき応答変更のルールが複数存在する場合は，推定スコアの絶対値が大きい内部状態での応答変更を優先して行う．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{対話収集と対話単位での評価}話者内部状態推定による応答変更機能を組み込んだ対話システムで\ref{subsec:train_dialog_collection}節と同様にクラウドソーシングで299対話を収集した．また，比較対象として応答変更を行わないシステムでも297対話を収集した．この際，この2つのシステムに共通するモジュールを元の対話コーパス構築時から一部変更した．詳細は付録\ref{sec:function_change}に記す．対話終了後に推薦された映画の視聴経験があるかどうかについてワーカーにアンケートを行ったところ，全体の約67\%のワーカーは推薦された映画の視聴経験がなかった．また，映画推薦対話はタスク指向と非タスク指向の両方の性質を合わせ持っていると考えられる．本研究ではシステムの発話の自然さについて特に着目しているが，映画推薦としてのタスクの達成度を下げることなくシステム発話の自然さが向上することが望ましい．そこで，以下に示す3つの5段階リッカート尺度のアンケート（5が最高評価，1が最低評価）を実施した．\begin{description}\setlength{\itemsep}{-5mm}\item{(1)}\textbf{説得度}:推薦された映画を見たくなった\\\item{(2)}\textbf{自然さ}:システムの返答は自然だった\\\item{(3)}\textbf{満足度}:システムからの返答に満足した\\\end{description}アンケート結果を表\ref{tab:questionnaire}に示す．説得度については応答変更ありと応答変更なしの間で大きな差は見られなかった．一方，自然さについては応答変更ありの方が応答変更なしのスコアを0.26ポイント，満足度については0.19ポイント上回った．スコアの差が大きい自然さと満足度について有意水準を5\%とするウィルコクソンの順位和検定を行ったところ，それぞれp値は0.017と0.123となり，自然さについて有意にスコアが向上していることが分かった．この結果から，ユーザの内部状態を推定し，その結果に応じて応答を変更することで，映画推薦のタスクに関して一定の達成度を保ちつつ，システムの発話の自然さを向上させられたことが分かる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table9\begin{table}[t]\input{05table09.tex}\caption{評価実験のアンケート結果．スコアは各ワーカーのスコアの平均値．}\label{tab:questionnaire}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{発話単位での評価}本システムで構築した対話システムは基本的にシナリオベースであるため，応答変更が起きている分岐点以外は応答変更ありと応答変更なしのシステムは全く同じ応答をする．そこで収集した評価用対話データからそれぞれの話者内部状態タイプの分岐点において，変更した応答と変更しなかった応答（＝シナリオ通りの応答）をペアで抜き出し，ペアワイズで比較を行う．具体的には，応答変更ありの対話から抜き出す場合は使用したシナリオから応答を変更しなかった場合の発話を取り出して元の変更した応答と比較する．応答変更なしの対話から抜き出す場合は内部状態推定を行い，応答の変更が行われる分岐点を見つけ，変更した応答と変更しなかった元の応答を比較する．各話者内部状態タイプに対して応答ペアの抽出を行った結果を表\ref{tab:statistics_branch_points}に示す．応答変更あり対話と応答変更なし対話のそれぞれから最大15ペアずつ，合計最大30ペアずつサンプルし，評価に用いる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table10\begin{table}[t]\input{05table10.tex}\caption{各話者内部状態タイプの分岐点の統計情報}\label{tab:statistics_branch_points}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.5\begin{figure}[t]\begin{center}\includegraphics{28-1ia5f5.pdf}\end{center}\caption{クラウドソーシングによる発話評価の回答画面}\label{fig:pairwise}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%発話単位での評価についてもクラウドソーシングで実施する．クラウドソーシングの回答画面を図\ref{fig:pairwise}に示す．ワーカーは対話履歴と，変更した応答，変更しなかった応答を見てどちらが自然か選択する．ワーカーにはどちらが変更した応答かどうかは伏せてあり，「どちらの返事も同程度に自然で選べない」「どちらの返事も同程度に不自然で選べない」の2つの選択肢も追加した．1応答ペアごとに10人のワーカーで評価を行う．発話単位での評価実験の結果を表\ref{tab:naturalness_branch_points}に示す．全ての話者内部状態タイプで応答変更ありの方が自然さが上回っていることがわかる．この結果からも，提案した話者内部状態を推定し，その結果に応じて応答を変更することでより自然な返答ができる対話システムを構築できたといえる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table11\begin{table}[t]\input{05table11.tex}\hangcaption{各話者内部状態タイプの自然さ．表内の数字はワーカーの評価の合計を，話者内部状態タイプの括弧内の数字はサンプル数を指す．}\label{tab:naturalness_branch_points}\vspace{-0.75\Cvs}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{エラー分析}話者内部状態タイプ3，4については応答変更ありの方がスコアは高かったものの，その効果は他の話者内部状態タイプと比較すると低い．そこで，それぞれに対してその原因を分析する．\noindent\textbf{3.映画の知識がある}\quadこの話者内部状態タイプでは語尾を情報提供の口調の「よ」から同意口調の「よね」に変更する．「どちらも自然」のスコアがある程度高かったことを判断材料とすると，語尾の文字を1字変えただけでは大きな印象の差を与えられなかったと推察される．また，「どちらも不自然」のスコアも「応答変更あり」，「応答変更なし」と同程度に高かった．これはレビューから抽出してきた推薦ポイント文が文脈と合わなかったためと考えられる．例\ref{ex:rc_error3}にワーカー10名中6名が「どちらも不自然」と判定した例を示す．この例では応答を変更する直前にユーザが「もっと前の映画が好きです。」と言っているのにも関わらず，その発話を無視しているためシステムの発話が不自然に感じられたと考えられる．今後，文脈を用いて検索ベースで推薦ポイントを選択するなどの改善手法が考えられる．\vspace{-0.25\Cvs}\ex.\label{ex:rc_error3}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]好きな映画監督は誰ですか？\b.[$U$:]スピルバーグ\b.[$S$:]ではスティーヴン・スピルバーグさんが監督の映画を紹介しますね\b.[$U$:]お願いします。\b.[$S$:]「ブリッジ・オブ・スパイ」という映画です\b.[$U$:]知りませんが、どんな内容ですか。\b.[$S$:]2015年に公開された作品です。スティーヴンスピルバーグ監督にコーエン兄弟の脚本、主演がトムハンクスと期待せずにはいられない組み合わせに、見事に期待に応える良作だと評判ですよ\b.[$U$:]もっと前の映画が好きです。\b.[$S_\mathit{before}$:]ベルリンの壁、ベルリンにかかる橋、チェックポイント、東ベルリン街中などなど当時の感じを丁寧に表現撮影しており見ごたえがありますよ\b.[$S_\mathit{after}$:]ベルリンの壁、ベルリンにかかる橋、チェックポイント、東ベルリン街中などなど当時の感じを丁寧に表現撮影しており見ごたえがあります\underline{よね}\noindent\textbf{4.映画の深い知識がある}\quad映画の深い知識があると判断した場合，システムが推薦している映画をユーザが既に見たことがあると考え，視聴を促す発話を「是非もう一度見てみて下さい」といったように視聴経験があることを想定した発話に変更する．この場合では「どちらも不自然」のスコアはさほど高くないものの，「応答変更なし」のスコアが高くなっている．この原因としてはユーザの視聴経験の推定誤りが考えられる．例\ref{ex:rc_error4}ではユーザは「アウトレイジ」シリーズは視聴経験があるが，推薦映画である「アウトレイジ最終章」については視聴経験はない．システムは知識ありと判定してしまったが，このように視聴経験がないユーザに「是非もう一度見てみて下さい」と発話するのはかなり不自然に感じられる．\ex.\label{ex:rc_error4}\setlength{\SubExleftmargin}{3.5em}\a.[$S$:]お笑いタレントのビートたけしが30日放送のＴＢＳ「新・情報7ＤＡＹＳニュースキャスター」にリモート生出演と話題となっています\b.[$U$:]そうなんですか。知らなかったです\b.[$S$:]はい、ビートたけしさん、「アウトレイジ最終章」という映画に出演されています\b.[$U$:]アウトレイジは見たことがあります。でも最終章はみてないかも\b.[$S$:]韓国フィクサーの立ち位置が今一つで、タケシも今までより控えめですが、西田敏行のズル賢い役者ぶりが目立ちますよね\b.[$U$:]韓国人がでてくるんですね\b.[$S$:]過去の出演者達がみんな歳をとって迫力不足だが、小心者のピエール瀧が今回は盛り上げてくれますよね\b.[$U$:]ピエール瀧がアウトレイジというのはなんだか真実味があります\b.[$S_\mathit{before}$:]是非見てみてください\b.[$S_\mathit{after}$:]是非\underline{もう一度}見てみてください%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table12\begin{table}[b]\input{05table12.tex}\hangcaption{視聴経験の有無別の自然さ．表内の数字はアノテートの素点を，視聴経験の括弧内の数字はサンプル数を指す．}\label{tab:naturalness_branch_point3}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%発話評価に用いた30サンプルをそれぞれのユーザの視聴経験のアンケート結果を照らし合わせると，30サンプル中23サンプルが実際に「視聴経験あり」で正しく視聴経験を推定できていた一方で，残りの7サンプルが「視聴経験なし」で推定が誤っていた．表\ref{tab:naturalness_branch_point3}に，ユーザの実際の視聴経験の有無で自然さのスコアを比較した結果を示す．「視聴経験なし」は「応答変更なし」の方がスコアが高くなっており，発話の自然さに対するユーザの視聴経験の推定誤りの影響が大きいことが分かる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}
本研究では相手の発話の適切な意図解釈に向けて対話中の話者内部状態のモデル化に取り組んだ．収集した対話データの分析結果から知識，興味，対話意欲の3つの軸で話者内部状態をモデル化した．また，モデル化した3つの内部状態をクラウドソーシングによって対話データにアノテートすることで対話コーパスを構築した．構築した対話コーパスで学習した話者内部状態推定器は，推定対象の話者の発話と対話履歴から提案した内部状態を高い精度で推定できることを示した．さらに，提案した話者内部状態に応じて応答を変更する対話システムの構築を行った．知識・興味・対話意欲それぞれの有無に応じて応答を適切に変更するルールを設計した．学習した話者内部状態推定器の推定結果を利用し，設計したルールに基づいて応答を適切に変更することで，より自然な応答を行えるシステムが構築できたことを対話単位での評価と発話単位での評価の両方で明らかにした．ニューラルネットワーク技術が発展してきた近年，ニューラルモデルにはモデルの振る舞いや予測根拠を明らかにする「説明可能性」が求められつつある．今後，我々も対話システムの全体をニューラル化することを検討しているが，その際にも本研究で行ったユーザ内部状態のモデル化はシステムの振る舞いの根拠として意味を持ち，「説明可能性」に向けた研究の足がかりになると考えている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgmentこの研究は国立情報学研究所(NII)CRISとLINE株式会社とが推進するNIICRIS共同研究の助成を受けて行った．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.6}\bibliography{05refs}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\appendix
\section{アノテータ毎のアノテーションの信頼性}
\label{sec:worker_reliability}本節では話者内部状態アノテーション（\ref{subsec:annotation}節）におけるアノテータ毎のアノテーションの信頼性について述べる．アノテーションはクラウドソーシングによって行い，458名のアノテータが参加した．アノテータ毎のアノテーションの信頼性は他のアノテータとのアノテーションの一致率\textit{m}で測る．\textit{m}は以下の計算式で計算される．\[m=\frac{他のアノテータとアノテーションが一致した数}{当該アノテータによるアノテーション数}\]全データ(=\textit{Full})での平均一致率$\overline{m}$は0.51であった．一致率がチャンスレート($m=0.33$)を下回るアノテータをアノテーションの信頼性が低いアノテータとみなすとすると，今回の話者内部状態のアノテーションに参加した458名中，該当するアノテータは41名であった．割合に直すと全体の約9\%であり，アノテーションの信頼性が低いアノテータはごく少数であったと言える．実際，この41名を除外した場合のKrippendorff's$\alpha$\cite{krippendorff04}によって計算されるアノテータ間の一致率は，知識が0.45，興味が0.45，対話意欲が0.39と全データにおけるアノテータ間の一致率（知識:0.41，興味:0.40，対話意欲:0.35）（表\ref{tab:annotator_agreement}参照）と大きな差はなかった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{映画推薦対話システムの改良}
\label{sec:function_change}評価時の対話収集時に映画推薦対話システムの一部のモジュールを改良した．この節で述べる内容については評価時（\ref{subsec:evaluation}節）にのみ適用し，コーパス構築時には適用していない．\noindent\textbf{映画データベースの拡張}\\\quadまず，最新の映画についても推薦できるよう映画データベースに格納する映画情報を213作品から331作品へと増やした．\noindent\textbf{不適切な推薦ポイント文のフィルタリング}\\\quad次に，推薦ポイント文抽出の改善を行った．まず，これまでのword2vecでの手法によって抽出された推薦ポイント文について分析した．その結果「面白かったのでまた来週観に行きます」といったような人間の発話としては適切だが，対話システムの立場として不適切な文があることが分かった．そこで以下の条件を満たすレビュー文を推薦ポイント文の候補から除外した．\begin{description}\setlength{\leftskip}{1em}\item[条件1]：レビュー文中のいずれかの述語の主格が著者（＝レビューを書いたユーザ）である\item[条件2]：条件1に該当する述語が意思性を持つ\item[条件3]：条件1に該当する述語が対話システムの立場として使用するのが不適切である\end{description}条件1ではレビュー文を既存の解析器を用いて述語の主格を特定することで判定する．解析器には\citeA{植田2020a}の\textit{Base+coref+noun+bridge}モデルを京都大学ウェブ文書リードコーパス(KWDLC)\cite{Hangyo2012a}と京都大学テキストコーパス\cite{Kawahara2002b}で学習したモデルを用いた．KWDLCのテストデータに対して，異なる初期値で実験を3回行った外界ゼロ照応解析の平均F1スコアは0.745であった．条件2については述語の品詞，意味，接尾辞（モダリティ・態），項にもとづき識別する\footnote{\url{https://github.com/ku-nlp/ishi}}．条件3は独自に選んだ全53単語からなる不適切述語リストに含まれているものとする．不適切述語リストは条件1，2に該当する述語全2,901種類の中から出現回数50回以上のもの103個を取り出し，対話システムの立場として使用するのが不適切であるかどうかという指標で著者らで選定した．\noindent\textbf{レビュー文の極性判定手法の変更}\\\quadレビュー文が映画を褒めているかどうかの極性判定の手法についても変更を行った．\citeA{saito-etal-2019-minimally}はイベント\cite{齋藤2018a}単位で極性を判定する手法を提案している．本研究ではこの極性判定器を利用し，レビュー文をイベント単位に分割し，文中の最も後ろのイベントの極性をそのレビュー文全体の極性とみなして極性判定を行う．極性のスコアは1から-1までの範囲で出力される（1が最もポジティブ，$-1$が最もネガティブ）．この極性スコアと各文の文字数の積をスコアとし，推薦ポイント文の候補の中からスコア上位50文を抽出する．これを各映画について行い，各シナリオでは50文の中からランダムに2文を用いる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{児玉貴志}{%2019年京都大学工学部電気電子工学科卒業．2020年京都大学大学院情報学研究科博士前期課程修了．同年より同大学院情報学研究科博士後期課程に進学，現在に至る．修士（情報学）．自然言語処理の研究に従事．言語処理学会会員．}\bioauthor{田中リベカ}{%2013年お茶の水女子大学理学部情報科学科卒業．2015年同大学院博士前期課程修了．2018年同博士後期課程単位修得退学．同年より京都大学大学院情報学研究科特定研究員．}\bioauthor{黒橋禎夫}{%1994年京都大学大学院工学研究科電気工学第二専攻博士課程修了．博士（工学）．2006年4月より京都大学大学院情報学研究科教授．自然言語処理，知識情報処理の研究に従事．言語処理学会10周年記念論文賞，同20周年記念論文賞，第8回船井情報科学振興賞，2009IBMFacultyAward等を受賞．2014年より日本学術会議連携会員．}\end{biography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\biodate\end{document}