# CRF に基づく形態素解析器のスコア計算の分割による モデルサイズと解析速度の調整

赤部晃一 ${ }^{1}$ 神田峻介 1 小田悠介 ${ }^{2}$
${ }^{1}$ LegalOn Technologies Research ${ }^{2}$ 東北大学 データ駆動科学・AI 教育研究センター
\{koichi.akabe, shunsuke.kanda\}@legalontech.jp
yusuke.oda.c1@tohoku.ac.jp

## 概要

CRF に基づく形態素解析器において，2-gram スコアの持ち方を変更し，用途に応じてモデルサイズと解析速度の調整を行うことを提案する。代表的な CRF に基づく形態素解析器では, CRF の 2-gram スコアを事前に計算して連接表に記憶しておくことで予測を効率的に行うが，素性の設計によってはスコアの事前計算は連接表を肥大化させる. 本稿では， 2-gram スコアの計算の一部を予測時に行うことで，連接表の肥大化を抑制する．また，2-gram スコアの計算を効率的に行うことで，予測時に追加的に生じる計算時間を抑制する。

## 1 はじめに

形態素解析は, 日本語の自然言語処理における基礎技術であり，情報検索や機械学習の前処理として利用される. 日本語における代表的な形態素解析器としては, MeCab [1] や KyTea [2] が挙げられる. このうち, MeCab は Conditional Random Fields (CRFs) [3] を利用してパラメータを学習し, 入力文から形態素ラティスを生成し，単一のノードから得られる素性と, 隣合う 2 つのノードに対応した素性を用い，各素性のパラメータを最尤推定する。

素性は解析精度等を考慮して設計されるが，設計によってはモデルサイズが肥大化する．公開されている学習済みモデルを比較すると，IPAdic [4] では連接表のサイズが $1,316 \times 1,316$ であるが，現代書き言葉 UniDic [5] (Ver. 3.1.0) は 15,626×15,388であり，各スコアを 16-bit で表現すると，連接表だけで $459 \mathrm{MiB}$ となる. UniDic では，素性テンプレートの見直しによってモデルサイズを軽量化する試みが行われているが，依然として組み込み機器や Web フロントエンド等の資源が限られた環境で利用するには
モデルサイズが大きく，可搬性が低い.

本稿では，まず $\mathrm{CRF}$ に基づく形態素解析について説明し，一部のスコア計算を解析時に行うことで， モデルのパラメータに手を加えずにモデルサイズを軽量化することを提案する。また，解析時のスコア計算を効率的に行う方法についても示す.

## 2 CRF に基づく形態素解析

## 2.1 定式化

CRF [3] はラティス上に定義される線形識別モデルであり，入力単語列を $\boldsymbol{x}$ ，ラベル列（品詞，読み等）を $\boldsymbol{y}$ とし，確率を式 (1)でモデル化する。

$
P(\boldsymbol{y} \mid \boldsymbol{x})=\frac{\exp \left(\boldsymbol{w}^{\top} \boldsymbol{\phi}(\boldsymbol{x}, \boldsymbol{y})\right)}{\sum_{\boldsymbol{y}} \exp \left(\boldsymbol{w}^{\top} \boldsymbol{\phi}(\boldsymbol{x}, \boldsymbol{y})\right)}
$

ここで,$w$ は重みべクトルであり,$\phi(x, y)$ はラティス上の各パスに対応した素性ベクトルである．素性ベクトルを，各ノードに与えられる 1-gram 素性べクトル $\left(\phi_{1}\right)$ と，各エッジに与えられる 2-gram 素性ベクトル $\left(\phi_{2}\right)$ に分ければ，式 (2) のように表すことが可能である.

$
\boldsymbol{\phi}(\boldsymbol{x}, \boldsymbol{y})=\sum_{i} \phi_{1}\left(\boldsymbol{x}, y_{i}\right)+\sum_{i, j} \phi_{2}\left(\boldsymbol{x}, y_{i}, y_{j}\right)
$

ここで， $y_{i}, y_{j}$ は隣り合う 2 つのノードを表す. 1-gram 素性は辞書中の各エントリ $e_{i}$ に付随した情報のみ利用しており，文脈に依存する情報を利用しない. すなわち, $\boldsymbol{\phi}_{1}\left(\boldsymbol{x}, y_{i}\right):=\boldsymbol{\phi}_{1}\left(e_{i}\right)$.このため,各エントリ $e_{i}$ の 1-gram 素性のスコア $\boldsymbol{w}^{\top} \boldsymbol{\phi}_{1}\left(e_{i}\right)$ はエントリごとに事前に計算しておけば良い。一方， 2-gram 素性には隣り合う 2 つのエントリの情報を用いる. すなわち, $\boldsymbol{\phi}_{2}\left(\boldsymbol{x}, y_{i}, y_{j}\right):=\boldsymbol{\phi}_{2}\left(e_{i}, e_{j}\right)$. 単純に辞書内のすべてのエントリの組 $\left(e_{i}, e_{j}\right)$ に対して $\boldsymbol{w}^{\top} \boldsymbol{\phi}_{2}\left(e_{i}, e_{j}\right)$ を事前計算することは，モデルを肥大化させて現実的でないため，実際には各エントリを
素性情報に基づいてグループ化し, グループのインデックスを用いて 2-gram 素性のスコアを参照する。

## 2.2 素性テンプレート

素性ベクトルの生成には複数の素性テンプレー ト関数が利用される。これは, 辞書のエントリを引数とした関数であり，主に人手で設計される．素性テンプレート関数は 1-gram 素性と 2-gram 素性の両方に対して定義されるが，ここでは 2-gram 素性のみ着目する， $K$ 個の素性テンプレートを用いると， 2-gram 素性のスコアは式 (3)で表される.

$
\boldsymbol{w}^{\top} \boldsymbol{\phi}_{2}\left(e_{i}, e_{j}\right)=\sum_{k=1}^{K} \boldsymbol{w}^{\top} \boldsymbol{t}_{k}\left(e_{i}, e_{j}\right)
$

ここで， $\boldsymbol{t}_{k}$ は $k$ 番目の 2-gram 素性テンプレート関数である. 次に, 式 (4)のように, 左右のエントリ $e_{i}, e_{j}$ から事前に素性テンプレートに対応した情報を取り出し，その組み合わせによって素性べクトルを生成することを考える。

$
\boldsymbol{t}_{k}\left(e_{i}, e_{j}\right)=\boldsymbol{f}\left(l_{k}\left(e_{i}\right), r_{k}\left(e_{j}\right)\right)
$

ここで, $l_{k}, r_{k}$ は，それぞれ左右のエントリから $k$ 番目の素性テンプレートに対応した素性 IDを取得する関数, $f$ は, 左右の素性 ID の組に応じて素性べクトルを返す関数である。

次に，各エントリから全ての素性テンプレートに対応した素性 ID を配列形式で取得する関数 $\boldsymbol{l}, \boldsymbol{r}$ を式 (5), (6)のように定義する.

$
\begin{aligned}
\boldsymbol{l}\left(e_{i}\right) & :=\left(l_{1}\left(e_{i}\right), l_{2}\left(e_{i}\right), \ldots, l_{K}\left(e_{i}\right)\right) \\
\boldsymbol{r}\left(e_{j}\right) & :=\left(r_{1}\left(e_{j}\right), r_{2}\left(e_{j}\right), \ldots, r_{K}\left(e_{j}\right)\right)
\end{aligned}
$

さらに，左右の素性 ID の組 $(l, r)$ に対応したスコア $m$ を式 (7)のように事前に計算する.

$
m(l, r):=\boldsymbol{w}^{\top} \boldsymbol{f}(l, r)
$

これらを用い，各エントリの組に対応した 2-gram 素性のスコアを式 (8) で計算する.

$
\boldsymbol{w}^{\top} \boldsymbol{\phi}_{2}\left(e_{i}, e_{j}\right)=\sum_{k=1}^{K} m\left(l_{k}\left(e_{i}\right), r_{k}\left(e_{j}\right)\right)
$

## 3 2-gram スコアの部分的事前計算

## 3.1 連接表の大きさ

$\mathrm{MeCab}$ では, 全ての $\boldsymbol{l}\left(e_{i}\right), \boldsymbol{r}\left(e_{j}\right)$ の組に対してスコアを事前に計算しておき，それらを連接表に格納する。重みの学習時に L1 正則化を行えばスパース
なモデルが学習されるため, $\boldsymbol{l}\left(e_{i}\right), \boldsymbol{r}\left(e_{j}\right)$ は辞書中の複数のエントリで共通したものとなり，連接表のサイズをある程度抑えることが可能である．例えば現代書き言葉 UniDic では，辞書に登録されている語彙数は 1,879,222 語であるが，連接表のサイズは $15,626 \times 15,388$ であり，複数のエントリで共通した素性情報が参照されていることが確認できる。それでもなお, UniDic は素性テンプレートが詳細に設計されていることもあり，1 節でも述べたようにモデルが大きく可搬性が低い.

## 3.2 部分的事前計算

この問題への解決策として，全ての 2-gram スコアを事前に計算しておくのではなく，連接表肥大化の原因となる素性テンプレートの集合 $S$ を予め定め，事前計算と解析時の計算に分割する. 具体的には式 (9) でスコアを計算する。

$
\begin{aligned}
\boldsymbol{w}^{\top} \boldsymbol{\phi}_{2}\left(e_{i}, e_{j}\right) & =\sum_{k \notin S} m\left(l_{k}\left(e_{i}\right), r_{k}\left(e_{j}\right)\right) \\
& +\sum_{k \in S} m\left(l_{k}\left(e_{i}\right), r_{k}\left(e_{j}\right)\right)
\end{aligned}
$

ここで，第 1 項は事前に計算する項，第 2 項は解析時に計算する項である.

$S$ が大きいほど解析時に必要な計算が多くなるため，モデルサイズを効果的に軽量化できる小さい $S$ を定める必要がある. 本研究では $S$ の選び方として以下の手法を比較する。

Various 生成される素性の種類が多い素性テンプレートを優先的に選択する。これは，品詞など種類数の少ない情報よりも，読みなど種類数の多い情報を含むほうがモデルが複雑化して連接表が大きくなりやすいのではないかという仮説に基づく.

Greedy 連接表のサイズに大きく影響を与える素性テンプレートを 1 つずつ調べ，貪欲的に選択していく.

Greedy-2 Greedyでは，相関の強い素性テンプレー 卜など，同時に選択しなければ連接表が軽量化しない素性テンプレートが選択されない。そこで，2つの素性テンプレートを同時に選択した際の連接表のサイズ変化も考慮する。

## 4 ダブル配列を用いたスコア辞書

2-gram スコアを解析時に計算すると，解析速度が低下すると考えられる．そこで，式 (9) の計算を効

率的に行うために, 関数 $m$ の引数から值へのマッピングにダブル配列 [6] を用いることを提案する。

ダブル配列はトライ [7] の効率的な実装であり， 2 つの配列 BASE と CHECK，及び值配列 VALUE によって構成される key-value マップである. 整数値 $k_{1}, k_{2}, t$ について式 (10) が満たされるとき，キー $\left(k_{1}, k_{2}\right)$ の值が VALUE $[t]$ であると見なす.

$
\operatorname{BASE}\left[k_{1}\right] \oplus k_{2}=t \wedge \operatorname{CHECK}[t]=k_{1}
$

ここで演算子 $\oplus$ は排他的論理和を表す1），ダブル配列を用いると，スコア計算は Algorithm 1 のとおりとなる.

ダブル配列は，1) 配列の要素の取得，2) 排他的論理和の計算，3) 比較，という単純な処理によって構成されるため，Algorithm 1 内のループ処理は SIMD 命令 ${ }^{2}$ によって容易に並列化可能である.

## 5 実験

## 5.1 実験設定

モデル学習のためのデータセットとして，現代日本語書き言葉均衡コーパス (BCCWJ [8], Ver. 1.1) のうち，人手で短単位アノテーションされたコアデータ $60 \mathrm{k}$ 文を利用した. 辞書には現代書き言葉 UniDic [5] (Ver. 3.1.0)を利用し，各パラメータを再学習した。

図 1 2-gram スコアの事前計算から除外する素性テンプレートの数と連接表の要素数の関係

ベースラインとして CRF に基づく形態素解析器である Vibrato ${ }^{3}$ を利用し，提案法は Vibrato を修正する形で実装した. CRF の学習には rucrf $^{4)}$ を用い， OWL-QN 法 [9] による L1 正則化 [10] を行った.

計算を効率的に行うため，重み，及び統合後のスコアはすべて量子化した．スコアの事前計算では量子化前の值が用いられるが，解析時の計算では量子化後の值が用いられるため，手法によって算出されるスコアが僅かに異なる。しかし，その差は解析結果に大きな影響を与えるものではない.

実装にはプログラミング言語 Rust を用いた。コンパイラは rustc 1.65，コンパイルオプションは-C opt-level=3とした.

解析速度の測定には，BCCWJ のコアデータ以外からランダムに抽出した $100 \mathrm{k}$ 文を利用し，100 回解析した平均值を用いた．測定の際は，分割対象の文を先に RAM に読み込み，IO 処理にかかる時間は除外した。

実験は以下のスペックのマシンを用いてシングルスレッドで実施した。
- CPU: Intel Core i9-12900K CPU @ 3.2GHz
- Memory: 64GiB RAM (L1: 640KiB, L2: 14MiB)

## 5.2 スコアの部分的事前計算の効果

## 5.2.1 連接表のサイズの変化

解析時に統合する素性テンプレートのインデックス集合 $S$ のサイズを変化させた際の連接表の要素数の変化を図 1 に示す.

図を見ると，Greedy または Greedy-2 によって優先的に選択される素性テンプレートのうち，最初の

3) https://github.com/daac-tools/vibrato

4) https://github.com/daac-tools/rucrf
表 1 2-gram モデルサイズ [MiB] と解析時間 [s] の関係

5つの素性テンプレートをスコアの事前計算の対象から除外するだけで，連接表のサイズが $10 \%$ 程度まで軽量化することが確認された。一方で，Variousによって優先的に選択される素性テンプレートを除外しても，連接表の軽量化効果が殆どないことが確認された.

この結果から, Greedy または Greedy-2 によって貪欲的に選択される素性テンプレートを除外することが，連接表の軽量化に有効であることが分かる.

Greedy-2 については，初期の軽量化効果は Greedy と比較して大きいものの，すぐに Greedy と大差が無くなることが確認された。これは，2つの素性テンプレートのみが相関しているケースが少なかったためと考えられる。他の素性テンプレートを除外した場合の影響を考慮する場合，計算量は考慮する素性テンプレートの数 $n$ に対して指数関数的に増大するため,$n$ を増やすことは現実的ではない.このため，以降は単純に大きな軽量化効果を得られる Greedy を採用した。

## 5.2.2 モデルサイズと解析時間の比較

2-gram スコアの事前計算から除外する素性テンプレートの数を変化させた際の，2-gram モデルサイズと解析時間への影響を調査するため，以下の 3 つの状況について測定した。ここにおける 2-gram モデルサイズとは，連接表のサイズと 2-gram スコアを格納したダブル配列のサイズの総和である.

Matrix 全ての 2-gram スコアを事前に計算して連接表に格納する。(ベースライン)

Dual Greedyによって優先的に選択される 8 個の素性テンプレートについて連接表から除外し，解析時に計算を行う.

Raw 全ての 2-gramスコアを解析時に計算し，連接表は利用しない。 $(S=\{1,2, \ldots, K\})$

これらの結果を表 1 に示す. Dualでは，Matrix に比べて 2-gram モデルサイズが 12\%以下になっていることを確認できる．スコアの事前計算から除外する素性テンプレートを増やすと，必然的にダブル配列のサイズは大きくなるが，その増加量は連接表の表 2 SIMDによる解析時間 [s] の変化

軽量化した分に比べれば十分に小さく，モデル全体の軽量化に効果的であることが分かる。一方で， Dual の解析時間は Matrix の 2.4 倍に増加しており,解析時に 2-gram スコアを計算することで解析が遅くなることが伺える。

ここからモデルサイズと速度はトレードオフの関係であり，インデックス集合 $S$ のサイズは，許容されるモデルサイズと解析速度によって調整する必要があることが分かる.

Raw は Dual と比較して傾向が顕著であり，2-gram モデルサイズは Matrix の $0.5 \%$ である一方，解析時間は Matrix の 23 倍であった.

## 5.3 スコア計算に SIMD を利用する効果

ここでは，解析時の 2-gram スコアの計算を SIMD 並列化することの効果を調査する．5.2.2 節の Dual および Raw の設定について，Algorithm 1 の処理を 8 並列化 ${ }^{5)}$ した場合の解析時間の変化を表 2 に示す.

この結果から，ダブル配列を用いたスコア計算が SIMD 命令によって実際に高速化されたことを確認できる。ただし，全ての 2-gram スコアを事前計算して参照する Matrix と比較すると，Dual は SIMD 命令を用いても 2 倍以上遅いことが確認できる。

## 6 まとめ

本稿では，CRF に基づく形態素解析器において， 2-gram スコアの計算を事前計算と解析時の計算に分割することで，モデルサイズを軽量化する手法を提案した. また，解析時の計算を SIMD 命令で高速化できることを示した。提案法は，パラメータに手を加えるなど，解析精度に影響を与えることは行わない。このため，解析精度を維持したまま，組み込み機器や Web フロントエンドなど，資源が限られた環境でも利用可能なモデルを配布することが可能となる。

今回の実験では，事前計算から除外する素性テンプレートを選択する際に，そのテンプレートの内容までは考慮しなかったが，言語学的な知見を取り入れることによる効果についても検討の余地がある。

5） AVX2 で 32-bit 演算を並列化できる最大の個数が 8 である.

## 参考文献

[1] Taku Kudo, Kaoru Yamamoto, and Yuji Matsumoto. Applying conditional random fields to Japanese morphological analysis. In Proceedings of the $\mathbf{2 0 0 4}$ Conference on Empirical Methods in Natural Language Processing, pp. 230-237, Barcelona, Spain, July 2004. Association for Computational Linguistics.

[2] Graham Neubig, Yosuke Nakata, and Shinsuke Mori. Pointwise prediction for robust, adaptable Japanese morphological analysis. In Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies, pp. 529533, Portland, Oregon, USA, June 2011. Association for Computational Linguistics.

[3] John D. Lafferty, Andrew McCallum, and Fernando C. N. Pereira. Conditional random fields: Probabilistic models for segmenting and labeling sequence data. In Proceedings of the Eighteenth International Conference on Machine Learning, ICML '01, p. 282-289, San Francisco, CA, USA, 2001. Morgan Kaufmann Publishers Inc.

[4] Masayuki Asahara and Yuji Matsumoto. ipadic version 2.7.0 User's Manual. https://ja.osdn. net/projects/ ipadic/docs/ipadic-2.7.0-manual-en.pdf, 2003.

[5] 岡照晃. CRF 素性テンプレートの見直しによるモデルサイズを軽量化した解析用 UniDic — unidiccwj-2.2.0 と unidic-csj-2.2.0 一. 言語資源活用ワークショップ 2017 発表予稿集, 143-152.

[6] Jun'ichi Aoe. An efficient digital search algorithm by using a double-array structure. IEEE Transactions on Software Engineering, Vol. 15, No. 9, pp. 1066-1077, 1989.

[7] Edward Fredkin. Trie memory. Commun. ACM, Vol. 3, No. 9, p. 490-499, sep 1960.

[8] 前川喜久雄. 代表性を有する大規模日本語書き言葉コーパスの構築 (〈特集〉日本語コーパス). 人工知能, Vol. 24, No. 5, pp. 616-622, 2009.

[9] Galen Andrew and Jianfeng Gao. Scalable training of 11regularized log-linear models. In Proceedings of the 24th International Conference on Machine Learning, ICML '07, p. 33-40, New York, NY, USA, 2007. Association for Computing Machinery.

[10] Robert Tibshirani. Regression shrinkage and selection via the lasso. Journal of the Royal Statistical Society: Series B (Methodological), Vol. 58, No. 1, pp. 267-288, 1996.


