# 頑健な $\mathrm{FAQ$ 検索に向けた Prompt-Tuning を用いた関連知識の生成
}

1 株式会社 AI Shift 2 株式会社サイバーエージェント
\{ninomiya_hirotaka, hentona_asahi, tomomatsu_yuta\}@cyberagent.co.jp

## 概要

チャットボットが提供する機能の一つに，よくあ る質問集（FAQ: Frequently Asked Questions）を用い てユーザの質問に回答する FAQ 検索がある．FAQ 検索では，目的語が欠落しているなど，与えられる 質問が不明瞭なことが多く，検索精度の低下の要因 となり得る。そこで，我々は言語生成モデルを用い て質問の明確化を行い，FAQ 検索に活用する手法 を提案する。質問の明確化のためにモデルが獲得 すべき知識がドメインごとに異なることから，言語生成モデルの学習コストを抑えることができる Prompt-Tuning を用いた. チャットボット事業で収集したデータを用いた実験では 3 ドメインにおいて 提案手法の有効性を検証した。

## 1 はじめに

カスタマーサポートの分野において注目を集め ているチャットボットは，現在多くの企業において ユーザの課題解決を促すツールとして導入されてい る.そして，チャットボットが提供する機能の一つ である FAQ 検索は現在盛んに研究が行われている [1][2].

FAQ 検索では，事前に定義した FAQ の中からユー ザ質問との類似度が高い FAQ を選択する。この時， ユーザ質問と FAQ の間で表記が異なることが多く，質問の意味を考慮する必要があることから，我々 は事前学習済み言語モデルを用いた検索モデルを 構築している．特に，オープンドメイン質問応答 や日本語クイズタスク JAQKET[3][4] において有効性が確認された Dense Passage Retrieval[5] の検索器 （Retriever）を利用している.

FAQ 検索はオープンドメイン質問応答と異なり，検索対象となるテキスト集合が数十件から数百件程度の小規模な FAQ のデータベース（FAQDB）であ
るが，与えられるユーザ質問は比較的短く不明瞭な 傾向にあり，回答が困難なタスクと考えられる。例 えば，「入りたいのに入れません」というユーザ質問は「入りたい」に対する目的語が欠落しているた め一般的には回答不能であるが，FAQ 検索の場合は 検索対象が FAQDB に絞られるため，「マイページに 入れません」といった質問とマッチすれば良いと推察できる。このことから，ユーザ質問を明確化する テキストを補足することができれば，より正確に回答を提示できる可能性がある．そこで，本研究では 与えられたユーザ質問からそれを明確化するテキス トを生成するモデルの学習を目指す。

ただし，FAQ 検索は複数のドメインで導入される ことが多く，大規模な言語生成モデルをドメインご とに学習すると学習コストが膨大になる。そこで言語生成モデルの学習には Prompt-Tuning[6] を用いる. Prompt-Tuning では，質問の明確化に必要な情報を固定長の単語列としてモデルへの入力単語列の前方に 付与し，その埋め込みべクトルを学習によって最適化する。これにより，それらの埋め込みべクトルを 変更するだけで単一の言語生成モデルを複数のド メインに適応可能となるので，学習コストが抑えら れる。

言語モデルの発展に伴い，多くのタスクにおいて 事前学習済みモデルの Fine-Tuning が効果的である ことが確認される一方で，事前学習済みモデルの大規模化により Fine-Tuning が困難な場合がある。そ こで，GPT-3[7] では Prompt と呼ばれるテキストを 与えることで，事前学習済みモデルの重みを更新せ ずに，広範囲のタスクを解くことが可能であるこ とが確認された。さらに，Prompt に関する従来研究 [8][9] によると, Prompt を適切に設定することに よって事前学習済みモデルを用いて事実や常識に 関するテキストを生成することが可能であること が確認されたことから，Prompt が重要な役割を果

たすことがわかる．ただし，タスクの説明等に関す る Prompt は人手で作成する必要があるため, 事前学習済みモデルにとって最適な単語列であるとは 限らない. そこで，先頭に固定長の単語列を付与 し, それらに対する埋め込みべクトルを学習パラメ タとして自動的に最適化する Prompt-Tuning が提案 された [6][10]. これより, 我々は質問の明確化に必要なドメインごとの知識を Prompt に埋め込むよう に学習できる可能性を考慮し, 言語生成モデルを Prompt-Tuning する.

