# 逆学習による言語モデルの解析

磯沼大 1,2 イヴァンチトフ 1
1 エディンバラ大学 2 東京大学
m.isonuma@ed.ac.uk ititov@inf.ed.ac.uk

## 概要

大規模言語モデルの高い能力を発揮させ、かつ有害な生成を抑えるには、その原因となる学習データの特定が不可欠である。理想的には、各学習データを除いて再学習したモデルを評価することで各デー タの影響を測ることができるが、計算コストが膨大になり現実的ではない。本稿では学習データを除く代わりに、学習済モデルから各データを逆学習してその影響を測る手法を提案する。本手法は極めて単純で、勾配上昇法で学習データを逆学習し、逆学習後のモデルの性能が悪化するほど、その学習データの影響が大きいと推定する。本手法は既存手法に比べ膨大なメモリやチェックポイントの保存を必要とせず、かつ評価実験で高い性能を示した。

## 1 はじめに

大規模言語モデル（LLM）は驚異的な汎化・推論能力を示し、社会に衝撃を与えている。一方で、差別やバイアスを含む文章を生成するなど、その安全性もまた憂慮されている。LLM の高い能力を引き出しつつ、有害性を除去するには、それらの原因となる学習データの特定が不可欠である。しかし LLM は大量のコーパスで学習されており、どの学習データに起因するのか特定するには困難を極める。

ある評価データに対する学習データの影響を知るための理想的な方法は、各学習データを除いてモデルを再学習し、その評価データにおける性能変化を測ることである (leave-one-out)。しかし、この方法は計算コストが膨大で現実的ではない。そこで学習データの影響を推定する手法として、Hessian-based influence functions (HIF) [1, 2, 3] や、TracIn [4] が提案されてきた。しかし HIF はへッセ行列の逆行列計算に多大な計算量を要し、TracInもまた多数のチェックポイントを必要とする。また、これらの手法は一次近似を伴うため、大量のデータを学習したモデルには有効でないことが報告されている $[5,6,7]$ 。

図 1 提案する UnTrac/UnTrac-Inv と leave-one-out の対比。

本稿では、学習データを除く代わりに、学習済モデルから逆学習して、学習データの影響を推定するUnTrac を提案する（図 1)。Leave-one-out は、学習データを除く前後でのモデルの性能を比較し、その影響を推定する。同様に、UnTrac は学習データを逆学習し、逆学習前後でのモデルの性能を比較して、その影響を推定する。逆学習はモデルから有害な学習データを忘却させる方法として注目されており $[8,9]$ 、本稿はこれを学習データの影響推定に危用する。本手法で要する計算量は通常の学習と同等で、HIF や TracIn に必要な多大な計算量やチェックポイントを要しない。また一次近似を伴わないため、大量のデータを学習する場合にも有効である。

UnTrac は、複数の学習データの影響を測る場合、 その数だけ逆学習を実行しなくてはならず、計算コストが嵩む。そこで、本研究ではよりスケーラブルな方法として UnTrac-Inv を提案する。UnTrac-Inv は学習データの代わりに評価データを逆学習し、逆学習前後のモデルを学習データで評価する。 UnTrac-Inv は幾つかの仮定・条件のもとで UnTrac と等価である。また、UnTrac と UnTrac-Inv は、HIFなどの既存手法の一般化としてみなせることを示す。実験では、複数のモデル（エンコーダデコーダルデコーダ）及び実験設定（事前学習/ファインチューニング）にて、提案手法の有効性を検証する。

## 2 問題設定

本研究の目標は、ある評価データセットにおけるモデルの性能に対し、学習データセットが与える影響を推定することである。これを定式化するため、全データセットで学習されたモデル $\theta_{0}$ と、ある学習データセット $Z$ を抜いて学習されたモデル $\boldsymbol{\theta}_{-Z}$ を考える (leave-one-out)。学習データセット $Z$ が評価データセット $Z$ に与える実際の影響値を式 (1)で定義する。各学習データセット $Z$ について、この影響値の相対的な大きさを推定することを目指す。

$
I_{\text {truth }}\left(Z^{\prime}, Z\right)=\sum_{j=1}^{N^{\prime}} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{0}\right)-L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{-Z}\right)
$

ここで、 $z_{j}^{\prime}$ は評価データセット $Z^{\prime}$ 中のバッチを、 $N^{\prime}$ はバッチの数を、 $L$ は損失関数を表す。本稿では、 $\theta_{-Z}$ の学習に際し、どのデータセットを抜く場合でも同じ学習ステップ数を用いる。以下では逆学習により $I_{\text {truth }}$ を推定する方法を詳説する。

## 3 提案手法

## 3.1 UnTrac

学習済モデルのパラメータを $\theta_{0} 、 i$ ステップ逆学習後のモデルを $\theta_{i}$ と表す。UnTrac は、学習データセット $Z$ の評価データセット $Z^{\prime}$ に対する影響を、評価データセットの損失関数 $L$ の差分で推定する:

$
\begin{aligned}
I\left(Z^{\prime}, Z\right) & =\sum_{j=1}^{N^{\prime}} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{T}\right)-L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{0}\right) \\
& =\sum_{j=1}^{N^{\prime}} \sum_{i=1}^{T} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{i}\right)-L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{i-1}\right)
\end{aligned}
$

ただし $T$ は逆学習のステップ数である。既存研究を踏襲し [8]、 $\boldsymbol{\theta}_{i}$ は勾配上昇法により、学習データセット $Z$ 中のバッチ $z_{i}$ の損失関数を最大化するように更新される。確率的勾配法 (SGD) を用いた場合の更新式は学習率 $\eta$ を用いて式 (3) で表される。

$
\boldsymbol{\theta}_{i}=\boldsymbol{\theta}_{i-1}+\eta \nabla_{\boldsymbol{\theta}} L\left(z_{i}, \boldsymbol{\theta}_{i-1}\right)
$

## 3.2 UnTrac-Inv

実務では、ある特定の評価データセットに対して、どの学習データセットの影響が大きいか関心を持つ場合が多い。本節では、学習データセットの数に対してスケーラブルな方法として、UnTrac-Inv を導入する。UnTrac-Inv は学習データセットの代わり
に評価データセットを逆学習し、学習データセットにて損失関数の差分を測ることで影響を推定する：

$
\begin{aligned}
I^{\prime}\left(Z^{\prime}, Z\right) & =\sum_{i=1}^{N} L\left(z_{i}, \boldsymbol{\theta}_{T^{\prime}}\right)-L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{0}\right) \\
& =\sum_{i=1}^{N} \sum_{j=1}^{T^{\prime}} L\left(z_{i}, \boldsymbol{\theta}_{j}\right)-L\left(z_{i}, \boldsymbol{\theta}_{j-1}\right)
\end{aligned}
$

ここで $N$ は学習データセット内のバッチ数を、 $T^{\prime}$ は逆学習のステップ数を表す。

いくつかの仮定・条件の下、UnTrac-Inv と UnTrac は等価であるとみなせる。式 (3) 及び一次近似 $L\left(z, \boldsymbol{\theta}_{i}\right)-L\left(z, \boldsymbol{\theta}_{i-1}\right) \approx \nabla_{\boldsymbol{\theta}} L\left(z, \boldsymbol{\theta}_{i-1}\right)^{\top}\left(\boldsymbol{\theta}_{i}-\boldsymbol{\theta}_{i-1}\right)$ により、式 (2) と式 (4) はそれぞれ下記のように近似できる。

$
\begin{aligned}
& I\left(Z^{\prime}, Z\right) \approx \sum_{i=1}^{T} \sum_{j=1}^{N^{\prime}} \eta \nabla_{\boldsymbol{\theta}} L\left(z_{i}, \boldsymbol{\theta}_{i-1}\right)^{\top} \nabla_{\boldsymbol{\theta}} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{i-1}\right) \\
& I^{\prime}\left(Z^{\prime}, Z\right) \approx \sum_{i=1}^{N} \sum_{j=1}^{T^{\prime}} \eta \nabla_{\boldsymbol{\theta}} L\left(z_{i}, \boldsymbol{\theta}_{j-1}\right)^{\top} \nabla_{\boldsymbol{\theta}} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{j-1}\right)
\end{aligned}
$

逆学習のステップ数が 1 で $\left(T=T^{\prime}=1\right)$ 、バッチがデータセット内の全サンプルを含む時、 $I\left(Z^{\prime}, Z\right)$ は $I^{\prime}\left(Z^{\prime}, Z\right)$ に一次近似の下で一致する。即ち、逆学習のステップ数が少なく、バッチサイズが大きい場合、UnTrac-Inv は有効であることが示唆される。

## 3.3 既存手法との関連

TracIn, GradDot \& GradCos TracIn [4] は各チェックポイント $t \in \mathscr{T}_{c p}$ に保存されたパラメータ $\boldsymbol{\theta}_{t}$ を用いて、学習データセットの影響を式 (7) で推定する。 $\operatorname{TracIn}\left(Z^{\prime}, Z\right)=\sum_{t \in \mathscr{T}_{c p}} \sum_{i=1}^{N} \sum_{j=1}^{N^{\prime}} \eta \nabla_{\boldsymbol{\theta}} L\left(z_{i}, \boldsymbol{\theta}_{t}\right)^{\top} \nabla_{\boldsymbol{\theta}} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{t}\right)$

最終チェックポイントのみ（学習済モデルのパラメータ $\boldsymbol{\theta}_{0}$ ）が使われることも多く、GradDot と呼ばれる。また、学習データが外れ値の場合は勾配が大きくなるため、勾配を正規化した（即ち内積をコサイン類似度で置換した） GradCos も頻用される。

Hessian-based influence Functions HIF [2] は、学習済モデル $\boldsymbol{\theta}_{0}$ について、影響を式 (8) で推定する。

$
\operatorname{HIF}\left(Z^{\prime}, Z\right)=\sum_{i=1}^{N} \sum_{j=1}^{N^{\prime}} \nabla_{\boldsymbol{\theta}} L\left(z_{i}, \boldsymbol{\theta}_{0}\right)^{\top} \boldsymbol{H}^{-1} \nabla_{\boldsymbol{\theta}} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{0}\right)
$

ここで、 $\boldsymbol{H}$ は学習データの損失関数に関するへッセ行列である $: \boldsymbol{H}=1 / N \sum_{i=1}^{N} \nabla_{\boldsymbol{\theta}}^{2} L\left(z_{i}, \boldsymbol{\theta}_{0}\right)$ 。へッセ行列の逆行列計算には莫大な計算量を要するため、本稿では LISSA [2] 及び Arnoldi [10] により近似する。
表 1 ファインチューニングに用いるデータセットのサンプル例。波括弧 \{\} で囲まれた部分はサンプル毎に異なる。

図 2 UnTracにより推定された影響値（左）とUnTrac-Invにより推定された影響値（右）。横軸は逆学習のエポック数。

逆学習に基づく解釈 GradDot、GradCos 及び HIF は、UnTrac の特殊ケースとみなせる。UnTracにより 1 ステップで学習データセットの全サンプルを逆学習した時、式 (2)は一次近似で下記のように表せる：

$
\begin{aligned}
I\left(Z^{\prime}, Z\right) & =\sum_{j=1}^{N^{\prime}} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{1}\right)-L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{0}\right) \\
& \approx \sum_{j=1}^{N^{\prime}} \nabla_{\boldsymbol{\theta}} L\left(z_{j}^{\prime}, \boldsymbol{\theta}_{0}\right)^{\top}\left(\boldsymbol{\theta}_{1}-\boldsymbol{\theta}_{0}\right)
\end{aligned}
$

SGDを用いた場合、 $\boldsymbol{\theta}_{1}-\boldsymbol{\theta}_{0}=\eta \sum_{i=1}^{N} \nabla_{\boldsymbol{\theta}} L\left(z_{i}, \boldsymbol{\theta}_{0}\right)$ より、式 (9) は GradDot と一致する。同様に、RMSProp や Adam を用いた場合は GradCos と一致し、ニュートン法を用いた場合は HIF と一致する。同様の議論は UnTrac-Inv についても成り立つ。

## 4 評価実験

本節では、逆学習により学習データの影響を推定できるか検証する。学習データの影響推定では、検証データは通常存在しない。従って、本実験では 4.2 節の Toxigen データセットによる検討に基づき、同一のハイパーパラメータを他のデータセットでも使用した。勾配法は Adam [11]（学習率：5e-5、 $\beta_{1}=$ 0.9、 $\beta_{2}=0.999 ） を$ 用いた。UnTrac のバッチサイズは 1 で、 1 エポック逆学習を行った。 3.2 節の議論から、UnTrac-Inv はステップ数が少なく、バッチサイズが大きい場合に有効であることが示唆される。従って、バッチサイズは 256 （評価データセットサイズ）に設定し、ステップ数（エポック数）は 5 に設定した。 4.2 節にてこれらの影響を議論する。

## 4.1 ファインチューニングの影響推定

まず、事前学習モデルを複数のタスクでファインチューニングした場合に、学習タスクの影響を正確に推定できるか検証する。本手法に対する懸念として、評価タスクと出力形式は同じだが異なるタスクを逆学習すると、逆学習後のモデルはいかなる入力に対しても当該形式で出力しなくなり、当該タスクの影響が過大評価されることを危惧した。そこで、本実験では評価タスクと類似する儿ない、出力形式が同じ/異なる4つの学習タスクを用意し、各学習タスクの影響を適切に推定できるか検証する。

モデル本実験では事前学習済エンコーダデコー ダモデルの T5 [12]（30 億パラメータ）を使用する。

データセット表 1 に示すように、評価データセットと、それに対応する 4 つの学習データセットを作成した。学習評価データセットはそれぞれ 256 サンプルで構成される。この 4 つの学習データセットを混合し、モデルを 1 エポック学習した。

結果図2はUnTrac（左）及びUnTrac-Inv（右）について、逆学習を進めたときの影響値の変化である（4 回試行した平均と $95 \%$ \%信頼区間を表示)。両手法とも、類似タスク $(1,2)$ の影響は非類似タスク $(3,4)$ より高く推定された。実際に leave-one-out においても、データセット 1 と 2 の実際の影響は 3 と 4 より大きいことを確認している（付録 A. 1 節)。従って、UnTrac と UnTrac-Inv はタスクの類似性に基づいて適切に学習データの影響を推定でき、出力形式の類似性に大きく影響されないことがわかる。
各手法により推定された影響と実際の影響とのピアソン相関係数。4 回の試行における平均と標準偏差を表示。

図 3 UnTrac（左）とUnTrac-Inv（右）で推定した影響と実際の影響とのピアソン相関係数。横軸は逆学習のエポック数。 4 回試行した平均と 95\% 信頼区間を表示。各学習データセットサイズは均一で、評価データセットには ToxiGen を使用。

## 4.2 事前学習における影響推定

LLM は差別やバイアス、不正確な内容を含む生成を行うことがある。本節では、そうした有害なコンテンツの生成に対する事前学習データセットの影響を、提案法が正確に推定できるか検証する。

モデル本実験では open pre-trained transformer (OPT) [13]（125万パラメータ）を用いた。下記の事前学習データセットで 1 エポック学習した。

データセット OPT の事前学習で用いられた 8 つのデータセットを学習に使用した。提案法がデータセットの混合比率によらず有効であることを示すため、各データセットサイズが均一な場合と、不均一な場合のそれぞれで実験した。学習データセットの詳細は A. 2 節を参照されたい。評価データセットには、ToxiGen [14]、WinoBias [15] 及び TruthfulQA [16] を採用した。ToxiGen はマイノリティに対する差別的な文章を、WinoBias はある職業とそれに対する代名詞（he/she）を含む文章を、TruthfulQA は様々な分野にわたる質問とそれに対する不正確な回答を格納したデータセットである。差別/バイアスを含む文章や不正確な回答の対数尤度を損失関数として測ることで、各学習データセットの影響を推定する。

結果表 2 に、leave-one-outにより算出された実際の影響と、各手法で推定された影響とのピアソン相関係数を示す. 全データセットを通じて、UnTrac と UnTrac-Inv は実際の影響を比較的高い精度で推定できている。GradDot、GradCos 及び HIF (Arnoldi) は Winobias では高い精度を示すものの、Toxigen や TruthfulQA では特に学習データセットサイズが不均一の場合に精度が低い。TracIn は特にデータセットサイズが不均一の場合に有効でないことがわかる。

図 3 に、逆学習のステップ数と、影響值の推定精度（ピアソン相関係数）との関係を示す。UnTrac はバッチサイズに関わらず、逆学習が進むと安定した精度を示す一方、3.2 節の議論の通り、UnTrac-Inv はバッチサイズが小さい場合やステップ数が大きい場合有効でない。また 3.3 節の議論によれば、 GradDot、GradCos 及び HIF は、逆学習のステップ数が 1 の場合に UnTrac とUnTrac-Inv の 1 次近似とみなせる。UnTrac と UnTrac-Inv はステップ数が 1 のとき共に精度が低く、逆学習の観点からみると、既存手法は 1 ステップでの推定に限界があったといえる。

## 5 おわりに

本稿では学習済モデルから学習データや評価デー タを逆学習することで、評価データに対する学習データの影響を推定できることを示した。本研究が、Chain-of-thought など、LLM の特異な能力を引き出す学習データの解明に役立つことを期待する。

## 謝辞

本研究は、NEDO JPNP20006 及び JST CREST JPMJCR21D1 の支援を受けたものである。

## 参考文献

[1] Frank R Hampel. The influence curve and its role in robust estimation. Journal of the american statistical association, Vol. 69, No. 346, pp. 383-393, 1974.

[2] Pang Wei Koh and Percy Liang. Understanding black-box predictions via influence functions. In International conference on machine learning, pp. 1885-1894. PMLR, 2017.

[3] Pang Wei W Koh, Kai-Siang Ang, Hubert Teo, and Percy S Liang. On the accuracy of influence functions for measuring group effects. Advances in neural information processing systems, Vol. 32, , 2019.

[4] Garima Pruthi, Frederick Liu, Satyen Kale, and Mukund Sundararajan. Estimating training data influence by tracing gradient descent. Advances in Neural Information Processing Systems, Vol. 33, pp. 19920-19930, 2020.

[5] Samyadeep Basu, Phil Pope, and Soheil Feizi. Influence functions in deep learning are fragile. In International Conference on Learning Representations, 2021.

[6] Anders Søgaard. Revisiting methods for finding influential examples. arXiv preprint arXiv:2111.04683, 2021.

[7] Andrea Schioppa, Katja Filippova, Ivan Titov, and Polina Zablotskaia. Theoretical and practical perspectives on what influence functions do. arXiv preprint arXiv:2305.16971, 2023.

[8] Joel Jang, Dongkeun Yoon, Sohee Yang, Sungmin Cha, Moontae Lee, Lajanugen Logeswaran, and Minjoon Seo. Knowledge unlearning for mitigating privacy risks in language models. In Anna Rogers, Jordan Boyd-Graber, and Naoaki Okazaki, editors, Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 1438914408, Toronto, Canada, July 2023. Association for Computational Linguistics.

[9] Jiaao Chen and Diyi Yang. Unlearn what you want to forget: Efficient unlearning for LLMs. In Houda Bouamor, Juan Pino, and Kalika Bali, editors, Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing, pp. 12041-12052, Singapore, December 2023. Association for Computational Linguistics.

[10] Andrea Schioppa, Polina Zablotskaia, David Vilar, and Artem Sokolov. Scaling up influence functions. In Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 36, pp. 8179-8186, 2022.

[11] Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. arXiv:1412.6980v9, 2014.

[12] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J Liu, et al. Exploring the limits of transfer learning with a unified text-to-text transformer. Journal of machine learning research, Vol. 21, No. 140, pp. $1-67,2020$.

[13] Susan Zhang, Stephen Roller, Naman Goyal, Mikel Artetxe, Moya Chen, Shuohui Chen, Christopher Dewan, Mona Diab, Xian Li, Xi Victoria Lin, et al. Opt: Open pre-trained transformer language models. arXiv preprint arXiv:2205.01068, 2022.

[14] Thomas Hartvigsen, Saadia Gabriel, Hamid Palangi, Maarten Sap, Dipankar Ray, and Ece Kamar. ToxiGen: A large-scale machine-generated dataset for adversarial and implicit hate speech detection. In Smaranda Muresan, Preslav Nakov, and Aline Villavicencio, editors, Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 3309-3326, Dublin, Ireland, May 2022. Association for Computational Linguistics.