# 事前学習モデルに基づく日本語形態素解析器における 辞書の利用

田村稔行 河原大輔
早稲田大学理工学術院
tam.fse3982@ruri.waseda.jp dkw@waseda.jp

## 概要

事前学習モデルに基づく日本語形態素解析器では, 従来の形態素解析器で用いられていた辞書を用いないことが一般的である. しかし, 単語の区切りや品詞が登録された辞書は形態素解析において重要な知識源となる. 本論文では, 事前学習モデルに基づく日本語形態素解析器の入力として, 辞書引きによる単語区切り位置の情報を与える手法を提案する. 提案手法は, 複数のコーパスにおいて, 辞書を用いない手法と比較して高い精度を示すことを確認した。

## 1 はじめに

日本語の文においては単語の間に区切りが明示されない. 計算機で日本語を解析する場合, まず単語の区切りを認識する必要がある. 日本語の形態素解析においては,品詞や活用の付与と同時に単語への分かち書きを行う。

従来の形態素解析器である JUMAN ${ }^{1)}$, MeCab [1], Juman++ [2] などは辞書に登録されている単語の情報に基づき, 最も尤度の高い単語列を採用することによって分かち書きを行う。一方で, 近年の KWJA [3] などの事前学習モデルベースの形態素解析においては, 事前学習モデルが日本語解析に関する有用なパラメータを獲得していることから, 辞書を分かち書きに用いていない. しかし, 単語の区切りや品詞が定義されている辞書の情報は分かち書きや品詞付与において重要な知識源となる.

本研究では, 事前学習モデルを用いた形態素解析において辞書の情報を利用する手法を提案する. 具体的には, モデルへ入力文に加えて辞書から得た単語の分割位置の情報を与える. 提案手法の有効性を検証するため, 3 種類のコーパスと 2 種類の辞書において分かち書きと品詞・活用付与の実験を行う.

1) https://nlp.ist.i.kyoto-u.ac.jp/?JUMAN

## 2 関連研究

辞書を使用する形態素解析の手法として,ラティスを用いるものと点予測のものがある. ラティスは辞書に存在する単語と, 辞書に存在しない単語 (未知語)を処理する規則に基づいて生成される. 生成されたラティスから最も尤度の高いパスを決定し,これが単語の分割となる. ラティスの作成は辞書に基づいて行い, 機械学習により調整された重みを用いてスコア算出し, そのスコアによりパスを決定することが一般的である. JUMANでは人手で, MeCab では CRF [4] で重みを調整している. Juman++も同様に辞書に基づいたラティスを生成するが, 線形モデルと RNN の組み合わせによりスコアを算出する。

点予測は, 周囲の判定情報を用いずに各文字や単語について分かち書きや品詞推定などを個別に行う手法である. KyTea [5] は点予測の形態素解析器である. 文字 n-gram や文字種 n-gram, 単語辞書に基づく特徴量を用いて分かち書きと読み・品詞推定を行う.

事前学習を用いた形態素解析器として, 事前学習モデル RoBERTa [6] を用いた日本語統合解析器 KWJA がある. KWJA はパイプライン処理によって形態素解析を行う。まず文字モデルにて誤り文字を訂正し, 次の文字モデルにて分かち書きと単語正規化を行う. そして単語 (サブワード) モデルにより形態素解析を実行する. KWJA の形態素解析においては, 単語分割が決まった後に, 各単語の先頭トークンの隠れ状態から品詞と活用を予測し,辞書に基づく意味情報を付与する. 辞書は分かち書きおよび品詞・活用付与には用いない. また, Tolmachev ら [7] は, 双方向 LSTM [8] と Transformer [9] のそれぞれを用いた, 辞書を用いない形態素解析器を提案した.この解析器は事前学習を用いないが, 大量の自動解析コーパスを学習に用いる. モデルは入力文中の各文字について, 分かち書き, 品詞・活用付与をマルチタ

スクで行う. 本研究ではこの出力の構造を用いる.

事前学習モデルに辞書などの知識を統合している研究を紹介する. Sun ら [10] は, 事前学習モデルは大量の生コーパスを用いて学習を行っているものの, そのような生コーパスは言語知識や一般常識に関する明示的な知識に欠けていると指摘している. モデルに知識を与えるため, 多層の Transformer-XL [11] からなるモデルに知識グラフを埋め込み, 単語や知識に関するタスクによる事前学習を提案している。

他の研究例として, BERT [12] の構造を流用したモデルが存在する. 事前学習の際に Masked Language Modeling や Next Sentence Prediction と並行して語彙的な関係を分類するタスクを行うモデル [13] や知識に関するタスクを行うモデル [14]がある. また, ファインチューニングにおいて追加の層を用いて知識グラフの情報を統合するモデル [15] などが存在する.

本研究では, 既存の事前学習モデルに辞書情報を統合することでの精度向上を目的とするため,ファインチューニングを対象とする. また, 形態素解析というタスクに着目し, 辞書の情報を, 単語の区切り位置の情報としてモデルに与える。

## 3 事前学習モデルに基づく形態素解析における辞書の利用

本研究では, 文字単位のタスクである分かち書きを行うことから, 日本語コーパスで事前学習された文字ベースのモデルを用い, 分かち書きと品詞・活用付与タスクでファインチューニングする.

モデルの入力としては, 入力文の各文字の埋め込みに加え, 辞書から得た単語の区切り位置の情報を与える. 具体的には, 文の各文字について, その文字を単語の先頭, 中間, 末尾とする単語が辞書に収録されていればそれぞれ B, I, E のフラグを立てる． B は単語の先頭の文字, $\mathrm{E}$ は単語の末尾の文字, $\mathrm{I}$ は 3 文字以上の単語の中間の文字を示す. 例えば, 図 1 において,「じかん」という単語が辞書に存在するとする.この場合, 入力文中の「じ」に B, 「か」に $\mathrm{I}$,「ん」に Eのフラグを立てる. 入力文中の一つの文字が、辞書中のある単語において B となることもあれば、他の単語において I やEとなることがある. 例えば図中の「む」には $\mathrm{B}, \mathrm{E}$ の 2 種類のフラグが立っている.このため, 各文字に対して B, I, E の 3 種類の 2 値フラグを与える. 以下，これを辞書フラグと呼ぶ。 モデルは辞書フラグのそれぞれを埋め込みとして学習し, 各文字の埋め込みと足し合わせる。

図 1 提案手法. 入力文に対して事前に辞書引きをして辞書フラグを形成し, 事前学習モデルに入力する. 線形結合層が各タスクについて出力する。

モデルの出力としては, 事前学習モデルが出力する隠れ状態を各タスク向けの線形結合層に入力し，入力文の各文字について分類を行う. 分かち書き (Seg) については BMES の体系を用いて分類する.S は 1 文字からなる単語, $\mathrm{B}$ は単語の先頭の文字, $\mathrm{E}$ は単語の末尾の文字, $\mathrm{M}$ は 3 文字以上の単語の中間の文字を示す. 品詞・活用付与については, 品詞 (P1),品詞細分類 (P2), 活用型 (CT), 活用形 (CF) をUMAN 体系にもとづいて分類する。

## 4 実験

辞書情報を与えた事前学習モデルベースの形態素解析器の有効性を検証するため, 複数のコーパスを評価対象として形態素解析を行い, 精度を算出する。

## 4.1 実験設定

## 4.1.1 モデルと辞書

ファインチューニングする事前学習モデルとして, 文字単位の RoBERTa-BASE ${ }^{2}$ および RoBERTa$\left.\mathrm{LARGE}^{3}\right)$ を用いる. 学習は異なる 3 つの seed 值を設定して行い, 平均値を算出する. 実験を行う際のハイパーパラメータを付録 Aにて示す.

2) https://huggingface.co/ku-nlp/roberta-base-japanese-char-wwm

3) https://huggingface.co/ku-nlp/roberta-large-japanese-char-wwm
辞書については, JUMAN 辞書4) と森羅5)を用い， Trie による辞書引きのライブラリである dartsclone ${ }^{6)}$ を使用して辞書引きを行い, 学習・評価デー タに辞書フラグを与える. 森羅は Wikipedia のタイトルとその拡張固有表現 (ENE) における分類情報を持つ辞書である. 辞書引きは, 文の最初の文字を開始位置とし, その文字から $\mathrm{n}(=2,3, \ldots)$ 文字の各範囲について辞書引きした結果を集計する.この際, $\mathrm{n}$ は辞書引きの範囲が文末の文字に達する場合が最大値である.この作業を開始位置が文末になるまで繰り返す。 この際, 1 文字からなる単語は有効な情報ではないと判断し, 2 文字以上からなる単語の区切り位置についてのみから辞書フラグを形成する.

JUMAN 辞書については, 辞書引きの結果を品詞などで区別せずに B, I, E の 3 種類の埋め込みを与える. 森羅については, ENE [16] (Version: 7)の「1. 名前」中の 12 種類の大分類それぞれについて B, I, E の埋め込みを与える.つまり, 合計 36 種類の埋め込みをモデルに入力する.

実験において, 辞書を与えないモデル (辞書なしと表記), JUMAN 辞書を与えるモデル (JUMAN と表記), 森羅を与えるモデル (ENE と表記), JUMAN 辞書と森羅を与えるモデル (JUMAN+ENE と表記) の 4 つの条件を比較する. なお, JUMAN+ENE においては, JUMAN 辞書の B, I, E のフラグ 3 個と森羅のカテゴリごとの $\mathrm{B}, \mathrm{I}, \mathrm{E}$ フラグ 36 個を合わせた 39 個の埋め込みをモデルに入力する。

## 4.1.2 学習・評価データセット

ファインチューニングには, 人手のデータセットと自動解析のデータセットの 2 種類を用いる. 人手でアノテーションされたデータセットとして京都大学テキストコーパス [17] (以下 KC) と京都大学ウェブ文書リードコーパス [18] (以下 KWDLC)を用いる.自動解析したデータセットとして, CC-100 [19,20] の日本語テキストから全角スペースとURLを含む文を除いて Juman++で自動解析したものを用いる. 評価用データセットとして, KC と KWDLC, そして不満調査データセットタグ付きコーパス7) (以下 FKC) を用いる.なお, KC および KWDLC は GitHub 上の標準スプリットを用いて学習用と評価用に分割する。各データセットに収録されている文数を表 1 に示す.

4) https://github.com/ku-nlp/JumanDIC

5) http://shinra-project.info/

6) https://github.com/s-yata/darts-clone

7) https://github.com/ku-nlp/AnnotatedFKCCorpus

KC と KWDLC を学習に用いたモデル $(\mathrm{KC}+\mathrm{KW}$ と表記) と, KC と KWDLC と C-100を学習に用いたモデル $(\mathrm{KC}+\mathrm{KW}+\mathrm{CC} 100$ と表記) の両方で実験を行う.

## 4.1.3 評価

分かち書き及び品詞・活用付与の精度を評価する。分かち書きについては, 各単語の開始位置と終了位置の組が合致しているかにもとづいて F1を算出する. 品詞 - 活用付与については, 品詞, 品詞細分類, 活用型, 活用形を評価し $\mathrm{F} 1$ を算出する.この際, 単語の開始位置である文字について分かち書きと各タスクを両方正解した場合のみ正解したとして精度を算出する.つまり, 品詞・活用付与の各精度は, 分かち書きと各タスク両方を正解した精度 (F1)である.

また, JUMAN 辞書を用いた形態素解析器として Juman++ (Version: 2.0.0-rc3) を, 事前学習モデルを用いた形態素解析器として KWJA (Version: 1.1.0) についても比較対象とする. なお, 公開版の Juman++は評価用データセットも学習に用いているため参考として掲載する. KWJA についても, 本実験で評価のみに用いている FKC の一部を学習に用いている. さらに, KWJA については形態素解析の前段階で入力誤り訂正を行うため, 入力文と出力文の文字数が異なる場合がある. 本実験の評価では, 文中で文字数が増減した箇所があると, その文の残りの部分について評価を正しく行うことができない. そのため, KWJA の評価についてはこの問題に対する処理を行わない場合の精度と, 入力誤り訂正により文字数が変化した文を取り除いた場合の 2 つの精度を掲載する。

## 4.2 結果と考察

$\mathrm{KC}+\mathrm{KW}$ より $\mathrm{KC}+\mathrm{KW}+\mathrm{CC} 100$ を学習に用いた場合に全体的に良い結果が得られたため, $\mathrm{KW}+\mathrm{KW}+\mathrm{CC} 100$ のみの結果を表 2 に示す. $\mathrm{KC}+\mathrm{KW}$ を学習に用いた結果は付録 Bに示す. Seg, P1, P2, CT, $\mathrm{CF}$ はそれぞれ分かち書き, 品詞, 品詞細分類, 活用型,活用形を指す. 以下では, 各辞書の情報を与えたモデルについて,他のモデルとの比較を考察する.
表 $2 \mathrm{KC}+\mathrm{KW}+\mathrm{CC} 100$ を用いた学習による分かち書きと品詞・活用付与の精度 (F1). KWJA の FKC での精度と Juman++の精度以外について, 表中で最も高い精度を示したモデルの値を太字で示した. なお, 最高値と 2 番目に高い値の差が 0.01 以内の場合は 2 番目に高い値も太字で示した.

表 3 分かち書きの改善例. “p”は形態素の区切りを示す. モデルはいずれもLARGE.

 &  \\

JUMAN 辞書による影響 JUMAN辞書を与えたモデルを, 辞書を用いないモデルと比較すると, すべてのデータセット・タスクにおいて提案手法の精度が上回った. このことから, 辞書による単語の区切り位置情報が, 分かち書きのみならず品詞・活用付与の精度向上にも貢献しているといえる. 提案手法では JUMAN 辞書を品詞の区別なく与えたが, 品詞ごとに辞書フラグを与えることで, 品詞・活用付与の各タスクにおいてさらに精度が向上する可能性がある.

各評価用データセットの分かち書きについて,辞書情報を与えないモデルでは間違えていたが JUMAN 辞書を与えたモデルで正解した文の例を表 3 に示す. 各例は, 区切り位置により文意が異なる表現について, 提案手法が正解した例である. 1 例目は KC, 2 例目は KWDLC, 3 例目は FKC の文である. 1 例目では「ヒゲもじゃ」, 2 例目では「わさび」, 3 例目では「むだ」が辞書引きされ改善した.

森羅の影響森羅を与えたモデルは辞書なしのモデルと近いか若干低い精度を示し, JUMAN 辞書と森羅を与えたモデルは JUMAN 辞書を与えたモデルと近いか若干低い精度を示した. 森羅のエントリの区切りが評価用データセットの JUMAN 体系と異なる
ため, 精度の向上に寄与しなかったと考えられる. 一方で, 森羅に収録されている長い複合名詞の始まり・終わりは分かち書きの精度向上に寄与する可能性があるため, 辞書をフィルタリングすることで精度が向上する可能性がある. また, 森羅による ENE の分類など, 詳細な分類や分野に特化した追加情報を形態素解析器が出力できれば下流タスクにとって有益であると思われる。

既存の形態素解析器との比較 Juman++と比較すると, 提案手法は $\mathrm{KC}$ の品詞分類と品詞細分類, そして FKC の分かち書きにおいて同等か上回る精度を示した. 一方で, KWDLC においては Juman++がすべての指標について提案手法の精度を上回った. ただし, 本実験で用いた Juman++は公開版であり, 評価用に用いたテストデータを学習している. KWJA と比較すると, KWDLC の P1, P2, FKC の Seg, P1, P2 において KWJA の精度が上回り, その他では提案手法の精度が上回った. ただし, KWJA は構文解析などの他のタスクとマルチタスク学習を行っており, 形態素解析に最適化されていないため, 若干精度が低い. また, KWJA は本実験で評価に用いた FKC の一部を学習に用いている。

## 5 おわりに

本研究では, 日本語の事前学習モデルに入力文に加えて辞書の情報を与えて形態素解析を行い精度を評価した. 結果として, 辞書情報を与えることで分かち書きだけでなく品詞・活用付与の精度も向上することを確認した. 今後は, どのような辞書であれば形態素解析の精度向上につながるのかを明らかにしたい.

## 謝辞

本研究は JSPS 科研費 JP21H04901 の助成を受けて実施した。

## 参考文献

[1] Taku Kudo, Kaoru Yamamoto, and Yuji Matsumoto. Applying conditional random fields to japanese morphological analysis. In Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing, 2004.

[2] Daisuke Kawahara Hajime Morita and Sadao Kurohashi. Morphological analysis for unsegmented languages using recurrent neural network language model. In Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, p. 2292-2297, 2015.

[3] 植田暢大, 大村和正, 肾玉貴志, 清丸寛一, 村脇有吾, 河原大輔, 黒橋禎夫. Kwja：汎用言語モデルに基づく日本語解析器. 第 253 回自然言語処理研究会, 京都, 2022.

[4] Andrew McCallum John Lafferty and Fernando Pereira. Conditional random fields: Probabilistic models for segmenting and labeling sequence data. In Proceedings of the Eighteenth International Conference on Machine Learning, Vol. 30, pp. 282289, 2001 .

[5] Graham Neubig, Yosuke Nakata, and Shinsuke Mori. Pointwise prediction for robust, adaptable Japanese morphological analysis. In Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies, pp. 529-533, Portland, Oregon, USA, June 2011. Association for Computational Linguistics.

[6] Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. Roberta: A robustly optimized bert pretraining approach. arXiv, 2019. abs/1907.11692.

[7] Arseny Tolmachev, Daisuke Kawahara, and Sadao Kurohashi. Shrinking Japanese morphological analyzers with neural networks and semi-supervised learning. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pp. 2744-2755, Minneapolis, Minnesota, June 2019. Association for Computational Linguistics.

[8] Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural Computation, Vol. 9, No. 8, pp. 1735-1780, 1997.

[9] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, L ukasz Kaiser, and Illia Polosukhin. Attention is all you need. In I. Guyon, U. Von Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett, editors, Advances in Neural Information Processing Systems, Vol. 30. Curran Associates, Inc., 2017.

[10] Yu Sun, Shuohuan Wang, Shikun Feng, Siyu Ding, Chao Pang, Junyuan Shang, Jiaxiang Liu, Xuyi Chen, Yanbin Zhao, Yuxiang $\mathrm{Lu}$, et al. Ernie 3.0: Large-scale knowledge enhanced pretraining for language understanding and generation. arXiv, 2021. abs/2107.02137.

[11] Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc Le, and Ruslan Salakhutdinov. Transformer-XL: Attentive language models beyond a fixed-length context. In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, pp. 2978-2988, Florence, Italy, July 2019. Association for Computational Linguistics.

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

[13] Anne Lauscher, Ivan Vulić, Edoardo Maria Ponti, Anna Korhonen, and Goran Glavaš. Specializing unsupervised pretraining models for word-level semantic similarity. In Proceedings of the 28th International Conference on Computational Linguistics, pp. 1371-1383, Barcelona, Spain (Online), December 2020. International Committee on Computational Linguistics.

[14] Yoav Levine, Barak Lenz, Or Dagan, Ori Ram, Dan Padnos, Or Sharir, Shai Shalev-Shwartz, Amnon Shashua, and Yoav Shoham. SenseBERT: Driving some sense into BERT. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pp. 4656-4667, Online, July 2020. Association for Computational Linguistics.

[15] Zhe Zhao Zhiruo Wang Qi Ju Haotang Deng Ping Wang Weijie Liu, Peng Zhou. K-BERT: Enabling language representation with knowledge graph. In Proceedings of AAAI 2020, 2020.

[16] Satoshi Sekine. Extended named entity ontology with attribute information. LREC, 2008

[17] Sadao Kurohashi and Makoto Nagao. Building a japanese parsed corpus. In Treebanks: Building and Using Parsed Corpora, Text, Speech and Language Technology, p. 249-260. Springer Netherlands, Dordrecht, 2003.

[18] Masatsugu Hangyo, Daisuke Kawahara, and Sadao Kurohashi. Building a diverse document leads corpus annotated with semantic relations. In Proceedings of the 26th Pacific Asia Conference on Language, Information, and Computation, pp. 535-544, 2012.