## 2 FAQ 検索

本研究で扱う FAQ 検索の処理を図 1 に示す. FAQ 検索とは，事前に定義された FAQDB から，ユーザ 質問に最も適する FAQを選択するタスクである。例えば図 1 のように，「銀行振り込みの自動更新に ついて教えて欲しい」といったユーザ質問が入力さ れた場合，システムはFAQDB を検索する。ここで FAQDB は (1) 拡張質問 $Q^{\prime}$, (2)FAQ 質問 $Q$, (3)FAQ 回答 $A$ を 1 組とする FAQ の集合である。通常，FAQ は質問と回答のペアで表されるが，質問の複数の言 い換え表現として拡張質問 $Q^{\prime}$ を設定することで検索精度が向上することが知られている [11]. 最終的 に検索結果上位 1 件の拡張質問に対応する FAQ 回答をユーザに提示する。

検索モデルは Retriever と Reranker で構成される. Retriever は与えられたユーザ質問と検索対象とな る拡張質問を個別にベクトルに変換する Bi-Encoder である. さらに，ユーザ質問と FAQ の単語間の Attention 計算が有効であると考え, Retriever の検索結果上位 $K （$ 実験では $K=5 ）$ 件を BERT[12]をべー スとする Rerankerに与え，出力スコアを元にリラ ンキングを行う. 実験では, Retriever の検索結果と Rerankerによるリランキングの結果を比較する.

学習時, Retriever はユーザ質問 $q$ に対する Encoder の出力ベクトルと FAQ 質問 $Q$ に対する Encoder の 出力ベクトルの類似度を式 (1)により算出する.

$
\operatorname{sim}(q, Q)=E_{q}(q)^{T} E_{Q}(Q)
$

ここで $E_{q}, E_{Q}$ はそれぞれユーザ質問 $q$ と $\mathrm{FAQ}$ 質問 $Q$ に対する Encoderを， ${ }^{T}$ は転置を表す。 $i$ 番目の事例において $q_{i}$ をユーザ質問, $Q_{i}^{+}$を正例の $\mathrm{FAQ}$ 質問， $Q_{i, j}^{-}$を $j$ 番目の負例の FAQ 質問， $n$ を負例の FAQ 質問の総数, 訓練データの件数を $m$ とすると,訓練データは $D=\left.\{\left.\langle q_{i}, Q_{i}^{+}, Q_{i, 1}^{-}, \ldots, Q_{i, n}^{-}\right.\rangle\right.\}_{i=1}^{m}$ と表さ

図 $1 \mathrm{FAQ}$ 検索の処理

れる. Retriever は式 (2)の損失関数が最小になるよ うに学習される. ユーザ質問と正例の FAQ 質問が 類似しているほど損失が小さくなり，負例の FAQ 質問との類似度が高いほど，式 (2) の損失は大きく なる。

$
\begin{aligned}
& L\left(q_{i}, Q_{i}^{+}, Q_{i, 1}^{-}, \ldots, Q_{i, n}^{-}\right) \\
& \quad=-\log \left(\frac{e^{\operatorname{sim}\left(q, Q_{i}^{+}\right)}}{e^{\operatorname{sim}\left(q, Q_{i}^{+}\right)}+\sum_{j=1}^{n} e^{\operatorname{sim}\left(q, Q_{i, j}^{-}\right)}}\right)
\end{aligned}
$

推論時はユーザの多様な言い回しに対応するため に，FAQ 質問ではなく拡張質問を用いて検索を行 う. つまり，拡張質問を $Q^{\prime}$ とすると式 (3)により類似度を計算し，最も類似度が高い拡張質問に対応す る FAQ 回答を選択する。

$
\operatorname{sim}\left(q, Q^{\prime}\right)=E_{q}(q)^{T} E_{Q}\left(Q^{\prime}\right)
$

Rerankerを用いる場合，Retriever の検索結果の上位 $K$ 件から “[CLS]（ユーザ質問 $q$ ）[SEP]（拡張質問 $Q^{\prime}$ ）[SEP]”という単語列を $K$ 件作成し，それぞれ Reranker に与えてリランキングスコアを算出する. Reranker は BERT と全結合層 1 層からなり，ユーザ 質問 $q$ と拡張質問 $Q^{\prime}$ が正例のペアかどうかの二値分類を行い，softmax 関数の正例に対する出力値を リランキングスコアとする.