[15] Jieyu Zhao, Tianlu Wang, Mark Yatskar, Vicente Ordonez, and Kai-Wei Chang. Gender bias in coreference resolution: Evaluation and debiasing methods. In Marilyn Walker, Heng Ji, and Amanda Stent, editors, Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 2 (Short Papers), pp. 15-20, New Orleans, Louisiana, June 2018. Association for Computational Linguistics.

[16] Stephanie Lin, Jacob Hilton, and Owain Evans. TruthfulQA: Measuring how models mimic human falsehoods. In Smaranda Muresan, Preslav Nakov, and Aline Villavicencio, editors, Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 3214-3252, Dublin, Ireland, May 2022. Association for Computational Linguistics.

[17] Yukun Zhu, Ryan Kiros, Rich Zemel, Ruslan Salakhutdinov, Raquel Urtasun, Antonio Torralba, and Sanja Fidler. Aligning books and movies: Towards story-like visual explanations by watching movies and reading books. In Proceedings of the IEEE international conference on computer vision, pp. 19-27, 2015.

[18] Trieu H Trinh and Quoc V Le. A simple method for commonsense reasoning. arXiv preprint arXiv:1806.02847, 2018.

[19] Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. Roberta: A robustly optimized bert pretraining approach. arXiv preprint arXiv:1907.11692, 2019.

[20] Leo Gao, Stella Biderman, Sid Black, Laurence Golding, Travis Hoppe, Charles Foster, Jason Phang, Horace He, Anish Thite, Noa Nabeshima, et al. The pile: An $800 \mathrm{gb}$ dataset of diverse text for language modeling. arXiv preprint arXiv:2101.00027, 2020.
表 3 各手法により推定された各学習データセットの影響値。手法ごとに値域が異なるため、影響値を標準化して表示。

表 4 各ハイパーパラメータにおける提案法の精度（提案法により推定された影響と実際の影響とのピアソン相関係数）。 4 回の試行における平均と標準偏差を表示。各学習データセットサイズは均一で、評価データセットに ToxiGen を使用。

## A 付録

## A. 1 ファインチューニングの影響推定

実験結果の詳細表 3 に、各手法で推定された各学習データセットの影響値と、leave-one-out により推定された実際の影響を示す。leave-one-outによれば、類似タスクである学習データセット 1,2 が評価データセットに与える実際の影響は、非類似タスクである学習データセット 3,4 より大きい。提案手法である UnTrac 及び UnTrac-Inv も同様の傾向を示しており、タスクの類似性に基づいて影響を推定できており、出力形式には大きく影響されないことが示唆される。一方、既存手法はいずれも学習データセット 1,2 の影響を過小評価、 または学習データセット 3 の影響を過大評価しており、実際の影響を正しく推定できていないことがわかる。

## A. 2 事前学習における影響推定

実験設定の詳細本実験では OPT の学習に用いられた BookCorpus [17], CC-Stories [18], CCNewsV2 [19] 及び Pile [20] に含まれる5つのデータセット: PJ Gutenberg, HackerNews, OpenWebText2, Pile-CC, Wikipedia を事前学習に使用した。各データセットサイズが均一の場合、各データセットに含まれるサンプル数は 40,000 件である。一方、データセットサイズが均一でない場合の各サンプル数は、Pile-CC: 96,000, OpenWebText2: 64,000, CCNewsV2: 48,000, BookCorpus: 32,000, Stories: 32,000, PJ Gutenberg: 16,000, HackerNews: 16,000, Wikipedia: 16,000である。事前学習データセットの全サンプルを用いて影響を推定すると計算コストが膨大になるため、本実験では無作為に抽出した 10,000 件を各手法の影響推定に用いた。実験結果が抽出されたサンプルに依らないことを示すため、異なるサンプルについて 4 回試行を行い、その平均と標準偏差を報告している。

## A. 3 ハイパーパラメータに対する頑健性

表 4 に、他のハイパーパラメータを固定しつつ、勾配法と学習率を変化させた時の提案法の精度を示す。UnTrac は、RMSProp、Adam 及び Adafactorを使用した場合に良い性能を示しており、勾配を考慮した preconditoner が重要な役割を果たしている。UnTrac-Inv についても同様の傾向がみられるが、RMSProp を使用した場合には精度が低くなる。学習率を変化させた場合、UnTrac は低い学習率では収束せず推定精度が低いものの、高い学習率を使用した場合には安定して良い性能を示す。一方、UnTrac-Inv は比較的性能が学習率に影響されやすいが、いずれの学習率においても推定された影響は実際の影響と正の相関を示す。


# 大規模言語モデルを利用した音声対話システムのメタ制御

宿里晃太郎 ${ }^{1}$ 石垣龍馬 ${ }^{1}$ 鈴木順大 ${ }^{1}$ 永沼翔翼 1
藤本拓真 ${ }^{1}$ 河窪大介 ${ }^{1}$ 酒造正樹 ${ }^{1}$ 前田英作 ${ }^{1}$
1 東京電機大学
\{20aj076, 20aj012, 20aj078, 20aj098, 20aj112, 22amj10\}@ms.dendai.ac.jp
\{shuzo, maeda.e\}@mail.dendai.ac.jp

## 概要

大規模言語モデル (LLM)を利用することにより，従来のルールベースによる音声対話システムでは困難であった自然な対話が可能である。しかし，LLM は明示的な出力制御が困難であり，音声対話システム設計者の意図と異なる発話が生起する危険性がある. 本稿では，より安定で且つ柔軟な音声対話システムを実現するための LLM を利用したメタ制御手法を提案する。提案手法は，対話シナリオに沿った対話を実現するための対話フロー制御と，自然な対話を実現するためのターンテイキング制御とからなる.それら制御の最適化にも LLM を利用するというメタ制御を音声対話システム上に実装し，その効果を検証した。

## 1 はじめに

対話システムの構築において，その目的にあわせたシステム主導型の対話を実現するには，ルールベースのシステム設計をすることが一般的である. しかし，このルールベースによる対話システムは，雑談対話のような柔軟な対話において，破綻せずに継続することが困難であった。そこで近年，柔軟で且つ多様な発話生成を可能にする大規模言語モデル（LLM）の利用が進みつつある．しかし LLM は，その出力を明示的に制御することが難しく，安定した対話システムを実現することは必ずしも容易ではない。対話ロボットコンペティション 2023 （DRC2023）[1]において課題とされたのは，旅行代理店のカウンターパーソン役としてのアンドロイドロボットのためのマルチモーダル対話システムを構築することであった. この対話の目的は，ユーザであるお客様の希望を聞きながら，ユーザの満足する旅行プランを策定して提示することである．明確に既定されたゴールに向かうような対話の安定性が求
められるとともに，ユーザの様々な発話に対して適切に対応する柔軟な発話生成と対話制御が必要となる。

以前，我々の研究グループ [2], [3] ではルールベー スを基本とする対話システムを構築し，一部の口ボット発話に言語モデルの出力を利用していた. 昨年の DRC で優勝したチーム LINE [4] は言語モデルである HyperCLOVAを用いた対話システムを構築したが，対話の流れはルールベースで記述していた。当時の技術水準では，言語モデルによる安定した対話制御までは難しかったと言える。DRC2023 は OpenAI が開発した GPT-4 をはじめとした LLM が登場して以来，初のアンドロイドロボットを用いたコンペティションである。

本稿では我々が DRC2023 において構築したシステム DSML-TDU[5] における実装例を取り上げて本技術の詳細を紹介する。

## 2 音声対話システム DSML-TDU

DRC2023 のために構築した対話システム DSMLTDU の概要を図 1 に示す1). 対話の Introduction と Closing，及び制限時間（10 分）の管理には，ルー ルベースによる対話制御を行ったが，それ以外の部分における発話生成と対話制御には LLM を利用した．LLM には GPT-42）を，音声認識には Google Speech Recognition (GSR) を用いた GPT-4 を駆動するためのプロンプトには，Dialogue Flow Control Prompt (DFCP) と Turn-Take Control Prompt (TTCP) の 2 種類を用意した. これらプロンプトの特徴は，発話生成に加えて，シナリオ分岐点における分岐判断，円滑なターンテイキングを実現するための制御を行っている点であり，ここではそれをメタ制御と呼ぶこと

図 1 Overview of dialogue flow in DSML-TDU system とした.

## 3 プロンプトによるメタ制御

## 3.1 Dialogue Flow Control Prompt (DFCP)

DFCP は，発話生成を行いつつ同時に対話フロー の全体を制御するためのもので，146行，4905 文字からなる。その一部を，図 2 と図 3 に示す. 図 2 は発話内容や対話における流れを定めるものであり，対話履歴の内容によってシステムの発話内容や会話の流れが変化する．本システムでは，GPT-4 による発話生成は DFCP と対話履歴のみによって決定される。

図 3 は，DFCP 上であらかじめ定義したコマンドを実行するためのものであり，コマンド番号とそれに対応するコマンドがリストとして記述されている．DFCP による GPT-4への指示は，コマンドのいずれかを実行する必要があるかどうかを対話の流れから判断し，必要とされた場合には，対応するコマンド番号を出力として生成することである.

コマンド一覧にはその名前や概要を記述するが， それだけでは GPT-4 による積極的なコマンドの実行は期待できない． 2 番のように客から要望があった際にはコマンドを実行するが，会話の進行度を監視して，こちら側から提案することは少ない。そのため，「あれが達成されたため，これをする」のように記述することで積極的なコマンドの実行を要求する
\# 命令書
貴方は旅行代理店店員のプロフェッショナル店員です.

以下の条件に従ってください。

\# 条件

あなたの最終的な目標は，京都市内で 2 つの観光地をめぐる旅行プランを決めることです

基本的に以下の「タスク」の流れに沿って 1 つずつ実行してください.

ただし，お客様の要望次第では順番を入れ替えたり，タスクを飛ばしても構いません

＃ タスク

1：まずはお客様のことを知りたいと言い，，お客様の趣味や最近やっている事を聞いてください。

2：お客さんの趣味を聞いてうれしかった事を伝えた後に「それでは本題に入りましょう」と言ってください

3：「お客様が京都でどのような体験をし，どんな思い出を作りたいのか，それが伴になります」と言った後京都市内旅行でどのような体験をしたいのか聞いてください

10：決まった旅行プランの確認をしてください.

～あなたのプロフィール

あなたは旅行代理店の店員です. 名前は翔子です.

お客さんと話すのが大好きで，少しお茶目な女性です。

今回、お客様に最高の提案ができるように沢山お客様の事を聞こうと頑張っており，お客様に興味津々です。

図 2 Part of dialogue flow control prompt (DFCP)

ことができる.

1: 1 箇所目の観光地と 2 箇所目の観光地が決まって，食事処も提案し，会話もひと段落ついたので，プランを確認する

観光地の様子や画像を見せてほしいと言われたので，観光地画像の表示を試みる

プランを提案する

図 3 Example of command control in DFCP

例えば，対話目的が達成されたと判断すれれば， GPT-4 は「0」を出力し，Closingへ移行する. また， どのコマンドも実行不要と判断すれば，GPT-4 は発話文をテキストとして出力する。

DFCP において特に着目するべき点は，発話生成とコマンド実行のためのプロンプトを 1 つに統合し，文章生成の代わりにコマンドを実行するという選択肢を与えた点である。これにより，システムの発話前後で柔軟にコマンドを実行できる.

類似する機能として OpenAI が提供する function

イミングを GPT-4 自身に決めさせるためにこれを実装した. 現状のシステムでは発話生成とコマンド実行が同時に行われないため function calling でも代用できるが，プロンプト (図 3)をチューニングする事で，発話生成の中にコマンドを埋め込むことができる.

## 3.2 Turn-Take Control Prompt (TTCP)

TTCP は，対話におけるターンテイキングを制御するためのプロンプトであり， 27 行，534 文字からなる. その一部を，図 4,5 に示す. このプロンプトによって，GPT-4 は，実行すべきと判断したコマンド番号を出力する。自然な対話を継続するためには，ターンテイキングの的確な判断，制御が必要である.この制御が適切に行われないと，不用意な発話の割り込みや意図しない沈黙が発生し，対話破綻の原因となる。沈黙時間が話者間に発生すると， ユーザは行動判断に迷い，不安になる.

沈黙時間の発生には様々な要因があり, システム側の音声認識や発話生成によって発生する待ち時間が代表的なものである。また，ユーザがアンドロイドロボットに対して持つ認知モデルは人間に対する場合とは異なるため，対話の非対称性が生じる [7]. そのためユーザ側の発話過程は人間に相対する場合と異なる可能性があり，それによって，意図しない発話割り込みや沈黙を引き起こす。

こうした，ターンテイキングの不安定性を解消するためには，人間の認知状態を推定することが有効である．本システムでは，ユーザ，あるいは，システムの発話からターンテイキングに関するユーザの認知状態を GPT-4 に推定させることを試みた。プロンプトでは，推定結果に応じて，音声認識 GSR の音声認識区間を制御し，意図しない発話の割り込みをし，円滑で自然な対話が実現することを目指した。 こうした制御は，ユーザが持つ対話参与感の向上にも寄与すると期待できる [8].

直前の発話テキストと文脈からターンテイキングを推定する手法である TurnGPT [9]を Ekstedt らが提案している。ここでは，Ford and Thompson [10]が提唱した「質問が構文的には完全であっても，文脈によっては完全であるとは限らない」ことによる実用的な完全性 (pragmatic completeness) について言及し，それを前提としてシステムを構築している。

我々もそれに倣い，プロンプトには直前の発話だけではなく，数ターン分の対話履歴も含めた。それ
によって直前の発話と文脈から推定し，ユーザに会話のペースを合わせることができる.

以下の条件に必ず従ってください.

\# 条件

これまでの対話履歴から，店員の発話に対して，客に返答を求めるかどうかを判断してください.

図 4 Example of command control in TTCP (直前の発話がシステムの場合に使用)

図 5 Example of command control in TTCP（直前の発話がユーザの場合に使用）

## 4 おわりに

本論文では，対話制御に関わるすべてをLLMによって動作させるメタ制御によって音声対話システムを構築するための手法を提案した．DRC2023 の課題に対して，提案システムが想定通りに動作することを検証した. 2 種類のプロンプト DFCP と TTCP も統合し，一つのプロンプトによってシステムを動かすことも原理的には可能であり，今後検討していく予定である.

## 謝辞

本研究は JSPS 科研費 JP19H05693 の助成を受けた

ものです.

## 参考文献

[1] Takashi Minato, Ryuichiro Higashinaka, Kurima Sakai, Tomo Funayama, Hiromitsu Nishizaki, and Takayuki Nagai. Overview of Dialogue Robot Competition 2023. In Proceedings of the Dialogue Robot Competition 2023, 2023.

[2] Daisuke Kawakubo, Hitoshi Ishii, Riku Okazawa, Shunta Nishizawa, Haruki Hatakeyama, Hiroaki Sugiyama, Masaki Shuzo, and Eisaku Maeda. Spoken dialogue strategy focusing on asymmetric communication with android robots. In Proceedings of the Dialogue Robot Competition 2022, 2022.

[3] Makoto Kawamoto, Masaki Shuzo, and Eisaku Maeda. Improving user's sense of participation in robot-driven dialogue. In Proceedings of the Dialogue Robot Competition 2022, 2022.

[4] Takato Yamazaki, Katsumasa Yoshikawa, Toshiki Kawamoto, Masaya Ohagi, Tomoya Mizumoto, Shuta Ichimura, Yusuke Kida, and Toshinori Sato. Tourist guidance robot based on HyperCLOVA. In Proceedings of the Dialogue Robot Competition 2022, 2022.

[5] Kotaro Shukuri, Ryoma Ishigaki, Jundai Suzuki, Tsubasa Naganuma, Takuma Fujimoto, Daisuke Kawakubo, Masaki Shuzo, and Eisaku Maeda. Meta-control of dialogue systems using large language models. In Proceedings of the Dialogue Robot Competition 2023, 2023.

[6] 鈴木順大, 石垣龍馬, 宿里晃太郎, 河窪大介, 酒造正樹, 前田英作. ただ 1 つのプロンプトによるタスク指向型対話システムの実現. 言語処理学会第 30 回年次大会 (NLP2024), 2024. (発表予定).

[7] Daisuke Kawakubo, Masaki Shuzo, Hiroaki Sugiyama, and Eisaku Maeda. Asymmetric communication: cognitive models of humans toward an android robot. Frontiers in Robotics and AI, Vol. 10, No. 1267560, 2023.

[8] Makoto Kawamoto, Masaki Shuzo, and Eisaku Maeda. Improving user's sense of participation in robot-driven dialogue. Advanced Robotics, 2023.

[9] Erik Ekstedt and Gabriel Skantze. TurnGPT: a transformer-based language model for predicting turntaking in spoken dialog. In Findings of the Association for Computational Linguistics: EMNLP 2020, pp. 2981-2990, 2020.

[10] Cecilia Ford and Sandra A. Thompson. Interactional units in conversation: syntactic, intonational, and pragmatic resources for the management of turns. Studies in Interactional Sociolinguistics, Vol. 13, No. 3, pp. 134-184, 1996.

(C) The Association for Natural Language Processing, (Licensed under CC BY 4.0）https://creativecommons.org/licenses/by/4.0/


# 生成的後処理ネットワークによる タスク指向型対話システムの最適化

大橋厚元 東中竜一郎
名古屋大学大学院情報学研究科
\{ohashi.atsumoto.co@s.mail, higashinaka@i\}.nagoya-u.ac.jp

## 概要

後処理ネットワーク (post-processing network; PPN) は，対話システム中の各モジュールの出力を事後修正することで，システム全体のタスク達成能力を改善するコンポーネントである. 先行研究において，出力が固定次元のモジュールに対する PPN の有効性は示されてきたが，言語生成モジュール (NLG) の出力は後処理できないという制限があった. 本研究では，NLG の後処理を実現するため，言語モデルを活用した生成的後処理ネットワーク (GenPPN) を提案する。具体的には，GenPPNをタスク達成に対して強化学習で最適化するため, 各発話が全体のタスク達成に与える貢献度を定量化し，報酬関数に導入する。シミュレーション評価実験と人間評価実験を通して, GenPPNによる NLG の後処理が，システムの性能改善に有効的であることを確認した ${ }^{1)}$.

## 1 はじめに

典型的なタスク指向型対話システムは，4つのモジュール，すなわち，言語理解 (NLU), 状態追跡 （DST），方策（Policy），言語生成（NLG）からなるパイプライン構造を取る $[1,2]$. パイプライン型対話システム全体としてのタスク達成能力改善のため，実際の対話の中でこれらモジュールを直接学習する強化学習べースの手法が，これまで多く提案されている $[3,4,5]$.

近年我々は，学習不可能なモジュール（例えば， ルールベースや API ベース）を含む，任意のモジュールで構成された対話システムの最適化に向けて，後処理ネットワーク（post-processing network; PPN）を提案した [6]. この手法では，モジュール自身を学習する代わりに，モジュールの出力を修正するコンポーネント PPNを強化学習によって最

図 1 NLU，DST，Policy のための MLPベース PPN [6] と，我々が提案する NLG のための PLM ベース GenPPN

適化する。この PPNは，NLU，DST，Policy の 3 モジュールに適用され，複数の対話システムのタスク達成率を改善した。一方，PPN は多層パーセプトロン（MLP）をベースとした分類モデルによって実装されているため, NLGが出力する自然言語の後処理は行えないという制限があった。

本研究では，NLGの後処理を実現するため，事前学習済み言語モデル（PLM）を基盤とした生成的後処理ネットワーク（GenPPN）を提案する. 図 1 に，従来の MLP ベース PPN と我々の GenPPN の比較を示す. GenPPN の学習において，PLM の強化学習フレームワーク $[7,8]$ を適用するには，各ターンにおける発話ごとの報酬（発話レベルの報酬）が必要となる。しかし，タスク指向型対話における一般的な報酬設計では，対話の最後に一度だけ得られるタスク達成／失敗のみが用いられる（対話レベルの報酬)。ここで，対話レベルの報酬を発話レベルに分配できればよいと考えられるが，そのためには，各発話が最終的なタスク達成にどの程度寄与したかが分からなければならない。そこで，本研究では，各発話の意味表現である対話行為 (dialogue act; DA) がタスク達成にどれだけ影響するかを定量化できる DA 貢献度を考案し，報酬関数に導入する。

提案手法の有効性検証のため, MultiWOZ データセット [9] とユーザシミュレータを用いた自動評価実験を実施し，異なる NLG が含まれる複数の対話システムのタスク達成能力を，GenPPNが一貫して改善できることを確認する。さらに，ユーザシミュ