[19] Alexis Conneau, Kartikay Khandelwal, Naman Goyal, Vishrav Chaudhary, Guillaume Wenzek, Francisco Guzmán, Edouard Grave, Myle Ott, Luke Zettlemoyer, and Veselin Stoyanov. Unsupervised cross-lingual representation learning at scale. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pp. 8440-8451, Online, July 2020. Association for Computational Linguistics.

[20] Guillaume Wenzek, Marie-Anne Lachaux, Alexis Conneau, Vishrav Chaudhary, Francisco Guzmán, Armand Joulin, and Edouard Grave. CCNet: Extracting high quality monolingual datasets from web crawl data. In Proceedings of the Twelfth Language Resources and Evaluation Conference, pp. 40034012, Marseille, France, May 2020. European Language Resources Association.

## A 学習時のハイパーパラメータ

表 4 に, 学習を行った際のハイパーパラメータを掲載する.

## Ｂ異なる学習データセットを用いた場合の精度

表 5 に, 本文中に掲載していない $\mathrm{KC}+\mathrm{KW}$ で学習を行った際の精度を掲載する。

表 $5 \mathrm{KC}+\mathrm{KW}$ を用いた分かち書きと品詞・活用付与の精度 (F1). KWJA の FKC での精度と Juman++の精度以外について，表中で最も高い精度を示したモデルの値を太字で示した。

(C) The Association for Natural Language Processing, (Licensed under CC BY 4.0）https://creativecommons.org/licenses/by/4.0/


# テキスト生成モデルによる日本語形態素解析

児玉 貴志 ${ }^{1}$ 植田 暢大 ${ }^{1}$ 大村 和正 ${ }^{1}$
清丸 寛一 ${ }^{1}$ 村脇有吾 ${ }^{1}$ 河原 大輔 ${ }^{2}$ 黒橋禎夫 ${ }^{1}$
1 京都大学 2 早稲田大学
$\{$ kodama, ueda, omura, ki yomaru, murawaki , kuro\}@nlp. ist.i.kyoto-u.ac.jp
dkw@waseda.jp

## 概要

統合的日本語解析器 KWJA 1.0 は形態素解析を汎用言語モデルに基づくトークン分類問題として定式化した. しかし単語の読み，原形等はラベル集合が開放的であり，分類問題としては扱いづらい。本研究ではそうしたタスクをテキスト生成モデルで解く手法を提案する. 提案手法は実装とタスク設計を単純化しつつ，特に読みと代表表記の推定で既存の形態素解析器を上回る精度を示した. 提案手法は $\mathrm{KWJA}^{1)}$ の形態素解析モジュールとして実装する予定である。

## 1 はじめに

BERT [1] 等の汎用言語モデルは言語の基礎的な解析においても威力を発揮している [2,3]. 汎用言語モデルの強力な文脈処理能力を利用すると，単語分割や品詞付与等の日本語形態素解析のサブタスクは単純なトークン分類問題として定式化できる. 単語分割であれば各文字に B，I を，品詞付与であれば各サブワードに品詞ラベルを付与すれば良い.この手法は辞書引きに基づいてラティスを構築する従来手法と比べて単純だが，高い精度を達成している。

しかし，形態素解析のすべてのサブタスクがトー クン分類問題として定式化しやすいわけではない.読み，原形等はラベル集合が開放的だからである。図 1 に示すように，入力サブワード（「京都」）に対応する読みのサブワード（「きょうと」）が存在しなかった場合，複数のサブワード（「きょう」，「と」） で読みを表現する必要があり，入力と出力が一対一対応の分類モデルでは対処できない. 単語の原形や代表表記2)でもこうした問題は存在する. 統合的日

1) https://github.com/ku-nlp/kwja

2）各単語に対して与えられた ID. 同一の語の表記摇れには同一の代表表記が与えられる。代表的な表記とその読みのぺアで「京都/きょうと」のように表記される.

図 1 サブワードによる読み推定の誤り例

本語解析器である KWJA $1.0[3]^{3)}$ ではこうした問題に対して，タスクごとにルールや辞書引き等で個別に対応しており，開発の負担や新語への対応等に課題が残る。

本研究では，トークン分類問題としては扱いづらい形態素解析の一部のサブタスクを，注釈付与コー パスから直接的に学習したテキスト生成モデルで解く手法を提案する. 具体的には，入力文から見出し語 (分かち書きされた単語)，読み，原形，代表表記を所定のフォーマットに基づき end-to-end で生成する. エンコーダ・デコーダモデルを用いたテキスト生成は，サブワードの入出力が一対多（もしくは多対一）となっている場合でも対処できる。また，夕スクごとに固有の処理を行う必要がなく，実装を単純化できる。

実験の結果，提案手法は実装とタスク設計の単純化に成功しつつ, 分類モデルを用いた従来の解析器より，特に読みと代表表記を高い精度で推定できることが分かった．ただ，入力文に含まれない文字列が見出し語として解析結果に出てきてしまう例が少数だが確認された。そこで，見出し語を生成する際は入力文に含まれる文字列（サブワード）のみを生成するようにモデルの出力を補正する，見出し語強制デコーディングを提案する。この手法により提案手法のさらなる改善が見られた。

さらに，かな表記入力の曖昧性解消についても検

3） 執筆時点でのバージョンは 1.2.2であり，このバージョンの KWJAを KWJA 1.0 と表記する.

図 2 KWJA の形態素解析モジュールの概要

討する。例えば「こうえん」は文脈によって「公園」 と「講演」のどちらにもなりうる。コーパス中にはこういったかな表記の単語が少ないため，漢字表記の単語を曖昧性のあるかな表記に置き換えることで疑似データを作成し，学習・評価に使用した. 実験の結果, 置き換えた単語について曖昧性解消の精度が大きく向上することを確認した.

## 2 関連研究

日本語形態素解析は辞書引きに基づいてラティスを構築する手法 $[4,5]$ が主流であったが，汎用言語モデルの登場にともない，単語（サブワード）列の各トークンにラベルを付与するトークン分類問題として解く手法が実用的な精度を達成している [3].

汎用言語モデルに基づく統合的日本語解析器 KWJA [3] は入力誤り訂正から談話関係解析までを統合的に扱うが，このうち形態素解析モジュールの概要を図 2 に示す. 単語列を入力とし，その単語に対する品詞・活用 (品詞, 品詞細分類, 活用型, 活用形の 4 つ)，読み，原形，意味情報4)を付与する。品詞・活用の付与はトークン分類問題を解くだけで完結する．ただし，読みは単語ではなくサブワードごとに推定している.この訓練データを作成するために，コーパスに単語単位で付与されている読みをサブワード単位に分割するアラインメント処理を動的計画法を用いて事前に行っている. 原形は活用型，活用形をもとに活用変化表を参照し，正規化見出し語5)からルールで出力している。また，意味情報は読み，原形，品詞，品詞細分類，活用型をキー として，あらかじめ作成しておいた辞書を引いて， マッチした辞書項目の意味情報を出力している. 本研究では，トークン分類問題として定式化すると煩雑な処理が必要となるこうしたサブタスクを，テキスト生成モデルを使用した単純な手法で解く。

トークン分類問題をテキスト生成モデルで解く研

4）人手によって整備された，単語に対する付加情報. 代表表記やカテゴリ, ドメイン等を含む.

5）非標準表記を正規化する処理（「びみょーー」 $\rightarrow$ 「びみょう」）と，連濁により語頭のカナが濁音化した単語を戻す処

 \\

図 3 モデルの入出力フォーマット. EOS は文末を表す特殊記号.

究はこれまでにも存在する。T5 [6] は要約や翻訳のほかに，分類問題も text-to-text で解けるように設計されたテキスト生成モデルである。また，GPT-3 [7] は 1,750 億パラメータを持つ巨大な汎用言語モデルであり，モデルに与えるプロンプトを適切に設計することで分類問題も解くことができる. 本研究では T5 の多言語対応版である $\mathrm{mT5}$ [8] を使用する.

テキスト生成モデルに決まった順番やフォー マットを遵守させるのは難しい。しかし，GitHub Copilot $^{6)}$ のようなコーディング規約に則ってコードを生成できるシステムの台頭を踏まえると，言語解析への利用も現実的な水準に達しているといえる.

## 3 提案手法

本節ではまず，テキスト生成モデルで形態素解析を行う手法とモデルの入出力フォーマットについて説明する (3.1 節)。そして提案手法の追加要素である，見出し語強制デコーディング（3.2 節）と疑似データによる曖昧性解消（3.3 節）について説明する。

## 3.1 テキスト生成モデルによる形態素解析

提案手法では，解析対象の文をテキスト生成モデルに入力し, 所定のフォーマットに基づき形態素解析の結果を生成して出力する. モデルの入出力フォーマットを図 3 に示す. 入力文の先頭に「解析：」をつけてからモデルへと入力する. 出力フォー マットは Juman++ [5] ${ }^{7}$ の出力を参考に設計した.各行は見出し語を先頭に読み，原形，代表表記の順に並んでおり，単語ごとに改行することで分かち書きを表現している8).

6) https://github.com/features/copilot

7) https://github.com/ku-nlp/jumanpp/

8）分かち書きを生成モデルで行う必要性は大きくないが，分かち書きを行うモジュールを別途使用する際の計算コストを考慮し, 本研究では分かち書きも生成モデルで行う。
見出し語は分かち書きされた単語で，読みはその見出し語の読みを平仮名で記したものである. 原形は見出し語が活用変化していない場合の形である.代表表記は表記摇れの問題を形態素解析のレベルで吸収するための単語 ID であり，漢字表記やかな表記といった異なる表記でも同一の語であれば同一の代表表記が与えられる9)．意味情報と代表表記は一対一で対応しているため，代表表記を正しく推定することで意味情報を一意に付与できる.

トークン分類問題で定式化した場合，これらのサブタスクを解くのには煩雑な処理が必要である．提案手法は入出力のフォーマットを定義するだけで， あとは注釈が付与されたコーパスからデータドリブンで学習することができる.

## 3.2 見出し語強制デコーディング

生成モデルは尤度の高い単語を選んで生成していく. その結果「研究」と入力したにも関わらず，見出し語として「研修」が生成される等，入力文に含まれない文字列を見出し語として生成してしまう場合がある.

そこで見出し語（＝各行の先頭）を生成する際は，入力文に含まれる文字列（サブワード）のみを生成するようにモデルの単語生成確率を補正する. 具体的に図 3 の例で説明すると，「自然言語処理の」まで解析し終えたら, 入力文のうち未解析の部分文字列（=「研究をしている」）の先頭と一致するサブワード（「研」「研究」）を語彙の中から探す.この一致したサブワード以外のサブワードの生成確率を 0 にすることで，入力文に含まれる文字列を強制的に見出し語として生成できる.

## 3.3 疑似データによる曖昧性解消

「子どもとこうえんに行く」という入力中の，かな表記の「こうえん」が「公園」か「講演」かは曖昧性がある。しかしこの「こうえん」の代表表記を 「公園にうえん」と特定することができれば曖昧性を解消でき，意味情報を一意に付与できる．複数サブワードからなる代表表記を分類モデルで推論するのは難しいため, KWJA 1.0 では曖昧性解消は行わず，該当する候補を全て列挙して出力している（上記の例では「公園にうえん」と「講演にうえん」).本研究では 1 つの見出し語に対し, 代表表記を 1

9) https://usermanual.wiki/Document/manual . 643701001 pdf表 1 各コーパスの文数

表 2 疑似データの統計. 各セルの左側が置き換えられた単語を含む文数，右側が置き換えられた単語数である。

つだけ生成することでこの曖昧性解消を行う．しかしコーパスには曖昧性のある，かな表記の単語が少ないため，かな表記の入力（「こうえん」）から代表表記（「公園にうえん」）を上手く生成できない，そこで漢字表記の単語をかな表記に置き換えた疑似データを作成し10), 元データに追加して学習・評価を行う. 本研究では漢字表記の名詞を置き換え対象とし，ランダムに選んで置き換える ${ }^{11)}$.

## 4 実験

## 4.1 コーパスと評価指標

本研究では京都大学テキストコーパス (KC) [9] ${ }^{12)}$, 京都大学ウェブ文書リードコーパス (KWDLC) [10] ${ }^{13)}$ ，注釈付き不満買取センター コーパス (Fuman) ${ }^{14)}$ の 3 種類のコーパスを用いる. モデルへの入力単位は文とし, 文の分割境界はコー パスの注釈にならう．表１に各コーパスの文数を示す15). 学習は 3 つのコーパスを全て混ぜて行い，評価は各コーパスごとに行う。評価には単語単位の F1 スコア [5]を用いる.

## 4.2 モデル

以下の 2 つのモデルを比較する.

Proposed 汎用言語モデルである mT5 [8] の XL モデル ${ }^{16)}$ を cross entropy loss を損失関数として fine-tuning する ${ }^{17)}$.

10）付録 Aに疑似データの作成例を示す.

11）本研究では置き換える対象を名詞に限定したが，活用のある動詞等への拡張は今後の課題である.

12) https://github.com/ku-nlp/KyotoCorpus

13) https://github.com/ku-nlp/KWDLC

14) https://github.com/ku-nlp/AnnotatedFKCCorpus/

15）最大系列長は大力が 128 トークン，出力が 512 トークン

とし，これらを超える文は学習と評価から除外している。

16) https://huggingface.co/google/mt5-xl

17）付録 B に実験設定の詳細を示す.
表 3 各コーパスごとの F1 スコア. 各セルには「分かち書き/読み/原形/代表表記」の形式でスコアを記載している.

行は疑似データで置き換えた単語のみに評価対象を限定した結果である.

表 4 出力の入力文復元率 (\%). 文単位で計算し, 入力文が出力の見出し語列と同一であれば「復元」と判定.

KWJA KWJA の Large モデル版を使用する18).汎用言語モデルとして RoBERTa [11] Large ${ }^{19)}$ 20) を採用しており, 現時点で公開されている KWJA のモデルの中で最も高精度である.

また Proposed に以下の 2 つの要素を追加した条件でも比較を行う.

Forced Surface Decoding (FSD) 見出し語強制デコーディング（3.2 節）を使用.

Disambiguation using Pseudo Data (DPD) 疑似データ（3.3 節）を元の学習データに加えて学習したモデルを使用. 疑似データの統計を表 2 に示す. 1 文あたり約 1 個の単語が置き換えられているが, それ以外の単語は元データと同一である。

## 4.3 結果

表 3 の上 4 行に実験結果を示す. Proposed はコー パスによっては分かち書きと原形で KWJA にやや劣っているものの, 読みと代表表記ではどのコーパスでも一貫した精度向上が見られる. 提案手法は煩雑な処理を行うことなく, 入出力のフォーマットを定義するだけで高い精度を達成できている。

さらに見出し語強制デコーディングを加えた Proposed + FSD では 4 項目全てで精度が底上げされており，分かち書きと原形も KWJA とほぼ同等レべルまで達している. 表 4 に出力の入力文復元率を示

19) https://huggingface.co/ku-nlp/ roberta-large-japanese-char-wwm

20) https://huggingface.co/nlp-waseda/ roberta-large-japanese
す. Proposed でも十分高い精度だが，見出し語強制デコーディングを導入することで KC，KWDLCでは $99 \%$ を上回っており，形態素解析器として実用に耐える復元率になっている。

一方，疑似データを加えた Proposed + FSD + DPD では全体的な精度低下が見られる。疑似データは元データの一部の単語を置き換えることで作成しており，その他の単語は元データと同一である. そうした疑似データを元データに加えて学習した結果，学習される単語に偏りが生じ，全体的に精度が低下したと考えられる。

次に疑似データで置き換えた単語のみに限定して評価した結果を表 3 の下 2 行に示す. 疑似データによって全体的に精度が向上しており, 特にスコアが低かった代表表記は大きな精度向上が見られる. Proposed + FSD では「こうえん/こえん」のように，漢字で生成すべき部分を平仮名で生成してしまうケースが多かったが，Proposed + FSD + DPD は 「公園にうえん」のように正しく生成できていた. このように置き換え箇所に対しては一定の精度向上が見られたものの，置き換えていない箇所は精度が低下してしまっている. 今後疑似データの作成方法や追加する量等について検討を進める予定である.

## 5 おわりに

本研究では分類モデルが扱いづらいタスクを対象に，テキスト生成モデルを用いた日本語形態素解析に取り組んだ。実装とタスク設計を単純化したにも関わらず，分かち書きと原形では分類モデルと同水準の精度を出しつつ，読みと代表表記では分類モデルを上回る精度を示した. 今後は曖昧性解消に向けた疑似データの活用法について検討を続ける。本研究で提案した手法は KWJA 2.0 として実装・公開予定である ${ }^{21)}$.

21）付録CにKWJA 1.0 から 2.0 における主な変更点を示す.

## 謝辞

本研究で用いた汎用言語モデルの一部は，学際大規模情報基盤共同利用・共同研究拠点 2022 年度公募型共同研究課題「大規模な日本語モデル構築・共有のためのプラットフォームの形成」 (jh221004) において構築した。

## 参考文献

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

[2] 松田寛. GiNZA - Universal Dependencies による実用的日本語解析. 自然言語処理, Vol. 27, No. 3, pp. 695-701, 2020.

[3] 植田暢大, 大村和正, 児玉貴志, 清丸寛一, 村脇有吾,河原大輔, 黒橋禎夫. KWJA：汎用言語モデルに基づ <日本語解析器. 第 253 回自然言語処理研究会, 京都, 2022.

[4] Sadao Kurohashi, Toshihisa Nakamura, Yuji Matsumoto, and Makoto Nagao. Improvements of Japanese Morphological Analyzer JUMAN. In Proceedings of the International Workshop on Sharable Natural Language Resources, pp. 22-38, 1994.

[5] Arseny Tolmachev, Daisuke Kawahara, and Sadao Kurohashi. Juman++: A Morphological Analysis Toolkit for Scriptio Continua. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations, pp. 54-59, Brussels, Belgium, November 2018. Association for Computational Linguistics.

[6] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J. Liu. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research, Vol. 21, No. 140, pp. 1-67, 2020.

[7] Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, Tom Henighan, Rewon Child, Aditya Ramesh, Daniel Ziegler, Jeffrey Wu, Clemens Winter, Chris Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray, Benjamin Chess, Jack Clark, Christopher Berner, Sam McCandlish, Alec Radford, Ilya Sutskever, and Dario Amodei. Language Models are Few-Shot Learners. In H. Larochelle, M. Ranzato, R. Hadsell, M.F. Balcan, and H. Lin, editors, Advances in Neural Information Processing Systems, Vol. 33, pp. 1877-1901. Curran Associates,
Inc., 2020 .

[8] Linting Xue, Noah Constant, Adam Roberts, Mihir Kale, Rami Al-Rfou, Aditya Siddhant, Aditya Barua, and Colin Raffel. mT5: A massively multilingual pre-trained textto-text transformer. In Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pp. 483-498, Online, June 2021. Association for Computational Linguistics.

[9] Sadao Kurohashi and Makoto Nagao. Building a Japanese Parsed Corpus while Improving the Parsing System. In Proceedings of the NLPRS, pp. 719-724, 1998.

[10] 萩行正嗣, 河原大輔, 黒橋禎夫. 多様な文書の書き始めに対する意味関係タグ付きコーパスの構築とその分析. 自然言語処理, Vol. 21, No. 2, pp. 213-247, 2014.

[11] Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692, 2019

[12] Ilya Loshchilov and Frank Hutter. Decoupled Weight Decay Regularization. In International Conference on Learning Representations, 2019.

[13] Thomas Wolf, Lysandre Debut, Victor Sanh, Julien Chaumond, Clement Delangue, Anthony Moi, Pierric Cistac, Tim Rault, Remi Louf, Morgan Funtowicz, Joe Davison, Sam Shleifer, Patrick von Platen, Clara Ma, Yacine Jernite, Julien Plu, Canwen Xu, Teven Le Scao, Sylvain Gugger, Mariama Drame, Quentin Lhoest, and Alexander Rush. Transformers: State-of-the-art natural language processing. In Proceedings of the $\mathbf{2 0 2 0}$ Conference on Empirical Methods in Natural Language Processing: System Demonstrations, pp. 38-45, Online, October 2020. Association for Computational Linguistics.