訓練データは Retriever と同様の訓練データを用い て正例を作成し，さらに FAQDB から答え以外の拡
張質問をランダムサンプリングすることで各事例に 対して負例を 2 件作成する。

## 3 提案手法

不明膫なことが多いユーザ質問に対して質問を明確化するようなテキスト（以降，関連知識）を付与 することができれば検索精度が向上する可能性があ る.そこで，我々は言語生成モデルを用いた関連知識の生成を提案する. 生成されたテキストはユーザ 質問に付与して Retriever もしくは Reranker に入力 し，学習と推論に用いる。

## 3.1 Prompt-Tuning

図 2 Prompt-Tuning の概要図

Prompt-Tuning では，入力単語列の前に固定長の単語列を付与し，そのドメインにおける関連知識を埋 め込むこととする．学習時，言語生成モデルの重み は固定され, 付与される単語列の埋め込みベクトル は学習によって最適化される. Prompt-Tuning に関 する概要図を図 2 に示す.

Prompt-Tuning の学習方法として 2 通りを実験す る. まず，FAQ 検索に関する従来研究 [11] では拡張質問と FAQ 質問の対応関係をモデルに学習させる ことで $\mathrm{FAQ}$ 検索システムを構築していることから， これを参考に拡張質問から $\mathrm{FAQ}$ 質問を生成するよ うに言語生成モデルを学習させる $(G L M w / F A Q D B)$. ただし，拡張質問と FAQ 質問は事前に定義される テキストである一方で，ユーザ質問はチャットボッ ト内でユーザが記述したテキストであるため，それ らの間には表記や質問内容の粒度の違いが存在し，言語生成モデルがユーザ質問から関連知識を上手く 生成できない可能性がある。そこで 2 つ目に，訓練 データのユーザ質問からそれに対する正例の FAQ 質問を生成するように学習させる（GLM w/TRAIN）。言語生成モデルとしては，公開されている日本語版の $\mathrm{GPT}-2^{1)}$ と GPT(1b) $)^{2}$ を用いる.

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

2) https://huggingface.co/rinna/japanese-gpt-1b表 1 ドメイン別のデータセットの事例数

生成されたテキストはユーザ質問に付与する.

Retriever の場合，ユーザ質問に対する $\operatorname{Encoder} E_{q}$ の 入力単語列は，“[CLS]（ユーザ質問 $q$ ）[SEP]（生成 されたテキスト）［SEP]”となる。一方で Reranker の 場合，入力単語列は “[CLS]（ユーザ質問 $q$ ）[SEP] （拡張質問 $Q^{\prime}$ ） [SEP]（生成されたテキスト）[SEP]" となる。

実験では，同様のデータで GPT-2を Fine-Tuning し た場合 [13] と比較する。

## 4 実験

チャットボット3)で収集したデータセットを用い て提案手法の有効性を検証する。データセットは 3 つのドメインからなり，ドメイン $\mathrm{A}, \mathrm{B}, \mathrm{C}$ と表記す る.これらは互いに異なる事業で導入されたチャッ トボットから収集されたデータである. ドメインご とのデータセットの作成方法は従来研究 [14] に倣 い，事例数は表 1 に示す.

## 4.1 実験設定

Retrieverを構成する 2 つの Encoder と Reranker の 重みの初期値には, 公開されている日本語事前学習済み $\mathrm{BERT}^{4}$ の重みを用いる。学習時のパラメタは 付録 A に記載する. 以降, Fine-Tuning された GPT-2, Prompt-Tuning された GPT-2, Prompt-Tuning された GPT(1b) をそれぞれ ftGPT-2, ptGPT-2, ptGPT(1b) と 表記する。また，ベースラインとして利用する BM25 [15] では，FAQDB の拡張質問の集合から IDF 值をドメインごとに計算し，名詞と動詞原型のみ用 いて算出する. Reranker の推論時は，言語生成モデ ルを用いずに Retrieverによる検索を行い，その検索結果の上位 $K$ 件に対して Rerankerによるリランキ ングを行う．評価指標には，検索結果の上位 1 件の 精度である Top1 Accuracy を用いる.

## 4.2 実験結果

実験結果を表 2 に示す. Retriever と Rerankerを比較すると，ドメイン A とドメイン B においては

