\section{はじめに}
大規模言語モデルの生成の質は近年著しく向上し，人間によるものと区別のつかない文章の生成が可能となっている\cite{devlin-etal-2019-bert,brown2020language,touvron2023llama}．一方で，事実と異なる誤りを含む内容も自然な文章として生成してしまう問題が顕在化し\cite{huang2023survey}，誤情報の拡散や意思決定への影響といったリスクが増している．言語モデルによる誤情報生成への対策の一つに，モデルが生成した内容に対する確信度推定がある．確信度スコアが高いほど実際に生成内容が正しい確率が高くなるような確信度指標を設計することで，ユーザが出力を信頼するかの判断材料としたり，アプリケーションにおける生成内容の出力制御に用いるというものである．確信度指標としては，単に出力トークンに対する予測尤度を用いるのが素朴な方法であるが，予測尤度と生成内容の正確性は必ずしも対応しない．そのため，生成時に利用可能な他の情報を用いることで，生成内容の正確性をより精度良く推定できる指標が研究されている．生成時に確信度推定に利用できる情報はユーザ，開発者といった立場やモデルの公開レベルによって異なる．モデルの出力テキストのみを参照可能なブラックボックス条件下では，確信度を示す表現を出力テキストに含めさせる\cite{mielke-etal-2022-reducing}，複数の生成間の一貫性を見る\cite{manakul-etal-2023-selfcheckgpt}などの方法がある．モデルの内部状態を参照可能な設定では，テキストの埋め込み表現や注意機構の値などを用いる方法や\cite{ren2023outofdistribution,li2023inferencetime}，少量の訓練データを用い，学習に基づいて確信度スコアが実際の正答率に近づくよう調整する方法がある\cite{mielke-etal-2022-reducing}．一方，これらの既存研究では，言語モデルの訓練データの利用は想定されていない．これは，大規模言語モデルの多くがAPIアクセスやモデルパラメータの公開のみに留まっており，訓練データそのものにアクセスできるケースが少ない現状を反映していると考えられる．しかしながら，著作権や透明性担保の観点から言語モデルの訓練に使われたデータの開示への要請は高まりつつあり，訓練に用いられたコーパスを検索できる仕組みが提供される例も現れている\cite{piktus2023roots}．また，テキスト生成の質改善においては訓練データの利用が有用であることが既に知られている\cite{Khandelwal-etal-2020-knnlm}．以上のような背景から，本研究では言語モデルの訓練データにアクセス可能な状況を想定し，確信度指標の改善に訓練データの利用が有用であるかを検討する．具体的には，言語モデルの出力に関連のある訓練データ中の事例に基づきモデル出力の確信度を計算する複数の確信度指標を設計し，言語モデルの知識評価ベンチマークであるLAMA(Petronietal.2019)を用いて評価した．関連事例の検索には，訓練データを文脈表現および文分散表現に基づき検索可能なデータストアを構築して用いる方法と，文中のエンティティに基づくテキスト一致検索とを比較検討した．言語モデルとしては，データストアが数TB規模に相当する訓練データで学習可能な中規模モデルのうち，LAMAベンチマークで高い性能を示すBERTモデル\cite{devlin-etal-2019-bert}を使用し，英語Wikipediaを訓練データとして事前学習を行った．なお，本研究において外部の知識源ではなくモデルの訓練データを用いるのは，確信度推定の主目的が，言語モデルが学習した知識に基づいて正確に出力を行えているかを判定することにあるためである．外部の情報源を参照して，言語モデルの知識の範囲外の事柄について真偽を判定することは，本研究の直接的な目的ではない点に注意する．実験から，言語モデルの予測尤度と訓練データ中の関連事例の情報を組み合わせて用いることで，訓練データを用いない場合と比較して確信度指標の性能が向上することを確認した．このことから，モデル出力の確信度推定の観点からも，言語モデル学習に用いた訓練データへのアクセスは有用であることが示唆される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S2
\section{タスクと評価指標}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S2.1\subsection{タスク}\label{sec:task_notation}本研究では，言語モデルの生成内容が何らかの事実に関する記述を含むとき，その記述が事実に即して正確かどうかを判別するための確信度指標を考える．このとき，言語モデルは生成時に外部情報等の参照は行わず，学習時に訓練データから獲得した知識のみに基づき生成を行うものとする．具体的な処理の流れは以下のようになる．マスク付き入力文$c_t=(w_1,\ldots,w_{t-1},M,w_{t+1},\ldots,$$w_T)$のマスク位置$t$において，言語モデルが予測する単語$w$の出力確率を$P_{\rmLM}(w|c_t)$とする．以下，特にことわらない限り，モデルの予測としては予測確率が最大のもの$\hat{w}=\arg\max_wP_{\rmLM}(w|c_t)$を採用することとする.これに対し，あらかじめ定義された確信度指標$\psi$に基づき，予測内容が正しさの確信度スコア$\psi(\hat{w},c_t)$を計算する．確信度指標として最も素朴なものは，モデルの出力する尤度$\psi_{\rmToken}(w,c_t)=\logP_{\rmLM}(w|c_t)$をそのまま確信度として用いるものである．評価ベンチマークとしてはLAMA\cite{petroni-etal-2019-language}を用いる．LAMAは言語モデルの知識評価を目的としたデータセットで，学習済み言語モデルの事実や常識に関する知識をゼロショットで生成・評価させるよう設計されている．データセットは主に(subject,relation,object)の三つ組からなる関係知識を問う質問から構成され，関係知識を問う入力文は，関係タイプごとに設計されたテンプレートに基づいて設計される．例えば，人物の出生地に関する質問には``\texttt{<subj>wasbornin[MASK].}''というテンプレートが用いられる．\texttt{<subj>}は三つ組ごとに具体的なエンティティで置き換えられる．データセットは，三つ組の関係知識を問うGoogle-RE\footnote{\url{https://code.google.com/archive/p/relation-extraction-corpus/}}とT-REx\cite{elsahar-etal-2018-rex}，語彙に関する意味関係の知識を問うConceptNet\cite{speer-havasi-2012-representing}，質問応答データセットに基づいて構築されたSQuAD\cite{rajpurkar-etal-2016-squad}の4つのサブセットから構成される．表\ref{tab:dataset_examples}に各データセットの事例サンプルを示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%T1\begin{table}[t]\input{04table01.tex}\hangcaption{LAMAデータセット中の事例サンプル．ConceptNetサンプルにはrelationラベルが付与されていないが，参考として各事例のpredicateラベルを示す．SQuADサンプルにはsubject,relationラベルが付与されていない．}\label{tab:dataset_examples}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S2.2\subsection{評価指標}\label{sec:selective_lama_evaluation}評価対象のシステムは，入力されたマスク文$c_t$と言語モデルによる予測単語$\hat{w}$に対し，予測内容が正しい可能性を確信度$\psi(\hat{w},c_t)$として定量化する．確信度指標の評価としては，選択的予測に基づくフレームワーク\cite{yoshikawa-okazaki-2023-selective}を採用する．選択的予測において，システムは言語モデルの予測に対し，確信度スコアに応じて予測を採用するか否かを決定する．具体的には，確信度$\psi(\hat{w},c_t)$が事前に設定された閾値$\beta$を上回ったときだけ予測を採用する．ここでシステムの閾値$\beta$の値を徐々に小さくしていくことで，確信度の低い予測の採用数を増やし回答数が増える．閾値を動かしたときの回答数$N_{\rmpred}$と誤り率$e$のトレードオフ関係は，回答数を横軸，誤り率を縦軸としたリスク-カバレッジグラフとして表現できる．なお，$e=(N_{\rmpred}-N_{\rmcorr})/N_{\rmpred}$で,$N_{\rmpred},N_{\rmcorr}$はそれぞれ閾値$\beta$における予測件数と正答件数である．システムの評価はGeifmanらの方法\cite{geifman2018biasreduced}に従い，リスク-カバレッジグラフの下側面積(RC-AUC)に基づく．システムは誤りリスクを低く抑えながらできるだけ多くの質問に回答することが望ましいため，RC-AUCが小さいほど良いシステムであると評価される．あるモデル予測に対するRC-AUCの下限値RC-AUC$^{*}$は，正解事例で1,不正解事例で0の値をとるような最適な確信度指標により達成される．RC-AUCから下限値RC-AUC$^{*}$を引いた差分E-AURC\cite{geifman2018biasreduced}は，モデルの予測性能による影響を差し引いて確信度の性能のみを把握するのに役立つ．本論文の評価ではRC-AUCとE-AURCの値を併記する．図~\ref{fig:auc}に評価指標の関係図を示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F1\begin{figure}[t]\begin{center}\includegraphics{32-1ia4f1.eps}\end{center}\caption{評価指標RC-AUCおよびE-AURCの関係図．}\label{fig:auc}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3
\section{関連研究}
テキスト生成における出力内容の誤りは，大規模言語モデルの発展以前から文書要約などに代表される条件付き生成の文脈等で研究されてきた．条件付き生成においては，入力として与えられる文書と出力内容との間に矛盾や乖離がある場合に出力が誤りとみなされ，入力文書への忠実性を評価・改善する取り組みが主として行われた\cite{maynez-etal-2020-faithfulness}．一方，言語モデルの大規模化に伴い，モデルが事前学習で獲得した知識を直接用いることで，背景情報を入力として与えることなく知識を要するタスクが解かれるようになった\cite{petroni-etal-2021-kilt}．この場合，入力情報に必要な知識が含まれていることは前提とされないため，モデル生成内容の誤りを入力への忠実性のみから判定することはできない．こうしたタスクにおいては，出力内容に事実としての誤りが含まれているかどうかが問題の焦点となっている．前者の入力文書との矛盾に基づく誤りはintrinsichallucinations，後者の入力情報のみでは検証不能な事実としての誤りはextrinsichallucinationsと呼ばれる\cite{ji-etal-2023-survey-hallucination}．本論文で議論する誤りはextrinsichallucinationsに相当する．言語モデル出力の確信度推定手法はアクセス可能な情報のレベルに応じてブラックボックス手法，ホワイトボックス手法に分類できる\cite{geng-etal-2024-survey}．ブラックボックス手法では，プロンプトと呼ばれる言語モデルへのテキスト入力と，入力に応じてモデルが生成するテキスト出力のみを利用する．プロンプトを用いてモデルに出力内容の確信度を``Idon'tknow''，``Obviously''といった言語表現によって出力させる方法\cite{mielke-etal-2022-reducing}や，言語モデルによる複数の生成間の一貫性に基づき確信度をスコア化する方法\cite{manakul-etal-2023-selfcheckgpt}が提案されている．ホワイトボックス手法では，モデルの内部状態を参照した確信度計算が行われる．モデルの埋め込み情報を用いて入力情報がサポート外のドメインであるかどうかを判別するためのスコアを計算する\cite{ren2023outofdistribution}，モデルの内部状態に基づき出力の確信度を判定する分類器を少量の追加データを用いて訓練する\cite{kadavath2022language}といった方法が提案されている．また，モデルの内部状態から出力の正確性に関わる部分を特定・操作することで，モデル出力の正確性を改善するアプローチも存在する\cite{li2023inferencetime}．しかし，これらのホワイトボックス手法でも訓練データを情報源として利用することは想定されていない．言語モデル出力の信頼性に関する確信度推定以外のアプローチとしては，言語モデルの出力内容に対し外部知識に基づいた検証や説明を与えるもの\cite{rashkin-etal-2023-attribution-nlg,Bohnet-etal-2023-attributedqa}や，言語モデルの訓練データを検索可能な状態で公開することで透明性を向上する取り組みがある\cite{piktus2023roots}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4
\section{言語モデルとデータストア}
図\ref{fig:overview}に手法の概要を示す．ある入力とそれに対する言語モデルの出力を受け取り，出力内容と関連する訓練データ中の事例をデータストアから検索する．その後，検索によって得られた関連事例と入出力情報を組み合わせて確信度の推定を行う．本節では実験に用いた言語モデルとデータストアについて説明し，\ref{sec:confidence}節で訓練データに基づく確信度指標を導入する．%%%%%%%%%%%%%%%%%%%%%%%%%%%F2\begin{figure}[b]\begin{center}\includegraphics{32-1ia4f2.eps}\end{center}\caption{提案手法の概要図．}\label{fig:overview}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.1\subsection{言語モデル}\label{sec:lm-training}訓練データを用いた確信度推定には言語モデルと参照可能な訓練データのセットの組が必要であるため，中規模な言語モデルを自前で訓練し，訓練データからなるデータストアを構築した．言語モデルとしてはBERT-large\cite{devlin-etal-2019-bert}を用いた．訓練データとしては，2020年1月版の英語Wikipedia全文を用い，MLPerfTrainingBenchmark\cite{MLSYS2020_02522a2b}の実装に基づき事前学習を行った\footnote{\url{https://github.com/mlcommons/training/tree/master/language_model/tensorflow/bert}}．なお，評価タスクとして大文字小文字を区別するものを用いるため，モデルの語彙としても大文字小文字の区別があるものを用い，MLPerfの提供するチェックポイントではなくランダムに初期化したパラメータから学習を開始した．訓練に用いたGPUはNVIDIAP100を4基，バッチサイズは12とした．訓練データの前処理としては，テキストのトークン分割後，トークン全体の15\%を予測対象としてランダムに選択した．予測位置に対応する入力トークンは，マスクトークン$\texttt{[MASK]}$，ランダムなトークン，元のトークンのいずれかに一定の割合で置き換えられた．この処理を複数回行い，各系列に対し異なるマスクパターンを生成した．このようにして生成された前処理済みの訓練データは延べ1,600万文，予測対象箇所は61億となった．学習済みモデルの開発データにおけるマスク単語予測，次文予測の精度はそれぞれ0.691，0.986であった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2\subsection{データストア}訓練データは言語モデルへの入力およびモデルの生成内容に応じて，関連する文脈情報を取得することに用いる．保存方式による検索の質と確信度推定の影響の違いを確認するため，異なるレベルで情報を保存した複数のデータストアを構築した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F3\begin{figure}[b]\begin{center}\includegraphics{32-1ia4f3.eps}\end{center}\caption{文表現の概要図．}\label{fig:vec4}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2.1\subsubsection{トークンレベル文脈表現}\label{sec:knn-token}\ref{sec:lm-training}節で述べたように，言語モデルの訓練時には，訓練データをトークン分割し，予測対象の位置をマスクした前処理済みの入力が用いられる．トークンレベル文脈表現としては，この前処理済みの入力の予測対象位置の文脈を学習済みモデルで改めてエンコードした文脈ベクトル$v_c$を用いる．ここでの文脈ベクトルは，予測位置に対応するBERTモデルの最終層の隠れ状態とする（図\ref{fig:vec4}a）．データストアは，文脈ベクトル$v^{\rmc}$をキー，該当文脈の正解トークン$w^{\rmc}$を値とする組$(v^{\rmc},w^{\rmc})$を保存する．文脈ベクトルの保存と検索には，密ベクトル向けのベクトル検索ライブラリFAISS\cite{johnson2019billion}を用いた．訓練時に使用した文脈情報は61億箇所あり，これら全てを生ベクトルの状態で保存すると膨大なサイズになる．リソース消費を抑えるため，直積量子化(productquantization,PQ)に基づくベクトル量子化を施した．また，検索効率向上のため転置インデックス(IVF)を採用し検索空間を削減した．これにより，近傍ベクトルの検索結果は近似値となり，厳密解と一致しない場合が生じる．ベクトル量子化や近似検索のためのハイパーパラメータは，訓練データの一部を用いて十分な再現率が得られるよう調整した．近傍検索を行う際には，構築したインデックスに基づき上位100件の近傍を取得した後，検索結果に対し文脈ベクトルを再計算し，厳密なL2距離を求めてリランキングを行った．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2.2\subsubsection{文レベル分散表現}\label{sec:knn-sent}文レベル分散表現は，トークンレベルの文脈ではなく生成文と文単位で類似する訓練事例を検索するために用いる．マスク処理を行う前の訓練事例を文単位で分割し，各文を学習済み言語モデルでエンコードする．最終層の文頭$\texttt{[CLS]}$トークンに対応する隠れ状態$v^s$を文表現とみなし，文$s$との組$(v^s,s)$をデータストアに保存する（図\ref{fig:vec4}b）．なお，実装上は文の元テキストと前処理済みの特徴量，メタデータを共に保存している．$\texttt{[CLS]}$トークンの隠れ状態は，事前学習において次文予測タスクにより訓練されている．ベクトルのインデックス化や検索の方式はトークンレベル分散表現と同様である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.3\subsection{テキスト一致検索}言語モデルの学習した事実に関する知識を確認する上では，特定のエンティティに関して記載された文を参照することが有用な場合がある．そこで，分散表現に基づく類似文脈の検索に加え，単純なテキスト一致に基づく検索も実施する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5
\section{訓練データに基づく確信度指標}
label{sec:confidence}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.1\subsection{トークンレベル文脈表現に基づく確信度}\label{sec:token_confidence}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.1.1\subsubsection{検索}トークンレベル文脈表現の検索では，\ref{sec:task_notation}節で導入した入力文$c_t$のマスク箇所を言語モデルでエンコードした文脈ベクトル$v^{\rmq}$をクエリとし，\ref{sec:knn-token}節の方法で構築した文脈ベクトルデータストアに対して$k$近傍検索を行い近傍事例${\calN}=\{(v^{\rmc}_1,w^{\rmc}_1),\ldots,(v^{\rmc}_k,w^{\rmc}_k)\}$を得る．以下の実験では$k=100$を用いた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.1.2\subsubsection{近傍事例に基づく尤度補正(kNN-LM)}言語モデルによる文生成において，現在の文脈と類似する訓練データ中の文脈情報を活用することで生成の質を向上できることが報告されている\cite{Khandelwal-etal-2020-knnlm}．この方法に基づき，言語モデルの予測尤度を訓練データ中の近傍の文脈ベクトルにより補正し，確信度として用いる．まず，クエリベクトル$v^{\rmq}$に対し，データストアから上位$k$個の近傍事例を検索し，検索結果に基づき補正用の分布$p_{\rmkNN}(w|c_t)$を計算する．補正分布における単語$w$の確率は，$w$を正解とする近傍事例の文脈ベクトル$v^{\rmc}$とクエリベクトル$v^{\rmq}$のL2距離$d(v^{\rmq},v^{\rmc})$に基づく:%%%%%\begin{align}&p_{\rmkNN}(w|c_t)＝\left.\left(\sum_{(v^{\rmc},w^{\rmc})\in{\calN}}\mathbf{1}_{w=w_{\rmc}}\exp(-d(v^{\rmq},v^{\rmc})^2/\tau)\right)\right./Z,\\&Z=\sum_{w'}\sum_{(v^{\rmc},w^{\rmc})\in{\calN}}\mathbf{1}_{w'=w_{\rmc}}\exp(-d(v^{\rmq},v^{\rmc})^2/\tau).\end{align}%%%%%ただし，$\tau$はハイパーパラメータである．これとモデルの元の予測分布との重み和をとり計算された補正分布に基づく尤度をkNN-LM確信度とする:%%%%%\begin{align}\psi_{\text{kNN-LM}}(w,c_t)=\log(\lambdap_{\rmkNN}(w|c_t)+(1-\lambda)p_{\rmLM}(w|c_t)).\end{align}%%%%%ただし，$\lambda$はハイパーパラメータである．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.2\subsection{文レベル分散表現に基づく確信度}\label{sec:sent_confidence}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.2.1\subsubsection{検索}文レベル分散表現の検索では，入力文$c_t$のマスク箇所を予測単語$\hat{w}$で埋め完成させた文をエンコードし，$\texttt{[CLS]}$トークンに対応する隠れ状態$v^{\rmq}$をクエリベクトルとする．これを用いて，\ref{sec:knn-sent}節で構築した文レベル分散表現のデータストアに対して$k$近傍検索を行い近傍事例${\calN}=\{(v^{\rms}_1,s_1),\ldots,(v^{\rms}_k,s_k)\}$を得る．以下の実験では$k=10$を用いた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.2.2\subsubsection{文脈を付与して再予測(kNN-sent-context)}\label{seq:knn-sent-context}大規模コーパス中から入力文と類似する文を検索し，生成時の文脈に追加することで生成の質を向上できることが知られている\cite{lewis2020rag}．これと同様に，訓練データ中の類似文を文脈情報として利用し再度予測を行うことで，出力の確信度予測の改善を試みる．具体的には，検索によって得られた訓練データ中の類似文$s_i$を元の入力文$c_t$の先頭に文脈情報として付与した文脈つき入力$s_i\oplusc_t$を作成し，予測単語$w$の出力確率$P_{\rmLM}(w|s_i\oplusc_t)$を得る．これを$k$個の類似文全てに対して行い，得られた対数尤度の最大値を確信度として用いる:%%%%%\begin{align}\psi_{\text{kNN-CTX}}(w,c_t)=\max_{(v^{\rms}_i,s_i)\in{\calN}}(\logP_{\rmLM}(w|s_i\oplusc_t))\end{align}%%%%%なお，$k$種の予測尤度の平均値をとる方法も検討したが，予備実験において性能に大きな差はみられなかった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.2.3\subsubsection{近傍事例中のエンティティ頻度に基づく指標(kNN-sent-entity)}予測対象の文と意味的に類似する訓練事例中に，問われている知識について直接述べている文がどれだけ多いかを頻度に基づき指標化する．(subject,relation,object)の三つ組からなる関係知識に基づく入力文$c_t$について，subjectにあたるエンティティを$e^{\rms}$とする．検索結果の$k$文のうち，$e^{\rms}$とobjectに相当するモデルによる予測単語$\hat{w}$の両方が含まれる文の件数$N^{\rmsp}$をカウントし，$\psi_{\text{kNN-Ent}}(w,c_t)=N^{\rmsp}/k$を確信度とする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.3\subsection{テキスト検索に基づく確信度}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.3.1\subsubsection{テキスト一致件数(CorpusSearch-count,CorpusSearch-bin)}テキスト検索に基づく確信度では，訓練データ中に予測内容と関連する事例が一定数存在するかどうかをエンティティに基づき判定し，確信度推定に用いる．(subject,relation,object)の三つ組からなる関係知識に基づく入力文$c_t$について，subjectにあたるエンティティを$e^{\rms}$とobjectに相当するモデルによる予測単語$\hat{w}$の両方が含まれている訓練データ中の文を検索し，該当する訓練データ中の文の件数を確信度として用いる:$\psi_{\text{CorpusSearch-count}}(w,c_t)=N(e^{\rms},\hat{w})$．また，訓練データ中の該当文の有無のみに基づく二値の確信度も検討する:$\psi_{\text{CorpusSearch-bin}}(w,c_t)=\mathbf{1}_{N(e^{\rms},\hat{w})>0}$．なお，訓練データ内に100件以上の関連事例が見つかった場合は十分に根拠ありとみなし，計算効率の観点から検索事例は100件を上限とした．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.3.2\subsubsection{文脈を付与して再予測(CorpusSearch-context)}\ref{seq:knn-sent-context}節と同様に，テキスト一致による検索結果を生成時の文脈として付与し，再予測時の対数尤度を用いる．手続きは\ref{seq:knn-sent-context}節に準ずるが，テキスト一致検索では検索結果が0件の場合があることを考慮し，文脈を付与しない元の文の対数尤度を含めた予測の中から最大値をとる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6
\section{実験結果}
label{sec:results}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.1\subsection{言語モデル性能}表\ref{tab:lama_model_accuracy}に，評価対象のBERTモデルのLAMAデータセットでの基礎性能を示す．ここでのRC-AUCの計算には，予測尤度に基づく確信度$\psi_{\rmToken}$を用いた．比較対象として，GoogleBERT-largeモデル\footnote{\url{https://github.com/google-research/bert}}による同条件での評価結果を示している．本研究では言語モデルの確信度評価としての訓練データの有効性を確認することを主目的とし，検証用モデルがGoogle-BERTと同等の性能を達成することは必ずしも重視していない．評価用モデルとGoogle-BERTとで異なる点としては，Google-BERTではWikipediaに加えてBookCorpus\cite{zhu2015bookcorpus}を訓練データに用いている点が挙げられる．BookCorpusは様々なジャンルの書籍からなるテキストで構成されており，Wikipediaでカバーされない多様な表現を含む．また，\ref{sec:lm-training}節で述べたように，モデルの訓練においてはMLPerfTrainingBenchmarkの学習設定をタスクと実験環境に合わせて改変しており，この点も性能差に影響した可能性がある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T2\begin{table}[t]\input{04table02.tex}\hangcaption{評価に用いたモデルのLAMAデータセットにおける（全ての予測を用いた場合の）予測精度と，予測尤度に基づく確信度$\psi_{\rmToken}$に基づくRC-AUC．比較のため，右列にGoogleBERTモデルによる同条件での評価を示している．}\label{tab:lama_model_accuracy}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.2\subsection{選択的予測に基づく確信度指標の評価}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.2.1\subsubsection{評価データ}表\ref{tab:dataset_split}に示す通り，LAMAデータセット中のGoogle-RE,T-REx,ConceptNet,SQuADの4つのサブセットをそれぞれ開発データと評価データに分割した．開発データはkNN-LMのハイパーパラメータ探索および複数指標の組み合わせと重み探索に用いた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%T3\begin{table}[t]\input{04table03.tex}\caption{評価データの内訳．}\label{tab:dataset_split}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.2.2\subsubsection{ベースライン}訓練データを用いない確信度指標として，\cite{yoshikawa-okazaki-2023-selective}の指標との比較を行った．Tokenは出力の対数尤度を直接用いるもの，Sentはマスク箇所を埋めた文レベルの疑似尤度を用いるもの，DropoutMeanは推論時にモデルにdropoutを適用して予測の統計情報を用いるもの，TemplateDiffは予測におけるsubject情報の有無による予測確率の差分を用いるものである．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.2.3\subsubsection{単体評価}表\ref{tab:lama_selective_result}に，選択的予測の設定に基づく確信度指標の評価（\ref{sec:selective_lama_evaluation}節）の結果を示す．なお，SQuADについてはsubjectラベルが定義されておらずエンティティを用いる確信度指標を適用できないため，それらは評価から除外した．訓練データを使用しない確信度指標の中ではTokenまたはTemplateDiffの性能が最も良く，どの指標も対数尤度を直接用いるToken指標を大きく改善することはなかった．これは他のモデルで評価した既存研究の傾向とも適合する．訓練データを使用した確信度指標については，kNN-LM指標が関係知識を問うデータセットにおいてベースラインをわずかに改善した．一部を除き，文レベル分散表現やテキスト一致に基づく指標はToken確信度よりも悪い結果となったが，Google-REに関してはCorpusSearch-contextがToken指標を改善した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T4\begin{table}[t]\input{04table04.tex}\hangcaption{LAMAデータセットの評価結果（RC-AUC/E-AURC，低いほど良い）．SQuADデータセットはsubjectラベルが未定義なため，これを必要とする指標は除外．複数指標組み合わせの結果は，(A)が(A)群のみからの組み合わせ，(A)+(B)が(A)群ならびに(B)群全ての指標からの組み合わせを表す．それぞれの指標群の重み和のうち開発データで最良の組み合わせの結果を示している．}\label{tab:lama_selective_result}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.2.4\subsubsection{確信度の組み合わせ効果}次に，これらの確信度指標を組み合わせて用いた場合の効果を検証する．複数の確信度指標の組み合わせとしては，確信度指標の重み付き線形和をとる．各データセットについて，開発データを用いて最良の指標組み合わせと重みを探索し，評価データセットで評価した．指標組み合わせと重みの探索を現実的な試行回数に収めるため，次のような段階的手続きによる探索を行った．まず，ベースラインで最良であるToken確信度とそれ以外の確信度を1つずつ組み合わせ，Token確信度の性能から改善のあった指標に絞り込む．このとき，それぞれについて0.1,1.0,10.0の3種類から最良の重みを決定した．次に，絞り込み後の指標群について全ての組み合わせを検証し，性能が最良となるものを探索した．結果を表\ref{tab:lama_selective_result}下部に示す．テキスト検索に基づく指標を適用できないSQuADを除き，いずれのデータセットにおいても，訓練データを使用する指標と使用しない指標を組み合わせて用いた場合に最良の性能が得られた．特にGoogle-REとT-RExについては，尤度に基づく指標を含む全指標に対し，単独使用の場合の性能を大幅に改善した．訓練データを使用しない指標のみを組み合わせた場合には同様の性能改善は得られなかった．表\ref{tab:ablation}に，各データセットで用いられた指標の組み合わせとアブレーション分析の結果を示す．Google-REとT-RExにおいては，コーパス検索に基づく指標が特に性能に寄与していることが確認できる．ConceptNetについてはいずれの指標も一定の寄与があるものの，性能の改善幅は関係知識を問うデータセットと比較して小さかった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T5\begin{table}[t]\input{04table05.tex}\hangcaption{複数指標組み合わせ評価のアブレーション分析．評価値はRC-AUC．最上段は各データセットの開発データで最良の組み合わせで，添字は重みを示す．2行目以降は，他の指標の重みは変更しないまま，当該指標のみを除いた場合の結果．SQuADはToken指標を単独で用いた場合に最良であったため除外．TK:Token,S:Sent,TD:TemplateDiff,KLM:kNN-LM,CX:kNN-sent-context,ET:kNN-sent-entity,CSc:CorpusSearch-count,CSb:CorpusSearch-bin,CSctx:CorpusSearch-context．}\label{tab:ablation}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{tab:corpussearch_crosstab}は，T-RExデータセット上でコーパス検索に基づく指標(CorpusSearch-bin)とモデル予測の正誤のクロス集計を行った結果である．CorpusSearch-binはバイナリ指標であり，予測に関係する事例が訓練データ中に見つかれば1，見つからなければ0の値をとる．表より，正解事例の94.9\%において，訓練データ中に関連文が存在している．すなわち，コーパス検索に基づく指標は単独の確信度指標としては精度が粗いが，訓練データ中に関連文が存在しない事例をフィルタリングすることによる効果が高いため，他の指標と組み合わせることで高い効果を得られたと考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%T6\begin{table}[t]\input{04table06.tex}\caption{CorpusSearch-bin指標の値と予測正誤のクロス集計表．}\label{tab:corpussearch_crosstab}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7
\section{分析}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7.1\subsection{事例分析}\ref{sec:results}節では，訓練データを用いない確信度と訓練データに基づく確信度，特にコーパス検索に基づくものとの組み合わせが有効に働くことが示唆された．そこで，ベースラインである尤度に基づく確信度(Token)とコーパス検索に基づく文脈付与(CorpusSearch-context)の振る舞いを，効果の大きかったGoogle-REと効果が比較的小さかったConceptNetの事例を用いて比較する．表\ref{tab:result_example}に示すGoogle-REの事例では，予測が誤りである例について，コーパス検索では関連事例が見つからないため相対的に確信度を下げることができている(1,2)．逆に3,4では，予測が正しい事例についてコーパス検索に基づき高い確信度を与えることができている．一方，コーパス検索の効果が低かったConceptNetにおいては，検索により関連事例が見つかっているにも関わらず正解事例の相対的な確信度を落としてしまう例がみられた(5,6)．ConceptNetの事例は一般名詞や形容詞といった単語で表される概念間の意味的関係を問うもので，固有名詞と比較して訓練データ中での出現頻度は高く，関連事例が見つかりやすい傾向がある．しかしながら，検索された事例は問われている概念間の関係を直接的に述べていない場合が多く，モデルの確信度の強化に貢献しにくかったと推定される．%%%%%%%%%%%%%%%%%%%%%%%%%%T7\begin{table}[t]\input{04table07.tex}\hangcaption{予測事例に対する2つの確信度(Token,CorpusSearch-context)による順位付けの比較例．$\Delta$rankは，同じ関係ラベルをもつデータセット（分母は総数）内でのTokenとCorpusSearch-contextに基づく順位の差．下向き矢印$\downarrow$はTokenと比べてCorpusSearch-contextによる順位が下がっていることを示す．それぞれ，コーパス検索で該当事例がない不正解事例の順位を下げられた例(1,2)，コーパス検索により正解事例の順位を上げられた例(3,4)，コーパス検索で事例があるにもかかわらず正解事例の順位を下げてしまった例(5,6)．}\label{tab:result_example}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7.2\subsection{データストア検索と出力真偽の関係}\label{sec:search_f1}実験に用いたデータストアがモデル出力の真偽判定に寄与しうる検索結果を返すことができているかを検証するため，以下の分析を行った．各検索方法について，各予測に対する検索結果として用いられた文書のうち，入力文のsubjectにあたるエンティティ$e^s$と予測単語$\hat{w}$の両方を含む事例が存在する場合に予測を正解，存在しない場合に不正解とみなすことで言語モデルの予測の真偽を判定する単純な分類器を考える．この分類器を用いた真偽判定を評価したとき，recallは言語モデルの予測が正しい事例のうち対応するエンティティを含む事例が検索された割合を表す．Precisionは予測されたエンティティが含まれる事例が計算された事例のうち，実際に予測が正しかった事例の割合を表す．表\ref{tab:search_f1}に結果を示す．いずれのデータセットにおいても，トークン文脈ベクトルおよび文ベクトル検索結果はrecallが低く，真偽判定の根拠となりうる情報が検索結果から漏れてしまっているケースが多いと考えられる．このことから，ベクトル検索手法を改良し，訓練データに存在する根拠情報をより高精度に検索することで，ベクトル表現に基づく指標の性能が改善できる可能性がある．テキスト一致検索では，いずれのデータセットでもrecallが高く，precisionは文ベクトル検索と同程度であった．このことは，モデル出力が正しいケースでは多くの場合に訓練データ中に根拠情報が含まれていることを示唆しており，訓練データがモデル出力の確信度推定に寄与することを裏付けている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T8\begin{table}[t]\input{04table08.tex}\hangcaption{各検索方式で確信度推定に用いた検索結果をもとに，予測対象エンティティの出現有無に基づき真偽判定をした場合の精度評価．SQuADデータセットはsubjectラベルが未定義のため除外．}\label{tab:search_f1}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7.3\subsection{データセット・関係タイプと確信度指標}確信度指標の寄与度がデータセットや関係タイプにどの程度依存するのかを調べるため，データセット・関係タイプ毎に確信度指標と正誤の相関を計算した結果を図\ref{fig:corr}(a)に示す．三つ組の関係知識に関するデータセットであるGoogle-REとT-RExでは，エンティティ頻度に基づく指標(kNN-sent-entity)を除くほぼ全ての指標について，正誤との間に比較的高い相関があり，特に予測尤度(Token)およびコーパス検索に基づく指標(CorpusSearch-bin,CorpusSearch-context)が高い相関を示している．一方，語彙間の関係知識を問うConceptNetにおいては，訓練データに基づく指標と正誤の相関が一貫して小さくなっている．表\ref{tab:search_f1}に示すように，ConceptNetは訓練データ中のエンティティ出現有無による分類精度が低いことを踏まえると，一般名詞を主とする語彙の共起はノイズを多く含むため，訓練データを利用した真偽判定との相性が悪いと考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F4\begin{figure}[tp]\begin{center}\includegraphics{32-1ia4f4.eps}\end{center}\hangcaption{(a)データセット・関係タイプ毎の予測正誤と確信度相関．(b)データセット・関係タイプ毎のToken確信度とその他の確信度指標の相関．}\label{fig:corr}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%図\ref{fig:corr}(b)はToken確信度と他の確信度指標のスコア相関をデータセット・関係タイプ毎に計算したものである．検索結果を文脈に付与して尤度を更新するCorpusSearch-contextを除けば，訓練データを用いる指標は訓練データを用いないものと比較してToken確信度との相関が一貫して低いことから，両者の組み合わせにより高い効果が得られたと考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7.4\subsection{近傍事例数の確信度への影響}\ref{sec:token_confidence}節および\ref{sec:sent_confidence}節の検索事例を用いた確信度指標においては，検索する近傍事例数をそれぞれ$k=100$，$k=10$とした．近傍事例数$k$を変えたときに確信度推定に与える影響を調べるため，異なる$k$を用いて単体性能の比較を行った結果を図\ref{fig:varyk}に示す．$k=10,50,75,100$における確信度指標の性能は，いずれのデータセットにおいてもほぼ横ばいとなった．\ref{sec:search_f1}節で議論したように，モデルの文脈表現や文表現に基づくベクトル検索では出力された知識に対応する関連事例のカバレッジが低いため，検索事例数を増やした際に関連の低い事例も混入しノイズになっていることが推定される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F5\begin{figure}\begin{center}\includegraphics{32-1ia4f5.eps}\end{center}\caption{トークン・文レベル分散表現に基づく確信度指標の検索事例数$k$と性能の関係．}\label{fig:varyk}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S8
\section{おわりに}
本論文では，言語モデルが訓練時に獲得した知識に基づき生成を行う際の出力内容の確信度推定について，訓練データを用いた指標を導入し，その効果を検証した．実験の結果から，訓練データを用いた指標とその他の指標を組み合わせることで，従来の確信度指標による推定精度を改善できることが確認された．本論文では訓練データ利用の効果検証のため，中規模の言語モデルであるBERTとWikipediaの組み合わせを用いた．一方で，近年は大規模言語モデルの発展が著しく，モデルサイズ・訓練データサイズともにより規模の大きなモデルが増加し，実用化が進んでいる．本研究で検証した訓練データに基づく確信度推定手法が大規模モデルにおいても効果的か否かは今後さらなる検証が必要であるほか，訓練データの大規模化に伴う関連事例検索の質と効率の向上が課題となる．また，大規模言語モデルの訓練に用いられるデータには，内容の信頼性や文章の質が低いものが含まれることも多い．本研究で導入した確信度指標は訓練データであるWikipedia内の記述が信頼できるという暗黙的な前提に基づいており，こうした質の低い事例を含むデータは確信度推定の性能に影響を及ぼす可能性がある．誤り事例を含むデータを確信度推定に用いる際には，各訓練事例の記述内容の信頼性を考慮したり，信頼できるデータをフィルタリングするといった工夫が必要になる可能性がある．一方で，誤りのある事例も検索対象に含めることで，訓練データの誤りに起因するモデル出力の誤りの特定に役立てるといった応用も考えられる．%%%Acknowledgement%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgment本研究は，文部科学省補助事業「生成AIモデルの透明性・信頼性の確保に向けた研究開発拠点形成」の支援を受けたものです．本研究は，東京科学大学のスーパーコンピュータTSUBAME4.0を利用して実施しました．%%%Bibliography%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.7}\bibliography{04refs}%%%Biography%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{吉川和}{%2013年東京大学工学部計数工学科卒業．2015年同大学院修士課程修了．同年，（株）富士通研究所入社，現在，富士通（株）人工知能研究所研究員．自然言語処理，知識抽出・知識活用の研究開発に従事．2021年より東京科学大学（旧東京工業大学）情報理工学院情報工学系博士課程．}\bioauthor{岡崎直観}{%2007年東京大学大学院情報理工学系研究科博士課程修了．東京大学大学院情報理工学系研究科・特任研究員，東北大学大学院情報科学研究科准教授を経て，2017年8月より東京科学大学（旧東京工業大学）情報理工学院教授．産業技術総合研究所招聘研究員，国立情報学研究所大規模言語モデル研究開発センター科学主幹．言語処理学会，人工知能学会，情報処理学会，ACL各会員．}\end{biography}\biodate%%%%受付日の出力（編集部で設定します）\end{document}