[14] Pengcheng He, Xiaodong Liu, Jianfeng Gao, and Weizhu Chen. DeBERTa: Decoding-enhanced BERT with Disentangled Attention. In International Conference on Learning Representations, 2021.

見出し語 $\square$ 読み $\square$ 原形 $\square$ 代表表記

図 4 疑似データの作成例

## A 疑似データの例

図 4 に疑似データの作成例を示す. 元データの漢字表記の「公園」を，疑似データの入力と出力ではそれぞれかな表記の「こうえん」に置き換えている。

## B 実験設定の詳細

バッチサイズは 64 に設定し，最大で 30 エポック学習した. 各エポックの終了時に, 開発データに対する各コーパスごとの損失を計算し，その平均值が最も低いモデルを採用した。また，3エポック連続で損失の改善が見られなければ学習を打ち切った. オプティマイザには AdamW [12] を使用し, 学習率は $5 e-4$ とした. またウォームアップのステップ数を 250 に設定した，逆平方根学習率スケジューリングを採用した. 実装には Hugging Face ${ }^{22)}$ が提供する transformers [13] 及び Microsoft が提供する DeepSpeed ${ }^{23)}$ を使用した。学習には NVIDIA A100 80GB 4 枚を使用し約 13 時間かかった. 推論時にはビーム幅 3 のビームサーチを行った.

## C KWJA 2.0 に向けて

本論文で提案した手法は統合的日本語解析器 KWJA 2.0 の形態素解析モジュールとして実装する予定である. KWJA 1.0 から 2.0 におけるその他の変更点は以下のとおりである.

学習ベースの文分割 KWJA 1.0 では文分割を規則に基づく文分割器で行っていた. KWJA 2.0 ではこれを学習ベースの文分割器で置き換える。これに

22) https://huggingface.co/

23) https://github.com/microsoft/DeepSpeed
より，ウェブ上のテキスト等，くだけた表現に対して頑健な文分割を実現する。

読みアノテーションの修正 JUMAN 系の解析器 $[4,5]$ では読みの同定は重視されておらず，コー パスのアノテーションにおいても，自動付与された読みの修正は基本的に行わないとされていた。 KWJA が文脈に応じた読み推定を行えるようになったことを受けて，読みアノテーションの修正を進めている.

## 汎用言語モデルにおける DeBERTa の採用 DeBERTa [14] は RoBERTa [11] に対して相対位置埋 め込みを含む種々の改善を施したモデルである. KWJA 2.0 では，汎用言語モデルとして RoBERTa の 代わりに日本語テキストで事前学習した DeBERTa を採用する。これにより，タスク全体の精度向上が 見込まれる。


# 最小コスト法に基づく形態素解析における CPU キャッシュの効率化

神田峻介 1 赤部晃一 1 後藤啓介 1 小田悠介 ${ }^{2}$
${ }^{1}$ LegalOn Technologies Research ${ }^{2}$ 東北大学 データ駆動科学・AI 教育研究センター
\{shunsuke.kanda, koichi.akabe, keisuke.goto\}@legalontech.jp
yusuke.oda.c1@tohoku.ac.jp

## 概要

最小コスト法に基づく形態素解析において、木の探索やコスト行列の参照により発生するランダムアクセスは、CPU キャッシュ効率低下の原因となる。本稿では、参照の局所性を改善するデータ構造を提案し、解析速度の改善を図る。実験の結果、提案法を適用しなかった場合と比べ、提案法は $40 \%$ 程度の時間短縮を達成した。また、提案法を組み込んだ形態素解析器 Vibrato $^{1)}$ を新たに開発し、既存のソフトウェアよりも高速に動作することを実証した。

## 1 はじめに

形態素解析は、自然言語を大力とし、形態素の列を返す処理である。日本語の情報検索やテキストマイニングなどの自然言語処理において、形態素解析は重要な前処理である。形態素解析を実現する代表的な手法の 1 つに最小コスト法 [1] があり、MeCab [2] や Sudachi [3] などの形態素解析器で利用されている。

最小コスト法の時間的ボトルネックの一つに、辞書の肥大化に伴う CPU キャッシュ効率の低下が挙げられる。単語列挙のための木構造の探索や、コス卜計算のための行列参照では、メモリ上のランダムアクセスが頻繁に発生する。巨大な辞書では、このランダムアクセスがキャッシュミスを引き起こし、速度低下の原因となる。

本稿では、参照の局所性の良いデータ構造を設計し、キャッシュ効率を改善することで最小コストの高速化を達成する。IPADIC [4] や Neologd [5]、 UniDic [6, 7] を使った実験により、その有効性を実証する。実験の結果、提案法を適用しなかった場合と比べて、提案法は $40 \%$ 程度の高速化を達成した。

図 1 入力文「元気になった」についての形態素ラティス。太線はコストの和が最小となる経路を表す。

また、提案法を実装した形態素解析器 Vibrato を新たに開発した。実験により、Vibrato は MeCab の 2 倍以上の速度性能であることを実証する。

## 2 最小コスト法

## 2.1 アルゴリズム

最小コスト法は、以下の手順により入力文から形態素列2)を得るアルゴリズムである。

1. 入力文に現れる形態素をノードとしたグラフ構造（形態素ラティス）を構築

2. コストが最小となる経路を探索し、対応する形態素列を出力

図 1 に入力文「元気になった」から構築された形態素ラティスを示す。BOS と EOS は、文の先頭と末尾を表すダミーのノードである。形態素に対応するノードと形態素の並びの対応するエッジにはコストが割り当てられる。ノードのコストは、その形態素自体の出現しやすさを表す。エッジのコストは、 その形態素の並びの出現しやすさを表す。以降では、形態素辞書やコスト値は所与として各手順を説明する。

形態素ラティスの構築入力文が与えられたとき、形態素ラティスは以下のように構築される。

2）本稿では、辞書のエントリを形態素と呼ぶ。

1. 入力文に現れる形態素を列挙（辞書引き）

2. 形態素をノードとして、文の位置について隣り合うノード同士をエッジで連結

辞書引きはトライ [8] という木構造を使って効率的に計算できる。詳しくは 3 節で解説する。

経路の探索形態素ラティスの BOS から EOS までを繋ぐ、コストの和が最小となる経路を探索する。そして、その経路に対応する形態素列を解として出力する。例えば、図 1 では太線の経路が該当する。そのような経路は、ビタビアルゴリズム [9]を用いてエッジ数に線形の時間で計算できる。

## 2.2 高速化の方針

本研究では、最小コスト法のボトルネックは以下の 2 点であると指摘し、これらを解消することで解析速度の改善を試みる。

$\cdot$辞書引きでのトライの探索
- 経路探索中のコストの参照

これらに共通する点は、メモリ上の頻繁なランダムアクセスである。巨大な辞書では、このランダムアクセスがキャッシュミスを引き起こし、速度低下の原因となる。そこで、それぞれに参照の局所性が良いデータ構造を設計する。詳しくは、 3 節と 4 節で解説する。

## 3 辞書引きのキャッシュ効率化

## 3.1 事前知識

多くの形態素解析器では、トライ [8]を使った共通接頭辞検索により辞書引きを実現する。トライとは文字列の接頭辞を併合して構築される木構造であり、図 2 に見られるようにエッジにラベルを付随したオートマトンの一種である。共通接頭辞検索とは、あるクエリ文字列の接頭辞として現れる登録文字列を列挙する操作であり、文字を使って根からノードを遷移することで実現される。形態素をトライに登録し、入力文の全ての開始位置から共通接頭辞検索を実行することで辞書引きは実現される。

トライを表現するデータ構造としてはダブル配列 [10] が広く用いられている。ダブル配列とは、ノー ドからノードへの探索を定数時間で実現する高速なデータ構造である。入力文の長さを $N$ 、登録形態素の最大長 $K$ としたとき、ダブル配列を使った場合の辞書引きの実行時間は $O(N K)$ である。

図 2 形態素「元気」「活気」を登録したトライ。文字列のエンコードが Unicode である場合の、上図は Bytewise で表現した例、下図は Charwise で表現した例を示す。

## 3.2 背景と問題点

ダブル配列の代表的な実装として、Darts ${ }^{3}$ や Darts-clone ${ }^{4}$ があり、MeCab や Sudachi などで用いられている。これらの共通点として、文字列をそのデータ表現のバイト列として扱う点が挙げられる。 この方法を Bytewise と表記する。図 2 の上部に例を示す。

Bytewise の利点は、文字列のエンコードに関わらずバイト列として処理できることと、エッジラベルの種類数の上限が 256 に定まることである。これらは実装の汎用性や容易さに関係する。

Bytewise の欠点は、日本語などのマルチバイト文字を扱う場合にバイト列が長くなることである。図 2 の例では、Unicode で符号化された長さ 2 の形態素「元気」が、長さ 6 の UTF-8 バイト列として表現されている。これは「元気」を検索するときに 6 回のランダムアクセスが必要となることを意味し、 キャッシュミス増加の原因となる。

## 3.3 改善案

文字列を Unicode のコードポイント値の系列として処理する。この改善案を Charwise と表記する。図 2 の下部に例を示す。

日本語の多くの文字は UTF-8 で 3 バイトを使って表現される。そのような文字について、Charwise では Bytewise に比べランダムアクセスの回数を 3 分の 1 に削減できる。ダブル配列では定数時間でノードの探索ができるので、計算量にも影響は無い。

Charwise の実装上の注意点は、エッジラベルの種類数が大きくなる点である。コードポイント值は U+0000 から U+10FFFF までの 110 万種類を扱う。そのようなダブル配列は、素朴に実装すると構築速度やメモリ効率が低化する [11]。そこで、コード值を

3) http://chasen.org/ taku/software/darts/

4) https://github.com/s-yata/darts-clone
頻度順に割り当て直すことで、多くのコード値が小さい値になるように修正する。自然言語において文字の出現頻度には偏りがあるため、この修正で問題が解消されることが経験的に知られている [11]。

## 4 コスト参照のキャッシュ効率化

## 4.1 事前知識

形態素ラティスのエッジに付随したコストを連接コストとよぶ。連接コストは左側と右側ノードの素性情報のぺアによって決定される。具体的には、形態素には左文脈 ID と右文脈 ID が割り当てられ、それら IDのペアによって連接コストは決定される。

本稿では、左文脈 ID の集合を $X=\{0,1, \ldots,|X|-$ 1\}、右文脈 ID の集合を $Y=\{0,1, \ldots,|Y|-1\}$ と定義する。連接コストは $|X| \times|Y|$ の連接表 $M$ に保存され、文脈 $\operatorname{ID~ペア~}(x, y) \in X \times Y$ の連接コスト値は表 $M$ の $(x, y)$ 成分 $M[x, y]$ に格納される。 $M$ は単純な二次元配列で実装され、 $M[x, y]$ には値 $x, y$ を使って定数時間でアクセスできる。

## 4.2 背景と問題点

現代書き言葉 UniDic [7] では素性を詳細に設計しており、結果として連接表が肥大化している。例えば、IPADIC v2.7.0 では $|X|=|Y|=1,316$ で連接表のサイズは高々 $3.3 \mathrm{MiB}$ である。5)それに対し、UniDic v3.1.0 では $|X|=15,388,|Y|=15,626$ で連接表のサイズは $459 \mathrm{MiB}$ にもなる。事前実験（付録 A）では、解析時間は連接表のサイズに比例して増加する傾向が見られており、参照の局所性の悪化が解析速度の低下の原因になると考察される。

## 4.3 改善案

訓練コーパスを用いて文脈 ID の使用頻度を収集し、よく使用される順に若い文脈 IDを割り当て直す。この方法により、頻繁に使用される連接コスト値がメモリ上で近接する。使用頻度に大きな偏りがある場合、参照の局所性が改善する。図 3 に例を示す。本稿では、標準の文脈 ID を使用する場合を Default、頻度順にマッピングする場合を Mapped と表記する。

頻繁に使われる連接コスト

図 3 文脈 IDを頻度順に割り当て直した例。ある左文脈 ID $x_{i}$ に対応する行と、 $x_{i}$ について右文脈 ID $y_{1}, y_{2}, y_{3}$ の順でコスト値を参照した様子を図示している。 $x_{i}^{\prime}, y_{j}^{\prime}$ は頻度順に割り当て直された文脈 IDを表す。 $y_{1}, y_{2}, y_{3}$ が頻繁に使用される文脈 IDであった場合、 $y_{1}^{\prime}, y_{2}^{\prime}, y_{3}^{\prime}$ は小さい値となる。つまり、その連接コスト值は行の先頭付近に密集し、参照の局所性は改善する。

表 1 辞書の統計

## 5 実験

## 5.1 実験設定

形態素解析用の辞書は以下の 4 種類を評価した。
- ipadic-mecab (v2.7.0) [4]
- ipadic-neologd (2020-09-10) [5]
- unidic-mecab (v2.1.2) [6]
- unidic-cwj (v3.1.0) [7]

文章コーパスには BCCWJ v1.1 $[12,13]$ を使用した。マッピングの訓練にはコアデータ $60 \mathrm{k}$ 文を使用した。形態素解析の速度評価には、サブコーパスからランダムに抽出した $100 \mathrm{k}$ 文を使用した。

手法の実装にはプログラミング言語 Rust を用いた。コンパイルに使用した rustc はv1.63.0であり、最適化フラグは opt-level=3 である。計算機環境は、Intel Core i9-12900K @ 3.2-5.2GHz CPU (Cacheline: 64B, L1d: 640KiB, L2: 14MiB, L3: 30MiB), 64GiB RAM であり、OS は Ubuntu 22.04 である。実験は全てシングルスレッドで実施した。ダブル配列について、Bytewise の実装には Yada v0.5.06)を用いた。

6) https://github.com/takuyaa/yada
表 2 各手法を適用した場合の解析時間 [ms]。括弧内の数値は Bytewise+Default からの変化率を表す。

 &  &  \\

mecab-neologd & 538 & $479(-11.1 \%)$ & $467(-13.3 \%)$ \\
unidic-mecab & 616 & $567(-8.0 \%)$ & $499(-19.0 \%)$ \\
unidic-cwj & 1,012 & $949(-6.3 \%)$ & $587(-42.1 \%)$ \\

表 3 L1 キャッシュへのデータ読み込みにおけるキャッシュミス回数 $\left[10^{6}\right]$ 。括弧内の数値は Bytewise+Default からの変化率を表す。

 &  &  \\

ipadic-neologd & 86.0 & $79.9(-7.1 \%)$ & $56.3(-34.6 \%)$ \\
unidic-mecab & 136.1 & $130.3(-4.3 \%)$ & $71.4(-47.5 \%)$ \\
unidic-cwj & 231.8 & $226.3(-2.4 \%)$ & $104.6(-54.9 \%)$ \\

Charwise の実装には Crawdad v0.3.07)を用いた。

## 5.2 提案法の分析

提案法の Charwise と Mapped を用いた場合の解析速度を評価する。評価データ $100 \mathrm{k}$ 文の解析に要した時間を表 2 に示す。結果は 10 回試行した平均であり、結果中に示す「変化率」は、变化先-変化元で算出した值である。

文脈 ID が Default の場合での Bytewise と Charwise の解析時間を比較する。全ての辞書で Charwise が高速であり、IPADIC では $10 \%$ 以上の改善が確認された。一方で、巨大な連接表を持つ unidic-cwjでは、相対的にコスト参照のボトルネックの方が大きく、 6.3\%の改善に留まった。

続いて、文脈 ID の割り当てを Mapped に変更した場合と比較する。全ての辞書で Mapped が高速であり、特に連接表が最も大きい unidic-cwj では $42.1 \%$ の大きな改善が確認された。

表 3 に、評価データ $100 \mathrm{k}$ 文の解析時に発生した、 L1 データキャッシュへの読み込み時のキャッシュミス回数を示す。計測には perf コマンドを使用し、結果は 100 回試行した平均である。

全ての場合において、提案法によりキャッシュミスの回数が削減している。Charwise 適用時には ipadic-neologd で、Mapped 適用時には unidic-cwj で改善率が最も大きく、提案法が巨大な辞書について効果的であることが確認できる。

これらの結果から、最小コスト法に基づく形態素解析器において、辞書引きとコスト参照のキャッ

表 4 形態素解析器の比較実験の結果。

シュ効率は解析速度に大きな影響を与えることが確認された。特に連接表が巨大な場合、コスト参照にかかる時間の割合が大きく、コスト参照のキャッシュ効率改善が解析の高速化に有効であった。

## 5.3 形態素解析器の比較

提案法の実装である Vibrato の速度性能を、既存の形態素解析器と比較し評価する。比較したソフトウェアは以下の 4 種類である。
- Vibrato v0.1.2
- MeCab v0.996 ${ }^{8}$
- Lindera v0.16.19)
- sudachi.rs v0.6.4-a $1^{10)}$

Vibrato と MeCab は ipadic-mecab と unidic-cwjを用いて評価した。Lindera はライブラリでサポートされている ipadic-mecab と unidic-mecabを用いて評価した。 sudachi.rs は形態素解析器 Sudachi [3] の Rust 移植であり、辞書には SudachiDict-core ${ }^{11)}$ を用いて評価した。計測には tokenizer-speed-bench ${ }^{12)}$ を用いた。

表 4 に結果を示す。IPADIC とUniDic の両方のケースについて、Vibrato が最速であることが確認できた。二番目に高速な $\mathrm{MeCab}$ と Vibrato を比較して、IPADIC で 2.1 倍、UniDic で 2.3 倍高速である。

## 6 おわりに

本稿では、形態素解析の高速化を目的とし、最小コスト法のキャッシュ効率化技法を提案した。実験により提案法の有効性を実証した。また、提案法を実装した形態素解析器 Vibrato を開発し、その速度性能を実証した。今後は機能面と性能面について、 Vibrato のさらなる改良を予定している。

## 参考文献

[1] 久光徹, 新田義彦. 接続コスト最小法による日本語形態素解析. 全国大会講演論文集, 人工知能及び認知科学, pp. 1-2, 1991.

[2] Taku Kudo, Kaoru Yamamoto, and Yuji Matsumoto. Applying conditional random fields to japanese morphological analysis. In Proceedings of the $\mathbf{2 0 0 4}$ conference on empirical methods in natural language processing, pp. 230-237, 2004.

[3] Kazuma Takaoka, Sorami Hisamoto, Noriko Kawahara, Miho Sakamoto, Yoshitaka Uchida, and Yuji Matsumoto. Sudachi: a japanese tokenizer for business. In Proceedings of the 11th International Conference on Language Resources and Evaluation, 2018.

[4] Masayuki Asahara and Yuji Matsumoto. ipadic version 2.7.0 User's Manual. https://ja.osdn. net/projects/ ipadic/docs/ipadic-2.7.0-manual-en. pdf, 2003.

[5] 佐藤敏紀, 橋本泰一, 奥村学. 単語分かち書き辞書 mecab-ipadic-neologd の実装と情報検索における効果的な使用方法の検討. 言語処理学会第 23 回年次大会 (NLP2017), pp. NLP2017-B6-1. 言語処理学会, 2017.

[6] 伝康晴, 小木曽智信, 小椋秀樹, 山田篤, 峯松信明, 内元清貴, 小磯花絵. コーパス日本語学のための言語資源 : 形態素解析用電子化辞書の開発とその応用. 日本語科学, Vol. 22, pp. 101-123, 2007.

[7] 岡照晃. CRF 素性テンプレートの見直しによるモデルサイズを軽量化した解析用 UniDic — unidiccwj-2.2.0 と unidic-csj-2.2.0 一. 言語資源活用ワークショップ 2017 発表予稿集, 143-152.

[8] 青江順一. キー検索技法-IV: トライとその応用. 情報処理, Vol. 34, No. 2, 1993.

[9] Andrew Viterbi. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. IEEE transactions on Information Theory, Vol. 13, No. 2, pp. 260-269, 1967.

