\section{はじめに\label{sect:intro}}
固有表現抽出(NamedEntityRecognition;NER)は，テキストから固有表現(NamedEntity;NE)や専門用語を抽出する自然言語処理技術の一つであり，様々な場面で用いられている．たとえば，新材料や新薬の開発，材料を用いた製品開発には化学物質に関する知識が必要不可欠であり，NERは，論文や特許で日々報告される化学物質間の相互関係や化学物質の物性値といった情報を構造化し蓄積するための要素技術の一つとして用いられている．NERに関する研究は古くから盛んに行われている．近年では，ニューラルネットワーク(NeuralNetwork;NN)による手法が主流となっており，再帰的ニューラルネットワーク(RecurrentNeuralNetwork;RNN)と条件付確率場(ConditionalRandomFields;CRF)を組み合わせたBidirectionalLSTM-CRFモデル（BiLSTM-CRFモデル）による手法\cite{huang2015bidirectional}やTransformerによる手法\cite{10.1093/bioinformatics/btz682}が，NERにおいて高い性能を実現している．また，近年では，対象タスクの教師データ（メイン教師データ）とは別の教師データも用いるマルチタスク学習により，複数の教師データから特徴量を同時に学習することでモデルの性能が改善することが報告されている\cite{wang2019multitask,crichton2017neural,khan2020mt,mehmood2020combining,wang2019cross}．特に，バイオ分野のNER(BioNER)においては，複数のタスクを同時に学習する{\multitask}と比較し，対象タスク以外のタスクを補助タスクとして用いる{\auxlearning}を行うことで対象タスクにおいて高い性能を示すことが報告されている\cite{wang2019multitask}．{\auxlearning}では，対象タスクから作成したメインバッチとそれ以外の教師データから作成した補助バッチを用いて学習を行う．学習時に補助バッチでパラメータを更新し，その後メインバッチでパラメータを更新する．この操作を対象タスクのデータに対する損失が収束するまで繰り返し行う．本研究では，先行研究の{\auxlearning}が1種類の補助教師データしか用いなかったのに対し，複数の教師データを補助教師データとして用いる手法({\itM}ultiple{\itU}tilizationof{\itN}ER{\itC}orpora{\itH}elpfulfor{\itA}uxiliary{\itBLES}sing;{\bf{\proposed}})を提案する．提案手法では，複数の補助教師データを用いることで，より多くの単語や文のパタンを学習する．また，複数の補助教師データを扱う際の学習方法や，補助教師データの組み合わせ，学習順について，性能向上の観点で検討する．具体的には，補助教師データ毎の補助学習を順次行うことで，対象タスクのモデルを補助教師データの種類の数だけ再学習する方法（{\proposed}-スタック手法）と，全種類の補助教師データを一つの補助学習で用いる方法の2種類の学習手法を提案する．後者の学習方法としては，補助教師データを全て結合させた教師データからランダムにデータ選択して作成したバッチに基づき学習を行う方法（{\proposed}-結合手法）と，エポック毎に補助教師データの種類を変えて学習を行う方法（{\proposed}-反復手法）を提案する．本研究では，提案手法によるモデルの有効性を計8種類の化学／バイオ／科学技術分野のNERタスクで評価した．評価実験より，各タスクにおいて7種類の補助教師データを用いる提案手法によるモデルは従来手法によるモデルと比べて，F1値の平均が向上することを確認した．そして，提案手法によるモ出るは，従来手法と比較して最も高いF1値を達成した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{従来手法}
\label{sect:previous}本節では，対象タスクの教師データ以外の教師データも用いる従来のマルチタスク学習手法と補助学習を説明する．\ref{sect:single-task}節では，まず本研究のベースモデルとして用いるNERモデルを概説する．そして，\ref{sect:multi-task}節では，そのNERモデルを複数のタスクで同時に学習するマルチタスク学習に拡張したモデルについて述べる．このマルチタスク学習では，対象タスクとその他のタスクは同等に扱われる．\ref{sect:auxiliary}節では，対象タスクの性能を上げるために，対象タスクではないタスクの教師データを補助教師データとして用いる補助学習を説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{シングルタスク学習}\label{sect:single-task}本研究では，Huangら\shortcite{huang2015bidirectional}により提案されたBiLSTM-CRFモデルをNERモデルとして使用する．BiLSTM-CRFモデルは，双方向LSTMとCRFを用いた系列ラベリングモデルである．BiLSTM-CRFモデルは，まず，双方向LSTMにより，入力文中の各単語の中間表現を算出する．入力文を${\bfw}=w_{1},w_{2},\cdots,w_{N}$，各単語$w_{i}$を埋め込み層でベクトル化した結果を${\bfx}={\bfx}_{1},{\bfx}_{2},\cdots,{\bfx}_{N}$とすると，単語$w_{i}$の中間表現${\bfe}_{i}$を以下のように算出する．\begin{gather}\overrightarrow{\mathbf{h}_{i}}=LSTM^{(f)}(\mathbf{x}_{i},\overrightarrow{\mathbf{h}_{i-1}})\label{eqn:forward_lstm}\\\overleftarrow{\mathbf{h}_{i}}=LSTM^{(b)}(\mathbf{x}_{i},\overleftarrow{\mathbf{h}_{i+1}})\label{eqn:backward_lstm}\\\mathbf{h}_{i}=[\overrightarrow{\mathbf{h}_{i}};\overleftarrow{\mathbf{h}_{i}}]\\\mathbf{e}_{i}=\mathbf{W^{(e)}}\mathbf{h}_{i}\end{gather}ここで，\begin{math}\rightarrow\end{math}と\begin{math}\leftarrow\end{math}は，それぞれ，順方向と逆方向を表し，\begin{math}LSTM^{(f)}\end{math}と\begin{math}LSTM^{(b)}\end{math}は，それぞれ，順方向と逆方向のLSTMを表す．また，$[\cdot;\cdot]$はベクトルの結合を表す．${\bfW^{(e)}}\inR^{k\timesd}$は重み行列であり，$d$は隠れ状態ベクトル${\bfh}_{i}$の次元数，$k$は識別対象のラベルの数である．その後，双方向LSTMにより算出された中間表現${\bfe}$をCRFに入力し，ラベル系列を求める．ラベル系列$\mathbf{y}=(y_1,y_2,\cdots,y_N)$に対するスコア関数は，双方向LSTMの出力系列$\mathbf{e}=(\mathbf{e}_1,\mathbf{e}_2,\cdots,\mathbf{e}_N)$をスコア行列に変換した${\bfP}=({\bfe}_{1},{\bfe}_{2},\cdots{\bfe}_{N})^{T}$と遷移スコア行列${\bfA}$を用いて次のように定義する．\begin{equation}{\rms}(\mathbf{e},\mathbf{y})=\sum^{N}_{i=0}A_{y_{i},y_{i+1}}+\sum^{N}_{i=1}P_{i,y_i}\end{equation}ここで，$A_{i,j}$は$i$番目のラベルから$j$番目のラベルに遷移するスコアを表す．また，$P_{i,j}$は$i$番目の単語に対応するタグ$j$のスコアである．このスコア関数を用いてラベル系列$\mathbf{y}$の出力確率を次のようにsoftmax関数により計算する．\begin{equation}p(\mathbf{y}|\mathbf{w})=\frac{{\rmexp}({\rms}(\mathbf{e},\mathbf{y}))}{\sum_{\tilde{\mathbf{y}}\in\mathbf{Y}_\mathbf{w}}{\rmexp}({\rms}(\mathbf{e},\mathbf{\tilde{y}}))}\end{equation}ここで，$\mathbf{Y}_\mathbf{w}$は入力文$\mathbf{w}$に対するすべての可能なラベル系列である．このように，BiLSTM-CRFモデルは，ラベリング問題を各単語に対して独立にモデル化するのではなく，系列全体で同時にモデル化する．学習時には正解ラベル系列を用いて次式の損失関数を最小化するパラメータを求める．\begin{equation}L=-\sum_{(\mathbf{w},\mathbf{\hat{y}})\inD}\log(p(\mathbf{\hat{y}}|\mathbf{w}))\label{eqn:loss}\end{equation}ここで，$D$は教師データである．予測時は，次式のようにスコアを最大化する${\bfy}$を求めることで出力ラベル系列$\mathbf{y}^*$を獲得する．\begin{equation}\mathbf{y}^*=\argmax_{\tilde{\mathbf{y}}\in\mathbf{Y}_\mathbf{w}}{\rms}(\mathbf{e},\tilde{\mathbf{y}})\end{equation}BiLSTM-CRFモデルでは，言語モデルを活用することで性能が改善されている．BiLSTM-CRFモデルに言語モデルを用いる手法としては，ContextualStringEmbeddings(CSE)\cite{akbik2018contextual}がある．CSEは，大規模なテキストを用いて，文字レベルのBiLSTMを事前学習したものである．CSEで学習されたベクトルは，式(\ref{eqn:forward_lstm})と式(\ref{eqn:backward_lstm})の${\bfx}_i$の一部に用いられる．提案手法の{\proposed}では，CSEを用いたBiLSTM-CRFモデルを拡張する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{マルチタスク学習}\label{sect:multi-task}図\ref{fig:multimodel}にマルチタスク学習用に拡張したBiLSTM-CRFモデルを示す．このマルチタスク学習では，単語埋め込み層とBiLSTM層は全ての教師データで共有し，共通の重みを用いる．一方で，CRF層はタスクごとに用意し，CRF層の重みは共有しない．各タスクのCRF層における損失を\begin{math}L_{i}\(i=1,2,\cdotsM)\end{math}とすると，このマルチタスク学習の目的関数は次式のように定義される．\begin{equation}Loss=\frac{1}{M}\sum_{i=1}^ML_{i}\end{equation}$M$は教師データの種類数であり，各$L_{i}$は式(\ref{eqn:loss})のように算出される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.1\begin{figure}[b]\begin{center}\includegraphics{30-2ia9f1.pdf}\end{center}\caption{シングルタスク学習，マルチタスク学習と補助学習の概要図}\label{fig:multimodel}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%このマルチタスク学習手法の学習では，対象タスクとそれ以外のタスクを同等に扱うことで，全てのタスクで共通の一つのモデルを学習する．学習の収束判定は，対象タスクの損失のみで行わず，全てのタスクの損失を用いて行う．推論時には，学習したモデルにおいて目的のタスクに該当するCRF層を用いてNERを行う．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{補助学習}\label{sect:auxiliary}Wangら\shortcite{wang2019multitask}は，対象タスクの教師データとそれ以外の教師データ（補助教師データ）を区別する補助学習を行うことで，対象タスクに対するNERの性能改善を行った．この補助学習手法の概要を図\ref{fig:multimodel}，\ref{fig:aux}に示す．補助学習手法では，メイン教師データから作成したメインバッチと補助教師データから作成した補助バッチを用いて学習を行う．イテレーション毎に，補助バッチでモデルのパラメータを更新し，その後でメインバッチでモデルのパラメータを更新する．このメイン教師データと補助教師データの交互の学習を，メイン教師データに対する損失が収束するまで繰り返す．図\ref{fig:aux}において，メインのボックスがメイン教師データを表し，補助のボックスが補助教師データを表す．この2種類の教師データを区別して切り替えながら学習する手法が補助学習手法である．\ref{sect:multi-task}節のマルチタスク学習手法では対象タスクとそれ以外の教師データを区別せずに同時に学習する点が異なる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.2\begin{figure}[b]\begin{center}\includegraphics{30-2ia9f2.pdf}\end{center}\caption{従来の補助学習の概要図}\label{fig:aux}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%algo.1\begin{algorithm}[b]\caption{従来の補助学習手法のアルゴリズム}\label{alg:aux}\DontPrintSemicolon\KwData{メイン教師データ$D_{main}$，補助教師データ$D_{aux}$}\nl\Begin{\nl\For{$i=1,2,\cdots,EPOCH$}{\nl\For{$j=1,2,\cdots,ITERATION$}{\nl$Batch_{main}=extract(D_{main},BATCHSIZE)$\;\nl$Batch_{aux}=extract(D_{aux},BATCHSIZE)$\;\nl$train(Model,Batch_{aux})$\;\nl$train(Model,Batch_{main})$\;}\nl$is\_converge(Model,D_{main})$\;}}\end{algorithm}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%補助学習のアルゴリズムをAlgorithm\ref{alg:aux}に示す．Algorithm\ref{alg:aux}において，添え字は対象タスク($main$)と補助タスク($aux$)を表す．$EPOCH$，$ITERATION$は，それぞれ，メイン教師データに対するエポック数とイテレーション数であり，$BATCHSIZE$はバッチサイズを表す．各エポックのイテレーション回数は，メイン教師データの総数をバッチサイズで割った値である($ITERATION=|D_{main}|/BATCHSIZE$)．4行目と5行目の$extract$は教師データからバッチサイズの数だけデータを抽出することでバッチを作成する関数であり，6行目と7行目の$train$はバッチデータに基づきNERモデル$Model$のパラメータを更新する関数である．また，8行目の$is\_converge$は対象タスク$D_{main}$に対する損失に基づき学習の終了判定を行う関数である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{提案手法\proposed：複数の補助教師データを用いる補助学習}
\label{sect:proposed}\ref{sect:auxiliary}節で説明したWangら\shortcite{wang2019multitask}の補助学習では，補助教師データとして1種類の教師データしか用いていない．本節では，複数種類の教師データを補助教師データとして活用する手法を提案する\footnote{Wangら\cite{Wang2018}は複数種類のデータをマルチタスク学習で用いているが，提案手法はメイン教師データと複数の補助教師データを用いる補助学習である．}．\ref{sect:concat}節と\ref{sect:epoch}節では複数の補助教師データを一つの補助学習で用いる手法（\proposed-結合手法と\proposed-反復手法）を提案し，\ref{sect:stack}節では，補助教師データの種類の数だけ補助教師データ毎の補助学習を順次行いBiLSTM-CRFのパラメータを再学習して更新する手法（\proposed-スタック手法）を提案する．{\proposed}手法では，\ref{sect:single-task}節で述べた通り，CSEの出力をLSTM-CRFの入力として用いる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.3\begin{figure}[b]\begin{center}\includegraphics{30-2ia9f3.pdf}\end{center}\caption{\proposed-結合手法の概要図}\label{fig:concataux}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{\proposed-結合手法}\label{sect:concat}\proposed-結合手法は，複数の補助教師データを結合した教師データを一つの補助教師データとみなし，\ref{sect:auxiliary}節で説明した補助学習を行う手法である．\proposed-結合手法の概要を図\ref{fig:concataux}，アルゴリズムをAlgorithm\ref{alg:concat}に示す．図\ref{fig:concataux}において，メインのボックスはメイン教師データを示し，補助のボックスは補助教師データを示している．図\ref{fig:concataux}の通り，{\proposed-結合手法}は，補助1，補助2，$\cdots$，補助Mの複数の補助教師データをまとめたデータを一つの補助教師データとして用いる．\proposed-結合手法は，\ref{sect:auxiliary}節の補助学習手法と同様，メイン教師データから作成したメインバッチと補助教師データから作成した補助バッチを用意する．そして，メイン教師データに対する損失が収束するまで，補助バッチを用いた学習とメインバッチを用いた学習を交互に繰り返す．従来の補助学習手法との違いは，複数の補助教師データを結合した教師データからデータを抽出することで補助バッチを作成する点である．一つの補助バッチには複数種類の補助教師データが混在し得る．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%algo.2\begin{algorithm}[b]\caption{\proposed-結合手法のアルゴリズム}\label{alg:concat}\DontPrintSemicolon\KwData{メイン教師データ$D_{main}$，$M$種類の補助教師データ$D^{(1)}_{aux},D^{(2)}_{aux},\cdots,D^{(M)}_{aux}$}%頭に\lnをつけるとその行に番号がつく\nl\Begin{\nl$D_{aux}=[D^{(1)}_{aux};D^{(2)}_{aux};\cdots;D^{(M)}_{aux}]$\;\nl\For{$i=1,2,\cdots,EPOCH$}{\nl\For{$j=1,2,\cdots,ITERATION$}{\nl$Batch_{main}=extract(D_{main},BATCHSIZE)$\;\nl$Batch_{aux}=extract(D_{aux},BATCHSIZE)$\;\nl$train(Model,Batch_{aux})$\;\nl$train(Model,Batch_{main})$\;}\nl$is\_converge(Model,D_{main})$\;}}\end{algorithm}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.4\begin{figure}[b]\begin{center}\includegraphics{30-2ia9f4.pdf}\end{center}\caption{\proposed-反復手法の概要図}\label{fig:epoch}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%algo.3\begin{algorithm}[t]\caption{\proposed-反復手法のアルゴリズム}\label{alg:epoch}\DontPrintSemicolon\KwData{メイン教師データ$D_{main}$，$M$種類の補助教師データ$D^{(1)}_{aux},D^{(2)}_{aux},\cdots,D^{(M)}_{aux}$}%頭に\lnをつけるとその行に番号がつく\nl\Begin{\nl\For{$i=1,2,\cdots,EPOCH$}{\nl\For{$k=1,2,\cdots,M$}{\nl\For{$j=1,2,\cdots,ITERATION$}{\nl$Batch_{main}=extract(D_{main},BATCHSIZE)$\;\nl$Batch_{aux}=extract(D^{(k)}_{aux},BATCHSIZE)$\;\nl$train(Model,Batch_{aux})$\;\nl$train(Model,Batch_{main})$\;}}\nl$is\_converge(Model,D_{main})$\;}}\end{algorithm}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{\proposed-反復手法}\label{sect:epoch}\proposed-反復手法は，エポック毎に補助教師データとして使用する教師データの種類を変える補助学習である．\proposed-反復手法の概要を図\ref{fig:epoch}，アルゴリズムをAlgorithm\ref{alg:epoch}に示す．\proposed-反復手法においても，メイン教師データから作成したメインバッチを用いた学習と補助教師データから作成した補助バッチを用いた学習を，メイン教師データに対する損失が収束するまで交互に繰り返す．\proposed-結合手法との違いは，補助バッチは特定の補助教師データから作成し，補助バッチの作成元とする補助教師データはエポック単位で切り替える点である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.5\begin{figure}[t]\begin{center}\includegraphics{30-2ia9f5.pdf}\end{center}\caption{\proposed-スタック手法の概要図}\label{fig:stack}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%algo.4\begin{algorithm}[t]\caption{\proposed-スタック手法のアルゴリズム}\label{alg:stack}\DontPrintSemicolon\KwData{メイン教師データ$D_{main}$，$M$種類の補助教師データ$D^{(1)}_{aux},D^{(2)}_{aux},\cdots,D^{(M)}_{aux}$}%頭に\lnをつけるとその行に番号がつく\nl\Begin{\nl\For{$k=1,2,\cdots,M$}{\nl\For{$i=1,2,\cdots,EPOCH$}{\nl\For{$j=1,2,\cdots,ITERATION$}{\nl$Batch_{main}=extract(D_{main},BATCHSIZE)$\;\nl$Batch_{aux}=extract(D^{(k)}_{aux},BATCHSIZE)$\;\nl$train(Model,Batch_{aux})$\;\nl$train(Model,Batch_{main})$\;}\nl$is\_converge(Model,D_{main})$\;}}}\end{algorithm}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{\proposed-スタック手法}\label{sect:stack}\proposed-スタック手法は，補助教師データ毎の補助学習を順次行うことでBiLSTMのパラメータを学習する．この手法では，補助教師データの種類の数だけメイン教師データを用いてメインモデルの再学習を行う．\proposed-スタック手法の概要を図\ref{fig:stack}，アルゴリズムをAlgorithm\ref{alg:stack}に示す．\proposed-スタック手法では，特定の補助教師データを用いた補助学習を行う．そして，メイン教師データに対する損失が収束したときに，新しい補助教師データに切り替え，新しい補助教師データを用いて，メインモデルの再学習を行う．\proposed-結合手法と\proposed-反復手法では，メインモデルの収束判定は一度だけだが，\proposed-スタック手法では，各補助教師データごとに，1エポックごとの学習終了時に収束判定を行う．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table1\begin{table}[t]\input{09table01.tex}%\caption{データセット}\label{tab:aux-data}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験設定}\label{sect:setting}本研究では，\pagebreak8個の化学／バイオ／科学技術分野のNERタスクで提案手法によるモデルの評価を行う．表\ref{tab:aux-data}に各NERタスクのデータセットを示す．JNLPBAでは，複数のNEの種類が定義されているが，BioBERT\cite{10.1093/bioinformatics/btz682}の実験設定にならい，Gene/ProteinのNEのみを使用した．本実験では，\ref{sect:proposed}節で説明した3つの提案手法によるモデル（\proposed-結合手法による\textit{\proposedSM-Conc}，\proposed-反復手法による\textit{\proposedSM-Iter}，\proposed-スタック手法による\textit{\proposedSM-Stack}）の性能を，\ref{sect:previous}節で説明した3つの従来手法により学習したモデル（シングルタスク学習による\textit{SingleTask}，標準的なマルチタスク学習による\textit{MultiTask}，従来の補助学習による\textit{SingleAux}）の性能と比較することで，提案手法の有効性を検証する．\textit{singleAux}を学習する際に用いる1種類の補助教師データは，対象タスクの開発データに対する性能に基づき選択した．具体的には，対象タスク以外の7種類の教師データをそれぞれ補助教師データとして用いたモデルの中で，開発データで最も性能（F1値）が高かったモデルを評価データで評価した．従来モデルの\textit{MultiTask}及び提案モデルは8種類全ての教師データを学習で用いる．ただし，提案モデルは，対象タスク以外の7種類の教師データは補助教師データとして用いる．\textit{\proposedSM-Iter}及び\textit{\proposedSM-Stack}の補助教師データは，固有表現の種類が同じ補助教師データが連続しないように7種類の補助教師データをランダムに並び替えて用いた．補助教師データの入力順に関する考察は\ref{sect:discussion}節で行う．各NERモデルはオープンフレームワークFLAIR\cite{akbik2019flair}を拡張して実装した．BiLSTMへの入力である単語埋め込みは，FLAIRで提供されているCSE\cite{akbik2018contextual}とFastText\cite{bojanowski2017enriching}を使用した．CSEとFastTextの各モデルはともに，PubMedのウェブサイトの医学文献コーパスMEDLINEの要旨より学習したモデルを使用した．MEDLINEの要旨は，約45億の単語を含む．BiLSTM層の次元数は256とした．オプティマイザーはSGDを使用し，スケジューリングにより学習率を調整した．具体的には，エポックごとの損失が4回連続してこれまで損失の最低値より小さくならなかったときに，学習率を2分の1倍にした．そして，学習率が1e-4以下になったときに学習を終了した．評価時は，学習を終えたときのモデルを使用した．ハイパーパラメータのチューニングでは，学習率の初期値として0.1，0.05の2通り，バッチサイズとして16，32の2通りを試した．これらの学習率とバッチサイズを組み合わせた4つのモデルを開発データで評価し，一番性能が良いハイパーパラメータの組み合わせを選択した．モデルを評価する際は，教師データと開発データを合わせたデータからモデルを学習し，テストデータに対する性能を比較，評価した．NERの評価指標は以下のRrecision，Recall，F1値を用いた．\begin{align}Precison&=\frac{TP}{TP+FP}\\[1ex]Recall&=\frac{TP}{TP+FN}\\[1ex]F1\mathchar`-score&=\frac{2\timesPrecision\timesRecall}{Precision+Recall}\end{align}TP，FP，FNはそれぞれTruePositive，FalsePositive，FalseNegativeを表す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験結果}\label{sect:result}実験結果を表\ref{tab:result}に示す．表\ref{tab:result}の結果は，初期値を変えて各モデルの実験を3回行った平均値である．表\ref{tab:result}において，「MA.AVG.」と「MI.AVG.」はそれぞれF1値のマクロ平均とマイクロ平均を表す．また，太字は各タスクにおいて最も性能が高い値を示している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table2\begin{table}[t]\input{09table02.tex}%\hangcaption{実験結果（各データセットのPrecision，Recall，F1値およびF1値のマクロ平均とマイクロ平均(\%)．F1値の括弧内の数字は標準偏差．）}\label{tab:result}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{tab:result}より，\textit{SingleAux}は\textit{SingleTask}や\textit{MultiTask}よりもF1値のマイクロ平均とマクロ平均が高いことが確認できる．これは，従来研究で報告されている通り，対象タスクに着目した補助学習の方が全てのタスクの教師データを同等に扱うマルチタスク学習よりも性能改善に寄与することを示している．また，表\ref{tab:result}より，\textit{\proposedSM-Stack}と\textit{\proposedSM-Iter}は\textit{SingleAux}よりもF1値のマクロ平均とマイクロ平均が共に高いことが確認できる.これらの結果より，教師データが複数ある場合，提案手法のように補助学習において複数の補助教師データを用いることでNER性能が改善できることが分かり，提案手法の有効性を実験的に確認できる．また，ベースラインモデルである\textit{MultiTask}と\textit{SingleAux}と，提案手法によるモデル\textit{\proposedSM-Conc}，\textit{\proposedSM-Iter}，\textit{\proposedSM-Stack}の比較を行った．表\ref{tab:mcnemar}に提案手法によるモデルとベースラインモデルのF1値の差を示す.そして，検定として，単語に割り当てられたラベルの一致および不一致に基づくマクネマー検定を行った\cite{Sha:2003:SPC:1073445.1073473}．この検定は，各モデルにおいてF1値が最大となった実験結果に対して行った.表\ref{tab:mcnemar}内で太字で表しているものは，マクネマー検定の結果，提案手法によるモデルの結果がベースラインモデルの結果と比較して，$p<0.05$で有意であるものである.ベースラインモデルとのF1値の差が大きい，BC5CDR-DiseaseやBC5CDR-Chemといったデータセットでは有意差があった．BC5CDR-DiseaseやBC5CDR-Chemといった対象タスクのアノテーション数が少ない場合，複数の補助教師データを使用することで性能の改善を行うことができる．提案手法によるモデルとベースラインモデルとの間でF1値の差が小さいJNLPBAでは，どの提案手法のモデルでも有意差は確認できなかった．JNLPBAは，本実験において最も学習データのアノテーション数が多いデータセットであるため，対象タスクのデータが十分である場合，提案手法の効果は小さいと考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table3\begin{table}[t]\input{09table03.tex}%\hangcaption{提案手法によるモデルとベースラインモデルのF値の差．太字は，マクネマー検定を行った結果，提案手法によるモデルがベースラインモデルより，$p<0.05$で有意であるものを示している．}\label{tab:mcnemar}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{補助教師データの入力順に関する考察}\label{sect:discussion}\textit{\proposedSM-Iter}と\textit{\proposedSM-Stack}の性能は，補助教師データの使用順（Algorithm\ref{alg:epoch}や\ref{alg:stack}の「$D^{(1)}_{aux},$$D^{(2)}_{aux},\cdots$」）に影響を受ける可能性がある．本節では補助教師データの使用順がNER性能に与える影響を考察する．\ref{sect:result}節の実験では，\textit{\proposedSM-Iter}及び\textit{\proposedSM-Stack}の補助教師データは，固有表現の種類が同じ補助教師データが連続しないようにランダムに並び替えた．しかし，\textit{\proposedSM-Iter}および\textit{\proposedSM-Stack}では，メインモデルの学習終了時点に近い補助教師データほど大きな影響を持つ可能性がある．そこで，\textit{\proposedSM-Iter}や\textit{\proposedSM-Stack}において，対象タスクの性能改善に寄与する度合いの小さい順に補助教師データを並べて用いた場合の性能を評価する．以降では，それらのモデルを\textit{\proposedSM-Iter~(sort)}と\textit{\proposedSM-Stack~(sort)}と表記する．具体的には，\textit{\proposedSM-Iter~(sort)}と\textit{\proposedSM-Stack~(sort)}では，まず，各補助教師データ単体で従来の補助学習を行ったモデルの開発データに対する性能を評価する．そして，その性能の昇順で補助教師データをソートし，Algorithm\ref{alg:epoch}や\ref{alg:stack}の「$D^{(1)}_{aux},D^{(2)}_{aux},\cdots$」として用いる．例として，CHEMDNERタスクにおける\textit{\proposedSM-Iter~(sort)}と\textit{\proposedSM-Stack~(sort)}の補助教師データの並び順の決め方について説明する．表\ref{tab:aux-r}に，各NERタスクの教師データを用いた場合の\textit{SingleAux}のCHEMDNER開発データにおける性能を示す．ハイパーパラメータは全ての組み合わせで評価する．この\textit{SingleAux}の性能に基づき，ハイパーパラメータの各組み合わせで\textit{\proposedSM-Iter~(sort)}と\textit{\proposedSM-Stack~(sort)}のCHEMDNER開発データにおける性能を評価する．具体的には，同じハイパーパラメータの設定で，\textit{SingleAux}の性能が低い順に補助教師データを用いて\textit{\proposedSM-Iter~(sort)}や\textit{\proposedSM-Stack~(sort)}を評価する．その結果，表\ref{tab:aux-r}より，\textit{\proposedSM-Iter~(sort)}ではバッチサイズが32，学習率が0.1，補助教師データの使用順は「JNLPBA$\rightarrow$BC2GM$\rightarrow$BC5CDR-Disease$\rightarrow$s800$\rightarrow$BC5CDR-Chem$\rightarrow$LINNAEUS$\rightarrow$NCBI-Disease」となる．また，\textit{\proposedSM-Iter~(sort)}ではバッチサイズが16，学習率が0.05，補助教師データの使用順は「s800$\rightarrow$JNLPBA$\rightarrow$BC5CDR-Disease$\rightarrow$BC2GM$\rightarrow$NCBI-Disease$\rightarrow$LINNAEUS$\rightarrow$BC5CDR-Chem」となる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table4\begin{table}[b]\input{09table04.tex}%\hangcaption{CHEMDNERタスクにおける\textit{\proposedSM-Iter(sort)}と\textit{\proposedSM-Stack(sort)}の補助教師データの使用順及びハイパーパラメータのチューニング（CHEMDNER開発データにおけるF1値(\%)）}\label{tab:aux-r}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%各テストデータにおける\textit{\proposedSM-Iter}，\textit{\proposedSM-Iter~(sort)}，\textit{\proposedSM-Stack}，\textit{\proposedSM-Stack(sort)}の性能を表\ref{tab:sort}に示す．表\ref{tab:sort}より，\textit{\proposedSM-Iter~(sort)}のF1値のマクロ平均と\textit{\proposedSM-Stack~(sort)}のF1値のマイクロ平均及びマクロ平均はそれぞれ\textit{\proposedSM-Iter}と\textit{\proposedSM-Stack}より低いが，\textit{\proposedSM-Iter~(sort)}は\textit{\proposedSM-Iter}よりも高いF1値のマイクロ平均を獲得できたことが分かる．この結果より，\textit{{\proposedSM}-Iter}と\textit{{\proposedSM}-Stack}の性能は補助教師データの使用順序に影響を受け，対象タスクの開発データにおける\textit{SingleAux}の性能の昇順で補助教師データを使うことで，いくつかのNERタスクでは性能改善できることが分かった．しかし，補助教師データをソートすることにより性能を改善できないNERタスクも多い．これは，開発データとテストデータの傾向の違いが原因の一つであると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table5\begin{table}[t]\input{09table05.tex}%\caption{補助教師データの順序の違いによる性能差}\label{tab:sort}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{tab:word}に対象タスクの教師データと補助教師データとの単語の一致率を示す．これは，対象タスクの教師データに出現する単語が，補助教師データ内に出現する割合を表している．JNLPBA，LINNAEUS，s800，NCBI-diseaseは，対象タスクの教師データ中の単語が補助教師データ内に出現する割合が高いデータセットである．このうちNCBI-diseaseを除いたデータセットでは，補助教師データをソートしない手法によるモデルが補助教師データをソートする手法によるモデルよりF1値が高い．一方，BC4CHEMDやBC2GMは，対象タスクの教師データ中の単語が，補助教師データ内に出現する割合が低いデータセットである．これらのデータセットでは，補助教師データをソートする手法によるモデルが高性能である．これらのことから，補助教師データと対象タスクの教師データの一致率が低いものは，対象タスクの性能改善に寄与する度合いの小さい順に補助教師データを並べることで，性能が高くなる傾向があることが分かる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table6\begin{table}[t]\input{09table06.tex}%\hangcaption{対象タスクの教師データと補助教師データとの単語の一致率（BC5CDR-ChemとBC5CDR-Diseaseは同じテキストに対してラベル付けを行ったものであるため省略した．）}\label{tab:word}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{従来研究の結果との比較}本節では，提案の{\proposed}手法によるモデルの性能と従来研究で報告されている性能を比較する\footnote{従来研究で様々なパラメータでの性能が報告されている場合，F1値のマクロ平均が最も高いモデルの性能と比較する．}．表\ref{tab:previousresult}に比較結果を示す．また，表\ref{tab:previousresultSummary}に比較結果の概要として，本研究の評価実験で用いたNERタスクと従来研究で用いられているNERタスクで共通するタスクに対するF1値のマクロ平均を示す．表\ref{tab:previousresultSummary}の太字は提案手法によるモデルのF1値が従来手法の結果よりも高いことを示す．表\ref{tab:previousresult}と表\ref{tab:previousresultSummary}より，提案の{\proposed}手法によるモデルは全体的に従来の結果と同等かよりよいNER性能を達成できていることが分かる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table7\begin{table}[b]\input{09table07.tex}%\caption{従来研究の結果との比較（F1値(\%)）}\label{tab:previousresult}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table8\begin{table}[b]\input{09table08.tex}%\caption{従来研究の結果との比較の概要（F1値のマクロ平均(\%)．共通タスクを対象．）}\label{tab:previousresultSummary}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%HanPaNEと{\proposed}がLSTMであるのに対し，他の手法はTransformerに基づく事前学習を用いている．表\ref{tab:result}の\textit{SingleTask}（F1値のマクロ平均85.64）と表\ref{tab:previousresultSummary}のBioBERT（F1値のマクロ平均85.99）との比較から，今回の評価で用いたデータセットでは，Transformerに基づく事前学習モデルを用いる方が全般的に高い性能を示すことが確認できる．しかしながら，{\proposed}によって，LSTMに基づくモデルであっても，今回の評価データにおいて，高いF1値が得られる場合があることがわかる．なお，{\proposed}は従来研究と組み合わせることが可能であり，また，今後提案される事前学習モデルに適用することで，更なる性能改善が期待できる．以降，各手法との比較を述べる．\begin{itemize}\itemBioBERT\cite{10.1093/bioinformatics/btz682}はバイオ分野のテキストで事前学習したBERTに基づくモデルである．本研究では，PubMedとPMCから事前学習したBioBERTv1.0と提案モデルを比較した．BioBERTのF1値のマクロ平均は85.99なのに対して，提案の{\it{\proposedSM}-Iter}のF1値のマクロ平均は86.16，{\it{\proposedSM}-Stack}のF1値のマクロ平均は85.96であり，{\it{\proposedSM}-Iter}はBioBERTよりも高い性能を実現できた．\itemHanPaNE\cite{watanabe-etal-2019-multi}は，マルチタスク学習により，LSTMに基づく化合物名の言い換えモデルと同時学習するBiLSTM-CRFNERモデルである．HanPaNEはCHEMDNERタスクでしか評価されていないが，CHEMDNERタスクでは最高性能である92.57のF1値を達成している．{\it{\proposedSM}-Stack}及び{\it{\proposedSM}-Iter}はHanPaNEよりも性能が低い．しかし，提案手法とHanPaNEのマルチタスク学習の枠組みは相補的であるため，組み合わせることでより高い性能を達成できる可能性がある．\itemSciBERT\cite{beltagy-etal-2019-scibert}は科学技術分野のテキストで事前学習したBERTに基づくモデルである．SciBERTはNCBI-DiseasesとJNLPBAタスクで評価されており，それらのF1値のマクロ平均は82.93である．{\it{\proposedSM}-Iter}はそれら2つのタスクでSciBERTより高いF1値のマクロ平均(83.19)を達成している．\itemBioMegatron\cite{shin-etal-2020-biomegatron}はMegatron-LM\cite{shoeybi2020megatronlm}と呼ばれるTransformerに基づく言語モデルをバイオ分野に適応したモデルである．BioMegatronはNCBI-Disease，BC5CDRDisease，BC5CDRChemの3つのNERタスクで評価されており，50kのバイオ分野の語彙と345mのパラメータを用いたBioMegatronのF1値のマクロ平均は89.33である．一方，{\it{\proposedSM}-Iter}と{\it{\proposedSM}-Stack}のF1値のマクロ平均はそれぞれ89.91と89.59であり，BioMegatronよりも高い値を実現した．\itemSciFive\cite{DBLP:journals/corr/abs-2106-03598}は大規模なバイオ医療分野のコーパスから事前学習したText-to-TextTransferTransformer(T5)\cite{2020t5}に基づくモデルである．SciFiveは本研究で用いた8つのタスクの内，LINNAEUSを除いた7つのタスクで評価されており，NERタスクのF1値のマクロ平均が最も良いPMCから事前学習したSciFive(PMC)Largeのマクロ平均F1値は85.67である．一方，{\it{\proposedSM}-Iter}のF1値のマクロ平均は85.76であり，SciFiveより高い性能を実現した．\item%$\color{red}PubMedBERT\cite{PubMedBERT}は，バイオ分野のテキストだけを用いて一から事前学習したBERTモデルである．PubMedBERT(PubMed)はPubMedだけ，PubMedBERT(+PMC)はPubMedに加えてPMCを事前学習に用いている．これらの事前学習を基にNCBI-Disease，BC5CDRDisease，BC5CDRChem，BC2GM，JNLPBAの固有表現抽出タスクで評価を行っている．PubMedBERT(PubMed)に基づく固有表現抽出器のF1値のマクロ平均は86.08，PubMedBERT(+PMC)に関しては，86.13と報告されている．{\it{\proposedSM}-Stack}は，PubMedBERT(PubMed)に基づく固有表現抽出器と同等の性能を示している．また，{\it{\proposedSM}-Iter}は，PubMedBERT(+PMC)より高い性能を示している．\end{itemize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{マルチタスク学習}マルチタスク学習は，NERを含めて様々な自然言語処理タスクの性能を向上させるために利用されている\cite{liu-multi,luong-multi,dong-multi,hashimoto-multi,AAAI1817123}．Rei\shortcite{P17-1194}は言語モデルを用いた系列ラベリングのマルチタスク学習手法を提案した．Aguilarら\shortcite{Aguilar2018}やCaoら\shortcite{Cao2018}はNERと単語分割のマルチタスク学習を提案した．Clarkら\shortcite{Clark18}は品詞付与や構文解析などのいくつかの自然言語処理タスクとNERのマルチタスク学習を提案した．Crichtonら\shortcite{crichton2017neural}やWangら\shortcite{Wang2018}は化学医療のいくつかの自然言語処理タスクとのマルチタスク学習によりNERの性能を改善した．Watanabeら\shortcite{watanabe-etal-2019-multi}は化合物名の言い換えとNERのマルチタスク学習を提案した．また，マルチタスクのためのサンプリング手法も提案されている．Guoら\cite{guo-etal-2019-autosem}は，Beta-Bernoullimulti-armedbanditwithThompsonSamplingに基づいて最も有効と判断される補助タスクを選択する．Kungら\cite{kung-etal-2021-efficient}は，対象タスクとの類似度に基づいて，補助タスクを選択する手法を提案している．これらの手法は，異なるタスクを用いてマルチタスク学習を行っているが，{\proposed}では，同じタスクの異なる教師データを用いて補助学習を行う点が異なる．また，Daume\cite{daume-iii-2007-frustratingly}，Pengら\cite{peng-dredze-2017-multi}，Yangら\cite{YangSC17}のように同じタスクで分野が異なるデータを用いて学習を行う分野適応がある．{\proposed}は，複数の補助教師データを切り替えながら学習する点がこれらの手法とは異なる．これにより，補助教師データの入力順を変更することができ，補助教師データと教師データの単語の一致率が低いものは，図\ref{tab:sort}のように性能改善を行うことができる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}
本研究では，複数の補助教師データを活用するNERの補助学習手法{\proposed}を提案した．学習方法として，(i)複数の補助教師データを結合したデータを一つの補助教師データとみなして補助学習を行う{\proposed}-結合モデル，(ii)エポックごとに補助教師データを変えて補助学習を行う{\proposed}-反復モデル，(iii)補助教師データ毎の補助学習を順次行い補助教師データの種類の数だけメインモデルの再学習を行う{\proposed}-スタックモデルを提案した．化学／バイオ／科学技術分野のデータセットを用いた評価実験を通じて，提案手法で学習したモデルは従来のマルチタスク学習手法によるモデルや一つの補助教師データしか用いない従来の補助学習手法によるモデルよりも高い平均F1値を実現できることを確認し，s800のデータセットにおいて最も高いF1値を達成した．今後の課題として，他のデータセットや，Transfomerに基づく事前学習を用いた評価，NER以外の自然言語処理タスクでの提案手法の有効性の確認が挙げられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.7}\begingroup\addtolength{\baselineskip}{0.25pt}\bibliography{09refs}\endgroup%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{渡邊大貴}{%2017年愛媛大学工学部情報工学科卒業．2019年同大学院理工学研究科修士課程修了．2022年より同志社大学大学院理工学研究科博士課程に在学．2019年（株）富士通研究所入社．現在，富士通株式会社に在籍．}\bioauthor{市川智也}{%2021年同志社大学理工学部インテリジェント情報工学科卒業．2023年同大学院理工学研究科修士課程修了．同年より楽天グループ株式会社入社．}\bioauthor{田村晃裕}{2005年東京工業大学工学部情報工学科卒業．2007年同大学院総合理工学研究科修士課程修了．2013年同大学院総合理工学研究科博士課程修了．日本電気株式会社，国立研究開発法人情報通信研究機構にて研究員として務めた後，2017年より愛媛大学大学院理工学研究科助教．2020年より同志社大学理工学部准教授となり，現在に至る．博士（工学）．情報処理学会，言語処理学会，人工知能学会，ACL各会員．}\bioauthor{岩倉友哉}{2003年株式会社富士通研究所入社．2011年東京工業大学大学院総合理工学研究科物理情報システム専攻博士課程修了．博士（工学）．自然言語処理の研究開発に従事．現在，富士通株式会社シニアリサーチマネージャー，奈良先端科学技術大学院大学客員教授．情報処理学会，言語処理学会各会員．}\bioauthor{馬春鵬}{ChunpengMaiscurrentlyaresearcherinMegagonLabs,Tokyo.HereceivedhisB.E.,M.E.,Ph.DfromHarbinInstituteofTechnologyin2010,2014,2020,respectively.Since2020,hehasbeenworkingasaresearcherinFujitsuLaboratory,Japan.Hisresearchinterestsincludemachinetranslation,syntacticparsing,dialoguegeneration,andmultimodalartificialintelligence.HeisamemberoftheAssociationforNaturalLanguageProcessinginJapan.}\bioauthor{加藤恒夫}{1994年東京大学工学部電子工学科卒業．1996年同大学工学系大学院電子工学専攻博士前期課程修了．同年，国際電信電話株式会社入社．KDD研究所，KDDI研究所を経て，2015年より同志社大学理工学部．現在同志社大学理工学部教授．博士（情報理工学）．言語処理学会，情報処理学会，電子情報通信学会，日本音響学会，日本音声学会，ヒューマンインターフェース学会，ACM，IEEE各会員．}\end{biography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\biodate\end{document}