\documentclass[japanese]{jnlp_3.8}
\usepackage{jnlpbbl_2.2}
\usepackage[dvipdfmx]{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{url}
\usepackage{array}
\allowdisplaybreaks

\usepackage{hangcaption_jnlp}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% author's definition

%%% 以下は筆者らが使ったもの
%%%%%\usepackage{here}
\usepackage{bbding}
%%%%%\allowdisplaybreaks

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\Volume{31}
\Number{3}
\Month{September}
\Year{2024}
%%%%\Issuetitle{「　　　　」特集号}

\received{2023}{11}{20}
\revised{2024}{3}{29}
\accepted{2024}{5}{13}




\setcounter{page}{1076}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\jsubject{一般論文}
\jtitle{T5 によるデータ拡張を利用した特定キャラクタ風の\\日本語言語モデルの構築}
\jauthor{馬　　ブン\affiref{Author_0}  \and 岸野　望叶\affiref{Author_1}  \and 古宮嘉那子\affiref{Author_2} \and 新納　浩幸\affiref{Author_3}}
\jabstract{%
本論文では特定の発話者に対する言語モデルの構築手法を提案する．現在，対話エージェントやRPGなどのゲームのセリフにおいて，キャラクタらしい発話が求められている．しかし，特定のキャラクタに特化した言語モデルの構築を行うには，訓練データが不足している．そのため本論文では対象の発話者と同一作品に出てくる別人物の発話を，T5を用いて対象発話者の発話風に変換し，訓練データを増補する．提案手法では，対象の発話者の発話を「タスク」の訓練データ，作中の登場人物たちの発話を「ドメイン」の訓練データとし，DAPT (domain adaptive pretraining) + TAPT (task adaptive pretraining) の手法でベースの言語モデルとなるGPT-2にfine-tuningを行う．この際，多様な口調をモデルに区別させるために，文頭に発話者の名前を追加する．また，登場人物の発話を人手で一般的な発話に変換することで，発話者らしいキャラクタ性を含んだ文と一般的な文のペアを作成する．さらに，これらの文ペアを用いてT5を学習し，(A) 一般的な発話からキャラクタらしい発話への変換モデルと (B) キャラクタらしい発話から一般的な発話への変換モデルを作成する．モデル (A) を使って作った (1) 人手で作成した一般的な発話を対象の発話者風に変換した発話集合と，モデル (A) と (B) を使って作った (2) 対象の発話者と同一作品の登場人物の発話を対象の発話者風に変換した発話集合を対象発話者の擬似データとして扱う．7名のキャラクタの言語モデルの平均のパープレキシティを評価したところ，GPT-2に対象の発話者の発話のみで訓練を行った場合は27.33であったのに対し，提案手法を利用した場合は21.15となり，性能を向上させることができた．
}

\jkeywords{GPT-2, T5, データ拡張，擬似データ，文生成，発話文，DAPT, TAPT}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\etitle{Construction of Japanese Language Model of Utterances of Fictional Characters Using Pseudo Data Created by T5}


\eauthor{Wen Ma\affiref{Author_0} \and Mika Kishino\affiref{Author_1} \and Kanako Komiya\affiref{Author_2}  \and Hiroyuki Shinnou\affiref{Author_3}} 

\eabstract{%
This study proposes a method for building language models for specific speakers. Currently, character-specific utterances are required for interactive agents and games, such as RPGs. However, the training data are limited to building a language model specialized for a specific character. Therefore, using T5, we transform the utterances of different characters in the same work as that of the target speaker into the speech style of the target speaker, that augments the training data. We fine-tuned GPT-2, the base language model, using domain adaptive pretraining (DAPT) + task adaptive pretraining (TAPT) methods. We regarded the utterances of the target speaker as the training data for TAPT and the utterances of the characters in the work as the training data for DAPT. We added character names at the beginning of the utterances to deal with the diversity of the data. Additionally, we manually transformed the utterances of the characters into general utterances that produced parallel data of character-specific and general utterances. We fine-tuned T5 using these parallel data and created two types of T5 models: (A) a transform model from general to character-specific speech style and (B) a transform model from character-specific to general speech style. We augmented the utterances of the target speaker in two ways using these models. (1) We transformed the manually rewritten general utterances into the character-specific style of the target speaker using Model (A), and (2) we transformed the utterances of different characters in the same work as that of the target speaker into the speech style of the target speaker using Models (A) and (B). The experiments showed that the average perplexity of language models for seven characters was 27.33 when GPT-2 was trained with only the utterances of the target speaker whereas 21.15 when the proposed method was used, showing an improvement in performance.
}

\ekeywords{GPT-2, T5, Data Augmentation, Pseudo Data, Text Generation, Utterances, DAPT, TAPT}

\headauthor{馬，岸野，古宮，新納}

\headtitle{T5 によるデータ拡張を利用した特定キャラクタ風の日本語言語モデルの構築}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\affilabel{Author_0}{茨城大学大学院理工学研究科社会インフラシステム科学専攻}{Major in Society's Infrastructure Systems Science, Graduate School of Science and Engineering, Ibaraki University}
\affilabel{Author_1}{茨城大学大学院理工学研究科情報工学専攻}{Major in Computer and Information Sciences, Graduate School of Science and Engineering, Ibaraki University}
\affilabel{Author_2}{東京農工大学工学研究院先端情報科学部門}{Department of Computer and Information Sciences, Institute of Engineering, Tokyo University of Agriculture and Technology}
\affilabel{Author_3}{茨城大学理工学研究科（工学野）情報科学領域}{Department of Computer and Information Sciences, Graduate School of Science and Engineering (Engineering), Ibaraki University}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\maketitle



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S1
\section{はじめに}
本論文では，小説，アニメあるいはゲームなどに登場する特定のキャラクタを
発話者とした言語モデルの構築手法を提案する．
小説，アニメあるいはゲームなどの登場人物は，仮想的にではあるが，ある特
徴を有しており，その人物による自然な発話にはその特徴を有したものが
必要である．
高度化された対話システムにおいても，ディスプレイに表示され
る仮想的な発話者あるいは実際のロボットの発話では，その見た目から想起さ
れる発話者らしい発話が自然である．
このような背景から発話者の特徴を反映
した発話文を生成する研究がいくつか行われているが，それら
の多くは規則ベー
スの手法である（\cite{miyazaki4}, \cite{kishino}など）．規則ベースの手法
は規則の構築が手作業となるためその構築コストが高く，また対象を別の発話
者に変更することが困難という問題がある．
近年は対話システムに個性を持たせることを目的に
学習ベースのものも提案されているが，そこでは
学習のためのデータをどのように準備するかが鍵となっている（\cite{zhang-etal-2018-personalizing}, \cite{kasahara-etal-2022-building}など）．

本論文では発話者の特徴を有した発話文を生成するために，その発話者の言語
モデルを構築することを試みる．発話者の言語モデルはその発話者の発話文を
大量に収集することで自動的に構築できる．ただしその発話者は，通常，仮想
的な発話者であるため収集できる発話文の量は限られる．そのため本論文で
は GPT-2 \cite{gpt2}をベースの言語モデルに設定し，対象発話者の少量の発
話文によって，そのベースの言語モデルを fine-tuning することで目的の言語
モデルを構築する．その際，
対象の発話者と同一作品の別の登場人物の発話を
「ドメイン」の発話文，対象発話者の発話文を「タスク」の発話文と捉
え，DAPT (domain adaptive pretraining) + TAPT (task adaptive
pretraining) \cite{Suchin}の手法を利用する．
更に言語モデルの性能を上げる（パープレキシティを下げる）ために
本論文では，別人物の発話文を対象発話者風の発話文に変換する
2種類の T5 \cite{t5} モデルを構築する．
この2種類の T5 モデルを利用することで，
2種類の対象発話者風の発話（「擬似データ (1)」と「擬似データ (2)」）を生成することができる．
この生成された擬似データを，本来の対象発話者の発話文のデータに追加的に利用することで
効果的な fine-tuning を行う．

実験では株式会社スクウェア・エニックスのゲームであるドラゴンクエストVII 
内のセリフをコーパス\footnote{本コーパスは\url{https://sutton-kyouwa.com/g/}からダウンロードしたものを手作業で編集，整形したものである．本コーパスの本実験での使用に対して著作権の問題が生じないことは，AI 関係の案件に精通した弁護士から確認済みである．}とし，その登
場人物7名をそれぞれ対象発話者に設定した．このコーパスから取り出した対象
発話者の発話文を訓練データ，検証用データ及びテストデータに分け，テストデー
タに対する言語モデルのパープレキシティから構築した言語モデルの評価を行っ
た．訓練データを用いてGPT-2をfine-tuningした言語モデルの各発話者のパー
プレキシティの平均は27.33であったが，本論文の提案手法を用いること
で21.15まで改善できた．

本論文の貢献は以下である．

\begin{description}
\item[(1)] 特定キャラクタの言語モデルを構築するために，作中の登場人物の発話をドメインのデータ，対象のキャラクタの発話をタスクのデータとしてみなして，DAPT+TAPTの手法を用いて GPT-2 の fine-tuning を行う手法を提案した．

\item[(2)] 作中の各登場人物の発話文とそれを一般的な発話文に変換した少量のデータを手作業で作成し，一般的な発話文から対象のキャラクタ者風の発話文へ変換する\textbf{一般－対象変換モデル}を構築し，対象のキャラクタの発話文の擬似データ（擬似データ (1)）を構築する手法を提案した．

\item[(3)] (2) と同じデータを利用し，一般－対象変換モデルとは逆向きの\textbf{対象－一般変換モデル}を構築し，それら 2 つのモデルを組み合わせて対象のキャラクタの発話文の擬似データ（擬似データ (2)）を構築する手法を提案した．

\item[(4)] 擬似データ (1) と 擬似データ (2) を用いて，対象のキャラクタの言語モデルの性能を高めた．
\end{description}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S2
\section{関連研究}
\citeA{Suchin} は，言語モデルを構築する際にドメインに
適応させる事前学習である DAPT (domain adaptive pretraining)，タスク
に適応させる事前学習である TAPT (task adaptive pretraining)，及び
DAPT により作成したモデルに TAPT を行う DAPT + TAPT の3つの手法を比較し，
DAPT + TAPT が最もよい性能であることを示した．
また \citeA{katsumata} は話し言葉BERTの作成にDAPT + TAPTの手法
を利用し，DAPT + TAPTの2種類の追加学習を組み合わせることで，文境界推定，
重要文抽出などの様々なタスクで安定して高い性能のモデルを作成した．また
同時に話し言葉においてもこの手法は有効であることを示した．

また，キャラクタ性についての研究も盛んに行われている．\citeA{Mairesse} によって開発されたPERSONAGE (personality generator) は最初の高度なパラメータ化された会話生成器である．
彼らはPERSONAGEが外向性の度合いに沿ってバリエーションのある発話を作成で
きることを示した．\citeA{Marilyn} は映画の対話コーパスを収集し言
語構造やキャラクタの原型のアノテーションを行った．さらに彼らはジャンル，
性別，ディレクタ，映画の年代のようなグループによって言語のスタイルを分
類するためにキャラクタの言語モデルの実験を行った．\citeA{miyazaki1} は日本語の会話を特徴付ける言語表現を基礎的に分析し，
部分的に言い換えることで会話を特徴付ける技術を開発した．また \citeA{miyazaki2} は，日本のフィクションの登場人物の言語的特徴のカテゴ
リーを報告した．さらに会話の特徴づけやバリエーションを豊かにする方法と
して，各文の機能部分を対象人物に適した確率で言い換えて，読者が対話者の
特徴づけを理解できるかどうかを確認する実験を行った\cite{miyazaki3}．ま
た，日本の架空の人物の発話を特徴付けるために，日本語の音変化表現に着目
し，これらの表現を収集し，分類した研究もある\cite{miyazaki4}．さらに，
\citeA{Okui} は，日本語の対話システムにおいて，ポインタ生成機構
を用いて，複数の異なるキャラクタの応答を参照し，様々な応答を生成した．
彼らは，少ないデータ量で応答の特徴付けを学習した．また \citeA{kishino} の研究では，SentencePieceを用いて単語分割を行い，TFIDFを用いてキャラクタの特徴と考えられる単語を抽出した．

また，意味を保持したまま，テキストのスタイルを変換する「テキストスタイ
ル変換」の研究も本研究と関係がある．キャラクタ性を変換する論
文\cite{miyazaki1}をはじめとして，シェークスピアの時代の文への変
換\cite{jhamtani-etal-2017-shakespearizing} や，散文調への変
換\cite{prose}，さらにテキスト音声合成を目的とした，流暢性や方言の変換
を行った研究\cite{yoshioka}がある．彼らの研究では，人手により意味を保持したま
まキャラクタ性の削除の処理を行い，そのデータを利用してT5を用いて自動的
なテキストスタイル変換を利用している．T5 を利用している点で本研究と類似しているが，
本研究では最終的に特定のキャラクタの発話の言語モデル作成を目的としている点が異なっている．
またスタイル変換の研究としては \cite{liu-etal-2021-learning} もある．彼らは変換の正解率，内
容の保存の正確性，流暢さといった異なる側面を考慮した報酬関数を利用して
訓練を行うことでこれを実現している．

本論文の提案するキャラクタらしい文を生成する手法は，キャラクタの特性を条件とした文生成の研究とも
見なせるため，条件付き文生成 (conditional text generation) の研究の一つとも捉えられる．
\citeA{ficler-goldberg-2017-controlling}は，再帰的ニューラルネットワー
クに，望ましいテキストの性質を文脈ベクトルとして与えることで，条件付き
文生成を行う手法を提案している．彼らは映画のレビューのドメインにおいて，
比較的細かい条件のコントロールを行うことを可能にした．
\citeA{duan-etal-2020-pre}は条件表現のモジュールとテキスト生成のモジュー
ルを切り離すモデルを提案した．こうすることで，新たな条件が加わった際の
学習の手間を減らすことができる．我々は，GPT-2 や T5 の既存公開済みモデルを活用する
ことで，キャラクタらしい文を生成する手法を採った．

また，本論文はキャラクタの個性を反映した応答生成の研究とも関連がある．
\citeA{zhang-etal-2018-personalizing} は対話システムに発話者の個性を
持たせることを目的に Persona-Chat と呼ばれるキャラクター設定が記されたデータベースを構築した．
これは約 5 文ずつ与えられた 2 人のクラウドワーカー同士のマルチターンの対話で構成されている．
実験により Persona-Chat データベースから学習した対話システムは，より魅力的であることを示した．
\citeA{kasahara-etal-2022-building}は
与えられたキャラクター設定に沿った発話を行うモデルを，
事前学習済み言語モデルを Prompt-Tuning することで構築し，
Fine-Tuning によるモデルとの比較を行っている．
\citeA{li2016persona}は発話スタイルやキャラクタの背景などの個別のキャ
ラクタ性を分散表現としてとらえることで応答生成を行う手法を提案している．
彼らは LSTM による応答生成モデルを訓練する際，発話者 ID を入力し，発話者の
分散表現を同時に学習することでこれを実現した．
また，\citeA{roller-etal-2021-recipes}はオープンドメインのチャットボットを
作る際に，どのようなモデルがよいのかを比較した．そこではネット
ワークアーキテクチャの種類（検索方式，生成方式，検索後に修正する方式）
の優劣や学習用の損失関数，データについて調査している．
\citeA{li2016persona}は
話者の一貫性の問題を扱うための persona-based model を提案している．
そこではモデルの学習の際の一つの工夫として，発話文の文頭にその発話者の名前を付与する操作を行っている．
本論文でもその操作を取り入れる．
なおこの発話者名を入力文に追加する手法は，機械翻訳における Tagged back-translation \cite{caswell-etal-2019-tagged}と等価である．
この手法により人手翻訳と機械翻訳による擬似データをタグで区別することで，良質
なモデルを学習できることが知られている．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3
\section{提案手法}

本章では 3.1節で提案手法の全体像を説明する．
提案手法の核となるのは，発話者別の言語モデルを構築するために，その発話者に対する2種類の擬似データ
（擬似データ (1) と擬似データ (2)）を作成する部分である．
本論文ではこれら擬似データを作成するために，一般－対象変換モデルと対象－一般変換モデルの 2 種類の
モデルを構築している．これら変換モデルの構築方法を3.2節で述べる．
また上記変換モデルを学習するために，各発話者の発話の集合から訓練データの元になる
発話文を抽出する方法を 3.3節で述べる．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.1
\subsection{T5によるデータ拡張を用いた特定キャラクタ風発話の言語モデルの構築}\label{T5によるデータ拡張を用いた特定キャラクタ風発話の言語モデルの構築}

本研究では DAPT と TAPT の手法を用いて特定キャラクタ風発話の言語モデルの構築を行う．
DAPTとはDomain-Adaptive Pretrainingの略であり，ターゲットが属するドメインのデータで
訓練を行うものである．
TAPTとはTask-Adaptive Pretrainingの略であり，対象のタスクのデータで訓練を行うものである．
DAPT + TAPTの訓練方法とは，既に一般的なコーパスで事前学習された言語モデルに対し，
対象のドメインのデータで追加の事前学習を行い，さらに対象のタスクのデータで追加の事前学習を
行う方法である\cite{Suchin}．
本研究では，特定キャラクタ風発話を行う言語モデルを構築することを目的としているため，
TAPTに用いる「対象のタスクのデータ」を，特定キャラクタの発話とする．
DAPTに用いる「対象の属するドメインのデータ」には，そのキャラクタの発話のほかに，
そのキャラクタの発話を抽出した作品と同一の作品（以降，同一作品と表記する）の
別の登場人物の発話を利用する．
本研究ではさらに，同一作品の別の登場人物の発話を対象の発話者風の発話に変換して，
対象の発話者の発話の擬似データを作成する．
この擬似データの作成により，対象の発話者の発話を増補したとみなすことができる．
本研究では，このデータを追加の訓練データとすることで，対象の発話者の発話の言語モデルの性能を上げるこ
とを試みる．ここで対象の発話者風の発話への変換には対象発話者ごとに 2 つの T5 モデル（「一般－対象変換モデル」と「対象－一般変換モデル」）を構築した．具体的な構築方法は 3.2 節で述べる．

本研究における擬似データの作成手順（Step-1 から Step-5）を以下に述べる，

\begin{description}
      \item[Step-1] 各発話者の発話の集合から，ある基準で 100 発話文を取り出し，それらを一般的な発話文に人手により変換し，発話者ごとの対訳データを作成する（図\ref{fig1-1}）．
この100 発話文の選び方は 3.3 節で述べる．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F1
\begin{figure}[t]
\begin{center}
\includegraphics{31-3ia9f1.pdf}
\end{center}
\caption{人手による対訳データの作成}
\label{fig1-1}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item[Step-2] Step-1 で作成した対訳データを用いて，一般的な発話文から対象の発話者風の発話文へ変換する T5 モデルを構築する（図\ref{fig1-12}）．このモデルを\textbf{一般－対象変換モデル}と名付ける
\footnote{一般－対象変換モデルの具体的な構築方法は 3.2 節で述べる．}．
本実験では発話者は 7名いるので，7つの一般－対象変換モデルが作成される．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F2
\begin{figure}[t]
\begin{center}
\includegraphics{31-3ia9f2.pdf}
\end{center}
\caption{一般－対象変換モデルの学習}
\label{fig1-12}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\item[Step-3] 対象発話者以外の 6 名の発話者各々には Step-1 で構築した一般的な発話文が存在する．それら一般的な発話文を集め，対象発話者の一般－対象変換モデルを利用して，対象発話者風の発話に変換する．
この操作により作成された発話文を\textbf{擬似データ (1)}とする（図\ref{fig1-2}）．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F3
\begin{figure}[t]
\begin{center}
\includegraphics{31-3ia9f3.pdf}
\end{center}
\caption{擬似データ (1)の作成}
\label{fig1-2}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\item[Step-4] Step-1 で作成した各発話者の対訳データを用いて，対象発話者ごとに対象発話者の発話文を一般的な発話文に変換する T5 モデルを構築する（図\ref{fig1-22}）．
このモデルを\textbf{対象－一般変換モデル}と名付ける
\footnote{対象－一般変換モデルの具体的な構築方法は 3.2 節で述べる．}．
本実験では発話者は7名いるので，7つの対象－一般変換モデルが作成される．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F4
\begin{figure}[t]
\begin{center}
\includegraphics{31-3ia9f4.pdf}
\end{center}
\caption{対象－一般変換モデルの学習}
\label{fig1-22}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F5
\begin{figure}[t]
\begin{center}
\includegraphics{31-3ia9f5.pdf}
\end{center}
\caption{擬似データ (2)の作成}
\label{fig1-3}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\item[Step-5] 各発話者の Step-1 で取り出されていない発話集合の中から，ある基準で 100 発話文取り出し，これをその発話者の対象－一般変換モデルを用いて一般的な発話文に変換する．
そのように作成された対象発話者以外の一般的な発話文を集め，対象発話者の一般－対象変換モデルを用いて，対象の発話者風の発話に変換する．この操作により作成された発話文を\textbf{擬似データ (2)}とする（図\ref{fig1-3}）．
またここで変換に利用する発話文を Step-1 で取り出されていない発話文の全てではなく，100 発話文にしているのは
基準を満たさない発話文を変換モデルにより利用して変換しても，最終的に変換された発話文は言語モデルの性能向上に寄与しないと考えたからである．

\end{description}


Step-1 から Step-5 によって構築された擬似データ (1) と (2) を用いて，言語モデルを構築する手順について
述べる（図\ref{fig69}）．
図\ref{fig69} の Step-8 までの処理で作られる言語モデルが本論文の提案手法 1 によるものであり，
Step-9 までの処理で作られる言語モデルが本論文の提案手法 2 によるものである．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F6
\begin{figure}[t]
\begin{center}
\includegraphics{31-3ia9f6.pdf}
\end{center}
\caption{提案手法による言語モデルの構築手順}
\label{fig69}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{description}
      \item[Step-6] 同一作品の全発話者の発話文をドメインのデータとして DAPT の手法で GPT-2 の fine-tuning を行う．

      \item[Step-7] 対象発話者の発話文をタスクのデータとして TAPT の手法で
Step-6 で得られているモデル (DAPT model) の fine-tuning を行う．
なおこの学習の際のモデルの初期値は DAPT model とする．

  \item[Step-8] 対象発話者の発話文をタスクのデータに「擬似データ (1)」を追加して，
Step-7 で得られているモデル (DAPT+TAPT model) の fine-tuning を行う．
なおこの学習の際のモデルの初期値は DAPT+TAPT model とする．
これが本論文の提案手法 1 となる．

  \item[Step-9] 対象発話者の発話文をタスクのデータに「擬似データ (1)」と「擬似データ (2)」を追加して，
Step-8 で得られているモデル (Ours1 model) の fine-tuning を行う．
なおこの学習の際のモデルの初期値は Ours1 model とする．
これが本論文の提案手法 2 となる．

\end{description}

なお，Step-6 から Step-9 において初期のモデルを fine-tuning する際は，\cite{li2016persona}の手法にならい，
入力となる発話文に発話者の名前を付与した．例えば発話者「アイラ」の発話文に以下がある．

「さあアルスわたしたちはわたしたちの旅を続けましょう。」

この発話文は以下のように ``発話者名：'' を文頭に付与する。

「アイラ:さあアルスわたしたちはわたしたちの旅を続けましょう。」

``発話者名：'' は訓練データ，検証用データ，テストデータまた増補されたデータの全てに付与する．
ただし検証用データやテストデータからパープレキシティを測る場合，他手法と公正に比較するために ``発話者名：'' の部分の出現確率はパープレキシティの計算には
含めていない\footnote{含める方がパープレキシティの値は低くなるので，この処理は unfair な処理ではない．}．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.2
\subsection{T5による発話文変換モデルの構築}
訓練データを増補するため，以下の2種類のT5モデルを作成した．\\

\begin{enumerate}
      \item \textbf{一般－対象変換モデル}：一般的な発話を対象発話者風の発話に変換する．対象発話者の発話を一般の発話に修正したものを入力，修正前の対象発話者の発話を出力として訓練した．

      \item \textbf{対象－一般変換モデル}：対象発話者の発話を一般的な発話に変換する．対象発話者の発話を入力，
    その発話を一般の発話に修正したものを出力として訓練した．
\end{enumerate}

一般－対象変換モデルは，まず対象の発話者の発話からTFIDFを求め，それを用いてより対象キャラクタの特徴を捉えていると考えられる発話を100発話抽出した．詳しい抽出方法は\ref{TFIDF}節で述べる．抽出した100発話を，そのキャラクタの特徴をなくした一般的な発話に手作業で修正した．
この修正により得られた一般的な 100 発話を入力データ，対象の発話者の発話を出力データとして T5 モデルの訓練を行った．なお，100 発話のうちランダムに選んだ 90 発話を訓練データ，残りの 10 発話を検証用データとして利用し，得られた T5 モデルが一般－対象変換モデルである．対象発話者は7名になるので，7つの一般－対象変換モデルが構築される\footnote{ただし実験では発話者「フォズ」の発話文が 100 に満たないので，40 発話を学習データ，10 発話を検証用データとした．}．また対象－一般変換モデルは一般－対象変換モデルで利用した訓練データおよび検証用データの入出力を逆にすることで得られる．


ここでの一般的な発話とは，性別，年代，人物像を想像させないような発話である．例えば，対象発話者であるキャラクタの一人称である「あたし」から「私」，発話の末尾につけられる口癖である「だわ」や「よね」から「です」に修正することで作成した．これは「私」や「です」の方が使用者として考えられる人物や使われるシチュエーションが広いと考えられるからである．ここでの修正作業はルールに基づいたものではなく，筆者の主観で行われた．また修正に際して，砕けた雰囲気からフォーマルな雰囲気になる，元の発話は語気の強いものだが，それがなくなるなど，若干のニュアンスが変わることは容認した．これは発話の持つ雰囲気が発話者の雰囲気でもあると考えたためである．「あら」や「まぁ！」のような感嘆詞はキャラクタの特徴を表していると考えたが，代わりの一般的な表現が思いつかなかったこと，無くても発話の意味が変わらないことから削除した．また，ここで作成している一般的な発話文は元の発話文の内容は変更していないために，構築される変換モデルは基本的にはスタイル変換のモデルと見なせる．
ただし変換モデルにより変換された発話文は言語モデルの fine-tuning のみに利用されるので，発話内容が変化しても問題はないことを注意しておく．

この2つのモデルを用いて変換した発話を言語モデルの fine-tuning に使う際には，も
との発話と長さが大きく異なる場合，変換に失敗している可能性が高いため，
入力の発話の（文字列の）長さによりフィルタリングを行った．
具体的には 4章で説明する式\ref{giji1cont}と式\ref{giji2cont}がフィルタリングの条件となる．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.3
\subsection{T5用の訓練データの抽出方法}\label{TFIDF}

まず本研究で用いるコーパスから全ての実験で用いる検証用データとテストデータを予め取り除いておく．
具体的にはコーパス中の各発話者の発話集からランダムに1割を取り出し，
その 1/5 を検証用データ，4/5 をテストデータに設定した．
この検証用データとテストデータを除いた発話文が実験で利用する訓練データとなる．
本節では T5 のモデルの学習用の訓練データを抽出する方法を述べるが，
抽出のもとになるデータは上記の訓練データであることを注意しておく
\footnote{具体的な各発話者に対する訓練データ，検証用データ，テストデータの発話文数は\mbox{表\ref{giji_jikken_data}}に示している．}．

T5 の訓練に用いる発話データは，よりキャラクタの特徴を含んだものがよいと考え，
TFIDF を利用して訓練データの中から T5 の学習データを抽出した．

キャラクタの特徴を含んだ発話を選ぶのに，TFIDF を利用する理由を簡単に述べる．
あるキャラクタの発話内の単語に対する TFIDF 値は，
そのキャラクタが頻繁に使う単語という TF の観点と，
他のキャラクタの発話では使われない単語であるが，
そのキャラクタでは使われる単語という
そのキャラクタに対する特異性を表す IDF の観点とを併せ持った値である．
そのためあるキャラクタの発話内の単語の TFIDF 値の平均値は，
その発話に対するそのキャラクタの特徴の度合いを表していると見なせるからである．
また\citeA{kishino-2022-9}はランダムに選択するよりも TFIDF を用いて選択した方が
最終的な言語モデルの性能が高いことを示している．

TFIDF 値の具体的な計算方法を以下に述べる．
まず，対象の発話をそれぞれ T5 で用いられているトークナイザーを用いて単語に分割した．
そして単語ごとに以下の式でTFIDF値を求めた．
以下の式の $tf(t,d)$ が発話 $d$ のサブワード $t$ における tf値である．
なお $\sum_{s\in d}n(s, d)$ は発話 $d$における全サブワードの総出現回数を表す．

\begin{equation}
\mathit{tf}(t,d) = \frac{n_{(t,d)}}{\sum_{s \in d}^{} n_{(s,d)}}
\end{equation}

また以下の式の $idf(t)$ が発話 $d$のサブワード$t$におけるidf値である．
なお $N$は総発話数，$df(t)$ はサブワード$t$が出現した発話数を表す．

\begin{equation}
\mathit{idf}(t) = \log \frac{N}{\mathit{df}(t)}
\end{equation}

TFIDF値はtf値とidf値を掛け合わせることで求められる．ここでTFIDF値が高い単語はそのキャラクタの特徴を表していると考える．

\begin{equation}
\mathit{TF}\mathit{IDF} = {tf}(t,d) * \mathit{idf}(t)
\end{equation}

続いて，これらの単語のTFIDF値を用いて発話ごとの平均TFIDF値を求める．これは発話内に出てくるTFIDF値の合計を出現単語数で割ることで得た．平均TFIDF値が高い発話ほどキャラクタの特徴を含んだ発話と考え，平均TFIDF値が高い上位100発話をモデルの訓練および検証用データに利用した．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4
\section{実験（変換モデルの学習と擬似データの構築）}
本論文では発話者の特徴を有した発話文を生成するために，その発話者の言語
モデルを構築している．そしてその構築のために発話者の擬似的な発話文を生成する手法を提案している．
また提案手法の他に DAPT+TAPT や発話文に発話者の名前を付与する手法も組み合わせている．
本章（4章）の実験では，本論文の提案手法（擬似的な発話文を生成する手法）だけを利用したときの言語モデルの性能向上について調査し，次章（5章）の実験では，本論文の提案手法の他に DAPT+TAPT と
発話文に発話者の名前を付与する手法を組み合わせたときの言語モデルの性能向上について調査する．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.1
\subsection{一般－対象変換モデルの学習と擬似データ (1) の構築}
発話者は 7 名存在する．今，対象発話者を\( X \)とすると，
前述したように\( X \)の発話集合の中から平均TFIDF値の高い 100 発話文を取り出し，
その中から 10発話文をランダムに取り出し，それを
一般－対象変換モデルの学習のための検証用データとし，
残り 90 発話文を一般－対象変換モデルの訓練データとした
\footnote{ただし発話者「フォズ」の発話は 68 文しかないため，平均TFIDF値の上位 50 文を取り出し，
  40文を訓練データ，10文を検証用データとした．}．
これらのデータを用いて，ベースとなる既存の日本語 T5 モデルを fine-tuning することで\( X \)の一般－対象変換モデルを構築した．

具体的にベースとなる日本語 T5 モデルには sonoisa/t5-base-japanese\footnote{\url{https://huggingface.co/sonoisa/t5-base-japanese/discussions}（モデルのパラメータ数は 296,926,464）．} を利用した．
バッチサイズは 2 とした．また学習で用いた最適化関数は\verb|AdamW|であり，学習率は\verb|lr=3e-4|とした．
また\verb|get_linear_schedule_with_warmup|を用いた学習率スケジューリングも行った．
また検証用データを利用して\verb|patience=5|とした EarlyStopping を行った．
具体的に学習に利用したパラメータは付録Aに記載する．

次に構築した\( X \)の一般－対象変換モデルを利用して\( X \)の擬似データ (1) を生成する．

発話者は 7 名存在するので，前述したように\( X \)以外の 6名の発話者から計 600 発話の一般的な
発話文が利用できる\footnote{ただし「フォズ」の発話は 50発話しか利用できないため，
  「フォズ」の一般－対象変換モデルに適用するデータは 600発話だが，
  「フォズ」以外の発話者の一般－対象変換モデルに適用するデータは 550発話である．}．
この収集した一般的な発話文に対して，先ほど構築した\( X \)の一般－対象変換モデルを利用して，
\( X \)に対する擬似データ (1) を作成する．

一般－対象変換モデルを用いて，入力文から生成文を作成するには T5 モデルの
\verb|generate|メソッドを利用した．\verb|generate|メソッドのパラメータは
\verb|repetition_penalty| を \verb|10.0| とした以外は default の設定を用いた．

また一般－対象変換モデルにより生成された文の長さ\footnote{本論文での「文の長さ」とは「文の文字数」である．}が極端にもとの文の長さと異なっている場合は，
生成に失敗していると考え，発話の（文字列の）長さによるフィルタリングを行った．
具体的には入力文の長さ\( L \)としたとき出力文の長さ\( L' \) に以下の条件を課している．

\begin{equation}\label{giji1cont}
0.8*L < L' < 1.3*L
\end{equation}

各発話者に対して得られた擬似データ (1) の発話数を\mbox{表\ref{tab-data21}}に示す．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T1
\begin{table}[t]
\input{09table01.tex}
\caption{発話者ごとの入力発話数に対して構築できた擬似データ (1) の発話数}
\label{tab-data21}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2
\subsection{対象－一般変換モデルの学習と擬似データ (2) の構築}
対象－一般変換モデルに対する学習用データと検証用データは，
一般－対象変換モデルの訓練データと検証用データの入出力を逆にすることで得られる．
モデルの学習に用いたベースとなる日本語 T5 モデルや学習時のパラメータは全て一般－対象変換モデルの学習時のものと同じものを利用した．

先に構築している発話者\( X \)の一般－対象変換モデルとここで構築した\( X \)の対象－一般変換モデルを組み合わせることで，擬似データ (2) を構築する．

発話者\( X \)の擬似データ (2) の構築手順を述べる．
まず\( X \)以外の 6名の発話者\( Y_i \)の発話集合の中で，
平均 TFIDF 値の順位 101 から 200 の 100発話を\( Y_i \)の
対象－一般変換モデルを利用して一般的な発話文に変換する．
ただし発話者「フォズ」の発話が 68 発話しかないため，順位 101 から 200 に対応するデータは存在しないことと，
「リーサ姫」の発話は 135 発話しかないため，順位 101 から 200 に対応するデータは 35 発話となっている．
このことから「フォズ」の擬似データ (2) を作成するためのもとになる発話文は 535発話，
「リーサ姫」の擬似データ (2) を作成するためのもとになる発話文は 500発話，
そしてそれ以外の発話者の擬似データ (2) を作成するためのもとになる発話文は 435発話となる．

上記手順で収集した擬似データ (2) を作成するためのもとになる発話文は，
各々の発話文の発話者\( Y_i \)の対象－一般変換モデルを利用することで，
一般的な発話文に変換する．

また\( Y_i \)の対象－一般変換モデルを利用して，一般的な発話文を作成する際にも
発話の（文字列の）長さによるフィルタリングを行った．
具体的には入力文の長さ\( L \)としたとき出力文の長さ\( L' \)に以下の条件を課している．

\begin{equation}\label{giji2cont}
25 < L' < 1.3*L
\end{equation}

これは対象－一般変換モデルで利用する元の発話文に短い発話が多く，
最終的に短い発話を言語モデルの fine-tuning に利用するのは逆効果になると予想できたからである．
更に擬似データ (2) を作成するために発話者\( X \)の一般－対象変換モデルを利用する際には，
再度\mbox{式\ref{giji1cont}}の制約を課していることにも注意する．

最後に発話者\( Y_i \)の対象－一般変換モデルから得た一般的な発話文を収集し，
それを\( X \)の一般－対象変換モデルで利用することで，\( X \)の擬似データ (2) が作成できる．

各発話者に対して得られた擬似データ (2) の発話数を\mbox{表\ref{tab-data22}}に示す．
また表\ref{tab-data22}には発話文の長さの平均も記す．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T2
\begin{table}[t]
\input{09table02.tex}
\caption{発話者ごとの入力発話数に対する擬似データ (2) 発話数}
\label{tab-data22}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


擬似データ (2) のデータ数が擬似データ (1) のデータ数と比べて少ないのは，
擬似データ (1) はフィルタリングの処理を1回かけているのに対し，擬似データ (2) は 2回かけているからである．
また擬似データ (2) のもとになる発話文は，平均 TFIDF 値の順位 101 から 200 の発話文であるため
短い発話も多く\mbox{式\ref{giji2cont}}の制約が強く影響していたためである．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.3
\subsection{擬似データの有効性}\label{擬似データの有効性}
ここでは先に構築した発話者\( X \)の擬似データ (1) 及び擬似データ (2) が\( X \)の言語モデルの改善に
有効に利用できることを示す．この手順を以下に示す．

\begin{enumerate}
      \item \( X \)の訓練データを用いてベースとなる言語モデルを fine-tuning することで\( X \)の言語モデル\( M0_{X} \)を構築する．
      \item \( X \)の訓練データ + 擬似データ (1) を用いて\( M0_{X} \)を fine-tuning することで言語モデル\( M1_{X} \)を構築する．
      \item \( X \)の訓練データ + 擬似データ  (1) + 擬似データ(2)を用いて\( M1_{X} \)を fine-tuning することで言語モデル\( M2_{X} \)を構築する．    
\end{enumerate}

最終的に得られた言語モデル\( M0_{X}\)，\( M1_{X}\)，\( M2_{X}\)の（\( X \)のテストデータに対する）パープレキシティを測ることで，擬似データ (1) と擬似データ (2) の有効性を示す．

上記手順の (1) におけるベースとなる言語モデルがあるが，ここでは
りんな社による rinna/{\linebreak}japanese-gpt2-medium\footnote{\url{https://huggingface.co/rinna/japanese-gpt2-medium}（モデルのパラメータ数は 368,896,000）}
を利用した．
上記手順における各発話者の訓練データ及び検証用データを\mbox{表\ref{giji_jikken_data}}に示す．
また\mbox{表\ref{giji_jikken_data}}には\( X \)の言語モデルのパープレキシティを測るためのテストデータ
の数も示す．
なおこのデータは，基本的に，各発話者の全発話の 90\%を訓練データ，2\%を検証用データ，
8\%をテスト用データとすることで作成している．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T3
\begin{table}[t]
\input{09table03.tex}
\caption{キャラクタごとの訓練・検証用・テストデータの数}
\label{giji_jikken_data}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


またベースとなる GPT-2 及び\( M0_{X}\)を fine-tuning する際，最適化関数には SGD を利用した．
また，学習率は 0.01 とした．
また，検証用データを利用して，patience が 3 の EarlyStopping を行った．
また\( M1_{X}\)を fine-tuning する場合の設定も上記と同じである．

得られたパープレキシティを\mbox{表\ref{giji_jikken_kekka}}に示す．
なお \mbox{表\ref{giji_jikken_kekka}}の GPT-2 と \( M0_{X} \) は，次章で示す
本論文の実験結果である\mbox{表\ref{tab-ppl_per_method_char}}の (1) Original と (2) TAPT に
対応するものであり，それらの値は同じであることを注意しておく．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T4
\begin{table}[b]
\input{09table04.tex}
\caption{擬似データを用いたモデルのパープレキシティ}
\label{giji_jikken_kekka}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\mbox{表\ref{giji_jikken_kekka}}において，平均のパープレキシティには
以下の関係が成り立っており，擬似データが言語モデルの改善に有効に利用できることがわかる．
\[
    M2_{X}  <  M1_{X} <  M0_{X} 
\]

上記の関係について有意性を確認しておく．まず\( M1_{X} <  M0_{X} \)の有意性を確認するために，
発話者\( X \)に対して実験で取り出した擬似データ (1) の 8 割をランダムに取り出し，
そのデータに\( X \)の訓練データを合わせて，\( M0_{X} \)を fine-tuning することで
言語モデル\( M1^{t}_{X} \)を構築し，\( X \)のテストデータでパープレキシティを測る．
この実験を 5 回行い平均のパープレキシティを算出し，
片側 5\% の t 分布の検定から\( M1_{X} \) と \(  M0_{X} \)の有意差を調べた
\footnote{ここでの検定の考え方を注記しておく．まず擬似データが言語モデルの改善に役立っていない（パープレキシティが変化しない）を帰無仮説とする．この場合，訓練データの8割（あるいは 9割）をランダム取り出し，擬似データを使って言語モデルの改善を行った場合，実験で得られるパープレキシティの分布は正規分布となり，しかも帰無仮説を仮定すればその平均値と元の言語モデルのパープレキシティとの差は有意差の範囲内に収まると考えられる．そのため t-分布の検定から有意性を確認した．}．
結果を\mbox{表\ref{giji_kentei1}}に示す．
「\( M1^{t}_{X} \)」の行は発話者\( X \)に対する実験 5回の平均のパープレキシティであり，
「標準偏差」の行は実験 5回のパープレキシティの標準偏差である．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T5
\begin{table}[b]
\input{09table05.tex}
\caption{\( M1_{X} <  M0_{X} \)の有意性の検定}
\label{giji_kentei1}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


フォズ，ガボ，マリベルの 3名に関しては有意差はなかったが，他の発話者には有意差があり，
7名の平均値に関しても有意差があり，\( M1_{X} <  M0_{X} \)は有意であると考えられる．

この実験に関して，\( M1^{t}_{アイラ} \)の値が\( M1_{アイラ} \)の値よりも小さく，また\( M1^{t}_{メルビン} \)の値が{\linebreak}\( M0_{メルビン} \)の値よりも大きい．これは擬似データ (1) の中にはパープレキシティを改善せずに逆に改悪するデータが含まれていることを意味している．

次に\( M2_{X} <  M1_{X} \)の有意性を確認するために，
発話者\( X \)に対して実験で取り出した擬似データ (2) の 9 割\footnote{擬似データ (1) では 8割であったが，
  擬似データ (2) はデータ数が少量であるため 9 割としていた．}をランダムに取り出し，
そのデータに\( X \)の訓練データと擬似データ (1) を合わせて，\( M1_{X} \)を fine-tuning することで
言語モデル\( M2^{t}_{X} \)を構築し，\( X \)のテストデータでパープレキシティを測る．
この実験を 5 回行い平均のパープレキシティを算出し，
片側 5\% の t 分布の検定から\( M2_{X} \) と \( M1_{X} \)の有意差を調べた．
結果を\mbox{表\ref{giji_kentei2}}に示す．
「\( M2^{t}_{X} \)」の行は発話者\( X \)に対する実験 5回の平均のパープレキシティであり，
「標準偏差」の行は実験 5回のパープレキシティの標準偏差である．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T6
\begin{table}[b]
\input{09table06.tex}
\caption{\( M2_{X} <  M1_{X} \)の有意性の検定}
\label{giji_kentei2}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


リーサ姫に関しては有意差があったが，他の発話者には有意差はなく，
7名の平均値に関しても有意差はなく，\( M2_{X} <  M1_{X} \)の有意性は認められなかった．

この実験では \( M2^{t}_{メルビン} \)の値が\( M1_{メルビン} \)の値よりも大きいことから，
メルビンの擬似データ (2) の中にはパープレキシティを改善せずに逆に改悪するデータが含まれていることがわかる．
他の発話者 6名に関しては\( M2^{t}_{X} \leq  M1_{X} \)の関係が成立している．
特にガボ，キーファ，マリベルに関しては\( M2^{t}_{X} =  M1_{X} \)となっている．
これはこの 3名の擬似データ(2) がモデルの改善に無益であったことを示している．
ただし\( M2^{t}_{X} \)を学習する際に\( M1_{X} \)のモデルを初期値としている点と
擬似データ (2) のデータ数が少量である点から，パープレキシティを改悪するまでにはならなかったと考えられる．
以上のことから以下の点が言える．
擬似データ (2) は\( M1_{X} \)を改善する場合もあるが，多くの場合は改善しない．
ただし改悪する場合もほとんどないために，全体としてみるとわずかに改善に役立っていると考えられる．


なお疑似データ (2) は少量であることから，
追加データが不用意に少なくなっている懸念もあるが，
6.3 節において疑似データ (2) を作成するためのフィルタリングを行わずに，
疑似データ (2) を増やした実験を行い，フィルタリングの効果を確認している．
そのためフィルタリングのために疑似データ (2) が不用意に少なくなっているとは考えていない．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5
\section{実験（発話者の言語モデルの構築）}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.1
\subsection{発話者の言語モデルの学習}

ここでは各発話者に対して提案手法も含めた 8 通りの言語モデルを構築し，
各言語モデルのパープレキシティを測ることで提案手法の有効性を示す．

以下に，8通りの言語モデルとその構築方法の概要を示す．\\

\begin{enumerate}
\item \textbf{Original:} オリジナルのGPT-2
\item \textbf{TAPT:}「対象の発話者の発話」のみで fine-tuning 
\item \textbf{DAPT:}「全発話者の発話」で fine-tuning 
\item \textbf{DAPT + TAPT:}「対象の発話者の発話」で DAPT モデルを fine-tuning 
\item \textbf{DAPT\_name:} 発話者の名前を付与した「全発話者の発話」により fine-tuning．既存手法に対応．
\item \textbf{DAPT + TAPT\_name:} 発話者の名前を付与した「対象の発話者の発話」で DAPT\_nameモデルを
fine-tuning．DAPT + TAPTと既存手法のハイブリッド．
  \item \textbf{Ours1:} 発話者の名前を付与した擬似データ (1) と「対象の発話者の発話」で DAPT + TAPT\_name モデルをfine-tuning．提案手法1．
  \item \textbf{Ours2:} 発話者の名前を付与した擬似データ (1) および (2) と「対象の発話者の発話」で Our1 のモデルをを fine-tuning．提案手法2．\\
\end{enumerate}

具体的に「対象の発話者の発話」は\mbox{表\ref{giji_jikken_data}}に示した各発話者の訓練データに対応し，
「全発話者の発話」は\mbox{表\ref{giji_jikken_data}}に示した全発話者の訓練データに対応する．
また各モデルに対する検証用データやテストデータは\mbox{表\ref{giji_jikken_data}}に示されているものである．

また (2) から (8) の実験では言語モデルの fine-tuning を行うが，
その際の最適化関数には SGD を利用した．また学習率は 0.01 とした．
また (2) から (8) の全ての実験を通して，各検証用データを利用して patience が 3 の EarlyStopping を行っている．

また注意として，(2) から (8) のモデルはこの順で構築しており，
各モデルの初期値はそこまでに構築したモデルを利用している．
具体的には (2) TAPT と (3) DAPT と (5) DAPT\_name の初期値のモデルは (1) オリジナルの GPT-2，
(4) DAPT + TAPT の初期値のモデルは (3) DAPT のモデル，
(6) DAPT + TAPT\_name の初期値のモデルは (3) DAPT\_name のモデル，
(7) Ours1 の初期値のモデルは (6) DAPT + TAPT\_name のモデル，
(8) Ours2 の初期値のモデルは (7) Ours1 のモデル，となっている．

なお，発話に「名前:」を付けて訓練する (5)から (8) のモデルについては，
検証用データやテストデータからパープレキシティを測る場合，「名前:」の部分の確率は取り除いて測っている．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.2
\subsection{実験結果}

手法およびキャラクタごとのパープレキシティを
表\ref{tab-ppl_per_method_char}に示す．最も良かった手法を太字で示す．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T7
\begin{table}[b]
\input{09table07.tex}
\caption{手法およびキャラクタごとのパープレキシティ}
\label{tab-ppl_per_method_char}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


表\ref{tab-ppl_per_method_char}において，すべてのキャラクタにおい
て提案手法 (1) あるいは 提案手法 (2) のいずれかが最も良い結果である．
提案手法 (1) と提案手法 (2) を比較すると，
「フォズ」と「ガボ」については提案手法 (1) の方が良い結果であるが，その差は非常に小さい．
また「キーファ」については評価値（パープレキシティ）は同じであった．
それ以外のキャラクタ「アイラ」「マリベル」「メルビン」「リーサ姫」に関しては
提案手法 (2) の方が良い結果である．
評価値の平均から，全体としてみると提案手法 (2) は提案手法 (1) よりも良い結果と言える．
このことから，一般－対象変換モデルと対象－一般変換モデルの 2 つの T5 による変換モデルを
利用してデータ拡張する提案手法が有効であることが分かる．
ただし 4.3 節で行った実験から (6)DAPT + TAPT\_name  と (7)Ours1 には有意差があるが，
(7) Ours1 と (8) Ours2 には有意差がないことを注記しておく．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6
\section{考察}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.1
\subsection{パープレキシティ改善の要因}

手法の性質とパープレキシティを表\ref{tab_property_ppl}に示す．
表中の「対象」「全員」「データ (1)」「データ (2)」「TAPT」「名前」は，そ
れぞれ「対象の発話者の発話の使用」「全発話者の発話の使用」「疑
似データ (1) の使用」「擬似データ (2) の使用」「TAPTの使用」「発話者の名前
をデータに付与」の略記である．また，表中の「PPLの差」は，ひとつ上の手法
とのパープレキシティの差分を表している．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T8
\begin{table}[b]
\input{09table08.tex}
\hangcaption{手法の性質とパープレキシティ (PPL)．表中の \Checkmark は「使用」を意味し，空白は「未使用」を意味する．}
\label{tab_property_ppl}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


表\ref{tab_property_ppl}を参照しながら，手法のどのような性質がパープレキシティに影響しているのかを考察する．まず，(1) Originalと(2) TAPTの差が最も大きな差であることから，対象発話者の発話の使用 (TAPT) が，GPT-2にキャラクタらしい発話をさせるのに最も有用な性質であることが分かる．(3) DAPTモデルと(4) DAPT + TAPT の差も，対象発話者の発話の使用 (TAPT) の有無だけであるが，2番目に大きな改善が，この2つの差であることも，TAPTの重要さを裏付けている．

3番目に大きな改善は (2) TAPT と (3) DAPT の差であるが，この差は同一作品の対象発話者以外の発話の使用である．(4) DAPT + TAPT と (5) DAPT\_name の差は，(a) TAPT を利用するか否かと (b) 発話者の名前を入力データに付与してシステムに与えるか否かの2点である．(5) DAPT\_name の方が良いということは，同一作品の発話者の発話を訓練データとして使用する際は，対象発話者ごとに発話者のデータをもう一度与えてパラメータ調整するTAPTよりも，発話者の名前を入力データに付与してシステムに与え，キャラクタ共通の検証用データでパラメータ調整を行う方が効果的であるということが分かる．これは，データごとに発話者の名前の情報をシステムに与えることによって，発話者7名のデータがそれぞれ別のキャラクタによる発話であるという情報をシステムに与えることができているためであると考えられる．(3) DAPT から (5) DAPT\_name の差は3.33，(4) DAPT + TAPT から (6) DAPT + TAPT\_name の差は1.54であった．このことからも，発話者の名前の入力の効果が見て取れる．ただし，TAPT も行った場合の方が，その差は小さくなることが分かる．

次に，(5) DAPT\_name から (6) DAPT + TAPT\_name の差も0.53あることから，DAPT + TAPT の手法と，発話者の名前を入力データに付与する手法は，併用できることが分かる．

最後に，T5 による一般－対象モデルによるデータ拡張，そして， T5 による同作品－一般変換モデルと一般－対象モデルを用いたデータ拡張についても，それぞれ有効であり，また，これまでのすべての手法と併用することで，最も良い結果となることが分かる．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.2
\subsection{生成文の主観評価}
モデルが出力する生成文を被験者 4 名に協力してもらい，主観的な評価を行った．

まず発話者\( X \)のテストデータからランダムに発話を取り出し
\footnote{発話者「フォズ」に関してはテストデータが少ないので，検証用データも含めて
  取り出した．}，
その発話の文頭から数単語を各モデルに与えて後続する単語列を出力させることで
生成文を作成する．
なお文頭からの数単語は 10文字程度になることを目安に取り出している．

例えば\( X = アリス\) のテストデータには以下の発話がある．

「わたしたちは今までこいつにさんざんふりまわされてきたってわけね。」

この発話の文頭からの数単語として，「わたしたちは今まで」を取り出す．
この単語列「わたしたちは今まで」を実験で得られたアリスの (1) から (8) のモデルに与えて，
生成文を作成する．例えば発話者アリスのモデル (4) では以下のような
生成文が得られる．

「わたしたちは今までずっと旅を続けているのよ。」

(5) から (8) のモデルを利用する場合，モデルに与える文字列の先頭に
``発話者：'' を付与することに注意する．
ただし生成文を人間に評価してもらう際には，先頭に現れる ``発話者：'' は取り除く．

上記の実験において，モデルに与える単語列は 5 つ準備する．
そして発話者\( X \)に対する各モデル (1) から (8) を利用して発話文を生成する．
つまり\( X \)に対して 40 文の発話文が生成される．
そして発話者は 7 名いるので，計 280 個の発話文が生成される．
この 280 個の発話文を主観評価する．

各言語モデルによる生成は GPT-2 モデルの\verb|generate| メソッドを利用した．
またその際のパラメータの設定により生成文の長さ（token 数）が 10 以上 40 以下になるようにし，
生成する文の個数は 1 つにした．具体的なパラメータは付録Bに示す．

また具体的な評価方法を以下に述べる．まず
発話者\( X \)のモデル\( M \)から生成された発話文が 5つ存在する．
被験者には各発話文に対して，\mbox{表\ref{eval}}の 4 種類の評価（◎，○，△，×）のいずれかを与えてもらい，
\mbox{表\ref{eval}}の対応に従って，評価を数値化する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T9
\begin{table}[t]
\input{09table09.tex}
\caption{評価値の意味とその数値化}
\label{eval}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


また評価では各キャラクタごとに行ってもらった．まず対象キャラクタの
対象－一般変換モデルの学習時に用いたその対象キャラクタの 100 発話文を読んでもらい，
そのキャラクタの話し方や言い回しを予め理解してもらった．次に対象キャラクタの各モデルから生成した文をバイアスがかからないようにランダムに並べ変えて提示し，
各々に上記の 4 種類のいずれかの記号を付与してもらい，数値化した．

この主観評価実験により各被験者から各々 280 個の評価結果が得られた．
各被験者から得られた評価結果の一致度合いをみるために Fleiss の Kappa 係数を計算すると 0.403 であった．
また ◎ と ○ の違いは微妙であり，この部分の判定は被験者によって当然バラツキが出るために，
◎ と ○ は同一視して一致度合いをみると，評価結果の Fleiss の Kappa 係数は 0.663 となった．
これらの結果から 4 名の被験者の評価はほぼ一致していると考えられる．

次に各発話者の各言語モデルについて，被験者4名の評価値の平均を求めた．
この結果を\mbox{表\ref{syukan_eval}}に示す．
\mbox{表\ref{syukan_eval}}は各発話者の各モデルに対して，被験者4名の評価値の平均が記載されている．
また各モデルに対して生成される発話文は 140 文あるが，その中で評価値が 3 以上の文の総数を
平均の評価値の下にカッコ書きで記した．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T10
\begin{table}[t]
\input{09table10.tex}
\caption{手法およびキャラクタごとの主観評価値}
\label{syukan_eval}
{\vskip 5pt}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


評価値が 3.0 以上であれば，ほぼ妥当な文が生成できていると考えられる．
特に (6)，(7)，(8) の言語モデルの評価値の平均はどれも 3.3 以上の値を取っていることから，
提案手法により構築された言語モデルがほぼ妥当な文を生成できることがわかる．

またパープレキシティによりモデルを良い順に並べると，
\begin{verbatim}
  (8) > (7) > (6) > (5) > (4) > (3) > (2) > (1) 
\end{verbatim}
であるが，主観評価によりモデルを良い順に並べると，
\begin{verbatim}
  (7) > (8) > (6) > (5) > (4) > (2) > (3) > (1) 
\end{verbatim}
となり，(2) TAPT と (3) DAPT 及び (7) Ours1 と (8) Ours2 が逆転している．
これは評価値 3 以上の総数から評価してもこの逆転の現象が生じている．
(3) DAPT は文頭の数単語から発話者が特定できなければ，文としては正しいが，
その発話者らしい文を生成するとは限らない点から，(2) TAPT の評価値よりも劣ったと考えられる．
また (7) Ours1 と (8) Ours2 のパープレキシティの差はわずかであることから，
実際の生成文での主観評価が逆転したのだと考えられる．

また (6)，(7)，(8) の言語モデルの中で，発話者「ガボ」の (8) の言語モデルの主観評価値だけが
3 を割っている．これは文頭「この町おもしろかった」を与えたときの (8) の言語モデルの生成文が
「この町おもしろかったなあ。オイラも行ってみたかったなあ。」であり，この生成文の評価値が 4名とも ×  を与えたことが大きな原因である．
この生成文は 2 つの文からなり，それぞれの文は「ガボ」の発話と見なせるが，
1文目の「この町おもしろかったなあ。」ということはその町に訪れた感想であるのに，
2文目の「オイラも行ってみたかったなあ。」はその町に訪れていないことを意味しているため × が与えられた．
なお文頭「この町おもしろかった」に続く (6) や (7) の言語モデルの生成文は，どちらも
「この町おもしろかったなあ。」であり ○ や ◎ が与えられている．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.3
\subsection{擬似データ作成時のフィルタリングの効果}
本研究では擬似データ (1) と擬似データ (2) の作成時に\mbox{式\ref{giji1cont}}や
\mbox{式\ref{giji2cont}}で示されるフィルタリングを行った．
この効果について調査する．まずフィルタリングを行わない場合，
\mbox{表\ref{tab-data21}}や\mbox{表\ref{tab-data22}}で示される入力発話が
そのまま擬似データ (1) と擬似データ (2) に変換されるため，言語モデルの学習データの数としては
フィルタリングを行わない方が多く，最終の結果はフィルタリングを行わない方が良さそうである．
しかし実際は一般ー対象変換モデルや対象ー一般変換モデルの性能が十分でないことや
変換元の発話文の問題もあり，学習のノイズになるようなデータも
生成されてしまうために，本研究では簡易なフィルタリングを設けている．

まず式 4 で示されるフィルタリングの効果を調査する．
具体的には\mbox{式\ref{giji1cont}}のフィルタリングを行わずに擬似データ (1) を作成し，
\ref{擬似データの有効性}節と同じ実験を行った．結果を\mbox{表\ref{filter_jikken_kekka}}に示す．
表中の\( M1_{X} \)がフィルタリングを行った本研究での結果であり，
\( M1'_{X} \)がフィルタリングを行わない結果である．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T11
\begin{table}[b]
\input{09table11.tex}
\caption{フィルタリングの有無による擬似データ (1) の効果}
\label{filter_jikken_kekka}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


「アイラ」に対してはフィルタリングを行わない方が良い結果を出しているが，「アイラ」以外の発話者
及び7名の平均に対してはフィルタリングを行う方が良い結果であり，\mbox{式\ref{giji1cont}}のフィルタリングは有効であったと言える．
また\( M1'_{X} \)モデルの学習の初期値は\( M0_{X} \)モデルである．
\( M0_{X} \)モデルの平均のパープレキシティが 27.33 であり，
\( M1'_{X} \) が 27.42 である．つまり\mbox{式\ref{giji1cont}}のフィルタリングを行わずに，
擬似データ (1) を作成し，それを学習に使った場合は言語モデルの性能を落とすことになる．

更に\mbox{式\ref{giji1cont}}の他に\mbox{式\ref{giji2cont}}のフィルタリングを行わずに
擬似データ (2) を作成し，
\ref{擬似データの有効性}節と同じ実験を行った．結果を\mbox{表\ref{filter_jikken_kekka2}}に示す．
表中の\( M2_{X} \)がフィルタリングを行った本研究での結果であり，
\( M2'_{X} \)がフィルタリングを行わない結果である．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T12
\begin{table}[b]
\input{09table12.tex}
\caption{フィルタリングの有無による擬似データ (2) の効果}
\label{filter_jikken_kekka2}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


擬似データ (1) の場合と同様，擬似データ (2) の場合も「アイラ」に対してはフィルタリングを行わない方が良い結果を出しているが，「アイラ」以外の発話者及び7名の平均に対してはフィルタリングを行う方が良い結果であり，\mbox{式\ref{giji2cont}}のフィルタリングは有効であったと言える．
また\( M2'_{X} \)モデルの学習の初期値は\( M1'_{X} \)モデルである．
\( M1'_{X} \)モデルの平均のパープレキシティが 27.42 であり，
\( M2'_{X} \) が 27.89 である．つまり\mbox{式\ref{giji1cont}}と\mbox{式\ref{giji2cont}}
のフィルタリングを行わずに擬似データ (2) を作成し，それを学習に使ったことで言語モデルの性能が落ちている．

フィルタリング無しの擬似データ (1) はパープレキシティを 0.09 悪化させたが，
フィルタリング無しの擬似データ (2) はパープレキシティを 0.47 悪化させている．
フィルタリング無しの擬似データ (2) の方が悪化の程度が大きいのは，
擬似データ (1) の場合は1回のフィルタリングを省いているだけだが，
擬似データ (2) の場合は2回のフィルタリングを省いているからだと考えられる．

また擬似データ (1) の発話文の長さの平均は 20.9 であり，擬似データ (2) の発話文の長さの平均は 31.8 であり，
両者には大きな差がある．
そのため擬似データ (2) による性能の向上は，\mbox{式\ref{giji2cont}}のフィルタリングにより
単に発話の長さが 26 文字以上の長い発話文を訓練データに追加したことによるものであり，
本論文で提案した変換モデルは言語モデルの
性能向上に寄与していないのでは，という疑念もある．この点を確認するために，
擬似データ (2) の構築元になる発話の中で発話の長さが 26 文字以上の発話を取り出し，
それを変換モデルで変換せずに，そのまま訓練データに追加した場合の実験を行った．
これは\ref{擬似データの有効性}節で擬似データ (2) の有効性を示した実験において，
擬似データ(2) の代わりに発話の長さが 26 文字以上の発話データを用いた実験の形である．
結果を\mbox{表\ref{25_jikken_kekka}}に示す．
表中の\( M2_{X} \)が擬似データ (2) 追加した本研究での結果であり，
\( M2^{26}_{X} \)が 26 文字以上の発話データを用いた実験である．
\( M2_{X} \)と\( M2^{26}_{X} \)のパープレキシティの値の下にはカッコ書きでデータ数も示した．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T13
\begin{table}[t]
\input{09table13.tex}
\caption{発話長だけのフィルタリングの結果}
\label{25_jikken_kekka}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


実験の結果，キーファ，マリベル及びメルビンに関しては，擬似データ (2) を訓練データに追加するよりも，
単に 26文字以上の長い発話を訓練データに追加する方が良い結果が得られているが，
他の 4 名に関しては擬似データ (2) の方が追加の効果が高い．
また全体の平均をみても擬似データ (2) の方が追加の効果が高い．
この点から本論文の提案した変換モデルは性能の向上に寄与していると考えられる．
更に単に 26文字以上の長い発話を訓練データに追加した場合，学習の初期値のモデルとなる
\( M1_{X} \)よりも性能が落ちている．
このことから単に 26文字以上の発話を訓練データに追加するだけでは，
必ずしも言語モデルの性能が向上するというわけではないことがわかる．
また擬似データ (2) のデータ数と26文字以上の発話のデータ数には大きな差がある．
これは一般－対象変換モデルが長い発話文を短い発話文に変換する傾向があったことを意味している．
\mbox{式\ref{giji2cont}}のフィルタリングは，このような変換文を除くためにも機能している．



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.4
\subsection{今後の課題}

今後の課題として「同領域データの利用」，「ベースとなる言語モデルの調整」，「大規模言語モデルの利用」の3点をあげる．

\bigskip
\noindent
\underline{\textbf{同領域データの利用}}\ \ \  本研究で構築した一般－対象変換モデルを利用すれば，大量に存在する一般的な発話を対象キャラクタの発話に変換できる．そのため大量に作成できる擬似データ (1) を用いることで対象キャラクタの言語モデルの性能を更に高められる可能性がある．しかし \citeA{kishino-2022-9} では「日本語話し言葉コーパス」\footnote{\url{https://clrd.ninjal.ac.jp/csj/index.html}}の発話を対象キャラクタの発話に変換すること
を行っても良い結果が得られないことを示した．言語モデルの性能向上には利用データの発話の領域も重要な要素であると考えられる．
   一方，本実験はゲームソフト内の発話を利用したが，同シリーズのゲーム内の発話は同領域と見なせる．そのため同シリーズのゲーム内の発話を利用することで，更に対象キャラクタの言語モデルの性能を向上させることができると考えている．

\bigskip
\noindent
\underline{\textbf{ベースとなる言語モデルの調整}}\ \ \ 本実験ではベースとなる言語モデルとして rinna/japanese-gpt2-medium を利用したが，他にも多くの強力な言語モデルが存在する．ベースとなる言語モデルを変化させることで提案手法がどの程度有効になるのかを調べることも必要だと考えている．また言語モデルの出力は，パラメータの設定で大きく変化する場合もあり，より適切なパラメータも調査したい．


\bigskip
\noindent
\underline{\textbf{大規模言語モデルの利用}}\ \ \ GPT-3 のような大規模言語モデルでは zero-shot やいくつかの事例を与える In-context learning の枠組みで所望の出力が得られることが知られている．
つまり大規模言語モデルに与えるプロンプトの工夫次第で，対象キャラクタの発話を生成できる可能性は高い．大規模言語モデルの利用と本研究のような中規模の言語モデルの fine-tuning との比較は興味深く，今後，調査していきたい．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7
\section{おわりに}
本研究では，特定の話者の言語モデルを構築する方法を提案した．この
際，対象の発話者の発話をタスクのデータとみなし，対象の発話者の登場する
作品の登場人物の発話をドメインのデータとみなした，DAPT+TAPTの手法を利用した．
また，発話者の名前をデータに付与することで，言
語モデルのパープレキシティが改善することを確認した．その上で，T5 による
一般－対象モデルによるデータ拡張（擬似データ (1) の構築），そして， T5 による対象－一般変換モデ
ルと一般－対象モデルを用いたデータ拡張（擬似データ (2) の構築）を提案し，DAPT+TAPTの手法および発
話者の名前をデータに付与する手法と併用することで，言語モデルが最良にな
ることを，パープレキシティの評価実験により示した．
また主観評価においても提案手法の有効性が示せた．
また擬似データ (1)，(2) を構築する際に導入したフィルタリングの効果も確認できた．




%%% Acknowledgement %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\acknowledgment
本研究は国立国語研究所の共同研究プロジェクト「テキスト読み上げのための読みの曖昧性の分類と読み推定タスクのデータセットの構築」及び JSPS科研費 23K11212，22K12145 の助成を受けています．



%%% Bibliography %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{jnlpbbl_1.7}
\bibliography{09refs}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
\section{T5 モデルの学習時のパラメータ}

ここでは T5 モデルの学習時のパラメータ設定に対応するコード部分を記述する．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{verbatim}
no_decay = ["bias", "LayerNorm.weight"]
optimizer_grouped_parameters = [
            {
                "params": [p for n, p in net.named_parameters()
                            if not any(nd in n for nd in no_decay)],
                "weight_decay": 0.0,
            },
            {
                "params": [p for n, p in net.named_parameters()
                            if any(nd in n for nd in no_decay)],
                "weight_decay": 0.0,
            },
        ]

criterion = nn.CrossEntropyLoss()
optimizer = optim.AdamW(optimizer_grouped_parameters,lr=3e-4,eps=1e-8)
scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps=0, 
                       num_training_steps=5000)
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{言語モデルの generate メソッドのパラメータ}
主観評価の実験において，言語モデルの \verb|generate| メソッドを用いて発話分を生成した．
その際の \verb|generate| メソッドのパラメータを以下に記す．
記述のないパラメータについては default のものを使っている．
また \verb|tokenizer| はモデルで指定されているトークナイザである．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{verbatim}
output = model.generate(
        input_ids,  // 入力の先頭の数単語
        max_length=40,
        min_length=10,
        do_sample=False,
        top_k=500,
        top_p=0.1,
        pad_token_id=tokenizer.pad_token_id,
        bos_token_id=tokenizer.bos_token_id,
        eos_token_id=tokenizer.eos_token_id
)
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%




%%% Biography %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{biography}
\bioauthor{馬　　ブン}{
2017年静岡文化芸術大学デザイン学部メディア造形学科卒業．2019年3月静岡文化芸術大学大学院デザイン研究科デザイン専攻修了．2019年4月茨城大学理工学研究科社会インフラシステム科学専攻入学．現在に至る．
}
\bioauthor{岸野　望叶}{
2021年茨城大学工学部情報工学科卒業．
2023年茨城大学理工学研究科情報工学専攻修了．
}
\bioauthor{古宮嘉那子}{
2005年東京農工大学工学部コミュニケーション工学科卒．2009年同大学大学院博士後期課程電子情報工学専攻修了．博士（工学）．同年東京工業大学精密工学研究所研究員，2010年東京農工大学工学研究院特任助教，2014年茨城大学工学部情報工学科講師，2021年東京農工大学工学研究院准教授．現在に至る．自然言語処理の研究に従事．情報処理学会，人工知能学会，言語処理学会各会員．
}
\bioauthor{新納　浩幸}{
1985年東京工業大学理学部情報科学科卒業．1987年同大学大学院理工学研究科情報科学専攻修士課程修了．同年富士ゼロックス，翌年松下電器を経て，1993年茨城大学工学部システム工学科助手．1997年同学科講師．2001年同学科助教授．2005年学科改組により，情報工学科准教授．2015年同学科教授．現在に至る．機械学習，統計学による自然言語処理の研究に従事．情報処理学会，人工知能学会，言語処理学会各会員．
}
\end{biography}

\biodate   %%%% 受付日の出力（編集部で設定します）


\end{document}