3) https://www.ai-messenger.jp

4) https://huggingface.co/cl-tohoku/bert-base-japanese

Reranker の検索精度が高い値となった. これはユー ザ質問と拡張質問を連結して Rerankerで単語間の Attention 計算を行っており，この点がリランキング に効果的であったと考えられる。

言語生成モデルで生成されたテキストを付与 したことに対する実験結果によると，ドメイン B では Reranker w/ptGPT(1b) が最も高いことから， Prompt-Tuning によって学習させた言語生成モデル が効果的な関連知識を生成することができたと考え られる。一方で，ドメイン A とドメイン Cではそ れぞれ Reranker,BM25が最も高い結果となった. し たがって，言語生成モデルによる質問の明確化は全 てのドメインにおいて有効であるとは限らないとい える。

次に言語生成モデルの学習手法 2 つそれぞれに ついて述べる. まず $G L M w / F A Q D B$ の場合，ドメイ ン B で ftGPT-2, ptGPT-2, ptGPT(1b) 全てにおいて検索精度が向上した一方で, Reranker の検索精度と比較するといずれも低い。したがって，今回の手法で は質問の明確化よりも，単純に Reranker を利用する ことの方が効果的であるといえる。ただし，ドメイ ン B において Reranker は ptGPT(1b) のみ検索精度が 向上した. これより, モデルサイズが生成される関連知識の質に影響する可能性があることがわかる。次に，GLM w/TRAIN の場合，ドメイン B で Retriever
では ftGPT-2, ptGPT-2, ptGPT(1b)の全てで検索精度 が向上した一方で，Reranker では全て検索精度が低下した。これは Reranker と言語生成モデルの訓練 データが同じであり，生成した関連知識が Reranker にとって不要であったと考えられる。

## 4.3 今後の展望

実験結果によると，ドメイン Cでは BM25 が Retriever と Rerankerを上回った. FAQ 検索ではドメ イン次第で効果的な手法が異なることが経験的にわ かっているため，BM25 のような表層形を用いた検索と Retriever や Reranker のような機械学習モデル を用いた検索を上手く組み合わせることが重要であ る. さらに，今回扱った FAQ 検索特有の問題である 質問の不明瞭さへの対処として質問の明確化を行う ことで頑健な手法を検討したい.

また, 実験結果から ftGPT-2 と ptGPT-2 による学習手法の比較と, ptGPT-2 と ptGPT(1b) によるモデ ルサイズの比較を行った場合でも一貫した傾向は確認されなかった．モデルサイズと関連知識の質に関 して今後の調査を検討中である。

生成されたテキストを確認すると，いずれのモデ ルの場合においても入力単語列がそのまま出力され る場合や意味の通らない単語列が生成される場合が 確認された。言語生成モデルによる安定した関連知識の生成が今後の課題である.

## 5 おわりに

本研究では，FAQ 検索におけるユーザ質問の不明瞭さへの対処として，言語生成モデルで質問の明確化を行い，特定のドメインにおいては検索精度が向上することを示した．今回実験したドメインにおい ては Fine-Tuning が困難である大規模な言語生成モ デルを Prompt-Tuning することで関連知識の生成が 可能であることがわかった. しかし，実験中の全て のドメインにおける一貫した検索精度の向上は確認されなかった. 今後は安定した関連知識の生成を 検討しつつ，より頑健な FAQ 検索手法の構築を目指す.

## 謝辞

本論文の作成にあたりご協力いただきました，株式会社 AI Shift の杉山雅和氏，戸田隆道氏，東佑樹氏，下山翔氏にこの場を借りて厚く御礼申し上げ ます。

## 参考文献

[1] Wataru Sakata, Tomohide Shibata, Ribeka Tanaka, and Sadao Kurohashi. Faq retrieval using query-question similarity and bert-based query-answer relevance. In Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval, pp. 1113-1116, 2019.

[2] Yosi Mass, Boaz Carmeli, Haggai Roitman, and David Konopnicki. Unsupervised FAQ retrieval with question generation and BERT. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pp. 807-812, Online, July 2020. Association for Computational Linguistics.

[3] 鈴木正敏, 鈴木潤, 松田耕史, 西田京介, 井之上直也. Jaqket: クイズを題材にした日本語 qa データセット の構築. 言語処理学会第 26 回年次大会, pp. 237-240, 2020.

