\section{はじめに}
固有表現抽出とは，文章中の固有表現の言及を検出し``人名''や``組織名''といった固有表現クラスへの分類を行う自然言語処理の基礎技術である．本技術は，質疑応答や機械翻訳といった技術への応用が期待される．固有表現抽出は近年の深層学習の発展により飛躍的な性能向上を遂げた\cite{li-etal-2020-dice,wang-etal-2021-automated}．しかし，固有表現抽出システムは人手で構築された学習データのもとに成り立っており，データ構築コストの高さが指摘されている\cite{NOTHMAN2013151}．近年では，より細かく固有表現を解析すべく，数種類の固有表現クラスに留まらず数百種類といった固有表現クラスに対して分類を行う細分類固有表現抽出の必要性が議論されている\cite{fg-ner-2018-empirical}．この場合，扱う固有表現クラスの数に伴い，学習データのラベル付けコストも高くなる．この問題を解決するため，Wikipedia記事のリンク構造を活用して学習データを自動生成することでコスト削減に取り組む研究が多く行われている\cite{richman-schone-2008-mining,nothman-etal-2008-transforming,NOTHMAN2013151,polyglot-2015,pan-etal-2017-cross,ghaddar-langlais-2017-winer,cao-etal-2019-low,strobl-etal-2020-wexea,Ling_Weld_2021,tedeschi-etal-2021-wikineural,malmasi-etal-2022-multiconer,tedeschi-navigli-2022-multinerd,strobl-etal-2022-enhanced}．WikipediaはWeb上で閲覧編集が可能な百科事典であり，膨大なエンティティの集合と，各エンティティを説明する記事からなる．記事中では出現した固有表現の言及に対して必要に応じてWikipedia内の他のエンティティを示すリンクが付与される．したがって，何らかの手段を用いて各エンティティに対して固有表現クラスを付与することで，リンク構造から固有表現抽出の学習データを自動生成することができる．先行研究では，Wikipedia記事に付与されているカテゴリーや，外部データにより各Wikipedia記事に対して付与されたカテゴリーを固有表現クラスに対応付けることで各エンティティの分類を行っている\cite{NOTHMAN2013151,polyglot-2015,ghaddar-langlais-2017-winer}．しかし，カテゴリーの定義と固有表現の定義が異なるため対応付けの際に分類誤りが発生するといった問題がある．Wikipediaのリンク構造は，リンク省略やNIL言及により固有表現抽出器の学習に用いるには不足している．\paragraph{リンク省略}Wikipediaでは，Wikipediaガイドラインにより多くのリンクが省略されている．本ガイドラインには，リンクが煩雑になることを防ぐために「同一エンティティを指す言及は初出の場合のみリンクする」といったルールが記載されている．例えば，記事中に言及「日本」が出現し，既に『日本』というエンティティにリンクしていた場合，以降の『日本』を指す言及へのリンクは省略される\footnote{例外として，記事中で重要と判断された場合，複数回リンクが付与される場合もある．}．また，「記事に紐づくエンティティの説明に重要であると判断される言及のみリンクする」といったルールも存在する．つまり，国名のように一般に認知されているエンティティに対するリンクが省略される場合がある．先行研究では，英語等の言語において固有表現の単語の先頭が大文字化されるといった表層的な言語特徴を活用したリンク検出\cite{nothman-etal-2008-transforming,richman-schone-2008-mining,NOTHMAN2013151,strobl-etal-2020-wexea,Ling_Weld_2021,tedeschi-etal-2021-wikineural,malmasi-etal-2022-multiconer}や，固有表現辞書を用いて検索を行いリンクを拡張する表層マッチ\cite{nothman-etal-2008-transforming,richman-schone-2008-mining,NOTHMAN2013151,polyglot-2015,ghaddar-langlais-2017-winer,strobl-etal-2020-wexea,Ling_Weld_2021,tedeschi-etal-2021-wikineural,tedeschi-navigli-2022-multinerd,strobl-etal-2022-enhanced}によりリンク省略に対応している．しかし，前者のような言語依存の特徴のほとんどが日本語には適用できない上，後者のような簡易的な表層マッチのみではカバー率の低下や，精度の低下といった問題が引き起こされる．\paragraph{NIL言及}固有表現の言及であるものの，紐づくエンティティがWikipediaに存在しない場合はリンクは付与されない．例えば，宮沢賢治の母親を指す言及「宮沢イチ」が出現した場合，Wikipediaには紐づく記事が存在しないため，リンクは付与されない．このような行き先のない言及を以下NIL言及と呼ぶ．NIL言及を無視してデータ構築を行った場合，本来ラベルがあるにも関わらずラベル無しと表示される偽陰性ラベルが混在してしまうため，データセットのカバー率が低下し，後続のモデル学習に悪影響を与える．先行研究では，外部辞書を用いた表層マッチ\cite{richman-schone-2008-mining,strobl-etal-2020-wexea}や深層学習による偽陰性ラベル検出\cite{pan-etal-2017-cross}，言語特徴や深層学習を用いた偽陰性ラベルを含む文のフィルタリング\cite{tedeschi-navigli-2022-multinerd}等の技術を開発し，解決に取り組んでいる．しかし，他言語で使用されるような辞書や言語特徴は直接日本語に適用できない上，簡易なラベル補完はノイズを増加させる危険性があり，フィルタリングは有用な教師情報を除去してしまうといった問題がある．本研究では，これらのリンク省略とNIL言及に対処するための言語非依存な手法を提案する．提案手法とともにWikipediaから固有表現抽出器を学習する工程を図\ref{fig:train_ner}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F1\begin{figure}[t]\begin{center}\includegraphics{31-3ia14f1.pdf}\end{center}\caption{本研究におけるWikipediaからの固有表現抽出器学習工程：◎は提案手法を示す．}\label{fig:train_ner}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%リンク省略に対処するため，Wikipediaガイドラインを活用した深層学習ベースのリンク拡張手法を提案する．本手法では，ガイドラインのうち「同一エンティティに関するリンクは初出の場合のみ付与する」というルールに着目する．これはすなわち，リンク以前の文章には同一エンティティを指す言及が存在しないことを意味している．この性質を利用することで，リンクが示す言及の単語とエンティティを正のペア，リンク以前の単語とエンティティを負のペアとして扱うことができるようになる．これらのペアから単語とエンティティのペアの判定を行う二値分類器を学習し，分類器により全ての単語に対して紐づくエンティティを予測することで省略されたリンクの補完を試みる．NIL言及に対処するため，文章中の期待エンティティ率(ExpectedEntityRate;EER)を推定する手法を提案し，固有表現抽出器の学習に推定値による制約を適用する．本手法では，各エンティティのリンク頻度と頻度ごとのエンティティ数の関係を近似することで，文章に含まれる固有表現の言及の割合を示す期待エンティティ率を推定する．エンティティ率を用いて学習時に制約を課し偽陰性ラベルの影響を軽減する手法\cite{effland-collins-2021-partially}に対して本推定値を適用することで，NIL言及の影響軽減を試みる．本研究では，リンク省略とNIL言及によるリンク不足の課題を独立して扱うため，エンティティに対する固有表現クラスの割り当てには人手により作成された正解ラベルを用いる．これにより，Wikipediaのカテゴリー等と固有表現クラスの紐付けにより発生する誤りから，提案手法による誤りを切り分けて検証することが可能になる．Wikipediaの構造化を行う森羅プロジェクト\cite{Sekine2019SHINRASW}では，日本語のWikipediaのおよそ8割の記事が，拡張固有表現階層\cite{sekine-etal-2002-extended}で定義されたカテゴリーに人手で分類されており，本研究ではこちらを用いる．{拡張固有表現階層はWikipediaを階層的に分類するための定義であり，本研究では``名前''以下の約200カテゴリーを固有表現クラスとして扱う．}性能の比較に評価データが必要であるため，本研究では日本語Wikinewsから収集されたニュース記事に対して人手によりラベルを付与することで評価データを作成する．本作業は，拡張固有表現に対する深い知識が求められるので，前述のWikipedia記事分類を行った作業者に対して依頼した．本研究で，構築された固有表現抽出器はJENER(JENER:JapaneseExtendedNamedEntityRecognizer)として公開している\footnote{\url{https://github.com/k141303/JENER}}．本論文の貢献は以下の通りである．\begin{itemize}\itemWikipediaのリンク省略に対処すべく，Wikipediaガイドラインを活用した深層学習ベースのリンク拡張手法を提案した．\itemWikipedia記事中の期待エンティティ率(EER)の推定手法を提案し，EERにより固有表現抽出器の学習に制約をかける既存手法を適用することで，NIL言及によるラベル欠落の影響を軽減した．\item日本語Wikinewsから収集されたニュース記事に対して人手でラベルを付与し，評価セットとして公開した\footnote{\url{https://github.com/k141303/WikinewsENER}}．\item日本語のように固有表現に関する表層的な特徴が少ない言語において，先行研究より高品質な固有表現抽出器の学習が可能であることを示した．\item予測結果の詳細な分析によりWikipediaのリンク構造を用いて固有表現抽出器を学習する際の更なる課題を示した．\end{itemize}以下に本論文の構成を示す．\ref{sec:related_works}節では，固有表現抽出とWikipediaを活用した固有表現抽出器学習手法について関連研究を紹介する．\ref{sec:data_and_preprocess}節ではWikipediaや拡張固有表現の説明と前処理に関しての記述を行う．\ref{sec:propose_1}節では，Wikipediaのガイドラインにより省略されたリンクを拡張するための手法を提案する．\ref{sec:eer_estimation}節では，NIL言及が学習に及ぼす影響を軽減するために，期待エンティティ率の推定を行う手法を提案し，既存手法により学習制約を適用する．\ref{sec:experiments}節では，実験に用いる評価セットの構築方法や，提案手法や比較手法の実験設定について記述し，\ref{sec:experiment_results}節で実際に固有表現抽出機を学習し，評価，考察する．\ref{sec:experiment_analy}節では，拡張したリンク，推定した期待エンティティ率，固有表現抽出器の予測誤りに関する分析と，学習データにおける頻度をもとにした分析を行い，続く\ref{sec:discussion}節でWikipediaから固有表現抽出器を学習する際の課題を整理する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S2
\section{関連研究}
\label{sec:related_works}本節では，\ref{subsec:related_ner}節で固有表現抽出全体における関連研究，\ref{subsec:related_wikipedia_ner}節でWikipediaのリンクを活用した固有表現抽出における関連研究を列挙する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S2.1\subsection{固有表現抽出}\label{subsec:related_ner}固有表現抽出\cite{ner-survay-2007,ner-survay-2020}は，文章中の固有表現の言及を検出し``人名''や``組織名''といった固有表現クラスに分類する技術である．固有表現抽出は，言及検出とクラス分類に分けて考えることができ，後者はエンティティタイピングとも呼ばれる．固有表現という概念はMUC-6\cite{grishman-sundheim-1996-message}で初めて認識され，同会議において，文章中の``人名''，``組織名''，``地名''，``通貨''，``時間表現''，``割合表現''を検出するタスクが実施された．以降，固有表現抽出は自然言語処理の重要技術として注目されており，IREX\cite{irex-2000}，CoNLL03\cite{conll-2003-introduction}，ACE\cite{ace-2004-automatic}等の様々なイベントが固有表現抽出を扱うタスクを開催している．固有表現抽出は主に数クラスを対象としているが，数十，数百といったクラスを扱う場合は，細分類固有表現抽出と呼ばれる．英語の固有表現抽出タグ付きコーパスに着目すると，OntoNotes\cite{ontonote-2013}は18クラス，BBN\cite{bbn-2005}は64クラス，EER\cite{nne-etal-2019-nne}は114クラス，FG-NER\cite{fg-ner-2018-empirical}は200クラスを対象としている．クラス定義は様々であるが，FG-NERは拡張固有表現階層\cite{sekine-etal-2002-extended}で定義された固有表現クラスを用いており，本研究でも同定義を使用する\footnote{現時点で最新の定義を用いるためFG-NERで使用された定義と多少異なる．}．日本語においても固有表現抽出の研究は盛んに行われており，タグ付きコーパスに着目すると，IREXが配布している新聞記事を対象としたIREXコーパスや，現代日本語書き言葉均衡コーパス\cite{bccwj-2014}と新聞記事を対象とした拡張固有表現タグ付きコーパス\cite{ene-ner-2008}，現代日本語書き言葉均衡コーパスを対象としたBCCWJ基本固有表現抽出コーパス\cite{iwakura-etal-2016-constructing}，Wikipediaを対象としたコーパス\cite{omi-2021-wikipedia}などが構築されている．拡張固有表現タグ付きコーパスは拡張固有表現階層をクラス定義として用いているが，過去の定義を用いており最新の定義との互換性が低いことから，本研究では本データは使用せず新しく評価データを作成する．近年の深層学習の発展により，固有表現抽出の性能は飛躍的に向上している．深層学習を用いて固有表現抽出を解く場合，各単語を分類する系列ラベリングの形に変換して解くことが一般的である．この場合，各ラベルはIOB2形式やBILOU形式に変換される．IOB2形式では，固有表現の開始を示す$\mathtt{B}$タグ，固有表現の継続を示す$\mathtt{I}$タグ，固有表現以外の範囲を示す$\mathtt{O}$タグが定義されており，$\mathtt{B,I}$タグは言及範囲の固有表現クラスと組み合わせて$\mathtt{B-xxx},\mathtt{I-xxx}$の様に使用される．BILOU形式では，IOB2形式に固有表現の終了を示す$\mathtt{L}$タグと固有表現が単一のトークンからなる場合に使用される$\mathtt{U}$タグが追加される．これらの形式の場合，例えば$\mathtt{O}$タグから$\mathtt{I}$タグへ遷移することはあり得ない．これらのタグ遷移に対して，深層学習モデルの出力に対して条件付き確率場(CRF)\cite{crf-2001}により制約をかける場合がある．本研究でも先行研究に倣いCRFを使用する．固有表現抽出の性能向上に貢献している深層学習モデルとして，Bi-LSTM\cite{bi-lstm-2013}などの再帰型ニューラルネットや，BERT\cite{devlin-etal-2019-bert}などのTransformer\cite{vaswani-2017-attention}をベースにしたニューラルネットがあげられる．また，性能向上はモデル構造の優位性のみではなく事前学習と呼ばれる技術によっても得られている．事前学習はWikipediaやウェブデータなどの大規模なコーパスを用いて言語特徴をモデルに教え込む手法であり，BERTの場合は文章中の隠された単語を当てるマスク言語モデリングという手法を用いて事前学習される．その性能の高さから本研究においても事前学習を行ったBERTを使用する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S2.2\subsection{Wikipediaのリンクを活用した固有表現抽出}\label{subsec:related_wikipedia_ner}固有表現抽出器の学習には多くの場合，ラベル付きデータセットが必要であるが，その構築コストの高さが問題視されている．そのため，Wikipediaのリンクを活用した固有表現抽出器の学習手法が十数年間で多く提案されてきた\cite{richman-schone-2008-mining,nothman-etal-2008-transforming,NOTHMAN2013151,polyglot-2015,pan-etal-2017-cross,ghaddar-langlais-2017-winer,cao-etal-2019-low,strobl-etal-2020-wexea,Ling_Weld_2021,tedeschi-etal-2021-wikineural,malmasi-etal-2022-multiconer,tedeschi-navigli-2022-multinerd,strobl-etal-2022-enhanced}．一覧を表\ref{table:pre_research_ner}にまとめる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T1\begin{table}[t]\input{14table01.tex}\hangcaption{Wikipediaを活用した固有表現抽出器の学習手法一覧．``D''は言語依存(Language``D''ependent)の手法，``A''は言語非依存(Language``A''gnostic)の手法を示す．``EL''はエンティティリンキングを示す．スペースの関係上，先行研究は省略表記している．対応する研究は次の通りである．R2008~\protect\cite{richman-schone-2008-mining}，N2008~\protect\cite{nothman-etal-2008-transforming}，N2013~\protect\cite{NOTHMAN2013151}，A2015~\protect\cite{polyglot-2015}，P2017~\protect\cite{pan-etal-2017-cross}，G2017~\protect\cite{ghaddar-langlais-2017-winer}，C2019~\protect\cite{cao-etal-2019-low}，S2020~\protect\cite{strobl-etal-2020-wexea}，L2021~\protect\cite{Ling_Weld_2021}，T2021~\protect\cite{tedeschi-etal-2021-wikineural}，M2022~\protect\cite{malmasi-etal-2022-multiconer}，T2022~\protect\cite{tedeschi-navigli-2022-multinerd}，S2022~\protect\cite{strobl-etal-2022-enhanced}．}\label{table:pre_research_ner}{\vskip-10pt}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Wikipediaのリンク構造から固有表現抽出器を学習する際，各リンク先のエンティティに固有表現クラスを付与する必要がある．また，Wikipediaのリンクはリンク省略やNIL言及により固有表現抽出器の学習に用いるには不足しており，その対策が必要である．先行研究では，Wikipedia記事に付与されているカテゴリーや，外部データにより各Wikipedia記事に対して付与されたカテゴリーを固有表現クラスに対応付けることで各エンティティの分類を行っている\cite{NOTHMAN2013151,polyglot-2015,ghaddar-langlais-2017-winer}．しかし，カテゴリーの定義と固有表現の定義が異なるため対応付けの際に分類誤りが発生するといった問題がある．本研究では，エンティティ分類の問題をリンク不足の問題と切り分けて考えるために，エンティティに対して人手でラベルを付与したデータを用いる．先行研究は，Wikipediaのリンク省略やNIL言及に様々な手法で対処しており，最も用いられている手法は表層マッチによるリンク拡張である．\citeA{nothman-etal-2008-transforming}は，タイトル，エイリアス，リダイレクト等からなる固有名辞書を用いて，表層マッチを適用することで省略されたリンクを補完している．一般的に表層マッチを適用した場合，文章中の固有表現ではない範囲が誤って検出されることにより，多くのノイズが含まれるといった問題がある．\citeA{nothman-etal-2008-transforming}は，英語では固有表現の各単語はキャピタライズ（つまり，単語の先頭が大文字化）されることに注目し，それらの単語のみをリンク拡張の対象とすることでノイズの混入を抑制している．後続研究の多くが同等の手法を継承している\cite{nothman-etal-2008-transforming,richman-schone-2008-mining,NOTHMAN2013151,polyglot-2015,ghaddar-langlais-2017-winer,strobl-etal-2020-wexea,Ling_Weld_2021,tedeschi-etal-2021-wikineural}．また，Wikipediaのリンクやリンクの表層文字列，タイトルは固有名の完全系を取る場合が多く，別名辞書内に短縮系が含まれないといった問題がある．そのため，タイトルを空白で分割し各単語を固有名辞書へ含める\cite{nothman-etal-2008-transforming,richman-schone-2008-mining,ace-2004-automatic,Ling_Weld_2021}，もしくはWordNetやYAGOKGなどの外部知識から得られた人名等のリストを固有名辞書に含める\cite{richman-schone-2008-mining,strobl-etal-2020-wexea}等の手法で対処される場合がある．また，その他の言語依存情報として，Mr.Mrs.等の敬称\cite{nothman-etal-2008-transforming,richman-schone-2008-mining,NOTHMAN2013151}，所有格\cite{nothman-etal-2008-transforming}，イニシャル\cite{richman-schone-2008-mining}などの言語情報を用い，ルール形式で固有表現クラスラベルを拡張する場合がある．いずれも言語に依存した知識を用いており，言語構造が大きく異なる日本語での適用は難しい．日本語では，Wikipediaから得られた固有名の辞書を固有表現抽出器の学習に用いる研究\cite{kazama-2008-web}があるが，辞書と表層マッチのみを用いており，リンク構造は使用していない．日本語に依存した言語特徴を用いてWikipediaのリンク不足への対処を試みた研究は我々の知る限りない．Stroblら\cite{strobl-etal-2022-enhanced}は，外部の固有表現抽出器であるCoreNLP\cite{manning-etal-2014-stanford}を使用することで，ノイズの問題を解決しているがツール自体が言語依存である．また，省略されたリンクやノイズを含む文章をフィルタすることで対応する場合もある\cite{NOTHMAN2013151,tedeschi-etal-2021-wikineural,malmasi-etal-2022-multiconer,tedeschi-navigli-2022-multinerd}．しかし多くの場合，いずれかの言語依存の情報を用いている．我々の知る限り，手法全体で言語依存の情報を使用せずに表層マッチを適用しているのは\citeA{tedeschi-navigli-2022-multinerd}のみである．この場合，表層マッチによるノイズと，短縮形を採用できないことによるカバー率の低下に対処する必要があるが，\citeA{tedeschi-navigli-2022-multinerd}は自己学習を用いることで，モデル予測と矛盾のあるノイズラベルのフィルタリングと，モデル予測によるラベルの拡張を同時に行い問題解決に取り組んでいる．表層マッチを用いた場合リンク先候補の衝突が発生する場合があるが，多くの場合，直近でリンクされたエンティティや，出現頻度の高いエンティティを採用することで解決している．\citeA{strobl-etal-2020-wexea}は，外部のエンティティリンキングツールを用いて衝突を回避している．しかし，同じくエンティティリンキングを用いる本研究とは異なり，NIL言及は考慮しておらず，候補が全て間違っていた場合もいずれかのエンティティが紐付けられる．また，先行研究の場合は，拡張可能なリンクは表層マッチの辞書内に制限されるため，我々の研究よりも拡張対象範囲が大幅に狭い．表層マッチを用いず言語非依存に対処している研究も存在する．\citeA{pan-etal-2017-cross}は文章に対して割り当てられた固有表現ラベルの信頼度を推定後，全てのラベルが閾値を超えている文章を初期セットとし，自己学習によりラベルを拡張している．\citeA{cao-etal-2019-low}はリンク省略やNIL言及の影響を含む文を分離し，信頼性の高いセットと，低いセットに分けることでこれらの問題に対処している．具体的には，信頼性の低いセットを用いてラベルが付与された範囲のみからモデルを事前学習したのち，信頼性の高いセットを用いて微調整を行っている．本研究では，表層マッチ，自己学習，ノイズ分離を先行研究を参考に実装し比較対象とする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3
\section{データと前処理}
\label{sec:data_and_preprocess}本節では主に本研究で使用するデータとその前処理に関しての説明を行う．\ref{subsec:wikipedia}節では{\linebreak}Wikipediaの説明とWikipediaダンプデータの前処理に関して，\ref{subsec:data_ene}節では拡張固有表現階層とWikipedia記事分類データ，追加の記事分類に関して説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.1\subsection{Wikipedia}\label{subsec:wikipedia}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.1.1\subsubsection{リンク構造}Wikipediaは非営利団体であるウィキメディア財団により運営されている自由に編集と閲覧が可能なオンライン百科事典である．Wikipediaは多くの言語を対象としており，そのうち日本語を対象とした記事は1,136,514件存在する\footnote{2019年01月21日時点のWikipediaダンプファイルによる統計．}．Wikipediaでは，記事中にWikipediaに含まれる他のエンティティに紐づく言及が出現した場合，内部リンクが付与される．例えば，「アメリカの作曲家．」という文章があった場合，「アメリカ」は『アメリカ合衆国』というエンティティにリンクされる．また，Wikipediaは固有名に留まらない幅広い内容を扱っており，「作曲家」も『作曲家』というエンティティにリンクされる．本研究では，これらの内部リンクを活用して固有表現抽出器を学習するが，Wikipediaでは多くの内部リンクが省略されており，そのまま学習データとして扱うことは難しい．リンク省略はWikipediaの編集ガイドラインに起因しており，以下のような言及に対するリンクが付与されない．\paragraph{出現済みの言及}Wikipediaでは同一のエンティティを指すリンクは，基本的に初出の場合にのみ付与される．2回目以降の出現の場合，多くのリンクが省略される．\paragraph{重要でない言及}Wikipediaでは編集者が記事の理解に重要でないと判断した言及はリンクされない．また，例えば「日本」や「アメリカ」といった国名などの，一般に認知されているエンティティを指す言及へのリンクは省略される場合がある．\paragraph{自己を参照する言及}Wikipediaでは自己記事を参照する言及はリンクされない．例えば，『日本』の記事中に，「日本」という言及が出現した場合，リンクは省略される．また，当然であるがWikipediaに存在しないエンティティを指すNIL言及に対するリンクは基本的には付与されない\footnote{今後の記事作成を見越して，タイトルのみの空のエンティティにリンクされる場合があるが，全体のリンクのうちかなり希少であるため本研究では対象外とする．}．これらの省略されたリンクやNIL言及の影響を軽減した上でモデルを学習する手法を考案する必要がある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.1.2\subsubsection{前処理}\label{subsubsec:wikipedia_prepro}Wikipediaでは，機械的に記事を収集するクローリングは禁止されており，Wikipedia上の情報を使用したい場合は，定期的に公開されているダンプファイルを使用することが推奨されている．本ダンプファイルはXML形式で記載されている．また，MediaWiki形式で記載されたCirrusSearchダンプも公開\footnote{\url{https://dumps.wikimedia.org/other/cirrussearch/}}されている．後者は前者と比較して前処理が容易であることから本研究ではこちらを使用する\footnote{本研究で用いるWikipedia分類データに合わせ，2019年1月21日時点のダンプを使用する．}．初めにCirrusSearchダンプに含まれるスクリプトやコメントといった余剰な情報を全て削除し，文章とリストと一部の表\footnote{\textless{}table\textgreater{}タグで囲まれた部分のみ残す．}のみ残す．Wikipediaにおいてリンクは[[アメリカ\textbar{}アメリカ合衆国]]といった表層文字とリンク先記事のペアで表される．ペアが同一表記の場合は片方は省略される．表層文字とリンク先記事タイトルが異なる場合，これらはタイトルの別名として扱うことができる．これらの表層文字から得られる別名をエイリアスと呼ぶ．エイリアスは本研究で使用しないが，先行研究の再現実験に必要であり，別途辞書として保持しておく．また，Wikipediaでは記事タイトルはユニークであるが，他のユニークな文字列でも同一の記事にアクセスすることができる．例えば，『アメリカ合衆国』の記事に対して「USA」でもアクセス可能である．これらはリダイレクトと呼び，こちらも先行研究の再現実験に必要であるので別途保持しておく．Wikipediaでは記事の最初が自己のエンティティを指す言及で始まる．これら言及は太字で強調されており，例えば，『アメリカ合衆国』の記事の場合，「\textbf{アメリカ合衆国}（アメリカがっしゅうこく，[[英語]]:UnitedStatesofAmerica）は，北アメリカに位置し...」のように表記される．最初に出現した太字強調を自己記事へのリンクとすることで，自己記事を参照する言及が省略される問題は，出現済みの言及が省略される問題として扱うことができる．また，エンティティの別の表記が存在する場合，上記例のように自己言及に続く括弧内に併記される場合がある．これらも機械的に自己リンクに変換する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T2\renewcommand{\tabularxcolumn}[1]{m{#1}}\begin{table}[tp]\input{14table02.tex}\caption{拡張固有表現階層カテゴリー一覧}\label{table:category_list}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.2\subsection{拡張固有表現階層}\label{subsec:data_ene}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.2.1\subsubsection{階層定義}拡張固有表現階層\cite{sekine-etal-2002-extended}は，固有名を階層的に分類するためのカテゴリー定義である．拡張固有表現階層は，ニーズに合わせて都度更新されており，階層構造の変更やカテゴリーの細分化などが行われている．後述する分類データが現時点で最新であるバージョン9.0を採用していることから，本研究でも同バージョンを使用する．本定義では，大枠として，``名前''，``時間表現''，``数値表現''を対象としている．その他に，Wikipediaのような知識ベースのエンティティを全て分類するために，一般名詞等を表すエンティティが割り当てられる``CONCEPT''や，曖昧性回避ページ等のメタ的な記事が割り当てられる``IGNORED''といった区分も存在する．本研究では``名前''以下の末端カテゴリーのみを対象とし，その他の区分はすべて単一の``OTHER''カテゴリーとして扱う．名前以下の末端カテゴリーは198件存在し，表\ref{table:category_list}に``名前''以下のカテゴリー階層を示す．4階層目は括弧内に表記している．4階層目が存在しない場合は3階層目が，3階層目以下が存在しない場合は2階層目が末端カテゴリーとなる．``生物呼称名＿その他''，``アドレス＿その他''，``電子メイル''カテゴリーを示すリンクがWikipediaに存在しないことから，本研究ではこれら3カテゴリーを除いた195カテゴリーを対象とする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.2.2\subsubsection{Wikipedia分類データ}\label{subsubsec:wiki_cls_data}Wikipediaから固有表現抽出器の学習を行うには，Wikipediaの各エンティティが固有表現クラスに分類されている必要がある．本研究は，リンク省略やNIL言及からなるリンク不足の解消のみを目的とするため，人手でWikipedia記事に固有表現クラスを付与したデータを用いる．Wikipediaの構造化を目標とする森羅プロジェクト\cite{Sekine2019SHINRASW}という取り組みにおいて，日本語のWikipediaが拡張固有表現階層の末端カテゴリーに分類されている．本データは公開されており，本研究ではこちらを使用する．以下，本データをWikipedia分類データと呼ぶ．Wikipedia分類データは，エンティティが他のエンティティの記事からリンクされている数を示す被リンク数が5以上のエンティティのみを対象としており，全件1,136,514件中920,444件が分類されている．ラベル付けは，人手でラベル付けされた少量のデータから学習した機械学習モデルにより対象データを分類した上で，再度人手で確認する形で行われている．基本的には，Wikipediaの各記事に対して単一のカテゴリーが割り当てられるが，一意に定まらない場合は複数のカテゴリーが付与される．例えば，『ハリー・ポッターと賢者の石』といった記事には，``映画名''，``書物名''カテゴリーが付与されている．全体のうち，18,246件(1.98\%)の記事に複数カテゴリーが付与されている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S3.2.3\subsubsection{追加分類}Wikipediaの各記事が分類されている場合，記事中のリンク先が指す固有表現クラスを参照することで，リンクを固有表現ラベルに変換可能である．その場合，Wikipediaの記事は全件分類されていることが望ましいので，深層学習モデルを用いて，未分類の216,070件に対して分類を行う．この時，すでに分類されているデータのうち500件を開発データとしてランダムにサンプリングし，残りを学習データとして切り分ける．分類モデルにはRoBERTa\cite{liu2020roberta}を採用する．使用するRoBERTaは\ref{subsec:experiment_model}節で説明するものと同じである．分類には各エンティティの記事の先頭510トークンを使用し，前後にそれぞれ特殊トークンである[CLS]，[SEP]を結合した計512トークンをRoBERTaに入力する．この際，入力長が512トークンに満たない場合は，特殊トークンである[PAD]をトークン列の末尾に追加することで長さを合わせる．学習は10エポック行う．各エポックごとに開発データを用いて評価を行い，評価値が最も高かったモデルを最終的な予測に使用する．評価は，各エンティティに対する予測カテゴリーが完全一致していたものを正解として扱い，その正解率を評価値とする．本問題は，各インスタンスに対して，複数のラベルが付く多クラス多ラベル分類であるため，各カテゴリーごとの多ラベル分類タスクとして扱い，損失関数には二値交差エントロピーを使用する．バッチサイズには200を使用し，最適化関数にはAdamを使用する\footnote{学習率には$5.0\times10^{-5}$を使用し，その他のパラメーターは$\epsilon=1.0\times10^{-8}$，$\beta_1=0.9$，$\beta_2=0.999$使用する．}．学習の結果，開発データにおける評価値は99.1\%であり，予測のうち5,839件(2.70\%)に複数のラベルが付与された．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4
\section{提案手法1：深層学習によるリンク拡張}
\label{sec:propose_1}本節では，編集ガイドラインにより省略されているWikipediaのリンクを拡張するための手法を説明する．リンク拡張の対象は，紐づくエンティティがWikipediaに存在する言及のみであり，紐づくエンティティがWikipediaに存在しないNIL言及に関しては\ref{sec:eer_estimation}節で扱う．提案するリンク拡張手法では，図\ref{fig:link_model}に示すような深層学習モデルを用いる．本モデルは，検索器，符号器，修正器からなる．検索器は入力トークンに対して最も類似するエンティティを検索する．図\ref{fig:link_model}の場合，入力トークンである$\{x_1(キム),x_2(タク),x_3(は)\}$に対して，それぞれ{\linebreak}$\{e_1(木村拓哉),e_1(木村拓哉),e_2(日本)\}$が予測されている．符号器はこれらのトークンとエンティティのペアの一致率を求める．図\ref{fig:link_model}の場合，それぞれのペアに対して$\{0.9,0.9,0.1\}$といった一致率が得られている．ここで，一致率0.5以上のトークンとエンティティを紐づけた場合，同一のエンティティを指す連続したトークン$\{x_1(キム),x_2(タク)\}$をエンティティ\mbox{$e_1(木村拓哉)$}へのリンクとして扱うことができる．しかし，検索器と符号器はリンクの言及範囲に関する情報を直接学習していないため，予測したリンクの言及範囲が誤っている場合がある．そのため，リンクの言及範囲を学習した修正器により，最終的なリンク範囲を決定する．図\ref{fig:link_model}の場合，修正器により$\{\mathrm{B,L,U}\}$タグが予測されており，$\{x_1(キム),x_2(タク)\}$と，$\{x_3(は)\}$をそれぞれ言及範囲として扱うことができる．符号器の結果と統合し，一致率が0.5以上である前者のみが有効なリンクとして出力される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F2\begin{figure}[b]\begin{center}\includegraphics{31-3ia14f2.pdf}\end{center}\caption{リンク拡張モデル概要}\label{fig:link_model}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%以下では，\ref{subsec:link_expantion_notation}節で使用する記号を定義したのち，\ref{subsec:link_expantion_search}節で検索器，\ref{subsec:link_expantion_match}節で符号器，\ref{subsec:link_expantion_modify}節で修正器のモデル構造と学習方法について解説を行う．最後に，\ref{subsec:link_expantion_model}節でリンク拡張モデル全体の学習とリンク拡張の流れについて説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.1\subsection{記号の定義}\label{subsec:link_expantion_notation}本小節では，リンク拡張の説明に用いる記号を定義する．各記号の一覧とその説明を表\ref{table:link_expantion_notation}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T3\begin{table}[b]\input{14table03.tex}\caption{リンク拡張に使用する記号一覧}\label{table:link_expantion_notation}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Wikipedia記事の集合を$\mathcal{A}=\{a_1,...,a_{|\mathcal{A}|}\}$と表す．ここで，$|\mathcal{A}|$は対象とする言語のWikipediaの記事数である．各記事は単語もしくはより細かく分割された単位であるトークンの列$a=\{x_1,...,x_{|a|}\}$で構成されており，ここで，$|a|$は各記事のトークン長である．Wikipediaに記事が存在するエンティティの集合を$E=\{e_1,...,e_{|\mathcal{A}|}\}$とし，Wikipediaに記事が存在しないエンティティ（NILエンティティ）の集合を$\overline{E}$と表す．Wikipediaの各エンティティ$e_i\inE$は，対応する説明文$a_i\in\mathcal{A}$によって一意に定義される．拡張固有表現階層の末端カテゴリーを$c$，その集合を$C$とする．Wikipediaのエンティティ$e$に付与されたカテゴリーの集合を$C_{e}\subsetC$と表す．ここで，$|C_e|\geq1$である．Wikipedia記事全体$\mathcal{A}$で既にリンクが付与されている言及集合を$M=\{m_1,...,m_{|M|}\}$，リンクが付与されていない言及集合を$\overline{M}=\{m_{|M|+1},...,m_{|M|+|\overline{M}|}\}$と表す．ここで$m=\{x_o,...,x_{o+|m|-1}\}$は言及に含まれるトークン列を示しており，$o$は言及の開始オフセット，$|m|$は言及トークン列長を表している．各リンクは言及と対応するエンティティのペア$(m,e)$で表す．Wikipediaに含まれるすべての固有表現の言及$|M|\cup|\overline{M}|$とそれらに紐づくエンティティからなるリンクの集合を$U=\{(m,e)\}$とする．ここで，$U$をオラクルリンク集合と呼ぶ．集合$U$は，既に付与されているリンクの集合$S=\{(m,e)\inU|m\inM\}$と付与されていないリンクの集合$\overline{S}=\{(m,e)\inU|m\in\overline{M}\}$からなる．$\overline{S}$は，Wikipediaに存在するエンティティ$e\inE$を指すリンクの集合$\overline{S}_{(\overline{M}\rightarrowE)}=\{(m,e)\in\overline{S}|e\inE\}$と，NILエンティティ$e\in\overline{E}$を指すリンクの集合$\overline{S}_{(\overline{M}\rightarrow\overline{E})}=\{(m,e)\in\overline{S}|e\in\overline{E}\}$からなる．リンク拡張の目的は，リンク$\overline{S}_{(\overline{M}\rightarrowE)}$を全て検出することである．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2\subsection{検索器}\label{subsec:link_expantion_search}検索器は，エンティティリンキングの手法を用いており，入力シーケンス$X=\{x_1,...,x_{|X|}\}$の各トークン$x$に最も類似するWikipediaのエンティティ$\hat{e}\inE$を検索する．検索器は，$x$と$E$を受け取り$\hat{e}$を返す関数$f_{\mathrm{search}}$として定義される．$$\hat{e}=f_\mathrm{search}(x,E)$$$x$が$\hat{e}$と完全に一致するかどうか，つまり$x$が省略されたリンク$(m,e)\in\overline{S}_{(\overline{M}\rightarrowE)}$であるかどうかは，\ref{subsec:link_expantion_match}節で説明する符号器により判定する．検索器はエンティティリンキング手法の一つであるデュアルエンコーダー\cite{gillick-etal-2019-learning}のスキームを参考にしている．デュアルエンコーダーは，言及$m$をベクトル$\boldsymbol{v}_m$に埋め込む言及エンコーダー$f_{\mathrm{m}}$とエンティティ$e$をベクトル$\boldsymbol{v}_e$に埋め込むエンティティエンコーダー$f_{\mathrm{e}}$からなり，ベクトル間類似度を用いて言及に紐づくエンティティの検索を行う技術である．各エンコーダーはトークン列$X=\{x_1,...,x_{|X|}\}$を受け取り，埋め込みベクトル列$V_X=\{\boldsymbol{v}_1,...,\boldsymbol{v}_{|X|}\}$を出力するようなモデルをベースにしている．近年はTransformer\cite{vaswani-2017-attention}で構成されたBERT\cite{devlin-etal-2019-bert}などのモデルが用いられており，本研究でもBERTを使用する．また，本研究では後述する理由により言及エンコーダーの代わりにトークンエンコーダーを用いる．以下では，\ref{subsubsec:token_encoder}節でトークンエンコーダー，\ref{subsubsec:entity_encoder}節でエンティティエンコーダーのモデル構造について説明し，\ref{subsubsec:vec_sim}節ではベクトル間類似度の計算方法について，\ref{subsubsec:dual_train_method}節では検索器の学習方法について説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2.1\subsubsection{トークンエンコーダー}\label{subsubsec:token_encoder}初めに，言及エンコーダーの説明を行い，エンティティリンキングと検索器の設定の違いを述べた後，トークンエンコーダーを導入する．言及エンコーダーは言及を受け取り，その埋め込みベクトルを出力するモデルである．言及エンコーダーは言及とその周辺文章からなるトークン列$$X_m=\{\mathtt{[CLS]},x_{o-\omega},...,x_{o-1},\mathtt{[START]},x_{o},...,x_{o+|m|-1},\mathtt{[END]},x_{o+|m|},...,x_{o+|m|+\omega},\mathtt{[SEP]}\}$$を入力に取り，以下の様に言及ベクトル$\boldsymbol{v}_m\in\mathbb{R}^{d_\mathrm{emb}}$を出力する．\begin{equation}\label{eq:mention_encoder}\boldsymbol{v}_m=\mathrm{red}(f_{\mathrm{m}}(X_m))\end{equation}$\mathtt{[CLS]},\mathtt{[SEP]}$はそれぞれ入力列の先頭と末尾に付与される特殊トークン，$\mathtt{[START]},\mathtt{[END]}$はそれぞれ言及の先頭と末尾に付与される特殊トークンを示す．$d_\mathrm{emb}$は埋め込み空間の次元サイズ，$\omega$は使用する周辺コンテキストの範囲を示す．$\mathrm{red}(\cdot)$は，$f_\mathrm{m}$の出力ベクトル列$V$からベクトル$\boldsymbol{v}_m$を抽出する関数を表す．多くの場合，$\boldsymbol{v}_m$には，$\mathtt{[CLS]}$に対応する出力ベクトル$\boldsymbol{v}_\mathtt{[CLS]}$や，$\mathtt{[START]},\mathtt{[END]}$に対する出力ベクトル$\boldsymbol{v}_\mathtt{[START]},\boldsymbol{v}_\mathtt{[END]}$の要素平均などが使用される．エンティティリンキングの設定では，学習時と予測時の両方において，エンティティ検索対象の言及範囲が与えられるため，その範囲のみエンコードすれば良い．しかし，検索器の設定では入力トークン全てに対して検索を行う必要があり，言及エンコーダーにより各トークンごとにエンコードすると計算コストが膨大になってしまう．本研究では代わりにトークンエンコーダーを使用する．トークンエンコーダーは各入力トークンに対する埋め込みベクトルを一度に生成する．トークンエンコーダーはトークン列$$X=\{\mathtt{[CLS]},x_1,...,x_{l_\mathrm{t}-2},\mathtt{[SEP]}\}$$を入力に取り，各単語ごとのベクトル列$V_X=\{\boldsymbol{v}_x\}\in\mathbb{R}^{l_\mathrm{t}\timesd_\mathrm{emb}}$を出力する．\begin{equation}V_X=f_{\mathrm{t}}(X)\end{equation}ここで，$l_\mathrm{t}$は入力シーケンス長である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2.2\subsubsection{エンティティエンコーダー}\label{subsubsec:entity_encoder}エンティティエンコーダーはエンティティを受け取り，その埋め込みベクトルを出力するモデルである．エンティティエンコーダーはエンティティの説明文からなるトークン列$$X_e=\{\texttt{[CLS]},x_1,...,x_{l_\mathrm{e}-2},\texttt{[SEP]}\}$$を入力に取り，エンティティベクトル$\boldsymbol{v}_e\in\mathbb{R}^{d_\mathrm{emb}}$を出力する．\begin{equation}\boldsymbol{v}_e=\mathrm{red}(f_{\mathrm{e}}(X_e))\end{equation}ここで，$l_\mathrm{e}$は入力シーケンス長である．$\boldsymbol{v}_e$には，各トークンの埋め込みベクトルの平均等も考えられるが，実装の簡素化のため本研究では\texttt{[CLS]}トークンに対する出力ベクトル$\boldsymbol{v}_\mathtt{[CLS]}$を用いる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2.3\subsubsection{ベクトル類似度}\label{subsubsec:vec_sim}トークンとエンティティの紐付けは，トークンベクトルとエンティティベクトル間の類似度$\psi_\mathrm{search}(x,e)$により行われる．類似度関数には内積やコサイン類似度が使用される場合が多く，本研究ではコサイン類似度を用いる．\begin{equation}\psi_\mathrm{search}(x,e)=\frac{\boldsymbol{v}_x\cdot{}\boldsymbol{v}_e}{\|\boldsymbol{v}_x\|\|\boldsymbol{v}_e\|}\end{equation}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.2.4\subsubsection{学習手法}\label{subsubsec:dual_train_method}検索器は，Wikipediaのリンク$(m,e)\inS$から学習する．この際，検索器は言及単位ではなくトークン単位で入力を扱うため，リンク$(m,e)$はトークンレベルのペア$\{(x_o,e),..,(x_{o+|m|-1},e)\}$に分解する．検索器は，トークンと紐づくエンティティの正例ペア$(x,e^+)$の類似度を最大化，トークンと紐づかないエンティティの負例ペアの類似度を最小化することで学習を行う．この時，正例ペアはリンクから得られるが，負例ペアは得られない．Wikipediaに含まれる$e^+$以外のエンティティの集合$\{e\inE|e\nee^+\}$を全て負例として使用することが考えられるが，これは計算コストの観点から現実的ではない．そのため，本研究では負例ペアの選択にバッチ内サンプリングとハードサンプリングを適用する．バッチ内サンプリングは，学習データからサンプリングされたバッチに含まれるエンティティ集合を負例として扱う手法である．$\mathcal{A}$からランダムにサンプリングされたバッチを$\mathcal{A}'\subset\mathcal{A}$とし，バッチ中に出現するリンクの集合を$S'\subsetS$とする．また，$S'$を構成する言及集合を$M'=\{m|(m,e)\inS'\}$，エンティティ集合を$E'=\{e|(m,e)\inS'\}$と表す．この時の，$E'$をバッチ内サンプルと呼び，正例$e^+$以外のエンティティ$E^-=\{e|e\nee^+,e\inE'\}$を負例として扱う．ハードサンプリングは，正例ペア$(m,e^{+})$に対してモデルが判定を誤りやすい負例$e^{-}$を学習時のサンプル$E'$に追加することで，学習中にモデルの判定誤り修正を効率化し，学習の高速化を図る手法である．本研究では，言及$m$のベクトル$\boldsymbol{v}_x$と全てのエンティティベクトル$V_E$の類似度を求め，$e^+$以外で最も類似度が高かったエンティティ$e^{-}$を$E^-$に追加する．\begin{equation}\label{eq:hard_negative}e^{-}=\underset{e\nee^+,e\inE}{\operatorname{argmax}}\\psi_\mathrm{search}(x,e)\end{equation}類似度の最適化は，以下の交差エントロピー誤差を最小化することで行う．，\begin{equation}\mathcal{L}_\mathrm{search}=-\frac{1}{|X_{M'}|}\sum_{x\inX_{M'}}{\sum_{e\inE'}{p(e|x)\mathrm{log}\left(\frac{\mathrm{exp}(\alpha\cdot\psi_\mathrm{search}(x,e))}{\sum_{e'\inE'}\mathrm{exp}(\alpha\cdot\psi_\mathrm{search}(x,e'))}\right)}}\end{equation}ここで，$X_{M'}=\{x|x\inm,m\inM'\}$は言及内のトークンの集合を表す．$p(e|x)$は真の確率分布であり，トークン$x$とエンティティ$e$が紐づく場合は1，それ以外は0となる．また，$\alpha$はスケール用の変数である．交差エントロピー誤差を用いるには，コサイン類似度の値の範囲$[-1,1]$は狭く学習に時間がかかるため，$\alpha$により範囲$[-\alpha,\alpha]$に拡張する．学習後の検索器では以下のようにして，入力シーケンスの各トークンに最も類似するエンティティを得ることができる．\begin{equation}f_\mathrm{search}(x,E)=\underset{e\inE}{\operatorname{argmax}}\\psi_\mathrm{search}(x,e)\end{equation}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.3\subsection{符号器}\label{subsec:link_expantion_match}符号器は，検索器により得られたトークンとエンティティのペアの一致率を出力する．符号器の学習は，二値交差エントロピー誤差の最小化により，正例ペアの一致率を$1$，負例ペアの一致率を$0$に近づけることで行われる．Wikipediaのリンクから正例ペアは得られるが，負例ペアは得られないため，Wikipediaのガイドライン等を活用した負例選択方法を提案する．符号器は，トークンとエンティティのペア$(x,e)$を受け取りその一致率$q(e|x)$を出力する．符号器では，トークンベクトル$\boldsymbol{v}_t$とエンティティベクトル$\boldsymbol{v}_e$から以下のように一致率$q(e|x)$を計算する．\begin{gather}\boldsymbol{v}_c=\frac{\boldsymbol{v}_x}{\|\boldsymbol{v}_x\|}\odot\frac{\boldsymbol{v}_e}{\|\boldsymbol{v}_e\|}\\\boldsymbol{h}_1=\mathrm{dropout}(\mathrm{tanh}(W_1^\mathsf{T}\boldsymbol{v}_c+\boldsymbol{b}_1))\\\boldsymbol{h}_2=W_2^\mathsf{T}\boldsymbol{h}_1+\boldsymbol{b}_2\\q(e|x)=\frac{\mathrm{exp}(h_{2,1})}{\mathrm{exp}(h_{2,0})+\mathrm{exp}(h_{2,1})}\end{gather}ここで，$\odot$はベクトルの要素積を表す．$W_1\in\mathbb{R}^{d_{\mathrm{emb}}\timesd_{\mathrm{match}}}$，$W_2\in\mathbb{R}^{d_{\mathrm{match}}\times2}$は線形層の重み行列，$\boldsymbol{b}_1\in\mathbb{R}^{d_\mathrm{match}}$，$\boldsymbol{b}_2\in\mathbb{R}^2$は線形層のバイアスベクトルであり，学習可能なパラメーターである．活性化関数としてtanh関数を，過学習の抑制のためdropout関数を使用している．符号器の学習は正例ペアの一致率を$1$，負例ペアの一致率を$0$に近づけることで行われる．学習に使用する正例ペア$(x,e)^+$はWikipediaの各リンク$(m,e)\inS$から得られるが，負例ペア$(x,e)^-$は得られない．入力シーケンス$X$におけるリンク範囲以外のトークンとエンティティのペア集合$\{(x,e)\inX\times\{e\}|x\notinm\}$を負例として扱った場合，$e$に関する省略されたリンク$(m,e)\in\overline{S}$により偽陰性ラベル$\{(x,e)\inX\times\{e\}|x\inm,(m,e)\in\overline{S}\}$が発生してしまう．本研究では，Wikipediaガイドラインやエンティティの特性，ハードサンプリングを活用し，表\ref{table:match_negative}に示すような負例を選択する．Wikipediaガイドラインの「同一のエンティティを指す言及に関しては基本的に初出の場合のみリンクする」という定義は，「リンクより後方にはリンクと同一のエンティティを指す言及が含まれる可能性があるが，リンクより前方の文章には同様の言及は含まれない」と解釈できる．つまり，初出のリンク$\{(x_o,e)^+,...,(x_{o+|m|-1},e)^+\}$より前のトークンとエンティティのペア集合$\{(x_i,e)^-|i<o\}$を負例として扱うことができる．例えば，表\ref{table:match_negative}のペア$(x_2(は),e_3(和光市))^-$などである．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T4\begin{table}[b]\input{14table04.tex}\hangcaption{符号器の学習における負例選択の例．$x_i(\cdot)$はトークンとその中身，$e_j(\cdot)$はエンティティとそのタイトルを示している．``リンク''はトークンにリンクが付与されているかどうかを示し，``初出''はそのエンティティに関するリンクが最初の出現であるかを示している．Tは正例ペア，Fは負例ペアを示す．$\mathrm{HN}(\cdot)$は式\ref{eq:hard_negative}と同等であり，言及に対する難しい負例を取得する関数を示す．}\label{table:match_negative}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%同一のエンティティを指すリンクの隣接はないと考えられるため，リンクの左右には同一エンティティを指す言及は出現しないと言える．そのため，リンクの左右をそれぞれ負例ペア$\{(x_{o-1},e)^-,(x_{o+|m|},e)^-\}$として扱う．例えば，表\ref{table:match_negative}のペア$(x_6(和光市),e_2(埼玉県))^-$などである．学習の効率化のため，検索器と同様に式\ref{eq:hard_negative}のハードサンプリングで得られた難しい例$e^-$も負例ペアとして扱う．例えば，表\ref{table:match_negative}のペア$(x_1(理研),\mathrm{HN}(x_1(理研)))$などである．上記の手順で$\mathcal{A}'$から得られたペア$(x,e)$の集合を$Z'$とすると，符号器は，以下の二値交差エントロピー誤差を最小化することで学習可能である．\begin{equation}\mathcal{L}_\mathrm{match}=\frac{1}{|Z'|}\sum_{(x,e)\inZ'}{-p(e|x)\mathrm{log}(q(e|x))-(1-p(e|x))\mathrm{log}(1-q(e|x))}\end{equation}ここで，$p(e|x)$は真の確率分布であり，トークン$x$とエンティティ$e$が紐づく場合は1，それ以外は0となる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.4\subsection{修正器}\label{subsec:link_expantion_modify}修正器は，リンクの言及範囲から学習することで，検索器と符号器によって得られたリンクの範囲を修正する．本研究では，修正器による範囲修正を系列ラベリング問題として解く．修正器は言及の範囲のみから学習できれば良いため，系列ラベルとしてBILOUタグから$\mathtt{O}$タグを除いたBILUタグを使用する．タグセットを$\mathcal{T}$，各タグを$t\in\mathcal{T}$として表す．言及範囲$\{x|x\inm,m\inM,x\in\mathcal{A}\}$のみから学習した場合，言及範囲以外$\{x|x\notinm,m\inM,x\in\mathcal{A}\}$のモデルの挙動が予測不可能であるが，誤検出は検索器と符号器によって棄却が期待できるため問題はない．修正器では，トークンベクトル$x$に対するタグ$t$の予測確率$q(t|x)$は線形層を使用し，以下のように得る．\begin{gather}\boldsymbol{h}_3=\mathrm{dropout}(\mathrm{tanh}(W_3^\mathsf{T}\boldsymbol{v}_x+\boldsymbol{b}_3))\\\boldsymbol{h}_4=W_4^\mathsf{T}\boldsymbol{h}_3+\boldsymbol{b}_4\\q(t|x)=\frac{\mathrm{exp}(h_{4,t})}{\sum_{t^*\in\mathcal{T}}\mathrm{exp}(h_{4,t^*})}\end{gather}ここで，$W_3\in\mathbb{R}^{d_\mathrm{emb}\timesd_\mathrm{modif}}$，$W_4\in\mathbb{R}^{d_\mathrm{modif}\times|\mathcal{T}|}$は線形層の重み行列，$\boldsymbol{b}_3\in\mathbb{R}^{d_\mathrm{modif}}$，$\boldsymbol{b}_4\in\mathbb{R}^{|\mathcal{T}|}$は線形層のバイアスベクトルである．両者とも学習可能なパラメーターである．バッチ$\mathcal{A}'$に含まれる言及集合を$M'$，言及を指すトークン列を$X'=\{x|x\inm,m\inM'\}$，トークン$x$に付与されたタグを$t_x$とする．修正器の学習は，以下の交差エントロピー誤差を最小化することで行う．\begin{equation}\mathcal{L}_\mathrm{modify}=-\frac{1}{|X'|}\sum_{x\inX'}\textrm{log}(q(t_x|x))\end{equation}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S4.5\subsection{リンク拡張モデル}\label{subsec:link_expantion_model}リンク拡張モデルでは，検索器，符号器，修正器を同時に学習する．リンク拡張を行う際は，処理の単純化のため修正器，検索器，符号器の順で拡張を行う．リンク拡張モデルは以下の誤差$\mathcal{L}$を最小化することで検索器，符号器，修正器を同時に学習する．\begin{equation}\mathcal{L}=\mathcal{L}_\mathrm{search}+\mathcal{L}_\mathrm{ene}+\mathcal{L}_\mathrm{match}+\mathcal{L}_\mathrm{modify}\end{equation}リンク拡張は，処理の単純化のため，先に入力シーケンスに対して修正器によりリンクの言及検出を行う．その後，検索器により言及に対してエンティティを紐付けることでリンクを生成し，符号器により有効なリンクのみを残すことで達成される．修正器と，BILUタグ列を受け取り言及に変換する関数$\mathrm{offset}(\cdot)$を用いて，入力シーケンス$X$に対する言及集合$\hat{M}=\{\hat{m}\}$を以下のように得る．\begin{equation}\hat{M}=\mathrm{offset}(\{\underset{t\in\mathcal{T}}{\operatorname{argmax}}\q(t|x)|x\inX\})\end{equation}この時，既にWikipedia上で付与されているリンクに重複する言及は削除する．$$\hat{M}=\{\hat{m}|\hat{m}\capm=\{\phi\},\hat{m}\in\hat{M},m\inM\}$$検索器$f_\mathrm{search}$と符号器の予測確率$q(e|x)$を用いて，予測言及$\hat{m}$を受け取り$\hat{e}$を返す$f_\mathrm{link}$を以下のように定義する．\begin{gather}\hat{e}=f_\mathrm{link}(\hat{m})\\f_\mathrm{link}(\hat{m})=f_\mathrm{search}(\underset{x\in\hat{m}}{\operatorname{argmax}}\q(f_\mathrm{search}(x,E)|x),E)\\q(\hat{e}|\hat{m})=\underset{x\inm}{\operatorname{max}}\q(f_\mathrm{search}(x,E)|x)\end{gather}複数トークンからなる言及にエンティティを付与する際，エンティティが競合する可能性が考えられる．この場合，最も高い一致率$q(\hat{e}|\hat{m})$を持つエンティティを採用する．最後に修正器による一致率$q(\hat{e}|\hat{m})$が0.5未満のリンクを棄却することで，最終的な予測リンク集合$\hat{S}_{(\overline{M}\rightarrowE)}$を以下のように得ることができる．\begin{equation}\hat{S}_{(\overline{M}\rightarrowE)}=\{(\hat{m},\hat{e})|q(\hat{e}|\hat{m})\geq0.5,\hat{e}=f_\mathrm{link}(\hat{m}),\hat{m}\in\hat{M}\}\end{equation}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5
\section{提案手法2：期待エンティティ率(EER)推定と固有表現抽出器学習}
\label{sec:eer_estimation}本研究では，Wikipediaに対応するエンティティが存在しないNIL言及に対処するため，Wikipediaにおける期待エンティティ率を推定する手法を提案する．推定値を既存手法である固有表現抽出の学習制約に適用することで，NIL言及が固有表現抽出器の学習に与える影響を軽減する．期待エンティティ率(ExpectedEntityRate;EER)とは，文章中における固有表現の言及を示すトークンの割合であり，不完全なデータセットから固有表現抽出器を学習するため，\citeA{effland-collins-2021-partially}により導入された．しかし，\citeA{effland-collins-2021-partially}は正しいラベルが付与された外部データセットから期待エンティティ率を測定した上で，不完全なデータセットに転用しており，言語やドメイン，固有表現クラスの定義が変わった場合には適用できないといった問題がある．本研究では既に付与されているWikipediaのリンクから，Wikipedia全体の期待エンティティ率を推定する手法を提案する．得られた推定値を\citeA{effland-collins-2021-partially}の手法に適用することでNIL言及によるラベル欠落の影響軽減を試みる．以下では，\ref{subsec:eer_expantion_notation}節で本節で用いる記号を定義したのち，\ref{subsec:eer_estimation}節で期待エンティティ率の推定手法，\ref{subsec:eer_ner_training}節で推定された期待エンティティ率を用いた固有表現抽出器の学習制約手法と深層学習モデル構造について説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.1\subsection{記号の定義}\label{subsec:eer_expantion_notation}特に記述のない場合，使用する記号は\ref{subsec:link_expantion_notation}節から引き継ぐ．初めに，観測可能なリンク$S\cup\hat{S}_{(\overline{M}\rightarrowE)}$をエンティティごとに集計し行列$G$を得る．この時，行列の要素$G_{i,j}$はエンティティ$e_i$を説明する記事$a_i\in\mathcal{A}$から，エンティティ$e_j$へのリンク数を示している．ここで，エンティティ$e_j$を受け取り，$e_j$が他の記事から参照された回数である被リンク数を返す関数$f_\mathrm{in}$は以下の様に定義される．\begin{equation}f_\mathrm{in}(e_j)=\sum_{i\nej}^{|\mathcal{A}|}{G_{i,j}}\end{equation}この際，参照元と参照先が同じエンティティである自己リンク数$G_{i,i}$は特異であるため除き，エンティティ$e_i$の自己リンク数を求める関数$f_\mathrm{self}$として以下のように別途定義しておく．\begin{equation}f_\mathrm{self}(e_i)=G_{i,i}\end{equation}被リンク数が$k$であるエンティティ数を返す関数$f_\mathrm{count}(k)$を以下の様に定義する．\begin{equation}f_\mathrm{count}(k)=\sum_{e\inE}\mathbbm{1}(f_\mathrm{in}(e)=k)\end{equation}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.2\subsection{期待エンティティ率推定}\label{subsec:eer_estimation}期待エンティティ率$\rho$は，オラクルリンク集合のトークン数（オラクルトークン数）を集計し，Wikipediaの総トークン数で割ることで導出できる．\begin{gather}\rho=\frac{\sum_{(m,e)\inU}|m|}{\sum_{a\in\mathcal{A}}|a|}\end{gather}提案手法では，いくつかの仮定のもと，被リンク数ごとのエンティティ頻度の関係を関数近似することで，オラクルトークン数を推定する．推定したオラクルトークン数を用いることで，期待エンティティ率が導出可能となる．オラクルトークン数の推定のため，以下の仮定を置く．\paragraph{仮定1}被リンク数が多いエンティティはWikipediaドメイン内で有名であると考え，エンティティ$e$の被リンク数$f_\mathrm{in}(e)$を$e$の有名度として扱うことができるとする．\paragraph{仮定2}Wikipediaでは一定以上に有名なエンティティは記事として追加されていると考え，以下の式が成り立つとする．\begin{gather}\foralle\inE,f_\mathrm{in}(e)\geq\Tilde{k}\end{gather}有名度がある値$\Tilde{k}$以上のエンティティであれば，対応する記事が必ずWikipediaに存在することを意味する．言い換えると，有名度が$\Tilde{k}$以上の区間にNILエンティティ$e\in\overline{E}$が存在しないことを意味する．\paragraph{仮定3}被リンク数$k$のエンティティに紐づくリンクの平均言及長は，$k$のみに依存するとする．つまり，観測可能なリンク$S\cup\hat{S}_{(\overline{M}\rightarrowE)}$から，観測不可能なリンク$\hat{S}_{(\overline{M}\rightarrow\overline{E})}$における$k$ごとの平均言及長を予測できるとする．ある被リンク数$k$を受け取り，平均言及長を返す関数$f_\mathrm{m\_ave}(k)$を以下のように定義する．\begin{equation}f_\mathrm{m\_ave}(k)=\frac{\sum_{(m,e)\inS\cup\hat{S}_{(\overline{M}\rightarrowE)}}[\mathbbm{1}(f_\mathrm{in}(e)=k)\cdot|m|]}{k\cdotf_\mathrm{count}(k)}\end{equation}仮定のもと，被リンク数$k$のエンティティに紐づくオラクル言及トークン数は以下のように計算できる．\begin{gather}\sum_{f_\mathrm{in}(e)=k,(m,e)\inU}|m|=k\cdotf_\mathrm{count}(k)\cdotf_\mathrm{m\_ave}(k)\label{eq:言及トークン数}\end{gather}だが，オラクルリンク集合$U$はNILエンティティに関するリンクを含むため，一部が観測不可能である．しかし，仮定により，被リンク数$\Tilde{k}$以上の区間にはNILエンティティを指すリンクは含まれないことから，$\Tilde{k}$以上の区間では式\ref{eq:言及トークン数}によりオラクル言及トークン数を計算可能である．被リンク数$\Tilde{k}$未満の区間を扱うため，NILエンティティ集合$\overline{E}$を使用し，被リンク数が$k$のエンティティ頻度を返す関数$\dot{f}_\mathrm{count}(k)$を以下のように定義する．\begin{gather}\dot{f}_\mathrm{count}(k)=\sum_{e\inE\cup\overline{E}}\mathbbm{1}(f_\mathrm{in}(e)=k)\end{gather}関数$\dot{f}_\mathrm{count}(k)$を用いることで，被リンク数$\Tilde{k}$未満の区間における被リンク数$k$のオラクル言及トークン数を以下のように計算できる．\begin{gather}\sum_{f_\mathrm{in}(e)=k,(m,e)\inU}|m|=k\cdot\dot{f}_\mathrm{count}(k)\cdotf_\mathrm{m\_ave}(k)\end{gather}最終的なWikipedia全体のオラクルトークン数は，自己リンクのトークン数も考慮した上で，以下のように計算できる．\begin{gather}\sum_{(m,e)\inU}|m|=\sum^{\mathrm{max}(k)}_{k=\Tilde{k}}(k\cdotf_\mathrm{count}(k)\cdotf_\mathrm{m\_ave}(k))+\sum^{\Tilde{k}-1}_{k=1}(k\cdot\dot{f}_\mathrm{count}(k)\cdotf_\mathrm{m\_ave}(k))+\sum_{e\inE}f_\mathrm{self}(e)\label{eq:オラクルトークン推定}\end{gather}本研究では，$\Tilde{k}$以上の区間での関数$f_\mathrm{count}$の振る舞いを何らかの関数$\hat{f}_\mathrm{count}$で近似することで，$\Tilde{k}$未満での関数$\dot{f}_\mathrm{count}$の振る舞いを予測し，オラクルトークン数を推定する．関数$f_\mathrm{count}$は，被リンク数とその頻度の関係を表しているが，Wikipediaでは，この関係がZipfの法則に従うことが知られている\cite{voss05measuring}．\citeA{voss05measuring}は，各記事が持つリンク，無効なリンクに関してもZipf則に従うことを示している．Zipfの法則とは，単語の出現頻度とその順位の積が定数になることを示した経験則であり，言語にとどまらない様々な頻度関係がZipfの法則に従うことが知られている．Zipfの法則を一般化した累乗関数に，$k$と$k_\mathrm{count}$の関係を適用すると以下のようになる．\begin{equation}\hat{f}_\mathrm{count}(k)=\alpha\cdotk^{-\beta}\end{equation}非リンク数が30以上のエンティティは全てWikipediaに追加されているとし，$\Tilde{k}\geq30$の区間を調べたところ，リンク拡張を施したWikipediaにおいても被リンク数$k$と頻度$f_\mathrm{count}(k)$の関係がZipfの法則に当てはまることが確認された．実際に，$k=[30,1000]$の区間から非線形回帰を行ったところ，$\alpha=3516323.8,\beta=1.80$となった．実測値と近似した関数$\hat{f}_\mathrm{count}$のグラフを図\ref{fig:zipf}に示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F3\begin{figure}[t]\begin{center}\includegraphics{31-3ia14f3.pdf}\end{center}\hangcaption{被リンク数ごとのエンティティ頻度の関係とZipfの法則に基づく近似関数：被リンク数は10,000まで描画しており，点線は近似に使用した被リンク数の区間$[30,1000]$を示す．}\label{fig:zipf}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Zipfの法則に基づき近似した関数$\hat{f}_\mathrm{count}$を使用して，式\ref{eq:オラクルトークン推定}により期待エンティティ率を計算したところ，$\hat{\rho}=0.238$であった．本研究ではこの値を使用する．元々のWikipediaのリンクにおけるエンティティ率と，リンク拡張後のエンティティ率を調べたところ，それぞれ$\hat{\rho}_\mathrm{orig}=0.101$，$\hat{\rho}_\mathrm{ext}=0.209$であった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S5.3\subsection{固有表現抽出器学習}\label{subsec:eer_ner_training}本研究では，NIL言及の影響を軽減するため，期待エンティティ率による学習制約を適用する．学習制約には先行研究\cite{effland-collins-2021-partially}の手法を用いる．しかし，先行研究と本研究では対象とする問題設定が異なるため，固有表現抽出モデルと損失関数に対して修正を加える．具体的には，先行研究は言及に対して単一の固有表現クラスが付与されることを想定しているが，本研究は複数の固有表現クラスが付与される場合があるため直接適用できない．そのため，本研究では固有表現抽出を言及の検出と分類に分けて考えることで解決している．先行研究と本研究における固有表現抽出モデルと損失計算の概要を図\ref{fig:ner_model}に示す．以下では，初めに先行研究をタスク設計，モデル構造，制約手法に分けて解説した後，問題設定の違いについて述べ，本研究のモデル構造と損失関数を解説する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F4\begin{figure}[t]\begin{center}\includegraphics{31-3ia14f4.pdf}\end{center}\caption{固有表現抽出モデルと損失計算工程:左は先行研究\protect\cite{effland-collins-2021-partially}，右は本研究を示す．}\label{fig:ner_model}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%先行研究では固有表現抽出を入力トークン列$X$に対してBILOU形式のタグ列$Y$を予測するタスクとして扱っている．\citeA{effland-collins-2021-partially}は，不完全ラベルから学習するため，BILOU形式のタグ集合$\mathcal{Y}=(\{\mathtt{B,I,L,U}\}\times\mathcal{C})\cup\{\mathtt{O}\}$に，ラベルが未知であることを示すタグ$\mathtt{UNK}$を加えたタグ集合$\mathcal{Y}_\mathcal{O}=\{\mathtt{UNK}\}\cup\mathcal{Y}$を用いている．ここで，$\mathcal{C}$は対象としている固有表現クラスの集合である．$\mathcal{Y}_\mathcal{O}$からなるタグ列を$Y_\mathcal{O}$と表す．先行研究ではモデルにBERT\cite{devlin-etal-2019-bert}とCRF\cite{crf-2001}を用いている．入力トークン列$$X=\{\mathtt{[CLS]},x_1,...,x_{l_\mathrm{n}},\mathtt{[SEP]}\}$$を受け取り，BERTにより得られた各トークンごとの埋め込みベクトル列$V_X=\{\boldsymbol{v}_x\}\in\mathbb{R}^{l_\mathrm{n}\timesd_\mathrm{emb}}$を出力する関数を$f_n$とする．\begin{gather}V_X=\mathrm{red}(f_\mathrm{n}(X))\end{gather}ここで，$l_\mathrm{n}$は入力シーケンス長，$d_\mathrm{emb}$は埋め込み次元である．また，$\mathrm{red}(\cdot)$は$f_\mathrm{n}$の出力ベクトル列から特殊トークン$\mathtt{[CLS]}$と$\mathtt{[SEP]}$に対するベクトルを除外する関数である．CRFは学習可能な重み$W=\{\boldsymbol{w}_y\}\in\mathbb{R}^{\mathcal{|Y|}\timesd_\mathrm{emb}}$と遷移スコア$T\in\mathbb{R}^{\mathcal{|Y|}\times\mathcal{|Y|}}$により構成され，以下の様に入力系列$X$に対するタグ列$Y$の予測確率$q(Y|X)$を出力する．\begin{gather}q(Y|X)=\frac{\mathrm{exp}\left(\sum_{i=1}^{l_\mathrm{n}-1}\phi(i,y_i,y_{i+1})+\phi(l_\mathrm{n},y_{l_\mathrm{n}})\right)}{Z(\phi)}\\Z(\phi)=\sum_{Y'\in\mathcal{Y}}\mathrm{exp}\left(\sum_{i=1}^{l_\mathrm{n}-1}\phi(i,y'_i,y'_{i+1})+\phi(l_\mathrm{n},y'_{l_\mathrm{n}})\right)\\\phi(i,y,y')=\phi(i,y)+T_{y,y'}\\\phi(i,y)=\boldsymbol{w}_y^\top\boldsymbol{v}_i\end{gather}ここで$Y'\in\mathcal{Y}$は，タグ集合$\mathcal{Y}$の順列により表現される全てのタグ遷移からタグ列$Y'$を順に取り出す操作を示す．先行研究における学習制約は損失関数により行われる．一般にCRFでは，トークン列$X$と固有表現タグ列$Y$のペアからなるバッチ$\mathcal{B}=\{(X,Y)\}$に対して，以下の損失関数により得られる誤差$\mathcal{L}_\mathrm{p}$を最小化することで学習を行う．\begin{gather}\mathcal{L}_\mathrm{p}=-\frac{1}{|\mathcal{B}|}\sum_{(X,Y)\in\mathcal{B}}\mathrm{log}\q(Y|X)\end{gather}先行研究では，バッチ$\mathcal{B}=\{(X,Y_\mathcal{O})\}$に対して誤差$\dot{\mathcal{L}}_\mathrm{eer}=\dot{\mathcal{L}}_\mathrm{p}+\dot{\mathcal{L}}_\mathrm{u}$を最小化することで学習制約を行う．$\dot{\mathcal{L}}_\mathrm{p}$はラベルが付与された範囲のみから学習を行う誤差で$\mathcal{L}_\mathrm{p}$を元に以下の損失関数により計算される．\begin{gather}\dot{\mathcal{L}}_\mathrm{p}=-\frac{1}{|\mathcal{B}|}\sum_d{(X,Y_\mathcal{O})\in\mathcal{B}}\mathrm{log}\q(Y_\mathcal{O}|X)\\\mathrm{log}\q(Y_\mathcal{O}|X)=\mathrm{log}\\sum_{Y'\modelsY_\mathcal{O}}q(Y'|X)\end{gather}ここで$Y'\modelsY_\mathcal{O}$は，タグ列$Y_\mathcal{O}$においてあり得る全てのタグ遷移からタグ列$Y'$を順に取り出す操作を示す．具体的には，実際のタグが未知であるタグ$\mathtt{UNK}$は$y\in\mathcal{Y}$のいずれでもあり得るとし，その全ての遷移を考慮する．$\dot{\mathcal{L}}_\mathrm{u}$は期待エンティティ率による制約を行う誤差で，以下の損失関数により計算される．\begin{gather}\dot{\mathcal{L}}_\mathrm{u}=\mathrm{max}(0,\mathrm{abs}(\hat{\rho}-\rho)-\gamma)\\\rho=-\frac{\sum_{(X,Y_\mathcal{O})\inB}\sum_{x\inX}\sum_{y\in\mathcal{Y}\backslash\{\mathrm{O}\}}q(y|x)}{\sum_{(X,Y_\mathcal{O})\inB}|X|}\end{gather}$\hat{\rho}$は\ref{subsec:eer_estimation}節で求められた期待エンティティ率，$\rho$はモデルの予測エンティティ率を示し，$\gamma$は，期待エンティティ率と本来のエンティティ率との差異を許容するマージンを示す．一般的な固有表現抽出タスクでは固有表現の言及に対して単一の固有表現クラスが割り当てられるため，CRFで扱うことは容易である．しかし，拡張固有表現階層では，言及に対して複数の固有表現クラスが割り当てられる場合があり，出力として単一のタグ列を想定するCRFで直接扱うことは難しい．そのため，本研究では図\ref{fig:ner_model}に示すように固有表現の言及検出と検出された言及の分類を分けて考える．言及検出は，入力トークン列$X$に対してBILOU形式のタグ列$Y$を予測するタスクとして解く．タグ集合は$\mathcal{Y}=\{\mathtt{B,I,L,O,U}\}$と，$\mathtt{UNK}$を追加した$\mathcal{Y}_\mathcal{O}=\{\mathtt{UNK}\}\cup\mathcal{Y}$である．この時，``名前''以下のカテゴリーが付与されていない，例えば``コンセプト''のみ付与された記事等へのリンクは$\mathtt{UNK}$ではなく，$\mathtt{O}$タグとして扱う．言及分類は言及区間の先頭トークンを各カテゴリーに分類する多ラベル分類タスクとして解く．言及検出と多ラベル分類を独立して解くために，トークンベクトル$\boldsymbol{v}_x\in\mathbb{R}^{d_\mathrm{emb}}$を$d_\mathrm{emb}/2$次元ずつに分割する．その後，線形層により再度$d_\mathrm{emb}$へと拡張し，言及検出用ベクトル$\boldsymbol{v}_x^\mathrm{det}\in\mathbb{R}^{d_\mathrm{emb}}$と，多ラベル分類用ベクトル$\boldsymbol{v}_x^\mathrm{bin}\in\mathbb{R}^{d_\mathrm{emb}}$を得る．\begin{gather}\boldsymbol{v}_x^\mathrm{det}=\mathrm{dropout}(\mathrm{tanh}(W_5^\mathsf{T}\boldsymbol{v}_{x[:d_\mathrm{emb}/2]}+\boldsymbol{b}_5))\\\boldsymbol{v}_x^\mathrm{bin}=\mathrm{dropout}(\mathrm{tanh}(W_6^\mathsf{T}\boldsymbol{v}_{x[d_\mathrm{emb}/2:]}+\boldsymbol{b}_6))\end{gather}ここで，$W_5\in\mathbb{R}^{d_{\mathrm{emb/2}}\timesd_\mathrm{emb}}$，$W_6\in\mathbb{R}^{d_{\mathrm{emb/2}}\timesd_\mathrm{emb}}$は線形層の重み行列，$\boldsymbol{b}_5\in\mathbb{R}^{d_\mathrm{emb}}$，$\boldsymbol{b}_6\in\mathbb{R}^{d_\mathrm{emb}}$は線形層のバイアスベクトルであり，学習可能なパラメーターである．言及検出は$\boldsymbol{v}_x$の代わりに$\boldsymbol{v}^\mathrm{det}_x$を入力とし，前述のCRFを適用する．言及分類では，各トークン$x$があるカテゴリー$c$に属する確率$q(c|x)$とカテゴリー集合$C_x$に属する確率$q(C_x|x)$はトークンベクトル$\boldsymbol{v}_x^\mathrm{bin}$を使用して次のように計算する．\begin{gather}\boldsymbol{h}_7=W_7^\mathsf{T}\boldsymbol{v}_x^\mathrm{bin}+\boldsymbol{b}_7\\q(c|x)=\frac{1}{1+e^{-h_{7,c}}}\\q(C_x|x)=\frac{\sum_{c\inC_x}\mathrm{exp}(h_{7,c})}{\sum_{c'\inC}\mathrm{exp}(h_{7,c'})}\end{gather}ここで，$W_7\in\mathbb{R}^{d_\mathrm{emb}\times|C|}$は線形層の重み行列，$\boldsymbol{b}_7\in\mathbb{R}^{|C|}$は線形層のバイアスベクトルであり，学習可能なパラメーターである．バッチ$\mathcal{B}$に含まれる言及集合を$M'$，言及の先頭トークンのみで構成されるトークン列を$X''=\{x|x=m_0,m\inM'\}$とし，各トークン$x$に付与されるカテゴリー集合を$C_x$とする．クラス分類では以下の誤差$\mathcal{L}_\mathrm{b}$と$\mathcal{L}_\mathrm{m}$を対象とする．\begin{gather}\mathcal{L}_\mathrm{b}=-\frac{1}{|X''|}\sum_{x\inX''}w_c\cdot\{p(c|x)\cdot\mathrm{log}\q(c|x)+(1-p(c|x))\cdot\mathrm{log}(1-q(c|x))\}\label{eq:loss_b}\\p(c|x)=\mathbbm{1}(c\inC_x)\\\mathcal{L}_\mathrm{m}=-\frac{1}{|X''|}\sum_{x\inX''}\mathrm{log}(q(C_x|x))\label{eq:loss_m}\end{gather}ここで，$w_c$は各カテゴリー$c$ごとの重みであり，ロングテールなカテゴリー分布に対処するために導入される．$w_c$は学習データ全体におけるカテゴリー$c$の出現数を求める関数$\mathrm{count}(c)$を用いて以下の様に計算される．\begin{gather}w_c=\frac{\underset{c'\inC}{\operatorname{max}}\\mathrm{count}(c')}{\mathrm{count}(c)}\end{gather}固有表現クラスに拡張固有表現階層を用いる場合，各言及$m$の先頭トークン$x$に対して1つ以上のカテゴリーが必ず付与される．最終的な予測カテゴリー$\hat{C}_x$は次のように得る．\begin{gather}\hat{C}_x=\left\{\begin{array}{ll}\underset{c\inC}{\{\operatorname{argmax}}\p(c|x)\}&(\mathrm{bin}(x)=\{\phi\})\\\mathrm{bin}(x)&(\mathrm{bin}(x)\neq\{\phi\})\end{array}\right.\\\mathrm{bin}(x)=\{c|p(c|x)\geq0.5,c\inC\}\end{gather}最終的なモデルの学習は以下の誤差$\mathcal{L}_\mathrm{eer}$の最小化により行われる．\begin{gather}\mathcal{L}_\mathrm{eer}=\lambda_\mathrm{p}\dot{\mathcal{L}}_\mathrm{p}+\lambda_\mathrm{u}\dot{\mathcal{L}}_\mathrm{u}+\mathcal{L}_\mathrm{b}+\mathcal{L}_\mathrm{m}\label{eq:loss_eer}\end{gather}$\lambda_\mathrm{u}$は先行研究でも使用される期待エンティティ率の制約を調節する重みである．トークンレベルの確率の負の対数尤度$\mathcal{L}_\mathrm{b},\mathcal{L}_\mathrm{m}$と比較して，トークン列レベルの確率の負の対数尤度$\mathcal{L}_\mathrm{p},\dot{\mathcal{L}}_\mathrm{p}$は非常に大きな値を取る．これらのバランスの調節に，本研究では重み$\lambda_\mathrm{p}<1$も導入する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6
\section{実験}
\label{sec:experiments}本節では，実際に日本語Wikipediaから固有表現抽出器を学習し評価するための，様々な設定について説明する．以下では，\ref{subsec:eval_dataset}節で評価用データセットの構築について，\ref{subsec:experiment_model}節で本実験で用いる深層学習モデルについて，続く\ref{subsec:experiment_link}節と\ref{subsec:experiment_method}節でそれぞれリンク拡張手法，固有表現抽出器学習手法の実験設定について記述する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.1\subsection{評価データセット}\label{subsec:eval_dataset}日本語拡張固有表現抽出器の評価を行うべく，評価セットを構築した．拡張固有表現階層を固有表現クラスとして採用した評価セットとして拡張固有表現タグ付きコーパス\cite{ene-ner-2008}が存在するが，採用している階層定義が古く，本研究で使用する最新の定義と互換性が低いため，直接転用することは難しい．本研究では，ウェブ上で自由に編集と閲覧が可能なニュースサイトである日本語版Wikinewsの記事に対して人手でラベルを付与することで評価セットを構築した．WikinewsはライセンスにCCBY2.5を採用しており，有償の文章を対象とする前述のコーパスとは異なり，無償で配布可能であるといった利点がある．利点を活かすべく，本研究では評価データを無償公開している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T5%%%%%\renewcommand{\tabularxcolumn}[1]{m{#1}}\begin{table}[b]\input{14table05.tex}\caption{Wikinewsカテゴリー一覧}\label{table:wikinews_categories}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Wikinewsでは各記事に対して階層構造を持つカテゴリーが付与されている．表\ref{table:wikinews_categories}に日本語Wikinewsのトップカテゴリーとサブカテゴリーの一覧を示す．評価セットには，幅広い文章が含まれていることが望ましいので，各サブカテゴリーに属する記事から2件ずつサンプリングした．Wikinewsではトップカテゴリーを跨いで複数のサブカテゴリーを付与することが許可されており，通常のサンプリングを行った場合，例えば訃報といった記事数の多いサブカテゴリーに偏る可能性がある．従って，本研究ではサンプリングの際に単一のサブカテゴリーに属する記事を優先的に選択した．ラベル付けは，拡張固有表現階層の定義書を参考に行った．しかし，定義書は主にWikipedia記事を固有表現カテゴリーに分類するために定義されており，固有表現抽出に対しては十分ではない．それゆえ，以下の新たな定義を導入した．\begin{enumerate}\item言及範囲が曖昧な場合全体が固有名として認められるかどうかを考慮し決定する．例えば「東京五輪」は全体が固有名として認められるため，まとめて``競技会名''が付与されるが，対象的に「日本代表」は全体が固有名として認められず「日本」のみに``国名''が付与される．\item固有表現に対して複数のカテゴリーが考えられる場合は最も文脈に合致するカテゴリーのみを選択する．優劣が付けられない場合のみ，複数のカテゴリー付与が認められる．\item文脈から判断されるカテゴリーと固有名が持つカテゴリーの両方が考えられる場合は固有名として新しく定義されているかを考慮し決定する．例えば，野球における日本代表が「侍ジャパン」として表記されている場合は新規に固有名として定義されているため``競技団体名''が付与されるが，「日本」として表記されている場合は新規に固有名として定義されているとはいえず，元々の固有名が持つ``国名''が付与される．\end{enumerate}ラベル付けは，拡張固有表現階層を熟知している必要がある．従って，\ref{subsubsec:wiki_cls_data}節で説明した拡張固有表現階層の分類データ作成に携わっているメンバーにラベル付けを依頼した．作業は，各記事に対して2人割り当て，片方が記事全体に対してラベル付けを行った後，片方が確認を行う形で進めた．ラベル付けを行った結果，198件の記事に対して5,984個の固有表現ラベルが付与された．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.2\subsection{深層学習モデル}\label{subsec:experiment_model}本研究では全ての実験で同一のBERT-baseとCRFを使用する．baseサイズでは，全ての埋め込み次元は$d_\mathrm{emb}=756$となる．BERTは，RoBERTa\cite{liu2020roberta}と同様の手法で，日本語Wikipediaを使用して事前学習を行う．トークナイザーにはMeCabのPythonラッパーであるjanomeとBPEを使用する．BPEは日本語Wikipediaからマージ数10,000で学習する．BERTの語彙数は24,000とする．学習時のバッチサイズは1,024とし，最適化関数にはAdamを使用する．学習率は$4.0\times10^{-4}$，その他のパラメーターは$\epsilon=1.0\times10^{-6}$,$\beta_1=0.9$,$\beta_2=0.98$を使用し，パラメーターの更新回数は500,000回とする．学習は，fairseq\footnote{\url{https://github.com/facebookresearch/fairseq}}を使用して行う．事前学習済みBERTは別途公開\footnote{\url{https://github.com/k141303/liat_ml_roberta}}している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.3\subsection{リンク拡張手法の実験設定}\label{subsec:experiment_link}本研究では深層学習によるリンク拡張を用いて固有表現抽出データセットの構築を行う．提案手法の比較対象として，リンク拡張を使用しないベースラインと表層マッチによるリンク拡張を実装する．以下に，表層マッチと提案手法の実験設定について明記する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.3.1\subsubsection{表層マッチ}\label{subsubsec:experiment_link_surf}省略されたリンクを表層マッチにより補完することで，固有表現抽出データセットを作成する．表層マッチを行うために，\ref{subsubsec:wikipedia_prepro}節で説明したWikipediaのタイトルとリダイレクト辞書，エイリアス辞書を使用する．この際，エイリアスはノイズを含む場合があるため，2回以上使用されたエイリアスのみエイリアス辞書に追加する．日本語では人名が苗字もしくは名前のみといったように省略表記される場合がある．そのため，次のようにエイリアス辞書の拡張を試みる．Wikipediaでは人名記事の場合，「木村拓哉」のように記事の先頭に姓名が空白で分割され表記される．これらをエイリアス辞書に追加することで拡張を行い省略表記に対処する．リンク省略は多くの場合，既にリンクしたエンティティに関するリンクの省略により発生する．誤ったマッチによるノイズを軽減するため，リンク拡張の対象は文章中で既にリンクされているエンティティのみとし，リンク以後の文脈に対してマッチを行う．この場合，「日本」などの周知のエンティティを指す言及のリンク省略に対処できないため，Stroblら\cite{strobl-etal-2020-wexea}を参考に，被リンク数の多い記事上位1,000件のタイトル，リダイレクト，エイリアスを特例として全ての記事でマッチ対象とする．優先順位は，(1)記事内リンクのタイトルとリダイレクト，(2)記事内リンクのエイリアス，(3)上位記事のタイトルとリダイレクト，(4)上位記事のエイリアスとする．表層マッチによる候補の衝突は，優先順位が高い候補を採用し，同順位の場合は最長一致の候補を採用する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.3.2\subsubsection{提案手法}リンク拡張に使用するトークンエンコーダー$f_\mathrm{t}$とエンティティエンコーダー$f_\mathrm{e}$にはそれぞれ個別のBERTを用いる．トークンエンコーダーの入力長は$l_\mathrm{t}=256$，エンティティエンコーダーの入力長は$l_\mathrm{e}=128$とする．符号器と修正器で用いる線形層の次元にはそれぞれ$d_\mathrm{match}=d_\mathrm{emb}\times2$，$d_\mathrm{modif}=d_\mathrm{emb}$を用いる．学習時のバッチサイズは160とし，コサイン類似度のスケール変数は$\alpha=32$とする．最適化関数にはAdamを使用し，学習率は$5.0\times10^{-5}$，その他のパラメーターは$\epsilon=1.0\times10^{-8}$,$\beta_1=0.9$,$\beta_2=0.999$を使用する．パラメーターの更新は学習データ3周分行う．ハードサンプリングを行うためには全エンティティの埋め込みが必要であるが，各ステップにおいて全エンティティのエンコードを行うことは計算コストの点から現実的ではない．そのため基本的にはステップごとのエンコードを行わず，エンティティ埋め込みには事前に計算したキャッシュが用いられる．本研究ではキャッシュの更新頻度は500ステップとする．また，学習初期はハードサンプリングを用いる必要がないため，4,000ステップ以降に開始する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.4\subsection{固有表現抽出器学習手法の実験設定}\label{subsec:experiment_method}本研究ではNIL言及によりラベルが欠落したデータセットから学習するため，期待エンティティ率の推定を行いその推定値を用いてモデルを学習する．比較手法として，通常の学習を行うベースラインと自己学習，ノイズ分離の実装を行う．モデルはBERT-base\cite{devlin-etal-2019-bert}とCRF\cite{crf-2001}を使用する．特に明示しない場合モデルの入力長は$l_\mathrm{n}=512$とする．学習に期待エンティティ率を使用しない場合，モデルの学習は誤差$\mathcal{L}_\mathrm{crf}$を最小化することで行われる．\begin{gather}\mathcal{L}_\mathrm{crf}=\lambda_\mathrm{p}\mathcal{L}_\mathrm{p}+\mathcal{L}_\mathrm{b}+\mathcal{L}_\mathrm{m}\end{gather}全ての実験で，$\lambda_\mathrm{p}=0.1$を用いる．以下では，自己学習，ノイズ分離の解説を行ったのち，提案手法の実験設定について説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.4.1\subsubsection{自己学習}自己学習は，学習済みのモデルの予測を活用して再度モデルを学習する手法である．研究では，Tedeschiら\cite{tedeschi-etal-2021-wikineural,tedeschi-navigli-2022-multinerd}の手法を参考に実装する．この手法では，モデルの予測を用いて繰り返しデータセットを修正することでラベルの欠落に対処する．手法の流れをアルゴリズム\ref{alg:self_training}に示す．2行目と7行目はデータセットから重複なくランダムにサブセットを抽出する操作を示す．3行目，8行目$\mathrm{train}(\cdot)$は，サブセットを受け取り学習済みモデルを返す関数である．7行目$\mathrm{modify}(\cdot)$は，学習済みモデルとサブセットを受け取り，ラベル補完とフィルタリングを適用した修正済みサブセットを返す関数である．ラベル補完は，元のデータにない固有表現がモデルの予測に含まれた場合に適用される．その場合はラベルの欠落があったとして，データにラベルを追加する．フィルタリングは，元データに存在する固有表現がモデルの予測に含まれなかった場合に適用される．その場合は，元データが誤っているとして，特定の範囲を修正後のサブセットから除外する．先行研究ではフィルタリングを文章中の文単位に適用しているが，計算コストが膨大になることから，本研究ではモデルの入力長を128トークンとし，入力全体をフィルタリング範囲とする．本実験では，全体の学習回数を5回とし，$n/5$件のデータが各ステップでサンプリングされる．モデルはベースラインと同様に事前学習済みBERTとCRFを用いる．最適化関数にはAdamを使用し，学習率は$3.0\times10^{-5}$，その他のパラメーターは$\epsilon=1.0\times10^{-6}$,$\beta_1=0.9$,$\beta_2=0.999$を使用する．バッチサイズは800とし，各ステップの学習は10エポック行う．この際，開発データでの評価値が最良のモデルを採用する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Al1\makeatletter\renewcommand{\ALG@name}{アルゴリズム}\makeatother%%%%%\begin{figure}[!t]\begin{algorithm}[t]\input{14algo01.tex}\caption{~自己学習}\label{alg:self_training}\end{algorithm}%%%%%\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.4.2\subsubsection{ノイズ分離}ノイズ分離は，データセットにおけるノイズや欠落の少ない信頼できるサブセットを推定し，モデルの学習を行う手法である．本研究では，ラベル精度と文章中のラベルカバー率を用いてサブセットを推定する\citeA{cao-etal-2019-low}の手法を参考に実装する．本手法はWikipediaのカテゴリー情報を用いて各記事を半自動的に固有表現クラスに分類しており，その過程で多くの分類誤りが含まれる可能性がある．そのため，結果としてデータセットに誤った固有表現ラベルが含まれることとなる．そのため，彼らはラベルの精度として，言及中のトークン$x$がある固有表現クラス$y$に属する確率$p(y|x)$を導入している．しかし，本研究では多くの記事は人手により分類されており分類誤りに起因するラベルノイズが少ないことからラベル精度は用いず，ラベルカバー率のみを用いてサブセットを推定する．ラベルカバー率$\xi$は，ラベルが多く付与されているデータはラベル欠落が少なく信頼性が高いと考えられるため導入されており，ラベルが未知であることを示す$\mathtt{UNK}$タグを含むラベル列$Y_\mathcal{O}$から以下のように求められる．\begin{gather}\xi=\frac{\sum_{y\inY_\mathcal{O}}\mathbbm{1}(y\neq\mathtt{UNK})}{|Y_\mathcal{O}|}\end{gather}Caoらは2段階の学習を採用しており，初めに信頼性の低いサブセットを用いてラベルが付与された範囲のみからモデルを事前学習した後，信頼性の高いサブセットでモデルを再学習している．本研究では$\xi$をデータ信頼性として考え，信頼性の低い9割のデータを事前学習に，残りの1割のデータを通常学習に使用する．事前学習では，式\ref{eq:loss_eer}から$\dot{\mathcal{L}}_\mathrm{u}$の項を除いた誤差を最小化する．最適化関数にはAdamを使用し，学習率は$3.0\times10^{-5}$，その他のパラメーターは$\epsilon=1.0\times10^{-6}$,$\beta_1=0.9$,$\beta_2=0.999$を使用する．バッチサイズは400とし，各学習は10エポック行う．この際，開発データでの評価値が最良のモデルを採用する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S6.4.3\subsubsection{提案手法}期待エンティティ率による制約を調節する重みは，先行研究\cite{effland-collins-2021-partially}において経験的に検証された値である$\lambda_u=10$を用いる．推定された期待エンティティ率に対して，より厳密な制約をかけるため，本来のエンティティ率との差を許容するためのマージン用変数$\gamma$は用いない．つまり，$\gamma=0.0$とする．最適化関数にはAdamを使用し，学習率は$3.0\times10^{-5}$，その他のパラメーターは$\epsilon=1.0\times10^{-6}$,$\beta_1=0.9$,$\beta_2=0.999$を使用する．バッチサイズは400とし，学習は10エポック行う．この際，開発データでの評価値が最良のモデルを採用する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7
\section{結果}
\label{sec:experiment_results}本節では，提案手法や比較手法の評価とその考察を行う．以下では，\ref{subsubsec:nomal_eval}節で評価データ全体に対する評価と考察を行ったのち，更なる比較のため\ref{subsubsec:hierarcal_eval}節と\ref{subsubsec:category_eval}節では拡張固有表現の階層ごととカテゴリーごと，\ref{subsubsec:domain_eval}節では評価データのドメインごとに評価し考察を行う．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7.1\subsection{全体評価}\label{subsubsec:nomal_eval}リンク拡張手法と学習手法はそれぞれ独立して使用することができるため，全ての組み合わせで学習と評価を行う．Wikinewsデータセットでの評価結果を表\ref{table:score_table}に示す．ここで，評価値はマイクロ平均F1であり，精度(P)と再現率(R)も併記している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T6\begin{table}[b]\input{14table06.tex}\caption{Wikinewsデータセットにおける固有表現抽出評価結果[\%]}\label{table:score_table}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{table:score_table}より，深層学習によるリンク拡張手法と，期待エンティティ率(EER)の推定による学習手法を組み合わせた場合の評価値が最も高く，提案手法の優位性が見て取れる．学習手法をEER推定に固定し，深層学習による拡張を拡張無しと比較すると評価値が15.7ポイント向上しており，ノイズの少ないリンク拡張が実現できていることが分かる．リンク拡張手法を深層学習に固定し，EER推定をベースラインと比較すると評価値が3.2ポイント向上しており，リンク拡張手法で補完できなかったリンクの影響を学習手法により軽減できていることがわかる．自己学習もベースラインと比較して評価値で1.2ポイントの向上を得ているが，EER推定の向上には及ばない．また，自己学習は学習と予測を繰り返すため計算コストが高く，特に今回のように大規模なコーパスを用いる場合は，計算コストの面でもEER推定の方が優位である．表層マッチを拡張無しと比較した場合，全体的に再現率の向上は見られるものの精度が大幅に低下しており，ベースライン以外の学習手法との組み合わせにおいて評価値が低下している．これは，周辺文章を無視した表層文字列のみでのリンク拡張が誤ったラベルを多く生成しており，後続の学習手法へ大きな負の影響を与えているためと考えられる．ノイズ分離は，表層マッチと組み合わせた場合に他の学習手法と比較して最も良い評価値であるが，深層学習による拡張と組み合わせた場合は最も低い評価値となっている．これは，手法自体にノイズ耐性があることを示しているが，深層学習によるリンク拡張で得られるようなノイズの少ないデータセットを対象とした場合は性能を発揮できないことを示している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7.2\subsection{階層別評価}\label{subsubsec:hierarcal_eval}拡張固有表現階層はその名の通り階層構造を持っており，本研究では末端のカテゴリーを固有表現クラスとして採用している．末端カテゴリーから上位のカテゴリーを辿ることが可能なため，実用時に詳細なカテゴリー分類が必要ない場合，固有表現抽出器の予測を上位のカテゴリーに集約して使用することが可能である．例えば末端カテゴリーの一つである``都道府県郡州名''カテゴリーは``名前''\verb|>|``地名''\verb|>|``GPE''\verb|>|``都道府県郡州名''のように上位カテゴリーを持ち，2階層目のカテゴリーを用いる場合は``地名''に集約することができる．実際に上位階層のカテゴリーに集約した場合の性能を評価するため，本節では階層別の評価を行う．末端カテゴリーは4階層目まであり，より上位の1,2,3階層目における評価を行った結果を表\ref{table:level_score}に示す\footnote{4階層目での評価は表\ref{table:score_table}の通常評価と同じであるためそちらを参照する．}．階層が上位であるほどカテゴリーは抽象的になり，分類対象のカテゴリー数が減るため解くべき問題は容易になる．また，1階層目では根ノードである``名前''カテゴリーに全て集約されるため，言及分類の必要がなく，言及検出のみの評価となる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T7\begin{table}[t]\input{14table07.tex}\caption{Wikinewsデータセットにおける階層別固有表現抽出評価結果}\label{table:level_score}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%提案手法同士の組み合わせは他の組み合わせと比較していずれの階層でも最良の評価値を保持しており，提案手法の一貫した優位性が表れている．提案手法同士の組み合わせに着目すると，1階層目での評価値は76.7\%，4階層目の評価値は67.3\%であり，その差分は9.4ポイントである．本差分は末端階層までの言及誤分類による評価値の低下を示している．評価値は1階層目と2階層目の間の区間で4.5ポイント，2階層目と3階層目の間で3.5ポイント，3階層目と4階層目の間で1.4ポイント低下している．これらの言及誤分類に関しては\ref{subsec:analy_classification_error}節で分析する．また，1階層目での提案手法の再現率は73.6\%である．つまり，全ての固有表現のうち73.6\%を検出できており，残りの26.4\%が言及検出漏れとなる．この言及検出漏れに関しては\ref{subsec:analy_detection_error}節で分析する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7.3\subsection{カテゴリー別評価}\label{subsubsec:category_eval}本節では，カテゴリー別に手法を評価する．評価は2階層目のカテゴリーを対象とし，マイクロ平均F1を算出する．この際，\ref{subsubsec:hierarcal_eval}節の階層別評価とは異なり上位カテゴリーへの置き換えは行わない．評価値を表\ref{table:category_score_table}に示す．評価データ頻度は各カテゴリーに属する固有表現が評価データに出現した回数を示す．``名前＿その他''，``色名''カテゴリーは評価データに出現しないため省略されている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T8\begin{table}[t]\input{14table08.tex}\hangcaption{Wikinewsデータセットにおけるカテゴリー別固有表現抽出評価結果[\%]：各評価値はマイクロ平均F1を示す．}\label{table:category_score_table}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%提案手法同士の組み合わせは，``組織名''，``プロダクト名''において最も優れた性能を示している．また，``地名''や``組織名''も最良の組み合わせと同等の性能である．これらのカテゴリーでは特に提案手法を用いる意義があると言える．リンク拡張手法に着目すると，表層マッチは\mbox{``人名''}，``生物呼称名''，``病気名''において深層学習による拡張より優れている．これらのカテゴリーの固有表現は表層文字列が特異的であると考えられ，表層マッチ時に正しいラベルのみを特定しやすいため優れた結果となっていると推測される．しかし，``人名''の場合は，表層マッチは姓名分割といった言語依存の処理を使用しているため，言語非依存に処理を行う提案手法より有利であることに注意する必要がある．上記のカテゴリー以外では，表層マッチは深層学習による拡張より大きく劣っていることから，表層文字列といった言語依存特徴に強く依存する手法の限界が見える．また，拡張無しは，``神名''において深層学習による拡張より優れているが，評価データに十分な量のラベルが存在しないため評価が難しい．学習手法に着目すると，EER推定は``イベント名''，``自然物名''，``病気名''でその他の学習手法より劣っている．これらのカテゴリーは，\ref{subsec:analy_train_dist}節で学習データにおける頻度的な視点から分析する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S7.4\subsection{ドメイン別評価}\label{subsubsec:domain_eval}本節では，表\ref{table:wikinews_categories}に示すWikinewsのトップカテゴリーをドメインとして扱いドメイン別評価を実施する．評価結果を表\ref{table:domain_score_table}に示す．各評価値は，その他の実験と同様にマイクロF1平均である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T9\begin{table}[t]\input{14table09.tex}\caption{Wikinewsデータセットにおけるドメイン別評価結果[\%]：各評価値はマイクロ平均F1を示す．}\label{table:domain_score_table}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{table:domain_score_table}よりいずれのドメインにおいても提案手法同士の組み合わせが最良値を得ており，提案手法の優位性が伺える．特に気象や学術，政治において評価値が高く，構築された固有表現抽出器はこのような専門性の高いドメインで特に活用できる可能性がある．対照的に社会やスポーツ，ひとといったドメインでは評価値が低いが，これは\ref{subsec:analy_detection_error}節で分析する``地位職業名''や``称号名＿その他''，``人名''カテゴリーにおける言及検出漏れに関連している．最良値の次に良い値と比較した場合，政治カテゴリーでは評価値が7.1ポイント向上，文化カテゴリーでは評価値が3.0ポイント向上しており，特に提案手法を用いる意義があると言える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S8
\section{分析}
\label{sec:experiment_analy}本章ではより詳細な提案手法の分析を行う．以下では，\ref{subsec:リンク拡張}節で拡張されたリンクに関して，\ref{subsec:analy_eer}節で任意の期待エンティティ率を使用した場合の評価値の推移に関して，\ref{subsec:analy_classification_error}節で提案手法により言及を拡張固有表現階層に分類する際の誤りに関して，\ref{subsec:analy_detection_error}節で提案手法における言及の検出漏れに関して，\ref{subsec:analy_train_dist}節で評価値と学習データのラベル頻度の関係に関して分析する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S8.1\subsection{リンク拡張手法}\label{subsec:リンク拡張}本小節ではリンク拡張手法の分析を行う．分析のため，拡張したリンクから100件をランダムにサンプリングし人手で評価を行った．結果を表\ref{table:リンク人手評価}に示す．各手法によるリンク拡張後のエンティティ率も併記している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T10\begin{table}[t]\input{14table10.tex}\hangcaption{リンク拡張人手評価結果とエンティティ率：リンク精度は検出範囲と紐づくエンティティが正しいリンクの割合，固有表現クラス精度は検出範囲と紐づくエンティティの固有表現クラスが正しいリンクの割合を示す．}\label{table:リンク人手評価}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{table:リンク人手評価}より，提案手法は非常に高い精度でリンクを拡張できていることが分かる．固有表現クラス精度は91.0\%であり，非常に高い精度で固有表現抽出器の学習データを生成できていることがわかる．誤りを分析したところ，マイナーなエンティティがWikipediaに存在しない場合に，拡大解釈されたエンティティが紐づけられる例が目立った．例えば，「交通アクセス：岐阜バス「岐阜保健短大」バス停留所で下車」の「岐阜保健短大」はバス停を示すエンティティだが，短期大学を示すエンティティ『岐阜保健短期大学』に紐づいている．また，「1929年・『汗』:監督内田吐夢」の「汗」は映画を示すエンティティだが，哺乳類の分泌液を示す『汗』に紐づいている．本問題の解決のため，より厳密な符号器を考案する必要がある．表\ref{table:リンク人手評価}より，表層マッチのリンク精度が非常に低いことがわかる．誤りを分析したところ，「1978年4月録音」の「月」が衛星を示す『月』に紐づく，「1984年4月23日-」の「日」が国を示す『日本』に紐づく，短い固有名による誤りが特に目立った．これらは品詞情報を用いることで改善できるが，品詞解析には言語依存のツールが必要である．エンティティ率を見ると，表層マッチは提案手法よりも多くのリンクを拡張している．だが，誤ったリンクを含まないエンティティ率をリンク精度から推測すると表層マッチは0.131であり，これは提案手法の0.194よりもかなり低い数値である．提案手法は，表層マッチよりも高い精度で，より多くの正しいリンクを拡張できることが示されている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S8.2\subsection{期待エンティティ率の影響}\label{subsec:analy_eer}本研究では，Wikipediaの被リンク数を活用してデータセットの期待エンティティ率を推定し，先行手法\cite{effland-collins-2021-partially}を用いて学習中に制約をかけることでNIL言及の影響軽減を試みている．本推定値の妥当性を確認するため，期待エンティティ率を手動で操作し，先行手法を適用した場合の結果について調査する．期待エンティティ率$\hat{\rho}$を$\{0.05,0.10,0.15,0.20,0.25,0.30\}$のいずれかの数値に設定し学習を行った結果を表\ref{table:change_eer}に示す\footnote{入力にエンティティが含まれない状況は想定していないため$\rho=0.0$は実験していない．}．実験で得られた推定値$\hat{\rho}=0.238$を使用した結果も表記している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T11\begin{table}[t]\input{14table11.tex}\hangcaption{提案手法における期待エンティティ率を変化させた場合の評価値の推移[\%]：下線は実験で用いた推定値を示す．}\label{table:change_eer}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{table:change_eer}より，最良値は$\hat{\rho}=0.2$を用いた場合であるものの，提案手法による推定値$\hat{\rho}=0.238$以下で評価値に大きな差はなく，推定値より大きい場合に大きく評価値が下がり始めていることが分かる．先行研究\cite{effland-collins-2021-partially}でも，オラクルエンティティ率\footnote{正解データから計測された値．}以下の値を用いれば性能がほぼ変わらないことが報告されている．本実験でも同様の現象が起きていることから，推定した期待エンティティ率の妥当性は高いと考えられる．しかし，得られた結果からはエンティティ率推定による性能向上は得られない可能性が示唆されている．推定値の有効性を示すためには，制約手法におけるハイパーパラメーターの妥当性の検証や，新たな制約手法を考案する必要がある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T12\begin{table}[t]\input{14table12.tex}\caption{提案手法予測の混同行列：0の場合はハイフン(---)で示し，対角成分には下線を付与している．}\label{table:confusion_matrix}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S8.3\subsection{言及誤分類}\label{subsec:analy_classification_error}本節では，検出した固有表現の言及を拡張固有表現階層のカテゴリーに分類する際に発生した誤りを分析する．2階層目のカテゴリーにおける誤分類のみの混同行列を表\ref{table:confusion_matrix}に示す．通常の混同行列と異なり，対角成分は3階層目以降で分類を誤った固有表現の総数のみを表す．分類だけに着目し分析するため，表には1階層目時点で誤っている，つまり言及検出の時点で誤っている固有表現の予測は含まない．詳細な分析のため，2階層目で発生した誤分類の例を表\ref{table:level_2_example}，3階層目以降で発生した誤分類の例を表\ref{table:level_3_4_example}に示す．それぞれ表\ref{table:confusion_matrix}における誤分類の多い上位3カテゴリーを対象に，上位3つの例を表示している．誤分類の発生した表層文字列の例も上位3件まで示している．以下に，上記に対する分析により判明した誤分類の原因を5件示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T13\begin{table}[t]\input{14table13.tex}\caption{2階層目における分類誤り例:表層文字列例には上位3件を表記し，括弧内はその件数を示す．}\label{table:level_2_example}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T14\begin{table}[t]\input{14table14.tex}\caption{3階層目以下における分類誤り例：表記は表\ref{table:level_2_example}に従う．}\label{table:level_3_4_example}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{周辺文脈の情報の少なさに起因}表\ref{table:level_2_example}上段では，モデルがメディア運営組織をメディア自体として誤って解釈したことにより誤分類が発生している．表\ref{table:level_2_example}中段はその反対である．表層文字例に示されるようなエンティティはメディアとメディア運営組織の両方の特性を持つ場合が多く，周辺文脈からそのどちらであるか推定できない場合に誤分類が発生している．評価データをウェブニュース記事から作成している都合上，出典元としてこれらエンティティが出現する場合が多いため，その総数が多くなっている．\paragraph{固有表現抽出ラベル付け定義と学習特徴間の齟齬に起因}\ref{table:level_2_example}の下段より，全体として``国名''や``市区町村名''が``競技団体名''として扱われている例が目立つ．本誤分類は\ref{subsec:analy_classification_error}節で導入した固有表現抽出ラベル付け定義の(3)をモデルが考慮できていないため発生している．\paragraph{類似した文脈特徴に起因}表\ref{table:level_3_4_example}上段より，``プロダクト名''以下では「ウィキペディア」，「ウィキニュース」といった言及を``サービス名''に誤分類している．ここで，Wikipedia分類データ中の対応するエンティティを調べたところ，それぞれに``サービス名''カテゴリーは付与されていないことが分かった．評価データにおける対象言及の周辺文脈が，学習データ中の``サービス名''の言及が登場する周辺文脈と類似していたため誤分類が発生した可能性がある．同様に，表\ref{table:level_3_4_example}下段の「Vリーグ」もWikipedia分類データにおいて``競技連盟名''カテゴリーは付与されていない．これらの誤分類は，エンティティリンキング等を用いて再度エンティティに紐づく固有表現カテゴリーを参照することで解決できる可能性がある．\paragraph{Wikipedia分類データ自体の誤りに起因}表\ref{table:level_3_4_example}中段の誤分類に着目すると，「島根県」，「アテネ」，「広島県」，「北海道」といった有名な固有名の誤分類が目立つ．Wikipedia分類データを調べたところ，前者3つには``市区町村名''が，後者には``島名''が付与されており，これらは全て``都道府県郡州名''が正しいためWikipedia分類データ自体が誤っている．「ダーバン」も``市区町村名''カテゴリーが付与されているが，正しくは``地名＿その他''である．また，表\ref{table:level_3_4_example}下段の「日本赤十字社」，「AP通信」，「全国農業協同組合連合会」も``企業名''が付与されているが，正しくは``非営利団体名''である．\paragraph{固有名に対する知識不足に起因}表\ref{table:level_3_4_example}中段では，``地名＿その他''を正解とする「長滝」や「浅内」といった言及が誤って``市区町村名''に分類されている．``市区町村名''と``地名＿その他''はその区画に向けた行政組織が存在するかどうかで区別されるが，文脈で判断することが難しい．評価時は，学習時に獲得したエンティティの知識を用いて分類することになるが，これらのエンティティはWikipediaに専用記事が存在せず，誤分類に繋がっている．表\ref{table:level_3_4_example}下段の「チベット亡命政府」も``政府組織名''と``政治的組織名＿その他''のどちらに属するかは国家の政府であるかどうかにより決定されるが，チベット亡命政府に対するWikipediaの専用記事がないため情報が少なく誤分類が発生している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S8.4\subsection{言及検出漏れ}\label{subsec:analy_detection_error}\ref{subsubsec:hierarcal_eval}節の階層別評価において，26.4\%の言及検出漏れが発生していることが判明した．より詳細な分析のため，言及検出漏れが発生しているカテゴリーを集計し，上位10件を表\ref{table:detection_error}に示す．以下に，上記に対する分析により判明した検出漏れの原因を4件示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%T15\begin{table}[b]\input{14table15.tex}\caption{提案手法における言及検出漏れ例：上位5カテゴリーを表示している．表記は表\ref{table:level_2_example}に従う．}\label{table:detection_error}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{リンク表層文字列による誤学習に起因}表\ref{table:detection_error}より``地位職業名''カテゴリーでは，特に表層文字列が「選手」の場合に多く検出漏れが発生している．Wikipedia分類を調べたところ「選手」には``地位職業名''カテゴリーが付与されており問題はない．実際の予測結果を調べたところ「〇〇選手」のように``人名''の後に「選手」が続く場合に多く検出漏れが発生していた．具体的には，「選手」に関する検出漏れ175件のうち154件が``人名''に連続していた．Wikipediaのリンクを調べたところ``人名''に続く「選手」に対してリンクが付与されているパターンは1件のみであり，その後のリンク拡張においても``人名''に続く「選手」のリンクが27件しか補完できていなかった．``称号名＿その他''カテゴリーでは，「さん」や「氏」といった敬称の検出漏れが多く発生している．Wikipediaを調べたところ「さん」や「氏」を敬称として説明する専用の記事がなく，「敬称」という記事内にリスト形式でまとめられていることが分かった．このように言及に対して専用の記事がない場合はNIL言及として扱われており，リンク拡張では対応できない．期待エンティティ率を用いた学習手法を用いているが，今回のパターンでは適切に対処できていない．``人名''カテゴリーでは突出している表層文字列はないものの，検出漏れの総数が多い結果となっている．実際の予測結果を確認したところ，``人名''に``地位職業名''や{\linebreak}``称号名＿その他''が続く場合に結合して``人名''として誤検出される例が多いことがわかった．具体的には，``人名''と``地位職業名''が結合して``人名''として誤検出された例が51件，``人名''と``称号名＿その他''が``人名''として誤検出された例が54件存在した．Wikipediaのリンクを調べたところ，``人名''へのリンクのうち表層文字列が「〇〇選手」のパターンが91件，「〇〇さん」のパターンが1,380件，「〇〇氏」のパターンが6,601件存在した．この中には「ぐっさん」や「メリーさん」のように全体で固有名として認められる場合や，「足利尊氏」や「大舘尚氏」のように名前が氏で終わる例も含まれている．しかし「イチロー選手」や「石田さん」，「野口氏」といった拡張固有表現階層において全体で固有名とは認められないリンクが多く散見されることから，記事の編集者によってリンク付与範囲が統一されていないことが分かる．上記のように``地位職業名''や``称号名＿その他''を取り込んで``人名''として扱うリンクが多いことが，``人名''の検出漏れの要因，「選手」等の``地位職業名''に対してリンク拡張が機能しない要因，「さん」や「氏」等の``称号名＿その他''に対して期待エンティティ率を用いた学習手法が機能しない要因となっている．リンクの表層文字列がリンク先のタイトルもしくはリダイレクトと大きく異なる場合は，タイトルやリダイレクトで置き換えることでこれらの影響を軽減できる可能性がある．\paragraph{短縮形に関する教師信号不足に起因}``人名''カテゴリーにおいて苗字のみといった短縮形の検出漏れが目立つ．リンク拡張ではこれらの短縮形に完全に対処できておらず，固有表現抽出器への教師信号として不十分であることから，検出漏れが発生していると考えられる．\paragraph{Wikipedia分類が``コンセプト''の記事に起因}``賞名''カテゴリーでは「メダル」，「金メダル」，「銅メダル」の検出漏れが多い．Wikipedia分類データではこれらは``賞名''ではなく，固有表現以外を指す``コンセプト''のみが付与されている．本研究では，``名前''以下カテゴリーが付与されていない記事へのリンクは未知（$\mathtt{UNK}$タグ）ではなく，固有表現以外（$\mathtt{O}$タグ）として扱われる都合，誤った学習が行われ言及漏れが発生している．それらを全て未知（$\mathtt{UNK}$タグ）として扱った場合，固有表現以外に対する貴重な教師信号が失われることになる．\paragraph{Wikipedia分類定義と固有表現抽出ラベル付け定義間の齟齬に起因}``国名''カテゴリーでは「日本」の検出漏れが23件発生している．実際の結果を分析したところ，「日本代表」を``競技団体名''に，「日本ラグビー」を``競技名''といったように「日本」を含み誤検出している例が13件存在した．最も多い「日本代表」に関してWikipediaのリンクを調べたところ，表層文字が「日本代表」のリンクが合計で3,702件存在した．リンク先として最も多い3記事は，「サッカー日本代表」へのリンクが1,644件，「ラグビー日本代表」へのリンクが730件，「日本代表」へのリンクが193件であった．これらリンク先はWikipedia分類データにおいて全て``競技団体名''カテゴリーに分類されている．それゆえ，学習データにおいて「日本代表」に対して``競技団体名''が付与されている例が多く存在している．しかし，\ref{subsec:analy_classification_error}節でも述べたように，今回は評価データ作成時に全体が新しい固有名として定義されているかどうかを考慮しており，「日本代表」はそれ全体を固有表現とは認められず誤検出扱いとなる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%F5\begin{figure}[b]\begin{center}\includegraphics{31-3ia14f5.pdf}\end{center}\caption{最良評価値との差分と学習データにおけるラベル数の相関}\label{fig:correlation_graph}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S8.5\subsection{学習データ頻度}\label{subsec:analy_train_dist}\ref{subsubsec:category_eval}節のカテゴリー別評価では，``イベント名''，``自然物名''，``病気名''カテゴリーにおいてEER推定を用いた学習手法の性能が大きく劣ることが分かった．本原因を探るべく，学習データにおける固有表現ラベル数を集計し，提案手法の性能との関係性を調べた結果を図\ref{fig:correlation_graph}に示す\footnote{神名は評価データの数が少ないため除外している．}．縦軸は提案手法の評価値と提案手法以外の最良評価値の差分を示し，横軸は対数軸で学習データのラベル数を示す．評価値差分とラベル数の間の相関係数は0.866であり，強い相関があることがわかる．つまり，``イベント名''，``自然物名''，``病気名''におけるEER推定を用いた学習手法の評価値の低さは学習データのラベル数の少なさに起因している可能性がある．EER推定による学習手法は，全てのカテゴリーに対する予測数をまとめて制限しているため，上記のような教師信号の少ないカテゴリーは予測数を減少させる方向に強い影響を受けており，性能が低下していると考えられる．本問題は，上位のカテゴリーごとにEERを推定し，予測数に対して個別に制約をかけることで解決できる可能性がある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S9
\section{議論}
\label{sec:discussion}\ref{subsec:analy_classification_error}節，\ref{subsec:analy_detection_error}節での詳細分析により，Wikipediaから固有表現抽出器を学習する際の様々な障壁が明らかになった．課題を整理し以下に示す．\paragraph{省略形に関する課題}苗字などの短縮形に対するWikipediaのリンク不足が明らかになった．本問題は，Wikipediaでは初出の場合のみリンクが付与されるが，省略形は二回目以降の出現で使用されるため発生している．\ref{subsubsec:experiment_link_surf}節では人名の短縮形を収集する方法を導入したが，言語依存である上，その他カテゴリーでの短縮形には対応できていない．今後，Wikipediaの情報から短縮形を言語非依存に予測する手法の開発が必要である．\paragraph{固有表現抽出定義に関する課題}Wikipediaの記事分類やリンク構造に関する定義と，固有表現抽出に求められる定義の齟齬が明らかになった．固有表現抽出器を実応用するにあたって定義は明確であった方が良いが，Wikipediaの膨大さから前者定義を後者の定義に合わせることは難しい．今後，Wikipediaから学習された固有表現抽出器の振る舞いを紐解いた上で，適した定義を再考する必要がある．\paragraph{拡張固有表現階層に関する課題}Wikipedia記事の分類上では``コンセプト''であるが，文脈によっては固有表現として扱われる言及が存在する事が明らかになった．拡張固有表現階層では幅広いカテゴリーを採用しており，一般名詞との境界に近いカテゴリーも存在している．その影響範囲を特定する必要があるため，拡張固有表現階層のカテゴリーから一般名詞に近いカテゴリーを洗い出した上で，固有表現抽出器の振る舞いを個別に分析する必要がある．\paragraph{固有表現抽出全般における課題}周辺文脈情報の少なさや知識不足による予測誤りが発生している事が明らかになった．特に，今回のように学習データと評価データで分野や分布が異なる場合，同様の問題が発生しやすい．評価対象に合わせてその都度学習データを構築することは現実的ではないので，本問題は今回の実験設定に依存せず，固有表現全般における課題であると言える．地名等の外部知識を言語非依存に活用する手法の考案や，カテゴリーが曖昧な場合に複数候補の提示を許可するといった緩和策が考えられる．より実用性の高い固有表現抽出器をWikipediaから学習するには，少なくともこれらの課題は解決される必要がある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S10
\section{おわりに}
Wikipediaから固有表現抽出器を学習する場合，ガイドラインに起因するリンク省略やNIL言及が問題となる．固有表現の特徴をもとにリンクやラベルの補完に取り組む研究が多く存在するが，その多くが英語を対象としており，固有表現に関する表層的な特徴の少ない日本語には適用ができないといった問題がある．本研究では，深層学習を用いたリンクの拡張手法を提案し，省略されたリンクの補完を行った．また，文章中のエンティティの割合を示す期待エンティティ率の推定手法を提案し，NIL言及により学習データに混在する偽陰性ラベルの影響軽減を試みた．実際に，日本語Wikipediaから固有表現抽出器の学習を行い評価を行ったところ，提案手法は比較手法と比べ非常に高い性能を示した．詳細な分析により，Wikipediaのリンク構造を用いて言語非依存に固有表現抽出器の学習を行うための更なる課題を示した．%%%Acknowledgement%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgment本研究は，JST，ACT-X，JPMJAX20AIの支援を受けたものである．%%%Bibliography%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.7}\bibliography{14refs}%%%Biography%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{中山功太}{%大規模言語モデル研究開発センター特任研究員．2020年豊橋技術科学大学情報・知能工学系修士号．理化学研究所革新知能統合研究センター・言語情報アクセスチームリサーチアソシエイトを経て，現職．専門は深層学習，自然言語処理．特にアンサンブル学習，固有表現抽出，情報抽出の研究に従事．言語処理学会会員．}\bioauthor{栗田修平}{%2013年京都大学理学部卒業．2015年同大学院理学研究科物理学教室修士課程修了．2019年京都大学大学院情報学研究科にて博士（情報学）取得．2019年より国立研究開発法人理化学研究所革新知能統合研究センター特別研究員．2023年より同研究員．2020年よりニューヨーク大学訪問研究員．2024年より国立情報学研究所コンテンツ科学研究系助教ならびに理化学研究所客員研究員．深層学習を用いた自然言語処理ならびにコンピュータビジョンの研究に従事．言語処理学会会員．}\bioauthor{馬場雪乃}{%2012年東京大学大学院情報理工学系研究科博士課程修了．博士（情報理工学）．同年東京大学特任研究員，2014年国立情報学研究所特任助教，2015年京都大学大学院情報学研究科助教，2018年筑波大学システム情報系准教授を経て，2022年より東京大学大学院総合文化研究科広域科学専攻准教授．機械学習，ヒューマンコンピュテーションの研究に従事．}\bioauthor{関根聡}{%理化学研究所革新知能統合研究センター・言語情報アクセスチームチームリーダー，情報学研究所大規模言語モデル研究開発センター特任教授，合同会社ランゲージ・クラフト主任研究員．1992年英国マンチェスター大学計算言語学部修士号．1998年ニューヨーク大学コンピューターサイエンス学部博士号．その後，ニューヨーク大学研究准教授に就任．松下電業産業株式会社（現パナソニック），SONYCSL，マイクロソフトリサーチ，楽天技術研究所ニューヨークなどでの研究職を歴任．専門は自然言語処理．特に情報抽出，固有表現抽出，質問応答，情報アクセス，知識構築の研究に従事．情報処理学会自然言語処理研究会主査，その他役職多数．複数の企業の技術顧問なども兼任．}\end{biography}\biodate%%%%受付日の出力（編集部で設定します）\end{document}