図 2 GenPPNの最適化アルゴリズムの概念図. GenPPN M は，後処理として，対話システムの NLGによって生成された発話 $u$ を $u^{\prime}$ に書き換える。この $\mathcal{M}$ による書き換えは，DA 貢献度 $c_{(I, s)}$ に基づいて計算される報酬 $r\left(u^{\prime}\right)$ を用いて，システムのタスク達成能力に向けて最適化される.

レータによって最適化された GenPPNが，人間との対話においても有効であることを示す.

## 2 提案手法

図 2 は, GenPPN とその学習アルゴリズムの概念図を示している。対話システムがユーザとの対話を繰り返す中で，GenPPN は強化学習によって最適化される. 各対話において，ターン $t$ におけるユーザ発話から, システムの NLU 及び DST が対話状態を推定する。 その対話状態に基づいて Policy が次のシステムの行動を DA $a_{t}$ として決定する. ここで， DA $a$ は, \{(Inform, Choice, 21), (Inform, Area, centre) $\}$ のように, 意図 $I$, スロット $s$, 值 $v$ のトリプル 1 つ以上で構成される：

$
a=\left.\{\left(I_{i}, s_{i}, v_{i}\right)|i=1, \ldots,| a \mid\right.\}
$

次にシステムの NLG は, $a_{t}$ をシステム発話 $u_{t}$ に変換する。ここで，GenPPN M が後処理，すなわち $u_{t}$ の書き換えを行う. 具体的には, 対話履歴 $h_{t}$, 及び $u_{t}$ と $a_{t}$ から作成されるプロンプト $x_{t}=\operatorname{Prompt}\left(h_{t}, a_{t}, u_{t}\right)$ を入力された $\mathcal{M}$ が, 後処理後の新しい発話 $u_{t}^{\prime} \sim \mathcal{M}\left(x_{t}\right)$ を生成する（詳細は 2.1 節を参照)、ユーザは， $u_{t}^{\prime} を$ 受け取り，そこから理解したシステム DA $\hat{a}_{t}$ に基づいて次のターン $t+1$ におけるユーザ発話 $u_{t+1}$ を出力する. このやり取りは，ユーザのゴールが達成されるまで，もしくは最大ターン数に達するまで繰り返される。

対話終了後，最大ターン数に達するまでにユーザがタスク達成できたかどうかが，対話結果 $e \in\{0,1\}$ として評価される（0/1 は, 成功/失敗を意味する). 本研究の目的は, $e$ の期待値を最大化するような $\mathcal{M}_{\theta}$ の最適パラメータ $\theta^{*}$ を獲得することである：

$
\theta^{*}=\underset{\theta}{\arg \max } \underset{U^{\prime} \sim \mathcal{M}_{\theta}(X)}{\mathbb{E}}\left[e\left(U^{\prime}\right)\right]
$

なお, $U^{\prime}=\left.\{u_{1}^{\prime}, u_{2}^{\prime}, \ldots, u_{T}^{\prime}\right.\}$ は, 合計 $T$ ターンからなる対話において， $\mathcal{M}_{\theta}$ が各ターンのプロンプト $X=\left.\{x_{1}, x_{2}, \ldots, x_{T}\right.\}$ からサンプルしたシステム発話集合を示す.

ここで，式 (2) は，対話最後に得られる一つの評価値 $e$ のみを用いて, $T$ ターン分の全発話の生成を学習することを示すが，M の最適化においては， このスパースな報酬は実用的ではない，そこで，各ターンの発話が対話全体のタスク達成にどの程度寄与したかを考慮した発話レベル報酬 $r$ を用いて式 (2)を近似する：

$
\theta^{*}=\underset{\theta}{\arg \max } \underset{U^{\prime} \sim \mathcal{M}_{\theta}(X)}{\mathbb{E}}\left[\sum_{u_{t}^{\prime} \in U^{\prime}}^{T} r\left(u_{t}^{\prime}\right)\right]
$

GenPPN は， $r$ を報酬とした強化学習によって更新される（学習の詳細なアルゴリズムは A. 1 を参照されたい). 以降では, GenPPNと $r$ の設計の詳細をそれぞれ説明する。

## 2.1 PLM による生成的後処理

GenPPN としては, Transformer [10] ベースの PLM を仮定する，入力プロンプトには，対話履歴と DA を考慮して，オリジナルのシステム発話を書き換えるための指示が含まれる. GenPPN は強化学習を通して, システム発話の最適化な書き換え $u^{\prime}$ を生成するように学習されるが，学習の初期時点であっても最低限プロンプトに従った応答生成ができることが好ましい，そのため，タスク指向型対話 $[11,12]$ を含む多くの NLP ベンチマークで，高い指示追従能力を示している instruction-tuned model $[13,14]$ を， GenPPN の基盤モデルとして採用する。

## 2.2DA 貢献度による報酬設計

NLG および GenPPN の役割は，ユーザにDAを伝えること，つまり $a=\hat{a}$ となる発話を生成することである。したがって，式 (3) における発話レベル報酬 $r$ としては，まず $a$ と $\hat{a}$ の一致率が考えられる。 しかし, この計算には対話レベルの評価値 $e$ が考慮されていないため, 式 (2) の近似には不適である.我々は, 各発話の $a$ が最終的な $e$ にどれだけ影響したかを定量化するための DA 貢献度を設計し，これを $a$ と $\hat{a}$ の一致率に重み付けすることで，対話レべルな評価値を考慮した発話レベル報酬を設計する。

まず，各対話の終了時, $a_{t}$ と $\hat{a}_{t}$, そしてその対話の結果 $e$ からなるトリプルを全ターン分, $\mathrm{DA}$ 履歴 $\mathcal{D}$ に追加する. 任意の対話数のサンプル後, $\mathcal{D}$ に含まれる全 $(a, \hat{a})$ ペアを，それぞれの $e$ の値，つまりタスク達成/失敗に基づいて, タスク成功 DA 集合 $\mathcal{S}$ と，タスク失敗 DA 集合 $\mathcal{F}$ に分ける：

$
\begin{aligned}
\mathcal{S} & =\{(a, \hat{a}) \mid(a, \hat{a}, e) \in D, e=1\} \\
\mathcal{F} & =\{(a, \hat{a}) \mid(a, \hat{a}, e) \in D, e=0\}
\end{aligned}
$

そして, 各 $(I, s, v) \in a$ の貢献度 $c_{(I, s)}$ を以下のように計算する：

$
c_{(I, s)}=\frac{n_{(I, s)}^{\operatorname{Rec}, \mathcal{S}}+n_{(I, s)}^{\mathrm{Unr}, \mathcal{F}}}{n_{(I, s)}^{\operatorname{Rec}, \mathcal{S}}+n_{(I, s)}^{\operatorname{Rec}, \mathcal{F}}+n_{(I, s)}^{\mathrm{Unr}, \mathcal{S}}+n_{(I, s)}^{\mathrm{Unr}, \mathcal{F}}}
$

ここで, $n_{(I, s)}^{\mathrm{Rec}, S}$ は, タスク達成した対話の中で, $(I, s)$ がユーザに正しく伝わった回数である：

$
n_{(I, s)}^{\operatorname{Rec}, \mathcal{S}}=\sum_{(a, \hat{a}) \in \mathcal{S}} \sum_{\left(I^{\prime}, s^{\prime}, v^{\prime}\right) \in a \cap \hat{a}}\left[(I, s)=\left(I^{\prime}, s^{\prime}\right)\right]
$

同様に， $n_{(I, s)}^{\mathrm{Unr}, \mathcal{S}}$ はタスク達成対話の中で $(I, s)$ がユー ザに伝わらなかった回数, $n_{(I, S)}^{\mathrm{Rec}, \mathcal{F}}$ はタスク失敗対話の中でユーザに伝わった回数, $n_{(I, s)}^{\mathrm{Unr}, \mathcal{F}}$ はタスク失敗対話の中でユーザに伝わらなかった回数を示す。つまり， $c_{(I, s)}$ は， $(I, s)$ がユーザに伝わること（又は，伝わらないこと）とタスク達成（又は，タスク失敗） の共起確率を示しており, これは， $(I, s)$ のタスク達成に対する重要度を定量化していると考えられる。

最後に， $c_{(I, s)}$ を用いて, GenPPN が生成した発話 $u_{t}^{\prime}$ の報酬 $r\left(u_{t}^{\prime}\right)$ を以下のように計算する：

$
\begin{gathered}
r\left(u_{t}^{\prime}\right)=\operatorname{Aggregate}\left(w\left(a_{t}, \hat{a}_{t}\right)\right) \\
w\left(a_{t}, \hat{a}_{t}\right)=\left.\{\tau \cdot c_{(I, s)} \mid(I, s, v) \in a_{t} \cap \hat{a}_{t}\right.\} \\
\cup\left.\{-\tau \cdot c_{(I, s)} \mid(I, s, v) \in a_{t} \cap \overline{\hat{a}}_{t}\right.\}
\end{gathered}
$

つまり $c_{(I, s)}$ に対して， $(I, s)$ がユーザに正しく認識されていれば正のスコア $\tau$ が，認識されていなければ負のスコア $-\tau$ が重み付けされる。 $\tau$ はハイパー パラメータであり, Aggregate 関数は, $a_{t}$ に対して計算された重み付きスコア集合 $w\left(a_{t}, \hat{a}_{t}\right)$ をスカラ值にマッピングするための関数である. Aggregate 関数としては以下の二つを用意し，いずれが良いかは実験的に検証する：

mean $w\left(a_{t}, \hat{a}_{t}\right)$ の平均を出力する.

absmax $w\left(a_{t}, \hat{a}_{t}\right)$ における絶対値が最大のスコアを採用する.これは，貢献度の高い $(I, s)$ を優先的に学習する戦略である。

## 3 実験

MultiWOZ データセット [9] に基づいて実装された対話システムとユーザシミュレータを用いて， GenPPN の有効性を評価した. MultiWOZ には旅行案内における店員と顧客の対話が収録されている。

本実験を通して，タスク指向型対話システムの評価用プラットフォームである ConvLab-2 [15] を使用した. 以降で，本実験で使用した対話システム， NLG ベースライン，GenPPN の実装を説明する。

対話システム NLGおよび GenPPNによる発話生成の性能評価においては，それ以外のモジュール （つまり，NLU，DST，Policy）の性能は高いことが望ましい。そこで，ベースとなる対話システムとしては，ConvLab-2 で実装されたもののうち，最も性能の高いモジュールの組み合わせである BERT [16] ベースの NLU, ルールベースの DST, ルールベースの Policy を採用した.

NLG ベースライン提案手法が，多様な NLG に対して頑強に機能することを実証するため，アーキテクチャの異なる 4 種類の NLG モデルそれぞれに GenPPN を適用して有効性を検証した：(1) Template NLG, (2) SC-LSTM [17], (3) SC-GPT [18], (4) GPT-2 + RL [19]. 各モデルの詳細は A. 2 を参照されたい.

GenPPN GenPPN のための instruction-tuned PLM としては, Alpaca 7B [20]を採用した. このモデルは，52K からなる instruction データセットによって fine-tuning された LLaMA-7B [21] である. 計算コス卜削減のため, GenPPN の最適化では LoRA [22] を採用し, Alpaca の self-attention モジュールに追加された少量のパラメータのみを学習した. その他の学習の詳細は，A. 3 節を参照されたい。
表 1 各 NLG とそれらに GenPPN を適用した場合の対話システムの評価結果. GenPPN の添字は学習時に用いられた Aggregate 関数を示す. NLG と GenPPNのペアごとに，最も高いスコアが太字で表されている。*と**は， McNemar 検定において，それぞれ GenPPNによる Success の改善が $p<0.05$ と $<0.01$ で有意であったことを示す.

## 3.1 自動評価結果

シミュレータを用いた自動評価では，タスク指向型対話システムの評価尺度として標準的な 4 つ Turn（対話終了までに何ターン要したか), Inform F1（ユーザから要求された情報を適切に提供できたか) Book Rate（ユーザの条件に合った施設を予約できたか), Task Success（タスク達成率）を用いた. 加えて, 発話レベルの評価を行うために, $a$ と $\hat{a}$ の一致率を F1によって評価する DA F1 も用いた.

表 1 に評価結果を示す. いずれの NLG についても, GenPPN によって, 全てのスコアが改善した.特にSC-LSTM においては, GenPPN absmax によってタスク達成率が約 19 ポイント向上した. その他の NLGについても, absmax もしくは mean の少なくとも一方で，タスク達成率に有意な改善が見られた. なお, Aggregate 関数としては, mean と比べ absmax を用いた方が，最終スコアは全体的に高性能であった.これは, 各発話サンプルについて, 全てのDA を平均的に学習するよりも，より重要な DAを優先して学習した方が，最終的なタスク達成能力の向上に効果があることを示している。

なお，GPT-2 + RLにおいては，GenPPN の適用によって DA F1 が低下していた.これは, GPT-2 + RL は，発話レベル，すなわちDA F1 に最適化されていることを考えると合理的な結果であると言える. そして，この GPT-2 + RLに対しても， GenPPN の適用によってタスク達成率が向上していることから, 対話全体のタスク達成能力向上のためには, 発話レべ表 2 人間評価結果. $N$ は各システムを評価した対話者の数である. “Und.", “App.”, “Sat.”" は, それぞれシステムの理解力, システム応答の適切さ, 対話満足度に関する主観評価を示す。*と** は, McNemar 検定において， GenPPN による Success の改善が， $p<0.05$ と $<0.01$ で有意であったことを示す。

ルだけでなく対話レベルも考慮した報酬設計が重要であることが示唆された.

## 3.2 人間評価結果

シミュレーションにより最適化された GenPPN が人間ユーザに対しても有効であるかを検証した.ここでは， 3.1 節において改善幅が最大であったSC-LSTM + GenPPN absmax の組み合わせを採用した. Amazon Mechanical Turk で合計 100 人以上の対話者を募集した。各話者はSC-LSTM のみを用いたシステム，又は GenPPNが装備されたシステムのいずれかと最大 20 ターン対話しタスク達成を判断した. また, システムの理解能力, システム応答の適切さ, 対話の満足度を 5 段階で主観的に評価した.

表 2 に評価結果を示す. GenPPNによって，タスク達成能力に関わる 2 つの尺度，すなわち Success と Turn が有意に改善していることがわかる。一方で, 主観評価尺度である, 理解力, 応答適切さ, 満足度には，有意な差は見られなかった. 理由として，GenPPN はタスク達成に関する尺度のみを考慮した報酬関数によって最適化されたことが考えられる. 発話の自然性など，よりユーザの主観評価を考慮した報酬設計を導入することでこれらのスコアが改善する可能性がある.

## 4 おわりに

本研究では，タスク指向型パイプライン対話システムのタスク達成能力強化を NLG の後処理によって実現するため, 生成的後処理ネットワー ク（GenPPN）を提案した. MultiWOZデータセットとユーザシミュレータを用いた実験によって， GenPPN は，異なるNLGで構成される多数の対話システムに頑強に機能することが示された. また，人間評価実験によって, シミュレータに対して最適化された GenPPN が人間に対しても有効であることも実証された。

## 謝辞

本研究は科研費「モジュール連動に基づく対話システム基盤技術の構築」(課題番号 19H05692) の支援を受けた。

## 参考文献

[1] Steve Young, Milica Gašić, Blaise Thomson, and Jason D. Williams. Pomdp-based statistical spoken dialog systems: A review. Proc. IEEE, pp. 1160-1179, 2013.

[2] Zheng Zhang, Ryuichi Takanobu, Qi Zhu, MinLie Huang, and XiaoYan Zhu. Recent advances and challenges in taskoriented dialog systems. Science China Technological Sciences, pp. 1-17, 2020.

[3] Hwaran Lee, Seokhwan Jo, Hyungjun Kim, Sangkeun Jung, and Tae-Yoon Kim. SUMBT+LaRL: Effective MultiDomain End-to-End Neural Task-Oriented Dialog System. IEEE Access, pp. 116133-116146, 2021.

[4] Zichuan Lin, Jing Huang, Bowen Zhou, Xiaodong He, and Tengyu Ma. Joint System-Wise Optimization for Pipeline Goal-Oriented Dialog System. arXiv preprint arXiv:2106.04835, 2021.

[5] Zhi Chen, Lu Chen, Xiang Zhou, and Kai Yu. Deep reinforcement learning for on-line dialogue state tracking. In Proceedings of Man-Machine Speech Communication, pp. 278-292, 2023.

[6] Atsumoto Ohashi and Ryuichiro Higashinaka. Postprocessing networks: Method for optimizing pipeline taskoriented dialogue systems using reinforcement learning. In Proc. SIGDIAL, pp. 1-13, 2022.

[7] Daniel M Ziegler, Nisan Stiennon, Jeffrey Wu, Tom B Brown, Alec Radford, Dario Amodei, Paul Christiano, and Geoffrey Irving. Fine-tuning language models from human preferences. arXiv preprint arXiv:1909.08593, 2019.

[8] Nisan Stiennon, Long Ouyang, Jeffrey Wu, Daniel Ziegler, Ryan Lowe, Chelsea Voss, Alec Radford, Dario Amodei, and Paul F Christiano. Learning to summarize with human feedback. In Proc. NeurIPS, pp. 3008-3021, 2020.

[9] Pawe 1 Budzianowski, Tsung-Hsien Wen, Bo-Hsiang Tseng, Iñigo Casanueva, Stefan Ultes, Osman Ramadan, and Milica Gašić. MultiWOZ - A Large-Scale MultiDomain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling. In Proc. EMNLP, pp. 5016-5026, 2018.

[10] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, L ukasz Kaiser, and Illia Polosukhin. Attention is All you Need. In Proc. NeurIPS, pp. 5998-6008, 2017.

[11] Wenbo Pan, Qiguang Chen, Xiao Xu, Wanxiang Che, and Libo Qin. A preliminary evaluation of chatgpt for zero-shot dialogue understanding. arXiv preprint arXiv:2304.04256, 2023.

[12] Vojtěch Hudeček and Ondrej Dusek. Are large language models all you need for task-oriented dialogue? In Proc. SIGDIAL, pp. 216-228, September 2023.

[13] Jason Wei, Maarten Bosma, Vincent Zhao, Kelvin Guu, Adams Wei Yu, Brian Lester, Nan Du, Andrew M. Dai, and Quoc V Le. Finetuned language models are zero-shot learners. In Proc. ICLR, 2022

[14] Hyung Won Chung, Le Hou, Shayne Longpre, Barret Zoph, Yi Tay, William Fedus, Eric Li, Xuezhi Wang, Mostafa Dehghani, Siddhartha Brahma, et al. Scaling instruction-finetuned language models. arXiv preprint arXiv:2210.11416, 2022.

[15] Qi Zhu, Zheng Zhang, Yan Fang, Xiang Li, Ryuichi Takanobu, Jinchao Li, Baolin Peng, Jianfeng Gao, Xiaoyan Zhu, and Minlie Huang. ConvLab-2: An OpenSource Toolkit for Building, Evaluating, and Diagnosing Dialogue Systems. In Proc. ACL, pp. 142-149, 2020.

[16] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In Proc. NAACL-HLT, pp. 4171-4186, 2019.

[17] Tsung-Hsien Wen, Milica Gašić, Nikola Mrkšić, Pei-Hao Su, David Vandyke, and Steve Young. Semantically Conditioned LSTM-based Natural Language Generation for Spoken Dialogue Systems. In Proc. EMNLP, pp. 17111721, 2015.

[18] Baolin Peng, Chenguang Zhu, Chunyuan Li, Xiujun Li, Jinchao Li, Michael Zeng, and Jianfeng Gao. Few-shot Natural Language Generation for Task-Oriented Dialog. In Findings of EMNLP, pp. 172-182, 2020.

[19] Atsumoto Ohashi and Ryuichiro Higashinaka. Adaptive natural language generation for task-oriented dialogue via reinforcement learning". In Proc. COLING, pp. 242-252, 2022.

[20] Rohan Taori, Ishaan Gulrajani, Tianyi Zhang, Yann Dubois, Xuechen Li, Carlos Guestrin, Percy Liang, and Tatsunori B. Hashimoto. Stanford Alpaca: An Instruction-following LLaMA model. https://github. com/tatsu-lab/stanford_alpaca, 2023.

[21] Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, et al. LLaMA: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971, 2023.

[22] Edward J Hu, yelong shen, Phillip Wallis, Zeyuan AllenZhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen. LoRA: Low-rank adaptation of large language models. In Proc. ICLR, 2022.

[23] John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, and Oleg Klimov. Proximal Policy Optimization Algorithms. arXiv preprint arXiv:1707.06347, 2017.