[4] 加藤拓真, 宮脇峻平, 西田京介, 鈴木潤. オープンドメ インqaにおける dpr の有効性検証. 言語処理学会第 26 回年次大会, pp. 237-240, 2020.

[5] Vladimir Karpukhin, Barlas Oguz, Sewon Min, Patrick Lewis, Ledell Wu, Sergey Edunov, Danqi Chen, and Wentau Yih. Dense passage retrieval for open-domain question answering. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), pp. 6769-6781, Online, November 2020. Association for Computational Linguistics.

[6] Guanghui Qin and Jason Eisner. Learning how to ask: Querying LMs with mixtures of soft prompts. In Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pp. 52035212, Online, June 2021. Association for Computational Linguistics.

[7] Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. Advances in neural information processing systems, Vol. 33, pp. 1877-1901, 2020.

[8] Fabio Petroni, Tim Rocktäschel, Patrick S. H. Lewis, Anton Bakhtin, Yuxiang Wu, Alexander H. Miller, and Sebastian Riedel. Language models as knowledge bases? CoRR, Vol. abs/1909.01066, , 2019.

[9] Joshua Feldman, Joe Davison, and Alexander M. Rush. Commonsense knowledge mining from pretrained models. CoRR, Vol. abs/1909.00505, , 2019.

[10] Brian Lester, Rami Al-Rfou, and Noah Constant. The power of scale for parameter-efficient prompt tuning. In Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing, pp. 3045-3059, Online and Punta Cana, Dominican Republic, November 2021. Association for Computational Linguistics.

[11] Haytham Assem, Sourav Dutta, and Edward Burgin. DTAFA: Decoupled training architecture for efficient FAQ retrieval. In Proceedings of the 22nd Annual Meeting of the Special Interest Group on Discourse and Dialogue, pp. 423-430, Singapore and Online, July 2021. Association for Computational Linguistics.

[12] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pp. 4171-4186, Minneapolis, Minnesota, June 2019. Association for Computational Linguistics.

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

[14] 二宮大空, 邊土名朝飛, 杉山雅和, 戸田隆道, 友松祐太. チャットボット事業における dense retriever を用 いた zero-shot faq 検索. 第 96 回言語・音声理解と対話処理研究会 (第 13 回対話システムシンポジウム), 2022.

[15] Stephen Robertson, Hugo Zaragoza, et al. The probabilistic relevance framework: Bm 25 and beyond. Foundations and Trends ${ }^{\circledR}$ in Information Retrieval, Vol. 3, No. 4, pp. 333-389, 2009.

## A 学習時のパラメタ

Retriever と Reranker の Fine-Tuning 時の学習率は $1 \times 10^{-5}$ （warmup rate=10\%）とし, Optimizer は Adam を用いる. Retriever の Fine-Tuning 時の Epoch は 10, バッチサイズは 64 とする. Rerankerの Fine-Tuning 時 の Epochは2，バッチサイズは 32 とし, Cross Entropy Loss を最小化するように学習させる. Retrieverと Reranker の入力最大長はそれぞれ 50 トークン， 100 トークンであり，超過する単語列は削除される。

言語生成モデルである GPT-2 と GPT(1b) は, Prompt-Tuning と Fine-Tuning 両方において学習率 は $1 \times 10^{-5}$, バッチサイズは 8 , Dropout 率は 0.1 , Optimizer は Adam を用いる. 学習時の Epoch はドメ インによって異なり，ドメイン $\{\mathrm{A}, \mathrm{B}, \mathrm{C}\}$ はそれぞ れ GLM w/FAQDB の場合 $\{30,30,100\}$ とし, GLM $w / T R A I N$ の場合 $\{3,5,10\}$ とする. Prompt-Tuning に関しては Prompt に対する埋め込みベクトルのみ 更新され，事前学習済みの言語生成モデルの重みは 固定する. Prompt-Tuning 時の付与される単語列は 20 トークンとする．実装には huggingface を用いて おり, Prompt に対する正解ラベルは-100を設定する ことで関連知識と無関係な損失が計算されないよう に設定している.
}  1 株式会社 AI Shift 2 株式会社サイバーエージェント \{ninomiya_hirotaka, hentona_asahi, tomomatsu_yuta\}@cyberagent.co.jp  