[10] Jun'ichi Aoe. An efficient digital search algorithm by using a double-array structure. IEEE Transactions on Software Engineering, Vol. 15, No. 9, pp. 1066-1077, 1989.

[11] Huidan Liu, Minghua Nuo, Longlong Ma, Jian Wu, and Yeping He. Compression methods by code mapping and code dividing for chinese dictionary stored in a doublearray trie. In Proceedings of 5th International Joint Conference on Natural Language Processing, pp. 1189-1197, 2011.

[12] 前川喜久雄. 代表性を有する大規模日本語書き言葉コーパスの構築 (<特集>日本語コーパス). 人工知能, Vol. 24, No. 5, pp. 616-622, 2009.

[13] 国立国語研究所コーパス開発センター. 『現代日本語書き言葉均衡コーパス』利用の手引第 1.1 版. https://clrd.ninjal.ac.jp/bccwj/doc.html, 2015.

図 4 右文脈 ID の使用頻度上位 100 件の割合。値は累積を表し、上位 $k$ 番目の値は 1 番目から $k$ 番目までの割合の合計である。ipadic-neologd の結果は ipadic-mecab と僅差だったため省略している。

表 5 ダブル配列の実装を変化させた場合の解析時間 $[\mathrm{ms}]$ 。括弧内の数値は Default からの変化率を表す。

## A コスト参照についての事前実験

文脈 ID の使用頻度の調査. 文脈 ID の使用頻度の偏りについて調査する。各辞書について、訓練用テキストを解析したときの文脈 ID の使用頻度を算出した。右文脈 ID の使用頻度上位 100 件について、その割合を図 4 に示す。 ${ }^{13)}$ 文脈 ID の使用頻度に大きな偏りが確認された。例えば、右文脈 ID が $15 \mathrm{k}$ 種類も定義されている unidic-cwj

ボトルネックの調査. 巨大な連接表がボトルネックなのかを検証するために、連接表へのアクセスを完全に排除し、連接コスト値を全て0 として解析した場合（Ideal）の結果とも比較する。表 5 に実験結果を示す。unidic-cwjで解析時間が $57 \%$ 短縮した。定数時間の配列参照を取り除いただけの簡単な修正であることから、巨大な連接表への参照がいかにボトルネックであるかが推察できる。

## B 訓練データに関する調査

文脈 ID の使用頻度について、均衡コーパスを用いて算出した場合と、ドメインに特化したコーパスを用いて算出した場合を比較し、訓練コーパスにより Mapped の性能が変化するのかを調査する。

実験設定. BCCWJ サブコーパスは、新聞 (PN) や Yahoo!知恵袋（OC）などの 13 カテゴリから構成される [13]。各カテゴリから $10 \mathrm{k}$ 文ずつをサンプルし、13 種類の評価用データを構築する。そして、各カテゴリについて、以下の 2 つの方法でマッピングを訓練し、解析時間を比較する。

・均衡データ：BCCWJ コアデータからサンプルし得られた 10k 文で訓練

・カテゴリ別 : 各カテゴリの評価用テキスト $10 \mathrm{k}$ 文について 5 分割交差検証

辞書には unidic-cwj を使用する。計算機環境など、その他の実験設定は 5 節と同じである。

13）左文脈 ID の結果も大差は確認されなかった。

図 5 カテゴリ別の評価データについての解析時間。

表 6 各コーパスについて、頻繁に使用された右文脈 ID の上位 10 件。PN は新聞、LB は書籍、OC は Yahoo!知恵袋。ID unidic-cwj で定義されている標準のものを表示。

解析時間に関する結果. 13 カテゴリについて、評価デー タ $10 \mathrm{~K}$ 文の解析に要した時間を図 5 に示す。訓練データをドメインに特化しても、解析時間は大きく変化しないことが確認された。

高頻度な文脈 ID に関する分析. コアデータといくつかのカテゴリで頻繁に使用された右文脈 ID の上位 10 件を表 6 に示す。上位 7 件まではどのコーパスでも同一で、カテゴリによって使用される文脈 ID に大差は無い。

これらの右文脈 ID に対応した素性列を図 7 に示す。頻出 ID は品詞などの一部の情報によって識別可能な形態素に割り当てられている。そして、そのような形態素はドメインを問わずコーパスの大部分を占めている。

これらの結果は、「幅広いドメインのテキストを解析するために、均衡データから訓練したマッピングを一つ持っておけば十分である」ということを示唆している。 つまり辞書を配布する場合、 1 種類のマッピング適用済みの辞書を配布すればよい。

表 7 unidic-cwj で頻繁に使用された素性列の例。


# 最長一致パターンに基づく高速・高精度な日本語形態素解析

吉永 直樹
東京大学生産技術研究所
ynaga@iis.u-tokyo.ac.jp

## 概要

膨大な量のテキストを解析したり，言語処理応用で大量にユーザのクエリを処理する場合，処理効率の悪いモデルは高精度でも利用し難い. 本稿では高効率な手法の精度を改善すべく, 最長一致パターンに基づく高精度な形態素解析手法を提案する. 提案手法では，既存の辞書項目を元に，学習データから抽出したパターンを用いて形態素解析を行う．実験では，複数の品詞タグ付きコーパスと辞書を用いて提案手法の評価を行い，最小コスト法や点推定に基づく形態素解析手法の既存実装と同程度の精度, $1 / 2$ から $1 / 20$ 程度の消費メモリで，1,000,000 文/秒を超える速度の形態素解析が可能なことを確認した. 本手法の実装（C++で約 1000 行）は以下で公開する. http://www.tkl.iis.u-tokyo.ac.jp/ ynaga/jagger

## 1 はじめに

Twitter や Zoom, Slack などのコミュニケーションプラットフォームの普及に従い，電子化された言語データの量は爆発的に増加し続けており, 深層学習によって高精度化された機械翻訳などの実サービスは数千万を超えるユーザを獲得するようになった。 このように，実世界テキストの量や実時間処理するユーザクエリがこれまでになく増加する状況下では，現実的な計算資源で運用できる効率の良い言語処理技術の重要度が高まっている。

しかしながら，深層学習の導入以降，精度に偏重して研究が行われた結果，「効率の良い」手法 [1] は他分野のように処理速度や消費メモリの限界を更新するものではなく, 低速で消費メモリの大きい深層学習モデルの効率を, 深層学習の枠内で相対的かつ限定的に改善するものが大半である. 結果, 最高精度のモデルと古典的ではあるが効率の良いモデルとの間の速度差は埋め難く, 深層学習を用いた高精度の言語処理サービスは，膨大な GPU 資源を有する一部の企業のみが展開するに留まっている.本研究では，遅いモデルの効率を改善するのではなく，効率の良いモデルの精度を改善する，真に 「効率の良い」言語処理を実現すべく，機械学習を経由しない単純で高精度な日本語形態素解析手法を提案する. 日本語における形態素解析は，一般に，単語分割, 品詞解析, 見出し語化の混合タスクとしてモデル化されるが，我々の提案手法は，古典的な最長一致法に基づく単語分割手法を拡張したもので, 次の分割位置と切り出した単語の品詞・見出し語を決定するパターンに基づき形態素解析を行う.解析に用いるパターンは形態素解析辞書の項目をシードとして，学習データから頻度に基づいて抽出する。抽出したパターンはダブル配列 $[2,3]$ に格納し，時空間効率の良い処理を実現する。

実験では，多様なドメインの標準コーパス $[4,5]$ と形態素解析辞書を組み合わせて提案手法の評価を行った. その結果, 提案手法が，探索 (最小コスト法) や分類 (点推定) に基づく実装 (MeCab, Vaporetto) と同程度の精度で，MeCab の約 15 倍，Vaporetto の約 10 倍 (M2 MacBook Air で 1,000,000 文秒以上) の速度で形態素解析を行えることを確認した。

## 2 パターンに基づく形態素解析

本節では，単語分割，品詞タグ付け，見出し語化を同時に行う決定的な形態素解析手法を提案する.速度に妥協のない実装を得るため, 本研究では古典的な最長一致法 [6] を拡張した最長一致パターンに基づく形態素解析アルゴリズムを提案する.

最長一致法は辞書 (単語の集合) に基づく決定的な単語分割手法であり, 入力文字列の先頭から辞書中の単語と一致する最長の文字列を, 繰り返し単語として認識することで単語分割を行う. 最長一致法は，日本語や中国語の単語分割において，修正規則と組み合わせることで高精度化できること $[7,8]$ が知られているが，機械学習を用いた最小コスト法や点推定などの標準的な単語分割手法 $[9,10]$ と比べると分割精度には一定の差 [11] が存在する.

## 2.1 基本的なアルゴリズム

本節では, 単語分割, 品詞タグ付け, 見出し語化 ${ }^{1)}$ を同時に行う決定的な形態素解析アルゴリズムを提案する. Algorithm 1 は，与えられた文字列に対し，トライに格納されたパターン $\mathscr{P}$ 繰り返し適用して, 後続する単語 $w=\boldsymbol{c}_{i}^{i+\text { shift }}$ を切り出すと同時に品詞 (と見出し語) を決定するアルゴリズムである.単語分割に対する最長一致法と同様に, 本手法でも最長一致するパターンが選択・適用されるが，分割位置がパターン長と必ずしも一致しない点に注意されたい， 3 節で確認するように，この単純なアルゴリズムは有効なパターン集合が用意できれば，最小コスト法や点推定などの探索・分類ベースの手法に匹敵する精度で動作する。

本手法は，系列ラベリングや組合わせ特徴に基づく分類器における事前計算 $[9,12,13,14]$ に着想を得ている。これらの効率的な実装では，事前計算した特徴量の重みを，表層など単純な特徴の系列をキー として取得することで推論を行う．機械学習で用いる特徴量が単純なキー (パターン) に畳み込めるのであれば，直接，分類結果 (単語分割の有無, 品詞, 見出し語) に写像可能なパターン (特徴列) が存在しうるというのが本手法の基本的なアイデアである.

## 2.2 辞書に基づく特徵列パターンの抽出

最小コスト法 [9] や点推定 [10] を実装した形態素解析器の素性テンプレートを参考に, 本稿では提案手法のためのパターンテンプレートとして，分割位置以降の表層文字列 $\boldsymbol{c}_{p}$ と直前の単語の品詞 $t_{j-1}$ の連結，すなわち $\boldsymbol{c}_{p} ; t_{j-1}($; は文字の連結) を採用した。

Algorithm 2 は, 形態素解析の学習データから特徵列パターンをマイニングするアルゴリズムである.単語分割, 品詞タグ及び見出し語が付与された学習

データ Dと単語がとりうる品詞タグ・見出し語を定義した形態素解析辞書 $\mathscr{V}$ を力として, 本手法は逐次的に特徴列パターンを学習データから抽出する。

具体的にはまず，学習データ中の全ての単語分割位置に対し，その位置から次の分割位置以降までを含む文字列 $\boldsymbol{c}_{i}^{i+k}$ を表層パターンとして抽出し, 直前の単語の品詞タグ $t_{j-1}$ と組み合わせてパターン候補を得る (4-8 行目). これらのパターン候補に対して，分割位置 (shift) ・品詞タグ $($ ・見出し語, 以後省略) $t$ の頻度を数えて，最多の分割位置・品詞タグをそのパターンが適用されたときの分割位置・品詞タグとして採用する (12-13 行目). 冗長なパターンを枝刈りするために，接頭文字列が同じで分割位置・品詞タグが同じパターンについては，最も短いパターンのみを採用する (14-16 行目)。提案手法は最長一致法と比べて，後続文脈や前文脈品詞について追加の走査が必要となるが，大きなオーバーヘッドとならないことを確認している.2)

## 3 実験

本節では提案手法を多様なドメインの形態素情報付きコーパス $[4,5]$ を用いて評価し，探索や分類に基づく効率的な形態素解析手法 $[9,10]$ と速度，消費メモリ，精度の観点で比較する。

2）Aho-Corasickライクな手法で表層について戻り読みのない処理を行うことも可能だが，逆に処理速度が低下した。
表 1 評価データの統計.

## 3.1 設定

データセット実験では新聞記事に注釈を付与した京都大学テキストコーパス33) (куОто) [4] とウェブページの冒頭三文に注釈を付与した京都大学ウェブ文書リードコーパス ${ }^{4}$ (KWDLC) [5]を用いた。開発・評価データとしては， github リポジトリに含まれる分割を用い，残りを学習データに用いた (表 1).

比較モデル本稿では，以下の実装を比較する。学習ベースのモデルではハイパーパラメタ $c^{5)}$開発データを用いて調整し，活用を含む品詞タグ (level 1-4)の $\mathrm{F}_{1}$ が最大となるモデルを評価に用いた.

Jagger は提案手法の C++実装であり，入力テキストの先頭から後続する表層文字列と前文脈品詞に対して特徴列パターンを繰り返し適用し, 決定的に単語分割, 品詞タグ付け, 見出し語化を行う. これらのパターンは学習データと辞書から抽出される。

$\mathbf{M e C a b}^{6}$ (は最小コスト法の $\mathrm{C}++$ 実装7)であり, 条件付き確率場 [15] により, 学習データからパラメタを推定する [9]. 最小コスト法では，辞書に基づき可能な分割と品詞の組み合わせをラティスで表現して，最尤となる分割・品詞を動的計画法で求める.

Vaporetto は点推定 [10]の Rust 実装9) である. 点推定では，各文字間を分割候補とする二値分類により単語分割を行った後, 各単語に対して多クラス分類により品詞タグ付けを行う. 公平な比較のために，単語特徴量には他の手法と同じ形態素解析辞書を用いる. Vaporettoでは単語の品詞候補ごとに分類器を学習しており，学習データに出現しない単語10)には，辞書中で最初に現れる品詞タグが付与される [16].

3) https://github.com/ku-nlp/KyotoCorpus

4) https://github.com/ku-nlp/KWDLC
5) $c=\{0.1,0.2,0.5,1.0,2.0,5.0,10.0\}$ を試した.

6) https://taku910.github.io/mecab/

7） $\mathrm{MeCab}$ の高速な再実装である Vibrato $\left.^{8}\right)$ は，今回用いた実験設定で品詞タグ付けまで行うと， MeCabより遅くメモリ消費も大きかったため，比較しなかった.

8) https://github.com/daac-tools/vibrato

9) https://github.com/daac-tools/Vaporetto

10）学習データにも辞書にも出現しない単語には品詞タグが付与されないため, 文献 [9]を参考にサ変名詞を割り当てた. なお，この処理にかかる時間は処理速度には含めない.表 2 形態素解析辞書の統計

なお, Rust と C++が生成するコードの実行速度は，多くのベンチマークで同程度 ${ }^{11)}$ である.

提案手法は，大域的な最適化を行う最小コスト法よりは，局所的な最適化を行う点推定に近い手法であるが，二つの点で異なる. まず，提案手法は全ての文字間に対して分割の有無を判定するのでなく, パターンに基づき，次の分割位置を決定する (分類問題としては次の分割位置を予測する多クラス分類に相当)。また，提案手法では，単語分割，品詞タグ付け (，見出し語化)を同時かつ決定的に行う.

形態素解析辞書各手法が用いる辞書としては,形態素解析器 JUMAN ${ }^{12)}$ の辞書を MeCab 用に変換したものを用いる。具体的には mecab-jumandic-5.120070304 と mecab-jumandic-7.0-20130310を，辞書の質とカバレッジの影響を分析するために比較する。 このうち, jumandic-7.0ではウェブから自動獲得した語彙 [17] が含まれており, 収録語数が 475,716 語 (jumandic-5.1) から 702,358 語 (jumandic-7.0) に増加している. 品詞タグは 4 階層 (2 段階の品詞分類, 活用型, 活用形) からなる形態・統語論的なカテゴリが付与されている (表 2).

評価方法解析精度に関する評価尺度としては,既存研究 [9] に倣い，単語分割と品詞タグに関する精度, 再現率, $\mathrm{F}_{1}$ 値を用いる. 処理効率の評価としては，評価データを 1000 回コピーしたデータの解析時間 (秒), 解析速度 (文秒), 最大消費メモリ (MiB)を/usr/bin/time - l コマンドにより 3 回計測して，中央値となる処理時間 (速度) と，そのときの最大消費メモリを報告する. 実験は $3.5 \mathrm{Ghz} \mathrm{CPU}$ と主記憶 $24 \mathrm{~GB}$ を備えた M2 MacBook Air 上で行った. なお，付録 $\mathrm{C}, \mathrm{D}$ に単語分割のみの評価，及び深層学習に基づく形態素解析器との比較を載せた.

## 3.2 結果

表 3, 4 に кYото, кWDLC コーパスでの単語分割・品詞タグ付けの評価結果を示す. 我々の提案手法の参照実装である Jaggerが，最小コスト法を実装した MeCab や点推定を実装した Vaporetto と遜色のない

11) https://github.com/kostya/benchmarks/

12) https://nlp.ist.i.kyoto-u.ac.jp/?JUMAN
表 3 куото コーパスの解析結果, $\mathrm{F}_{1}$ (precision/recall).

表 4 KWDLC コーパスの解析結果, $\mathrm{F}_{1}$ (precision/recall).

精度を示すと共に，MeCab の約 15 倍，Vaporetto の約 10 倍高速，かつ MeCab の約 1/2, Vaporetto の約 1/20 程度の消費メモリで解析が行えている. Jagger が用いる特徴列パターンは枝刈り (Algorithm 2 の 14 行目) によって最小限に抑えられており, 機械学習を経由せず，浮動小数点数で表現されるパラメタも含まないことから，高効率となったと考えられる (他手法の学習に相当するパターンの抽出時間は 6 秒未満であった). MeCab の解析精度は辞書の性質に依存し，jumandic-7.0を用いた場合，KWDLC で優れた精度を示す一方で куото では単語分割精度が低下している. Vaporetto は，学習データの多い куотоでは MeCab や Jagger より高精度だが，学習データの少ない KWDLC では Jagger と同程度の精度に留まる。

表 5 に，学習データとは異なるドメインの評価データを用いて各手法を評価したときの解析精度を示す. 辞書に基づいて単語分割候補を列挙する最小コスト法 (MeCab) に対し，辞書を間接的に用いる点推定 (Vaporetto) の解析精度が低く, 学習ドメインに依存する点推定のリスクを示している. 提案手法の実装である Jagger は MeCabよりは性能が低下しているものの, Vaporetto ほどには性能が落ちておらず，辞書と学習データの両方をバランスよく活用した手法となっている. 提案手法は，辞書，あるいはパターンを追加する形で学習という余分なプロセスを経ずに処理を即座に変更することもできる。

## 4 まとめ

本稿では最速の言語処理技術を高精度化すべく，最長一致パターンに基づく高精度な形態素解析器を提案した. 我々の手法は, 辞書中の単語をシードとして学習データから単語分割位置と品詞タグ (及び見出し語)を決定するパターンを抽出し，最長一致パターンを順次切り出す形で効率よく高精度の解析を行う．複数の品詞タグ付きコーパスを用いた実験により, 提案手法が最小コスト法や点推定の効率的な既存実装に匹敵する解析精度を達成し, 同時に, ノート PCで $1,000,000$ 文秒という基礎解析として望ましい解析速度を実現することを確認した。

今後は，深層学習により得られる埋め込み表現を離散化してパターンに組み込むなどして，本論文のアプローチを他の言語処理タスクに応用したい.

## 謝辞

本研究は JSPS 科研費 JP21H03494 の助成を受けたものです. Vaporettoの未知語処理に関する実装をご教示くださった LegalOn Technologies の赤部晃一氏，本稿の草稿にコメントをくださった Rakuten Institute of Technology Americas の新里圭司氏に感謝いたします.

## 参考文献

[1] Marcos Treviso, Tianchu Ji, Ji-Ung Lee, Betty van Aken, Qingqing Cao, Manuel R. Ciosici, Michael Hassid, Kenneth Heafield, Sara Hooker, Pedro H. Martins, André F. T. Martins, Peter Milder, Colin Raffel, Edwin Simpson, Noam Slonim, Niranjan Balasubramanian, Leon Derczynski, and Roy Schwartz. Efficient methods for natural language processing: A survey, 2022.

