\documentclass[japanese]{jnlp_3.5}
\usepackage{jnlpbbl_2.2}
\usepackage[dvipdfmx]{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{url}
\usepackage{hangcaption_jnlp}
\usepackage{array}
%%%%\usepackage{udline}
%%%%\setulminsep{1.2ex}{0.2ex}
%%%%\let\underline=\ul
\allowdisplaybreaks

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% author's definition
%%%%\usepackage{latexsym}
%%%%\usepackage{wrapfig}
%%%%\usepackage{amsmath,amssymb}
%%%%\usepackage{here}
%%%%\makeatletter
%%%%\def\NAT@parse{\typeout{This is a fake Natbib command to fool Hyperref.}}
%%%%\makeatother
%%%%\usepackage[hypertex]{hyperref}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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


\received{2022}{1}{5}
\revised{2022}{4}{3}
\accepted{2022}{5}{17}

\setcounter{page}{854}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\jsubject{一般論文}
\jtitle{簡易小型化 BERT による日本語構文解析}
\jauthor{河野　慎司\affiref{Author_1}  \and 古宮　嘉那子\affiref{Author_2} \and 新納　浩幸\affiref{Author_3}}
\jabstract{
BERT は fine-tuning することで様々な NLP タスクに対して高性能な結果を出した事前学習済みモデルであるが，多くのパラメータを調整する必要があるため学習や推論に時間がかかるという問題がある．本論文では日本語構文解析に対して，BERT の一部の層を削除した簡易小型化 BERT の利用を提案する．実験では，京都大学ウェブ文書リードコーパスと京都大学テキストコーパスを混合したデータを用いて，京大版の BERT とそこから構築した簡易小型化 BERT の正解率と処理時間を比較した．提案する簡易小型化 BERT では，京大版の BERT からの正解率の劣化をウェブコーパスで 0.87 ポイント，テキストコーパスで 0.91 ポイントに押さえながら，学習時間は 83\%，推論時間はウェブコーパスで 65\%，テキストコーパスで 85\%まで削減することができた．
}
\jkeywords{BERT，構文解析，枝刈り}

\etitle{Japanese Parsing Using Smaller BERT}
\eauthor{Kono Shinji\affiref{Author_1} \and Kanako Komiya\affiref{Author_2}  \and Shinnou Hiroyuki\affiref{Author_3}} 
\eabstract{%
BERT is a pre-trained model that can achieve high accuracy for various NLP tasks with fine-tuning. However, BERT requires tuning of many parameters, making training and inference time-consuming. In this study, we propose to apply smaller BERT for Japanese parsing by dropping some of its layers. In our experiments, we compared the parsing accuracy and processing time of the BERT developed by Kyoto University and smaller BERT with dropping some of its layers, using the Kyoto University Web Document Leads Corpus (referred to as the web corpus) and the Kyoto University Text Corpus (referred to as the text corpus). The experiments revealed that the smaller BERT reduced the training time by 83\% and inference time by 65\% for the Web corpus and 85\% for the text corpus, while maintaining the accuracy degradation from the Kyoto University version of BERT to 0.87 points for the Web corpus and 0.91 points for the text corpus.
}
\ekeywords{BERT, Parsing, Pruning}

\headauthor{河野，古宮，新納}
\headtitle{簡易小型化BERTによる日本語構文解析}

\affilabel{Author_1}{茨城大学大学院理工学研究科情報工学専攻}{Major in Computer and Information Sciences, Graduate School of Science and Engineering, Ibaraki University}
\affilabel{Author_2}{東京農工大学工学研究院先端情報科学部門}{Department of Computer and Information Sciences, Institute of Engineering, Tokyo University of Agriculture and Technology}
\affilabel{Author_3}{茨城大学大学院理工学研究科情報工学専攻}{Major in Computer and Information Sciences, Graduate School of Science and Engineering, Ibaraki University}



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


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{はじめに}

構文解析とは句同士の係り受け関係を明らかにするタスクのことである．従来より研究が盛んな分野であり，日本語構文解析ツールのKNP\footnote{\url{https://nlp.ist.i.kyoto-u.ac.jp/?KNP}} \cite{KNP1} \cite{KNP2}が有名であるが，近年，BERTを利用することで，従来のKNPよりも高い正解率を出すことが示されている\cite{shibata}．

BERT \cite{bert}はfine-tuningすることで様々なNLPタスクに対して高い性能を示した事前学習済みモデルである．BERTを利用した構文解析では，BERTからの出力ベクトルを順伝播型ニューラルネットワーク(FFNN)に入力しfine-tuningすることで構文解析を行う．ただし，BERTには多くのパラメータを調整する必要があるため学習や推論に時間がかかるという問題がある．

そこで本研究では，構文解析において事前学習済みBERTの一部の層を削除した簡易小型化BERTの利用を提案する．
ここでいう層とは，BERTを構成しているtransformerのエンコーダーのことであり，$\rm{BERT_{BASE}}$の場合，12層のtransformerのエンコーダーから成っている．このうちの何層かを削除し，層数が減った新しいBERTモデルを作成するという簡易な処理で小型化したBERTを，以降，簡易小型化BERTと呼ぶ．
実験では，京都大学ウェブ文書リードコーパス\cite{Webcorpus}と京都大学テキストコーパス\cite{textcorpus}を混合したデータを用いて，京大版のBERT\footnote{\url{https://github.com/google-research/bert}}$^{,}$\footnote{\url{https://nlp.ist.i.kyoto-u.ac.jp/?ku_bert_japanese}}とそれを簡易小型化したBERTの正解率と処理時間を比較した．提案する簡易小型化BERTでは，3～10層目を削除した合計4層のモデルが，京大版のBERTからの正解率の劣化をウェブコーパスで0.87ポイント，テキストコーパスで0.91ポイントに押さえる結果となり，層を削除した後でも高い正解率を維持していることが分かった．また学習・推論時間は削除する層を増やすほど速くなり，合計4層モデルでは学習時間は83\%，推論時間はウェブコーパスで65\%，テキストコーパスで85\%まで削減することができた．

またBERTのどの位置の層が構文情報を捉えているかを，12層のうち1層のみをfine-tuningに使用し，テストを行うことで調査した．その結果，新聞コーパスは上位・下位層が高い正解率を出したが，Webコーパスにおいてはどの層も大きな変化は出なかった．これらの結果からBERTはコーパスの特性や文に含まれるトークン数，未知語の割合などによって，構文解析の正解率に変化が出ると考えられる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}

\cite{dependency}は構文解析を，単語ごとに係り先を決定するHead Selection問題として行っている．BiLSTMからの特徴量を用いることで，高性能な構文解析を行っている．
BERTを使った日本語構文解析の関連研究として\cite{shibata}の研究がある．柴田らは事前学習済みBERTを京都大学テキストコーパスと京都大学ウェブ文章リードコーパスという2種類のコーパスでfine-tuningし，BERTによる構文解析の正解率を調査した．結果，BERTを利用した場合，KNPやCaboCha\footnote{\url{https://taku910.github.io/cabocha/}}，BiLSTMを利用したときよりも高い正解率を出している．\cite{udagawa}は，BERTからの出力ベクトルに加え，係り元と係り先の距離などをone-hotベクトルで表現した基本素性をFFNNに入力し，構文解析を行っている．このときBERTと基本素性を組み合わせた場合，CaboChaよりも高い正解率となっている．

\cite{poor}は，事前学習済みBERTの層を削除し，fine-tuningした場合，GLUEタスクにおいて12層のBERTに比べどの程度差が出るのかを調査した．このとき，
\begin{itemize}
  \item4層減らすとき，下位の層を削除するのが一番スコアが低いが，他はあまり差がない．
  \item 6層減らすとき，上位の層を削除するのが一番スコアがいい．
\end{itemize}
など，削除する層数や位置によってスコアに差が出ることを述べている．

本研究において簡易小型化BERTを作成する際，Sajjadらのように事前学習済みBERTの層を削除する手法を利用したが，\cite{mitchell}はBERTの重みの値が0に近いものを不要と見なし取り除くという枝刈り手法を提案している．枝刈りの割合を30～40\%にしても，枝刈りをしていないモデルに比べて，GLUEタスクにおいて大きな差は出ないと述べている．

BERTの層がどの情報を捉えているかについては，Sajjadらは上位層はタスクに特化した重みになっており，中間層は重要な情報を含んでおらず，下位層は文脈情報を含んでいると述べている．同じく\cite{tenney}も，基本的な構文情報はBERTの早い段階で処理され，高レベルの意味的情報は より高い層に現れると述べている．

一方で，\cite{jawahar}はProbingタスクにおいて，BERTが統語的な情報を中間層が捉えているという結果を出している．\cite{hewitt}も依存構造解析において$\rm{BERT_{BASE}}$は6～9層，$\rm{BERT_{LARGE}}$は15～17層等，比較的中間に近い層が構文情報を捉えていると述べている．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{BERT}

本研究で使用するBERTは，京都大学 黒橋研究室が公開しているBERT日本語PretrainedモデルのBASE 通常版\footnote{\url{https://nlp.ist.i.kyoto-u.ac.jp/?ku\_bert\_japanese}}
を使用する．このモデルは日本語テキストのみのWikipediaを形態素解析した後にsubwordに分割し，事前学習されたモデルである．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{構文解析}

本研究でBERTによる構文解析を行うモデル図を，「自然の」の係り受けを判定するときを例にとって，図\ref{bert_img}に示す．まず，コーパスに記されている「基本句」の区切り方に従って，各基本句をひとつずつBERT tokenizerに入力する．BERT tokenizer はBERTの学習時に，BERTの学習に最良となるトークン化手法を学習しており，この結果，必要な際は，基本句を基本句より小さなsubwordに分割する．
大抵は定められた語彙にない基本句についてsubwordに分割されていると考えられるため，本論文ではsubwordに分割されたトークンを未知語と呼ぶ．
京大のBERT tokenizerは，Transformersの実装に基づき，subwordに分割した際の先頭以外のトークンは，頭に「\#\#」がついた形で出力される．
なお，基本句とは，1つの自立語とそれに続く付属語から成る言葉の単位である\footnote{\url{http://cr.fvcrc.i.nagoya-u.ac.jp/~sasano/knp/format.html}}．
例えば，「右が兄，左が弟の写真。」という文を基本句区切りにすると，
「右が  	\textbar  兄， 	\textbar  左が  	\textbar  弟の  	\textbar  写真。」のように分かれる．
今回利用した京都大学ウェブ文書リードコーパスと京都大学テキストコーパスには，基本句の区切り部分のアノテーションだけではなく，形態素の区切り部分のアノテーションも付与されている．形態素は意味を持つ最小単位で，先ほどの例文の場合だと，「右  \textbar  が  \textbar  兄  \textbar  ，\textbar  左  \textbar  が  \textbar  弟  \textbar  の  \textbar  写真  \textbar  。」のように分かれる．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 1
\begin{figure}[b]
\begin{center}
\includegraphics{29-3ia5f1.pdf}
\end{center}
\caption{BERTによる構文解析のモデル図（「自然の」の係り受け判定時）}
\label{bert_img}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

次に注目したトークンより，後ろのトークン全てに対して$score$を計算し，$score$を元に係り受けの有無を2値分類する．$score$の計算に際しては，\cite{udagawa}の構文解析モデルを参考とした．

具体的に「私は茨城大学の学生です．」という文を本手法で構文解析した手順を述べる．まずこの文を基本句区切りにしたときの係り受け関係は図\ref{head_img}のようになる．矢印の先が係り先で，例えば「私は」は「学生です．」に係っている．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 2
\begin{figure}[b]
\begin{center}
\includegraphics{29-3ia5f2.pdf}
\end{center}
\caption{係り元と係り先の関係}
\label{head_img}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

本手法では，注目したトークンより後ろのトークン全てに対して係り受けの2値分類を行うため，注目トークンとそれ以降のトークンに対して，係り受けラベルを付与する．
AがB に係っている場合，係り元トークンがAで係り先トークンがBの際に係り受けラベル 1 を付与し，係っていない場合，係り受けラベル 0 を付与した．
なお，ひとつの係元は複数の係先をもつことはないが，逆にひとつの係先は複数の係元をもつことがある．
%%%%例えば [ その, 自然, ##の, 美しさ, ##が, 何とも, 言え, ##ません ] という文では，「その」と「自然」は、共に「美しさ」に係る．
    例えば [ その, 自然, の, 美しさ, が, 何とも, 言え, ません ] という文では，「その」と「自然」は、共に「美しさ」に係る．

表\ref{head_label}では，「私は」のトークンに注目したときの係り受けラベルの付与について示している．
このときsubwordに分割された際の先頭以外のトークン，つまり頭に「\#\#」が付与されたトークンに対しては係り受けラベルは付与しない．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 1
\begin{table}[b]
\input{05table01.tex}
\caption{係り先ラベルの設定}
\label{head_label}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

次に$score$の計算方法について述べる．$v_i$と$v_j$をそれぞれ係り元，係り先のBERTからの出力ベクトル($v_i,v_j$) 
だとすると，以下の式でscoreを出力する．なお，sigmoidの出力をscoreにすることも可能であるが，\cite{udagawa}に従い，$w$を使用した．
\begin{align}
v_{ij} &= concat(v_i, v_j) \nonumber \\
x &= sigmoid(Uv_{ij}) \nonumber \\
score &= w^\mathsf{T}x \nonumber 
\end{align}

このとき，$U$と$w$はfine-tuningする際，新しく追加したパラメータであり，$w$の次元は任意とし，$U$の大きさは，$w$の次元数$\times$$v_i$と$v_j$の長さの合計の次元とする．

最後に，$score$を2値クロスエントロピーとして，係り受けの有無をfine-tuningで学習させる． 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{層の削除}

構文解析の正解率と学習・推論速度の差を調査するため，京大版BERTの一部層を削除したモデルを複数作成する．

$\rm{BERT_{BASE}}$の位置関係は，BERTの入力に近い方を下位，出力に近い方を上位と呼ぶこととする．

図\ref{delete_layer_img}は実験で使用するモデルの種類を表している．図\ref{delete_layer_img}の灰色の層が削除した層を表しており，左から上位，中位，下位の位置を削除したものである．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 3
\begin{figure}[t]
\begin{center}
\includegraphics{29-3ia5f3.pdf}
\end{center}
\caption{削除する層の位置}
\label{delete_layer_img}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験}

本実験では，京都大学ウェブ文書リードコーパス（以降，Webコーパス）と京都大学テキストコーパス（以降，新聞コーパス）を混合したデータを用いてfine-tuningを行い，その後，それぞれのコーパスでテストをし，構文解析の正解率と学習・推論時間を調査した．またfine-tuning時にはEarlyStoppingを採用した．検証データの正解率が最高値を更新しなくなってから5エポック後に停止させる．
なお，正解率は係り元トークンと係り先トークンのペアを一用例とし，係り受けラベルの2値分類を行った際の「テストで正解した用例数 / 全テスト用例数」で求めた．
$n$トークンある文ではペア数（テスト用例数）は$ (n-1)+(n-2)+...1$となる．

なお，BERTからの出力ベクトル($v_i,v_j$) は768次元とし，wは\cite{udagawa}に従い1,000次元とした．そのため
$U \in \mathbb{R}^{1000\times1536} $である．
削除する層数は上位，中位，下位，それぞれの位置で4，6，8層とした．

学習及び推論は表\ref{spec} の環境で行った．

また，学習時のバッチサイズは4である．
なお，推論時間に初期化処理にかかる時間は含まれていない．また，推論時はバッチ処理を行わず，1文ずつ推論を行った．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 2
\begin{table}[b]
\input{05table02.tex}
\caption{学習環境}
\label{spec}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{使用データ}

実験で使用するデータ数を表\ref{ndata}に示す．学習と検証にはWebコーパスと新聞コーパスを混合した10,000文，2,000文をそれぞれ利用したが，テスト時はWebと新聞を分けて3,000文ずつテストを行った．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 3
\begin{table}[b]
\input{05table03.tex}
\caption{使用したデータ数}
\label{ndata}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

ただし，新聞コーパスはWebコーパスに比べ，1文のトークン数が長いものが多かったため，学習データが0に偏り，BERT，簡易小型化BERTともにfine-tuningでは学習が収束しなかった．そのため，fine-tuningに用いる新聞コーパスのうち，1文のトークン数がsubwordを含めて24個以下のもののみを使用した．テスト時のデータはトークン数で制限をかけていない．

Webコーパスはまざまなウェブ文書のリード（冒頭）3文に各種言語情報を人手で付与したテキストコーパスである．ウェブ文書のリード3文を収集することによって，ニュース記事，百科事典記事，ブログ，商用ページなど多様なジャンル，文体の文書を含んでいる．

新聞コーパスは毎日新聞の記事に各種言語情報を人手で付与したテキストコーパスである．95年1月1日から17日までの全記事，約2万文，1月から12月までの社説記事，約2万文，計約4万文に対して，形態素・構文情報を付与している．

どちらのコーパスにも付与されている言語情報は，形態素解析システムJUMAN，構文解析システムKNPで自動解析を行い，その結果を人手で修正したものである．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{ベースラインシステム}

提案手法の構文解析の性能と学習・推論時間を評価するために，通常12層の$\rm{BERT_{BASE}}$，KNP，またBERTベクトルの代わりにword2vec \cite{Mikolov1,Mikolov2,Mikolov3}を利用して分類する手法と比較する．
なお，word2vecを比較対象としたのは，BERTが出現する前の分散表現のスタンダードな手法であったため，その精度を比較するためである．
通常12層の$\rm{BERT_{BASE}}$には，前述のとおり，黒橋研究室が公開しているBERT日本語PretrainedモデルのBASE 通常版を利用する．
KNPはversion 4.2\footnote{\url{https://nlp.ist.i.kyoto-u.ac.jp/DLcounter/lime.cgi?down=https://nlp.ist.i.kyoto-u.ac.jp/nl-resource/knp/knp-4.20.tar.bz2&name=knp-4.20.tar.bz2}}を利用した．
word2vecには，日本語Wikipediaの2021年7月1日時点のダンプデータをjuman++のversion 2.0.0-rc3\footnote{\url{https://github.com/ku-nlp/jumanpp/releases/tag/v2.0.0-rc3}}を用いて基本句区切りにしたものを訓練データとして学習したモデルを利用した．学習にはgensimを使用した．学習時の各パラメーターは表\ref{w2v_param}の通りである．そのほかのパラメータは，gensimのデフォルト値を利用した．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 4
\begin{table}[t]
\input{05table04.tex}
\caption{word2vecの学習パラメーター}
\label{w2v_param}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

word2vecからのベクトルを利用して$score$を計算する際，BERTを利用した手法では768次元にしている$v_i$，$v_j$を，それぞれ200次元に変更した．そのため，BERTの出力ベクトルのかわりにword2vecを利用した手法では，
$U \in \mathbb{R}^{1000\times400} $である．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{実験結果}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{構文解析のテスト}

各モデルの2つのコーパスでのテスト結果を表\ref{model_results}および図\ref{jikken-bert}に示す．通常12層の$\rm{BERT_{BASE}}$ではWebコーパスで\textbf{94.67\%}，新聞コーパスで\textbf{95.68\%}となった．図\ref{jikken-bert}より，削除する層数を増やした場合でも，$\rm{BERT_{BASE}}$に比べ大きく正解率が落ちていないことが分かった．また，削除する層数にかかわらず，中位を削除したモデル（上位と下位を使用したとき）が高い正解率を維持していることが分かる．

各モデルの正解率の詳細は以下の通りである．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 5
\begin{table}[t]
\input{05table05.tex}
\caption{各モデルの正解率の詳細}
\label{model_results}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 4
\begin{figure}[t]
\begin{center}
\includegraphics{29-3ia5f4.pdf}
\end{center}
\caption{各モデルのテスト結果}
\label{jikken-bert}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

3～10層目を削除した合計4層のモデルが，Webコーパスで93.80\%，新聞コーパスで94.77\%であり，$\rm{BERT_{BASE}}$からの正解率の劣化をWebコーパスで0.87ポイント，新聞コーパスで0.91ポイントに押さえる結果となった．

$\rm{BERT_{BASE}}$と簡易小型化したBERTとの比較だけでなく，KNPとword2vecとも比較した結果を表\ref{model_results}および図\ref{jikken-knp-w2v}に示す．KNPは従来のKNPツールを利用したものであり，word2vecはBERTからの出力ベクトルの代わりにword2vecを利用して分類したものである．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 5
\begin{figure}[t]
\begin{center}
\includegraphics{29-3ia5f5.pdf}
\end{center}
\caption{word2vec，KNPとの比較結果}
\label{jikken-knp-w2v}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

図\ref{jikken-knp-w2v}の「下位4層削除」は先程の簡易小型化したBERTでWebコーパスの正解率が一番低かったもの，「上位4層削除」は簡易小型化したBERTで新聞コーパスの正解率が一番低かったものである．word2vecは日本語Wikipediaを基本句区切りにししたものを訓練データとして学習したモデルを利用した．

KNPに比べ，$\rm{BERT_{BASE}}$の方がWebコーパスで約6ポイント，新聞コーパスで約5ポイント正解率が良い結果となった．また，KNPを用いたときは，小型化BERTを用いた下位4層，8層削除モデルとほぼ同等の正解率を維持している．具体的には，Webコーパスでは，小型化BERTの中で最も正解率の低い下位4層削除モデルと比較して約1.6ポイント減，新聞では，小型化BERTの中で最も正解率の低い上位4層削除モデルと比較して約0.1ポイント減となっている．

BERT使った構文解析では，$v_i$と$v_j$をBERTからの出力ベクトルとして構文解析を行ったが，この$v_i$と$v_j$をBERTからの出力ベクトルではなく，word2vecで得たベクトルを利用した場合，$\rm{BERT_{BASE}}$よりも正解率がかなり落ちていることが分かる．
また，小型化BERTを用いた下位4層，8層削除モデルと比較しても，大きく正解率が落ちている．具体的には，Webコーパスでは，小型化BERTの中で最も正解率の低い下位4層削除モデルと比較して約11.7ポイント減，新聞では，小型化BERTの中で最も正解率の低い上位4層削除モデルと比較して約2.9ポイント減となっている．word2vecで得られる単語（基本句）のベクトルは文脈依存ではないことが，正解率に影響を与えていると考えられる．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 6
\begin{table}[b]
\input{05table06.tex}
\caption{各モデルの正解数と不正解数}
\label{detailed}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

また，参考として，表\ref{detailed}に各モデルの正解数と不正解数として，コーパスとモデルごとのFalse Positive，False Negative，True Positive，True Negativeを示した．
提案手法のうち，最も大きな数を太字で，最も小さな数をイタリックで示した．下位4層削除した場合にはコーパスにかかわらずFalse Positiveが増加していることなどが見て取れる．
なお，KNPは1文内でペアを作り，それらを係っているか/係っていないかを判別する方式で結果を出力できなかったため，正解数と不正解数に関しては示さなかった．
表\ref{RecallSoOn}に各モデルの適合率，再現率，F値を示す．
適合率はTrue Positive/(True Positive+False Positive)，再現率はTrue Positive/(True Positive+False Negative)，
F値は適合率と再現率の調和平均として計算した．なお，正解率は(True Positive+False Negative)/全用例数である．
なお，F値で比較しても，中位層の削除が最も性能が高いこと，下位4層の削除がWebコーパスで最も性能が低いこと
は変わらないが，新聞コーパスでは上位4層より下位4層を削除したほうが性能が悪化している．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 7
\begin{table}[b]
\input{05table07.tex}
\caption{各モデルの適合率，再現率，F値}
\label{RecallSoOn}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 8
\begin{table}[b]
\input{05table08.tex}
\caption{学習時間}
\label{train_time}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{学習・推論時間の結果}

次に学習・推論時間の結果について述べる．学習時間の結果は表\ref{train_time}の通りである．EarlyStoppingを採用したため，エポック数がモデルごとに異なる．そのため，1エポックの平均学習時間を比較している．結果より削除する層数が増えるほど，学習時間は短くなっていることが分かる．
また，収束のエポック数と，最高スコアを出したエポック数までの1epの平均学習時間から，収束時間のおおよその推定値を算出したものを表\ref{end_time}として示す．4，6，8層削除モデルは，それぞれ上位・中位・下位と3パターンで学習を行っているため，収束時間，エポック数ともに，3つのモデルの平均値である．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 9
\begin{table}[b]
\input{05table09.tex}
\caption{推測による収束時間}
\label{end_time}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

推論時間の結果は表\ref{predict_time}の通りである．学習時間と同じく，推論時間に関しても削除する層数が増えるほど，推論時間は短くなっていることが分かる．この時，新聞コーパスがWebコーパスよりも推論時間が長いのは，新聞コーパスの方が1文の平均トークン数が多いためである．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 10
\begin{table}[b]
\input{05table10.tex}
\caption{推論時間}
\label{predict_time}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

8層削除の合計4層モデルでは学習時間は83\%，推論時間はWebコーパスで65\%，新聞コーパスで85\%まで削減することができた．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 11
\begin{table}[b]
\input{05table11.tex}
\caption{各モデルの総パラメーター数}
\label{model_param}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

なお，KNPを用いたときは，推論時間に関してKNPはwebコーパスで4分2秒 ，新聞コーパスで 7分46秒と，BERTでの推論時間に比べて大幅に時間がかかっている．

また，各モデルの総パラメーター数は表\ref{model_param}の通りである．


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

図\ref{jikken-bert}の各モデルのテスト結果より，上位層と下位層を利用したとき，構文解析において高い正解率を維持しているため，上位層と下位層が構文情報を捉えていると考えられる．

関連研究ではBERTにおいて，\cite{poor}，\cite{tenney}は構文情報は下位層を含んでいると述べているが，\cite{jawahar}，\cite{hewitt}は中間層が構文情報を捉えていると述べている．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{各層ごとの正解率の差}

本研究において，BERTのどの層が構文情報を捉えているのか，より細かく調査するため，$\rm{BERT_{BASE}}$の中で11層を削除し，1層目から12層目まで1層ずつfine-tuningし実験を行った．新聞コーパスでのテスト結果を\mbox{図\ref{1_layer_news}}，Webコーパスでのテスト結果を図\ref{1_layer_web}に示す．図の縦軸がBERTで何番目の層を利用したかを表しており，縦軸一番下がBERTの1層目のみ使用，縦軸一番上がBERTの12層目のみを使用した結果である．横軸はテスト正解率である．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 6
\begin{figure}[b]
\begin{center}
\includegraphics{29-3ia5f6.pdf}
\end{center}
\caption{新聞コーパスを1層ずつテスト}
\label{1_layer_news}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

新聞コーパスは下位の層，上位の層が，5層から8層目の中間の層よりも正解率がいいことがわかった．一方でWebコーパスに関してはどの位置の層を削除しても同程度の正解率であった．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 7
\begin{figure}[b]
\begin{center}
\includegraphics{29-3ia5f7.pdf}
\end{center}
\caption{Webコーパスを1層ずつテスト}
\label{1_layer_web}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

今回利用したコーパスの平均トークン数と1文の平均未知語数は表\ref{data}に示す．新聞コーパスの方がWebコーパスに比べ，1文の平均トークン数が長く，それに伴い平均未知語数が多くなっている．このことから，コーパスの種類や，1文のトークン数と未知語数が多いことが，BERTが構文情報を捉える位置に影響を与えているのではないかと考えられる．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 12
\begin{table}[b]
\input{05table12.tex}
\caption{各テストコーパスの特徴}
\label{data}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

さらに詳しく分析するため，新聞コーパスをトークン長ごとに3つのグループに分けて，BERTを1層ずつfine-tuningしたモデルで実験を行った．具体的には，テストデータに利用した3,000件の新聞コーパスをトークン長を昇順に並び替え，短・中・長と3つのグループにそれぞれ1,000件ずつ分類した．グループごとの平均トークン長を表\ref{token_group}に示す．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 13
\begin{table}[b]
\input{05table13.tex}
\caption{トークン長ごとにグループ分け}
\label{token_group}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

短と中グループの結果を示した図\ref{text_min}，\ref{text_mid}では，それぞれ95\%ほどの正解率であるが，長グループの結果である図\ref{text_long}は，上位層と下位層では91\%を超えるが，中位層は91\%を下回った．これらの結果から，トークンが長い場合，BERTの中位層がうまく働かないことが見て取れる．なお，これらの差はカイ二乗検定により統計的に有意であった．
この結果は，図\ref{jikken-bert}の結果，つまり中間層を削除した場合が最も構文解析の正解率が保たれていることと一致している．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 8
\begin{figure}[t]
\begin{center}
\includegraphics{29-3ia5f8.pdf}
\end{center}
\caption{短グループのテストの正解率}
\label{text_min}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 9
\begin{figure}[t]
\begin{center}
\includegraphics{29-3ia5f9.pdf}
\end{center}
\caption{中グループのテストの正解率}
\label{text_mid}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{未知語と格による影響}

コーパスによって正解率の違いが出ることが分かったが，未知語の影響や層ごとによる構文情報の捉え方の違いを見つけるため，上位・中位・下位でそれぞれ4層ずつ層を削除したモデルで調査を行った．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 10
\begin{figure}[b]
\begin{center}
\includegraphics{29-3ia5f10.pdf}
\end{center}
\caption{長グループのテストの正解率}
\label{text_long}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



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

図\ref{correct_unk_percent}は，テストデータにおいて係り受けラベルの1を付与したペアを，モデルが正解だと予測したものにおいて，そのペア中に未知語がどのぐらい含まれているのか割合を調査した結果である．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 11
\begin{figure}[b]
\begin{center}
\includegraphics{29-3ia5f11.pdf}
\end{center}
\caption{正解ペアに含まれる未知語の割合}
\label{correct_unk_percent}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

図\ref{correct_unk_percent}より，上位層を削除するよりも下位層を削除する方が，正解とみなしたペアの中での未知語の割合が低いことがわかる．つまり，BERTは下位層より上位層の方が，語彙を利用して構文解析を行っており，下位層の方が語彙を利用していない分，未知語にロバストであるといえる．

次に各層を削除したことによる正解・不正解ペアの変化を調べた．
まず表\ref{correct_kaku}では各モデルにおいて，正解したペアに含まれる格パターンの出現割合が多い順に上位3件を示す．これは，テストを行ったとき正解したペアをKNPを使って格解析した結果である\footnote{係っていないペアの組み合わせについて，コーパス中に注記がないため，コーパスの結果ではなく，KNPの結果と比較した．}．例えば「自然は」が「美しい．」に係っているペアを，モデルが正解とみなしたとき，「自然は美しい．」をKNPで解析し，述語側に表示される格解析の結果を使用する．

結果，どのモデルにおいても，「ガ格」「ヲ格」「修飾」が上位を占めていた．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 14
\begin{table}[t]
\input{05table14.tex}
\caption{正解したペアに含まれる上位3件の格パターン（分類件数）}
\label{correct_kaku}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 15
\begin{table}[t]
\input{05table15.tex}
\caption{不正解だったペアに含まれる上位3件の格パターン（分類件数）}
\label{incorrect_kaku}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 16
\begin{table}[t]
\input{05table16.tex}
\caption{格の例}
\label{kaku_example}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

一方で，表\ref{incorrect_kaku}はテストの際，不正解とみなされたペアに含まれる格パターンである．表\ref{incorrect_kaku}でも先程の表\ref{correct_kaku}と同じように，「ガ格」「ヲ格」「修飾」が上位を占める結果となった．「ガ格」「ヲ格」「修飾」に分類された例は表\ref{kaku_example}に示している．

表\ref{correct_kaku}，\ref{incorrect_kaku}より，正解・不正解のどちらにおいても，層ごとに格に関しては差が出なかった．

以上のことから，BERTは層ごとで格について大きな違いがなかったが，下位層よりも上位層の方が，既知の語彙を考慮した構文解析を行っているのではないかと考えられる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}

本研究ではBERTの一部層を削除し，簡易小型化したBERTを用いることによる，
\pagebreak
日本語構文解析の正解率の差を調べた．結果，$\rm{BERT_{BASE}}$が両コーパスともに正解率が最も高いが，削除する層数が増えても，正解率にあまり差が出なかった．このとき上位層と下位層を利用するモデルが高い正解率を維持していることがわかった．また，削除する層数を増やすほど，学習・推論にかかる時間は短くなった．

BERTは格パターンについては，層ごとに捉え方による変化はなかったが，未知語と語彙による捉え方は層ごとに変化が出た．

今後の研究としては，コーパスを基本句区切りではなく形態素の区切りを使うことや，MeCabの区切りを利用した事前学習済みBERTを使うことなど，それぞれの区切りごとによる構文解析の正解率の差があるのかを調査すること．また，$\rm{BERT_{BASE}}$では上位と下位を利用することが今回の構文解析では有効であったが，$\rm{BERT_{LARGE}}$においても違いが出るのか，これらの点について今後調査していきたい．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\acknowledgment

本研究は JSPS 科研費 JP19K12093，18K11421，17KK0002 および
2021年度国立情報学研究所公募型共同研究 (2021-FC05) の助成を受けています．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{jnlpbbl_1.6}
\bibliography{05refs}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{biography}

\bioauthor{河野　慎司}{%
2019年茨城大学工学部情報工学科卒．2021年茨城大学大学院理工学研究科修了．
}

\bioauthor{古宮嘉那子}{%
2005年東京農工大学工学部コミュニケーション工学科卒．2009年同大学大学院博士後期課程電子情報工学専攻修了．博士（工学）．同年東京工業大学精密工学研究所研究員，2010年東京農工大学工学研究院特任助教，2014年茨城大学工学部情報工学科講師，2021年東京農工大学工学研究院准教授．現在に至る．自然言語処理の研究に従事．情報処理学会，人工知能学会，言語処理学会各会員．
}

\bioauthor{新納　浩幸}{%
1985年東京工業大学理学部情報科学科卒業．1987年同大学大学院理工学研究科情報科学専攻修士課程修了．同年富士ゼロックス，翌年松下電器を経て，1993年より茨城大学工学部．現在，茨城大学工学部情報工学科教授．博士（工学）．機械学習や統計的手法による自然言語処理の研究に従事．言語処理学会，情報処理学会，人工知能学会各会員．
}

\end{biography}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\biodate




\end{document}