[24] Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever, et al. Language models are unsupervised multitask learners. OpenAl blog, Vol. 1, No. 8, p. 9, 2019.

[25] Diederik P Kingma and Jimmy Ba. Adam: A Method for Stochastic Optimization. arXiv preprint arXiv:1412.6980, 2014.

## A Appendix

## A. 1 強化学習による GenPPN の最適化

PLM を強化学習により最適化する先行研究 [8] に倣い, Proximal Policy Optimization (PPO) [23] をべースとした目的関数に $r$ (式 (5)) を導入して, GenPPNを学習する. Value networkとして, スカラ値を出力する線形層（ランダムに初期化されたパラメータ $\phi$ を持つ）を GenPPN に追加し，全学習可能パラメータを $\psi=[\theta ; \phi]$ とする. $\mathcal{M}_{\psi}$ の確率分布が元の $\mathcal{M}$ から大きく乘離することを避けるため, Kullback-Leibler (KL) divergfence によるぺナルティを $r\left(u_{t}^{\prime}\right)$ に足した値 $R_{t}$ をターン $t$ における発話 $u^{\prime}$ の最終的な報酬とする：

$
R_{t}=r\left(u_{t}^{\prime}\right)-\beta \log \frac{\mathcal{M}_{\psi}\left(u_{t}^{\prime} \mid x_{t}\right)}{\mathcal{M}\left(u_{t}^{\prime} \mid x_{t}\right)}
$

この $R_{t}$ と value network の出力から advantage estimate を計算し，これを用いた clipped surrogate objective $\mathcal{L}(\psi)$ [23] に基づいて GenPPNを最適化する. Algorithm 1 に，学習アルゴリズムの要約を示す.

## A. 2 NLG ベースラインの詳細

Template NLG [15] 各 DAを表す発話の人手によるテンプレート文直接使用する NLG モデル.

SC-LSTM [17] Reading gate 機構を用いた LSTM ベースのモデル．DA のバイナリ表現を入力特徴料とする。

SC-GPT [18] MultiWOZを含む，7 種類のタスク指向型対話データセットで学習された GPT-2 [24] ベースのモデル.

GPT-2 + RL [19] MultiWOZ に基づいて実装されたユーザのNLU を用い， $a$ と $\hat{a}$ の一致率のみ考慮した報酬で強化学習された GPT-2ベースのモデル.

## A. 3 GenPPN の学習詳細

GenPPN の基盤モデルである Stanford Alpaca 7B としては，Huggingface Hubで公開されている学習済み重み2)を用いた. 入力プロンプトと出力文の最大トークン数は, それぞれ 512 と 128 とした. 推論時の生成パラメータは, beam size, temperature, top- $p$ を全て 1 とした.また報酬計算で用いる $\tau$ （式 (6)）は 1 に設定した.

表 3 に LoRA 及び PPO におけるハイパーパラメータを示す. 強化学習では，合計 200 iteration の学習を行い， 1 iteration におけるバッチサイズは 512 ターン（約 50 対話に相当）とした. Adam オプティマイザ [25]を固定学習率 1e-5 で用いた. 学習には 16 機の V100 32GB GPU を用い， 200 iteration の学習に約 7 時間要した. 図 3 に, Template NLGに GenPPN を適用した場合の学習曲線を示す.

表 3 ハイパーパラメータ設定

 &  \\

図 3 Template NLGにGenPPN を適用し，それぞれの Aggregate 関数で学習した場合における報酬とタスク達成率の推移

2) https://huggingface.co/tatsu-lab/alpaca-7b-wdiff


# Prefix Tuning とキャラクタ属性の加減算を利用した キャラクタ風発話生成

藤原 寛隆 ${ }^{1}$ 新納 浩幸 ${ }^{2}$
1 茨城大学工学部情報工学科 2 茨城大学大学院理工学研究科情報科学領域
20t4066x@vc.ibaraki.ac.jp hiroyuki.shinnou.0828@vc.ibaraki.ac.jp

## 概要

特定のキャラクタの特徴を反映した発話を生成する技術は小説やアニメ，ゲームなどの応用において大いに需要がある.しかしながら既存手法の多くは変換規則を人手で構築する必要があり高コストである.また，対象キャラクタの言語モデルを構築する場合にも収集できる訓練データに限りがある。そこで，本研究では少ない訓練データから良質な言語モデルを構築する手法を提案する。 具体的には，キャラクタの持つ属性情報をべクトル (prefix) として明示的に与える. その際, 類似属性を持つ他キャラクタの発話から属性ベクトルを prefix-tuning の形式で学習させることで良質なべクトル表現を獲得する. また prefix 同士の加減算を利用することで属性同士の加減算を試みる。実験の結果，提案手法ではキャラクタの特徴を捉えた発話を生成することが難しいことがわかった. 一方で一部の実験では発話に改善が見られ，属性情報を明示的に与えることや属性の加減算が有効に機能する可能性が示唆された.

## 1 はじめに

近年，大規模言語モデル（Large Language Model,以下 LLM と略す) やその周辺技術の目覚ましい発展により言語モデルによるある程度自然な対話が実現された. また, API 等の整備により質問応答システムやゲームのキャラクタとの対話にLLMを組み込むなどの応用もみられるようになった.このような背景から，対話システムにキャラクタ性を持たせた発話を生成する技術には大いに需要がある.

キャラクタ性を反映した発話文を生成する研究は LLM 台頭以前よりいくつか行われてきたが，その多くが規則ベースの手法であり，手作業による規則の構築が高コストであるという問題があった。また，キャラクタの発話分を収集しその発話者の言語
モデルを構築する手法が考えられるが，小説やアニメ，ゲームなどの発話者から収集できる発話文の量には限りがあるという問題がある.

そこで本論文では少量の発話文からキャラクタの特徴を有した発話文を生成する言語モデルの構築を試みる。一般に言語モデルの fine-tuning には十分な量の訓練データが必要であり，少量の発話文のみからキャラクタの特徴を捉えることは困難である. そのため本論文ではキャラクタの属性に注目し，似た属性を持つキャラクタの発話文を活用することを提案する．具体的には，属性をべクトルとしてして扱い，類似属性を持つキャラクタの発話から prefix-tuning の形式で属性ベクトルの表現学習を行う. その後学習した属性べクトルを生成の際に入力文に付加することで対象キャラクタの特徵を捉えた発話の生成を目指す. また，属性べクトル同士の加減算についても調査を行う．例えば，"ッンデレ”という属性は”ツンツン”と”デレデレ”のようにより小さな属性に分けて考えることができる。そこで，それらを個別にベクトルとして表現しべクトル同士の加算の形で表現することを考える。このようにすることで属性べクトルの再利用性の向上や効率的な学習が期待される。

実験では日本語オープンコンテンツデータセットプロジェクトの Rosebleu ゲームシナリオをコーパスとし，属性を性別と Big Five (外向性，協調性，情緒安定性など) の高低の 22 属性とした. ベースラインは少量の発話文のみから prefix-tuning したものとし，提案手法で学習させた属性べクトルを prefix としたモデルと比較した. 実験の結果, 提案手法ではキャラクタの特徴を捉えた発話を生成することが難しいことがわかった. 一方で一部の実験では発話に改善が見られ，属性情報の明示的な付与や属性の加減算が言語モデルを利用したキャラクタ風発話の生成に有効に働く可能性が示唆された。

## 2 関連研究

## 2.1 キャラクタ風発話生成

話者の属性を利用した発話の特徴付けに関する研究は盛んに行われている. Mairesse と Walker は初めて高度にパラメータ化された会話生成器として PERSONAGE (personality generator) を提案した [1]. PERSONAGE は話者の性格として Big Five を採用しており, 外向性の軸に沿って多様な発話が生成できることが示された. 宮崎らは話者のキャラクタ性を特徴づける言語表現の基礎的分析として, 性別, 年齢, 会話相手との親密度についてどのような語彙の省略や書き換え，挿入があるのかを調査した [2]. また各文の機能部をキャラクタの属性に基づき確率的に選択した書き換え規則に従って変換することによってキャラクタ性を変換する研究もある [3].

キャラクタ風の発話生成には GPT などの言語モデルを使用したものも提案されている. 岸野らは $\mathrm{T} 5$ を使用して同一作品の別キャラクタの発話を対象キャラクタ風の発話に変換することで対象キャラクタの発話文を増補する手法を提案した [4]. また増補した発話文を用いてDAPTを行った後，対象キャラクタの発話文で TAPT を行うことで発話者の特徴を有した発話文を生成する言語モデルを構築することができることを示した.

## 2.2 Prefix Tuning

Li らは fine-tuning の代替手法として prefix-tuning を提案した [5]. これは言語モデル自体の重みを更新せず，タスクごとに学習可能な小さなべクトル (prefix)をすべての層の入力系列の前に付加することで学習させる. 実験ではベースとなる言語モデル

られることが示された. また彼らはそれぞれの層の prefix を個別に学習させるのではなく，より小さなべクトル $v$ を $\operatorname{dim}(v)$ から $\operatorname{dim}\left(h_{i}\right)$ に写す MLP で変換した方が学習が安定することを示した. ただし， $h_{i}$ は各層の prefixをすべて結合したべクトルである.

本研究ではキャラクタ属性のベクトル表現に prefix 使用する.

## 3 提案手法

本研究の提案手法を図 1 , 図 2 に示す. 本研究では prefix-tuning を用いて属性べクトルを学習する.学習は属性ベクトルを一般的な属性の特徴を表現する共通属性ベクトルと各キャラクタ固有の特徵を表現するキャラクタ属性ベクトルに分けて行う.これにより，一人称や作品固有の用語などのキャラクタや作品固有の表現が共通属性ベクトルを利用する際に悪影響を及ぼす可能性を低減することが期待される。

全体の学習は共通属性の学習の後対象キャラクタ属性ベクトルの学習を学習させるという流れをとる.まず，大量の複数キャラクタの発話から共通属性ベクトルを学習させ，それを固定した状態で対象キャラクタの少量の発話からキャラクタ属性ベクトルを学習させる.

## 3.1 共通属性ベクトルの学習

共通属性は加減算可能であることが求められる. そこで，word2vec の skip-gram [6] のように同時に出現する属性に対して内積が小さくなるように損失関数を修正する. 具体的には， 1 発話について発話者の共通属性の中から 1 つランダムに選び出し，選ばれなかった他の属性との内積の総和を損失関数に加える.これをバッチ内のすべての発話について行う. 従って, 最小化する目的関数は言語モデル自体の損失と上記のべクトル同士の内積の総和の和となる。

共通属性ベクトルの学習では, 共通属性べクトル，属性空間から prefix 空間に写す MLP (Prefix Generator)，prefix を各層に写す MLP と各キャラクタのキャラクタ属性ベクトルを学習させる ${ }^{1)}$.ここで学習されるキャラクタ属性ベクトルは対象キャラクタの発話生成には使用されないが，キャラクタや作品固有の情報が共通属性ベクトルに入り込まないように学習させる.

## 3.2 対象キャラクタベクトルの学習

対象キャラクタベクトルの学習では，対象キャラクタのキャラクタ属性ベクトルと prefixを各レイヤーに写す MLPのみを学習させる. ここで学習し

図1 共通属性ベクトルの学習

図 2 キャラクタ属性ベクトルの学習

た対象キャラクタベクトルを生成時に利用する.

## 4 実験

## 4.1 言語モデル

ベースの原語モデルには rinna 社が公開している japanese-gpt2-medium を使用した2).これは Hugging Face 社の Transformers ライブラリから，モデル名 "rinna/japanese-gpt2-medium"で利用することができる.

## 4.2 入力・出力

入力文は直前の対話 $1 ， 2$ 文について”発話者：発話文 $\backslash n$ ”を結合し，さらに対象キャラクタについて”[SEP] 発話者：”を結合した文となる。入力は入力文と対象キャラクタの持つ共通属性 prefix とキャラクタ属性 prefix を結合したものとなる. 出力は直前の対話に続く対象キャラクタの発話文である.

## 4.3 データ

日本語オープンコンテンツデータセットプロジェクトの Rosebleu ゲームシナリオ3) の一部から 40

2) https://huggingface.co/rinna/japanese-gpt2-medium

3) https://gitlab.com/open_contents_datasets/Rosebleu
キャラクタについて大力文を収集した。共通の属性については Big Five の視点から各項目について高低のラベルと男女のラベル計 22 種についてラベル付けを行った. ラベル付けは著者一名により行われた。

## 4.4 評価指標

キャラクタ性を反映した生成文であるかどうかは人手により評価を行った．評価者は著者一名であり，表 1 の評価基準に基づき生成文 100 件に対して評価を行った。

表 1 評価基準

 \\

## 4.5 実験結果

prefix-tuning と提案手法でキャラクタ"空”の言語モデルを構築し，それぞれについて生成文 100 件に対して評価を行った. prefix-tuning ではプレフィ
表 2 生成文 100 件に対する人手評価

表 3 生成文 100 件に対する人手評価（加算，損失の修正の有効性検証）

クス長 $t=50,100$ としてそれぞれ"空”の全発話のうち 100 件について 40epoch 学習させた. 提案手法についてはプレフィックス長 $t=50,100$, prefix 全体に占めるキャラクタ属性の割合を $r=0.25,0.5$ とした. また，共通属性べクトルの学習には”空”以外の 39 キャラクタのすべての対話について 20epoch, キャラクタベクトルの学習に"空”の全発話のうち 100 件について 20epoch, 計 40epoch 学習させた. prefix-tuning を PREFIX-TUNE，提案手法を Ours として評価結果を表 2 に示す.

人手評価の結果から，少量の発話から prefix-tuning を行った方が提案手法に比べキャラクタらしい発話を生成できることがわかった。一方で人手評価の Natural のスコアが提案手法の方が高いことから， キャラクタ性を問わない文章の自然さという点では提案手法の方が優れているとわかった.

## 5 考察

## 5.1 属性の加算の有効性

実験では，同じ属性の組を持つ発話文が共通属性の訓練データに含まれており，真に属性の加算が有効に機能しているかどうかの検証が不十分である. そこで，共通属性の訓練データから対象キャラクタの”空”と同じ属性の組を持つキャラクタの発話文を除外し再度生成文 100 件に対して評価を行った. 結

評価の結果 $t=100, r=0.25$ を除くすべての場合で Good, Natural ともにスコアが悪化しなかった. このことから，属性の加算は有効に機能しているものと推察される. 各スコア改善した原因については,類似属性を持つキャラクタの発話文を訓練データから抜いたことでデータ数のばらつきが緩和されたことが考えられる. $t=100, r=0.25$ で悪化した原因についてはより詳細な調査が必要である.

## 5.2 損失修正の有効性

さらに属性の加算において共通属性ベクトル同士の内積を損失として加算することが有効に機能しているかどうかを検証するため，損失を修正したものとそうでないものについて評価を行った. 結果を Ours $_{\text {no-same-loss }}$ として表 3 に示す.

評価の結果 $t=100, r=0.25$ を除くすべての場合

アとなった. このことから，損失の修正が有効に機能していることがわかる．また，損失を修正することによってデータ数のばらつきによる悪影響が緩和された可能性も考えられる。

以上を踏まえ，訓練データにおけるデータ数のばらつきを含むより詳細な検証を今後の課題とする。

## 6 おわりに

本研究ではキャラクタの属性をベクトルで表現し明示的に与えることで少量の発話文から特徴を捉えた発話を生成できるかを調査した. 実験の結果，提案手法ではキャラクタの特徴を捉えた発話を生成することが難しいことがわかった.

また属性同士の加算についても調査を行った。その結果一部設定でベースラインを上回る結果となり，キャラクタの属性情報の明示的な付与や加減算が有効に働く可能性が示唆された。

## 7 謝辞

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

## 参考文献

[1] François Mairesse and Marilyn Walker. PERSONAGE: Personality generation for dialogue. In Annie Zaenen and Antal van den Bosch, editors, Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics, pp. 496-503, Prague, Czech Republic, June 2007. Association for Computational Linguistics.

[2] 宮崎千明, 平野徹, 東中竜一郎, 牧野俊朗, 松尾義博, 佐藤理史. 話者のキャラクタ性に寄与する言語表現の基礎的分析. 言語処理学会第 20 回年次大会発表論文集, pp. 232-235, 2014.

[3] 宮崎千明, 平野徹, 東中竜一郎, 牧野俊朗, 松尾義博, 佐藤理史. 文節機能部の確率的書き換えによる言語表現のキャラクタ性変換. 人工知能学会論文誌, Vol. 13, No. 1, pp. DSF-515, 2016.

[4] 望叶岸野, 嘉那子古宮, 浩幸新納. T5 による特定キャラクター風発話への変換とその言語モデルの構築. Technical Report 13, 茨城大学大学院理工学研究科情報工学専攻, 東京農工大学大学院工学研究院先端情報科学部門, 茨城大学大学院理工学研究科情報科学領域, 2022.

[5] Xiang Lisa Li and Percy Liang. Prefix-tuning: Optimizing continuous prompts for generation, 2021.

[6] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word representations in vector space, 2013.


# タスク指向型対話システムへの項目反応理論の適用による ユーザのタスク達成能力の推定

平井龍郭傲東中竜一郎
名古屋大学情報学研究科
\{hirai.ryu.k6@s.mail, guo.ao.i6@f.mail, higashinaka@i\}.nagoya-u.ac.jp

## 概要

タスク指向型対話システムの性能は改善しているものの，すべてのユーザが自身のタスクを完全に達成できるわけではない。システムについての知識の少ないユーザは，システムに対しての話し方が分からず，対話破綻を引き起こしたり，タスクが達成できなかったりする。この問題を解決するためには， システムはユーザのタスク達成能力を推定し，ユー ザの能力に合わせて対話することが望ましい. 本研究では，教育分野で受験者の能力推定によく用いられる項目反応理論をタスク指向型対話システムに適用し，ユーザのタスク達成能力を推定する手法を提案する. 推定したタスク達成能力を用いてスロットの正答確率を予測する実験を行った結果，提案手法はベースラインよりも高い精度でスロットの正答確率を予測できることが分かった。

## 1 はじめに

タスク指向型対話システムの性能は改善しているものの，すべてのユーザが自身のタスクを完全に達成できるわけではない [1]. 例えば, OpenAI 社の GPT-4 [2] などの大規模言語モデルを用いたタスク指向型対話システムにおいてもその性能は高くはない $[3,4]$. 特に，システムについての知識の少ないユーザは，システムに対しての話し方が分からず，対話破綻 [5] を引き起こしたり，タスクが達成できなかったりする. システムがユーザのタスク達成能力を推定し，ユーザの能力に合わせて対話することは，この問題の解決策の一つである.

本研究では，教育分野でよく用いられる項目反応理論 (Item Response Theory, IRT)を用いて，ユーザのタスク達成能力を推定する手法を提案する．具体的には，まず，タスク指向型対話システムとユーザの対話を収集する．対話収集時には，ユーザに対話
ゴールを提示し，ユーザには当該対話ゴールに基づいて対話をさせる．次に，所定のスロットを適切に埋められるかどうかを問題だと見做し，IRTを用いてスロットの項目特性を推定する．最後に，能力を推定したいユーザに対話ゴールに基づいて対話をさせ，IRT を適用することで，ユーザのタスク達成能力を推定する。

MultiWOZ データセット [6] を用いて構築したタスク指向型対話システムにおいて，推定したタスク達成能力からスロットの正答確率を予測する実験を行った結果，提案手法はベースラインよりも有意に高精度でスロットの正答確率を予測可能であることが分かった．また，タスク達成能力を推定するための適切な対話ゴールの作成のため，推定した項目特性を用いて MultiWOZ データセットにおけるスロットの困難度や識別力などの特徴の分析を行った.

## 2 項目反応理論

本研究で用いる項目反応理論 (以降，IRT) を簡単に説明する．IRTとはテストで受験者の能力を数値化する測定の理論である [7]. 従来のテストでは受験者が正答した問題の配点を足し合わせた点数を受験者の得点とする. しかし，あらかじめ決められた配点によって正しく受験者の能力を表すことができるとは限らない。

IRT を用いたテストでは，大量のユーザの正誤データを使用して，問題ごとに受験者の能力 $\theta$ と正答率 prob の関係を計算する．受験者の能力と正答率の関係は，次式の通り識別力 $a$ ，困難度 $b$ ，当て推量 $c$ の項目特性で表される.

$
\text { prob }=c+\frac{1-c}{1+e^{-a(\theta-b)}}
$

