\section{はじめに}
一貫した個性を持つチャットボットの研究が注目されている\cite{li16a,zhang18,qian18,zhou20}.このようなチャットボットを構築するためは，特定の個性を持った人物の対話データを多量に用意し，生成ベースのモデルを学習する手法が一般的に考えられる．しかしながら，対象人物の対話データを多量に集めることは容易ではない．この問題に対して，我々は先行研究において，多くの作業者が対象人物（データ収集の対象とする特定の人物）になりきって質問に回答する枠組み（{\bfなりきり質問応答}）を提案している\cite{higashinaka13}．さらに，提案手法を用いて，有名な人物（例えば，YouTuberやアニメの登場人物）への質問，および，その回答のペア（QAペア）をファンから大規模に収集し，対象人物のように振る舞うチャットボットである{\bfなりきりAI}を構築する手法を提案してきた\cite{higashinaka18,kodama20,mizukami23}．一方で，近年，自然言語処理において言語モデルが高度化している\cite{vaswani17,devlin19,raffel19,brown20}.特にTransformer\cite{vaswani17}に基づく大規模言語モデルであるMeena\cite{adiwardana20}，BlenderBot\cite{roller20}，ChatGPT\cite{ouyang22}は，従来のものと比較してより自然な対話が可能である．なりきりAIの研究においても，対象人物に対して収集したQAペアを大規模言語モデルと組み合わせることで，自然な対話のみならず，その人物らしい対話が実現できる可能性が考えられる．本研究では，単一の人物に関するなりきり質問応答のデータを大規模言語モデルと組み合わせることでなりきりAIを構築した．さらに，インターネットを通じて公開実験を行うことで，対象人物を再現するチャットボットにおける現状の到達点と今後解決すべき課題を調査した．その結果，なりきりAIの構築を通じて，収集された45KのQAペアを用いて大規模言語モデルをfine-tuningすることで，チャットボットが高い自然さとキャラクタらしさを持つことがわかった．さらに，公開実験で収集された対話を用いて，対象人物を再現するチャットボットのエラー（以降，{\bf\PSE}と呼ぶ）を分析した．その結果，{\PSE}は属性に関するエラーと関係に関するエラーの二種類に分けることができ，また，自己に関するエラーと他者に関するエラーという二つのレベルに分けられることがわかった．本研究の貢献は下記の二点である．\begin{enumerate}\itemなりきり質問応答を通じて収集した対象人物に関する多量のQAペアを用いて，大規模言語モデルをfine-tuningすることで，高い自然さおよびキャラクタらしさを持ったチャットボットが構築可能なことを示した．\item対象人物を再現したチャットボットの公開実験を行うことで，多数のユーザとの対話データを収集し\mark{た．公開対象のチャットボットとして，なりきり質問応答，および，なりきり質問応答のデータを拡張した対話データを用いて学習されたモデルを利用した．公開実験を通じて収集された対話データにおいて，}不自然なシステム発話に対するアノテーションとエラー分析を行うことで，対象人物を再現するチャットボットにおけるエラー類型を明らかにした．\end{enumerate}なお，本研究では大規模なデータ収集や公開実験を行っており，高いコストがかかることから，単一の人物（後述の「アマデウス紅莉栖」）を対象に評価や調査を行った．以降，本稿では，まず\sec{rel}で関連研究について概観する．\sec{data}でなりきり質問応答を通じたデータ収集について述べ，\sec{model}で発話生成モデルの構築について説明する．次に，\sec{eval}で評価実験，\sec{open}で公開実験について述べる．その後，\sec{annotation}で{\PSE}の分析について説明する．最後に\sec{summary}で本研究のまとめを述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}
\label{sec:rel}本研究は対象人物を再現するチャットボットを対象としており，一貫した個性で発話を生成する研究と関連が深い．また，対象人物の対話データを扱っており，対話システムの個性に関するリソースを収集した研究とも関連がある．さらに，対象人物の再現は，発話やテキストの表現方法を変化させるスタイル変換の研究でも取り組まれている．また，本研究はチャットボットのエラーについて調査した研究とも関連がある．以降，各観点について関連研究を述べる\mark{．}一貫した個性で発話を生成する研究について，個性の一貫性を考慮した初期のモデルとして，話者ID\cite{li16a}や，テーブル上に表現した個性の情報\cite{qian18}を考慮するモデルが提案されている．その後，Persona-Chat\cite{zhang18}の登場に伴ない，個性が一貫した発話を生成するモデルがさまざま提案されている\cite{madotto19,song20,kim20,liu20}．近年は，大規模言語モデルを発話生成に導入して個性の一貫性を改善する手法も取り組まれている\cite{majumder20,zheng20,han22}．これらの研究と比較し，本研究は単一の人物の個性を再現するために，その人物の多量の対話データを利用しているという点が異なる．対話システムの個性に関するリソースを収集した研究について述べると，前述のPersona-Chat\cite{zhang18}は，個性を表す数文のテキストと，その個性を持った人物の対話を人手で作成した代表的な研究である．また，インターネットを通じて，多数の人物を対象に，個性を表す数文のテキスト，および，その個性に従う対話を収集した研究も存在する\cite{mazare18}．これらの研究と比較し，本研究は単一の人物に焦点を当て，大規模な対話データを収集している点が異なる．また，これらの特定の個性に紐付くリソースを集めた研究とは異なるが，対話において相手の個性を尋ねる代表的な質問を整理した研究も存在する\cite{sugiyama14}．スタイル変換の研究では，発話やテキストの表現方法（言葉の選び方や口調）を変化させることで，対象人物の発話の再現に取り組んだものが存在する．初期の研究では，コーパス中の発話から対象人物の発話の言語的なスタイルを抽出する手法\cite{miyazaki15}や，発話のスタイルを考慮した単語埋め込みを獲得する手法\cite{akama18}が提案されている．近年は，生成モデルを用いて所望のスタイルを持つテキストや発話を生成する研究が報告されており，発話の丁寧さ\cite{niu18}，感情表現\cite{zhou18,huang18}，性格\cite{shuster20}を考慮する手法が提案されている．チャットボットのエラー類型については，特定の個性を持たない一般的なチャットボットのエラーや，複数の文で記述されたペルソナを持つチャットボットのエラーを扱う研究が存在する．一般的なチャットボットのエラーを類型化した研究として，対話理論に基づくもの\cite{higashinaka15a}，データに基づくもの\cite{higashinaka15b}，それらを統合したもの\cite{higashinaka21b}が存在する．また，チャットボットの発話そのものではなく，ユーザが示す不満の反応に着目してエラーを類型化した研究も存在する\cite{see21}．ペルソナを持つチャットボットのエラーを扱った研究としては，Persona-Chatにおいて個性や文脈と矛盾した発話が生成されることに着目し，アノテーションを行った研究\cite{welleck19}や，対話においてシステムが各話者の個性を取り違える問題に着目し，発話の一貫性を改善する研究\cite{shuster22}が存在する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{なりきり質問応答を通じたデータ収集}
\label{sec:data}大規模言語モデルのfine-tuningを行い対象人物のチャットボットを構築するため，先行研究\cite{higashinaka13,higashinaka18}にならって，単一の人物を対象に{\bf\QACorpus}を作成した．また，QAデータのみで学習したモデルの限界を調べるために，作業者が人手でQAペアを対話形式に拡張した{\bf\DialCorpus}を作成した．以下，各コーパスの作成方法について述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{なりきりQAコーパスの構築}{\QACorpus}は，対象人物のファンが，その人物への質問を投稿したり，質問に対する回答\mark{（キャラクタによっては親密度などの付加情報を含む\cite{kodama20}）}を，あたかも自分がその人物になったかのように投稿したりすることで収集するなりきり質問応答の枠組みを通じて構築された\cite{higashinaka13,higashinaka18}．なりきり質問応答は，Webサイトを通じてファンから対象人物への質問と回答を収集する枠組みである．先行研究\cite{higashinaka18}において，効率的にQAペアを収集できることが確認されており，例えば，2K件のQAペアを収集するまでの時間は，経営者兼YouTuberである「マックスむらい」は0.92日，アニメの登場人物である「新垣あやせ」は1.12日と報告されている．本研究において対象とする人物は，ビデオゲーム「STEINS;GATE0」\footnote{{\copyright}MAGES./ChiyoSt.Inc.,{\copyright}MAGES./NITROPLUS}に登場する人物である「アマデウス紅莉栖」（以降，単に{\bf紅莉栖}と呼ぶ）である．なりきりQAの収集は特設のWebサイト\footnote{\url{https://steinsgate-amadeuskurisu.narikiri-qa.jp/landing/}}を通じて行われた．\mark{収集される対象人物の発話は対話相手との関係性によって口調や内容が変化する可能性が考えられる．コーパス構築時には，\citeA{kodama20}と同様に，対象人物の応答に加えて親密度（他人，知人，友人，親友，家族/恋人の5種類）のラベルを収集した．このラベルを活用することで，ユーザとの関係や親しさによって口調を変化させることも可能と考えられる．しかしながら，対話を通じてユーザとの関係や親しさを推定して対話に用いる方法が自明ではないことから，本研究の実験では収集した親密度のデータは利用せず，全てのデータを統合して利用した．}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table1\begin{table}[b]\input{03table01.tex}%\hangcaption{本研究で対象とする人物（ビデオゲームの登場人物である紅莉栖）に対して収集されたなりきりQAコーパスの統計量．なお，トークン数は，\sec{model}で述べる日本語版のBlenderBot\protect\cite{sugiyama21}において利用されるSentencePiece\protect\cite{kudo18}のモデルを用いて計算したものである．}\label{tab:stats-qa}\vspace{-0.5\Cvs}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\tab{stats-qa}に，{\chris}に関して収集されたQAペアの統計情報を示す．最終的に45,297ペアのQAを収集することができ，単一の人物のみを対象としたデータとして最も多い\cite{higashinaka18,kodama20}．以下に収集されたQAペアの例を示す．\begin{description}\setlength{\leftskip}{5mm}\item[{\ttQ}：]「名前を教えて。」\item[{\ttA}$_1$：]「私の名前は紅莉栖です。お会いできて嬉しいわ。」\item[{\ttA}$_2$：]「名前は紅莉栖よ。何か用かしら？」\end{description}QとAは，紅莉栖への質問と紅莉栖の回答に対応している．同じ質問（上記のQ）に対して，ユーザーは異なる回答（上記のA$_1$とA$_2$）を投稿することができるため，収集された各質問には複数の回答（平均1.8件）が存在している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{なりきり対話コーパスの構築}なりきり質問応答は，対象人物に対するQAペアを多量に収集する効率的な方法であるが，対象人物からの発話（例えば，対象人物からユーザに対する質問）が含まれていなかったり，一問一答を越えた文脈を含む対話のデータが含まれていなかったりする．そこで，{\QACorpus}の限界を調べるために，なりきりQAコーパスに基づいて対象人物とユーザ間の対話データを{\DialCorpus}として収集し，QAデータと合わせてfine-tuningに利用することにした．{\DialCorpus}において様々な対話を収集するために，収集対象として，{\QACorpus}のようにユーザから対話が始まるものと，対象人物から対話が始まるものの二種類を用意した．ユーザから始まる対話では，なりきりQAコーパスに含まれる各QAペアに発話を4件人手で追加することで対話形式に拡張するようにした．対象人物から始まる対話では，その人物の最初の発話を作成した後，作成した発話に自然に続くと考えられる4件の発話を作成するようにした．最初の発話を作成するための刺激として，人対人のテキストチャットコーパス\cite{higashinaka14}から発話をランダムに抽出し作業者に与えた．このとき，各対話行為\cite{meguro10}の分布が一様になるようにした．作業者には，対話行為を変えることなく刺激となる発話を書き換えることで対象人物の最初の発話を作成するよう指示した．なお，刺激となる発話の書き換えが難しい場合（例えば，発話の内容が対象人物の設定と矛盾する場合）は，その発話は使用せずスキップすることとした．下記に，刺激となる発話と書き換え後の発話の例を示す．\begin{itemize}\item刺激となる発話：「休みの日は何をされてますか？」（対話行為：質問）\\書き換え後の発話：「休みの日は何をしているのかしら？」\item刺激となる発話：「北海道といえばラーメンですよね。」（対話行為：情報提供）\\書き換え後の発話：「北海道といえばラーメンよね。」\end{itemize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{なりきり対話}{\DialCorpus}の構築のために，クラウドソーシングプラットフォーム(Lancers\footnote{\url{https://www.lancers.jp/}})を通じて作業者を募集した．なりきりQAコーパスの作成とは異なり，作成された発話に対して報酬が支払われた．募集した作業者は，対象人物について十分な知識を持つものに限定し，具体的には，対象人物が登場するゲームや映画を少なくとも1回以上見たことがある，または，プレイしたことがある者とした．募集の結果，作業者の総数は9名となった．9名の作業者によって作成される対話の内容がなるべく多様になるよう，各作業員には，異なるなりきりQAペア，および，刺激となる発話を割り振るようにした．\mark{なお，事前スクリーニングとして，あらかじめ用意したアンケートを通じて，対象人物に関する知識レベルの主観的な評価（自己申告形式のもの），対象人物が登場するゲームや映画等の実施，視聴回数，それらの具体的な作品名を回答させ，募集条件を満たす作業者を選定した．事後フィルタリングについては，作業品質に問題がある作業者に対して行う予定であったが，そのような作業者は発見されなかったため実施しなかった．}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table2\begin{table}[b]\input{03table02.tex}%\caption{なりきりQAコーパスを拡張して作成したなりきり対話コーパスの統計量}\label{tab:stats-dial}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\tab{stats-dial}に，{\chris}のなりきりQAコーパスを人手で拡張したなりきり対話コーパスの統計情報を示す．収集された対話は4,500対話であり，24,750発話から構成されている．\tab{stats-dial}における「対象人物の発話の平均トークン数」と\tab{stats-qa}における「応答に含まれる平均のトークン数」とを比較すると，前者が後者よりも少ないことが確認できる．これは，{\DialCorpus}には対話特有の短い応答（例えば，「そうね。」）や，対話の継続を促す簡単な質問（例えば，「本当なの？」）が含まれているためである．以下に，なりきりQAペアから拡張されたなりきり対話の例を示す．\begin{description}\setlength{\leftskip}{5mm}\item[{\ttU}$_1$：](Q)「名前を教えて。」\item[{\ttS}$_1$：](A$_1$)「私の名前は紅莉栖です。お会いできて嬉しいわ。」\item[{\ttU}$_2$：]「紅莉栖ってかっこいい名前だよね。」\item[{\ttS}$_2$：]「本当？光栄だわ。」\item[{\ttU}$_3$：]「本当だよ。みんなに言って回りたいくらい。」\item[{\ttS}$_3$：]「それはやめて！恥ずかしいわ。」\end{description}UとSはそれぞれユーザの発話と対象人物の発話を表す．U$_1$とS$_1$は収集されたなりきりQAペアの一つであり，U$_2$からS$_3$までの発話はそのペアを拡張して人手で追加した発話である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{発話生成モデルの構築}
\label{sec:model}本節では，対象人物について収集したなりきりQAコーパス，および，なりきり対話コーパスを用いて大規模言語モデルをfine-tuningし，その人物らしい応答生成モデルを構築する手法について述べる．大規模言語モデルとして，杉山らが構築した日本語版のBlenderBotを利用した\cite{sugiyama21}．以降，日本語版のBlenderBotの概要，および，{\QACorpus}と{\DialCorpus}を用いたfine-tuningの方法について述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{日本語版BlenderBotの概要}日本語版BlenderBotは，事前学習とfine-tuningの二段階で学習されている．事前学習用のデータとしては，日本語におけるTwitter\footnote{\url{https://twitter.com}}のリプライが利用されている．具体的には，2016年1月から2018年3月までのツイートから取得した2.1Bペアのツイート(512GB)が利用されており，入力文脈には最大で4発話が含まれる．fine-tuning用の学習データとしては，後述する個性，知識，共感のスキルを学習する対話と，それらを統合したスキルを学習する対話の2種類が利用されている．個性については，Persona-Chat\cite{zhang18}のプロフィール文を日本語に翻訳し対話を人手で作成したもの，知識に関しては，Wizard-of-Wikipedia\cite{dinan19}を翻訳したもの，共感に関しては，EmpatheticDialogue\cite{rashkin18}を翻訳したものが利用されている．また，これら三つを統合したスキルを学習するための対話として，傾聴対話コーパス\cite{meguro10}，雑談対話コーパス\cite{higashinaka14}，趣味雑談コーパス\cite{sugiyama21}が利用されている．モデルはパラメタ数1.6B（エンコーダ2層，デコーダ24層，各埋め込みベクトル1,920次元）のTransformerベースのエンコーダ・デコーダモデルである．デコード手法には，dull-responseを防ぐため，sample-and-rankが利用されている\cite{adiwardana20}．エンコーダへの入力は，以下のテンプレートに従って作成される．\vspace{0.5\Cvs}\begin{FVerbatim}DialogueName:[SEP]SpeakerID[SEP][SPK1]Utterance1[SEP][SPK2]Utterance2[SEP][SPK1]Utterance3[SEP][SPK2]Utterance4[SEP]TurnNumber\end{FVerbatim}\vspace{0.5\Cvs}\noindentDialogueName，SpeakerID，Utterance1～Utterance4，TurnNumberはそれぞれ，コーパスの種類，ユニークな話者ID，入力文脈，対話の開始からの発話数に対応する．具体的な例は\ssec{finetuning}で述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{{\QACorpus}と{\DialCorpus}を用いたfine-tuning}\label{ssec:finetuning}杉山らが構築した日本語版BlenderBotのモデルに対して，収集した{\QACorpus}と{\DialCorpus}を用いてfine-tuningを行うことで，対象人物の発話生成モデルを作成した．このとき，{\QACorpus}を訓練，開発，テストセットに18：1：1の割合で分割した．分割の際は，データセット間で質問が重複しないようにした．また，{\DialCorpus}も同様の方法で分割した．このとき，{\DialCorpus}に{\QACorpus}の質問が含まれる場合（ユーザから対話が始まる場合），{\QACorpus}の分割結果を参照し，その質問が含まれるデータセットと同じセットに対話を含めるようにした．これは，コーパス間でリークが起こらないようにするためである．学習の際は，開発セットにおける正解の応答のNegativeLog-Likelihood(NLL)lossが最小になるようにし，その結果1エポックで学習を停止させた．バッチサイズは64に設定した．{\QACorpus}と{\DialCorpus}の入力例を以下に示す．\vspace{0.75\Cvs}\begin{FVerbatim}なりきりQA:[SEP]idxx[SEP][SPK2]お名前を教えて頂けますか？[SEP]ターン00\end{FVerbatim}\vspace{0.5\Cvs}\begin{FVerbatim}なりきり対話:[SEP]idxx[SEP][SPK2]タイムマシンは作れるだろうか？[SEP][SPK1]結論から言うとタイムマシーンはバカバカしいシロモノだと思います。[SEP][SPK2]やっぱりそう思う？[SEP]ターン01\end{FVerbatim}\vspace{0.75\Cvs}\noindent``idxx''は対象人物用に設定したIDを表し，``[SPK2]''はユーザ，``[SPK1]''は対象人物を表す．{\QACorpus}の例における正解の出力は例えば「牧瀬紅莉栖です。どうぞよろしく。」となり，{\DialCorpus}の例では「でもね、決して実現できないものではないわ。」となる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{評価実験}
\label{sec:eval}収集した{\QACorpus}と{\DialCorpus}を用いて学習された発話生成モデルを用いて，対象人物らしい対話が可能かどうかを三種類の方法で評価した．一つ目は，{\QACorpus}における質問({\bf\TQIn})，または，{\DialCorpus}の文脈({\bf{\TCIn}})を入力したときの応答を評価する{\bf発話レベルの自動評価}である．二つ目は，同様の入力に対する{\bf発話レベルの人手評価}である．三つ目は，作業者が実際にチャットボットと対話しその対話全体を評価する{\bf対話レベルの人手評価}である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{評価用データとモデルの準備}発話レベルの評価では，{\QACorpus}から抽出した質問，または，{\DialCorpus}に含まれる対話から最後の対象人物の発話を除いて作成した文脈（最後の発話の直前の4発話）を入力として評価に利用した．具体的には，なりきりQAコーパスから抽出した質問50個，および，なりきり対話コーパスから作成した文脈50個を利用した．モデルとしては，ベースラインとなる検索ベースのモデル1種類，および，生成ベースのモデル3種類の計4種類を用意した．以下に各モデルの詳細を示す．\begin{description}\item[\bf(a){\MNsBert}:]ベースラインとなる検索ベースのモデルであり，東中らの先行研究で提案された手法（入力となる質問に対してなりきりQAコーパス内のQAペアをランキングし，最も良いQAペアの回答をシステム発話として出力する手法）に対応する\cite{higashinaka18}．東中らの手法では，QAペアの候補をBM25\cite{robertson95}で検索した後，対話研究で利用される様々な特徴量（例：単語ベクトルの類似度，言語モデルに質問を入力したときに回答が生成される確率）を用いてQAペアのランキングを行う．これに対し，{\MNsBert}では，BM25でQAペアの候補を検索した後，BERT(bidirectionalencoderrepresentationsfromTransformers)の教師あり分類モデルを利用してQAペアのランキングを行う\cite{devlin19}．これは，予備実験の結果，BERTを利用することで応答の自然性が向上することが確認されたためである．利用するBERTは質問と回答が入力として与えられたとき，回答が適切かどうかを二値分類するよう学習し，各回答に対して出力されるスコアに基づいて回答のランキングを行う．BERTの学習データはネガティブサンプリング（なりきりQAコーパス内の各質問に対して，別の質問に対する回答を5件ランダムに抽出することで負例を用意した）を用いて作成し，正例と負例の割合は1：5とした．BM25で検索するQAペアは訓練，開発，評価セットのうち，訓練または開発セットに含まれるものとし，検索結果の上位20件をBERTでランキングするようにした．\item[\bf(b){\MHobbyistQASmall}:]生成ベースのモデルの一つであり，日本語版のBelnderBotを一部の{\QACorpus}（QAペア10,000万件）でfine-tuningしたモデルである．このモデルは，後述の{\MHobbyistQA}（{\QACorpus}全体を利用したモデル）と比較することで，{\QACorpus}のサイズが性能に与える影響を調べるために用意した．\item[\bf(c){\MHobbyistQA}:]生成ベースのモデルの一つであり，{\QACorpus}全体を用いて日本語版のBelnderBotをfine-tuningしたモデルである．\item[\bf(d){\MHobbyistQADial}:]生成ベースのモデルの一つであり，{\QACorpus}全体，および，{\DialCorpus}全体を使用して日本語版のBlenderBotをfine-tuningしたモデルである．このモデルは，なりきりQAコーパスを使用した場合のモデル({\MHobbyistQA})と比較するために用意した．{\MHobbyistQA}同様，QAコーパスおよび対話コーパス全体のうち，訓練用セットと開発用セットのみを用いて学習を行った．\end{description}なお，評価の際に利用する入力のテンプレートのDialogueNameは，全てのモデルにおいて同じものを利用した．具体的には，なりきり質問応答の質問を入力する際は``なりきりQA''を利用し，対話文脈を入力する際は``なりきり対話''を利用するようにした．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{発話レベルの自動評価}\tab{auto-eval}に，質問({\TQIn})，および，\pagebreak文脈({\TCIn})を入力したときのシステム発話の自動評価結果を示す．BLEU，distinct\cite{li16b}，発話長（出力されたシステム発話の平均トークン長）の三種類の指標で評価した．BLEUおよびdistinctについては，異なるn-gramの値において，評価値の傾向が変わらなかったため，1-gramの結果のみを示している．BLEUの結果から，生成ベースのモデルが検索ベースのモデルよりも正解の応答に類似した応答を生成できることを示している．また，発話長は生成ベースと検索ベースで同程度の長さになっているものの，distinctは検索ベースの方が大きな値になっている．出力の多様性という観点では，現状の生成ベースのモデルでは限界があると考えられるものの，検索ベースのモデルと比較して生成ベースのモデルが正解の応答に類似した応答を生成できており，手法の有効性が確認できる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table3\begin{table}[t]\input{03table03.tex}%\hangcaption{質問({\TQIn})，および，文脈({\TCIn})を入力したときのシステム発話の自動評価結果．発話長は出力されたシステム発話の平均トークン長を表す．太字は各評価尺度において数値が最も良い（大きい）ものを示す．}\label{tab:auto-eval}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{発話レベルの人手評価}\label{ssec:man-eval-utt}発話レベルの人手評価では，評価指標として以下の三つの尺度を利用し，5段階のリッカート尺度（1点：強く非同意～5点：強く同意）で評価値を付与した．\begin{itemize}\item{\bf自然さ}:対象人物を問わず，システム発話が入力に対する応答として，一般的に自然であるかどうか\item{\bfキャラクタらしさ}:入力に対する応答として，システム発話が対象となる人物（本研究では{\chris}）にとって適切であるかどうか\item{\bf情報量}:システム発話が入力に関連して新しい情報を提供しているかどうか\end{itemize}\noindent評価にあたっては，Lancersを通じて，作業者を10名募集して行った．このとき，評価者は対象人物について十分な知識を有していることを条件とした．評価者は，各指標を独立して評価するという教示のもと，入力された質問または文脈ごとに，各モデルから生成されたシステム発話（ランダムにシャッフルされたもの）を評価した．\tab{man-eval-utt}に，質問を入力したとき({\TQIn})，および，文脈を入力したとき({\TCIn})のシステム発話の人手評価結果を示す．{\TQIn}では，生成ベースのモデルにおける自然さのスコアが検索ベースのモデルのスコアを有意に上回っていることがわかる．検定手法としては，Steel-Dwassの多重比較を利用した\cite{dwass60}($p<0.05$)．スコアは生成ベースのモデル間で類似しており，一問一答においては{\MHobbyistQASmall}で飽和していると考えられる．また，キャラクタらしさについては，検索ベースと生成ベースで同等のスコアとなっている．{\TCIn}では，生成ベースと検索ベースを比較すると，自然さのみならずキャラクタらしさにも一部に差が見られる．この結果は，検索ベースが入力された文脈の全体を考慮することができず，不自然な応答が出力されてしまうことから，キャラクタらしさのスコアも低く評価されたと考えられる．個別のモデルに着目すると，{\MHobbyistQA}は他と比較して良いスコアとなっており，この結果から，対象人物に関する大量のQAペアがあれば，その人物の対話データがなくとも，その人物らしいシステム発話を文脈を考慮して生成することが可能であると結論付けられる．以上の結果から，構築した{\QACorpus}で大規模言語モデルをfine-tuningすることの有効性が確認できた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table4\begin{table}[t]\input{03table04.tex}%\hangcaption{質問({\TQIn})，および，文脈({\TCIn})を入力したときのシステム発話の人手評価結果．太字は各評価尺度において数値が最も良い（大きい）ものを示す．数字右下のアルファベットは，そのスコアがアルファベットに対応するモデルのスコアよりも有意に良い($p<0.05$)ことを示す\protect\cite{dwass60}．}\label{tab:man-eval-utt}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{対話レベルの人手評価}\label{ssec:man-eval-dial}所与の入力に対して出力されたシステム発話の単体の評価に加えて，対話がどの程度実際の人物と同じように感じられるかを調査するために，各作業者がチャットボットと対話を行い，対話全体の評価を行う実験も実施した．結果の信頼性を高めるために，対話レベルの評価では発話レベルの評価に参加した10名の作業者だけでなく，Lancersを通じて新しく募集した異なる10名の作業者を加えて，計20名の作業者が評価を実施した．各作業者は，4つのモデル(\MNsBert，\MHobbyistQASmall，\MHobbyistQA，\MHobbyistQADial)と3回ずつ計12回（4つのモデル×3回＝12回）ランダムな順序で対話を行い，各対話の後にその対話全体を評価した．対話の長さは，対話システムライブコンペティション\cite{higashinaka21a}のルールと同じく，システム発話とユーザ発話のペアを1ターンとし，15ターンに設定した．各対話の終了時に，発話レベルの評価と同じ尺度（対話全体の自然さ，キャラクタらしさ，情報量）で5段階のリッカート尺度を用いて評価した．作業者がチャットボットと対話するためのツールとしてTelegram\footnote{\url{https://telegram.org/}}を使用した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table5\begin{table}[t]\input{03table05.tex}%\hangcaption{対話レベルの人手評価結果．太字は各評価尺度において数値が最も良い（大きい）ものを示す．数字右下のアルファベットは，そのスコアがアルファベットに対応するモデルのスコアよりも有意に良い($p<0.05$)ことを示す\protect\cite{dwass60}．}\label{tab:man-eval-dial}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\tab{man-eval-dial}に，対話レベルでの人手評価結果を示す．三種類のスコアを平均すると，{\MHobbyistQADial}が最も良いスコアとなった．また，{\MHobbyistQA}のスコアから，対話データがなかったとしても，人物らしい自然な対話が可能であることが確認できた．発話レベルの評価結果と同様に，生成ベースのモデルの自然さは検索ベースのモデルを大きく上回っており，対話レベルの評価ではその差がより顕著に表れる結果となった．その一方で，キャラクタらしさには差が見られなかった．これは，検索ベースのモデルは人手で書かれたその人物らしい発話を返すため，それが文脈上自然な場合もあり，キャラクタらしさが高く評価されたためと考えられる．情報量については，生成ベースのモデルのスコアが高い傾向が見られるが，{\MHobbyistQASmall}を除いて，有意差は見られなかった．{\MHobbyistQASmall}の評価値が高かった理由としては，fine-tuningで利用されたQAペアのサイズが他のモデルと比較して小さかったために，事前学習に含まれる多様な話題が応答に出現しやすかった可能性が考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{評価実験の結果に関する分析}\mark{本研究では，発話レベルで評価値が付与されており定量的な分析が容易な\ssec{man-eval-utt}の評価結果（発話レベルの評価結果）に基づき，低いスコアが付与された発話の理由を定量的に分析した．}ここでは，発話レベルの人手評価結果において，三種類のスコアのうちいずれか一つ以上のスコアが3未満であった場合，システム発話が不適切であるとした．そして，それらの不適切な発話に対して，チャットボットのエラー類型を人手でラベル付けした\cite{higashinaka21b}．このエラー類型は大きく4つのレベル（発話レベル：該当システム発話の文そのもののエラー，応答レベル：該当システム発話の直前のユーザ発話をふまえたエラー，文脈レベル：当該システム発話までの対話全体をふまえたエラー，社会レベル：対話が行われている社会をふまえたエラー）に分類され，さらに17のサブカテゴリ（例えば，繰り返しや情報不足等）に分類されるものである．アノテーションは著者らと同組織に所属する専門のアノテータ二名が行い，二名の間で異なるラベルが付与された場合は，合議で結果をいずれかの結果に統一するようにした．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table6\begin{table}[b]\def\spa{2.5em}\vspace{-0.5\Cvs}\input{03table06.tex}%\hangcaption{発話レベルの人手評価において不適切と判断された発話（いずれかのスコアが3未満のもの）に対し，エラー類型\protect\cite{higashinaka21b}を付与した結果．(a)の列は検索ベースのモデルにおける頻度を表し，(b)--(d)の列は生成ベースのモデルにおける合計の頻度を表す．}\label{tab:lowscores}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\mark{\tab{lowscores}に，発話レベルの人手評価におけるスコアの低い発話に対して付与したエラー類型の頻度を示す．}生成ベースのモデルでは，応答レベル，および，文脈レベルのエラー（全体の\mark{22}\%\mark{，(2+13+10+2+6)/150}）が検索ベースのモデルよりも少ない（全体の\mark{46}\%\mark{，(2+7+12+2)/50}）ことが明らかになった．しかしながら，{\TCIn}では，生成ベースのモデルにおいて文脈レベルのエラーが依然として多く（全体の4\mark{2}\%\mark{，(27+12+6+4+14)/150}），特にエラー類型のサブカテゴリのうち，発話意図不明確（話題は関連するものの，なぜその発話をしたか意図が不明なもの\mark{．}全体の1\mark{8}\%\mark{，(12+8+7)/150}），繰り返し（システム発話が文脈中の発話の繰り返しになっているもの\mark{．}全体の\mark{9}\%\mark{，(2+5+7)/150}）\mark{．}および，情報不足（発話に含むべき要素が含まれておらず意味が理解できない，または，理解しづらいもの\mark{．}全体の\mark{8}\%\mark{，(3+4+5)/150}）が多く見られた．大規模言語モデルを利用することで，応答レベルや文脈レベルのエラーは検索ベースと比較して抑制されているものの，発話の繰り返しや情報不足のエラーは依然として問題になっていると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table7\begin{table}[b]\input{03table07.tex}%\caption{{\MHobbyistQADial}における対話の成功例}\label{tab:log-samples}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\tab{log-samples}に{\MHobbyistQADial}において最も評価値が高かった対話の例を一つ示す．システムが一貫したキャラクタらしさを持ち，文脈に応じて自然な発話を生成できていることが確認できる．しかしながら，S$_3$のように繰り返しが含まれ，情報量が少ない発話も一部見られており，先の考察でも述べた通り，生成モデルを用いた手法における今後の課題であると考えている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{公開実験}
\label{sec:open}前節で構築したチャットボットをインターネット上で公開し，対象人物のファンを中心とする多数のユーザとの対話を大規模に収集することで，構築したチャットボットの到達点，および，解決すべき課題について調査した．本節では，公開実験の概要と結果について述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{チャットボット公開の概要}公開対象のシステムとして，\ssec{man-eval-dial}で述べた人手の対話評価において，三種類の評価値の平均値が最も高かった{\MHobbyistQADial}を利用した．公開のためのプラットフォームとして，幅広い任意のユーザにシステムと対話してもらえるよう，Twitterのダイレクトメッセージ(DM)機能\footnote{\url{https://help.twitter.com/ja/using-twitter/direct-messages}}を利用した．TwitterのDMを使用することで，システムとユーザが一対一で自由に対話を行うことができる．\fig{twitter}に，公開実験で利用したTwitterアカウントと実際のDMの画面を示す．DMを利用するため，システムのTwitterアカウント\footnote{\url{https://twitter.com/narikiri_ai}}を作成し，DMの公開期間は2021年の7月29日から31日の3日間とした．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.1\begin{figure}[b]\begin{center}\includegraphics{30-4ia3f1.pdf}\end{center}\caption{公開実験で利用したTwitterアカウントと実際のDM画面}\label{fig:twitter}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%実験に参加するユーザは，アカウントをフォローした後，DM画面で最初に送付されるメッセージに記載された本公開実験の規約に同意することで，システムとの対話が可能となるようにした．ユーザーはシステムの公開期間中，好きなだけ対話することができ，また，いつでも対話を中止することができるようにした．TwitterのDMには対話のリセット機能が用意されていないため，各ユーザから収集される対話はユーザごとに一対話となる．公開期間の最終日には，ユーザの満足度を調査するために，ユーザアンケートをダイレクトメッセージで送信した．ユーザアンケートの文言は「なりきりAIアマデウス紅莉栖とまたどれぐらい話したいと思いますか？」とし，ユーザには5点満点のリッカート尺度（5点：とても話したい～1点：全く話したくない）で回答させるようにした．なお，公開実験の実施にあたって，ユーザには参加費等の支払いは一切行っていない．多数のユーザと並列にチャットを行うため，アマゾンウェブサービス(AWS)\footnote{\url{https://aws.amazon.com/jp/}}上にTwitterDMを用いたチャットボットのシステムを構築した．AWSのインスタンスとして，TeslaT4を8機備えるg4dn.metalを利用し，ロードバランサを設置した．公開期間を通して，システムからのレスポンスはおよそ5秒以内に得られるようになっていたため，ユーザはストレスなく対話を行うことができたと考えている．また，ユーザやシステムから発話される不適切な内容を抑制するため，内製のNG単語リストに基づいて，NG単語を含むユーザ発話が入力された場合，または，NG単語を含むシステム発話が生成された場合，無回答を表す「...」で応答するようにした．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{収集された対話データとアンケート結果}公開実験の結果，1,170名の多数のユーザがシステムと対話を行い，ユーザ発話とシステム発話で合わせて161,216発話（ユーザ発話とシステム発話は同数であり，それぞれ80,608発話）を収集することができた．各ユーザの平均発話数は68.9発話であり，比較的長い時間チャットボットを使用していたことがわかった．また，公開期間の最終日に実施したユーザ満足度に関するアンケートでは，ユーザ満足度の平均は5点満点中4.59点となり，90\%($=76\%+14\%$)のユーザが4点以上のスコアというポジティブな回答を行っていた（回答が得られた63.6\%のユーザの結果に基づいて算出）．収集された対話ログは，既存の人物を再現したシステムの対話ログとして我々の知る限り世界最大レベルであり，今後対象人物を再現するチャットボットの研究を行う上で貴重なリソースを収集することができた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{公開実験のデータを対象としたエラー分析}
\label{sec:annotation}公開実験で得られた対話ログを利用してエラー分析を行い，{\PSE}を調査した．具体的には，対象人物に関するどの情報がエラーを引き起こしているのか，また，各種のエラーがどの程度存在しているのかを明らかにすることを目的とした．この目的を達成するために，従来の研究で扱われる一般的な対話のエラー\cite{higashinaka21b}全体を対象にするのではなく，対象人物に関する情報が問題を引き起こしているエラーを抽出して類型化することが適切であると考えた．対象人物に関連するエラーに焦点を当てることで，対象人物を再現するチャットボットの問題点がより明らかになるためである．\fig{sample}に示すように，本研究では，{\PSE}の分析を行うために，対話破綻ラベル，対話破綻の理由を記述したコメント（以降，エラーコメントと呼ぶ）\cite{higashinaka15b}，エラーが対象人物に特有かどうかを示す{\PSE}のフラグ，一般的なチャットボットにおけるエラー類型\cite{higashinaka21b}の4種類のラベルをシステム発話に付与して分析を行った．エラーコメント，および，{\PSE}のフラグは，エラー類型を明らかにするためのクラスタリングに利用された．また，一般的なチャットボットにおけるエラー類型，および，{\PSE}のフラグは，既存の類型と{\PSE}の類型の対応関係を調査するために利用された．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.2\begin{figure}[b]\vspace{-0.5\Cvs}\begin{center}\includegraphics{30-4ia3f2.pdf}\end{center}\hangcaption{{\PSE}を分析するために付与する4種類のラベル（対話破綻ラベル，エラーコメント，一般的なチャットボットのエラー類型\protect\cite{higashinaka21b}，{\PSE}のフラグ）の具体例．対話破綻ラベルの列におけるNB，PB，B，Cはそれぞれ，Notabreakdown，Possiblebreakdown，Breakdown，PBおよびBで付与されるエラーコメントの数を表す．}\label{fig:sample}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%具体的な手順として，まず，対話中でエラーが起きている箇所を特定するため，対話破綻ラベルを付与する．このとき，先行研究と同様に，エラーの原因を調査するため，対話破綻と判断された理由を記述したエラーコメントを合わせて収集する．このエラーコメント中に対象人物に関するキーワードが含まれていた場合，そのエラーコメントは対象人物に特有の内容について言及していると考えられるため，エラーが対象人物に特有であることを示す{\PSE}のフラグを立てる\footnote{エラーコメントにキーワードが入っていないものの，そのエラーが対象人物に特有である場合も存在する．しかしながら，その判断には専門性が必要であり，また，人手での特定が必要となるため，本研究では{\PSE}のフラグの付与にキーワードの有無を利用することにした．}．そして，{\PSE}のフラグが付与されたエラーコメントを抽出しクラスタリングすることで，{\PSE}の類型を作成する．また，既存のエラー類型と{\PSE}との対応関係を明らかにするため，一般的なチャットボットにおけるエラー類型を付与し，それぞれの類型が占める割合を調査した．以降，各情報の付与，および，明らかになったエラー類型について述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{対話破綻ラベルとエラーコメントの付与}対話破綻の情報の付与にあたって，アノテーションのコストを勘案して，収集された対話ログにおけるシステム発話全体のうち，13\%($=10611/80608$)をサンプリングしてアノテーションの対象とした．サンプリングの方法として，ユーザを一名ランダムに選択し，そのユーザとシステムの対話の先頭からシステム発話を最大で50件抽出してアノテーション対象とし，抽出されたシステム発話が全体の13\%になるまで，ユーザ一名の選択とシステム発話の抽出を繰り返した．その結果，アノテーション対象に含まれるユーザ数は385名となり，平均の対話長は27.6発話($=10611/385$)となった．サンプリングした各システム発話に対して，対話破綻のラベル（三種類）として「破綻ではない」を表すNotabreakdown(NB)，「破綻の可能性がある」を表すPossiblebreakdown(PB)，「破綻である」を表すBreakdown(B)のいずれかを付与した．これらのラベルは，対象人物に関して十分な知識を持つ5名の作業者（Lancersを通じて募集）によって付与された．このとき，作業者には，対話のエラーを表すPBまたはBを付与した場合，そのように判断した理由を具体的にエラーコメントとして記述するよう教示を与えることで，対話破綻ラベル，および，エラーコメントを収集した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table8\begin{table}[b]\input{03table08.tex}%\caption{公開実験の対話ログの一部に対して付与された対話破綻ラベルの統計情報}\label{tab:stats-db}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\tab{stats-db}に，公開実験の対話ログの一部に対して付与された対話破綻ラベルの統計情報を示す．10,611件のシステム発話に対して5名の作業者が対話破綻ラベルを付与することで，53,055($=10611\times5$)件の対話破綻ラベルが付与された．このうち，NBが付与された割合は89\%($=47200/53055$)であり，多くの場合において適切な対話がなされていることがわかる．Fleiss'kappa\cite{fleiss73}でアノテータ間の一致率を調査したところ，NB，PB，Bを異なるラベルとして扱った場合0.23，PBとBを統合した場合0.30となり，先行研究\cite{higashinaka15b}で報告されている一致率（0.28，および，0.40）よりも若干低い結果となった．これは，作業者の対象人物についての解釈の違いに起因する可能性がある．この違いについては今後調査したいと考えている．以降の分析では，半数（3名）以上の作業者が破綻（PBまたはB）と判断したシステム発話をエラー分析の対象とした．その数は817発話であり，アノテーション対象となった発話全体の7.7\%($=817/10611$)であった．また，エラー分析の対象となった発話に付与されていたエラーコメントの数は2,846件であった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{{\PSE}のフラグと一般のエラー類型の付与}対話破綻と判断されたシステム発話817件に対して，{\PSE}のフラグ，および，一般的なチャットボットのエラー類型を付与した．これらの作業は第一著者と同組織に所属する専門のアノテータ二名によって行われた．一つ目の{\PSE}のフラグに関して，なりきりQAコーパスをもとに，アノテータが人手で対象人物に関連のある単語を列挙し，単語リスト（53語）を作成した．作成したリストに含まれる単語として，例えば「紅莉栖」，「まゆり」（紅莉栖の友人の名前），「秋葉原」（紅莉栖がよく訪れる場所），「@channnel」（紅莉栖がよく利用するウェブサイト）等が存在する．この辞書に含まれる単語がシステム発話に対するいずれかのエラーコメントに含まれていた場合，そのシステム発話に対して{\PSE}のフラグを付与した．また，二つ目の一般的なチャットボットのエラー類型については，アノテーションの仕様書\footnote{\url{https://github.com/ryuichiro-higashinaka/taxonomy-of-errors}}を参照しつつ二名のアノテータがラベルを付与し，判断が揺れた事例については相談の上どちらかに統一することでアノテーションを行った．\tab{dbl}に，一般のエラー類型および{\PSE}のフラグのアノテーション結果を示す．エラーと判断されたシステム発話のうち，20.1\%(=168/817)が{\PSE}と判定された．特に，{\PSE}が多いものとして，(I4)誤情報はエラーの半数以上(43/81=53.1\%)が{\PSE}であることがわかった．以降の分析では，端的かつ顕著なエラーを分析対象とするため，エラーが起きている発話全体に占める{\PSE}の割合がおよそ1\%以上のもの，具体的には，表中の下線部のエラー（I4：誤情報，I5：質問無視，I9：期待無視，I10：発話意図不明確，I13：自己矛盾，I15：繰り返し）を対象に分析を行うことにした．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table9\begin{table}[t]\input{03table09.tex}%\hangcaption{対話破綻が起きていた発話に対して付与した一般のチャットボットのエラー類型(Higashinakaet~al.2021)，および，{\PSE}の割合．各列において，数値と括弧内の割合はそれぞれ発話数とエラー全体における割合を表す．}\label{tab:dbl}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{クラスタリングを通じた{\PSE}の類型化}\label{ssec:clustering}{\PSE}が起きているシステム発話に対して，先行研究\cite{higashinaka15b}同様，エラーと判断された理由を記述したエラーコメントをクラスタリングすることで，{\PSE}を類型化し特徴を明らかにする．このためのクラスタリング手法として，分類の過程を追跡しやすい階層型クラスタリングを用いた．クラスタリング対象のエラーコメントは{\PSE}と判定された168件のシステム発話に対して付与されたコメントであり，人物特有フラグが付与されたコメントを各システム発話からランダムに一つ選択することで抽出した\footnote{エラーが起きている各システム発話に対して付与されたコメントの数は同数ではなく（具体的には3件～5件），また，その中には対象人物に関するキーワードを含まないエラーコメントも存在するため，エラーが起きた発話とクラスタリング対象のエラーコメントの数が一対一になるよう，エラーコメントを選択するようにした．}．クラスタリング対象のエラーコメントには対象人物に関する固有名詞が多数出現するため，同一の固有名詞に関するコメントをまとめられるよう，特徴量にはBag-of-wordsを利用した．クラスタリングの際には，クラスタリング対象のコメント中で出現頻度が少ない語（出現回数が3回以下のもの）は除外した．階層クラスタリングの手法にはウォード法を使用し，距離尺度にはユークリッド距離を使用した．最終的にクラスタ数を決定する際は，最終的な類型間で重複等がないよう，各クラスタのサイズが全コメントの10\%以上となるように閾値を設定した．なお，日本語形態素解析器としてJTAG\cite{fuchi98}（前述の対象人物に関する単語リストを固有名詞辞書として登録したもの）を利用し，クラスタリングの実装にはSciPy\footnote{\url{https://scipy.org}．クラスタリングを行う関数としてscipy.cluster.hierarchy.linkageを利用した．}を利用した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.3\begin{figure}[t]\begin{center}\includegraphics{30-4ia3f3.pdf}\end{center}\hangcaption{{\PSE}に付与されていたエラーコメントのクラスタリング結果．各クラスタにおいて，クラスタの重心に特徴量が最も近いコメントをそのクラスタの代表的なコメントとして示している．}\label{fig:clustering}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\fig{clustering}にエラーコメントのクラスタリング結果を示す．図には4つのクラスタが示されており，各クラスタにおいて，クラスタの重心に特徴量が最も近いコメントをそのクラスタの代表的なコメントとして示している．コメントの内容に基づき，各クラスタの特徴を以下にまとめる．\begin{itemize}\itemクラスタ1では，システムが対象人物を取りまく環境（登場人物である「岡部」や，好きなアーティストである「モーツァルト」）に関する内容について，適切に応答できていないというエラーが見られる．\itemクラスタ2では，システムが突然話題になっている人物（例えば，登場人物の「鈴羽」）とは別の人物（別の登場人物である「まゆり」）について言及してしまったり，突然別の人物（「まゆり」や「漆原」）の名前に言及することで，ユーザを別の人物と間違えてしまったりするというエラーが見られる．\itemクラスタ3では，システムが対象人物自身に関する誤った情報（例えば，自分のプロフィールを間違えたり，自分の好みを間違えたり）を発話してしまうというエラーが見られる．\itemクラスタ4では，システムが対象人物自身を別の人物（例えば，登場人物やユーザ）と勘違いしたような内容を発話してしまうというエラーが見られる．\end{itemize}以上の特徴から，クラスタ1とクラスタ3はシステムが再現する対象人物自身についての誤認識がまとまっており，クラスタ2とクラスタ4は対象人物とは別の人物や事物についての誤認識がまとまっていると考えられる．また，クラスタ1とクラスタ2は対象人物自身（例えば，対象人物や登場人物）についてのエラーがまとまっており，クラスタ3とクラスタ4は，人物や事物間の関係性に関するエラーがまとまっていると考えられる．エラーコメントのクラスタリング結果を解釈した結果に基づき，{\PSE}は，人物や事物に関する{\bf属性}のエラー，および，それらの間の{\bf関係}のエラーの二種類に分けることができ，それぞれのエラーはさらに，{\bf自己}（対象人物自身），および，{\bfその他}（対象人物以外の人物や事物，すなわち，対象人物の周囲の環境）という二つのレベルに分けられると考えられる．この分類を{\PSE}の類型としてまとめたものを\tab{newdbl}に示す．表には二つのレベル，および，二種類のエラーに分かれて4つのエラー類型が存在している．\tab{newdbl}に示すそれぞれの類型は\fig{clustering}のクラスタと一対一で対応しており，それぞれ，{\bf\selfrecog}はクラスタ3，{\bf\selfrel}はクラスタ4，{\bf\otherrecog}はクラスタ1，{\bf\otherrel}はクラスタ2と対応する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table10\begin{table}[b]\input{03table10.tex}%\caption{{\PSE}の類型．括弧内のクラスタ番号は\fig{clustering}と対応している．}\label{tab:newdbl}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{\PSE}の各類型について，公開実験を通じて実際に収集された対話例とその説明を示す．以降の対話では，ユーザ，システムをそれぞれU，Sと表記する．また，具体例として示す対話中の発話において，著者らがエラーの原因と考えた箇所を\ul{下線}で示している．\begin{description}\item[\bf{\selfrecog}:]このエラーは，対象人物となる人物の属性に関する情報（例えば，プロフィール，嗜好，経験など）において，誤った情報を発話するものである．\begin{enumerate}\itemU:~~「IlikeyouKurisu.」\\S:~~~「私は\ul{AI}でも\ul{AI紅莉栖}でもありません。」（注：対象人物はAIのキャラクタ）\itemU:~~「つれないなクリスティーーーナよ！」（注：クリスティーナは対象人物が嫌っているあだ名）\\S:~~~「こんばんは。AIの\ul{クリスティーナ}よ。」\end{enumerate}対話(1)では，対象人物は作品中においてAIのキャラクタであるため，対象人物のプロフィールが誤っている．対話(2)では，システムが自ら「クリスティーナ」と発話しているが，対象人物は「クリスティーナ」というニックネームを嫌っているため，対象人物の嗜好が誤っている．\item[\bf{\selfrel}:]このエラーは，システムが対象人物自身と他の人物や事物（例えば，ユーザ，友人，有名人）を誤って取り違えて発話するものである．\begin{enumerate}\setcounter{enumi}{2}\itemS:~~~「私の名前は牧瀬紅莉栖よ。今日の実験もそろそろ終わりね。」\\U:~~「もっと話したいです。」\\S:~~~「あなたは本当に\ul{牧瀬紅莉栖}なの？」\itemU:~~「まゆりって誰？」（注：まゆりは対象人物の友人）\\S:~~~「彼女は\ul{牧瀬紅莉栖}とも呼ばれているわ。」\end{enumerate}対話(3)では，システムがユーザを対象人物である「牧瀬紅莉栖」と読んでおり，対象人物自身を別の人物（この場合はユーザ）と誤認識している．対話(4)では，ユーザがまゆりについて尋ねているにも関わらず，対象人物自身を別の人物（この場合は友人である「まゆり」）と誤認識している．\item[\bf{\otherrecog}:]このエラーは，対象人物の周囲の人物（例：友人）や事物（例：好きなもの等の関係の深いもの）について，誤った情報を発話したり，適切に反応できなかったりするものである．\begin{enumerate}\setcounter{enumi}{4}\itemS:~~~「男の子でも、可愛い人は、いるわよ。」\\U:~~「お、おう。たとえば？」\\S:~~~「\ul{まゆりとか、まゆりとか}ね。」\itemU:~~「ぬるぽ」（注：対象人物がよく知るインターネットスラング）\\S:~~~「\ul{私の名前は牧瀬紅莉栖よ。}」\end{enumerate}対話(5)では，対象人物の友人である「まゆり」は女性であり，男性ではないため，対象人物の周囲の人物に関する知識が誤っている．対話(6)では，ユーザがインターネットスラングを発話しているが，期待と異なる応答をしている．対象人物はインターネットスラングについてよく知っている設定のため，典型的な応答（この場合は「ガッ」）を返すべきであり，対象人物の周囲の事物に関する内容の発話適切に反応できていないというエラーである．\item[\bf{\otherrel}:]このエラーは，対象人物の周囲の人物（例：友人）や事物（例：好きなもの等の関係の深いもの）を別の対象人物以外の人物や事物と誤って取り違えて発話するものである．\begin{enumerate}\setcounter{enumi}{6}\itemU:~~「アマデウス紅莉栖LOVE」\\S:~~~「そうね。私も好きよ。\ul{まゆり}。」（注：まゆりは対象人物の友人）\itemU:~~「鈴羽は今何してる？」（注：鈴羽は対象人物の友人）\\S:~~~「そうね、\ul{マユリ}の声は世界を救うのよ。」\end{enumerate}対話(7)では，システムが突然「まゆり」と発話していることから，システムは対象人物以外の人物（ユーザ）を別の対象人物以外の人物（マユリ）と誤って発話している．対話(8)では，ユーザは対象人物の友人である「鈴羽」について質問しているにも関わらず，別の友人である「マユリ」について発話しており，対象人物以外の人物（友人）を取り違えて発話している．\end{description}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{{\PSE}の類型の評価}\ssec{clustering}で述べた{\PSE}の類型の妥当性を確認するため，クラスタリングの対象として利用していない対話データ中のシステム発話に対して，{\PSE}の類型をアノテーションした．具体的には，{\PSE}が起きているシステム発話に対して，4種類の類型(P1--P4)のアノテーションを行い，アノテータ間一致率を調査した．アノテーション対象のシステム発話を抽出するために，対話破綻ラベルのアノテーションを行っていない残りの対話データ（全体の$87\%=(80608-10611)/80608$）から，まず，3,200件のシステム発話をサンプリングした．次に，7.1節，および，7.2節で述べた{\PSE}の抽出方法（対話破綻のアノテーション，および，対象人物に関するキーワードを利用した{\PSE}のフラグの付与）を適用することで，50件の{\PSE}を抽出し類型のアノテーション対象とした．抽出された50件の{\PSE}が起きているシステム発話の各々に対して，アノテータは{\PSE}の類型を一つ付与した．このとき，アノテータには対象となる{\PSE}が起きている発話，および，その直前の3発話（文脈）を与え，アノテーション対象の発話に対して付与されていたエラーコメント等は与えなかった．アノテータとして，第一著者と同組織に所属する専門のアノテータ二名がアノテーションを実施した．教示として，\ssec{clustering}で述べた各類型の対話例とその説明を与えた．その結果，アノテータ間の一致率はCohen'skappaで0.46となり，中程度の一致率であることから，{\PSE}の妥当性が示唆されたと考えている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{既存のエラー類型との対応}\tab{mapping}に，{\PSE}の類型と従来のエラー類型（チャットボットの個性を限定しないもの）\cite{higashinaka21b}との対応関係を示す．この表は，\tab{dbl}と\fig{clustering}の結果をマージすることで作成した．この表から，まず，{\PSE}の各類型の出現頻度に着目すると，{\selfrecog}のエラーが最も頻繁に発生しており，半数以上($42.3\%+15.5\%=57.8\%$)を占めることがわかる．また，他者レベルのエラー（P3，および，P4）は合わせて4割程度出現していることから，対象人物自身の情報のみならず，対象人物の友人など，その人物を取りまく環境についての話題も頻繁にエラーになっていることが明らかになった．従来のエラー類型における各類型が{\PSE}の各類型に出現しており，本研究で明らかになった{\PSE}の類型が従来のエラー類型と異なる観点でエラーを分類できていると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table11\begin{table}[t]\input{03table11.tex}%\hangcaption{{\PSE}の類型，および，従来のエラー類型（チャットボットの個性を限定しないもの）\protect\cite{higashinaka21b}の対応関係．表中の各数値は{\PSE}の分析に利用した全エラー（168件）における各エラーの割合を示す.}\label{tab:mapping}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%{\PSE}の類型と従来のエラー類型の対応関係に着目すると，{\selfrecog}は従来のエラー類型における(I4)誤情報，および，(I10)意図不明（発話意図不明確）で頻繁に発生していることがわかる．代表的なものとして，(I4)誤情報であれば，対象人物自身のプロフィールや嗜好に関して誤った情報を含む発話（例えば，AIの人物であるにも関わらず「私はAIではない」と発話する場合）が見られた．(I10)発話意図不明確であれば，対象人物の応答として意図が不明確となる発話（例えば，「私はクリスティーナよ」と自ら嫌っているあだ名で名乗る場合）が見られた．{\selfrel}も(I4)誤情報，および，(I10)発話意図不明確で頻繁に発生している．(I4)誤情報であれば，システムが自身とユーザを混同したり，自身と対象人物の友人を混同したりする発話が見られた．(I10)発話意図不明確であれば，例えば，システムが対象人物とその友人を混同し，対象人物の話題から突然その友人の話題に飛ぶことで発話意図が不明確となる発話が見られた．{\otherrecog}や{\otherrel}においては，対象人物が深く知っておくべき友人などの人物や，好きなものなどの事物に関して適切に答えることができない発話が見られ，例えば，人物や事物に対して誤った情報を含む発話や，ユーザを含む人物の間で取り違えが起きている発話が見られた．本研究の調査結果をまとめると，{\PSE}では特に対象人物自身に関するエラーが最も多いということが明らかになった．\mark{この理由として，本研究で実施した公開実験に参加したユーザが主に対象人物のファンであり，ユーザが対象人物についての話題に言及しやすい傾向があった可能性が考えられる．}また，従来のエラーの類型を用いた調査の結果，{\PSE}では(I4)誤情報が最も多く発生していることから，個性を一貫させた対話を実現する研究\cite{li16a}の重要性が確認された．興味深い知見として，対象人物を再現するシステムとの対話では，対象人物だけでなく，対象人物の周辺を取りまく人物や事物等の環境に関する話題が出現しており，これらの知識に関するエラーが{\PSE}全体のうちのおよそ4割存在することが明らかになった．人物や事物の間の関係を扱うためには，例えばグラフ構造を用いる手法が有効である可能性がある\cite{ghazvininejad18,dinan19}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{まとめ}
\label{sec:summary}本研究では，対象人物に関して収集したなりきり質問応答のデータを大規模言語モデルと組み合わせることでなりきりAIを構築し，さらにインターネットを通じて公開実験を行うことで，対象人物を再現するチャットボットにおける現状の到達点と今後解決すべき課題（{\PSE}の類型）を調査した．その結果，収集された45KのQAペアを用いることで，構築されたチャットボットが従来の検索ベースの手法と比較して有意に高い自然さとキャラクタらしさを持つことが明らかになった．さらに，公開実験を通じて収集した大規模な対話ログを用いて誤り分析を行うことで，対象人物を再現するチャットボットのエラー({\PSE})を調査した．その結果，{\PSE}は属性に関するエラーと関係に関するエラーの二種類に分けることができ，また，自己に関するエラーと他者に関するエラーという二つのレベルに分けられることが明らかになった．今後の課題として，生成ベースの手法をより改善していきたい．例えば，今回実験に利用したQAペアは最低でも1万ペアであり，依然として多いため，より少ないデータでも適切に振る舞う手法を検討したい．このために，人物に関する外部知識（テキストや知識グラフなど）を参照しながら対話を行う手法が有用な可能性がある\cite{zhao20}．\mark{加えて，本研究では5節の評価実験において，発話レベルの人手評価結果のみに着目して低い評価値が付与された発話の分析を行ったが，対話レベルの人手評価結果についても，定性的な分析や定量化可能な情報の調査を通じて，評価値が低くなった対話の原因を調査したい．}また，エラー分析の結果得られた知見に基づき，Unlikelihood-Training\cite{li19}や話者の識別モデルを利用する発話生成\cite{shuster22}のアプローチを用いて，{\PSE}を抑制することも重要な課題である．\mark{今後，対話内容の詳細なアノテーション等を追加で実施し，人物特有エラーにおいて，特に対象人物自身に関するエラーが多く出現していた理由等も明らかにしていきたい．対象人物とユーザの関係や親しさを推定し，それに合わせた対話を行うことも今後の重要な課題である．本研究におけるコーパス構築では，対象人物の応答と併せて親密度のラベル収集したため，対象人物とユーザの関係や親しさを推定し，それに合わせた対話を行う手法を確立したい．}さらに，本研究で収集した対話破綻のラベルを用いて，ChatGPT\cite{ouyang22}等の大規模言語モデルにおいて利用されるReinforcementlearningfromhumanfeedback(RLHF)を実施して{\PSE}を抑制することも考えられる．本論文では単一の人物のみに焦点を当てており，今後異なる人物を対象として，結果の汎用性を検証することも実施していきたい．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgment本論文の一部は，The12thInternationalWorkshoponSpokenDialogSystems(IWSDS2021)\footnote{Thispaperwasfirstpublishedin[ConversationalAIforNaturalHuman-CentricInteraction,LectureNotesinElectricalEngineering,vol943,pp.277--290,2022]bySpringerNature.}，および，The60thAnnualMeetingoftheAssociationforComputationalLinguistics(ACL2022)で発表したものです\cite{mitsuda21,mitsuda22}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.7}\bibliography{03refs}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{光田航}{%2013年東京工業大学情報工学科卒業．2015年同大学大学院情報理工学研究科修士課程修了．2021年筑波大学大学院システム情報工学研究科博士課程修了．2015年から2023年まで日本電信電話株式会社研究員．2023年よりrinna株式会社AppliedScientist．自然言語処理，対話システムの研究開発に従事．人工知能学会，言語処理学会各会員．博士（工学）．}\bioauthor{東中竜一郎}{%2001年慶應義塾大学大学院政策・メディア研究科修士課程，2008年博士課程修了．2001年日本電信電話株式会社入社．2020年より，名古屋大学大学院情報学研究科教授．NTT人間情報研究所客員上席特別研究員．慶應義塾大学環境情報学部特別招聘教授．2004年から2006年まで英国シェフィールド大学客員研究員．質問応答システム・対話システムの研究に従事．人工知能学会，言語処理学会，情報処理学会，電子情報通学会各会員．博士（学術）．}\bioauthor{李廷軒}{%2019年大連理工大学電子情報・電気工学部卒業．2023年筑波大学大学院理工情報生命学術院システム情報工学研究群知能機能システム学位プログラム（博士前期課程）修了．}\bioauthor{杉山弘晃}{%2007年東京大学工学部機械情報工学科卒業．2009年同大学院情報理工学系研究科知能機械情報学専攻修士課程了．2016年奈良先端科学技術大学院大学情報科学研究科博士課程修了．2009年,日本電信電話株式会社入社.現在,NTTコミュニケーション科学基礎研究所協創情報研究部主任研究員.人と自然な対話を行う雑談対話システムの研究に従事．IEEE，人工知能学会，言語処理学会，情報処理学会各会員．博士（工学）．}\bioauthor{水上雅博}{%2014年奈良先端科学技術大学院大学情報科学研究科修士課程修了．2017年同研究科博士課程修了．同年，日本電信電話株式会社入社．現在，NTTコミュニケーション科学基礎研究所協創情報研究部研究主任．個人性を持つ対話システムの研究開発に従事．人工知能学会会員．博士（工学）.}\bioauthor{中村竜太}{%2008年国立群馬工業高等専門学校卒業.2008年～2016年ソニーグローバルマニュファクチャリング＆オペレーションズ株式会社.2016年～2018年Gatebox株式会社.2018年より株式会社ドワンゴにて新規事業部署のマネージャに従事.}\bioauthor{安達敬武}{%2000年日本タイムシェア株式会社入社．2006年株式会社ドワンゴ入社．2013年スマートフォン音楽サイトセクションマネージャ．2016年対話AIプロジェクト「なりきりAI」立ち上げに参画．現在，新規プロダクトの開発ディレクションに従事．}\bioauthor{川端秀寿}{%2007年楽天株式会社入社．2011年楽天市場事業部西日本エリアマネージャ．同年，ドワンゴ株式会社入社．2012年より，ニコニコチャンネルのセールスマネージャとしてEコマース事業の開発に従事．2016年「なりきりAI」プロジェクト参加．その後，チャンネル事業部部長を経て，現在，株式会社KADOKAWAファンコミュニティ事業部部長．}\bioauthor{吉田仙}{%1995年東北大学大学院情報科学研究科博士前期課程修了．1995年から2022年まで日本電信電話株式会社，2003年から2007年まで西日本電信電話株式会社．2022年より株式会社三菱ケミカルホールディングス（現：三菱ケミカルグループ株式会社）．現在，自然言語処理の応用業務に従事．情報処理学会，人工知能学会各会員．}\bioauthor{杵渕哲也}{%1997年東北大学大学院・博士課程前期修了．同年日本電信電話株式会社入社．現在，NTT人間情報研究所共生知能研究プロジェクトプロジェクトマネージャ．メディア処理，人工知能に関する研究開発に従事．電子情報通信学会会員．}\end{biography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\biodate\end{document}