[2] Jun'ichi Aoe. An efficient digital search algorithm by using a double-array structure. IEEE Transactions on Software Engineering, Vol. 15, No. 9, pp. 1066-1077, 1989.

[3] Naoki Yoshinaga and Masaru Kitsuregawa. A self-adaptive classifier for efficient text-stream processing. In Proceedings of COLING 2014, the 25th International Conference on Computational Linguistics: Technical Papers, pp. 1091-1102, Dublin, Ireland, August 2014.

[4] Sadao Kurohashi and Makoto Nagao. Building a Japanese parsed corpus. In Treebanks: Building and Using Parsed Corpora, pp. 249-260. Kluwer Academic Publishers, 2003.

[5] Masatsugu Hangyo, Daisuke Kawahara, and Sadao Kurohashi. Building a diverse document leads corpus annotated with semantic relations. In Proceedings of the 26th Pacific Asia Conference on Language, Information, and Computation, pp. 535-544, Bali, Indonesia, November 2012.

[6] Masaaki Nagata. A stochastic Japanese morphological analyzer using a forward-DP backward-A* $n$-best search algorithm. In COLING 1994 Volume 1: The 15th International Conference on Computational Linguistics, Kyoto, Japan, August 1994.

[7] David D. Palmer. A trainable rule-based algorithm for word segmentation. In 35th Annual Meeting of the Association for Computational Linguistics and 8th Conference of the European Chapter of the Association for Computational Linguistics, pp. 321-328, Madrid, Spain, July 1997.

[8] Julia Hockenmaier and Chris Brew. Error-driven learning of Chinese word segmentation. In Proceedings of the 12th Pacific Asia Conference on Language, Information and Computation, pp. 218-229, Singapore, February 1998.

[9] Taku Kudo, Kaoru Yamamoto, and Yuji Matsumoto. Applying conditional random fields to Japanese morphological analysis. In Proceedings of the $\mathbf{2 0 0 4}$ Conference on Empirical Methods in Natural Language Processing, pp. 230-237, Barcelona, Spain, July 2004.
[10] Graham Neubig, Yosuke Nakata, and Shinsuke Mori. Pointwise prediction for robust, adaptable Japanese morphological analysis. In Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies, pp. 529533, Portland, Oregon, USA, June 2011.

[11] Manabu Sassano. Deterministic word segmentation using maximum matching with fully lexicalized rules. In Proceedings of the 14th Conference of the European Chapter of the Association for Computational Linguistics, volume 2: Short Papers, pp. 79-83, Gothenburg, Sweden, April 2014.

[12] Nobuhiro Kaji, Yasuhiro Fujiwara, Naoki Yoshinaga, and Masaru Kitsuregawa. Efficient staggered decoding for sequence labeling. In Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics, pp. 485-494, Uppsala, Sweden, July 2010.

[13] Naoki Yoshinaga and Masaru Kitsuregawa. Kernel slicing: Scalable online training with conjunctive features. In Proceedings of the 23rd International Conference on Computational Linguistics (Coling 2010), pp. 12451253, Beijing, China, August 2010.

[14] 赤部晃一森信介. Vaporetto: 点予測法に基づく高速な日本語トークナイザ. 言語処理学会第 28 回年次大会発表論文集, pp. 256-261, 2022.

[15] Percy Liang, Hal Daumé, and Dan Klein. Structure compilation: Trading structure for features. In Proceedings of the 25th International Conference on Machine Learning, ICML '08, p. 592-599, New York, NY, USA, 2008.

[16] 森信介, 中田陽介, Neubig Graham, 河原達也. 点予測による形態素解析. 自然言語処理, Vol. 18, No. 4, pp. 367-381, 2011.

[17] Yugo Murawaki and Sadao Kurohashi. Online acquisition of Japanese unknown morphemes using morphological constraints. In Proceedings of the $\mathbf{2 0 0 8}$ Conference on Empirical Methods in Natural Language Processing, pp. 429-437, Honolulu, Hawaii, October 2008.

[18] 工藤拓. 形態素解析の理論と実装. 近代科学社, 2018.

[19] Huidan Liu, Minghua Nuo, Longlong Ma, Jian Wu, and Yeping He. Compression methods by code mapping and code dividing for Chinese dictionary stored in a doublearray trie. In Proceedings of 5th International Joint Conference on Natural Language Processing, pp. 1189-1197, Chiang Mai, Thailand, November 2011.

[20] Arseny Tolmachev, Daisuke Kawahara, and Sadao Kurohashi. Juman++: A morphological analysis toolkit for scriptio continua. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations, pp. 54-59, Brussels, Belgium, November 2018.

[21] Hajime Morita, Daisuke Kawahara, and Sadao Kurohashi. Morphological analysis for unsegmented languages using recurrent neural network language model. In Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, pp. 2292-2297, Lisbon, Portugal, September 2015.
表 6 JUMAN++との比較, $\mathrm{F}_{1}$ (precision/recall).

## A 未知語処理

最小コスト法と同様に, 提案手法でも辞書・学習データに含まれない未知語の扱いは，問題となる。現在の実装では, 既存手法 [9] と同様に, 文字種に基づいて，数字，アルファベット，カタカナを連結する単純な未知語処理を実装している。具体的には，連続する数字，アルファベットはそれぞれ単純に連結し，連続するカタカナ語については，単語の合計長が一定サイズ以下のときに連結する。いずれの場合も，前文脈品詞，および連結する末尾の語に対するパターンに基づき品詞を割り当てる.

## B 実装上の工夫

Jagger の C++実装には，MeCab で用いられているゼロコピーや mmap [18], J.DepP ${ }^{13)}$ でも用いられているキャッシュ効率化のための頻度順 ID[19] に加えて, Vaporetto や Vibrato で用いられている文字単位で遷移するダブル配列を利用している。文字単位のダブル配列には，バイト単位で遷移する動的ダブル配列 cedar ${ }^{14)}$ に軽微な修正を加えたものを用いた。

## C 単語分割のみの処理効率の比較

品詞タグ付けに対するアプローチ（未知語処理,見出し語化への対応）の違いから, MeCab / Jagger と Vaporetto を形態素解析器として厳密な意味で公平に比較することは困難である。 そこで，各実装で jumandic-7.0を用いて，単語分割のみを行い，処理速度・消費メモリを比較した。なお，MeCab, Jagger については表 3,4 と同じモデルを用いた. Vaporetto については，省メモリ化のため単語分割のみの学習データから, 単語リストとして辞書を与えて, 単語分割のみを行うモデルを再学習した ${ }^{15)}$.

表 7 単語分割の処理効率 (辞書: jumandic-7.0).

表 7 に， 3.1 節の評価方法に倣って計測した単語分割の処理効率を示す. 表で UTF-8 split は，UTF-8 で符号化された評価データを文字ごとに分割して出力する処理である. Vaporetto の処理効率が改善しているが，(モデルの読み込みのオーバーヘッド (約 1.7 秒) 点を考慮しても) 提案手法による処理の方が高速かつ省メモリである.

## D ニューラル形態素解析との比較

現時点で最高精度の日本語形態素解析器である JUMAN++-V2 [2016) との比較を行った. モデルは,表 1 と同じ学習データから公式スクリプト ${ }^{17)}$ 及び，学習コーパスに対し最適化されたハイパーパラメタを用いて学習した。なお，JUMAN++は，Wikipedia から抽出した辞書と大規模コーパスから訓練された RNN 言語モデルを追加で用いており, 精度の観点では Jagger に不利で，速度の観点では JUMAN++に不利な比較となっている点に注意されたい。

表 6 に jumandic-7.0 を辞書に用いた Jagger と比較した結果を示す. Jagger と JUMAN++の解析精度の差は, 品詞タグ付けでは大きいが単語分割では $1 \%$ 以内に収まっている。JUMAN++-V2 は JUMAN++ [21] に対して 250 倍の高速化を達成したと報告されているが，Jagger はその JUMAN++-V2 よりさらに 180 倍以上高速で，1/7 以下の消費メモリであった.

16) https://github.com/ku-nlp/jumanpp

17) https://github.com/ku-nlp/jumanpp-jumandic


# 埋め込み表現の意味適応による知識ベース語義曖昧性解消

水木栄
東京工業大学情報理工学院
sakae.mizuki@nlp.c.titech.ac.jp
}

岡崎直観
東京工業大学情報理工学院
okazaki@c.titech.ac.jp

## 概要

知識ベース語義曖昧性解消（WSD）の有望な方法論は，文脈依存埋め込みによる埋め込み空間上で対象単語に最も近い語釈文の語義を選ぶことである. 本研究では, 語彙知識を用いて埋め込み表現を WSD に適応させる手法を提案する. 提案手法の鍵は，関連する語義対および語義・用例対を近づけて，無関連な語義対および異義対を遠ざけることである.これらを実現するため，吸引・反発学習および自己学習を用いる。提案手法は知識べース WSD の最高精度を達成した. また分析により, 両学習を併用する有効性を確認した。

## 1 はじめに

語義曖昧性解消（WSD）とは，文脈を考慮して適切な語義を選択するタスクである．WSD の用途は評判分析 $[1,2]$, 情報検索 [3], 機械翻訳 [4] がある.本研究は, WordNet [5] の語彙資源のみを用いる知識ベース WSD の精度向上に取り組む. 知識ベース WSD は教師あり WSD に対して精度面で劣るが，高コストな語義注釈付き用例文を用いずに済む.

知識ベース WSD の有望な方法論は，文脈依存埋め込みによる最近傍法である [6]. 具体的には， BERT [7] などの事前学習ずみ言語モデルを用いて，語釈文の埋め込み一語義埋め込み一および，用例文内の対象単語の埋め込み一文脈埋め込み一を計算し，文脈に最も近い語義を選択する。最近傍法の鍵は，語釈文と用例文の対応付けである。すなわち埋め込み空間上で正しい語義・用例対を近づけ，WSD に適応させたい. 語義注釈付き用例文を用いず，語彙資源のみで対応付けを改善できるだろうか?

既存研究ではふたつの改善策がある. ひとつは語彙知識による埋め込み表現の適応である. SREF [6] は，意味的に関連する語義対の埋め込みを近づけて精度を改善した. しかし関連しない語義対や，語義・用例対は活用していない，もうひとつは文脈情

a) 吸引・ 反発学習

d) 適応後の理想

b) 自己学習

c) 距離制約図 1 提案手法の概要. BERT の語義・文脈埋め込みを変換して適応させる (上). 変換関数の最適化は，距離制約のもとで，吸引・反発学習と自己学習を併用する（下）.

報の拡張である。COE [8] は，評価文書内の隣接文などを用いて最高精度を達成した。しかし，SNS 短文などの文単体には適用できず，汎用性に欠ける。

本研究は，BERT 埋め込みを変換してWSD に適応させる手法（図 1）に取り組む. 本研究の提案の核心は，関連する語義対および語義・用例対を近づけ，関連しない語義対および異義対は遠ざけることである。具体的には，距離制約のもとで，吸引・反発学習（図 1-a) および自己学習（図 1-b）を行う.前者は語義間の識別性を，後者は語義と用例の擬似的な対応付けをそれぞれ学習する. 提案手法の主な新規性は，知識ベース WSDへの吸引・反発学習の適用および自己学習の併用である。埋め込み表現の意味適応手法の総称 [9] に準じて，提案手法を Semantic Specialization for WSD (SS-WSD) と呼ぶ.

実験の結果，提案手法の精度は従来の埋め込み表現適応法を上回った. また既存研究で有効とされる最近傍語義探索の経験則を併用すると，文書の情報を用いずに現時点の世界最高精度を達成した. 本研究の貢献は次の 2 点である. 文単体に適用可能な,吸引・反発学習と自己学習の併用による新手法の提案. 知識ベース WSD の最高精度の達成.

## 2 既存研究

## 2.1 知識ベース WSD

知識ベース WSD では古くから語釈文と用例文の類似性が使用されている [10]. また BERT 埋め込みは文脈を考慮して疎粒度の語義を捉えるとの報告がある [11,12]. かかる背景のもと, SREF [6] は BERT 埋め込み表現による最近傍法および，上位下位語義等との加重平均による語義埋め込み適応の有効性を報告した.これを発展させた COE [8] は, 評価文書内の隣接文や共起語義1)による文脈埋め込みを併用して最高精度を達成した. 本研究は文書情報を用いずに，これらを上回る埋め込み表現適応を提案する。

## 2.2 埋め込み表現の意味適応

語彙資源に含まれる知識を事前学習ずみの埋め込み表現に注入して意味適応させる手法は Semantic Specialization (SS) と総称される. SS の目的は, 文脈類似性に基づく意味的類似度と，語彙資源に基づく詳細な意味関係の統合である [9]. 先行研究 $[9,14]$ は，上位下位・対義などの関係知識を用いて静的な単語埋め込みを意味適応させ，単語間意味関係識別タスクでの有効性を報告した. 本研究は，文脈依存埋め込みの意味適応によるWSDに取り組む。

## 3 提案手法

## 3.1 埋め込み表現の意味適応による WSD

提案手法は，BERTによる埋め込みを変換する。

$
\begin{aligned}
\mathbf{v}_{w} & =H_{w}\left(\hat{\mathbf{v}}_{w}\right) \\
\mathbf{e}_{s} & =H_{s}\left(\hat{\mathbf{e}}_{s}\right)
\end{aligned}
$

入力 $\hat{\mathbf{v}}_{w}$ および $\hat{\mathbf{e}}_{s}$ は BERT を用いて計算した文脈 $w$ および語義 $s$ の埋め込み, 出力 $\mathbf{v}_{w}$ および $\mathbf{e}_{s}$ は適応ずみ埋め込み, $H_{w}$ および $H_{s}$ は変換関数である. 訓練時は，変換関数を学習する。具体的には $\mathbf{v}_{w}$ および $\mathbf{e}_{s}$ を使って吸引・反発学習および自己学習の損失加重和を最小化する．BERT 自体はファインチュー ニングしない. 埋め込みそのものを適応させるのではなく，変換関数を学習することで，任意の文脈埋め込みを処理できるようにする．推論時は，変換した（適応ずみの）埋め込みを用いて最近傍の語義を選ぶ. 具体的には，曖昧性を解消する単語 $w$ および

候補語義 $s^{\prime} \in \mathcal{S}_{w}$ の埋め込みをそれぞれ変換してから, cosine 類似度が最大の語義 $s^{*}$ を選択する。

$
\begin{aligned}
s^{*} & =\underset{s^{\prime} \in \mathcal{S}_{w}}{\arg \max } \rho_{w, s^{\prime}} \\
\rho_{w, s} & =\cos \left(\mathbf{v}_{w}, \mathbf{e}_{s}\right)=\frac{\mathbf{v}_{w} \cdot \mathbf{e}_{s}}{\left.\|\mathbf{v}_{w}\right.\|\left.\|\mathbf{e}_{s}\right.\|}
\end{aligned}
$

訓練および推論に必要な語彙資源は WordNetから取得する。語義の識別子は sense key である. BERT による文脈・語義埋め込みの計算方法は, 先行研究 [6] にならう (付録 B). 語義埋め込みの計算にはレンマ・同義語・語釈文・例文の連結を使用する.

## 3.2 変換関数

埋め込みを適応させる変換関数（式 2）は，順伝播型 NN（FFNN）による残差接続で定式化する2).

$
\begin{gathered}
\mathbf{v}_{w}=H_{w}\left(\hat{\mathbf{v}}_{w}\right)=\hat{\mathbf{v}}_{w}+\epsilon\left.\|\hat{\mathbf{v}}_{w}\right.\| F_{w}\left(\hat{\mathbf{v}}_{w}\right) \\
\mathbf{e}_{s}=H_{s}\left(\hat{\mathbf{e}}_{s}\right)=\hat{\mathbf{e}}_{s}+\epsilon\left.\|\hat{\mathbf{e}}_{s}\right.\| F_{s}\left(\hat{\mathbf{e}}_{s}\right) \\
F_{w}(\cdot)=2 \sigma\left(\operatorname{FFNN}_{w}(\cdot)\right)-1 \\
F_{s}(\cdot)=2 \sigma\left(\operatorname{FFNN}_{s}(\cdot)\right)-1
\end{gathered}
$

$\sigma$ はシグモイド関数である. $\epsilon$ は変換による移動を調整するハイパーパラメータである。具体的には，変換前の BERT 埋め込みからの相対 L2 距離を $\left.\|\mathbf{v}_{w}-\hat{\mathbf{v}}_{w}\right.\| /\left.\|\hat{\mathbf{v}}_{w}\right.\| \leq \epsilon \sqrt{N_{d}}$ に抑える ${ }^{3)}$. この距離制約の意図は，自己学習の促進である，BERTによる類似度特性を適度に保つことで，語義・用例の不正確な対応付けによる精度低下の悪循環を回避する. 距離制約の有効性は実験的に検証する（§ 5.2）.

## 3.3 訓練の目的関数

訓練時の目的関数は，吸引 - 反発学習損失 $L^{\mathrm{AR}}$ および自己学習損失 $L^{S T}$ の加重和である.

$
L=L^{\mathrm{AR}}+\alpha L^{\mathrm{ST}}
$

$\alpha$ は自己学習の重要度を制御するハイパーパラメー タである。両学習を併用する動機は，相互補完的な役割にある。吸引・反発学習は語義間の識別性に寄与するが，語義・用例対への教師信号はない。一方で自己学習（§ 3.3.2）は語義・用例対への教師信号を提供するが，単体では BERT が既に対応付けた語義・用例対を強化するのみで新規の情報は限られるはずである。その効果は実験的に検証する（§ 5.1）.

2）層数は 2，活性化関数は ReLU とする.

3）残差接続 $F$ の出力は各次元要素が $[-1,1]$ に制約されるため. $N_{d}$ は次元数. bert-large-cased では $N_{d}=1,024$.

## 3.3.1 吸引・反発学習

吸引・反発学習に用いる語義対は，WordNet の意味関係知識から作成する. 具体的には語義 $s$ に対し $\tau$, 関連 $\delta_{s}^{P}$, 異義 $\delta_{s}^{N}$, 無関連 $\delta_{s}^{U}$ の 3 種類の語義集合を取得する． $\mathcal{S}_{S}^{P}$ は同義や上位下位など，意味関係でつながる語義である. 正確な定義は先行研究 [6] に従う（付録 A）. $\delta_{s}^{N}$ は共通のレンマを持つ異なる語義である ${ }^{4)} . \delta_{s}^{U}$ は乱択した語義である. 語義の統計量を付録表 5 に示す.

吸引・反発損失 $L^{\mathrm{AR}}$ の定式化は，対照損失を用いる. 具体的には語義 $s$ に対して, 関連 $\delta_{s}^{P}$ を近づけて，異義 $\delta_{s}^{N}$ および無関連 $\delta_{s}^{U}$ を遠ざける.まず，乱択ミニバッチ内の語義 $s \in \mathcal{S}^{B}$ を所与とする. 次に $s$ を除いたものを無関連 $\mathcal{S}_{S}^{U}=\mathcal{S}^{B} \backslash\{s\}$ とする. 同様に $s_{p}$ は $\delta_{s}^{P}$ から 1 個を乱択， $\tilde{S}_{s}^{N}$ は $\delta_{s}^{N}$ から最大 5 個を乱択する。 $L^{\mathrm{AR}}$ の定義は以下のとおり ${ }^{5)}$.

$
\begin{gathered}
L^{\mathrm{AR}}=-\sum_{s \in \mathcal{S}^{B}} \ln \frac{\exp \left(\beta \rho_{s, s_{p}}\right)}{\sum_{s^{\prime} \in\left(\left.\{s_{p}\right.\} \cup \mathcal{S}_{s}^{U} \cup \tilde{\mathcal{S}}_{s}^{N}\right)} \exp \left(\beta \rho_{s, s^{\prime}}\right)} \\
\rho_{s, s^{\prime}}=\cos \left(\mathbf{e}_{s}, \mathbf{e}_{s^{\prime}}\right)
\end{gathered}
$