識別力は問題が受験者の能力の高低を識別する度合いを表す。困難度は項目の難しさの度合いを表す.当て推量は受験者が偶然に正解できる確率を表し，多肢選択問題では選択肢数の逆数が当て推量の目安

対話ゴールと正誤のラベル

図 1 提案手法の全体像

となる．項目特性を用いて，受験者の回答の正誤パターンが最も起きやすい能力の値が受験者の能力として推定される。

## 3 関連研究

ユーザの能力を推定する研究として，humancomputer interaction の分野では，Ghazarian らがユー ザのスキルに適応的なインタフェースの開発のため，デスクトップアプリケーションのマウスの動きなどを用いた自動スキル分類器を構築した [8]. また，Lo らは学習者の認知スタイルを推定し，認知スタイルに適応的なウェブベースの学習システムを開発した [9].

Voice user interface (VUI) や音声対話システムにおいては，Ward らがユーザの発話の速度に合わせてシステムの発話の速度を変化させるシステムを提案した [10]. Myers らはユーザの VUI との対話における行動をクラスタ化した [11]. 駒谷らはユーザの 「システムに対する習熟度」，「ドメインに関する知識レベル」，「性急度」を推定してユーザに応じてシステムの振る舞いを変化させるシステムを提案した [12]. しかし，これらの研究ではユーザの能力の推定時に対話内容を考慮していない。

対話システムにおける IRT の利用については, Sedoc らがチャットボットの評価に IRT を導入した [13]. この研究では，チャットボットのペアを IRT における受験者，入力文をIRTにおける問題と見做し，入力文とモデルの両方の評価を可能とした. しかし，この研究はモデルの性能や入力文の質を推定しており，ユーザの能力は推定していない.

## 4 提案手法

タスク指向型対話システムにIRTを適用し，ユー ザのタスク達成能力を推定する手法を提案する. 図 1 に提案手法の全体像を示す. まず，対話ゴールに基づいたシステムとユーザの対話を収集する。次に，対話ゴールと対話終了時の信念状態を比較してスロットの正誤判定を行う. そして, 周辺最尤法 $[14,15]$ を用いてスロットごとに項目特性 (困難度,識別力，当て推量) を推定する．周辺最尤法は受験者の能力の分布を標準正規分布と仮定して項目特性のみを推定する手法であり，受験者数が増えても安定した結果が得られることが知られている.

タスク指向型対話システムの対話ゴールには, ユーザがシステムに伝えるべきスロットの内容 (inform ゴール)，および，尋ねるべきスロット (request ゴール) が含まれる. 本研究では， 1 つの対話を 1 つのテストとし，所定のスロットを適切に埋められるかということを問題だと見做し，問題ごとに正誤判定を行うことでIRT を適用する。

inform ゴールのスロットでは，ユーザがスロットの値を適切にシステムに伝えることができれば正答とする.vをゴールにおけるスロットの値， $b[d][s]$ を対話終了時におけるドメイン $d$ ，スロット $s$ の信念状態とすると，正誤 ans $\in\{0,1\}$ は $v=b[d][s]$ のとき ans $=1$ で,$v \neq b[d][s]$ のとき ans $=0$ となる. request ゴールのスロットでは，ユーザがシステムから適切に情報を聞き出せたら正答とする. $s$ を対話ゴールに含まれるスロット，S[d] を対話中でドメイン $d$ についてシステムがユーザに情報を伝えたスロットの集合とすると，正誤 ans $\in\{0,1\}$ は $s \in S[d]$ のとき ans $=1$ で,$s \notin S[d]$ のとき $a n s=0$ となる.

タスク達成能力を推定したいユーザには，所定の対話ゴールに基づいて対話をさせる．そして，各スロットの正誤を判定し，Expected A Posteriori (EAP)推定 [16] によってタスク達成能力を推定する。式 （1）を用いることで，タスク達成能力からスロットの正答確率を求めることができる.

## 5 実験

実際に対話を収集し，IRTを用いてユーザの能力を推定した。そして，推定したユーザの能力を用いてスロットの正答確率の予測精度を評価した。 スロットを正しく埋める能力がタスク達成能力に対応するとした仮定の下で，提案手法が各スロットの正
答確率を正しく推定できれば，提案手法はユーザのタスク達成能力を正確に推定可能といえる.

また，タスク達成能力を推定するための適切な対話ゴールの作成のため, 推定したスロットの困難度や識別力といった特徴や，ユーザの能力とタスク達成回数の関係の分析を行った. なお，本実験における対話データ収集については，事前に倫理的観点における承認を所属組織から得ている。

## 5.1 対話システム

実験に使用する対話システムは MultiWOZ 2.1 データセット $[6,17]$ を用いて構築した. MultiWOZ は旅行案内タスクにおける，人間同士の英語の対話データセットである. ユーザがシステムに観光地を尋ねたり, ホテルや飲食店などの予約を依頼したりする対話が含まれている. ドメインは restaurant, hotel, attraction, taxi, train, hospital, police $97 \supset$ で，対話数は 10,438 である.

対話システムには，4つのモジュールからで構成されるパイプラインシステムを使用した. パイプラインシステムは BERT [18] をベースとした発話認識モジュール (NLU)，ルールベースの対話状態追跡モジュール (DST), ルールベースの行動決定モジュー ル (Policy) [19], それに，テンプレートを用いた発話生成モジュール (NLG) が連結されている. システムの構築にあたっては，タスク指向型対話システムの実装のためのツールキットである ConvLab-2 [20, 21] を使用した。 パイプラインシステムは ConvLab-2 によって実装することが可能なシステムの中で最もタスク達成率が高い [20].

## 5.2 実験手順

クラウドソーシングのプラットフォームである Amazon Mechanical Turk ${ }^{1)}$ 上で対話の収集を実施した. 369 人のワーカに対話ゴールを提示し，システムと対話させた. 1 人のワーカは 3 回連続で対話を行った. 369 人のうち, 190 人には対話ごとにランダムで生成された対話ゴール (ランダムゴール)を提示し, 179 人にはあらかじめ決められた 3 つの対話ゴール (固定ゴール) をランダムな順で提示した. 1 つの対話ゴールに含まれるドメイン数は 3 以上 4 以下で，スロット数は 15 以上 20 以下である.

収集した対話の統計量は表 1 の通りである.トー クン数の計測にあたっては, Python のライブラリで

表 1 収集した対話の統計量. 発話数，トークン数はシステムとユーザの合計の値である.

ある NLTK [22]を使用した. 固定ゴールは平均タスク達成率がランダムゴールよりも高く, ゴールの難易度が若干低かった。

5 分割交差検証で結果を評価した. 具体的には,収集した対話データをユーザの重複がないように 5 分割し, そのうち 1 つをテストデータ, 残りの 4 つを学習データとした. まず，IRTを用いて学習デー タの各スロットの項目パラメータを推定した. 推定には Python の IRT のライブラリである GIRTH ${ }^{22} を$用いた。続いて，学習データから推定した項目パラメータとテストデータの 1 対話目から推定したユー ザのタスク達成能力を用いて，テストデータの 2 対話と 3 対話目の各スロットの正答確率を予測した. この操作は各分割に対して実施した。

## 5.3 ベースライン

スロットの正答確率の求め方が異なる 2 種類のベースラインを用意した.

ベースライン (スロット) 対象スロットの正答率の平均をスロットの正答確率とする手法. すなわち，学習データにおける全ユーザのスロット $s$ の正解確率がテストデータにおけるユーザ $u$ のスロット $s$ の正答確率となる.

ベースライン (ユーザ) テストデータの 1 対話目における対象ユーザの正答率の平均をスロットの正答確率とする手法. すなわち，1対話目におけるユーザ $u$ の全スロットの正答確率の平均值が，ユー ザ $u$ のスロット $s$ の正答確率となる.

## 5.4 評価指標

評価指標には，正答確率の推定精度を用いた.これは，推定された正答確率でスロットの正誤を予測する試行を無限回行った時の平均推定精度に相当する。具体的には，推定したスロットの推定確率を prob，実際のユーザによる正誤を ans $\in\{0,1\}$ とす

2) https://github.com/eribean/girth
表 2 正答確率の予測精度 (ランダムゴール). 太字は各カラムで最も値が大きいスコアを示す.

表 3 正答確率の予測精度 (固定ゴール). 太字は各カラムで最も値が大きいスコアを示す.

ると，各スロットの正答確率の推定精度は次式の通りである.

$
a c c= \begin{cases}\text { prob } & (\text { ans }=1) \\ 1-\text { prob } & (\text { ans }=0)\end{cases}
$

## 5.5 結果

ランダムゴールの結果を表 2 に, 固定ゴールの結果を表 3 に示す. Bonferroni 補正を用いた Wilcoxon の符号順位和検定を行ったところ，ランダムゴールと固定ゴールのいずれにおいても，提案手法は他の手法よりも推定精度が有意に大きいことが分かった $(p<.01)$.

また， 2 対話目と 3 対話目の結果を比べると，いずれの手法においても推定精度の差はほぼなく, 対話回数による対話の性質の違いはほとんどないことが分かった. さらに，ランダムゴールと固定ゴールの結果を比べると，固定ゴールの方が推定精度が高かった.これは，固定ゴールでは学習データ内に同一のスロットについての正誤の情報を多く含み，より正確にスロットの項目特性を推定できているためであると考えられる. タスク指向型対話システムに IRT を適用して項目特性を得るときには，1つのスロットあたりの正誤の情報を多く収集し項目特性を推定する方が良いといえる。

## 5.6 項目特性の分析

図 2 にスロットごとの識別度と困難度の分布を示す. ランダムゴールと固定ゴールのいずれにおいても，ほぼ全てのスロットは識別力が 0 より大きく， ユーザのタスク達成能力を推定に有用である. このため, 識別力の高いスロットを適切に選択することでユーザの能力を推定するための適切な対話ゴール

(a) ランダムゴール

(b) 固定ゴール図 2 全てのスロットについての推定された識別力と困難度

(a) ランダムゴール

(b) 固定ゴール図 31 対話目から推定されたユーザのタスク達成能力と 2，3対話目でタスク達成した回数の関係

を作成することが可能になると考えられる。

## 5.7 ユーザの能力の分析

図 3 に 1 対話目から推定されたユーザのタスク達成能力と 2 対話目と 3 対話目におけるタスク達成回数の関係を表す.ランダムゴールと固定ゴールのいずれにおいてもタスク達成する回数が多いユーザほどタスク達成能力が高い傾向にあり，推定した能力がユーザのタスク達成能力を適切に表しているといえる。

## 6 まとめと今後の課題

本研究ではユーザの能力に適応的なタスク指向型対話システムの構築に向けて，タスク指向型対話システムに IRT を適用しユーザのタスク達成能力を推定する手法を提案した. 予測したタスク対話能力を用いてスロットの正答確率を予測する実験を行った結果，提案手法のユーザの能力を推定する手法はベースラインよりも有意に高精度でスロットの正答確率を予測することができた。

今後は，英語のデータセットだけでなく日本語のデータセット $[23,24]$ にも提案手法を適用し, 適切にユーザのタスク達成能力を推定できるかを検証したい. さらに，推定したユーザのタスク達成能力に基づいてユーザに適応的な振る舞いをする対話システムの構築を行いたい.

## 謝辞

本研究は，科研費「モジュール連動に基づく対話システム基盤技術の構築」(課題番号 19H05692) の支援を受けた。

## 参考文献

[1] Ryuichi Takanobu, Qi Zhu, Jinchao Li, Baolin Peng, Jianfeng Gao, and Minlie Huang. Is Your Goal-Oriented Dialog Model Performing Really Well? Empirical Analysis of System-wise Evaluation. In Proc. of SIGDIAL, pp. 297-310, 2020.

[2] OpenAI. GPT-4 Technical Report. arXiv preprint arXiv:2303.08774, 2023.

[3] Vojtěch Hudeček and Ondrej Dusek. Are Large Language Models All You Need for Task-Oriented Dialogue? In Proc. of SIGDIAL, pp. 216-228, 2023.

[4] Shinya Iizuka, Shota Mochizuki, Atsumoto Ohashi, Sanae Yamashita, Ao Guo, and Ryuichiro Higashinaka. Clarifying the Dialogue-Level Performance of GPT-3.5 and GPT-4 in Task-Oriented and Non-Task-Oriented Dialogue Systems. In Proc. of Al-HRI, 2023.

[5] Ryuichiro Higashinaka, Masahiro Araki, Hiroshi Tsukahara, and Masahiro Mizukami. Integrated taxonomy of errors in chat-oriented dialogue systems. In Proc. of SIGDIAL, pp. 89-98, 2021.

[6] Paweł Budzianowski, Tsung-Hsien Wen, Bo-Hsiang Tseng, Iñigo Casanueva, Ultes Stefan, Ramadan Osman, and Milica Gašić. MultiWOZ - A Large-Scale MultiDomain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling. In Proc. of EMNLP, pp. 5016-5026, 2018.

[7] Frederic M Lord. Applications of Item Response Theory to Practical Testing Problems. Routledge, 1980.

[8] Arin Ghazarian and S Majid Noorhosseini. Automatic detection of users' skill levels using high-frequency user interface events. User Modeling and User-Adapted Interaction, Vol. 20, pp. 109-146, 2010.

[9] Jia-Jiunn Lo, Ya-Chen Chan, and Shiou-Wen Yeh. Designing an adaptive web-based learning system based on students' cognitive styles identified online. Computers \& Education, Vol. 58, No. 1, pp. 209-222, 2012.

[10] Nigel Ward and Satoshi Nakagawa. Automatic UserAdaptive Speaking Rate Selection for Information Delivery. In Proc. of ICSLP, pp. 549-552, 2002.

[11] Chelsea M. Myers, David Grethlein, Anushay Furqan, Santiago Ontañón, and Jichen Zhu. Modeling Behavior Patterns with an Unfamiliar Voice User Interface. In Proc. of UMAP, p. 196-200, 2019.

[12] Kazunori Komatani, Shinichi Ueno, Tatsuya Kawahara, and Hiroshi G. Okuno. User Modeling in Spoken Dialogue Systems for Flexible Guidance Generation. In Proc. of EUROSPEECH, pp. 745-748, 2003.

[13] João Sedoc and Lyle Ungar. Item Response Theory for Efficient Human Evaluation of Chatbots. In Proc. of Eval4NLP, pp. 21-33, 2020.

[14] R Darrell Bock and Murray Aitkin. Marginal maximum likelihood estimation of item parameters: Application of an EM algorithm. Psychometrika, Vol. 46, No. 4, pp. 443-459, 1981.

[15] Michael R. Harwell, Frank B. Baker, and Michael Zwarts. Item Parameter Estimation Via Marginal Maximum Likelihood and an EM Algorithm: A Didactic. Journal of Educational Statistics, Vol. 13, No. 3, pp. 243-271, 1988.

[16] Jean-Paul Fox. Bayesian item response modeling: Theory and applications. Springer, 2010.

[17] Mihail Eric, Rahul Goel, Shachi Paul, Abhishek Sethi, Sanchit Agarwal, Shuyang Gao, Adarsh Kumar, Anuj Goyal, Peter $\mathrm{Ku}$, and Dilek Hakkani-Tur. MultiWOZ 2.1: A Consolidated Multi-Domain Dialogue Dataset with State Corrections and State Tracking Baselines. In Proc. of LREC, 2020

[18] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In Proc. of NAACL, pp. 4171-4186, 2019.

[19] Jost Schatzmann, Blaise Thomson, Karl Weilhammer, Hui Ye, and Steve Young. Agenda-Based User Simulation for Bootstrapping a POMDP Dialogue System. In Proc. of NAACL, pp. 149-152, 2007.

[20] Qi Zhu, Zheng Zhang, Yan Fang, Xiang Li, Ryuichi Takanobu, Jinchao Li, Baolin Peng, Jianfeng Gao, Xiaoyan Zhu, and Minlie Huang. ConvLab-2: An OpenSource Toolkit for Building, Evaluating, and Diagnosing Dialogue Systems. In Proc. of ACL, pp. 142-149, 2020.

[21] Jiexi Liu, Ryuichi Takanobu, Jiaxin Wen, Dazhen Wan, Hongguang Li, Weiran Nie, Cheng Li, Wei Peng, and Minlie Huang. Robustness Testing of Language Understanding in Task-Oriented Dialog. In Proc. of ACL-IJCNLP, pp. 2467-2480, 2021

[22] Steven Bird, Edward Loper, and Ewan Klein. Natural Language Processing with Python. O'Reilly Media, Inc., 2009.

[23] 大橋厚元, 平井龍, 飯塚慎也, 東中竜一郎. JMultiWOZ:日本語タスク指向型対話データセットの構築 . 言語処理学会第 29 回年次大会発表論文集, pp. 3093-3098, 2023.

[24] 大橋厚元, 平井龍, 飯塚慎也, 東中竜一郎. JMultiWOZ に対する対話状態アノテーションの付与と対話システムの実装評価. 言語処理学会第 30 回年次大会発表論文集, 2024.


# 音声対話における応答速度改善に向けた先読み技術の検討

大萩雅也 水本智也 吉川 克正
SB Intuitions 株式会社
\{masaya.ohagi, tomoya.mizumoto, katsumasa.yoshikawa\}@sbintuitions.co.jp

## 概要

本研究では大規模言語モデルを用いた音声対話システムにおける応答速度を改善するための新たな手法を提案する。既存のシステムではユーザー発話の終了後に音声チャットボットの応答を生成するため生成時間の分、応答開始が遅れていた。これに対し我々のシステムではユーザー発話が終了する前にそれまでの対話履歴から次にどのようなユーザー発話が来るかを先読み予測し、それに対する応答を事前生成する。これにより生成時間を省略し予測ユー ザー発話と実際のユーザー発話のマッチング時間のみで応答を返すことができるようになる。評価の結果、ユーザーの発話候補が限定される文脈のもとで我々の手法は高い先読み精度を発揮し応答速度の改善に寄与しうるという結果が得られた。

## 1 はじめに

大規模言語モデルの発達 [1]、また高性能な Speech2Text[2], Text2Speech モデル [3] の開発により、自然な音声対話を行うことができるシステムが可能になりつつある。音声対話システムは幅広い応用先を持ち、今後社会に実装されることが期待される。 しかしながら、大規模言語モデルを用いた音声対話システムの欠点の一つとして、応答生成に時間がかかると言う問題が存在する。一般的に日本語話者は 1 秒以内に相手の発話に対して応答を始めるという傾向があるが [4]、例えば OpenAI の GPT-3.5-turbo は 1 秒では 14 トークンしか生成できず [5]、1 秒以内に全ての生成を終えて応答を行うのは簡単でない。

既存の解決策として、言語モデルが全ての文章を生成し終える前に生成されたトークンを次々と音声として出力していくことが考えられる。しかしながら全て生成し終わる前に音声として発話を出力する手法は有害な文章を弾くようなフィルタリングの適用が難しく、有害性が発見された時にはすでに文章の途中まで発話してしまっているような状況が起こ

図 1: 音声発話をしながら同時にユーザーの発話を予測し、それに対するボットの応答を先に生成しておくことにより応答までの時間を短縮する

りうる。よって今回我々は発話を生成し終えてから音声出力を行う音声対話システムを対象とし、そこに発話の先読み技術を組み込むことで応答速度を改善することを提案する。

提案手法の概略図を図 1 に示す。既存の音声対話システムでは、ターン $t$ においてボットの発話 $b_{t}$ とユーザーの発話 $u_{t}$ が行われている間、システムは $b_{t}$ の音声出力を行いそして $u_{t}$ が終了するのを待つだけである。我々の手法ではこの Idle な時間をユー ザーの発話予測とボットの応答の事前生成に当てることで応答速度の改善を目指す。我々の手法ではそれまでの対話履歴からユーザー発話を複数パターン先読み予測し、パターンごとにボットの応答を事前生成する。その後、実際のユーザー発話 $u_{t}$ が終わつた後に予測ユーザー発話とのマッチングを行い、一定の類似度を超えた予測発話に関しては、先読みが成功したとして事前生成しておいたボットの発話を返す。この手法により、既存のシステムでは必然的にかかっていたボットの応答生成時間を予測発話とのマッチング時間のみに短縮することができる。
我々の先読みシステムを評価した結果、ユーザー の発話のおよそ $20 \%$ 高い類似度で先読みでき、 マッチング時間のみで自然な応答を返すことができることが確認された。さらに詳細な分析を行った結果、直前のボットの発話がユーザーの発話を絞り込めるような文脈である時に先読み予測が成功しやすいということが判明した。

## 2 提案手法

我々のシステムは、ユーザーの次の発話を予測しそれに対する応答を準備しておく先読みモジュールと、予測ユーザー発話がどれくらい実際のユーザー 発話と近かったかを検証し近い場合は準備した応答を返すマッチングモジュールの二つから構成される。各モジュールについて詳細に説明する。

まず先読みモジュールは対話のターン $t$ においてそれまでの対話履歴から次のユーザー発話 $u_{t}$ がどのような発話であるかを $\mathrm{N}$ パターン予測する。各予測ユーザー発話を $u_{t}^{\prime k}$ とする $(\mathrm{k}=1,2, \ldots \mathrm{N})$ 。そして各 $u_{t}^{\prime k}$ に対するボットの応答 $b_{t+1}^{\prime k}$ を事前生成することで各予測に対してボットの応答を予め準備しておく。この予測と事前生成はボットが発話 $b_{t}$ を音声出力し、ユーザーがそれに対する発話 $u_{t}$ を終えるまでに完了することが期待される。そのため、ユー ザーが $u_{t}$ を発話し終えた時点で $u_{t}^{\prime k}$ が正しくユー ザー発話 $u_{t}$ を予測できているならば、それに対するボットの発話 $b_{t+1}^{\prime k}$ はすぐに応答として返すことができる状態であると言える。本研究では GPT-3.5-turbo を用いて few-shotを与えた上でユーザー発話予測とボットの応答事前生成を同時に行った。具体的な prompt は Appendix B に示す。各 $u_{t}^{\prime k}$ は次のマッチングモジュールで使うために sentence-bertを用いて埋め込み $e_{u_{t}^{\prime k}}$ へと変換しておく。

次のマッチングモジュールでは実際のユーザー発話 $u_{t}$ の終了後に、その埋め込み $e_{u_{t}}$ と各予測ユー ザー発話 $e_{u_{t}^{\prime}}$ とのコサイン類似度 score $_{k}$ を測る。 この時、最大類似度を score $_{\text {max }}$, 最大類似度を持つ先読み予測を $u_{t}^{\prime}$ max とする。この最大類似度が一定の閾値 $\mathrm{T}$ (今回は 0.75) を超えていた場合は先読みが成功したとみなし、事前生成しておいたボットの発話 $b_{t+1}^{\prime \prime}$ を返す。一定の間値以下だった場合は通常通り生成を行う。マッチング時には $u_{t}$ の埋め込みを作成し、予測ユーザー発話の埋め込みとのコサイン類似度を測るだけなので、言語モデルによる応答生成と比べて微小時間で終わらせることが可能であ
る。これにより、大規模言語モデルの文脈に応じた応答生成能力を活かしながら、素早い応答を実現することが可能となる。

## 3 実験

## 3.1 実験データ

実験用のデータとして、対話ロボットコンペティション 2022 [6] に出場した際に我々が収集した対話ログを用いた。この対話はボット側が旅行代理店の店員、ユーザー側がそこを訪れた客という設定のもと、ユーザーの旅行プランを決定するために 5 分間の対話を行うタスク指向型対話である。実際のボットと人間の会話を元にしたデータであり今回のシステムの実用性を測る上で効果的なデータであるため選定した。 7 個の対話ログにおいてユーザー側の発話は合計 71 個存在し、それら全てに今回の先読みシステムを活用し、その評価を行う。

## 3.2 評価指標

先読みによる応答生成速度改善の評価を行うために、我々は 3 種類の評価指標を用いる。まず一つ目の指標は先読みにかかる時間に関する指標である。具体的な評価指標としては、先読みを生成し始めてから $\mathrm{N}$ パターン生成し終えるまでにどれほどの時間がかかるかを調べる look ahead duration, ユーザーの発話と先読みのマッチングにどれほどの時間がかかるかを調べる matching duration の二つを調べる。

なお、参考指標として今回の実験データを人手でアノテーションした結果、ボットの平均発話時間は 20.77 秒、ユーザーの発話も含めた平均発話時間は 23.90 秒であった。また、タスクの性質上観光地に関する説明を 30 秒以上時間をかけて行う場合があり、これらを省いて比較的短時間の発話のみに絞った場合のボットの平均発話時間は 11.21 秒、ユー ザーの発話も含めた平均時間は 14.05 秒となった。

二つ目の指標は先読みの精度に関する指標である。この指標は二つに分けられる。一つ目はそれまでの対話履歴からどの程度 $u_{t}$ を正確に予測できるかである。この指標は閾値を超えたデータの数 (一致数) と各データに対する平均最大類似度で計測する。二つ目は $u_{t}^{\prime k}$ と $u_{t}$ の一致判定をどの程度正確に行えているかの一致度である。不正確な先読み発話を実際のユーザー発話と一致しているとみなしてしまうと、間違った文脈のもとでのボット発話が応答

として返ってしまう。この発生頻度を評価するために、最大類似度が閾値を超えていた先読みが、実際のユーザー発話とどの程度一致していたかを 1 (全く一致しない) から 5 (完全に一致している)の 5 段階で人手評価し、その平均を「一致度」とする。

三つ目の指標は事前生成したボットの応答がどの程度それまでの文脈に沿った応答になっているかである。 $u_{t}^{\prime \prime \max }$ が $u_{t}$ を正確に先読みできていたとしても、それに次ぐ $b_{t+1}^{\prime}$ max が文脈から外れていれば先読みのメリットは失われてしまう。そのため、それまでの文脈から考えて $b_{t+1}^{\prime}$ max が自然なものになっているかどうかを、( 0 : 不自然, 1 : 自然) の 2 段階で人手評価し、その平均を自然さとする。一致度、自然さに関しては主観評価であるため、アノテーター三人の評価の平均をとった値を報告する。

## 4 結果

表 1 に実験結果を示す。まず先読みにかかる時間に関する指標を見る。 1 パターンごとにおおよそ 1 秒ほどの生成時間が必要であり、予測パターン数が増えれば増えるほど先読みにかかる時間は増える。一方でマッチングにかかる時間は、パターン数が増えても所要時間はほぼ変わらない。また先読みにかかる時間に比べて無視できるほどの時間しかかかっていない。なお、Section 3.2 に記載したように、 ユーザーの発話も含めた平均発話時間は 14.05 秒であり、平均的には $\mathrm{N}=20$ まで今回の手法は適用可能である。しかしながら図 2 にあるように、実際は 5 秒から 10 秒の発話が多く分布しているため、実用上は $\mathrm{N}=3,5$ が有用と考えられる。

図 2: ユーザー発話も含めた発話時間の分布

次に先読み精度を見る。まず一致数をみると、全ての設定において全体のユーザー発話 71 個中の 16 個、およそ $20 \%$ 以上を閾値以上の類似度で予測できており、我々の手法の一定の有効性を示している。次に平均最大類似度を見ると、パターン数が増えるごとに類似度も上がっていっていることが見て取れる。これはパターン数が増えるとそれだけ多くの回答の可能性をカバーできることを示唆しているが、平均最大類似度と一致数の間に強い相関は見られず、高い類似度での先読みはパターン数を増やしたからといって必ずしも増えるわけではないことがわかる。一致度については、おおよそ 4 に近いスコアを出しており、一致判定が行われたものに関しては基本的には正しく一致判定が取れている。

最後に、応答の自然さについて見ると、 $\mathrm{N}=3$ においてはかなり高い割合で自然な応答を返せている。不自然な応答を詳細に見てみると、一致判定の間違いがその後の不自然な応答にもつながっていることが見てとれた。例えば「質問があればお答え出来ますが、いかがでしょうか？」というボットの発話に対して実際のユーザー発話が「トリックアート迷宮館ってどこにあるんですか」なのに対して、「トリックアート迷宮館の方が楽しそうだな。という先読み発話を一致していると判断した結果、その後のボット発話が不自然なものになったデータが挙げられる。一致度が比較的高い $\mathrm{N}=3, \mathrm{~N}=10, \mathrm{~N}=15$ の自然さが高く、一致度が低い $\mathrm{N}=5,20$ の自然さが低いことからも一致度が自然さと相関するとわかる。

## 5 Case Analysis

先読みに成功したものと失敗したものの間の違いを詳細に分析するため、71 個の全データの中で最大類似度が最も高かった 1 つと最も低かった 2 つを表 2 に示す。

まず最大類似度が最も高かったものを見てみると、「誰と観光するか」に関する問いがボットの最後の発話であり、ユーザーの応答の候補がある程度絞り込める文脈であるといえる。そこに回答としての典型例と呼べるような応答が返ってきており、これが先読み精度の高さにつながったことがわかる。次に最大類似度が最も低かった例をみると、まず一つ目の例はユーザーに対して Q\&Aを投げかけるユーザーの応答が絞り込みにくい文脈であり、予測をするのが難しくなっている。さらに、そこからのユーザーの応答は直前のボットの発話のハルシネー ションを指摘するものであり、こちらもボット側で予測するのは難易度が高い。次に二つ目の例を見てみると、こちらは文脈自体は「車の利用があるかどうかを聞く」という応答を絞り込みやすいものに
表 1 : 先読みの評価結果

表 2: 最大類似度が最も高かったもの 2 つと最も低かったもの 2 つ

 & $24^{\circ}$ は嘘じゃないですか & 0.277 \\

なっているが、ユーザー側の発話が「車の利用があるかどうか」に対する直接の回答ではなく、「ペッ卜に配慮した交通手段にしてほしい」という婉曲的な回答となっているため、予測するのが難しくなっている。これらの結果から、先読み精度はユーザー 発話候補が絞り込みやすい文脈のもとで高くなりやすいが、その候補から外れた回答が返ってくると低くなってしまうことがわかる。

## 6 関連研究

対話システムは大きく分けてルールベースのもの [7] と生成モデルベースのもの [8] が存在する。生成モデルベースのものはモデルが大規模である程計算時間がかかるため応答にかかる時間が問題となる $[9,10]$ 。我々はその解決策として先読みを提案した。対話の先読みに関する既存研究は複数存在する。例えば先読みを行うことで、タスクの効率の良い解決を目指すもの $[11,12,13]$ や、他タスクの解決のために先読みを補助情報として活用するもの [14, 15] などが上げられる。しかしながら、本研究のようにリアルタイム音声対話における応答生成時間の短縮を目的として先読み技術を導入した研究は我々の知る限り存在しない。本研究ではリアルタイム性に対応するために、ユーザー発話が終了するまでに先読
みを終わらせるという制約や実際のユーザー発話と予測ユーザー発話とのマッチングといった新たな課題に取り組んでいる。この点において、本研究で取り組んでいるタスクは既存の対話先読み技術では取り組まれてこなかった新たなものであると言える。

## 7 結論

本研究では、対話履歴から次のユーザーの発話とそれに対するボットの応答を先読み生成することで大規模言語モデルを活用した音声対話システムにおける応答速度の改善手法を提案した。我々が提案した評価指標のもとシステムを評価した結果、ユー ザーの発話のおよそ $20 \%$ を高い類似度で先読みすることができ、応答速度改善において一定の効果を発揮することがわかった。しかしながら、先読み結果の誤った一致判定により不自然な発話を返してしまうこともあったため、一致判定の性能を高めていくことが重要である。将来的な方向性としては、実際のユーザーに先読みを搭載した対話システムを試してもらい、先読みが搭載されていないシステムとの比較を行うことが挙げられる。さらに、先読みコストを下げるために対話履歴から事前に先読みをするべきかどうかを判別することなども挙げられる。

## 参考文献

[1] Long Ouyang, Jeffrey Wu, Xu Jiang, Diogo Almeida, Carroll Wainwright, Pamela Mishkin, Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Gray, John Schulman, Jacob Hilton, Fraser Kelton, Luke Miller, Maddie Simens, Amanda Askell, Peter Welinder, Paul Christiano, Jan Leike, and Ryan Lowe. Training language models to follow instructions with human feedback. In Alice H. Oh, Alekh Agarwal, Danielle Belgrave, and Kyunghyun Cho, editors, Advances in Neural Information Processing Systems, 2022.

[2] Alec Radford, Jong Wook Kim, Tao Xu, Greg Brockman, Christine McLeavey, and Ilya Sutskever. Robust speech recognition via large-scale weak supervision. In Proceedings of the 40th International Conference on Machine Learning, ICML'23. JMLR.org, 2023.

[3] Chenshuang Zhang, Chaoning Zhang, Sheng Zheng, Mengchun Zhang, Maryam Qamar, Sung-Ho Bae, and In So Kweon. A survey on audio diffusion models: Text to speech synthesis and enhancement in generative ai, 2023.

[4] Tanya Stivers, N. J. Enfield, Penelope Brown, Christina Englert, Makoto Hayashi, Trine Heinemann, Gertie Hoymann, Federico Rossano, Jan Peter de Ruiter, Kyung-Eun Yoon, and Stephen C. Levinson. Universals and cultural variation in turn-taking in conversation. Proceedings of the National Academy of Sciences, Vol. 106, No. 26, pp. 10587-10592, 2009.

[5] OpenAI Developer Forum. Gpt-3.5 and gpt-4 api response time measurements, 2023. https: //community.openai.com/t/gpt-3-5-and-gpt-4api-response-time-measurements-fyi/237394.

[6] Ryuichiro Higashinaka, Takashi Minato, Hiromitsu Nishizaki, and Takayuki Nagai. Proceedings of the dialogue robot competition 2022, 2022.

[7] Joseph Weizenbaum. Eliza- a computer program for the study of natural language communication between man and machine. Commun. ACM, Vol. 9, No. 1, p. 36-45, jan 1966.

[8] Iulian V. Serban, Alessandro Sordoni, Yoshua Bengio, Aaron Courville, and Joelle Pineau. Building end-toend dialogue systems using generative hierarchical neural network models. In Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence, AAAI'16, p. 3776-3783. AAAI Press, 2016.

[9] Takato Yamazaki, Tomoya Mizumoto, Katsumasa Yoshikawa, Masaya Ohagi, Toshiki Kawamoto, and Toshinori Sato. An open-domain avatar chatbot by exploiting a large language model. In Proceedings of the 24th Meeting of the Special Interest Group on Discourse and Dialogue, pp. 428-432, 2023.

[10] 川本稔己, 山崎天, 坂田亘, 佐藤敏紀. Hyperclova を利用したプロンプトプログラミングによるシチュエーションに適した応答生成. 人工知能学会研究会資料言語 - 音声理解と対話処理研究会, Vol. 93, pp. 131-136, 2021.

[11] Yi Cheng, Wenge Liu, Wenjie Li, Jiashuo Wang, Ruihui Zhao, Bang Liu, Xiaodan Liang, and Yefeng Zheng. Im- proving multi-turn emotional support dialogue generation with lookahead strategy planning. In Yoav Goldberg, Zornitsa Kozareva, and Yue Zhang, editors, Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing, pp. 3014-3026, Abu Dhabi, United Arab Emirates, December 2022. Association for Computational Linguistics.

[12] Yosuke Kishinami, Reina Akama, Shiki Sato, Ryoko Tokuhisa, Jun Suzuki, and Kentaro Inui. Target-guided open-domain conversation planning. In Nicoletta Calzolari, Chu-Ren Huang, Hansaem Kim, James Pustejovsky, Leo Wanner, Key-Sun Choi, Pum-Mo Ryu, Hsin-Hsi Chen, Lucia Donatelli, Heng Ji, Sadao Kurohashi, Patrizia Paggio, Nianwen Xue, Seokhwan Kim, Younggyun Hahm, Zhong He, Tony Kyungil Lee, Enrico Santus, Francis Bond, and Seung-Hoon Na, editors, Proceedings of the 29th International Conference on Computational Linguistics, pp. 660-668, Gyeongju, Republic of Korea, October 2022. International Committee on Computational Linguistics.

[13] Zhuoxuan Jiang, Xian-Ling Mao, Ziming Huang, Jie Ma, and Shaochun Li. Towards end-to-end learning for efficient dialogue agent by modeling looking-ahead ability. In Satoshi Nakamura, Milica Gasic, Ingrid Zuckerman, Gabriel Skantze, Mikio Nakano, Alexandros Papangelis, Stefan Ultes, and Koichiro Yoshino, editors, Proceedings of the 20th Annual SIGdial Meeting on Discourse and Dialogue, pp. 133-142, Stockholm, Sweden, September 2019. Association for Computational Linguistics.

[14] Eyal Ben-David, Boaz Carmeli, and Ateret Anaby-Tavor. Improved goal oriented dialogue via utterance generation and look ahead, 2021.

[15] Shuo Zhang, Junzhou Zhao, Pinghui Wang, Yu Li, Yi Huang, and Junlan Feng. "think before you speak" : Improving multi-action dialog policy by planning singleaction dialogs. In Lud De Raedt, editor, Proceedings of the Thirty-First International Joint Conference on Artificial Intelligence, IJCAI-22, pp. 4510-4516. International Joint Conferences on Artificial Intelligence Organization, 7 2022. Main Track.

## A 最大類似度の分布

図 3 に $\mathrm{N}=20$ における最大類似度の分布図をプロットした。大まかに 0.6 から 0.7 を心とした正規分布となっていることが見て取れる。ここからは、予測しやすい発話と予測しづらい発話は均等に分布しており、その中間に属する発話に関する先読み精度をどれほど上げていけるかが今後の先読み精度の向上に必要不可欠であるということがわかる。

図 3: 最大類似度分布

## B 先読みモジュールのプロンプト

図 4: 先読み生成のためのプロンプト


# 大規模言語モデルを用いた検索モデルの 中間学習のためのコーパス作成手法

柴田幸輝 1 加藤誠 2 百合草陽介 ${ }^{3}$
12 筑波大学 2 株式会社ミスミグループ本社
${ }^{1}$ s2221646@u.tsukuba.ac.jp ${ }^{2}$ mpkato@acm.org ${ }^{3}$ yosuke.gjdt.yurikusa@misumi.co.jp

## 概要

商品検索などのドメイン特化の検索タスクにおいては，言語モデルが事前学習するような一般的なコーパスには無い，ドメイン独自の意味を持つ語が存在し, 語彙の意味のギャップが存在することが懸念される.このようなドメイン間の語彙の意味のギャップを埋めるために，事前学習を用いた転移学習手法が提案されている。しかしながら，実務においては十分なサイズのコーパスを用意することが難しいような場合がある。その場合，事前学習を用いた転移学習手法の適用は難しい。そこで本研究では比較的小さな対象ドメインのコーパスが存在する場合に，言語モデルの MLM loss と二値分類モデルに基づいて汎用大規模コーパスから語彙の意味のギャップを埋めるようなコーパスを作成する手法を提案する。提案手法の性能を評価するため, 提案手法とベースライン手法を用いて複数のドメインを対象に大規模汎用コーパスからコーパスを作成し検索タスクにて実験を行った. 実験を行った結果，全てのドメインで提案手法が高い性能を示した.

## 1 はじめに

商品検索などのドメイン特化の検索タスクにおいては，言語モデルが事前学習するような一般的なコーパスには無い，ドメイン独自の意味を持つ語が存在し，語彙の意味のギャップが存在することが懸念される.このようなドメイン間の語彙の意味のギャップを埋めるために，事前学習を用いた転移学習手法が提案されている. 事前学習に基づいて言語モデルの転移を行う手法 $[1,2,3,4,5]$ とは転移対象のドメインのコーパスを用いて言語モデルによる継続的な事前学習を実施する手法である。代表的な手法として，AdaLM[1]が挙げられる.

しかしながら，実務においては十分なサイズの
コーパスを用意することが難しいような場合がある. その場合，事前学習を用いた転移学習手法の適用は難しい。この問題に対処するため，新たにドメイン固有のコーパスを作成する必要があると考えられる。コーパスの作成には，Web 文書や既存のコー パスを用いて，対象ドメインと類似している文書を取集する手法 [6] が提案されているが，収集した文書によっては，語彙が対象ドメインとは異なる意味で使われている文書を収集してしまうことも考えられ, 語彙のギャップが拡大する可能性も存在する.

本研究では比較的小さな対象ドメインのコーパスが存在する場合に，言語モデルに基づいて汎用大規模コーパスから語彙の意味のギャップを埋めるようなコーパスを作成する手法を提案する。

提案手法において，初めに転移対象ドメインのコーパスを用いて，対象ドメインのコーパスと言語モデルが事前学習時に使用したコーパスとのギャップのある単語を推定し，その単語をクエリとして汎用的な大規模コーパスの文書を検索して文書を収集する．汎用的な大規模コーパスにて検索し文書を収集した後，各文書に対して転移対象と予測されるスコアを計算しスコアが高い文書を対象コーパスに加えることで，新たにコーパスを作成する。