## 3.3.2 自己学習

自己学習に用いる語義 - 用例対は, WordNet の語義目録から作成する. 具体的には，対象単語 $w$ のレンマ・品詞ペアに紐づく語義の集合 $S_{w}$ を取得する.

自己学習損失 $L^{\mathrm{ST}}$ の定式化は，用例に最も近い語義との類似度を最大化する. すなわち, 最近傍語義を擬似的な正解とする学習である. 具体的には，用例文に含まれる対象単語 $w \in \mathscr{W}^{B}$ の候補語義集合 $S_{w}$ を取得する. そして単語と語義の埋め込みをそれぞれ変換して cosine 類似度を計算し，候補内での最大値を取る.

$
\begin{gathered}
L^{\mathrm{ST}}=\sum_{w \in \mathscr{W}^{B}}\left(1-\max _{s \in \mathcal{S}_{w}} \rho_{w, s}\right) \\
\rho_{w, s}=\cos \left(\mathbf{v}_{w}, \mathbf{e}_{s}\right)
\end{gathered}
$

最近傍語義は不変ではなく，変換関数の学習につれて変わることに注意されたい，変化させる意図はブートストラップである。すなわち訓練が進捗して精度が向上する過程で，擬似正解の正確性も向上する好循環を期待する。変換前後の距離制約（§ 3.2） はその逆，すなわち悪循環を回避する意図である。

4）すなわち，多義語の語義集合から自身を除いたもの.

5）距離学習の先行研究 $[15,16]$ に倣い， $\beta=64$ に設定した.

## 3.4 Try-again Mechanism (TaM) 経験則

推論で最近傍語義を選ぶとき, Try-again Mechanism (TaM) なる経験則が有効であると知られている $[17,6,8]$. そこで，提案手法に TaMを併用する効果を報告する．TaM の概要は，候補語義を 2 つに絞り込み，各語義が属する意味カテゴリとの類似度を考慮して再順位付けする処理である。具体的なアルゴリズム（付録 C）は，先行研究 [17] を参照されたい.

## 4 実験

吸引・反発学習の訓練データとなる語義対は WordNetを用いた（語義数は 206,949）。自己学習の用例文は，正解語義を削除した ${ }^{6)}$ SemCor コーパス [20]を用いた（単語数は 226,036），ハイパーパラメータ調整（付録 D）の開発データは，評価データのサブセット SE07 を使用した. WSD タスクの評価データ・方法は, 標準評価プロトコル [21] に従った.

表 1 にWSD タスクの性能を示す. 提案手法

ベースの先行研究を上回った. 特に $\mathrm{TaM}$ 経験則併用時の SS-WSD $\mathrm{k}_{\mathrm{kb}}$ は，文のみの情報を用いるにも関わらず，既存の最高精度である COE 0.8 ポイント上回り, 知識ベース WSD の最高精度を更新した. TaM 経験則の寄与は+2.2 ポイント（SS-WSD $\left.\mathrm{kb}_{\mathrm{kb}}-\mathrm{SS}-\mathrm{WSD}_{\mathrm{emb}}\right)$ だった.

次に， TaM 経験則を使用しない場合に注目する. 提案手法による適応の効果は+9.3 ポイント （SS-WSD emb $-\mathrm{BERT})$ だった. 関連語義対の吸引のみで適応を行う先行研究 SREF の効果は+5.4 ポイント （SREF emb $-\mathrm{BERT}$ ）なので，提案手法は語彙知識の活用効率が高いことが示唆される。また品詞別に効果を調べると，動詞の 10.2 ポイントが最大である. この結果は，動詞の関連語義数・異義数が平均 13.0 および 4.1 個と最多であること（付録表 5），すなわち吸引・反発学習の教師信号が豊富な事実と整合する.

最後に, 教師ありWSD の先行研究と比較する.用例文の正解語義を用いて語義埋め込みを計算する Sup-kNN および，正解の語義・用例対を用いて BERT をファインチューニングする BEM に対して，提案手法 SS-WSD $\mathrm{emb}_{\mathrm{mb}}$ との差はそれぞれ +1.4 と -4.1 ポイントだった. 提案手法が教師あり WSD の性能に近づきつつあることは，特筆すべき結果である.

6）自己学習に必要なのはレンマ・品詞のみであるため. 形態素解析・複単語表現解析ずみ平文コーパスでも代用できる.

(括弧内)，および先行研究最高精度との有意差（スチューデントの両側 $t$ 検定， $*: p<0.05$ )を報告. 太字は各区分の最高精度. 下線は開発データの精度. “文書” 列は推論時の文書情報の要否. $\{$ BEM, Sup-KNN, SREF kb, COE $\}$ は原論文から引用.

} & BERT & $x$ & 67.8 & 62.7 & $\overline{54.5}$ & 64.5 & 72.3 & 67.8 & 52.3 & 74.0 & 77.7 & 65.6 \\

表 2 提案手法の一部無効化による性能変化. アブレー ション列は無効化した対象. $\Delta$ 列は無効化前との差分.全差分は統計的に有意 (Welchの両側 $t$ 検定, $p<0.05$ ).

表 3 語義対, 正解語義・用例対の平均 cosine 類似度.

## 5 考察

## 5.1 目的関数の効果

表 2 に，目的関数（§3.3）の一部無効化による性能変化を示す．変化から有効性の源泉を探る。

吸引・反発学習または自己学習を無効化すると， それぞれ 3.3 と 4.4 ポイント性能が低下する. ゆえに両学習の併用は相補的であることが示唆される.

吸引・反発学習から無関連語義または異義との反発を無効化すると，精度はそれぞれ 5.0 および 1.4 ポイント低下する. したがって意味的なつながりがない，または異なる語義を遠ざけることはいずれも有効である。なお無関連語義の寄与が異義を上回る理由は, 訓練事例数が考えられる。前者は 255 個 ${ }^{7}$ であるが，後者は平均 1.3 個（付録表 5）である.

文脈埋め込みの変換関数を無効化すると，精度は 3.2 ポイント低下する. したがって語義・文脈埋め込みはいずれも適応させるべきであり，SERFのような語義埋め込みの適応のみでは不十分である。

表 3 に類似度の変化を示す. 適応により，無関連

図 2 埋め込み変換関数の距離制約ハイパーパラメータ $\epsilon$ （§3.2）と WSD 性能の関係. デフォルト設定（ $\epsilon=0.015 ）$ の精度を水平点線で表示. *は精度差分の統計的有意性 (Welch の両側 $t$ 検定, $*: p<0.05, * *: p<0.005$ ).

および異義がお互いに離れ，正解語義・用例が近づいた.この結果は提案手法の狙いと整合している.

## 5.2 距離制約の効果

図 2 に，変換による移動を制約するハイパーパラメータ $\epsilon$ の性能への影響を示す. $\epsilon$ に対して精度は逆 $\mathrm{U}$ 字曲線を示すことから，厳しい制約（ $\epsilon$ 小）と緩い制約 $(\epsilon$ 大) の中間が最適であることが分かる. ゆえに，意味適応を有効に機能させるため，適応時の類似度空間の変化を制限することが重要である。

## 6 まとめ

本研究では, BERT が計算する語義・文脈埋め込みを，語彙知識を用いて WSD に適応させる手法を提案した. 提案手法の性能は，文書情報を用いずに従来の知識ベース WSD 最高精度を上回った. これにより，文単体のみでも意味適応による高精度が実現できることを示した，有効性の主要因は，吸引・反発学習と自己学習の併用, 文脈埋め込みの適応, および変換時の距離制約であることを示した。

語彙資源のみで高精度を実現する本手法は，資源が乏しい言語 [22]に好適である. 多言語モデルによる英語からのゼロショット転移学習，および多言語語彙資源の学習による多言語 WSDに取り組みたい.

## 謝辞

本研究は JSPS 科研費 $19 H 01118$ の助成を受けた.

## 参考文献

[1] Chiraag Sumanth and Diana Inkpen. How much does word sense disambiguation help in sentiment analysis of micropost data? In Proceedings of the 6th Workshop on Computational Approaches to Subjectivity, Sentiment and Social Media Analysis, WASSA@EMNLP 2015, pp. 115-121, 2015.

[2] Chihli Hung and Shiuan-Jeng Chen. Word sense disambiguation based sentiment lexicons for sentiment classification. Knowledge-Based Systems, Vol. 110, pp. 224-232, 2016

[3] Zhi Zhong and Hwee Tou Ng. Word sense disambiguation improves information retrieval. In Proceedings of the 50th Annual Meeting of the formation retrieval. In Proceedings of the 50th Annual Meeting

[4] Niccolò Campolungo, Federico Martelli, Francesco Saina, and Roberto Navigli. Dibimt: A novel benchmark for measuring word sense disambiguation biases in machine translation. In Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics, pp. 4331-4352, 2022 .

[5] Christiane Fellbaum. WordNet: An Electronic Lexical Database. The MIT Press, 1998.

[6] Ming Wang and Yinglin Wang. A synset relation-enhanced framework with a try-again mechanism for word sense disambiguation. In Proceedings of the $\mathbf{2 0 2 0}$ Conference on Empirical Methods in Natural Language Processing, pp. 6229-6240, 2020.

[7] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: pre-training of deep bidirectional transformers for language understanding. In pre-training of deep bidirectional transformers for language understanding. In of the Association for Computational Linguistics: Human Language Technologies, pp. 4171-4186, 2019.

[8] Ming Wang, Jianzhang Zhang, and Yinglin Wang. Enhancing the context representation in similarity-based word sense disambiguation. In Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing, pp. 8965-8973, 2021.

[9] Ivan Vulic and Nikola Mrksic. Specialising word vectors for lexical entailment. In Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pp. 1134-1145, 2018.

[10] Michael Lesk. Automatic sense disambiguation using machine readable dictionaries: how to tell a pine cone from an ice cream cone. In Proceedings of the 5th Annual International Conference on Systems Documentation, SIGDOC 1986, pp. 24-26, 1986 .

[11] Emily Reif, Ann Yuan, Martin Wattenberg, Fernanda B. Viégas, Andy Coenen, Adam Pearce, and Been Kim. Visualizing and measuring the geometry of BERT. In Advances in Neural Information Processing Systems 32. pp. 8592-8600, 2019 .

[12] Daniel Loureiro, Kiamehr Rezaee, Mohammad Taher Pilehvar, and José Camacho-Collados. Analysis and evaluation of language models for word sense disambiguation. Comput. Linguistics, Vol. 47, No. 2, pp. 387-443, 2021 .

[13] William A. Gale, Kenneth Ward Church, and David Yarowsky. One sense per discourse. In Speech and Natural Language: Proceedings of a Workshop Held at Harriman, New York, USA, February 23-26, 1992, 1992.

[14] Kim Anh Nguyen, Maximilian Köper, Sabine Schulte im Walde, and Ngoc Thang Vu. Hierarchical embeddings for hypernymy detection and directionality. In Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing, pp. 233-243, 2017.

[15] Jiankang Deng, Jia Guo, Niannan Xue, and Stefanos Zafeiriou. Arcface: Additive angular margin loss for deep face recognition. In IEEE Conference on Computer Vision and Pattern Recognition, pp. 4690-4699, 2019.

[16] Hao Wang, Yitong Wang, Zheng Zhou, Xing Ji, Dihong Gong, Jingchao Zhou, Zhifeng Li, and Wei Liu. Cosface: Large margin cosine loss for deep face recognition. In 2018 IEEE Conference on Computer Vision and Pattern Recognition, pp. 5265-5274, 2018.

[17] Ming Wang and Yinglin Wang. Word sense disambiguation: Towards interactive context exploitation from both word and sense perspectives. In putational Linguistics and the 11th International Joint Conference on Natural Language Processing, pp. 5218-5229, 2021.

[18] Daniel Loureiro and Alípio Jorge. Language modelling makes sense: Propagating representations through wordnet for full-coverage word sense disamfor Computational Linguistics, pp. 5682-5691, 2019

[19] Terra Blevins and Luke Zettlemoyer. Moving down the long tail of word sense disambiguation with gloss informed bi-encoders. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pp. 1006-1017, 2020.

[20] George A. Miller, Claudia Leacock, Randee Tengi, and Ross Bunker. A semantic concordance. In Human Language Technology: Proceedings of a Workshop Held at Plainsboro, New Jersey, USA, March 21-24, 1993, 1993 .

[21] Alessandro Raganato, José Camacho-Collados, and Roberto Navigli. Word sense disambiguation: A unified evaluation framework and empirical comparison. In Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics, pp. 99-110, 2017.

[22] Tommaso Pasini. The knowledge acquisition bottleneck problem in multilin- gual word sense disambiguation. In Proceedings of the Twenty-Ninth International Joint Conference on Artificial Intelligence, pp. 4936-4942, 2020

[23] Yinglin Wang, Ming Wang, and Hamido Fujita. Word sense disambiguation: A comprehensive knowledge exploitation framework. Knowledge Based System, Vol. 190, p. 105030, 2020.

[24] Michele Bevilacqua and Roberto Navigli. Breaking through the $80 \%$ glass ceiling: Raising the state of the art in word sense disambiguation by incorporating knowledge graph information. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pp. 2854-2864, 2020 .

[25] Caterina Lacerra, Michele Bevilacqua, Tommaso Pasini, and Roberto Navigli. CSI: A coarse sense inventory for $85 \%$ word sense disambiguation. In The Thirty-Fourth AAAI Conference on Artificial Intelligence, AAA 2020, The Thirty-Second Innovative Applications of Artificial Intelligence Conference, IAAI 2020, The Tenth AAAI Symposium on Educational Advances in Artificial Intelligence, EAAI 2020, pp. 8123-8130, 2020.

[26] Takuya Akiba, Shotaro Sano, Toshihiko Yanase, Takeru Ohta, and Masanori Koyama. Optuna: A next-generation hyperparameter optimization framework. In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery \& Data Mining, pp. 2623-2631, 2019.

[27] Tommaso Pasini, Alessandro Raganato, and Roberto Navigli. XL-WSD: an extra-large and cross-lingual evaluation framework for word sense disambiguation. In Thirty-Fifth AAAI Conference on Artificial Intelligence, AAAI 2021, Thirty-Third Conference on Innovative Applications of Artificial Intelligence, IAAI 2021, The Eleventh Symposium on Educational Advances in Artificial Intelligence, EAAI 2021, pp. 13648-13656, 2021.

[28] Sameer Pradhan, Edward Loper, Dmitriy Dligach, and Martha Palmer Semeval-2007 task-17: English lexical sample, SRL and all words. In Proceedings of the 4th International Workshop on Semantic Evaluations SemEval@ACL 2007, pp. 87-92, 2007.

[29] Jens Behrmann, Will Grathwohl, Ricky T. Q. Chen, David Duvenaud, and Jörn-Henrik Jacobsen. Invertible residual networks. In Proceedings of the 36th International Conference on Machine Learning, Vol. 97 of Proceedings of Machine Learning Research, pp. 573-582, 2019.

## A 語彙資源

表 4 WordNet 語彙資源の語義の具体例

表 4 に，提案手法が使用する語彙資源の具体例として，語義 computer\%1:06:00: :8) を示す.

関連語義の定義は先行研究 [6] の論文および実装9) に従う，具体的には，それぞれの sense key に対して，まず derivationally_related_forms 関係にある sense keys を加えて集合を拡張する. 次に sense keys が接続する synsets を収集する。そして，各 synset に対して，表 6 で示した意味関係にある synsetを加えて集合を拡張する．最後に， synsets に属する sense keys を収集し，関連語義とする ${ }^{10)}$.

## B BERTによる埋め込みの計算

BERTによる埋め込みの計算は，先行研究 $[23,24,6]$ に倣う。モデルは bert-large-cased ${ }^{11}$ を用いる. エンコー ド時には [CLS]および [SEP] トークンを付与して, 次元要素ごとの最終 4 層の和を，サブワードの埋め込みとする。文脈埋め込みは，対象単語を構成するサブワードの平均とする. 語義埋め込みの計算は，先行研究 SREF [6] に従う. 具体的には, 所与の sense key に対して，レンマ・同義語 $n$ 個・語釈文・例文 $m$ 個からなる連結文をエンコードする. そして連結文を構成する全サブワードの平均を，語義埋め込みとする。連結文のテンプレートを以下に示す.

具体例として, 語義 computer\%1:06:00: : の連結文を示す. computer - computer, computing device, data processor, ... - a machine for performing calculations automatically

なお，WordNet 語義の大半は例文がないか，短文である. 先行研究 [6] は独自に収集した例文を併用しているが，我々は WordNet に収録された例文のみを使用した。

## C Try-again Mechanism (TaM)

Try-again Mechanism (TaM) はいくつかの派生版がある $[6,8,17]$. 本研究では簡便性に優れる Wang ら [17] のアルゴリズム ${ }^{12)}$ を使用する。具体的には，対象単語 $w$ に対する類似度 $\rho_{w, s}$ （式 4）が上位 2 個の候補語義 $s \in\left.\{s_{1}, s_{2}\right.\}$ について，各語義が属する Coarse Sense Inventory (CSI) [25]

8）単語 computer の “計算機” の意味を指す.なお異義 computer\%1:18:00: : は“計算手”の意味を指す.

9) https://github.com/lwmlyy/SREF

10）実装には nltk.corpus.wordnet package を用いた.

11）実装には transformers package を用いた。

12) https://github.com/lwmlyy/SACE表 5 WordNet 語彙資源の統計量（関連・異義数は平均値）

表 6 関連語義の収集に使用する WordNet の意味関係

の意味カテゴリとの類似度を加算した類似度 $\rho_{w, s}^{+}$を計算する. そのうえで $\rho_{w, s}^{+}$が最大の語義を選択する.

$
\rho_{w, s}^{+}=\rho_{w, s}+\max _{s^{\prime} \in \mathcal{S}_{s}^{\mathrm{CSI}}} \rho_{w, s^{\prime}}
$

$\delta_{s}^{C S I}$ は, 語義 $s$ と同じ意味カテゴリに属する語義の集合13) である. CSI は WordNet 語義を 45 個の意味カテゴリに分類 ${ }^{14)}$ した語義目録である. よって式 14 の右辺第 2 項は，粗粒度で同一視できる語義との類似度を表している。

## D 実験設定の詳細

訓練時の最適化アルゴリズムは，Adam (学習率 0.001) を用いた. エポック数は 15 とした. 提案手法のハイパー パラメータは，ミニバッチサイズ $N_{B}=256$, 自己学習の重要度 $\alpha=0.2$, 変換時の距離制約 $\epsilon=0.015$ に設定した.

ハイパーパラメータの調整は，開発データによる八イパーパラメータ最適化を使用した。具体的には，パラメータ空間 $N_{B} \in\{64,128,256,512,1024\} ， \alpha \in[0.1,10]$, $\epsilon \in[0.001,0.1]$ を探索 ${ }^{15)}$ したあとで， $\epsilon \in[0.01,0.02]$ を刻み幅 0.001 でグリッドサーチした．最適化の目標は，TaM 経験則無効時の WSD タスク精度とした. 開発データは先行研究 [27] の慣習にならい，評価データのサブセットである SE07 (SemEval-2007 [28])を使用した。なお最適化の結果，256より大きいミニバッチサイズは性能に寄与しなかった. また $\alpha$ は $\epsilon$ よりも鈍感であった.

WSD タスクの評価データ・方法は，標準評価プロトコル [21] に従った. 推論アルゴリズムは， TaM 経験則無効の場合は式 4 ，有効の場合は式 14 である. 評価指標はマイクロ $\mathrm{F}$ 値である ${ }^{16)}$. 訓練は異なるランダムシードで 5 回実行して，平均および標準偏差を報告した。

## E 性能が向上しなかった手法

予備実験で性能向上に寄与しなかった手法を報告する。

・吸引・反発学習で，異義に重み付けすること

・自己学習で，非最近傍の候補語義を遠ざけること

・移動距離に対する L2 正則化を併用すること

・変換関数を可逆 [29] にすること

・語義・文脈変換関数をパラメータ共有すること

13）語義が CSI に未採録の場合は空集合になる.

14）たとえば語義 computer $\% 1: 06: 00:$ : は，意味カテゴリ CRAFT_ENGINEERING_AND_TECHNOLOGY_に分類される。

15） 探索アルゴリズムは optuna [26] の TPESampler を用いた.

16）提案手法の予測語義数は常に 1 個なので，マイクロ $\mathrm{F}$ 值は適合率および再現率と一致する [27].


# 文書の分散表現を用いたトピック分析手法の提案

中山悠理 ${ }^{1}$ 小林亮太 ${ }^{1,2}$
1 東京大学大学院 新領域創成科学研究科
2 東京大学 数理・情報教育研究センター
\{3645588575,r-koba\}@edu.k.u-tokyo.ac.jp

## 概要

トピック分析は，多数の文書から主要なテーマを抽出する技術であり，大規模なテキストデータの分析を可能にする．トピック分析を行う代表的手法としてトピックモデル (LDA など) があり，様々な分野に応用されてきた. 一方で, この手法を文書の単語数が少ないソーシャルメディアデータなどに適用すると，人間が解釈しやすいテーマ(トピック)が得れないという問題がある。本研究では文書の分散表現に基づくトピック分析手法を提案し，2つのデー タセットを用いてトピック分析手法の性能を評価した.

## 1 はじめに

デジタル化が進み，ニュース，Webページ，論文，書籍など様々な形のテキストデータを利用できるようになりつつある. テキストデータを整理，理解するための 1 つの方法は，人間が実際にテキストを読んで意味解釈を行うことである. しかし，オンライン上のテキストデータは爆発的に増えているため，全てのデータを人手で意味解釈することは不可能である.

テキストデータの例として，多数のニュース記事 (文書) の集合を考えよう，それぞれのニュース記事には，政治，経済，スポーツ，科学など記事のテー マがあるだろう．トピック分析の目的は，テキストデータから記事のテーマを自動的に発見し，ニュー ス記事をテーマが似たいくつかのグループに分類することである．トピック分析を行う代表的手法として，トピックモデル (Latent Dirichlet Allocation, LDA) [1] が挙げられる. LDA は，1)トピックはいくつかの単語の組み合わせによって決まる，2) 文書はいくつかのトピックが組み合わさったものである，という仮定のもとで，多量のテキストデータからトピック群を抽出する統計モデルである。トピッ
クモデルは，テキストデータの分析で広く使われており，バイオインフォマティクス [2], 科学計量学 (scientometrics) [3], 政治学 [4] などに応用されている.

Twitter や Reddit などのソーシャルメディアから得られるテキストデータの分析は, 東日本大震災 [5] [6] [7] や Covid-19 [8] などの災害，あるいは，選挙 [9] や Covid-19 ワクチン [10] [11] などの社会的課題に対する人々の認識を把握することへの一助となることが期待されている。 その一方で，ソー シャルメディアデータの特徵として，1) 文書 (ツイートやコメント)の単語数が少ない，2）誤字脱字などにより出現頻度の少ない単語が多数現れる， という 2 点が挙げられる. そのため，このようなデータにLDAを適用すると，人間にとって解釈困難なトピックが得られてしまう. 前者の問題 (文書の短さ) に対応するため, Author Topic Model [12] や TwitterLDA [13] など LDA を拡張したモデルが提案されている. しかしながら，ソーシャルメディアデータからトピック抽出を行うことは依然として困難な状況にある。

本研究では, 文書の分散表現 (文書の埋め込み) に基づくトピック分析手法を提案する。 そして，20 Newsgroup と AG's corpus の 2 つのデータセットを用いて提案手法の性能評価を行い，既存手法である LDA と比較を行った.

## 2 提案手法

本研究では，多量の文書を $K$ 個のトピックに分類する手法を提案する。提案手法は，

・文書をベクトルに埋め込む（3.1 節）.

・得られた埋め込みべクトルを混合ガウスモデルを用いてクラスタリングを行う（3.2 節）。

の 2 段階に基づく．以降では，上の 1)，2にについて
説明する。

## 2.1 埋め込みべクトルの計算

この節では，文書 (単語列) から埋め込みベクトルを計算する方法を説明する。自然言語処理で広く用いられている単語埋め込みは文書中の個々の単語をベクトルに変換することであるが，文書埋め込みは文書全体を 1 つのベクトルに変換することである. これにより，単語数が異なる文書群をべクトル群として表現できる.

本研究では 2 つの機械学習モデル, doc2vec [14] と Sentence-BERT (SBERT) [15] を用いた. doc2vec は，単語の埋め込みべクトルを計算する word2vec [16] から着想を得て開発されたものである. doc2vecでは埋め込みべクトルの次元 $D$ を変えることができる.今回は $D=2,4, \cdots, 160$ を検討した. 本研究では, Python ライブラリ gensim[17]を使用して doc2vec の埋め込みベクトルを計算した.

SBERT [15] は NLI データセットから事前学習された機械学習モデルである. SBERT は, 文書埋め込みべクトルを得るため，BERT [18]に pooling 処理を追加したものである. SBERT の出力ベクトルの次元は変更できないため, 固定値 $D=384$ を用いた.本研究では, hugging face を通して公開されている all-MiniLM-L6-v2 ${ }^{1)}$ を使用した.

前処理として, 文書べクトル $\mathbf{v}_{i}$ から平均ベクトルを引いて中心化された文書べクトル $\overline{\mathbf{v}}_{i}$ を計算した.

$
\overline{\mathbf{v}}_{i}=\mathbf{v}_{i}-\mathbf{m}_{\mathbf{v}}
$

ただし, $\mathbf{m}_{\mathbf{v}}=\frac{1}{n} \sum_{i=1}^{n} \mathbf{v}_{i}$ は平均ベクトル,$n$ はデータセットの文書数を表す。必要に応じて，中心化されたべクトル $\overline{\mathbf{v}}_{i}$ のノルムが 1 になるように正規化を行なった.

## 2.2 混合ガウス分布によるクラスタリング

次に，埋め込みべクトルを混合ガウスモデルを用いてクラスタリングした. 埋め込みベクトルの確率分布 $p(\mathbf{x})$ を以下の式で表される混合ガウス分布でフィットした:

$
p(\mathbf{x} \mid \mu, \boldsymbol{\Sigma}, \pi)=\sum_{i=1}^{K} \pi_{i} \mathcal{N}\left(\mathbf{x} \mid \mu_{i}, \boldsymbol{\Sigma}_{i}\right)
$

ただし, $K$ はトピック数, $\mathcal{N}\left(\mathbf{x} \mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)$ は $D$ 次元ガウス分布 (平均ベクトル: $\mu_{i}$, 共分散行列: $\boldsymbol{\Sigma}_{i}$ ), $\pi_{i}$ は混合比を表す.

1) https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2本研究では，共分散行列 $\Sigma_{i}$ として，以下の 3 つの場合で比較を行なった:
- full: $\Sigma_{i}$ は正定値行列 (制約なし).
- diag: $\Sigma_{i}$ は正定値かつ対角行列.
- scalar: $\Sigma_{i}$ は正定値かつ単位行列の定数倍.

パラメータ $\mu_{i}, \Sigma_{i}, \pi_{i}$ は逐次的に計算することによって推定できる [19]. 混合ガウス分布のパラメータ推定は，python パッケージ scikit-learn[20] を用いて行なった。

## 3 実験

## 3.1 データセット

本研究では, 20 Newsgroups(20News) [21], AG's corpus [22]の 2 つのデータセットを用いた. 20News はニュース記事のデータが 20 種類のテーマ (医学,銃問題, 中東の政治など) に分類されたものである. このデータセットには，自然言語でない長文が含まれていたため，単語数が上位 $0.01 \%$ の文書を除いて分析した.

AG's corpus は 12 万件のニュース記事を集めたものであり，ニュース記事の本文とタイトルが 4 つのテーマ (世界, 科学/技術，スポーツ，ビジネス) に分類されている. データセットを，ニュース記事 (AgNews) とタイトル (AgTitle) に分けて分析を行なった. 表 1 は，データセットの平均単語数，文書数を示す.

表 1 本研究で用いたデータセット

## 3.2 評価指標

本研究では，抽出されたトピックの性能を評価するための指標として，補正された相互情報量 (AMI, Adjusted Mutual Information) [23] と Coherence スコア $C_{V}$ [24] を用いた. AMI は分類の類似度についての指標である．今回は人手でつけられた文書の分類結果と，トピック抽出モデルで得られた分類結果の類似度を AMI で評価し，AMI をトピックの分類精度であると考える。 AMI は 1 以下の值を取る指標である. 2 つの分類結果が完全に一致するときのみ AMI

は 1 をり，2つの分類結果の類似度はランダムな場合と同程度の場合には AMI は 0 をとる. AMI は Python ライブラリ scikit-learn[20] を用いて計算した.

Coherence score $C_{V}$ はトピックの解釈性についての指標であり，トピック内の文書の単語分布により計算される。 $C_{V}$ は人間による解釈結果と相関があり，人にとって解釈しやすいトピックでは高い値を取る傾向にある. $C_{V}$ は Python ライブラリ gensim [17] を用いて計算した。

## 3.3 埋め込み方法の検討

まず，埋め込み次元を変更できる doc2vec について，次元が分類精度 (AMI) に与える影響を調べた. 混合ガウスモデルの共分散行列を scalar として，トピック数 $K$ はそれぞれのデータセットと同じ数 (20News: 20, AgNews: 4) にしてトピック抽出を行なった. 図 1 は，2つのデータセット (A. 20news, B. AgNews) から分類精度を計算した結果である。その結果，分類精度は埋め込みの次元に大きく影響を受け, 20News では 80 次元, AgNews では 8 次元，とすると精度が最も高くなった. また，埋め込み次元が低次元の場合を除き，正規化 (図 1: オレンジ) は分類精度を向上させた.

次に，SBERTを用いて文書埋め込みを計算し，正規化が分類精度 (AMI) に与える影響を調べた (表 2). doc2vec の時ほど大きな効果はないものの，正規化はSBERT を用いた場合でも分類精度を向上させることがわかった。また，最適な埋め込み次元を用いた doc2vec と SBERT で分類精度 (AMI)を比較した (表 3). いずれのデータセットに対しても，SBERT の方が高い分類精度を達成した。

以降の解析では，データセットに応じて埋め込み次元を調整する必要がなく, 高い分類精度を達成したSBERT (正規化あり)を用いて文書埋め込みを行なった.

表 2 正規化が分類精度 (AMI) に与える影響. 埋め込みモデルはSBERTを用いた。

埋め込み次元

埋め込み次元

図 1 埋め込み方法 (埋め込み次元と正規化) が分類精度 (AMI) に与える影響 (A. 20news, B. AgNews). 埋め込みモデルは doc2vecを用いた。

表 3 埋め込み用いる機械学習モデルの違いによる分類精度 (AMI) の比較.太字は最も精度の高い機械学習モデルを示す.

## 3.4 混合ガウスモデルの共分散行列の検討

クラスタリングアルゴリズム ( 2.2 節) の違いが分類精度 (AMI) に与える影響を調べるため，3 種類の共分散行列 (full， diag， scalar) を用いた混合ガウスモデルでトピック抽出を行い，分類精度を比較した (表 4).この結果，共分散行列に制限を加えない (full) と，単位行列 (scalar) に比べて分類精度がわずかに向上することがわかった．以降では，共分散行列には制限を加えずに (full) 分析を行なった.

表 4 共分散行列が分類精度 (AMI) に与える影響. 太字は最も精度の高い共分散行列を示す。

## 3.5 実験結果

最後に，提案手法と既存手法である LDAを用いて，文書群のトピック分析を行い，性能比較を行なった。提案手法では，機械学習モデルSBERTを用いて埋め込みを行い，正規化をした上で，制約なし (full) の共分散行列を持つ混合ガウスモデルを使ってクラスタリングを行なった。また，LDA を用いた実験では，前処理として"I"，"is"，"a"など，文書の内容にかかわらず出現する単語（stop words) を除去し, LDA の分析には Python ライブラリ gensim [17]を用いた。

表 5 は, 20News, AgNews の 2 つのデータセットについて，分類精度についての指標である AMI とトピックの解积性についての指標である $C_{V}$ を比較したものである. 提案手法は， AMI， $C_{V}$ のいずれの指標についても, 既存手法 (LDA) に比べて高い性能を達成した. この結果は, 提案手法のトピック分析結果は, 既存手法に比べて, 人間が分類した結果により近く，トピックもより解釈しやすいものになっていることを示唆している.

次に，ツイートのような文書の単語数が少ない場合の性能を評価するため， AG's corpus のニュースタイトルを文書としたデータセット (AgTitle) についてトピック分析を行なった. ニュース記事のデータセットと同様に，提案手法は，AMI， $C_{V}$ のいずれの指標についても，既存手法 (LDA) に比べて高い性能を達成した. 既存手法 (LDA) の分類精度 (AMI)
はチャンスレベルと同程度になっている.この結果は，LDA はトピック分類ができていないことを示唆している。 その一方で，提案手法は， AgNews (ニュース記事データ)に比べると性能が低下するものの，ニュースタイトルだけを分析した場合にも AMI: $0.50, C_{V}: 0.84$ と高い性能を示した. この性能は, AgNewsの LDA よりも高い性能であった.

表 5 提案手法 (SBERT) と既存手法 (LDA) の性能比較.太字は精度が高い手法を示す。

## 4 おわりに

本研究では，テキストデータからトピックを抽出するタスクにおいて, 文書埋め込みと混合ガウスモデルを組み合わせた手法を提案した。そして，人手によってトピックが付与された 20 News，AG's corpusの 2 つのデータセットを用いて，トピック分析手法の性能評価を行なった。その結果，提案手法は，既存手法である LDA に比べて高い性能であること，つまり，より人間に近いトピック分類を行い (AMI が高い)，トピックが解釈しやすい (Topic Coherence $C_{V}$ が高い)ことが示された. さらに，提案手法は短い文書 (ニュースタイトルのみ) に対しても，高性能なトピックを抽出できることを示唆する結果が得られた。

## 謝辞

本研究は, JSPS 科研費 JP18K11560, JP19H01133, JP21H03559, JP21H04571, JP22H03695, AMED JP21wm0525004，JST さきがけ JPMJPR1925 の支援を受けたものである.

## 参考文献

[1] David M Blei, Andrew Y Ng, and Michael I Jordan. Latent dirichlet allocation. Journal of machine Learning research, Vol. 3, pp. 993-1022, 2003.

[2] Lin Liu, Lin Tang, Wen Dong, Shaowen Yao, and Wei Zhou. An overview of topic modeling and its current ap-
plications in bioinformatics. SpringerPlus, Vol. 5, No. 1, p. 1608.

[3] Thomas L. Griffiths and Mark Steyvers. Finding scientific topics. Proceedings of the National Academy of Sciences, Vol. 101, No. suppl_1, pp. 5228-5235, 2004.

[4] Justin Grimmer and Brandon M. Stewart. Text as Data: The Promise and Pitfalls of Automatic Content Analysis Methods for Political Texts. Political Analysis, Vol. 21, No. 3, pp. 267-297.

[5] Son Doan, Bao-Khanh Ho Vo, and Nigel Collier. An Analysis of Twitter Messages in the 2011 Tohoku Earthquake. In Patty Kostkova, Martin Szomszor, and David Fowler, editors, Electronic Healthcare, Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, pp. 58-66. Springer.

[6] Misako Takayasu, Kazuya Sato, Yukie Sano, Kenta Yamada, Wataru Miura, and Hideki Takayasu. Rumor Diffusion and Convergence during the 3.11 Earthquake: A Twitter Case Study. PLOS ONE, Vol. 10, No. 4, p. e0121443.

[7] Takako Hashimoto, David Lawrence Shepard, Tetsuji Kuboyama, Kilho Shin, Ryota Kobayashi, and Takeaki Uno. Analyzing temporal patterns of topic diversity using graph clustering. The Journal of Supercomputing, Vol. 77, No. 5, pp. 4375-4388.

[8] Shu-Feng Tsao, Helen Chen, Therese Tisseverasinghe, Yang Yang, Lianghua Li, and Zahid A. Butt. What social media told us in the time of COVID-19: A scoping review. The Lancet Digital Health, Vol. 3, No. 3, pp. e175-e194.

[9] Hao Wang, Doğan Can, Abe Kazemzadeh, François Bar, and Shrikanth Narayanan. A system for real-time twitter sentiment analysis of 2012 us presidential election cycle. In Proceedings of the ACL 2012 System Demonstrations, pp. 115-120.

[10] Ryota Kobayashi, Yuka Takedomi, Yuri Nakayama, Towa Suda, Takeaki Uno, Takako Hashimoto, Masashi Toyoda, Naoki Yoshinaga, Masaru Kitsuregawa, and Luis E. C. Rocha. Evolution of public opinion on covid-19 vaccination in japan: Large-scale twitter data analysis. Journal of Medical Internet Research, Vol. 24, No. 12, p. e41928.

[11] Takako Hashimoto, Takeaki Uno, Yuka Takedomi, David Shepard, Masashi Toyoda, Naoki Yoshinaga, Masaru Kitsuregawa, and Ryota Kobayashi. Two-stage clustering method for discovering people's perceptions: A case study of the covid-19 vaccine from twitter. In 2021 IEEE International Conference on Big Data (Big Data), pp. 614-621, 2021.

[12] Michal Rosen-Zvi, Thomas Griffiths, Mark Steyvers, and Padhraic Smyth. The author-topic model for authors and documents. In Proceedings of the 20th Conference on Uncertainty in Artificial Intelligence, pp. 487-494. AUAI Press.

[13] Wayne ZHAO, Jing JIANG, Jianshu WENG, Jing HE, Ee Peng LIM, Hongfei YAN, and Xiaoming LI. TwitterLDA. SMU Research Data.

[14] Quoc Le and Tomas Mikolov. Distributed representations of sentences and documents. In Proceedings of the 31st International Conference on International Conference on Machine Learning - Volume 32, p.
II-1188-II-1196. JMLR.org, 2014.

[15] Nils Reimers and Iryna Gurevych. Sentence-bert: Sentence embeddings using siamese bert-networks. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing. Association for Computational Linguistics, 112019.

[16] Tomás Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word representations in vector space. In 1 st International Conference on Learning Representations, ICLR 2013, Scottsdale, Arizona, USA, May 2-4, 2013, Workshop Track Proceedings, 2013.

[17] Radim Rehurek and Petr Sojka. Gensim-python framework for vector space modelling. NLP Centre, Faculty of Informatics, Masaryk University, Brno, Czech Republic, Vol. 3, No. 2.

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

[19] Christopher M. Bishop. Pattern Recognition and Machine Learning (Information Science and Statistics). Springer-Verlag, Berlin, Heidelberg, 2006.

[20] F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, P. Prettenhofer, R. Weiss, V. Dubourg, J. Vanderplas, A. Passos, D. Cournapeau, M. Brucher, M. Perrot, and E. Duchesnay. Scikitlearn: Machine Learning in Python. Journal of Machine Learning Research, Vol. 12, pp. 2825-2830.

[21] Youngjoong Ko. A study of term weighting schemes using class information for text classification. In Proceedings of the 35th International ACM SIGIR Conference on Research and Development in Information Retrieval, pp. 1029-1030. Association for Computing Machinery.

[22] Xiang Zhang, Junbo Zhao, and Yann LeCun. Characterlevel convolutional networks for text classification. In Proceedings of the 28th International Conference on Neural Information Processing Systems - Volume 1, p. 649-657, Cambridge, MA, USA, 2015. MIT Press.

[23] Nguyen Xuan Vinh, Julien Epps, and James Bailey. Information theoretic measures for clusterings comparison: Is a correction for chance necessary? In Proceedings of the 26th Annual International Conference on Machine Learning, pp. 1073-1080. Association for Computing Machinery.

[24] Michael Röder, Andreas Both, and Alexander Hinneburg. Exploring the Space of Topic Coherence Measures. In Proceedings of the Eighth ACM International Conference on Web Search and Data Mining, pp. 399-408. Association for Computing Machinery.