提案するコーパス作成手法を評価するため, 提案手法とベースライン手法を用いて複数のドメイン (生物医学, 科学, $\mathrm{E}$ コマース) を対象に $\mathrm{C} 4[7]$ データセットからコーパスを作成し実験を行った。実験ではそれぞれの手法を用いてコーパスを作成し，言語モデルに AdaLM を適用した後，検索タスクにおいて，ベースライン手法と提案手法を比較し，提案手法の有効性を検証した。実験を行った結果，全てのドメインで提案手法が高い性能を示した。

この論文における我々の貢献を次に示す:(1)MLM loss と二値分類モデルに基づいて汎用コーパスから語彙の意味のギャップを埋めるようなコーパスを作
成する手法を提案した. (2) 複数のドメインを対象に評価実験を行い，提案するコーパス作成手法の有効性を示した。

## 2 提案手法

本章では本研究が取り組む問題設定に関して説明し，本研究の問題に対してのアプローチを述べる.

本研究では転移対象のドメインのコーパスを対象コーパス $D_{t}$, コーパス作成時に文書を抽出するためのコーパスを参照コーパス $D_{s}$ とする. この時,転移対象のドメインのコーパス $D_{t}$ は数百から数千件の文書からなる小規模な文書集合であり，参照コーパス $D_{s}$ は数千万から数億万件の文書からなる非常に大きな文書集合とする. 本研究では入力として対象コーパス $D_{t}$, 参照コーパス $D_{s}$, 対象ドメインに偏っていない汎用的な言語モデル $m$ が与えられたとする。これらが与えられた時に参照コーパス $D_{s}$ から文書を抽出することによって，対象ドメインに関連する文書を豊富に含む，新たなコーパス $D^{\star}$ を作成することを目的とする。

提案手法の概要をアルゴリズム 1 に示す. 提案手法では汎用的な大規模コーパスから文書を検索することで文書を収集する. そのため，初めにコーパスから文書の検索時に, クエリとして用いるための単語の集合 $W$ を作成する. 単語集合 $W$ は，対象コー パス $D_{t}$ の文書に対して，言語モデル $m$ を用いて計算した各語彙の MLM loss が高い語彙に基づいて単語集合 $W$ を作成する (PrepareQueryWord $\left(D_{t}, m\right)$, アルゴリズム 1 行目). 単語集合 $W$ を作成した後, 単語集合 $W$ の各単語 $w$ をクエリとして参照コーパス $D_{s}$ から文書を検索することで，単語集合 $W$ 中の各単語 $w \in W$ に対応する文書集合 $D_{w}$ を取得する (SearchDocument $\left(W, D_{s}\right)$, アルゴリズム 3 行目).この際，各単語 $w$ で文書を検索することで取得した文書集合 $D_{w}$ に対して, 二值分類器 $g$ を用いて文書 $d \in D_{w}$ ごとに対象ドメインに当てはまると予測されるスコア $s_{d}$ を求める (PredictDomainScore $\left(g, d_{i}\right)$, アルゴリズム 5 行目). その後, 文書集合 $D_{w}$ の文書を対象ドメインに当てはまると予測されるスコア $s_{d}$ が高い順に並び替えた上で，対象ドメインに当てはまると予測されるスコア $s_{d}$ が高い上位 $n$ 件の文書から，新たに単語 $w$ に対応する $D_{w}^{\prime}$ を作成する (SortDocumentByScore $\left(D_{w}, S, n\right)$, アルゴリズム 8 行目). その後各単語の文書集合 $D_{w}^{\prime}$ からコーパス $D_{\text {new }}$ を作成する．最終的には新たに作成したコー
パス $D_{\text {new }}$ を対象コーパス $D_{t}$ に加えていくことで新たにコーパス $D^{\star を}$ 作成する。

## 2.1 検索に利用する語彙の選択

本節ではコーパスから文書の検索時に，クエリとして用いるための単語の集合 $W$ を作成する手法の詳細について述べる。

本研究の目的は, 語彙の意味のギャップを埋めるようなコーパスを作成することである．そのため， コーパスから文書の検索を行う際に，クエリとして用いる単語には意味のギャップがある単語であることが望ましい. 意味のギャップのある単語の傾向として対象コーパスにおいて一般的な使われ方とは異なるような単語が考えられる。そのため，言語モデルに基づいて対象コーパス $D_{t}$ から単語集合 $W$ を作成する際は，初めに対象コーパス $D_{t}$ にて言語モデル $m$ の語彙集合 $V_{m}$ 中の語彙 $v \in V_{m}$ に対する MLM loss を計算する. 対象コーパス $D_{t}$ にて言語モデルを用いて語彙 $v$ の MLM loss を計算する際は，対象コーパス $D_{t}$ から言語モデル $m$ 内の語彙 $v$ に対応する文書集合 $D_{v}$ を取得する。文書集合 $D_{v}$ は対象コーパス中の文書で，語彙 $v$ を含んでいる文書のうち，10 件ランダムで抽出した文書集合である. またこの際， $D_{t}$ の内，語彙 $v$ の登場する文書の数が 10 件に満たないような語彙は計算対象から除いた。

対象コーパス $D_{t}$ 中の，言語モデルの語彙 $v \in V_{m}$ の MLM Loss である $\operatorname{loss}_{\mathrm{mlm}}\left(D_{t}, v\right)$ は，文書集合 $D_{v}$ を用いて次のように求められる。

$
\operatorname{loss}_{\mathrm{mlm}}\left(D_{t}, v\right)=-\frac{1}{n} \sum_{d \in D_{v}} \log P\left(v \mid d^{\text {Masked }}\right)
$

$P\left(v \mid d^{\text {Masked }}\right)$ は, 文書 $d$ に対して語彙 $v$ が登場する箇所のうちランダムで一箇所だけマスクした上で，マスクされた位置に語彙 $v$ が出現する確率である。 $D_{t}$ における単語 $w$ の MLM loss である $\operatorname{loss}_{\mathrm{mlm}}\left(D_{t}, w\right)$ は次のように求められる.

$
\operatorname{loss}_{\mathrm{mlm}}\left(D_{t}, w\right)=\frac{1}{\left|V_{w}\right|} \sum_{v \in V_{w}} \operatorname{loss}_{\mathrm{mlm}}\left(D_{t}, v\right)
$

$V_{w}$ は単語 $w$ を構成する言語モデル $m$ の語彙の集合である．単語集合 $W$ は転移対象のドメインのコーパス $D_{t}$ に登場した各単語の MLM loss が高い上位 $l$ 件の単語の集合である.

## 3 語彙を用いた文書の検索

本節では各単語 $w \in W$ をクエリとしてコーパス $D_{s}$ から文書を検索して単語 $w \in W$ に対する文書集合 $D_{w}$ を取得する手法の詳細について述べる。

単語 $w \in W$ に対する文書集合 $D_{w}$ を取得するには単語 $w \in W$ をクエリに BM25[8] のスコアを基準にコーパス $D_{s}$ の文書を検索する. 本研究では単語 $w \in W$ をクエリとしてコーパス $D_{s}$ から各文書の BM25 のスコアを用いて検索して，上位 1,000 件の文書を単語 $w \in W$ に対する文書集合 $D_{w}$ とした.

## 4 文書選択

本節では単語 $w \in W$ に対する文書集合 $D_{w}$ から AdaLM を適用するためのコーパス $D_{\star}$ を作成する手法の詳細について述べる. 単語 $w \in W$ に対する文書集合 $D_{w}$ には単語 $w$ を含んでいる文書のみが存在するが，単語 $w$ が対象ドメインとは異なる意味で使われている文書を含む可能性がある。そのため，提案手法では文書集合 $D_{w}$ をそのまま用いて $D^{\star}$ を作成せず，対象ドメイン中の文書と汎用ドメイン中の文書の二值分類を学習したモデル $g$ を用いて，対象ドメインらしい文書を $D_{w}$ から抽出して AdaLMを適用するためのコーパス $D_{\star}$ を作成する。

初めに文書集合 $D_{w}$ から文書集合 $D_{\text {new }}$ を作成する.コーパス $D_{\text {new }}$ は次のように示される。

$
D_{\text {new }}=\bigcup_{w \in W}\left.\{D_{w}^{\prime}\right.\}
$

文書集合 $D_{w}^{\prime}$ は $D_{w}$ 中の文書のうち，二値分類モデル $g$ が予測する，対象ドメインに分類されるスコアが高い上位 $n$ 件の文書からなる文書集合である。

AdaLM を適用するためのコーパス $D_{\star}$ は対象コー
パス $D_{t}$ と $D_{\text {new }}$ を組み合わせることで作成する。二值分類器には，対象コーパス $D_{t}$ の文書と参照コー パス $D_{s}$ とは異なる汎用的なコーパス $D_{g}$ の文書の二値分類を学習させた．また，その他の二値分類の学習の詳細は付録に記載した。

## 5 実験設定

本説では初めに実験に使用したデータセットについて述べた後，実験手順に関して述べ，その後べー スライン手法を含む実験設定について紹介する.

本研究では, 生物医学, 科学, $\mathrm{E}$ コマースの 3 つの異なるドメインで実験を行った．本研究では生物医学に TREC-COVID データセットを，科学に SciFact データセットを，Eコマースに Amazon ESCI データセットを使用した. さらに，参照コーパス $D_{s}$ として C4 コーパス [7]を使用した。

実験の手順を次に述べる。各手法でコーパスを作成した後，そのコーパスを用いて言語モデルに AdaLM を適用した。その後，言語モデルを用いた検索モデルを用いて検索用データセットにてファインチューニングを行い，転移対象のデータセットでランキングを作成し，ランキングの評価を行った.

我々は実験におけるべースライン手法として大規模コーパスからランダムで文書を選択する手法を設定した. この手法では参照コーパス $D_{s}$ からランダムで文書を選択して対象コーパス $D_{t}$ に加えることでコーパスを作成した. 本手法では提案手法のコー パスサイズに合わせて作成した。また本研究では提案手法のうち，検索のみを用いた手法と二値分類のみを用いた手法とも比較を行った。検索のみとは提案手法のうち，検索を通じて収集した文書をそのまま利用してコーパス作成する手法である。 二値分類のみとは二値分類モデルを用いてコーパス中のす
表 1 TREC-COVIDでの各コーパス作成手法の NDCG @ 10

表 2 SciFact での各コーパス作成手法の NDCG@10

べての文書に対してスコア計算を行い，スコアが高かった文書を用いてコーパス作成する手法である.

ランキングの評価は, Iida ら [2] と同様 NDCG@10[9] を用いて評価した. その他の実験の詳細は付録に記載した。

## 6 実験結果

本節では実験結果について述べる. 初めにベースラインとの比較を行い，その後対象ドメインと同じドメインから文書を抽出した結果について述べる。

## 6.1 ベースラインとの比較

表 1 , 表 2, 表 3 に各コーパス作成手法によって作成されたコーパスを用いて AdaLM を適用した検索モデルの NDCG@10の値を示す.これらの表のへッダーは文書の検索の際，クエリとして利用した単語数を表記している. 表中の NDCG@10の値の横にはそれぞれ作成したコーパスのサイズを示している. AdaLM なしとは AdaLM を適用せずに，ファインチューニングのみを行った手法である. 実験の結果, 提案手法はその他の手法と比べて全体的に NDCG@10の値が高い值を示した.この結果から，提案手法は特定のドメインでは有効であると考えられる。また，提案手法のコーパス作成手法のうち，文書の検索のみを使用した手法はランダムで文書を選択する手法と二値分類モデルのみを使用した手法と比べて TREC-COVID， SciFact にて NDCG@10が高い值を示した.この結果から，コーパス内の文書表 3 Amazon ESCI での各コーパス作成手法の NDCG@ 10

表 4 Pubmed コーパスを参照コーパスとした TRECCOVID での NDCG@ 10

を選ぶ際には，収集する文書の語彙に着目することは重要であると考えられる。

## 6.2 対象ドメインと同じドメインコーパス から文書を抽出した結果

6.1 節では参照コーパスとして汎用コーパスである C4 コーパスを利用して実験を行ったが，参照コーパスとして対象ドメインと同じドメインのコー パスを利用した場合でも実験も行った. 本研究では Iida らを参考に, 生物医学ドメインで実験を行い，参照コーパスとして Pubmed コーパス1) 中の論文の要旨を使用した。表 4 に各コーパス作成手法によって作成されたコーパスを用いて AdaLM を適用した検索モデルの NDCG@10の値を示す. 実験の結果，提案手法はその他の手法と比べて全体的に NDCG@10が高い值を示した.この結果から，対象ドメインとドメインが近いコーパスを参照コーパスとして利用した場合でも提案手法は有効であると考えられる。

## 7 結論

本研究では汎用大規模コーパスから語彙の意味のギャップを埋めるようなコーパス作成手法を提案した. 提案手法の性能を評価するため, 提案手法とベースライン手法を用いて複数のドメインを対象に C4 データセットからコーパスを作成し実験を行った. 実験の結果，全てのドメインでベースライン手法と比べて提案手法が高い性能を示した。

## 謝辞

本研究は JSPS 科学研究費助成事業 JP22H03905, および，22H03905A による助成を受けたものです. ここに記して謝意を表します。また，論文執筆にあたりご助言をいただきました株式会社ミスミグルー プ本社の皆様に感謝に深く御礼申し上げます。

## 参考文献

[1] Yunzhi Yao, Shaohan Huang, Wenhui Wang, Li Dong, and Furu Wei. Adapt-and-Distill: Developing Small, Fast and Effective Pretrained Language Models for Domains. In Findings of the Association for Computational Linguistics, pp. 460-470, 2021.

[2] Hiroki Iida and Naoaki Okazaki. Unsupervised Domain Adaptation for Sparse Retrieval by Filling Vocabulary and Word Frequency Gaps. In Proceedings of the 2nd Conference of the Asia-Pacific Chapter of the Association for Computational Linguistics and the 12th International Joint Conference on Natural Language Processing, pp. 752-765, 2022.

[3] Shitao Xiao, Zheng Liu, Yingxia Shao, and Zhao Cao. RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder. In Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing, pp. 538-548, 2022.

[4] Tao Shen, Xiubo Geng, Chongyang Tao, Can Xu, Xiaolong Huang, Binxing Jiao, Linjun Yang, and Daxin Jiang. LexMAE: Lexicon-Bottlenecked Pretraining for Large-Scale Retrieval. In The Eleventh International Conference on Learning Representations, 2022.

[5] 飯田大貴, 岡崎直観. 事前学習済みモデルに基づく検索モデルにおけるドメイン適応手法の比較と相乗効果の検証. 言語処理学会第 29 回年次大会発表論文集, 2023.

[6] 本浦庄太, 秋元康佑, 槇尾純太, 定政邦彦. 超大規模コーパスからの抽出コーパスによる言語モデルのタスク適応. 人工知能学会全国大会論文集第 37 回, pp. 3Xin403-3Xin403, 2023.

[7] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J Liu. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. The Journal of Machine Learning Research, Vol. 21, No. 1, pp. 5485$5551,2020$.

[8] Stephen Robertson, Hugo Zaragoza, et al. The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends ${ }^{\circledR}$ in Information Retrieval, Vol. 3, No. 4, pp. 333-389, 2009.

[9] Kalervo Järvelin and Jaana Kekäläinen. Cumulated gainbased evaluation of IR techniques. ACM Transactions on Information Systems (TOIS), Vol. 20, No. 4, pp. 422446, 2002.

[10] Rong-En Fan, Kai-Wei Chang, Cho-Jui Hsieh, Xiang-Rui Wang, and Chih-Jen Lin. Liblinear: A library for large linear classification. the Journal of machine Learning research, Vol. 9, pp. 1871-1874, 2008.

[11] Payal Bajaj, Daniel Campos, Nick Craswell, Li Deng, Jianfeng Gao, Xiaodong Liu, Rangan Majumder, Andrew McNamara, Bhaskar Mitra, Tri Nguyen, et al. MS MARCO: A Human Generated MAchine Reading COmprehension Dataset. arXiv preprint arXiv:1611.09268, 2016.

[12] Thibault Formal, Benjamin Piwowarski, and Stéphane Clinchant. SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking. In Proceedings of the 44th International ACM SIGIR Conference on Research and Development in Information Retrieval, pp. 2288-2292, 2021.

[13] Victor Sanh, Lysandre Debut, Julien Chaumond, and Thomas Wolf. DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv preprint arXiv:1910.01108, 2019.

[14] Sebastian Hofstätter, Sophia Althammer, Michael Schröder, Mete Sertkan, and Allan Hanbury. Improving Efficient Neural Ranking Models with CrossArchitecture Knowledge Distillation. arXiv preprint arXiv:2010.02666, 2020.

## A 付録 (Appendix)

## A. 1 より詳細な実験設定

表

ファインチューニング時のハイパーパラメータ

本節では，より詳細な実験設定について述べる.本研究では二值分類器 $g$ には線形SVM (サポー トベクトル・マシン）を使用した [10]. 二值分類器の学習は転移対象のドメインのコーパス $D_{t}$ と汎用的なドメインのコーパス $D_{g}$ の二值分類を学習させる.この際，汎用的なドメインのコーパス $D_{g}$ では多種多様な文書が揃っており, 文書のドメインが偏っていない必要がある. そのため二値分類器の学習には, 汎用的なドメインのコーパス $D_{g}$ として検索用のデータセットである MSMARCO-Document データセット [11] の文書コーパスを用いた. 二値分類器の学習では転移対象のドメインのコーパスの文書のラベルを 1， MSMARCO-Document データセットの文書のラベルを 0 として訓練を行った. 二值分類器の学習に用いる文書の特徴べクトル $\mathbf{v}_{\mathbf{d}}$ は, one-hot ベクトルを採用した.

本研究では Iida ら [2] に従って検索モデルとして SParse Lexical AnD Expansion(SPLADE)[12]を利用した. SPLADE はクエリと文書を疎な埋め込みで表現し，最終的にはこれらのクエリ，文書の疎な埋め込みの内積を取ることでにクエリ，文書の適合度を予測する手法である。
ファインチューニングには TREC-COVID デー タセットと SciFact データセットの転移学習時は Iida[2] に従って MSMARCO[11] データセットでファインチューニングを行った. Amazon ESCI データセットでの転移学習時は Amazon ESCI データセットの Train データを用いてファインチューニングを行った.

AdaLM での語彙拡張では Iida[2] らの実験設定を参考に，拡張する語彙数は 40,000 語彙とした.また，AdaLMでの中間学習では distilbert-baseuncased[13] $]^{2)}$ をべースモデルとして Masked Language Modeling を行った. Masked Language Modeling でのハイパーパラメータを表 5 に示す. Masked Language Modelling では最大入力長 512 トークン Batch サイズは 10, Learning rate: $5 * 10^{-5}$, Warmup steps:0, Weight decay:0.0 で 8 つの NVIDIA A100 40 GB を用いて 1 エポックで学習をおこなった.

SPLADE の損失関数は Iidaを参考に MarginMSE[14] と FLOPS 正則化の和とした. クエリ側の FLOPS の正則化重み $\lambda_{Q}$ とドキュメント側の $\lambda_{D}$ は, それぞれ $\lambda_{Q}=0.08, \lambda_{D}=0.1$ と設定した. MarginMSE で使用されるハードネガティブは，MSMarco のデータセットを用いる場合は Iida ら [2] に従って，BM25 や他の検索方法によって文書を検索することで収集した文書ハードネガティブとした。 ESCI データセットを用いる場合，ESCI データセットにおいては適合度は Exact, Substitute, Complement, Irrelevant の 4 段階のラベルが存在するため，このラベルのうち一番上の Exact をポジティブとして，他 Substitute, Complement, Irrelevant の 3 ラベルをハードネガティブとした．また Iida らの研究 [2] ではべー スの言語モデルとして bert-base-uncased ${ }^{3)}$ を用いている. 本研究では distilbert-base をべースの言語モデルとしているため, 本研究で使用するべースモデルはパラメーター数が半分ほどとなっている. モデルのオーバーフィッティングを防ぐために本研究では訓練データのうち 2 割を検証データとして， early stopping を採用した. SPLADE のファインチューニングでは入力長 256 トークン Batch サイズは 10, Learning rate: $2 * 10^{-5}$, Warmup steps:1,000, Weight decay:0.01 で 4 つの NVIDIA V100 16 GB GPU で 30 エポックで学習をおこなった.


# テキスト変換によるリポジトリレベルのコード検索の改善

近藤瑞希 ${ }^{1}$ 河原大輔 1 倉林利行 ${ }^{2}$
1 早稲田大学 2 日本電信電話株式会社
\{kondmiznotfound@toki., dkw@\}waseda.jp toshiyuk.kurabayashi@ntt.com

## 概要

大規模言語モデルによるコード生成能力は年々上昇しているが、リポジトリレベルでのコード生成の研究はあまり活発ではない。リポジトリレベルのコード生成では複数ファイルの中から関連するのコードの参照が必要となる。コード間の類似度を取ることで関連するファイルを検索し言語モデルに入力し、生成を行う。本研究では関連するファイルの検索 (コード検索) を、コード間の類似度ではなく、 コードを言語モデルで変換したテキストで類似度を取る手法を提案する。テキストに変換することでコード検索の精度が向上することを確認した。

## 1 はじめに

日本での IT 人材は不足しており、2030 年には最大で 79 万人不足するという試算もある1)。その解決法の一つとして、大規模言語モデル (LLM)を用いたソフトウェアの開発の支援が挙げられる。現在、 LLM によるコード生成能力は飛躍的に上昇しており、単一のコードの理解や生成の精度は高い。しかし、実際のソフトウェア開発に近いリポジトリレベルでの研究は少なく、LLMによるリポジトリレべルのコード生成の能力は非常に低い。リポジトリレベルでのバグ修正ベンチマーク SWE-bench [1] のバグ解決率はわずか $1.96 \%$ にとどまる。

リポジトリレベルでのコード関連タスクでは多くのファイルの参照が必要となる。しかし、LLM のほとんどは Transformer [2] ベースのモデルであるため、入力長に制限があり、多くのファイルを入力できない。そのため、類似度などを基に関連性の高いコードを検索し、それらのみを入力する手法が提案されている。コード検索の精度は、SWE-bench やリポジトリレベルのコード補完・検索ベンチマークである RepoBench [3] などでも高くない。
 houkokusyo.pdf

図 1: 提案手法のテキスト変換

本研究では、コード補完タスクにおけるコード検索手法の改善に取り組む。コード補完タスクは、未完成のコードの次の行を予測するタスクである。次の行の予測のために、未完成のコードを構文解析することで得られるファイル間の依存関係をもとに、複数の関連ファイルが与えられる。本論文では未完成のコードを対象コードと呼び、複数の関連ファイルをコード候補と呼ぶ。対象コードの情報を基に、 コード候補から正しいコードを選択するタスクをコード検索と呼ぶ。

既存研究ではコード検索のために、対象コードおよびコード候補のそれぞれの特徴量 (言語モデルの埋め込み表現など)を取得し類似度を計算している [3]。RepoCoder [4] では、このような手法でコー ド検索し、一度コードの生成を行い、生成されたコードを含めて再検索し生成する手法をとる。本研究では、直接コード間の類似度を取らずに、LLMによってコードを変換した後に類似度を計算する。候補コードはテキストに変換し、対象コードはテキストへの変換や、RepoCoder の手法とテキスト変換を組み合わせた、次の行の予測とその説明などに変換を行う。図 1 にテキスト変換の流れを示す。

本手法によって、コード補完タスクにおけるコー ド検索の精度が向上することを確認した。また、 LLM でテキスト変換を行うプロンプトについても検証を行った。

## 2 関連研究

## 2.1 コードで学習された LLM

近年、コードで学習された Transformer [2] ベー スの LLM が増えている。Encoder モデルでは CodeBERT [5] や UniXcoder [6], Decoder モデルでは Codex [7], StarCoder [8], Code Llama [9], EncodeDecoder モデルでは, CodeT5+ [10] などが挙げられる。特に Decoder モデルの発展は著しく、コード生成能力は飛躍的に上昇した。これらのモデルは単一のコード生成精度が高く、HumanEval [7] や MBPP [11] などのベンチマークでの精度が高い。

## 2.2 リポジトリレベルの研究

ソフトウェア開発では単一ファイルではなく複数のファイルを用いて開発を行う。現実のソフトウェア開発のタスクに対応するために、GitHub などのリポジトリを対象として研究が行われてきた [12]。

LLM によるコード生成能力の向上により、LLM によるリポジトリレベルでの研究やベンチマークが増加している [1, 3, 4, 13, 14]。RepoCoder [4] は、 コード補完タスクにおいて検索と生成を 2 回繰り返すことで精度の向上させた。RepoBench [3] は、コー ド補完に関するベンチマークで、コード検索タスク、コード補完タスク、2つのパイプラインタスクの 3 つで構成されている。SWE-bench [1] は GitHub issues と対応するプルリクエストを Python のリポジトリから集めたもので、現実の問題を LLM がどれくらい解けるかを競うべンチマークである。

HumanEval [7] や MBPP [11] と比べると、RepoBench [3] や SWE-bench [1] の精度は著しく低い。単一コードによる研究と比較して、リポジトリレベルでの研究は手法やデータセットの数か少なく発展途上である。

## 3 提案手法

## 3.1 概要

コード検索の従来手法では、対象コードとコード候補をそのまま言語モデル2) に入力し、埋め込み表現からコード間の類似度を計算している [3]。提案手法では、LLMによってコードをテキストに変換

2）埋め込み表現に変換するモデルはモデルサイズが小さいため、LLMではなく「言語モデル」と呼ぶ。

## Model Input

You will be given the code snippet. Translate the following code to text for code search:

Repository name: MontrealCorpusTools/Montreal-Forced-Aligner File path: tests/test_config.py

Code:

class LdaTrainer(TriphoneTrainer):

Triphone trainer

Model Output

The code defines a class 'LdaTrainer' that inherits from

'TriphoneTrainer'. It has several parameters and methods for training an acoustic model using LDA (Linear Discriminant Analysis) and MLLT (Maximum Likelihood Linear Transform). The class has ...

図 2: コード候補のテキスト変換例

## Model Input

You will be given the unfinished code snippet.Please predict and output the next line of the following code. Then, explain why you made that prediction.

Repository name: iancze/PSOAP

File path: scripts/psoap_retrieve_ST3.py Code:

parser $=$ argparse.ArgumentParser(description="Reconstruct the composite spectra for $\mathrm{A}$ and $\mathrm{B}$ component.") args $=$ parser.parse_args()

## Model Output

The next line of the code will be:

"python Inrest_frame_wls = chunk.rest_frame_wl(VAs)"

I made this prediction based on the context of the code. The code is ...

図 3: 対象コードのテキスト変換例

し、言語モデルを用いてその埋め込み表現を得る。類似度の計算は、埋め込み表現の平均の cosine 類似度と、BERTScore [15]の 2 種類を試す。コード候補のテキスト変換例を図 2 に示す。

さらに、対象コードはLLMによるテキスト変換に加えて、RepoCoder [4] で提案された手法と提案手法を組み合わせた手法も提案する。RepoCoderでは一度 LLM に次の行を予測させ、予測された行を使用して再検索を行う。それに対して、提案手法では次の行の予測に説明を加える方法を提案する。対象コードの予測に加えて説明を出力させる変換の例を図 3 に示す。

## 3.2 プロンプトの設計

プロンプトは LLM の出力に大きな影響を与えることが知られている [16]。そのため、プロンプトを何種類か作成し、検証を行う。本研究では人手で作

図 4: 自動プロンプトの例

成するプロンプトに加えて、LLM 自身にプロンプトを作成させる自動プロンプトを提案する。自動プロンプトの例を図 4 に示す。図 4 の例は、どのような状況か説明を行い、プロンプトを出力するように指示を行っている。これによりプロンプトの候補が複数個出力される。

## 4 実験

## 4.1 実験設定

コード候補と対象コードの表現コード補完・検索ベンチマークにおけるコード検索タスクにおいて、LLM によるテキスト変換をいくつかのパター ンで検証する。コード候補は人間が考えたプロンプトと自動プロンプトで変換したテキストに加えて変換しない元のコードの 3 種類を評価する。対象コードはこの 3 種類に加えて、 3.1 節で説明した RepoCoder [4] の手法と提案手法の 5 種類を評価する。実際に使用したプロンプトは付録 A に示す。

使用したモデル・データセットテキスト変換を行う LLM は gpt-3.5-turbo ${ }^{3}$ を使用した。その際、一貫性のある生成を行うために温度パラメータを 0 に設定して生成を行った。また、埋め込み表現への変換に用いたモデルは RoBERTa ${ }^{4}$,, UniXcoder ${ }^{5}$, CodeBERT $^{6}$, , text-embedding-ada-002 ${ }^{7}$ (以下 ada-002) の 4 種類である。また変換したテキスト間の類似度

3) https://platform.openai.com/docs/models/gpt-3-5

4) https://huggingface.co/roberta-base

5) https://huggingface.co/microsoft/unixcoder-base

6) https://huggingface.co/microsoft/codebert-base

7) https://platform.openai.com/docs/models/embeddings
の計算方法として、埋め込み表現を cosine 類似度で評価する方法と BERTScore [15]を比較した。

評価には RepoBench [3] の検索タスクである repobench-r ${ }^{8)}$ の Java データセットと Python データセットの両方を用いた。その中で対象コードとコー ド候補のセットが 8,000 件ある XFF, easy の設定で評価を行った。XFFは、対象コードにおいて予測すべき次の行が、そのコードの中で一番最初に外部のコードを参照する設定である。easy はコード候補が平均で Java は 6.6 ファイル、Python は 6.7 ファイル存在するタスクである。

評価指標コード検索タスクの評価は RepoBench の評価方法に倣い、類似度が最も高いコード候補が正解となる割合 (acc@1) と、類似度が高い3つの内に正解が含まれている割合 (acc@3) で評価を行う。

## 4.2 結果

Python の評価結果を表 1 に、Java の評価結果を付録の表 4 に示す。本論文では表 1 について議論する。表 1 は左からそれぞれ類似度の計算方法、類似度計算のための埋め込み表現を作成に使用したモデル、コード候補のプロンプト、対象コードのプロンプトを表す。プロンプトはそれぞれ Human が人手によるプロンプト、Autoが自動プロンプト、Original が元のコード、Predが次の行の予測、Pred+Explain が次の行の予測と説明を加えたものを表す。

提案手法がベースラインより高精度最も精度が高かったのはacc@1,acc@3ともに Embedding(埋め込み表現の cosine 類似度) の ada-002、コード候補が Original、対象コードが Pred+Explain の場合である。公開モデルでは BERTScore の UnixCoder、コード候補が Human、対象コードが Pred+Explain の場合である。ベースライン (コード候補が Original、対象コー ドが Original) と比較すると、精度を大きく上回っており、提案手法の有効性を確認できる。

Pred+Explain が高精度全体的に精度が良いのが、対象コードが Pred+Explain の場合で、他の変換方法に比べてほとんどの場合で精度が高い。特に、次の行の予測をする Pred は RepoCoder [4] で提案された手法であり、説明を加えることで精度が向上していることから、提案手法の有効性を確認できる。

対象コードが Human, Auto で低精度反対に、対象コードが Human, Auto の場合はベースラインを下

8) https://huggingface.co/datasets/tianyang/ repobench-r
表 1: Python データセットの結果

 & 48.65 \\

回り低い精度となった。これはコードをテキストに変換する際に、コード全体に関する変換を行ったため、次の行に関する情報が減少したためと考えられる。対象コードが Original の時は RepoBench [3] に従い、最後から 3 行をモデルに入力したため、次の行に関する情報が多く残ったと考えられる。

## 人手プロンプトによるコード候補の変換で高精度 コード候補のテキスト変換に着目すると、精度の全体的な傾向としては Original と Auto がおおよそ同 じで、Human の精度が高い結果となった。これはテ キスト変換による精度向上の有効性は確認できた が、自動プロンプトによる精度の向上は確認できな かったことを表している。プロンプトの設計は、本実験条件では人手で行った方が精度が高く、プロン プトの自動化は今後の課題である。

UniXcoder と ada-002 が高精度モデルごとに精度を評価すると、UniXcoder と ada-002では全体的に精度が高かったが、RoBERTa や CodeBERT ではいずれのプロンプトでも精度が低かった。CodeBERT と UniXcoder は RepoBench [3] で示されていた傾向と似ており、それぞれ CodeBERTが低精度、UniXcoderが高精度となった。RoBERTa はコードで事前学習されていないが、テキスト変換によりコードがテキストに変換されるので精度が高くなると予測したが、低い結果となった。ada-002 は CodeSearchNet [17] データセットでも精度が高く9)、repobench-r でも高
い精度が得られた。

Embedding より BERTScore が高精度類似度の計算方法で比較を行うと、同じモデル同士では Embedding よりも BERTScore [15] が高精度である。 BERTScore [15] は Embedding と比べて、類似度を計算する際にトークンごとに類似度を取得するため、Embedding よりも情報量が多く、高精度になったと考えられる。しかし、最も精度が高かったのは acc@1, acc@3ともに Embedding の ada-002、コー ド候補が Original、対象コードが Pred+Explain の場合である。ada-002 のような非公開のモデルでは BERTScore [15] は適用できないことに留意が必要である。

## 5 おわりに

本研究ではコード補完タスクにおけるコード検索で、コードをテキストに変換して類似度を取得する方法を提案した。また、プロンプトを LLM に作成させる自動プロンプトの提案も行った。テキスト変換については精度の向上が確認できたが、自動プロンプトに関しては精度の向上を確認できなかった。

今後はコード補完タスク以外のデバッグなどのタスクや、リポジトリレベルのタスク以外にもテキス卜変換を応用して適用したいと考えている。本研究がリポジトリレベルでのコード生成タスクの発展に寄与することを願っている。

9) https://openai.com/blog/new-and-improved-embedding-model

## 謝辞

本研究は日本電信電話株式会社と早稲田大学の共同研究により実施した。

## 参考文献

[1] Carlos E Jimenez, John Yang, Alexander Wettig, Shunyu Yao, Kexin Pei, Ofir Press, and Karthik Narasimhan. Swebench: Can language models resolve real-world github issues? arXiv preprint arXiv:2310.06770, 2023.

[2] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. Advances in neural information processing systems, Vol. 30, 2017.

[3] Tianyang Liu, Canwen Xu, and Julian McAuley. Repobench: Benchmarking repository-level code autocompletion systems. arXiv preprint arXiv:2306.03091, 2023.

[4] Fengji Zhang, Bei Chen, Yue Zhang, Jacky Keung, Jin Liu, Daoguang Zan, Yi Mao, Jian-Guang Lou, and Weizhu Chen. RepoCoder: Repository-level code completion through iterative retrieval and generation. In Houda Bouamor, Juan Pino, and Kalika Bali, editors, Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing, pp. 2471-2484, Singapore, December 2023. Association for Computational Linguistics.

[5] Zhangyin Feng, Daya Guo, Duyu Tang, Nan Duan, Xiaocheng Feng, Ming Gong, Linjun Shou, Bing Qin, Ting Liu, Daxin Jiang, and Ming Zhou. CodeBERT: A pretrained model for programming and natural languages. In Trevor Cohn, Yulan He, and Yang Liu, editors, Findings of the Association for Computational Linguistics: EMNLP 2020, pp. 1536-1547, Online, November 2020. Association for Computational Linguistics.

[6] Daya Guo, Shuai Lu, Nan Duan, Yanlin Wang, Ming Zhou, and Jian Yin. UniXcoder: Unified cross-modal pre-training for code representation. In Smaranda Muresan, Preslav Nakov, and Aline Villavicencio, editors, Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 7212-7225, Dublin, Ireland, May 2022. Association for Computational Linguistics.

[7] Mark Chen, Jerry Tworek, Heewoo Jun, Qiming Yuan, Henrique Ponde de Oliveira Pinto, Jared Kaplan, Harri Edwards, Yuri Burda, Nicholas Joseph, Greg Brockman, Alex Ray, Raul Puri, Gretchen Krueger, Michael Petrov, Heidy Khlaaf, Girish Sastry, Pamela Mishkin, Brooke Chan, Scott Gray, Nick Ryder, Mikhail Pavlov, Alethea Power, Lukasz Kaiser, Mohammad Bavarian, Clemens Winter, Philippe Tillet, Felipe Petroski Such, Dave Cummings, Matthias Plappert, Fotios Chantzis, Elizabeth Barnes, Ariel Herbert-Voss, William Hebgen Guss, Alex Nichol, Alex Paino, Nikolas Tezak, Jie Tang, Igor Babuschkin, Suchir Balaji, Shantanu Jain, William Saunders, Christopher Hesse, Andrew N. Carr, Jan Leike, Josh Achiam,
Vedant Misra, Evan Morikawa, Alec Radford, Matthew Knight, Miles Brundage, Mira Murati, Katie Mayer, Peter Welinder, Bob McGrew, Dario Amodei, Sam McCandlish, Ilya Sutskever, and Wojciech Zaremba. Evaluating large language models trained on code, 2021.

[8] Raymond Li, Loubna Ben Allal, Yangtian Zi, Niklas Muennighoff, Denis Kocetkov, Chenghao Mou, Marc Marone, Christopher Akiki, Jia Li, Jenny Chim, et al. Starcoder: may the source be with you! arXiv preprint arXiv:2305.06161, 2023.

[9] Baptiste Roziere, Jonas Gehring, Fabian Gloeckle, Sten Sootla, Itai Gat, Xiaoqing Ellen Tan, Yossi Adi, Jingyu Liu, Tal Remez, Jérémy Rapin, et al. Code llama: Open foundation models for code. arXiv preprint arXiv:2308.12950, 2023.

[10] Yue Wang, Hung Le, Akhilesh Gotmare, Nghi Bui, Junnan Li, and Steven Hoi. CodeT5+: Open code large language models for code understanding and generation. In Houda Bouamor, Juan Pino, and Kalika Bali, editors, Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing, pp. 1069-1088, Singapore, December 2023. Association for Computational Linguistics.

[11] Jacob Austin, Augustus Odena, Maxwell Nye, Maarten Bosma, Henryk Michalewski, David Dohan, Ellen Jiang, Carrie Cai, Michael Terry, Quoc Le, and Charles Sutton. Program synthesis with large language models, 2021.

[12] René Just, Darioush Jalali, and Michael D Ernst. Defects4j: A database of existing faults to enable controlled testing studies for java programs. In Proceedings of the 2014 international symposium on software testing and analysis, pp. 437-440, 2014.

[13] Yangruibo Ding, Zijian Wang, Wasi Uddin Ahmad, Murali Krishna Ramanathan, Ramesh Nallapati, Parminder Bhatia, Dan Roth, and Bing Xiang. Cocomic: Code completion by jointly modeling in-file and cross-file context. arXiv preprint arXiv:2212.10007, 2022.

[14] Disha Shrivastava, Hugo Larochelle, and Daniel Tarlow. Repository-level prompt generation for large language models of code. In International Conference on Machine Learning, pp. 31693-31715. PMLR, 2023.

[15] Tianyi Zhang, Varsha Kishore, Felix Wu, Kilian Q. Weinberger, and Yoav Artzi. Bertscore: Evaluating text generation with BERT. In 8th International Conference on Learning Representations, ICLR 2020, Addis Ababa, Ethiopia, April 26-30, 2020. OpenReview.net, 2020.

[16] Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Fei Xia, Ed Chi, Quoc V Le, Denny Zhou, et al. Chain-of-thought prompting elicits reasoning in large language models. Advances in Neural Information Processing Systems, Vol. 35, pp. 24824-24837, 2022.

[17] Hamel Husain, Ho-Hsiang Wu, Tiferet Gazit, Miltiadis Allamanis, and Marc Brockschmidt. Codesearchnet challenge: Evaluating the state of semantic code search. arXiv preprint arXiv:1909.09436, 2019.

## A プロンプト

実際に用いたプロンプトを表 2,3 に示す。表の種類の共通はすべてのプロンプトの最初に入力するプロンプト文を表し、Human, Auto, Pred, Pred+Explain はそれぞれ本研究で用いたプロンプト文で、メタ情報はすべてのプロンプトの後に入力される情報である。表のプロンプトはそれぞれの種類で、使用したプロンプト文を表す。プロンプトの構成として共通の文が最初で、その次に Human, Auto, Pred, Pred+Explain のいずれかの文、最後にメ夕情報となる。これらのプロンプトの後にコードが入力される。

表 2: コード候補の変換に用いたプロンプト

 \\

表 3: 対象コードの変換に用いたプロンプト

 \\

## B Java データセットの結果

表 4 に Java の結果を示す。おおむね Python と同じ傾向だが、Pred+Explain よりもPred のほうが精度が高い場合が多い。コード候補は変換したほうが良い結果を得られているため本手法は有効であるといえる。

表 4: Java データセットの結果