# 誤り例のクラスタリングによる 係り受け解析器のドメイン適応効果の分析

原 拓也 $\dagger$ ・松崎 拓也 ${ }^{\dagger \dagger,+\dagger \dagger}$ - 横野 光 ${ }^{\dagger \dagger \dagger \dagger}$ - 佐藤 理史 $\dagger$

本論文では, 日本語係り受け解析器に対する追加訓練の効果を複数のドメインにわ たって俯瞰的に調べた結果を報告する。この分析のために，適応先ドメインデータ を利用した追加訓練の前後それぞれの誤りを収集し, 解析器の内部状態から得られ る，密な実数値べクトルで表現された係り受け誤りの埋め込み表現に対してクラス タリングを行った。得られたクラスタに対する定量的・定性的分析を通じて，係り 受け誤りの種類や頻度を, 複数の適応先ドメインにわたって, 包括的に把握するこ とができた。 特に, 追加訓練の効果が強く見られたクラスタや, 効果が薄かったク ラスタについて，それらに属する誤りを観察することで，追加訓練に関するドメイ ンごとの特徴に関する仮説を立て，コーパス上の統計量によって検証するという分析の流れが効率化された。分析の結果から，追加訓練の主要な効果は, 類似した文型に対する正しい構文構造の分布がドメイン間で異なることを学習することである という示唆を得た。

キーワード：ドメイン適応，係り受け解析，クラスタ分析，埋め込み表現
## Analyzing the Effect of Domain Adaptation for Dependency Parsers by Clustering Parsing Errors

Takuya Hara ${ }^{\dagger}$, Takuya Matuzaki ${ }^{\dagger, \dagger \dagger \dagger}$, Hikaru Yokono ${ }^{\dagger \dagger \dagger}$ and Satoshi Sato ${ }^{\dagger}$

This paper reports on an analysis of the effect of additional training of Japanese dependency parsers across multiple domains from a bird's-eye view. Parsing errors were collected before and after additional training using target domain data. We conducted cluster analysis of the parsing errors represented as dense real vectors, which were obtained from the internal states of the parser. Through quantitative and qualitative analysis of the clusters, the types and numbers of the parsing errors across multiple target domains were investigated. Several hypotheses concerning the effect of additional training were developed on the basis of the cluster analysis and verified through statistical analysis of the corpus. The results suggest that the main effect of additional training was learning the difference in the distributions of the correct syntactic structures for similar word sequences in different domains.

Key Words: Domain Adaptation, Dependency Parsing, Cluster Analysis, Embedding

## 1 はじめに

機械学習に基づく言語処理システムは, 一般に, 訓練に用いたテキストドメインと, 実際に運用ないし評価を行うテキストドメインが異なる場合に精度が低下する。この，訓練時と運用・評価時のテキストドメインの異なりによる精度低下を防ぐという課題を， ドメイン適応問題と 呼ぶ，以下では，訓練に用いるデータのテキストドメインを適応元ドメイン，運用ないし評価 を行うデータのテキストドメインを適応先ドメインと呼ぶ.

ドメイン適応が必要になる理由は，端的にいえば，訓練データと評価データが同一分布から のサンプルであるという統計的機械学習の基本的な前提が破られていることにある．このため，最も基本的なドメイン適応手段は，適応先ドメインのアノテーション付きコーパスを訓練デー 夕に追加してモデルを訓練しなおすこと，すなわち，いわゆる追加訓練によって，訓練データ と評価データの分布を近づけることである.

このように，追加訓練という明らかな解決法が存在するドメイン適応問題を, ことさら問題 として取り上げるのには主に 2 つの理由がある。ひとつは工学的あるいは経済的な理由である.我々が言語処理技術を適用したいテキストドメインが多様であるのに対して, 既に存在するア ノテーション付きデータのドメインは限られており，かつ，ターゲットとなるドメインごとに 新たにアノテーションを行うことには大きなコストが必要となる．また，単純な追加訓練を超 えるドメイン適応技法の中には，大量に存在する適応先ドメインの生テキストを活用すること でアノテーションのコストを抑えることを狙うものもあるが，本稿で取り上げる適応先ドメイ ンの一つである教科書テキストのように，そもそも，生テキストですら大量に存在する訳では ないドメインもある。このため, 既存のアノテーション付きデータに比べ相対的に少量しか存在しない適応先ドメインデータをどのように活用するかは，重要な技術課題となる。

ドメイン適応問題が重要である 2 つ目の理由は, 単一言語のデータには, 明らかにテキスト ドメインを超えた共通性が存在するという点にある。例えば，教科書テキストを解析したい場合でも，モデルを新聞テキストで訓練することには，当然ある程度の有効性がある．簡単にい えば，「どちらも日本語だから」そのようなことが可能になるわけであり，およそ全てのドメイ ン適応技術はこの前提に基づいているが，しかし我々は「日本語とは何か」ということの数理的・統計的な表現を知った上でこれを行っている訳では当然ない，逆に言えば，ドメイン適応課題とは，ある夕スクの精度向上という目的を通じた間接的な形であれ，「日本語とは何か・日本語テキストに共通するものは何か」の理解に近づくための一つの試みであるといえる.

以上の 2 つの理由のいずれからも，最も基本的なドメイン適応手段である追加訓練が， どの ような例に対して有効で，どのような例に対してそうでないのかを知ることには大きな意義が

ある。それを知るための基本的な方法は，追加訓練によって改善された誤りとそうでないもの を一つ一つ観察し分類してゆくことだが, これを通じて, 追加訓練によって全体として何が起 こっているのかを把握することは必ずしも容易でない.

そこで本稿では, 追加訓練の効果を俯瞰的に観察・分析するための一手法を提示し, 日本語係 り受け解析タスクにおける追加訓練を例として，その効果の分析を行った結果を報告する。本研究における分析手法は, 追加訓練前後の係り受け誤り例の収集・係り受け誤りの埋め込み 埋め达みのクラスタリングの 3 つのステップに分けられる。係り受け誤りの埋め込みは, クラ スタリングを行うための前処理のステップであり，ニューラルネットに基づく係り受け解析器 の内部状態を用いて，係り受け誤りを密な実数ベクトルで表現する。解析器の内部状態を用い ることで，データにもとづいて導出された，係り受け解析タスクにおいて重要な特徴を抽出し た表現に基づくクラスタリングを行うことができ，いわば，「解析器の視点」からの追加訓練の 効果の分析が行えると期待できる。次に，こうして得られた埋め込みをクラスタリングするこ とで追加訓練の効果を俯瞰的に観察・分析する。具体的には，クラスタリング結果に対してい くつかの統計的・定量的分析を行い, 高次元の空間の点として表現された誤りの分布と, 追加訓練による誤りの解消・発生の様子を観察する。さらに，適応先ドメインごとに，追加訓練の 効果が特徵的に表れているクラスタや, 効果が見られないクラスタに着目してその内容を観察 することで，追加訓練の効果に関わるドメインごとの特徴を分析する。この際，一つ一つの誤 り例だけでなく，まずクラスタとしてまとめて観察することで，追加訓練によって改善しやす い誤りや，ドメインごとに発生しやすい誤りを見出すことが容易になると考えられる。さらに，追加訓練の効果やドメイン間の差について, クラスタに含まれる誤りの観察をもとに仮説を立 て，コーパス上の統計量にもとづきそれを検証することで，ドメイン適応の有効性に関わるテ キストドメインの特徴を把握し，よりよい追加訓練手法のための基礎的な知見を得ることが期待できる。

本稿では，適応元ドメインとして新聞記事，適応先ドメインとして理科教科書および特許文書を用いて上記の分析を行った結果を報告する。追加訓練の効果が特に強く認められたクラス 夕の誤りを詳細に分析した結果，「Xは $+V_{1}$ スル $+N$ は/が/を $+V_{2}$ スル」「 $X$ は $+V_{1}$ スルと $+V_{2}$ スル」(「V $V_{k}$ スル」は用言, $N$ は体言) など，どのドメインにも出現する文型に対して，正しい 構造の分布がドメイン間で異なることが学習されたためであると分かった。追加訓練が効果を 上げる理由としては，大きく分けて，（a）適応元ドメインでは稀な構文が新たに学習されるこ と，および，（b）表層的には類似した文型に対する正しい構文構造（の分布）が，適応元ドメイ ンと適応先ドメインで異なることが学習されることの 2 つが考えられる. 本研究の分析の結果 からは，後者が追加訓練の主要な効果であることが示唆される.

なお, 本研究における分析手法は追加訓練と誤りの収集が可能な解析器であればニューラル 解析器に限らず適用することができる。例えば, (原, 松崎, 佐藤 2018)ではSVM を用いた解
析器である CaboCha (工藤, 松本 2002) に対する追加訓練の影響を, ニューラル解析器から得 られる埋め达み表現とクラスタリングを用いて分析している。ただ，本稿では誤り収集と埋 め达み表現の作成は同じ解析器で行った。

以下，2 節で関連研究についてまとめ，3 節で分析手法について詳述する。 4 節で実験結果を 述べ，5 節でまとめと今後の展望を述べる.

## 2 関連研究

ドメイン適応問題に対する研究は数多くあるが，それらは大きく分けると 2 つのアプローチ に分けられる。一つ目のアプローチは効果的な学習法に関するものである。このアプローチは 少量しかない適応先ドメインデータの情報をより強く反映し, 正しく解析を行うため, 一般的な 機械学習のプロセスの一部を変更するものである。例えば Daumé III ら (Daumé III and Marcu 2006) は学習時の適応先ドメインデータの重みを適応元ドメインデータと変える方法を提案した. Daumé III (Daumé III 2007) は両方のドメインに共通の情報と固有の情報とを素性表現を使って 工夫して学習する方法を提案した。 McClosky ら (McClosky, Charniak, and Johnson 2010) は複数の適応元ドメインの重みつき和によって適応先ドメインを表現する手法を提案した. Wang ら (Wang, Finch, Utiyama, and Sumita 2017) は適応先ドメインに類似した適応元ドメインデータ だけをモデルの内部表現を用いて選択，訓練に用いる手法を提案した. Sato ら (Sato, Manabe, Noji, and Matsumoto 2017) は両方のドメイン共通の情報と固有の情報を敵対的学習を用いて分離し，訓練を行った。

二つ目のアプローチは効率的な適応先データの収集法に関するものである. アノテーションさ れた適応先データは少ないが，生の適応先デー夕は大量に利用できるという場合に利用できる手法で, 生の適応先データのうち最も精度上昇に寄与するデータを選択し，そのデータを訓練デー 夕に追加するというものである。この手法はアクティブラーニングと呼ばれ，この手法を用い ても適応先ドメインのアノテーションコストを減少できると期待できる（例えば (Marcheggiani and Artieres 2014; Li, Zhang, Zhang, Liu, Chen, Wu, and Wang 2016) など).

また, 本研究はニューラルモデルの挙動について, 特に追加訓練の効果に焦点を当てて説明しよ うとする研究とも位置付けられるが, 複雑なニューラルモデルの挙動を様々な側面から理解しよ うとする試みは近年注目を集めている。例えば，Kohら (Koh and Liang 2017) は損失関数の微分 を用いて特定の訓練例や特定の素性が出力に与える影響を調べた。 Tenney ら (Tenney, Das, and Pavlick 2019) は最終的な決定に対して Bidirectional Encoder Representations from Transformers (BERT) (Devlin, Chang, Lee, and Toutanova 2019)の各層がもたらす寄与と, 各層を追加する ことによる精度上昇量をもとに BERT の各層の振る舞いを調べた。

本研究では特に追加訓練の効果を理解することを目的として係り受け誤りの分類・分析を行

うが，より一般に，係り受け誤りの分類・分析を通した性能の改善に関しては先行研究が存在 する，例えば，金山 (金山 2004) は，係り受け誤りについての調査から誤りの共通点を見出し，正解と誤りを区別する素性を追加することで誤りを減少させた。河原ら (河原，金山，颯々野 2015) は，係り受け誤りをいくつかのパターンに分類し，それぞれのパターンについての対処法 を述べ，さらに現在の性能評価の問題点や後続のタスクへの影響についても議論した。これら の先行研究は主として特定のドメインにおける係り受け誤りの改善を目的としているが，本研究ではドメインごとの差から生じる誤りや，追加訓練による誤り傾向の変化の分析を目的とす る点でこれらと異なる。また，先行研究では誤りを人手で分類しているが，本研究は解析器の 内部状態を用いて自動的に分類している。これによって，人手での分類が困難なほど多数の係 り受け誤りを俯瞰的に観察することが可能になる。さらに，人の目を通して把握した文型や言語現象の類似性ではなく，解析器の内部状態を基に誤りを自動分類することで，データからの 学習の効果と結びつけやすい形で誤りが分類できると期待できる.

以上のように，ドメイン適応問題に関する研究やニューラルモデルの挙動について説明する 研究，および誤り分析に関する研究は多く存在するが，ドメイン適応問題において追加訓練が 解析結果にもたらす影響について, 単なる精度の向上ではなく, その内実を理解することを目的とした研究は少ない. 本研究は, これを目的として誤り傾向の変化を定性的・定量的に分析 したものである.

## 3 分析手法

本節では分析手法について述べる。図 1 に分析の流れのブロック図を示す。以降ではそれぞ れのブロックについて詳しく述べる。

図 1 分析の流れのブロック図

## 3.1 係り受け解析器

はじめに, 本研究で用いる係り受け解析器について述べる。これは図 1 の誤り収集・誤り埋 め込みブロックで用いられる。本研究で用いるモデルは, 松野ら (松野, 能地, 松本 2018)のも のをべースとしている。松野らのモデルとの相違点については本項の最後にまとめる.

本研究で用いる係り受け解析器を図 2 に示す.この解析器は大きく文節埋め込み層 (図下側) とスコア計算層（図上側）に分けられる。さらに文節埋め达み層は以下の 3 ステップに分けら れる。

## 1. 形態素層

形態素の素性表現ベクトル列 $\boldsymbol{x}_{i}^{\text {word }}$ に対し Bi-directional Long-Short Term Memory (BiLSTM) を適用することで，各形態素を文脈を考慮した埋め込み表現 $\left(\overleftarrow{\boldsymbol{y}}_{i}^{\text {word }}, \overrightarrow{\boldsymbol{y}}_{i}^{\text {word }}\right)$ に変換する。

$
\left(\overleftarrow{\boldsymbol{y}}_{i}^{\text {word }}, \overrightarrow{\boldsymbol{y}}_{i}^{\text {word }}\right)=\operatorname{BiLSTM}^{\text {word }}\left(\boldsymbol{x}_{i}^{\text {word }}\right)
$

## 2. 差分層

$\overleftarrow{\boldsymbol{y}}^{\text {word }}=\left(\overleftarrow{\boldsymbol{y}}_{0}^{\text {word }}, \ldots, \overleftarrow{\boldsymbol{y}}_{M+1}^{\text {word }}\right), \overrightarrow{\boldsymbol{y}}^{\text {word }}=\left(\overrightarrow{\boldsymbol{y}}_{0}^{\text {word }}, \ldots, \overrightarrow{\boldsymbol{y}}_{M+1}^{\text {word }}\right)(M$ は形態素数 $)$ に対し, 文節 に属する形態素の情報が入力される前の情報と全ての情報が入力された後の情報の差分を取る ことで文節を表す表現 $\boldsymbol{x}^{\text {chunk }}=\left(\boldsymbol{x}_{1}^{\text {chunk }}, \ldots, \boldsymbol{x}_{C}^{\text {chunk }}\right) （ C$ は文節数）を求める. $t$ 番目の文節が $i$ 番目の形態素から $j$ 番目の形態素で構成されているとき， $x^{\text {chunk }}$ は以下のように計算される. ただし，甲はべクトルの結合を表す.

図 2 解析器の構成

$
\begin{aligned}
\overleftarrow{\boldsymbol{x}}_{t}^{\text {chunk }} & =\overleftarrow{\boldsymbol{y}}_{i}^{\text {word }}-\overleftarrow{\boldsymbol{y}}_{j+1}^{\text {word }} \\
\overrightarrow{\boldsymbol{x}}_{t}^{\text {chunk }} & =\overrightarrow{\boldsymbol{y}}_{j}^{\text {word }}-\overrightarrow{\boldsymbol{y}}_{i-1}^{\text {word }} \\
\boldsymbol{x}_{t}^{\text {chunk }} & =\overleftarrow{\boldsymbol{x}}_{t}^{\text {chunk }} \oplus \overrightarrow{\boldsymbol{x}}_{t}^{\text {chunk }}
\end{aligned}
$

## 3. 文節層

$\boldsymbol{x}^{\text {chunk }}$ BiLSTM に通すことで周辺の文脈も含んだ文節の情報を表す表現 $\boldsymbol{y}^{\text {chunk }}=\left(\boldsymbol{y}_{0}^{\text {chunk }}, \ldots, \boldsymbol{y}_{C+1}^{\text {chunk }}\right)$ （以降，文節埋め达み表現）にする.

$
\begin{aligned}
\left(\overleftarrow{\boldsymbol{y}}_{t}^{\text {chunk }}, \overrightarrow{\boldsymbol{y}}_{t}^{\text {chunk }}\right) & =\operatorname{BiLSTM}^{\text {chunk }}\left(\boldsymbol{x}_{t}^{\text {chunk }}\right) \\
\boldsymbol{y}_{t}^{\text {chunk }} & =\overleftarrow{\boldsymbol{y}}_{t}^{\text {chunk }} \oplus \overrightarrow{\boldsymbol{y}}_{t}^{\text {chunk }}
\end{aligned}
$

スコア計算層では $t$ 番目の文節と $u$ 番目の文節 $(t<u)$ について, それらの文節埋め达み表現 $\boldsymbol{y}_{t}^{\text {chunk }}, \boldsymbol{y}_{u}^{\text {chunk }}$ 多層パーセプトロンに入力することで， 2 文節間の係り受け関係スコアを 計算する。 $t$ 番目の文節が $u$ 番目の文節に係る時の係り受け関係スコア $s_{t, u}$ は以下のように計算される。

$
\begin{aligned}
& s_{t, u}=\operatorname{MLP}\left(\boldsymbol{y}_{t}^{\text {chunk }} \oplus \boldsymbol{y}_{u}^{\text {chunk }} \oplus[\mathrm{I}(u-t=1), \mathrm{I}(u-t \leq 5)]\right) \\
& \mathrm{I}(x)= \begin{cases}1 & (x \text { is true }) \\
0 & (x \text { is false })\end{cases}
\end{aligned}
$

$\mathrm{I}(u-t=1)$ は文節間距離が 1 であるかという素性を, $\mathrm{I}(u-t \leq 5)$ は文節間距離が 5 以下である かという素性を表す。文節間距離素性は係り受け解析において大きな役割を果たすため，精度 を向上させる目的でこのタイミングで明示的に導入する。文節間距離素性の境界値の設定（1, 2 5, 6 以上）は CaboCha の実装に従ったものである。このスコア計算モデルと，遷移ベース 係り受け解析アルゴリズムである内元ら (内元, 関根, 井佐原 1999)のアルゴリズムを用いて 係り受け解析を行う. 内元らのアルゴリズムは, ある係り文節に対し受け文節となりうる全て の文節 1 について係り受け関係スコアを計算し, 最もスコアが高い文節を受け文節と決めると いうことを後ろの文節から順に繰り返すことで構文木を構築する。正しい係り受け文節ぺアを 入力した時のスコアが他のぺアを入力した時のスコアより高くなるようにするため, 損失関数 loss を以下のように定義し, 訓練を行った.

$
\operatorname{loss}=-\sum_{u^{\prime} \in \mathcal{C}_{t}} \log \frac{\exp \left(s_{t, u}\right)}{\exp \left(s_{t, u}\right)+\exp \left(s_{t, u^{\prime}}\right)}
$

ただし,$t$ は係り文節， $u$ は正しい受け文節， $\mathcal{C}_{t}$ は受け文節の候補集合を表す.
^{1} 1$. 係り文節より後ろに存在すること, 2 . 非交差条件を満たすこと，の 2 つを満たす文節.
}
係り受け解析器の追加訓練を行う際は，適応元ドメインのデータで訓練したパラメータを初期値とし, 適応先ドメインのデータによる訓練を行った。本研究における分析では, 追加訓練前後の誤り傾向の変化を，文節埋め达みの空間内でどの領域に配置される誤りが減少あるいは増加したか，という観点から捉える。また, この観察を複数の適応先ドメインに渡って行う．各適応先ドメインでの追加訓練の前後で文節埋め込み自体が変化すると，そのような形で誤りの 変化を観察することはできない。そのため，文節埋め込み層のパラメータは固定し，スコア計算層のパラメータのみ学習するようにした。

本研究で用いるモデルと松野らのモデルでは, 係り受け関係スコアの計算法および解析アル ゴリズムが異なる。松野らは文節埋め达み表現に対し, 係り文節／受け文節専用の多層パーセ プトロンを適用したあとでBiaffine 変換を用いることで，係り受け関係スコアを計算している. Biaffine 変換は最大で 2 つの要素の組み合わせ素性を用いた回帰を行えるが，隠れ層 1 層の多層パーセプトロンでも，隠れ層のユニット数が十分であれば実質的に同じように組み合わせ素性を用いて回帰を行うことができる (Cybenko 1989)，そのため，表現力は同等（以上）である と考えられる。そこで本研究では多層パーセプトロンを用いた図 2 の構成で解析を行った。ま た解析アルゴリズムとして松野らはグラフベース解析アルゴリズムを使っている. グラフベー ス解析アルゴリズムの典型例は，係り受けが非交差という条件の下で 2 文節間の係り受けスコ アの和を最大化する構文木を求めるものである。このような手法では, 非交差制約によって, ある 2 つ文節間の係り受けスコアの変化が構文木全体の形状に影響する場合がある。このた め, 係り受け関係スコアと構文木上で生じる誤りの関係が遷移べースの解析法ほど明確でない. そこで本研究では遷移ベースのアルゴリズムを用いる.

## 3.2 係り受け誤りの収集・埋め込み

この項では，図 1 の誤り収集・誤り埋め込みブロックについて述べる。本研究の目的は追加訓練の前後における係り受けの誤り方の変化の分析である。そのために，表 1 に示す 3 種類の 係り受け誤りの例を収集する。

## a. 適応元ドメインにおける誤りの収集

適応元ドメインのデータを訓練データと評価データが $1 ： 1$ になるように分割し, 訓練デー タを用いてモデルを訓練する。得られたモデルを用いて評価データを解析した際の誤りを用い

表 1 係り受け誤りの分類

る。適応元ドメインはデータ量が多く，かつ，標準的な日本語をある程度代表するテキストド メインだと仮定しているため，この誤りをクラスタリングした結果を分析（3.3 項）における誤 りタイプの基準として用いる.

## b. 追加訓練前の適応先ドメイン誤りの収集

追加訓練前の適応先ドメインの解析誤りとして, a で得られたモデルを用いて, 適応先ドメ インのデータ全てを解析した際の誤りを用いる。

## c. 追加訓練後の適応先ドメイン誤りの収集

追加訓練後の適応先ドメインの解析誤りとして, a で得られたモデルを 4 分割交差検証の要領で追加訓練・評価する。つまり適応先ドメインのデータを 4 つに分割し, そのうちの 3 つを 用いて追加訓練によりモデルを作成，残り 1 つのデータを解析する，というプロセスを，評価 に用いるデータを順番に入れ替えながら 4 回行い，得られた誤りを用いる.

これらの誤りのうち， bを追加訓練前誤り，cを追加訓練後誤りと呼ぶ。なお，追加訓練後の 解析器を用いて適応元ドメインのデータを解析した際の誤りは使用しない. その理由は, 本研究の対象が追加訓練前後における適応先ドメインの解析誤りの変化であり, 適応元ドメインの 解析誤りの変化には興味がないためである.

上のようにして得られた係り受け誤りはそのままでは数値的な取り扱いが難しい。そのため,数値表現に変換する。係り受け誤りには係り文節 $b_{1}$, 本来 $b_{1}$ が係るべき正しい受け文節 $b_{2}$, 解析器が誤って出力した受け文節 $b_{2}^{\prime}$ という 3 つの主たる要素がある. 本研究では係り受け誤り埋 め込み表現を $b_{1}, b_{2}, b_{2}^{\prime}$ それぞれの文節の文節埋め込み表現（3.1 項）と距離素性を結合したもの と定義する。距離素性は係り文節が文の先頭から $a$ 番目に，正しい受け文節が $b$ 番目に，誤って 選択した受け文節が $c$ 番目に存在するときの, $\mathrm{I}(b-a=1), \mathrm{I}(b-a \leq 5), \mathrm{I}(c-a=1), \mathrm{I}(c-a \leq 5)$ の値を結合させたべクトルである。係り受け誤り埋め达み表現はべクトルなので，数値的な取 り扱いが容易になり，次項のクラスタリングを行えるようになる.

## 3.3 クラスタリング・定量的分析

この項では図 1 のクラスタリング・分析ブロックについて述べる。係り受け誤りは一つ一つ 見ることである程度誤りの原因が推測できるものの, そのような分析のみでは全体としての傾向は掴みにくい．そこで俯瞰的に分析するためにクラスタリングを行う．クラスタリングアル ゴリズムとしてはデータ件数の多さを考慮し, k-means 法を用いる. k-means 法では, デー夕の みならず初期値によっても結果が変化するため, 追加訓練前誤りと追加訓練後誤りを独立して クラスタリングしてしまうと，得られるクラスタ集合の間で一対一の対応関係が自然に見いだ せるとは限らない. その場合, 追加訓練前後の比較が難しくなるため, それを防ぐために以下 のようにクラスタリングを行う.

（1）適応元ドメイン誤り（表 1 のa）のみを用いて k-means 法でクラスタリングする.

（2）適応先ドメイン誤り（表 1 の b , c）のそれぞれの埋め込み表現を，手順 1 で得られたク ラスタのうち，最もクラスタ重心が近いものに割り当てる.

以上の手順は，まず数の多い適応元ドメインにおける誤りを，クラスタリングを通じてグルー プ化することで誤りタイプを定め，次に追加訓練前後それぞれの適応先ドメイン誤りを，近い 誤りタイプに分類していくことを意図している.

## 4 実験

3 節で述べた分析手法に基づき，追加訓練の効果を調べる実験を行った．本節ではその詳細と 分析結果について述べる。以下， 4.1 項で利用したデータ， 4.2 項で係り受け誤りの収集結果に ついて述べ， 4.3 項で係り受け誤りのクラスタリング結果に基づく定量的分析についてまとめ, 4.4 項で，いくつかのクラスタの観察を通じて，追加訓練におけるドメインごとの特徴を分析し た結果について述べる。

## 4.1 利用データ

追加訓練の効果を調べるためのデータとして以下の 3 種類の係り受けアノテーション付き コーパスを用いた。
- 京都大学テキストコーパス (黑橋, 長尾 1997) (以下, 新聞記事)

1995 年 1 月 1 日から 17 日までの毎日新聞の記事にアノテーションを付与したもの.
- 東京書籍「新編新しい科学 (中学 1 年生, 中学 2 年生)」(以下, 理科教科書)

中学 1 年生向け, 中学 2 年生向けの理科の教科書にアノテーションを付与したもの.
- 特許文書

高分子化合物に関する特許の実施例の箇所にアノテーションを付与したもの.

これらのうち, 新聞記事を適応元ドメイン, 理科教科書および特許文書を適応先ドメインとし て扱う。それぞれのコーパスの統計情報を表 2 に示す。表からわかるように，適応先ドメイン の量は適応元ドメインよりも少量 (10\%未満) である。また新聞記事や理科教科書と比べると,特許文書の方が文が長いということがわかる.

表 2 適応元ドメイン・適応先ドメインの統計

## 4.2 係り受け誤りの収集結果

3.1 項で述べた解析器を, 以下のようにハイパーパラメータを設定して訓練した. 入力は形態素の品詞 $(4$ レべル ) ・活用形・活用タイプのそれぞれを 20 次元の埋め达み層に通したものと,形態素の基本形 2 を 200 次元の埋め込み層に通したものを結合した 320 次元のべクトルの系列 とした。形態素層・文節層の BiLSTM は隠れ層が 1 層 300 次元のものを用いた。訓練アルゴリ ズムは学習係数 0.01 の AdaGradで, ミニバッチサイズは 32 文, 重み減衰係数は $10^{-5}$ とした.訓練中の勾配爆発を抑えるため，勾配のノルムは 5 に制限した。エポック数は最大 32 エポック だが, 各エポックの結果のうちで評価デー夕における損失が最も少ないものを最終結果とした.実装には Chainer (Tokui, Oono, Hido, and Clayton 2015)を用いた。なお，訓練および誤りの収集いずれにおいても，単語区切り・品詞・文節区切りは正解データのものを用いた.

追加訓練では 3.2 項で述べたように 4 分割交差検証の要領で訓練を行ったが, 理科教科書と 特許文書では分割の方法を変えて訓練した，具体的には理科教科書（および新聞記事の訓練・評価デー夕）の分割は文単位で行い，特許文書は文書単位で行った。その理由は，同じ特許文書内では，物質の生成手順をパラメータを変えて繰り返す記述など，極めて類似した文が連続 することが多く，それらが訓練データと評価デー夕に分かれると正しく汎化性能を評価できな いと考えたためである.

追加訓練前後の解析器の精度および収集できた係り受け誤りの数を表 3 に示す ${ }^{3}$. 理科教科書・特許文書それぞれについて追加訓練の前後を比較すると, 文節単位精度が 3 ポイント以上向上していることから, 追加訓練には効果があることが確認できる。また, 追加訓練前の理科教科書の文節単位精度と比べて特許文書の文節単位精度は 2.5 ポイントほど低いことから, 特許文書の解析には新聞記事での訓練だけでは不足することが多いと考えられる。

## 4.3 係り受け誤りのクラスタリングと分析

前項で収集した係り受け誤りを 3.2 項で述べた手法で埋め込み表現に変換した。それらをク

表 3 解析器の精度および収集できた係り受け誤りの数

ラスタ数 30 として 3.3 項で述べた手法を用いてクラスタリングした. 係り受け誤りをクラスタ リングしたものを主成分分析を用いて平面上にプロットした結果を図 3 から図 8 に示す 4 。以降では，得られたクラスタを用いて定量的分析を行っていく。

図 3 新聞記事の係り受け誤り埋め込み表現を平面にプロットした図

図 5 理科教科書（追加訓練前）の係り受け誤り 埋め込み表現を平面にプロットした図

図 7 特許文書（追加訓練前）の係り受け誤り埋 め込み表現を平面にプロットした図

図 4 図 3 のクラスタ集合を 3 つのまとまりに分割した図

図 6 理科教科書（追加訓練後）の係り受け誤り 埋め达み表現を平面にプロットした図

図 8 特許文書 (追加訓練後) の係り受け誤り埋 め込み表現を平面にプロットした図

## 4.3.1 クラスタ集合の傾向の分析

図 3 を観察すると，図 4 のようにいくつかのクラスタをまとめることで，大きく 3 つの誤り タイプに分割できそうである。以降では左のまとまり（赤）を L 群，中央のまとまり（緑）を C 群, 右のまとまり（青）を $\mathrm{R}$ 群と呼ぶ.このように 3 つに分割した群が係り受け誤りの特徴をど のように反映しているか調べるため，それぞれの群の係り受け誤りに対して，＜係り文節の最後の単語 ${ }^{5}$ の品詞, 正しい受け文節の最初の単語 6 の品詞, 誤って選択した受け文節の最初の単語の品詞>の 3 つ組を作成し，分布を調べた。その結果を図 9 に示す 7 . $\mathrm{R}$ 群は $\mathrm{L}$ 群, $\mathrm{C}$ 群と大

## 係 $/$ 正受 $/$ 誤受

図 9 図 4 のそれぞれのまとまりに属する各誤りを構成する 3 つの文節の品詞の組の分布

きく異なっており，正しい受け文節と誤った受け文節がともに名詞であるパターンが多かった. $\mathrm{L}$ 群と $\mathrm{C}$ 群については似た分布となっているが， L 群は 3 つ組のうち 2 つが動詞である誤りが $\mathrm{C}$ 群よりも相対的に多くなり, それ以外では $\mathrm{C}$ 群より少なくなっているという特徴があった.他にも係り受け関係に影響を与える要素である読点の有無と文節間距離を調べるため, 図 4 のそれぞれのまとまりに属する誤りに対し，係り文節／正しい受け文節／誤った受け文節が読点を含んでいるかどうかの 3 つ組の分布（図 10）および＜係り文節から正しい受け文節までの 文節間距離，係り文節から誤った受け文節までの文節間距離>の2つ組の分布（図 11）を調べ た. $\mathrm{R}$ 群は全ての文節に読点が無いパターンが相対的に多く, 距離が短い係り受け関係に偏っ

図 10 図 4 のそれぞれのまとまりに属する各誤りを構成する文節の読点の有無の分布

図 11 図 4 のそれぞれのまとまりに属する各誤りの係り文節〜正しい受け文節／係り文節〜誤った受け 文節間距離の分布。ただし， $=1$ は距離が 1 であることを， $\leq 5$ は距離が $2-5$ であることを， $\geq 6$ は距離が 6 以上であることを表す.

ていた. $\mathrm{L}$ 群は $\mathrm{C}$ 群と比べると係り文節に読点があるパターンが相対的に多く, 距離が 6 以上 の係り受け関係に偏っていた。

以上で調べた品詞，読点の有無，および文節間の距離は係り受け誤り埋め込みの分布と完全 に対応しているわけではないものの，それらと係り受け誤りの空間内でのまとまりに関連性が あったことから，埋め込み表現は係り受け誤りの構文的な特徴をある程度捉えていると考えら れる。

## 4.3.2 正規化距離による分析

図 3 から図 8 を見ると，少なくとも第 1 ，第 2 主成分のなす平面上では，新聞記事誤りの分布 から大きく離れた位置には適応先ドメイン誤りが存在しないことがわかる. 理科教科書と特許文書の誤りについて，新聞記事誤りの分布との違いをより詳しく見るため，誤りからそれが属 するクラスタの重心までの正規化距離のヒストグラムを作成した。ここでいう誤り $e$ の正規化距離とは，誤り $e$ の所属するクラスタを $C, C$ の重心を $c, C$ に属する新聞記事誤りの集合を $N$ として以下のように計算される値である.

$
\frac{\|e-c\|}{\sqrt{\frac{\sum_{n \in N}|| n-c \|^{2}}{|N|}}}
$

すなわち誤りから最寄りのクラスタ重心までの距離を，クラスタを等方的正規分布からの標本 と見たときの分散の平方根で正規化したものである。その結果を図 12 に示す.また，それぞれ のドメインについての正規化距離の平均を表 4 に示す。この図や表から新聞記事誤りと比べて

図 12 新聞記事・理科教科書・特許文書のそれぞれの誤りについての正規化距離の分布
表 4 新聞記事・理科教科書・特許文書のそれぞれの正規化距離の平均

理科教科書誤りは重心に近い傾向が, 特許文書誤りは重心から遠い位置 $(\geq 1.2)$ にも存在する傾向があり，ドメインごとに特徴があることが確認できる。また追加訓練前後を比較すると，理科教科書誤りは訓練によってより重心に近い側に偏る傾向があり，特許文書誤りは訓練によっ てより重心から遠い側に偏る傾向があることがわかる。しかし, どちらの適応先ドメインでも， かつ, 追加訓練の前後いずれにおいても，誤りからクラスタ重心までの距離は新聞記事誤りに比 べて極端に遠いものが多い訳ではないことが分かる。このことから，適応先ドメインにおける 誤りは, 解析器の内部状態が新聞記事上では起こらなかったような状態 (いわば解析器にとって 「未知の内部状態」）になったために起こったわけではなく，新聞テキストと適応先ドメインの テキストは, 解析器内の中間表現としては類似しているが, 解析器が取るべき正しいアクショ ンが異なっているために誤りが生じていることが示唆される。 よって, 新聞記事誤りを基準と して適応先ドメイン誤りを分類することで，おおまかには構造的に類似した誤りのクラスタが 得られると予想される。 さらに詳細には, 「解析器の視点」からは類似しているように見えるも のの, 本来は新聞と適応先ドメインで異なる特徵をもつ誤りのグループが見いだせる場合があ ると予想される。実際に $§ 4.4 .3$ でそのような例を示す.

## 4.3.3適応先ドメイン比による分析

理科教科書・特許文書の各クラスタを定量的に分析するための指標として，適応先ドメイン 誤り比を定義する。これはそれぞれのクラスタに対し式 (11) で定義される値で, この値が大き いほど適応先ドメインに固有の誤りタイプだと考えられる。適応元ドメイン誤りの数で割る理由は，どのドメインにも大量に存在する誤りタイプではなく，適応先ドメインに特徴的に多い 誤りタイプを見るためには基準となるドメイン（適応元ドメイン）で正規化したほうが良いた めである.

$
\text { 適応先ドメイン比 }=\frac{\# \text { 適応先ドメインから得られた誤り }}{\# \text { 適応元ドメインから得られた誤り }}
$

理科教科書・特許文書それぞれについての適応先ドメイン比を図 13 , 図 14 に示す。追加訓練前後の適応先ドメイン比を比べると，ほとんどすべてのドメインで追加訓練を行うことで減少し

図 13 理科教科書解析誤りの各クラスタにおける適応先ドメイン比

図 14 特許文書解析誤りの各クラスタにおける適応先ドメイン比

ていることがわかる。しかし減少量はクラスタごとに異なるので，改善しやすい係り受け誤り と改善しにくい係り受け誤りがあることも確認できる。また理科教科書と特許文書で適応先ド メイン比が高いクラスタが異なっていることからは, ドメインごとに誤りの分布に特徴がある ことが確認できる。

## 4.3.4追加訓練の前後における各クラスタに属する誤りの数の比較

最後に理科教科書, 特許文書の各クラスタについて追加訓練で変化しなかった／解消された ／新たに発生した誤りの数を表 5 に示す 8 . 新たに発生した誤りの数と変化しなかった誤りの 数の比はどちらのドメインにおいてもほぼ $1: 2$ であるが，新たに発生した誤りの数と解消され た誤りの数の比はドメインごとに異なっていることがわかる（理科教科書 $\rightarrow 1: 2.37$, 特許文書 $\rightarrow 1: 1.85)^{9}$. 表中で特に多くの誤りが解消されたクラスタ 13 に属する理科教科書誤りどうし は，互いの類似性が高く，頻出する構文だと予想される。これは一般に機械学習は似通ってい て，かつ大量に存在する誤りをより積極的に解消する傾向があるためである．実際にそうであ るかは $\S 4.4 .3$ で検討する。

表 5 追加訓練による各クラスタに属する誤りの数の変化

## 4.4 クラスタリング結果に基づくエラー分析

この項では前項で作成したクラスタのうち, クラスタ $5,10,13,24$ についてさらに詳しく分析を行う。これらのクラスタを選択した理由は，クラスタ 5 やクラスタ 13 は理科教科書におい て適応先ドメイン比が大きく減少するという特徴を，クラスタ 10 は理科教科書と特許文書のい ずれにおいても適応先ドメイン比があまり減少しないという特徴を, クラスタ 24 はどちらのド

メインにおいても適応先ドメイン比が減少するという特徴を持っていたためである.

## 4.4.1クラスタ 5 (理科教科書で大きくエラーが減少)

クラスタ 5 について，その誤り例を以下に示す。たたし係：‥は係り文節を, 正受：‥は正 しい受け文節を，誤受：‥はシステムが誤って選択した受け文節を表す。

新聞記事-5：

この/ため/ポストが/見つかるまでの/係：間、/研究生などと/して/

大学に/正受：残る/人が/誤受：少なくない。

理科教科書-5：

また,/震度の/係：分布も／震央を/中心に/した/同心円状に/誤受：なる/ことが/正受：多い。

特許文書-5：

表 1 / /表 3 から、/実施例/ 1 ～6の/係：熱可塑性樹脂組成物は、/

長期にわたって/優れた/耐加水分解性および/耐熱性を/正受：有する/ことが/誤受：分かった。

クラスタ 5 に属する誤りは，正しい受け文節と誤った受け文節がともに用言で，文中で先に出現する文節が連体修飾節であるものが多く見られた。この場合，係り文節の意味的に係る範囲 が連体修飾節内で収まっているならば連体修飾節の末尾文節を受け文節とすべきだが，収まっ ていないならばより後ろの文節を受け文節とする必要がある。 クラスタ 5 に属する誤りの多く はその判定を誤った結果発生したものだと考えられる。例えば理科教科書では，「“/こと+助詞（が，は等）/(わかる｜多い｜ある｜できる)」という形の文が 2,460 文中 274 文と頻出する. この文型では文中で前方に出現するガ格文節が「こと」の直前の連体修飾節と文末文節のどち らに係るのか，一般には文脈や語彙の情報から判定する必要がある。一方, 理科教科書の文で あるという前提があれば，「Xは/ㄱV スル/ことが/わかる」のように文末の用言によって正し い受け文節 (「わかる」)がほぼ決まるものもある。この「“/こと＋助詞/用言」という文型にお いて判定を誤ったパターンは追加訓練前は 43 個であったが， 22 個解消し 5 個新たに発生する ことにより追加訓練後は 26 個になった. 表 5 からわかるように，理科教科書で追加訓練によっ て解消されたクラスタ 5 の誤りは計 123 個あり，上記の「“/こと+助詞/用言」という文型以外のものも含まれる。他の誤りも同様に，一般的には文脈や語彙の情報を必要とする連体修飾節と後続の用言の間での受け文節の選択において，被修飾体言（上記の文型における「こと」） と後続の用言の組合せなどを手掛かりに, ドメイン特有の傾向が学習されたものと考えられる. また，他の要因の可能性として受け文節の曖昧さの問題も挙げられる。例えば，クラスタ 5 に 属する誤りの中には以下のようにアノテーションエラーあるいは本質的に判断が難しいと思わ れる例も存在した。
A.

これに対して，/光を/当てた/係：ときに/植物に/誤受：とりこまれる/気体も/正受：ある。
B.

その/係：ほかに/体外へ/誤受：排出される/物の/ひとつとして/尿が/正受：ある。

このような場合に, 理科教科書のアノテーションでは後方の用言が受け文節として選ばれる傾向が見受けられ，これが追加訓練の結果に影響を及ぼしている可能性もある.

## 4.4.2 クラスタ 10 (理科教科書・特許文書ともに誤りが減少しない)

クラスタ 10 について，その例を以下に示す.

新聞記事-10：

それに/より/貸手、/借り手および/係：天下り経営者や/正受：行政の/誤受：責任が/明確になり、/二度と/失敗しない/ための/数々の/教訓が/国民全体に/共有されるはずだ。

理科教科書-10：

ある/係：温度の/誤受： $1 \mathrm{~m}^{3}$ の/正受：空気に/ふくまれる/水蒸気の/質量が，/

その/温度での/飽和水蒸気量に対して/どれくらいの/割合かを/百分率で/表す。

特許文書-10：

上記の/粉体/100 m g/内径/係：10.00 mmの/正受：円形の/誤受：ダイスに/充填し、/ ダイス内部の/気圧を/減圧した/上で、/5 $\mathrm{t} / \mathrm{c} \mathrm{m}^{2}$ の/荷重を/かけ、/

圧着温度/140 Cで/ 1 分間/圧着した。

クラスタ 10 に属する誤りは，係り文節が体言に接続する句であり，正しい受け文節と誤った受 け文節が「Aの B」のように両方とも体言句かつそれらが係り受け関係になっているという特徴を持つものが多かった。このタイプはさらに (a) 並列関係の接続先の判断誤りと (b) 連体の 「の」の接続先の判断誤りに分けられる。例えば，新聞記事-10は (a) の誤りで，「天下り経営者 や」と「責任が」は語句の意味を考えなければ接続できるが，常識的には並列関係にならない と考えられる。理科教科書-10 は (b) の誤りで，「温度」と「 $1 \mathrm{~m}^{3}$ 」はどちらも空気の属性であ り，いずれも「空気」を修飾しうるという知識があれば正しく判定できる。しかし特許文書-10 において「10.00 mm」は「円形」と「ダイス」どちらの属性としても考えられるので，文脈に依存する判定を行う必要もある。いずれのタイプの判断も意味的あるいは語彙レベルの知識を要し, 少量の追加訓練データからはそのような知識は得られなかったため, 誤りは大きく は改善しなかったと考えられる。

特許文書におけるクラスタ 10 の誤りが理科教科書より多かった理由は，この夕イプの構文の 出現回数が多かったためだと推測される。この構文は一文に多くの内容を含めることができる
表 6 （係り $\rightarrow$ 体言 $\mathrm{vs}$ 体言）状態での判定の回数と全判定回数

一方，使いすぎると文の読みにくさにつながると考えられる．理科教科書では対象読者を考慮 し「AのBの $\mathrm{C}\rfloor$ のような連体修飾の連続を控えているが，特許文書では一文で多くのことを 表すために連体修飾句を多用したと考えられる。この仮説を検証するため，新聞記事・理科教科書・特許文書を正しく解析するときに，受け文節が体言句 10 かつ受け文節候補の中に体言句 が 2 つ以上存在するという状況（係り $\rightarrow$ 体言 vs 体言）の回数をカウントした. その結果を表 6 に示す.この結果から，特許文書では複数の体言句の中から正しい受け文節を選択しなけれ ばならない場合が多く, その結果誤りも増えたと考えられる。

## 4.4.3 クラスタ 13 (理科教科書で大きくエラーが減少)

## クラスタ 13 について，その例を以下に示す。

新聞記事-13：

立証負担が/軽く、/証拠も/そろえやすい/係：ことから/東京地検は/

「製造の/企て」に/正受：絞り达んだと/誤受：聞く。

理科教科書- 13 :

ドルトンは，/19世紀の/係：初めごろ,/物質は/それ以上/分割する/ことの/できない/

小さな/粒子で/誤受：できていると/正受：考えた。

クラスタ 13 に属する誤りは正しい受け文節と誤った受け文節の一方が引用の助詞を含む「〜 と」という形の文節で，他方がそれに後続する用言である場合が多かった．評価デー夕におけ るこのパターンの出現数を，正しい受け文節が (a)引用の「と」を含む文節であるか， (b) 用言文節かに分類しつつ集計した。その結果を表 7 に示す。新聞記事では正しい受け文節が引用の 「と」を含む文節である回数が用言文節である回数の 2 倍弱であるが, 理科教科書では 8 割以上の場合に正しい受け文節が用言文節となっている。これは, 理科教科書には用語の定義を行 う「Xを/Xは $+\mathrm{Y}$ と+いう」などの形の文が多く含まれるためであり，「Xを/Xは」の受け 文節が用言文節に大きく偏っていることを追加訓練で学習した結果, 図 13 のように係り受け誤 りが大きく減少したと考えられる。また特許文書においてはそもそもこの文型の出現数が少な

かったことが, 図 14 のクラスタ 13 の適応先ドメイン比が小さい理由だということがわかる.

## 4.4.4 クラスタ 24 (理科教科書, 特許文書ともにエラーが減少)

新聞記事-24：

ところが/阪神大震災では/一番/重要な/情報収集が/係：遅れ、/自衛隊の/初動問題に/

誤受：代表されるように/首相官邸だけでなく/政府全体の/対応が/後手に/正受：回った。

理科教科書-24：

炭酸水素ナトリウムを/加熱すると, / 3 種類の/物質に/係：分かれ, /

酸化銀を/誤受：加熱すると, $/ 2$ 種類の/物質に/正受：分かれた。

特許文書-24：

次いで、/圧力を/常圧から/13.3 k P aに/係：し、/加熱槽温度を/ $190{ }^{\circ} \mathrm{C}$ まで/ 1 時間で/

正受：上昇させながら、/発生する/フェノールを/反応容器外へ/誤受：抜き出した。

クラスタ 24 に属する誤りは係り文節・正しい受け文節・誤った受け文節のすべてが節の末尾 の用言文節であるというパターンが多かった．3つの節が並んでいるとき，係り受け誤りの構造には図 15 の (a), (b) の 2 種類が存在する。(a)の構造は本来は単純に並列された構造を出力 すべきだが，階層的な構造を出力したことを表し，(b)の構造は先頭の節が後ろの 2 の節の両方と意味的に関係を持つため階層的な構造を出力すべきだが，単純に並列された構造を出力し

表 7 評価デー夕における「 $\cdots /$ 係り文節 $/ \cdots / \cdots$ と/用言」という文型を含む文の数（出現数）と正しい受 け文節

(a):並列構造認識失敗

(b):階層構造認識失敗

図 153 つの節が並んでいるときの係り受け解析の誤り方
表 8 クラスタ 24 に属する係り受け誤りにおける誤り方の分布

たことを表す 11.

(a), (b)のような誤りを回避するには, 本来であれば節同士の関係性を認識する必要がある.節同士の関係を認識することは意味的な判断を要する比較的難しいタスクだと考えられるが，今回使用した理科教科書・特許文書のどちらも係り受け誤りが減少している。その理由はドメ インごとの構文の出現分布の偏りにあると推測できる。そこで実際にクラスタ 24 に属する係り 受け誤りについて誤り方で分類し，その出現数を調べた。その結果を表 8 に示す。ただし誤り 方が「並列構造認識失敗」とは図 15 における (a)のタイプの誤り方を表し,「階層構造認識失敗」は (b)のタイプの誤り方を表す. 理科教科書・特許文書の共通点として，一方のパターンに 偏っていた係り受け誤りが追加訓練を行うことで改善されているということが挙げられる。こ のことから，追加訓練の主な効果の一つは，このような誤り方の偏りを減らすことであると示唆される。ところで，理科教科書と特許文書では偏り方が反対になっている，追加訓練前にお いて理科教科書は誤り方が「階層構造認識失敗」である誤り（例：理科教科書-24）が多い。そ の理由は，理科教科書は複数の関連したことを述べるために階層的な並列構造を取ることが多 いが，階層的と認識できなかったことが多かったからだと考えられる。それとは対照的に追加訓練前において特許文書は誤り方が「並列構造認識失敗」である誤り（例：特許文書-24）が多 い.その理由は, 特許文書は物質の生成手順など手続きを述べた文が多く, 単純に並列接続し た構文が多いが，並列的と認識できなかったことが多かったからだと考えられる。

## 4.4.5共通点を見出すことができなかったクラスタ

クラスタ 2 に属する誤りの例を以下に示す.

新聞記事-2

F R Bは/「穏やかな/調整」と/しているが、/金融政策の/基調は、/一年以上/続いた/

予防的引き締めから/係：緩和へ/誤受：大きく/舵が/正受：切り替えられたといえよう。

理科教科書- 2

これまでに，/分解や/化合，/酸化や/還元などの/化学変化について/学習したが，/

化学変化の/なかには/加熱したり，/電流を/流したりしなくても，/

係：図1のように,/溶液を/誤受：混ぜ合わせる/ことで，/反応が/正受：起こる/ものも/ある。

特許文書-2

また、/40 1 lビーカーに/酸化チタン/( $\left.\mathrm{TiO}_{2}\right)$ と/酸化セリウム/ $\left(\mathrm{CeO}_{2}\right)$ と/

ジクロロメタン/20 m l/入れて、/

酸化チタンが/ポリブタジエンに対して/20 w t\%に/なると共に/

酸化セリウムを/係：ポリブタジエンに対して/誤受： $50 \mathrm{wt} \%$ 正受：なるように/調製した。

クラスタ 2 は理科教科書・特許文書の両方について適応先ドメイン比が減少しないという特徴 を持っているが，このクラスタに属する誤りの共通点を見出すことはできなかった。 そもそも 追加訓練が効果をもたらさないクラスタには少なくとも 2 種類あると考えられる.ひとつはク ラスタ 10 の「Aの B C C」の構造のようなタイプで, 意味を考えないとどうしても正しくで きない例が一定数残り, 追加訓練の効果が小さい場合である。もう一つはこのクラスタ 2 のよ うに，おそらく，そもそも類似の例が少なく，様々な誤りが埋め达み上は近くなってしまって いる場合である．前者は人間が見れば共通点を見出すことができるが，後者は人間が見ても共通点を見出すことができない，後者のように，低頻度かつ多種の誤りが混じっている場合には，本研究でのクラスタリングに基づく分析手法を通じて誤りの特徴を捉えることは難しいと考え られる。

## 5 おわりに

ドメイン適応問題は現実の様々な場面に出現するもので, 機械学習に基づく言語処理技術の 実用において重要な課題である。ドメイン適応問題の解決法の一つに追加訓練があるが, 「な ぜ」うまくいくのか, その理由を調べた研究は少なく明確には解明されていなかった. 本研究 では日本語係り受け解析に焦点を当て, 追加訓練の影響の俯瞰的な調査を通して, ドメイン適応問題に対する知見を得るための分析を行った。本研究における分析手法の特徴は二つあり，一 つは解析器の内部状態を用いることで「解析器の視点から」分析を行えること, もう一つはド メインの特徴を探す際に，クラスタリングを用いることで，詳細に調べるべき誤りの集合を発見しやすくなり，効率的に分析を行えることである.

本研究では，新聞記事を適応元ドメイン，理科教科書・特許文書を適応先ドメインとする実験を行った。まず，得られたクラスタに対し正規化距離や適応先ドメイン比などの指標を用い た定量的分析を行うことで，クラスタが係り受け誤りの構造をある程度反映していること， ド

メインごとに誤りが固有の分布を持つこと, およびクラスタによって追加訓練の効果に差があ ることなどがわかった。これらによって，クラスタに基づく分析が，適応先ドメインの異なり による精度低下の理由の違いや, 分野適応の効果を誤りの構造に即して理解するための手段と して妥当であることの前提が確認できた。

次に，いくつかのクラスタについてそのクラスタを構成する誤りを観察したところ，クラス 夕 10, 13 などのように誤りの共通点を見出すことができたクラスタがあった。そのようなクラ スタについて仮説を立て検証を行うことで，追加訓練による適応先ドメイン比の変化などの特徵を説明することができた。さらに，本来は意味を考慮しなければ正しく解析できない文型で も，構造の出現頻度に偏りがあれば学習されること，および出現頻度に偏りが生まれる原因に は，ドメインに頻出する定型句（クラスタ 13 :「〜を〜という」）や，ドメインごとの文体の異 なり（クラスタ 24 ：並列的 vs 階層的）などがあることがわかった.

これらの分析結果から， ドメインが異なることによって引き起こされる精度低下は，解析器 の視点では似た形に見える文型でも，ドメインによって正解となる構造の出現頻度の偏り方が 異なることが大きな原因であることが示唆される。適応元ドメインデータをいくら増やしても，同じドメインである限り正解の構造の頻度の偏り方は変化しないため，上で述べたような適応先ドメインに特徴的な構文は同じように誤り続ける。したがって適応元ドメインのデータのみ で訓練された解析器が，適応先ドメインに特徴的な構文を全て正しく解析することは難しいこ とがわかる，逆に言えば，適応先ドメインデータを用いた追加訓練の主要な効果は，このドメ イン固有の頻度の偏り方を学習することにあると考えられる。その意味では適応先ドメインを 何らかの手法で近似して訓練を行う手法は, 適応先ドメイン固有の構文の頻度を相対的に増や している点で正しいアプローチと言える。しかし, 適応元ドメインと適応先ドメインで正しい 構造の分布が大きく異なる文型に対しては，訓練例の重みを変えるなどの手法によるドメイン 適応技術には限界があるものと考えられる。今回用いた手法は，ドメイン適応技術の限界とな りうる，表層的には類似しているがドメインごとに固有な構造の分布を持つ文型を見つける手 がかりを得るためにも有用だと考えられる。さらに，今後の展望として機械で自動的にクラス 夕の特徴を発見できれば，クラスタを用いたアクティブラーニングへの応用が考えられる.

一方で, 本研究における分析手法を用いても, 類似例が少なく解析器自体がうまく埋め込む ことができない誤りが集まったと思しきクラスタなど，共通点を見出すことができず分析を行 えなかったクラスタも存在していた。頻度が小さい多種の誤りから共通点を見つけ出すことは 本研究の今後の課題である。その他, 誤りではなく正しかった例も用いた調査・分析や, 得ら れた知見を基にしたドメイン適応技術の開発が今後の課題として挙げられる。

## 謝 辞

本研究では, JSPS 科研費 $16 \mathrm{H} 01819$ で開発された教科書アノテーションデータの提供を受け た.ここに記して謝意を表する。また本研究は JST，さきがけ，JPMJPR175Aの支援を受けた ものであり, 特許文書に関する分析は名古屋大学と富士通研究所の共同研究の成果である.

## 参考文献

Cybenko, G. (1989). "Approximation by Superpositions of a Sigmoidal Function." Mathematics of Control, Signals and Systems, 2 (4), pp. 303-314.

Daumé III, H. (2007). "Frustratingly Easy Domain Adaptation." In Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics, pp. 256-263. Association for Computational Linguistics.

Daumé III, H. and Marcu, D. (2006). "Domain Adaptation for Statistical Classifiers." Journal of Artificial Intelligence Research, 26, pp. 101-126.

Devlin, J., Chang, M.-W., Lee, K., and Toutanova, K. (2019). "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. Association for Computational Linguistics.

原拓也，松崎拓也，佐藤理史 (2018). 係り受け誤り埋め込み表現のクラスタリングによるドメ イン適応の効果の分析. 情報処理学会研究報告 2018-NL-238, pp. 1-8.

金山博 (2004). 統計的日本語構文解析器の部分的修正. 情報処理学会研究報告 2003-NL-160, pp. 1-8.

河原大輔，金山博，颯々野学 (2015). Project Next NLP 構文解析タスク. 言語処理学会第 21 回年次大会ワークショップ「自然言語処理におけるエラー分析」予稿集.

Koh, P. W. and Liang, P. (2017). "Understanding Black-box Predictions via Influence Functions."

In Precup, D. and Teh, Y. W. (Eds.), Proceedings of the 34th International Conference on Machine Learning, pp. 1885-1894, International Convention Centre, Sydney, Australia. PMLR.

工藤拓，松本裕治 (2002). チャンキングの段階適用による日本語係り受け解析. 情報処理学会論文誌, 43 (6), pp. 1834-1842.

黑橋禎夫，長尾眞 (1997). 京都大学テキストコーパス・プロジェクト.人工知能学会全国大会論文集, 11, pp. 58-61.

Li, Z., Zhang, M., Zhang, Y., Liu, Z., Chen, W., Wu, H., and Wang, H. (2016). "Active Learning for Dependency Parsing with Partial Annotation." In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 344-354.

Marcheggiani, D. and Artieres, T. (2014). "An Experimental Comparison of Active Learning Strategies for Partially Labeled Sequences." In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), pp. 898-906.

松野智紀, 能地宏, 松本裕治 (2018). ニューラルグラフ型係り受け解析器のための文節べクト ル表現. 言語処理学会第 24 回年次大会発表論文集, pp. 600-603.

McClosky, D., Charniak, E., and Johnson, M. (2010). "Automatic Domain Adaptation for Parsing." In Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics, pp. 28-36. Association for Computational Linguistics.

Sato, M., Manabe, H., Noji, H., and Matsumoto, Y. (2017). "Adversarial Training for CrossDomain Universal Dependency Parsing." In Proceedings of the CoNLL 2017 Shared Task: Multilingual Parsing from Raw Text to Universal Dependencies, pp. 71-79, Vancouver, Canada. Association for Computational Linguistics.

Tenney, I., Das, D., and Pavlick, E. (2019). "BERT Rediscovers the Classical NLP Pipeline." In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, pp. 4593-4601, Florence, Italy. Association for Computational Linguistics.

Tokui, S., Oono, K., Hido, S., and Clayton, J. (2015). "Chainer: A Next-Generation Open Source Framework for Deep Learning." In Proceedings of Workshop on Machine Learning Systems (LearningSys) in the 29th Annual Conference on Neural Information Processing Systems (NIPS), Vol. 5, pp. 1-6.

内元清貴, 関根聡, 井佐原均 (1999). 最大エントロピー法に基づくモデルを用いた日本語係り 受け解析. 情報処理学会論文誌, 40 (9), pp. 3397-3407.

Wang, R., Finch, A., Utiyama, M., and Sumita, E. (2017). "Sentence Embedding for Neural Machine Translation Domain Adaptation." In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers), pp. 560-566, Vancouver, Canada. Association for Computational Linguistics.

## 略歴

原拓也：2018 年名古屋大学工学部電気電子 - 情報工学科卒業. 同年, 名古屋大学工学研究科博士前期課程に進学.

松崎 拓也：2002 年東京大学工学部システム創成学科卒業. 2007 年同大大学院
情報理工学系研究科にて博士号（情報理工学）取得. 同大学助教, 国立情報学研究所特任准教授, 名古屋大学准教授を経て, 2019 年より東京理科大学理学部准教授. 言語処理学会, 人工知能学会, 情報処理学会各会員.

横野光：2003 年岡山大学工学部情報工学科卒業. 2008 年同大大学院自然科学研究科産業創成工学専攻単位取得退学. 東京工業大学精密工学研究所研究員, 国立情報学研究所特任研究員, 同研究所特任助教を経て，2016 年より株式会社富士通研究所研究員. 博士 (工学). 意味解析の研究に従事. 情報処理学会, 人工知能学会, 言語処理学会各会員.

佐藤 理史 : 1988 年京都大学大学院工学研究科博士後期課程電気工学第二専攻研究指導認定退学. 京都大学工学部助手, 北陸先端科学技術大学院大学助教授, 京都大学大学院情報学研究科助教授を経て, 2005 年より名古屋大学大学院工学研究科教授. 工学博士. 言語処理学会, 人工知能学会, 情報処理学会,日本認知科学会, ACM 各会員.

(2019 年 9 月 1 日 受付)

(2019 年 11 月 29 日 再受付)

(2019 年 12 月 19 日採録)


# HaoriBricks3:
日本語文を合成するためのドメイン特化言語

佐藤 理史 $^{\dagger}$

本論文では，日本語文を合成するためのドメイン特化言語 HaoriBricks3 (HB3) につ いて述べる。HB3では, ブリックコードと呼ぶ Rubyコードで, どのような日本語文を合成するかを記述する。このブリックコードを評価すると，ブリック構造と呼 ばれる Rubyオブジェクトが生成され，さらに，これに表層文字列化メソッド to_ss を適用すると，表層文字列が生成される。本論文では, HB3 の設計思想, 実装のた めの工夫について説明し, HB3 で何ができるのかを示す.

キーワード：文合成，ドメイン特化言語，日本語文法，テキスト生成
## HaoriBricks3: A Domain-Specific Language for Japanese Sentence Composition

\author{
SAtoshi SAtO ${ }^{\dagger}$
}

This paper describes a domain-specific language, HaoriBricks3 (HB3), for writing programs that compose Japanese sentences. In HB3, we write a Ruby code called brick code, which instructs how to compose a sentence. The evaluation of a brick code produces the Ruby object called brick structure, from which the surface sentence string is generated by the method to_ss. This paper presents the design philosophy and implementational innovations of HB3, as well as demonstrates the applications of HB3.

Key Words: Sentence Composition, Domain-specific Language, Japanese Grammar, Text Generation

## 1 はじめに

プログラムによる小説自動制作の実現を目指す過程 (佐藤 2016) で，私が直面した問題の一つ は，次のような問題である。

日本語の文を合成するために，どのようなソフトウェアシステムを用意すればよいか.小説はテキストであり，テキストは文の並びである。ゆえに，文を作れなければ，小説は作

れない，小説には，ありとあらゆる文が出現しうる。任意の日本語文を作ることができるよう なソフトウェアシステムを実現できるだろうか. もし，それが可能ならば，どのようなシステ ムとして具現化されうるだろうか.

本論文では，そのような問題意識の下で開発してきた羽織シリーズ（～$\rightarrow$ 付録 B）の最新版であ る HaoriBricks3 (HB3)の概要を示す。私は, HB3 を旦本語の文を合成するためのドメイン特化言語 (domain-specific langauge)」と位置づける，HB3では，ブリックコード (brick code, BC) と呼ぶ記述形式で，どのような日本語文を合成するかを記述する。そして，記述したブリック コードを実行（評価）すると，表層文字列が得られる。ブリックコードは，あくまでも文を合成するためのコードであり，文の意味表現ではない.

図 1 に, ブリックコードから表層文字列を生成する過程の概略を示す. ブリックコードは Ruby コードそのものであり，これをRubyコードとして評価すると，ブリック構造 (brick structure， BS）と呼ぶ内部構造（Ruby オブジェクト）が生成される。このブリック構造に，表層文字列を 生成するためのメソッド to_ss を適用すると，羽織構造 (Haori structure, HS), および，境界・ ユニット列 (boundary-unit sequence, BUS) という 2 つのデータ構造を経由して, 最終的に表層文字列が生成される。

本論文では，HB3 の設計思想，および，実現・実装のための工夫について説明し，HB3で何 ができるのかを示す.

## 2 設計思想

HB3 で実現したかったことを一言で言うならば，次のようになる.

日本語文を合成するコードを，できるだけ簡潔に書けるようにしたい

研究の最終ゴールは，プログラムによる小説の自動制作である，小説は，短編小説といえど も，長い，そのため，短編小説を合成するプログラムでは，文を合成するコードをたくさん書 かなければならない，それゆえ，コードが簡潔に書け，かつ，共通部分をサブルーチン化でき ることが非常に重要になる.

HB3 をドメイン特化言語にせざるを得なかったのは，次のような現状認識による．

あらゆる文の意味を表現しうるような人工的な内部表現（意味表現）は，現時点では設計 できない.

羽織シリーズの最初の版 (佐藤 2015; 緒方, 佐藤, 松崎 2015) を作る際には, 英語の surface realizer, 特に RealPro (CoGenTex Inc. 2000)を参考にした. 伝統的なテキスト生成システムは,伝えるべき内容を表す意味表現を入力として, いくつかのモジュールをパイプラインにつなげ,表層文字列を出力するという構成をとる (Reiter and Dale 2000). このパイプラインの最後に配置される surface realizer は，文の意味表現を表層文字列に変換するモジュールとして位置づけ

図 1 ブリックコードからの表層文字列生成

られる。しかし，あらゆる文が想定されうる小説の自動制作を最終ゴールとする以上，実現す ベきソフトウェアの機能を「意味表現を表層文字列に変換する」と規定するのでは，ゴールに は到達しえないと考えた。

その代わりに採用したのは，「部品（語）から文を合成する」アプローチである。このアプ ローチ下で日本語文の表層文字列を合成するために必要なことは，次の 2 点に集約される.

(1) 語をどのような順番に並べるかを決定する.

（2）語が活用する場合は，その活用形を適切に決定する.

よく, 日本語は語の順序が比較的自由であると言われる. しかし, この説明は正確ではない.順序の交換が可能なのは，語ではなく文節である，そして，文節の順序を交換するとニュアン スが変わる，たとえば，「そのワインを私は飲まなかった」と綴りたいとき，ソフトウェアが勝手に「私はそのワインを飲まなかった」のように文節を入れ替えてしまうのでは困る。あえて 「そのワインを」を文頭に置くことによって得られる効果が台無しになる。そのため, 語 (文節) の並べ方はコードで指定することとする。

文中で活用形がどのような情報を担っているかを考えると, 次の 2 種類があることに気づく.

(1) 次の語に接続するために要請されている.

たとえば，子音動詞型活用（五段活用）の動詞の直後に「ない」が接続する場合は，そ の動詞は「未然形」を取らなければならない。この「未然形」は，「ない」に接続するた めに要請されているだけで, それ以上の意味はない.

(2) 特定の文法的機能を担う.

たとえば，命令形は「命令」という意図（モダリティ）を表す.

これらのうち, 後者は, 書き手の意志の表明であるため, コードで指定するのが妥当である.一方，前者は，後続語の文法的制約によって必然的に要請されるので，自動的に決定できるは ずである。そのため，前者のみ自動化することとする.

このような考え方に基づき，日本語文を合成するソフトウェアシステムを，次のような機能 を持つドメイン特化言語として設計・実装する.

・コードで記述できるようにするもの

（1）文を合成する部品

(2) 部品の順序

（3）文法的機能を担う活用形
- 自動的に決定するもの

(1) 直後の語で定まる活用形

## 3 羽織文法と羽織構造

図 1 に示したブリックコードから表層文字列を生成する過程を，次のように，2 段階に大き く分ける.

(1) ブリックコードから羽織構造まで

(2)羽織構造から表層文字列まで

順番は前後するが，本章では，後者にかかわる 6 つの新機軸を説明する。前者にかかわる 5 つの新機軸は，次章で説明する。

## 3.1 羽織文法

文生成に必要な文法事項を整理・再構成し, 羽織文法 (Haori Grammar) を定義した. 羽織文法は，HB3の内部にプログラムとして（つまり，実行可能な形で）定義されている.

日本語の文法体系は, おおよそ, 次の要素から構成されるのが標準的であろう.

(1) 語の分類体系 (いわゆる品詞体系)

(2) 活用語の活用体系

(3) 構文構造の定義（文の背後にどんな構造を仮定するか）

（4）文法的機能（テンス・アスペクト・モダリティなど）とその表現形式羽織文法は，次のような特徴を持った文法である.

(1) 語の分類では, 機能語と内容語の区別, 活用する語と活用しない語の区別を重要視する.

（2）詳細な活用体系（活用型と活用形）を提供する。活用型は, 文法の中核的要素のひとつ である。これに加えて，接続型 $(\rightarrow § 3.4)$ を定義する。

（3）表層文の背後に，羽織構造 $(\rightarrow \oint 3.2)$ を仮定する.

（4）文法的機能のほとんどを，機能語の働きによるものと考える機能語中心主義を採用する.

(5) 句読点や括弧などの記号を語とは明確に区別し，境界記号 $(\rightarrow \oint 3.3)$ とみなす.

4 番目の特徴は, 少し補足が必要であろう，たとえば，日本語には，「継続」を表す「テいる」 や「つつある」という形式がある。通常の文法では，アスぺクト「継続」という抽象的な文法機能を考え，その機能を担う表現形式を整理する。これに対して，羽織文法では，そのような 抽象的な文法機能を前提せずに，機能語「テいる」，「つつある」の振る舞いだけ規定する.

羽織文法では，機能語が文法の中核的要素を占める。そのため, 羽織文法は, 取り扱うすべ ての機能語を列挙し，その振る舞いを規定する。 さらに, 取り扱う従属節の節末形式もすべて 列挙する $(\rightarrow \S 5.1)$.

このような特徴を持った羽織文法の基本思想は, 次のように集約される.

日本語の文は，機能語によって組み立てられており，文法（文の成り立ちとその規則性）を 明らかにすることは，機能語を列挙し，その振る舞いを記述することである.

なお，羽織文法に関する補足を付録 A に示した。

## 3.2 羽織構造

羽織文法では，表層文の背後に羽織構造を仮定する。羽織構造は木構造の形式をとり，それ ぞれのノードは属性値の集合を持つ。終端ノードは語を表し，非終端ノードは構造を表す。羽織構造の終端ノードを左から右へと並べれば，表層化した際の語の並びとなる。すなわち，羽織構造は語順の情報を完全に有している。

非終端ノードのタイプは，次の 4 種類のいずれかである.

(1) binary_r（2 分岐右タイプ） - 2 つの子ノードを持つ. 右の子がその構造を成立させる 要素.

（2） binary_l（2 分岐左タイプ） - 2 つの子ノードを持つ. 左の子がその構造を成立させる 要素.

(3) predicate (述語タイプ) - 1 つ以上子ノードを持つ. 最後の要素が述語要素.

(4) sequence (列タイプ）- 2 つ以上の子ノードを持つ. それぞれの子は同等の扱い.

文中に現れる主要な構文構造は, 次の 4 種類である。括弧内は構造のタイプを表す.

(1) 述語構造 (predicate)

(2) 修飾構造 (binary_l)

(3) (並) 列構造 (sequence)

(4) 提題構造 (binary_l)

この他に，機能語を付加する次のような構造がある。これらはすべて, binary rである.

(1) 助詞構造 (binary_r)

(2) 判定詞構造 (binary_r)

(3) 助動詞構造 (binary_r)

(4) 述語接尾辞構造 (binary_r) 一 複雑な述語を作る接尾辞を付加する構造

羽織構造は依存構造ではない. どちらかというと句構造に近いが，句構造でもない. 図 1 に 示した羽織構造のトップレベルは「述語接尾辞構造」である。これは, 構造の最上位（つまり，文の末尾）に「丁寧接尾辞ます」が付加されていることを表現しているだけで，文全体が「述語接尾辞構造」であることを意味しているわけではない.

## 3.3 境界記号の導入

句読点や括弧などの記号は, 実際の言語処理ではやっかいな存在である ${ }^{1}$. 形態素解析では,句読点や括弧などは形態素と同等に扱われるのが普通であるが, それらは明らかに「形態素」で

はない，句点は文の区切り記号であるし，読点は文中の比較的大きな切れを表す区切り記号で ある。そしてそれらは，文字列として書く場合にのみ，目に見える形で実体化される。

英語では，語と語の間にホワイトスペースを置く。これと同じように，日本語の語と語の間 にも境界という実体が存在すると考える。ただし，多くの境界は空文字列（長さ０の文字列） として実体化されるため, 見えない. これに対して，句読点や括弧は目に見える境界，つまり，文字列として実体化される境界記号と考える。

境界記号は文字列化する際に実体化されるので, 羽織構造の構造部分には反映せず，ノード の属性として保持する。羽織構造のすべてのノードは, 左境界と右境界という 2 の属性を持 ち，それらの属性に境界記号を格納する。たとえば，図 1 の羽織構造では，最上位の「述語接尾辞構造」ノードの右境界に句点が格納されている。 そのため, 表層化の過程で「述語接尾辞構造」の右，すなわち「丁寧接尾辞ます」の直後の境界において実体化される.

後に述べるように，境界記号には，透過性が定義される。

## 3.4 接続型の導入

接続型とは，機能語が，直前の語の活用型・活用形をどのように制約するかを記述するため に導入した制約類型である。この接続型を用いて, 直前の語の活用形の自動決定を実現する. たとえば,「丁寧接尾辞ます」の接続型は「接尾辞ます接続」である。この接続型は，直前の 語の活用型・活用形を次のように制約する.

（1） 活用型が「子音動詞型ラ行イ」であれば，「基本連用形 2$\rfloor$ と「基本連用形」を取りうる.

（2）活用型がそれ以外の「動詞型」であれば，「基本連用形」を取る.

（3）それ以外の活用型，および，活用しない語には接続しない.

この定義に従い，「ます」の直前の語の活用形は，次のように設定される。

b. 書く子音動詞型力行 + ます $\rightarrow$ 書き 基本連用形ます

c. 長いイ形容詞型アウオ段 + ます $\rightarrow$ （接続できない）

なお，複数の活用形を取りうる場合で，デフォールト以外の活用形を選択したい場合は，活用形を明示的に記述する。「いらっしゃる」の活用形を明示的に「基本連用形」と指定すれば，「いらっしゃり 基本連用形ます」という形式も生成できる.

接続型を定義する必要がある語は, 述語に付加される機能語, すなわち, 助動詞, 述語接尾辞, 接続助詞, 終助詞などであるが, 名詞の一部（節末形式に含まれる機能名詞）に対しても 定義する必要がある．たとえば，「以来」は，直前の動詞にテ形を要求する.

接続型は, 直前の語に適切な活用型・活用形を要求するが, 直前の語との間に境界記号が存在する場合, その要求を透過するか否かは, 境界記号に定義される透過性の定義に従う。ここ

で，「透過する」とはその要求を順送りして伝えることを意味し，「透過しない」とはその要求 をそこで棄却することを意味する，Basic パッケージ $(\rightarrow \$ 4.6)$ では，句読点は，接続要求を透過 しないと定義している。括弧の類は，透過するものとしないものの両方を定義している.

$[2]$ a. 開括弧 + 書く＋閉括弧透過しない + ます $\rightarrow$ （書く）ます

b. 透過開括弧 + 書く＋透過閉括弧透過する + ます $\rightarrow$ （書き）ます

この透過性を，いわゆる取立助詞に対しても定義することによって，次のような取立表現に おける活用形の自動決定を実現する。

[3] a. 書く＋テいる $\rightarrow$ 書いてテ形いる

b. 書く + も透過する＋テいる $\rightarrow$ 書いてテ形もいる

ここで「テいる」は，前方にテ形を要求する助動詞である。取立助詞は，この要求を透過する ように定義しているので，取立助詞がある場合は，直前の語ではなく，その前の語を制約する ことになる.

接続型による活用形の自動決定は, 羽織構造の終端ノードと境界記号を線形化した境界・ユ ニット列において実行される $(\rightarrow \oint 3.7)$.

## 3.5 テンス位置の自動決定

羽織文法は，機能語中心主義を標榜しているが，テンスだけは特別扱いする。羽織文法の活用体系は，益岡・田窪文法 (益岡，田窪 1992)，および，それに準拠する Juman² の活用体系を 基本としているため, 最終的にテンスは活用形の「夕形」によって表層化される。しかしなが ら，羽織構造では，テンスをノードのテンス属性として保持する.

図 1 の羽織構造では, テンス属性はノード「述語構造」に付与されている。この羽織構造を 境界・ユニット列に変換すると，テンス属性はその構造下の最後の語「食べる」に継承される $(\rightarrow \oint 3.7)$. しかし, 後続語の「丁寧接尾辞ます」が「食べる」に基本連用形を要求するため, テン スを実体化することができない。このような場合，テンス属性は後続語に順送りされる。この 例では，「丁寧接尾辞ます」がテンスを取りうる（夕形が可能な）ため，ここで実体化され「ま した夕形」が生成される。この機構をテンス順送り機構と呼ぶ。テンスは，以下に示すように，複数の語に渡って順送りされる場合もある。

[4] 食べるテンス=夕＋テいる＋ない $\rightarrow$ 食べてテ形い 基本連用形なかった夕形

この機構のおかげで，テンスを付加した述語に対しても，後付けでの機能語の付与が可能と なる.

このテンス順送りにも，透過性が定義できる。接続型, テンス順送り機構, 透過性の組み合 わせにより，次のような複雑な場合にも，正しい位置にテンスが設定される。
^{2}$ http://nlp.ist.i.kyoto-u.ac.jp/index.php?JUMAN
}

[5] 食べる テンス=夕＋テいる＋も透過する＋取立助動詞する＋ない

$\rightarrow$ 食べてテ形い基本連用形もし基本連用形なかった夕形

なお，「取立助動詞する」は，述語を取り立てるための専用の助動詞であり，前方の述語に「基本連用形」を要求する。

## 3.6 活用型の自動推定

羽織文法では，語を機能語と内容語，活用する語と活用しない語に区分すると説明した。羽織文法では, 品詞は重要ではない $(\rightarrow \$ 5.2)$ が, わかりやすさのため品詞別で示すと, 表 1 のよ うになる。ここでは, 一般の接辞（接頭辞・接尾辞）は除外した.

HB3 （羽織文法）は，機能語をすべて列挙し，その振る舞いを記述するという立場に立つの で, 機能語の辞書は文法に含まれる。一方, 内容語の辞書は, 原則として不要という立場に立つ.

内容語を表層文字列化するために必要な情報は，次の 3 つである.

(1) 表記

（2）活用型（活用する語のみ）

(3) 活用形（(活用する語のみ）

HB3 は, 初代の Haori (佐藤 2015; 緒方 他 2015) と異なり, 表記を制御しない. つまり, ど のように表記するかはコード内で記述する。このため, 活用しない内容語に関しては，表層文字列化に必要な情報はコード内に存在する。

活用する内容語では，表記に加えて活用型と活用形が必要となる。活用形の扱いについては すでに述べたので，残された問題は活用型であるが，HB3では，活用する内容語の活用型を自動推定する.

活用型推定規則を表 2 に示す。これらの規則は，活用型を正しく推定できない場合もあるが，規則を明示的に定めているので，どのような語に対して誤るかは明確である。そこで，そのよ うな語（表記）に対してのみ，あらかじめ活用型を定義しておく，たとえば，「さえぎる」は末尾が「イ段+る」であるが，活用型は子音動詞型ラ行（五段活用）であるため，あらかじめ活用型を定義しておく必要がある（あるいは，コード中で明示的に指定する）。なお，「遮る」と漢字表記した場合は, 正しく子音動詞型ラ行と推定されるので, この表記に対しては活用型を定義しておく必要はない.

表 1 語の分類

表 3 に，形態素解析システム Juman (juman-7.01)の基本語辞書に登録されている活用する内容語の表記数と, これらのうち, 活用型を定義しておかなけれげならない表記数（HB3 で活用型を定義した表記数）を示す。この表に示すように，動詞の場合は $3 \%$ の表記に対して，活用型 を明示的に定義すればよい.

動詞と比べて，イ形容詞で定義が必要な表記の割合が多い $(8 \%)$ のは, 末尾が「ない」のイ形容詞の活用型を細分化する必要があるからである。羽織文法では, 次の 4 種類の活用型が存在 する.

(1) イ形容詞型アウオ段 一丁寧体の形式は「〜です」. 例：「あじけない」

(2) イ形容詞型アウオ段ない—丁寧体の形式は「ありません」. 例：「ない」

（3）イ形容詞型アウオ段ない複合一丁寧体の形式は「〜ありません」. 例：「思わしくない」

（4）イ形容詞型接尾辞ない一丁寧体の形式は「〜ません」. 例：「いたたまれない」

後者の 2 つの活用型に属するイ形容詞は，内部構造（語構成）を持つ語である。前者は末尾

表 2 活用型推定規則の一覧

表 3 活用型の定義が必要な表記数

に「イ形容詞ない」を持ち，後者は「接尾辞ない」を持つ，形態素解析辞書では，諸般の事情 から，これらを一語のイ形容詞として登録するのが一般的であるが，生成の立場に立てば，「思 わしくィ形容詞連用形 + イ形容詞ない」，「いたたまれ 動詞未然形 + 接尾辞ない」と分解して扱えば,問題は生じない。ただし，「違いないィ形容詞型アウオ段ない複合」のように，一語化していると思われ る語も存在するため, いずれにせよ, 上記のように活用型の細分化は必要である.

活用型の定義が必要な割合がナ形容詞で非常に多い $(41 \%)$ のは, 連体修飾で「ナ形」の使用 が優勢な「判定詞型ナ形容詞」(Jumanではナ形容詞）と「ノ形」の使用が優勢な「判定詞型ナ 形容詞ノ」(Juman ではナノ形容詞）の数が均衡しているためである。ただし，「ナ形」と「ノ 形」の使い分けには微妙な場合（「当選が確実な情勢」「当選が確実の情勢」）があり，活用型の みで連体修飾の形式を一意に決定できるわけではない。つまり，どちらの形式を使うか明示的 に指定しなければならない場合も多く，たとえ活用型が正しく設定できなくてもそれほど大き な問題は生じない ${ }^{3}$ 。なお，羽織文法では，Juman とは異なり，すべてのナ形容詞に「ノ形」の 存在を認めている，2つの活用型の唯一の違いは，連体修飾の場合のデフォールトの活用形が 「ナ形」か「ノ形」かの違いである.

最後に，活用型と品詞の関係について補足しておく，活用する内容語は動詞と形容詞（イ形容詞，ナ形容詞）であるが，羽織文法では，活用型が品詞の細分類となっている。動詞の活用型の名称はすべて「〜動詞型〜」，イ形容詞は「イ形容詞型〜」，ナ形容詞は「判定詞型ナ形容詞〜」である。つまり，動詞・形容詞の区別は艺長である（重要ではない）.

## 3.7 羽織構造の表層文字列化

ここで，羽織構造を表層文字列化する過程について補足しておく。この過程は，次のように 3 ステップからなる.

(1) 羽織構造を境界・ユニット構造に変換する。

この変換は，終端ノードと境界記号を左から順に集めればよい，ただし，非終端ノード に付与された属性情報を，適切な終端ノードに継承する必要がある。原則として，非終端ノードの属性情報は，一番右の子に継承する。これを再帰的に行えば，終端ノードに 到達する。属性情報のうち「左境界」と「右境界」は, 境界記号として実体化する。

（2）境界・ユニット構造において，活用する語の活用形を定める。

まず，右から左へ接続型を伝達し，活用する語の活用形を定める。次に，左から右へ順 に，表層文字列を生成する。このとき，テンスが実体化できなかった場合は，テンスを 順送りする。

（3）最後に，終端ノードと境界記号のそれぞれに対して生成された表層文字列を，一つの文字列に結合する。

## 3.8 この章のまとめ

羽織構造は，表層文字列化に必要なすべての情報を保持している。すなわち，

$\cdot$ 語の順序情報は, 羽織構造の木構造が保持している.

・ 語の表記, 活用型, 接続型は, 語を表す終端ノードが保持している.

・ テンス情報は,ノードが保持している.
- 境界記号の情報は, ノードが保持している.

それゆえ，羽織構造が与えられれば，表層文字列は一意に定まる.

## 4 ブリックコードとBasic パッケージ

前章で示したように，語から文を合成するためには，それなりの道具立てが必要である。言 い換えるならば，羽織構造をそのまま記述するのでは記述量が多い。ブリックコードは，それ を回避するために導入した記述形式（ラッパー）である.

## 4.1 基本的アイディア

ブリックコードの基本的アイディアは，ブロック玩具のアナロジーから来ている．レゴを代表とするブロック玩具では, 基本となるブロック（レゴでは, brick（ブリック）と呼ぶ）を多数組み合わせて, 建物, 乗物, 動物などの多様なモデルを作ることができる. これと同じよう に, 文の部品をブリックとして提供し, これらを組み合わせるだけで多様な文を作りだせるよ うにしようという発想である.

ブリックコードのもうひとつの思想的源泉は, プログラミング言語 Lisp にある．初期の Lisp (Lisp 1.5) の中核は, 限られた数の基本関数と，それらを組み合わせて新たな関数を作り出す方法である。基本関数を組み合わせて複雑な関数を新たに定義することにより，多種多様な関数 を提供することが可能となる。ブリックコードでは, このような拡張性を踏襲している.

## 4.2 基本ブリック

HaoriBrick3 (HB3)の基本ブリックは， 6 種類しかない. 前者が正式名, 後者が別名である. なお，以下の本文中では，ブリックの名称を〈ブリック名〉のような記法で記述する.

(1) $\langle$ lexal $\rangle,\langle$ lex $\rangle$ 一羽織構造の終端ノードを作る。内部に語の情報を保持する.

(2) 〈structure〉,〈構造〉一羽織構造の非終端ノードを作る.

(3) $\langle$ role $\rangle$
（4）〈parameter $\rangle,\langle$ 属性〉一羽織構造のノードに，属性值を付与する.

（5）〈boundary〉,〈境界〉一境界に記号を挿入する（羽織構造のノードに, 境界情報を付与 する).

（6）〈producer〉一作り手（書き手・話し手）を指定する ( $\rightarrow \S 5.3 .2$ ).

これらのうち $\langle$ role $〉$ は, 述語構造の要素を, 補足語要素 (格要素) と連用修飾要素を区別する ために導入したが, 本質的にはおそらく不要なので, 次の大改訂時に削除する可能性が高い.

基本ブリックの数が限定されていることは，非常に重要である。 ブリックコードを実行する とブリック構造が作成されるが，このブリック構造は，基本ブリックのみで構成される．それ ぞれの基本ブリックの機能ははっきりしているため, 羽織構造 $(\rightarrow \S 3.2)$ へ変換は容易である.唯一の変換らしき処理は, 〈structure〉ではその構造を成立させる要素を第 2 引数 4 として指定 するので，構造タイプが binary_r と predicateの場合に，〈structure〉の引数の順番と羽織構造の 子の順番が異なる点を調整する処理である.

先に示した，図 1 に含まれる 3 つのブリックコードの一番下のコードは, 基本ブリックだけ で記述されている。その記述は長くなるため, 文を合成するコードをこのような形で記述する のはまれで，主に，後に述べるマクロブリックを使用する.

## 4.3 ブリックコードは Ruby コード

次の点を強調しょう.

## ブリックコードは, Rubyコードである.

初代の Haori (佐藤 2015; 緒方 他 2015; 緒方, 佐藤, 松崎 2016) から HaoriBricks (佐藤 2017, 2018) に進む時点で，ブリックコードというラッパーを導入し， これをプログラム（Rubyコー ド）として記述することにしたのだが，結果的に，この選択が非常に大きな恩恵をもたらした。 ブリックコードは, 単なる Rubyコードであるから, プログラミング言語 Ruby の機能—デー 夕構造, 変数, 制御構造 (if-then-else)—がコード内で自由に利用できる. このことは, コードを 書く際の自由度の向上に，大きく寄与する。

より技術的には，それぞれのブリックは，ある Ruby モジュールに定義されたインスタンス メソッド（ブリックメソッドと呼ぶ）である。ブリックコードの実行（評価）は，次のような形式で行い，ブリックコードを中括弧の中に記述する。この中括弧は，プログラミング言語 Ruby でブロックと呼ばれるものである.

HB3.basic\{述語（:食べる，を（:りんご)）\}

このブリックコードは, 「りんごを食べる」という表層文を生成するためのコードで，内容語

使って文を組み立てる 2 つのブリック〈を〉と〈述語〉の, 計 4 つのブリックで記述されている.

Ruby のブロックの実体は, Procオブジェクトであり, 名前のない関数のようなものである. HB3.basic（Rubyのクラス HB3 のクラスメソッド basic）は，このProcオブジェクトを，い わゆるクリーンルーム (Perrotta 2015) で実行する。具体的には，まず，最低限のメソッドしか 定義されていない Object クラスのオブジェクト（クリーンルーム）を作成し，そのオブジェク トに，ブリックを定義しているモジュールを extend する（モジュールに定義されているインス タンスメソッドを特異メソッドとして使えるようにする)。この操作により，クリーンルームで ブリックメソッドが実行できるようになるので，先のProcオブジェクトをこのクリーンルーム で評価 (instance_eval) すると, ブリックコードが実行される.

この実行により生成されるのは，ブリック構造（Ruby オブジェクト）である。表層文字列を 生成するためには, このブリック構造に to_ss というメソッドを適用すればよい.

## 4.4 マクロブリック

ブリックは,（単なる）Rubyのインスタンスメソッドであるから，新たなブリックを定義す るためには，Rubyメソッドを定義すればよい.

先に述べたように，基本ブリックのみで記述したブリックコードは, 記述量が多い. この記述量を削減するために，多くのマクロブリックと短い別名を定義している．文を合成する際に 実際に記述するブリックのほとんどは，マクロブリックの別名である.

たとえば，ブリック〈を〉は，〈格助詞を〉の別名である，このブリックは，次のように定義 されている，なお，本論文で示すブリックの定義は，わかりやすさを重視するため，実際の定義を簡略化したものを示している。

このコードは，引数がない場合は単に「格助詞を」を作り，引数がある場合は，「格助詞を」 をブリック〈助詞〉の第 1 引数として組み合わせることを意味している。

^{5}$ Ruby のシンボル（:で始まる）は, lexal ブリックの略記法である
}

このコードは, 第 2 引数が nil の場合は nilを返し, 非 nil の場合は〈構造〉ブリックを作るこ とを意味している，值 nil は，值がないことを意味する。つまり，第 2 引数が nil の場合は，構造を作らない，このような定義により，次のコードは「食べる」のみを出力し，「を」を実体化 しない.

## $\mathrm{x=\mathrm{nil}$}

HB3.basic\{述語（:食べる，を $(x)$ ) \}.to_ss＝> "食べる"

値 nilをどうハンドリングするかは，ブリックコードの使い勝手を大きく左右する．変数を用 いて, ガ格の内容, ヨ各の内容, 述語を外から与えるコードは, 次のようになる。 ここで, ga, wo, pred は, Rubyの変数である.

このコードで，変数 ga やwo に nil を代入すれば，それぞれの格要素が格助詞达みで省略さ れる。つまり，そのための専用のコードを書く必要がない. なお，変数 predに nil を代入した 場合は, 述語構造全体が作成されない, さらに, 述語を省略した述語構造「〜が〜を」を作り たい場合は，predに空文字列を生成する特別なブリック〈empty〉を与えればよい。これらは， 4 行目のコードひとつで，すべて実現できる。

日本語の文では，格要素はしげしげ省略される。同様に，修飾要素も，存在したりしなかっ たりする．HB3 のブリックコードでは，それらの要素が存在しないことを nil で表現できるた め，それぞれの場合に対して個別のコードを書く必要はない. このことは，コードの汎用性向上と記述量削減に大きく寄与する.

## 4.5 ジェネリックブリック

マクロブリックの動作は, 引数の数, および, 值が nil かどうかに依存するが, 引数の内容 (ブリック構造) の詳細までは立ち入らない. これに対して, 引数のブリック構造に応じて, 動作を変えるブリックを定義したい場合が存在する.

その一例は, 使役を表す述語接尾辞「せる」と「させる」の選択である。接続対象が母音動詞型活用の場合は「させる（食べさせる）」を，子音動詞型活用の場合は「せる（書かせる）」を
選択する必要がある.

次のコードでは, pred は変数であるから，どんな活用型の動詞が来るかは実行時にならない と定まらない。それゆえ，どちらの接尾辞を接続させるかは，実行時に決定しなければならい。

HB3 では，引数のブリック構造にアクセスする手段を提供しており，これを用いて〈使役〉 ブリックを作ることが可能である，具体的には，引数のブリック構造の最も後ろにある語を捕 まえて(.rightmost_lexal), その活用型 (.ctype)の值で分岐すればよい。その概略は, 次のよ うになる。

このような, 引数のブリック構造を参照して動作を変えるブリックをジェネリックブリックと 呼ぶ. 上記の〈使役〉は, 使役の接尾辞を付与するという機能を担うという意味で汎用的であ る ${ }^{6}$. 先に示した, 図 1 のブリックコードでは, 〈丁寧〉と〈ます〉がジェネリックブリックで ある。

ここでは詳細は述べないが，引数のブリック構造を参照するだけでなく，書き換えるブリッ クを作ることも可能である。たとえば，ブリック〈ます〉はそのような一例である．具体的に は，「イ形容詞ない」に「ます」を接続する場合は，「ない」を「ある」に書き換え，「ません」 を接続させる。この操作により，「ありません」を生成することが可能となる.

[6] お金 + が＋ない＋ます～小金 + が＋ある＋ません（お金がありません）

## 4.6 Basic パッケージ

HB3 では，提供するブリックの集合をパッケージと呼ぶ．HB3 の標準パッケージである Basic パッケージには, 本論文の執筆時点で， 1,715 種類（別名を含めると 2,917 種類）のブリックが 定義されている。それらの内訳を表 4 に示す.

この表において, 左闌が羽織文法の骨格をサポートするためのブリック, 中欄が具体的な語

表 4 Basic パッケージに含まれるブリック数

や表現に対応するブリック（機能語, 複合辞, 慣用句のサポート）, 右欄がそれ以外のマクロブ リックとジェネリックブリックである。この表に示すように，従属節をサポートするためのブ リック $(\rightarrow \oint 5.1)$ が非常に多い.

なお，Basic パッケージの編纂では，『基礎日本語文法一改訂版一』(益岡，田窪 1992)に掲載 されている番号付きの全例文（1,177 例文）7を利用し，これらの例文を生成するコードを比較的容易に記述できるようにブリックを定義した。

## 4.7 この章のまとめ

ブリックコードは, 所望の羽織構造を作成するためのラッパーである。その実体は Rubyコー ドであり，コードを構成するブリックは，Rubyのインスタンスメソッドである．基本ブリッ クは 6 種類しかなく, それ以外のブリックは, 基本ブリックの組み合わせとして定義されたマ クロブリック，または，ジェネリックブリックである，Basic パッケージには，多数のマクロブ リックとジェネリックブリックが定義されており，このパッケージを利用することで，日本語文を合成するコードを比較的簡潔に記述することができる。

## 5 HaoriBricks3 の使用例

この章では，HB3の使用例をいくつか示し，HB3で何ができるのかを明らかにする.

## 5.1 複文を作る

日本語の長い文の大半は, 複数の節から構成される複文である。以下に例を示す.

[7] a. 音楽を聴きながら論文を書く.

b. 論文を書く。（主節)

c. 音楽を聴きながら(連用節ながら)

HB3 の Basic パッケージに含まれている従属節を作るブリックを使えば，単文から複数を合成するのは容易である。

このコードの 1 行目と 2 行目は，単文を合成するためのコードである。これらを評価したも のをそれぞれ変数 $\mathrm{m}$ と に代入し，ブリック〈連用節ながら〉を用いて結合すれば，所望の複文 が得られる。従属節の述語を基本連用形にすべきことは，このブリックが知っているので，明示的指定する必要はない. なお, このブリックは, 第 1 引数が nil の場合は従属節を作らないた め，変数 c が nil の場合， 3 行目のコードは「論文を書く」という単文を生成する.

3 行目のコードで, 従属節の形式を固定したくないのであれば， 4 行目のように外で従属節の 形式を定め，5 行目のように〈修飾〉ブリックを使って主節と結合すればよい. 従属節を作るブ リックは, 1 引数の場合は従属節を作り, 2 引数の場合は, 第 1 引数で作成した従属節を第 2 引数に結合する.

Basic パッケージには，従属節を作るマクロブリックが 190 種類, 定義されている，その一覧 を表 5 に示す.この表で, ブロック体以外のものは, 中分類をプレフィックス (prefix)として付与したものがブリックの名称となる（たとえば，〈並列節が〉など）。なお，従属節の作成と読点の付与を同時に行うブロック（たとえば，〈並列節が読点〉）も 170 種類, 定義されている.

一般に，節末形式が名詞を持つ場合，連体修飾を受けることができることが多い。これを従属節と同じように記述できるように，〈〜句〜〉というブリックも定義されている.

[8] a. 小説を書くとき — 時間節とき（述語 (:書く，を（:小説)))

b. 小説執筆のとき 一 時間句のとき (:小説執筆)

## 5.2 『スマホが震えた』を生成する

HB3 のコード記述例として，小説の自動制作を目指すプロジェクトの初期の段階で，プロジェ クトメンバーの一人が書いたサンプル小説『スマホが震えた』の全文（図 2）を生成するコード を図 3 に示す。以下では，このコードを解説する。
- HB3には，単に要素を並べるだけの〈列構造〉が存在するので，これを利用すれば，文た けでなく, 文章を組み立てることができる。ブリック〈テキスト〉,〈段落 $\rangle,\langle$ 発話段落〉
表 5 従属節を作るブリックの一覧

 \\

は，〈列構造〉を利用している。

・ブリック〈判定詞省略〉は，いわゆる体言止めを生成するためのブリックである。その ままでは判定詞は表層化されないが，たとえば〈テ節〉に接続すると，「深夜一時頃で」 のように，背後に隠れている判定詞が出現する.
- 地の文は, 複文になることが多い. 〈並列節が読点 $\rangle,\langle$ 連用節ながら読点 $\rangle,\langle$ 条件節と読点〉 などは，従属節を作り，主節に結合するブリックである $(\rightarrow \$ 5.1)$. 実際のコード作成で は，従属節を簡単に作れることが非常に重要である。

-いわゆる提題表現は, 〈提題〉ブリックを使って述語構造の外に書いてもいいし, 〈述語〉 の中に書いてもよい，前者の場合は修飾構造が作られ，後者はいわゆる格要素と同じ扱

スマホが震えた。

深夜一時ころ。ここは研究室の中。

鈴木邦男は、先月ここに配属されたばかりであるが、平均帰宅時間はすでに深夜零時を超えている。

邦男は大きなあくびをしながら、ポケットの中からスマホを取り出した。

「もしもし」

「鈴木邦男さんですか？」

「はい、あなたは？」

「わたしは悪魔」

「イタズラならよしてくれ。僕はいまレポートで忙しいんだ」

「なんでも一つ願いを叶えてみせましょう」

「バカバカしい、さあ、切りますよ」

「お待ちください、一度試してみてからでも損はないでしょう?」

「それなら、このひどい眠気をなんとかしてくれ。レポートが進みやしない」

「お安い御用です」

悪魔がスマホ越しに何やら呪文を呟いたと思うと、邦男の眠気はさっぱりと消え飛んだ。レポートもばっちり 書けた。

しかしそれ以来、邦男は一睡もすることができなくなった。

図 2 緒方健人『スマホが震えた』

いとなる。

$\cdot$ 複合名詞は, 〈複合語〉ブリックを使って合成してもよいし, 一語として記述してもよい.前者の場合は，複合語の構成要素が部品となる（つまり，置換可能となる）が，後者の 場合は，全体が部品となる。
- イ形容詞「大きい」は，連体修飾用法では「大きな 形」が優勢である.ブリック〈形容詞〉 は第 1 引数が形容詞であることを，〈連体修飾〉は第 1 引数が第 2 引数を連体修飾するこ とを意味している。なお，「大きな」は，「目が大きな少女」のように格要素を取りうる ので，連体詞とみなすのではなく，イ形容詞のナ形とみなすのがよいと考える。

・ブリック〈発話〉は，発話形式のためのブリックで，発話文を鉤括弧で囲む．

$\cdot$ブリック〈お〜くたさい〉は，動詞「待つ」から丁寧な表現「お待ちください」を作る ブリックである。この「ください」は「お〜・ご〜」の形式のみに接続する述語接尾辞 (「敬語接尾辞ください」) である.

-「レポートが進みやしない」は，「（レポートが）進まない」という述語表現を，「副助詞 や」で取り立てた表現とみなす。この取立表現を組み立てる方法は, このコード例にも いくつか方法がある。なお，述語の取立表現には不明な点が多い。たとえば，イ形容詞「造作ない」の取立表現は「造作もない」だと思われるが，「いたたまれない」は取り立 てることができないように思われる。このような現象には，まだ対応できていない．

-「スマホ越しに㕸く」の「に」は，何助詞とすべきかよくわからない。暫定的に「連用助詞に」に分類している $(\rightarrow \oint \mathrm{A} \cdot 2.1)$.

このコードが生成するテキストは、HTML にならい、段落に
タグを、改行に
タグを付与し、最後に整形する 方式を採用している。HB3 は、HTML タグを透過性をもった境界記号として扱うため、テキストの任意の語境界に HTML タグを挿入可能である。

図 3 『スマホが震えた』を生成する HB3ソースコード

-「それ以来」も謎である，現在は，暫定的に〈複合語〉ブリックを使っているが，この解釈でよいかどうか自信がない。すでに述べたように，名詞を持つ節末形式は，連体修飾 を受けることができる場合が多い.

[9] a. 小説を書くとき

b. 小説執筆のとき

c. そのとき

しかしながら，「以来」は連体修飾を受けることはできず，代名詞は連体形ではなく名詞形が接続する。

[10] a. 小説を書いて以来

b. *小説執筆の以来

c. *その以来

d. それ以来

e. 小説執筆以来

このように，文章をブリックコードで記述しようとすると，よくわからない言語現象が顕在化する，HB3 の実装は，このような現象をひとつひとつ潰していくという側面を併世持つ.

さらに，次の 3 点を付け加える。

-このコードでは, 内容語はRubyのシンボル（つまり，〈lexal $\rangle$ ）で記述され，それ以外は,他のブリックで記述されていることに気づく，つまり，〈lexal〉以外のブリックで構成さ れる部分が，文を成り立たせる骨格であり，羽織文法が規定しているのは，主に，この 部分である。

・このコードでは, 品詞ブリックがほとんど出現しない. 〈形容詞〉と〈接続詞〉が若干出現するだけである。その理由は，次のとおり。

－ 活用する内容語は, 裸の連体修飾の場合を除き, 述語構造をもつ. ブリック〈述語〉 は，第 1 引数を述語と解釈して活用型推定を行うので，動詞・形容詞を明示的に 指定する必要がない.
- 活用しない内容語は, 構造だけが問題となるが, それはほとんどの場合, 「修飾構造 (binary_l)」である。ブリック〈連体詞〉，〈副詞〉，〈接続詞〉，〈感動詞〉は，い ずれも 2 引数の場合はブリック〈修飾〉と等価である ${ }^{8}$. つまり, これらの品詞の 区別は，羽織文法では本質的でない.

・このコードを構成するすべての部品（ブリック）は, 変数化できる（コードの外から指定可能である).このコードでは，登場人物の名前だけを変数化して外から与えているが， すべての内容語も同じように変数化することができる。それ以外のブリックも，単なる

Ruby メソッドコールであるから, send を使えば変数化できる。これが,「ブリックコー ド=Ruby コード」の威力である.

## 5.3 発話を作る

## 5.3.1発話文体を切り替える

前述の『スマホが震えた』の例にもあるように, 小説には登場人物の会話が含まれるのが普通である。日本語の小説では，発話者の情報は明示的に示されない場合が多い，それぞれの登場人物に対して，発話の文体を変えることなどの表現上の工夫によって，発話者が誰なのかわ かるようにすることが，一般的に行われている。

たとえば，「フランス語を教えてほしい」という依頼を表明する場合，どのような文体を用い るかによって，読者が感じる発話者のイメージが異なる (金水 2003).

[11] a. フランス語を教えろよ（命令形十終助詞よ）一粗野な男性

b. フランス語を教えてくださらない？（テくださる十ない+疑問符）一上品な女性

c. フランス語を教えてちょうだい（テちょうだい）一幼い（あるいは，甘えた）感じ

これらは, 主に, 文末表現の違いによってもたらされる。すなわち, これらの文末表現をブ リックとして定義し, それらのうちのひとつを選択して, 命題的表現（「フランス語を教える」） に結合すれば (木村，夏目，佐藤，松崎 2018)，読者が感じる発話者のイメージを操作できる.

## 5.3.2 発話者を切り替える

さらに，HB3の基本ブリックのひとつに，文や発話の作り手を明示的に指定する〈producer〉 ブリックがあり，その指定に従って表現を切り替える仕組みが組み达まれている，具体的には， ブリック構造から羽織構造を生成する際に，個別の作り手に対して定義されたフィルタを通す ことにより，表現を切り替える。以下に，一例を示す。この例では，作り手「コナン」に対し て定義したフィルタを使って，「〜しかない」という表現を「〜っきゃねえ」という表現に置き 換えている。

ただし，上記のような切り替えを実現するためには，それぞれの作り手に対して，どのよう な変換を行うかを, 詳細に定義する必要がある。 そのため, この機能は, 現時点では, 実験的 な位置付けとなっている.

## 5.4 文末を書き換える

表層文をブリックコードに変換できれば，ブリックコードを操作して，文を書き換えること ができる。以下に示す 2 つ例は，企業との共同研究を進める過程で実際に必要となった具体例で，いずれも HB3 を使って実現された。なお, これらの例は, 文末を操作するだけなので,文全体をブリックコードに変換するのではなく，文末の述語部分をブリックコードに変換する 方法で実現している.

## 5.4.1 ウィキペディア文を，話し言葉に適した形式に変換する

三宅宏実選手のウィキペディアの記事には，「趣味は足のネイルアート」という文が存在する. この文を，ソフトウェアエージェントに発話させることを想定し，話し言葉に適した文 $[12 \mathrm{c}]$ に 変換する。

[12] a. 趣味は足のネイルアート.

b. 〈:ネイルアート $\rangle+\langle$ だ $\rangle+\langle$ 伝聞そうだ $\rangle+\langle$ 丁寧 $\rangle$

c. 三宅選手の趣味は足のネイルアートだそうです.

この例の場合, 元の文の文末として「ネイルアート（体言止め）」を同定し，それに〈だ，〈伝聞そうだ $\rangle^{9}$, 〈丁寧〉という 3 つのブリックを付加することで, 所望の文を作り出す. ただ し，文頭の「三宅選手の」は，別の方法で補完する (柳，佐藤 2020).

## 5.4.2広告文の生成で，症状を問いかけ形式に変換する

広告文では，読者に働きかける表現が多用されるが，そのひとつに問いかけ形式がある。たと えば，「腰が痛い」という症状を問いかけ形式に変換することは，以下に示すように，述語「痛 い」に，〈は〉，〈取立助動詞ある〉，〈か〉，〈丁寧〉という４つのブリックを付加すれば実現で きる (平良, 佐藤, 宮田, 今頭 2019).

[13] a. 腰が痛い

b. 〈述語 $($ 痛い $)\rangle+\langle は\rangle+\langle$ 取立助動詞ある $\rangle+\langle$ か $\rangle+\langle$ 丁寧 $\rangle$

c. 腰が痛くはありませんか

なお, 取立助動詞とは, すでに述べたように, 述語の取立形式を作るための専用の助動詞である.

## 6 議論

## 6.1 卵が先か, にわとりが先か

これまで，日本語において，文生成用の専用ソフトウェアはほとんど存在しなかったと認識 している。そのようなソフトウェアが作られなかった理由は, おそらく, ニーズがなかったか らであろう。というのも，
- 生成すべき文が完全に確定しているのであれば，文字列として記述すればよい。それが もつとも合理的かつ簡便な方法である.
- 確定していない部分があったとしても, それが活用しない表現ならば，その部分を変数化した文字列テンプレートを用いればよい.

上記に該当しない場合，つまり，確定していない部分に活用する表現が含まれていたり，一旦生成した文を加工したりする必要が生じる場合に, HB3のようなソフトウェアが必要となる. エラーメッセージ生成のようなアプリケーションでは, HB3のようなソフトウェアは不要であ り, 小説の自動制作のような自由度の高いテキストの生成を志すことで, はじめて必要性が顕在化したともいえる.

しかし，この見方は本当だろうか. 我々は，プログラムによって自動制作した小説を『日経星新一賞』に応募することによって, テキストの自動生成の可能性を広く知らしめたわけだが, その後に寄せられた問い合わせにより，テキスト自動生成のニーズは，それなりに存在すると いう認識に至っている。前章の文末の書き換えは，その具体例の二例である。この他にも，パ ラフレーズ，文体変換，発話に対するキャラクタ性付与など，文変換のニーズが存在する.

「文生成は意味表現（内部表現）を表層表現に変換すること」という思い込みが，文生成へ 足を踏み入れることを躊躇させていたのではないだろうか. その思い込みを破棄し，文生成を 部品からの合成とみなせば，文生成実現のハードルは大きく下がる，さらに，それを実現する ソフトウェアがあれば，個別アプリケーション用の文生成プログラムは，比較的容易に実現で きる。潜在的なニーズが，顕在化する可能性もある。

## 6.2 ジェネリックブリックによる文法の隠蔽と高機能化

現在の HB3 が満足のいくものに仕上がっているかといえば，そのレべルには達していない. その理由のひとつは，文法の隠蔽が不十分であることにある.

HB3 は，羽織文法に従っている。この文法を熟知していれば，ブリックコードを書くことは たやすい。しかしながら, HB3のユーザーに, 羽織文法の熟知を求めるのは酷であろう.

たとえば，羽織文法では， 4 種類の「ない」が存在する.

(1) イ形容詞の「ない」. 例：暇もお金もない

（2）否定接尾辞の「ない」．動詞型活用に接続する，例：食べない，食べさせない

（3）テ助動詞の「ない」.「〜テいない」の「い」が脱落した形式. 例：論文を書いてない

（4）取立助動詞の「ない」．形容詞の否定取立表現を作る．例：美しくもない，確実ではない 生成という立場に立てば，上記の 4 種類の「ない」の振る舞いはそれぞれ異なるので，これ らを区別することは必然である。しかし，ユーザーに，これらを適切に使い分けることを求め ることはできないであろう。

ジェネリックブリックは，このような使い分けの困難さを軽減する役割を果たしている．た とえば，ジェネリックブリック〈ない〉には，次のような使い分けの自動判定が組み込まれてい る 10 。

(1) 引数がない場合は,「イ形容詞ない」と判定する.

（2）イ形容詞型，判定詞型の活用に接続する場合は，「取立助動詞ない」と判定する.

（3）動詞型の活用に接続する場合は，「否定接尾辞ない」と判定する.

それゆえ, この〈ない〉と，そこではハンドリングできない〈テ助動詞ない〉の 2 つのブリック を使い分ければよい 11.

このように，ジェネリックブロックを巧みに定義することによって，文法の隠蔽はある程度可能であるが，まだまだ不完全である。 さらに多くの，そして強力なジェネリックブロックを 定義する必要があると考えている.

ジェネリックブロックは，ある意味において，文法的機能の抽象化とみなすこともできる。 たとえば，「です・ます」の使い分けを自動的に行う〈丁寧〉ブロックは，その典型例である.羽織構造には抽象的な文法的機能が入る余地はないが，ジェネリックブロックを定義すること よって, ブリックコードでは文法的機能による記述が可能となる，今のところ，Basic パッケー ジでは文法的機能の抽象化を強く推進する予定はないが，それを推進したパッケージを作成す るのも, 一つの可能性としてはありえる。

## 6.3 文合成の言語依存性

それぞれの言語の文は, その言語に固有の特徴が強く現れるため, 文合成のためのソフトウェ アは，必然的に，対象言語に強く依存せざるを得ない， Realization engine（文を表層化するツー ル)として提案・実装されたSimpleNLG (Gatt and Reiter 2009)は英語を対象としているが, こ のツールを基盤として, これまでにドイツ語, フランス語, イタリア語, スペイン語など 7 言語 を対象とした版 (adaption) が作られている（たとえば， (Braun, Klimt, Schneider, and Matthes 2019)を参照のこと). しかしながら, これらの版は, その実現にあたって, 対象言語用の辞書, および，形態生成，句生成，語順決定等のルールが新たに実装されており，SimpleNLGの枠組 みを借りた別システムと捉える方が適切であろう。

SimpleNLG と HB3 のアーキテクチャは，大きく異なる. SimpleNLG（とその各言語版）で は，ある範囲の言語現象を属性 (feature) として抽象化し，その範囲内 (coverage) に限定した表層化をサポートする。つまり，表層化できる文の形式には制限がある。同時に，ある種の抽象表現を文（表層文字列）に変換するという伝統的な surface realizer (Reiter and Dale 2000)の考 え方からは，大きくは逸脱していない，これに対して，HB3 は，この考え方から完全に逸脱し，「文を合成するコード（プログラム）を書く」ことによって文合成を自動化するという立場をと る。HB3が提供する基本ブリックは，日本語の文を組み立てるために必要な最低限の道具立て であり，原理的には，あらゆる文を合成できる。このレべルで万能性を担保しつつ，マクロブ リックおよびジェネリックブリックという拡張性により，所望の文を合成するコードを簡潔に 記述することを可能にしている.

HB3 がこのような形となったのは, 対象言語が日本語であるということと, あらゆる文が想定 されうる小説の自動制作が最終ゴールであるということによる，HB3のアーキテクチャは，日本語以外の言語の文合成にも適用できるとは思われるが，それぞれの言語の文法に即したアー キテクチャを考える方が建設的であろう 12.

## 6.4 何が達成できれば完成なのか

HB3 はどこに向かうのか. 何が達成できれば「できた」とみなすのか. 2 章で掲げた目標は，「日本語文を合成するコードを，できるだけ簡潔に書けるようにしたい」であったが，「できる だけ」という表現は相対的であり，絶対的なゴールを規定するものではない.

羽織シリーズの最初の版に比べて，文を合成するために記述しなければならない記述量は,格段に減少した。さらに，マクロブリックとジェネリックブリックを多数定義することによっ て，実際に記述するブリックコードも短くなり，かつ，羽織文法をそれほど意識しなくても書 けるようになってきている。それでも，コードを書かなければならないことには変わりはない。試験的に実装した羽織テンプレートは，ブリックコードを書く代わりに，文字列に若干のア ノテーションを付加することで，自動的にブリックコードを生成する仕組みである。 たとえば,以下の 1 行目の文字列は，2行目のコードに自動変換されるので， 3 行目のような生成が可能で ある。

template = "\{りんご\}を\{食べる\}"

lambda\{|args| HB3.basic\{ 述語（(args[:食べる] || :食べる)，を（args[:りんご] ||:りんご)）＼$\} }$ g(:夕, template,\{食べる: :買う \}).to_ss => "りんごを買った"

その值が定義されていれば，その値が使われる，つまり，このテンプレートで，「〜を〜」とい うあらゆる表現が生成できる。羽織テンプレートでは, 中括弧で括られた部分がテンプレート のスロットで，その中身がデフォールトのフィラーとして解釈される。このテンプレートはブ

現時点で羽織テンプレートがサポートしているのは単文のみであるが, アノテーションの記法を拡張して, より複雑な文をブリックコード化することも，原理的には可能である.

記述量を究極まで減らす方法は，文字列として記述した文を，ブリックコードに変換する方法である。しかし，その実現には，背後で形態素解析や構文解析を動かさなければならなず，解析誤りが混入する可能性を排除できない。ただし，文末のみが正しく解析できればよいと割り 切れば，この方法も現実的な選択肢に入ってくる (佐野, 佐藤, 宮田 2020). 5.4 節の具体例は, この方法で実装している。

いずれにせよ，何が達成できれば「できた」とみなすのかは，できてみなければわからない. この研究のゴールを見つけること自身が, この研究のゴールである.

## 7 おわりに

本稿では，日本語文を合成するためのドメイン特化言語 HaoriBrick3 (HB3)の設計思想と実現・実装のための工夫，および，HB3の利用例について述べた.

最後に, HB3 に至る羽織シリーズの開発を通して明らかになったと私が考えているのことを,以下に示す.

-これまでの文法は，文の解析，すなわち，「実際に存在する文の構造（や意味）をどう解釈するか」に焦点があった. 日本語文の機械的合成のための文法は, 解析のための文法 とは異なる様相を呈する。たとえば，品詞は重要ではなく，活用型の方がより重要であ る。文節係り受け構造よりも，羽織構造のような構造の方が適している。
- 日本語の文合成のための文法の中核は，機能語（表現）を列挙し，それぞれの機能語の 働きを明らかにすることに帰着できる。明らかにしなければならない機能語の数（オー ダー）は，数千である。日常的に使われる書き言葉の範囲であれば， 2,000 程度に収まる たろう。
- 日本語文を構成する要素の中で, 特に複雑な部分は, (1) 述語の形式（述語接尾辞・助動詞の付与), (2) 従属節の節末形式, (3)とりたて, (4) 敬語表現, である.
- 実際に文を合成する際には内容語が必要となるが, HB3では，それが内容語であるとわ かれば十分である。つまり, 内容語の辞書を用意する必要はない. このことは, 個別ア

プリケーション用の文合成コードを書く際に，非常に大きな長所（省力化）となる．

## 謝 辞

本稿の 6.3 節と第 7 章, 付録 $\mathrm{B}$ は, 查読者の提案により追加した. 有益な提案に感謝する.

本研究は以下の助成を受けて実施した. JSPS 科学研究費補助金 基盤研究 (B)「文章の読解 と産出のための言語処理」(課題番号 15H02748), 同挑戦的萌芽研究「発話に対するキャラクタ 重畳機構の実現」(課題番号 $15 \mathrm{~K} 12179)$, 同挑戦的萌芽研究「ブロック玩具をモデルとする日本語文章合成ツールキットの設計と実装」（課題番号 17K20028），同基盤研究 (B)「日本語文章の 構造モデルとその段階的詳細化による文章自動生成機構」(課題番号 18H03285).

## 参考文献

Braun, D., Klimt, K., Schneider, D., and Matthes, F. (2019). "SimpleNLG-DE: Adapting SimpleNLG 4 to German." In Proceedings of the 12th International Conference on Natural Language Generation, pp. 415-420.

CoGenTex Inc. (2000). RealPro General English Grammar User Manual.

Gatt, A. and Reiter, E. (2009). "SimpleNLG: A Realisation Engine for Practical Applications."

In Proceedings of the 12th European Workshop on Natural Language Generation (ENLG 2009), pp. 90-93.

木村遼, 夏目和子, 佐藤理史, 松崎拓也 (2018). 発話表現文型辞書を利用した多様な発話文生

成機構. 2018 年度人工知能学会全国大会（第 32 回）, 2E2-02.

金水敏 (2003). ヴァーチャル日本語 役割語の謎. 岩波書店.

益岡隆志，田窪行則 (1992). 基礎日本語文法一改訂版一. くろしお出版.

日本語記述文法研究会 (編) (2003-2010). 現代日本語文法（全 7 巻）. くろしお出版.

緒方健人, 佐藤理史, 松崎拓也 (2015). 文節木の段階的実体化による日本語文生成器の作成. 2015 年度人工知能学会全国大会論文集, 3M3-1.

緒方健人, 佐藤理史, 松崎拓也 (2016). 日本語文生成器 Haori における複文合成. 言語処理学会第 22 回年次大会発表論文集, pp. 334-337.

Perrotta, P. （角征典 訳）(2015). メタプログラミング Ruby 第 2 版. オライリー・ジャパン.

Reiter, E. and Dale, R. (2000). Building Natural Language Generation Systems. Cambridge University Press.

佐野正裕，佐藤理史，宮田玲 (2020). 文末述語における機能表現検出と文間接続関係推定への 応用. 言語処理学会第 26 回年次大会発表論文集, pp. 1483-1486.
佐藤理史 (2015).「文生成器を作る」とはどういうことか. 言語処理学会第 21 回年次大会発表論文集, pp. 1080-1083.

佐藤理史 (2016). コンピュータが小説を書く日. 日本経済新聞出版社.

佐藤理史 (2017). HaoriBricks: ブロック玩具に学ぶ日本語文章生成ライブラリ。言語処理学会第 23 回年次大会発表論文集, pp. 20-23.

佐藤理史 (2018). 述語取り立て形式の整理と文生成器への実装. 言語処理学会第 24 回年次大会発表論文集, pp. 53-56.

平良裕汰朗，佐藤理史，宮田玲，今頭伸嘉 (2019)、ダイレクト広告コピー文の分析と自動生成.

言語処理学会第 25 回年次大会発表論文集, pp. 406-409.

柳将吾, 佐藤理史 (2020). ウィキペディアから抽出した人物エピソードの話し言葉への変換. 言語処理学会第 26 回年次大会発表論文集, pp. 437-440.

## 付録

## A 羽織文法に関する補足

羽織文法の定義にあたっては多くの資料を参照したが，特に参考にしたのは，益岡・田窪文法 (益岡, 田窪 1992) と『現代日本語文法 1-7』(日本語記述文法研究会 2003-2010) である.

## A. 1 活用体系

羽織文法の活用体系は，益岡・田窪文法，および，Jumanの活用体系に準拠している。それ らからの大きな変更点は, 次の 2 点である.

(1) 列活用を考えない（廃止する）

(2) 末尾が「ない」のイ形容詞の活用型を細分化する $(\rightarrow \S 3.6)$

羽織文法では，判定詞は「だ」のみを認め，「である」と「です」は，それぞれ，次のように みなす。

である「判定詞た」のテ形「で」に，「取立助動詞ある」が接続したもの

です「判定詞だ」のダ消失形に「丁寧接尾辞です」が接続したもの

「である」の形式は，「ではある」，「でもある」のように，いわゆる取立助詞の挿入が可能であ る. この形式と, 取立助詞の挿入がない形式との一貫性を重視し,「デアル列」とはみなさない.「です」の形式は，それほど強い理由がないが，列活用の存在は活用体系を複雑化するので， これも「デス列」とみなさい.

なお，ナ形容詞に関しても，同様の扱いとする.

## A. 2 機能語

羽織文法の中核を担うのは, 機能語のリストである。羽織文法では, 機能語はすべて列挙する.機能語の一覧を表 6 と表 7 に示す. 機能語は, 大きく, 活用しない助詞と, 活用する判定詞, 助動詞，述語接尾辞に分けられる。

これらの機能語（表記）には， すべて固有の名称 (ID)を付与してある. 原則として，機能語 の中分類をプレフィックスとし，それに表記を組み合わせたものを ID とする。この方法で区別できない場合は，なんからの文字を付与して区別する。たとえば，羽織文法では，接続助詞「が」として, 「本を書いたが」のような一般的な「が」以外に，王族のような高貴なキャラク 夕が臣下に許可を与える際に使う「書くがいい」の「が」も認める．後者は「接続助詞が終止」 として，前者の「接続助詞が」と区別する ${ }^{14}$.

機能語のリストは，Juman の基本辞書を出発点に，各種の資料を参照しながら，最終的には 私の言語直感に基づいて定めた。

## A.2.1 助詞

助詞は, 格助詞, 副助詞, 接続助詞, 終助詞の通常の細分類以外に, 以下に示す引用助詞, 並列助詞, 連体助詞, 疑問助詞, 連用助詞という細分類を設ける. 取立助詞という分類は設けず,副助詞に含める（Juman の扱いを踏襲する）。

表 6 羽織文法の機能語一覧 (1) 活用しない機能語

 \\

表 7 羽織文法の機能語一覧 (2) 活用する機能語

 \\

（1）引用助詞引用を表す助詞で，その代表格は「と」である.

（2） 並列助詞 一 並列構造を作る助詞で，その代表格は「と」や「や」である.

（3）連体助詞 — 連体修飾を構成する助詞で，その代表格は「の」である.

(4) 疑問助詞 —「か」と「かどうか」を終助詞から分離したものである.

（5）連用助詞 —よくわからない（判定詞由来と考えられる）「に」と「で」を便宜的に収容 するために設けたもの $(\rightarrow \$ 5.2)$ で, この 2 語のみである.

なお, 現時点では, 終助詞の網羅性が低い.

## A.2.2 判定詞

前述の通り，判定詞は「判定詞だ」しかない.

## A.2.3 助動詞

助動詞は，次のように細分類する。

(1) 終止助動詞 — 終止形に接続する助動詞

(2) 終夕助動詞 — 終止形・夕形に接続する助動詞.

(3) 連体助動詞 — 連体修飾の形式に接続する助動詞.

(4) 丁寧助動詞 一丁寧体を作る助動詞.

（5）テ助動詞 — 直前の述語にテ形を要求する。直前に取立助詞の插入を許す.

（6）夕リ助動詞一直前の述語にタリ形を要求する。

（7）取立助動詞—述語の取立形式を作る助動詞。直前に取立助詞の挿入を許す.

（8）連用助動詞 —「連用助動詞ござる」のみ。「〜にござる・ございます」の形式を作る.

終止・終夕・連体・丁寧助動詞の 4 種類は, 益岡・田窪文法の助動詞に対応する。テ・タリ・取立・連用助動詞は独自の分類で，益岡・田窪文法とは異なる扱いである.

## A.2.4 述語接尾辞

述語接尾辞とは,（複雑な）述語を構成する接尾辞で, それ以外の接尾辞と区別して扱う。羽織文法の述語接尾辞は, Juman の述語性接尾辞に，おおよそ対応する.

述語接尾辞は, 次のように細分類する。

(1) ボイス接尾辞 一 ボイスに関わる接尾辞.「れる」，「られる」など.

(2) 否定接尾辞 一 否定に関わる接尾辞.「ない」，「ぬ」など.

(3) 可能接尾辞 一可能に関わる接尾辞.「できる」,「うる」など.

(4) テ縮約接尾辞—テ形が縮退した形式をとる接尾辞.「ちまう」など.

(5) 意志接尾辞 一「（書か）ん」のみ.

（6）相接尾辞 一アスペクトに関わる接尾辞.「（殴り）かかる」，「（書き）かける」.

（7） 様相接尾辞 一 動詞に接続し，ある種の様相を表す接尾辞.「たい」，「すぎる」など.

(8) 丁寧接尾辞 一丁寧形に関わる接尾辞.「です」,「ます」など.

（9）敬語接尾辞 —敬語表現に関わる接尾辞.「くださる」，「なさる」など.

(10) 特殊接尾辞 一「や」のみ.（判定詞・ナ形容詞のいわゆるヤ列）

(11) 述語性接尾辞 一述語を作る接尾辞.「する」,「的だ」など.

## A. 3 接続型

接続型の枠組みは確立されているが，具体的な接続型の定義は，いまだに発展途上にある。現時点では， 89 種類の接続型が定義されているが，安定状態にはほど遠く，問題が生じるたびに
修正を繰り返している。その理由は，次の 2 つである.

・ 接続型という概念自身が新規なため，まとまった資料が存在しない.

・ 機能語の振る舞いは，それぞれ微妙に異なることが多い.

接続型の安定化は, 羽織文法の大きな課題である.

#
B羽織シリーズの変遷

羽織シリーズの出発点は, 2015 年に実装した Haori (佐藤 2015 ; 緒方他 2015, 2016) である. Haori は，文構造として文節係り受け構造（木構造）を採用し，木構造のそれぞれの文節に対し て, 主要部（内容語）と機能部を記述する方式を採用した. 2016 年秋に, ブロック玩具のアナロ ジーを基本アイディアとする新方式を採用し，記述形式としてブリックコードを採用した。同時に，文の構造として羽織構造を採用し，文節係り受け構造と決別した。これが， HaoriBricks (佐藤 2017, 2018) である。本論文で述べた新機軸の大半は, HaoriBricks の開発過程で具現化さ れた. HaoriBricks3 (HB3)は, 2018 年春から開発している HaoriBricks の再実装・機能強化版で ある。HB3では，羽織文法の体系化を推し進め，プログラムを全面的に書き直した，HB3 は，準備が整い次第，公開する予定である.

## 略厤

佐藤 理史：1988 年京都大学大学院工学研究科博士後期課程研究指導認定退学.京都大学工学部助手, 北陸先端科学技術大学院大学情報科学研究科助教授,京都大学情報学研究科助教授を経て, 2005 年より名古屋大学大学院工学研究科教授. 博士 (工学). 本学会, 人工知能学会, 情報処理学会, 日本認知科学会, ACM 各会員.

\author{
(2020 年 1 月 31 日 受付) \\ (2020 年 3 月 17 日採録)
}

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


# 係り受け構造に基づく Attention の制約を用いた Transformer ニューラル機械翻訳
出口 祥之 $\dagger$ ・田村 晃裕 ${ ^{\dagger+\dagger} \cdot$ 二宮 崇 $\dagger$
}

本論文では，ニューラル機械翻訳 (NMT) の性能を改善するため, 原言語側と目的言語側両方の係り受け関係を捉える dependency-based self-attention を組み込ん だ新しい Transformer NMT モデルを提案する。 Dependency-based self-attention は linguistically-informed self-attention (LISA) から着想を得ており，各単語のアテン ションが係り先の単語となるように, Transformerの self-attentionを係り受け関係に 基づいた制約を与えて学習させる． LISA は，意味役割付与の性能を改善するため， Transformer エンコーダ向けに設計されているが，本論文では LISA を Transformer NMT に拡張する。具体的には，デコーダ側の dependency-based self-attention を訓練する際に後方の単語に係る係り受け関係をマスクすることで, 訓練時と推論時との 不整合を解消する。 さらに, 我々の提案する dependency-based self-attention は, byte pair encodingのようなサブワード単位での演算が可能である. Asian Scientific Paper Excerpt Corpus (ASPEC) の日英・英日翻訳タスクの評価実験により, Dependencybased self-attention を組み込んだ提案モデルは, 従来の Transformer NMT モデルと 比較して，それぞれ 1.04 ポイント・ 0.30 ポイント BLEU スコアが上昇することを 示す.

キーワード：ニューラル機械翻訳，係り受け構造，Transformer, Self-Attention
## Dependency-Based Self-Attention for Transformer Neural Machine Translation

\author{
Hiroyuki Deguchi ${ }^{\dagger}$, Akihiro Tamura ${ }^{\dagger, \dagger \dagger}$ and Takashi Ninomiya ${ }^{\dagger}$
}

This paper proposes a new Transformer neural machine translation (NMT) model that incorporates dependency relations into self-attention on both the source and target sides, "dependency-based self-attention". The dependency-based self-attention is trained to attend to the modifiee for each token under constraints based on dependency relations. This was inspired by linguistically-informed self-attention (LISA). LISA was originally designed for the Transformer encoder for semantic role labeling. However, this paper extends LISA to the Transformer NMT by masking future information on words in the decoder-side dependency-based self-attention. Further, our dependency-based self-attention operates with sub-word units created by byte pair

encoding. In the experiments, our model achieved an increase of 1.04 and 0.30 points in the BLEU over the baseline model, respectively, on the Asian Scientific Paper Excerpt Corpus Japanese-to-English and English-to-Japanese translation tasks.

Key Words: Neural Machine Translation, Dependency Structure, Transformer, Self-Attention

## 1 はじめに

近年，自然言語処理の多くのタスクにおいて，ニューラルネットワークが活用されている.機械翻訳の分野においてもその有効性が示されており，その中でも，Transformer (Vaswani, Shazeer, Parmar, Uszkoreit, Jones, Gomez, Kaiser, and Polosukhin 2017) というモデルがリカレ ントニューラルネットワーク (RNN) を用いたモデルや畳み込みニューラルネットワーク (CNN) を用いたモデルの翻訳性能を上回り，注目を浴びている。これまでに，統計的機械翻訳やニュー ラル機械翻訳では原言語や目的言語の文構造を考慮することで翻訳性能が改善されており (Lin 2004; Chen, Wang, Utiyama, Liu, Tamura, Sumita, and Zhao 2017; Eriguchi, Tsuruoka, and Cho 2017), Transformer NMT においても文構造の有用性が示されている (Wu, Zhang, Zhang, Yang, Li, and Zhou 2018). そこで本研究では, Transformer モデルで係り受け構造を考慮することで 翻訳性能の改善を試みる。

Transformer の特徴の一つである self-attention は文内における単語間の関連の強さを考慮する ことができ，機械翻訳のみならず，言語モデルの獲得や意味役割付与など，様々な夕スクにおい て精度の向上に寄与してきた. Strubell らは意味役割付与の性能を向上させるため, Transformer エンコーダの self-attention で文の係り受け構造を捉える, linguistically-informed self-attention (LISA) と呼ばれるモデルを提案している (Strubell, Verga, Andor, Weiss, and McCallum 2018). LISA では, multi-head self-attentionのうちの 1 つのッドを，各単語が係り先の単語を指すよ うに，係り受け関係に基づいた制約を与えて学習させている。

本研究は, Transformer エンコーダとデコーダの self-attention で，それぞれ，原言語の文と目的言語の文の係り受け構造を捉える Transformer NMT モデルを提案する。降，この係り受け 関係を捉える self-attention d dependency-based self-attention と呼ぶ。具体的には，NMT モデ ルの訓練時に，エンコーダとデコーダの self-attention の一部を，各単語が係り先の単語を指すよ うに，原言語の文や目的言語の文の係り受け関係に基づいた制約を与えて学習させる。そして，推論時には制約を与えて学習した self-attention が文の係り受け関係を捉えながら翻訳する。た だし，推論時には目的言語文が明らかでないため，LISA の手法を直接 Transformer NMT モデル のデコーダに適用することはできない。そこで，提案の dependency-based self-attention では， まだ予測していない単語に対してアテンションを向けないように，デコーダ側の self-attention を学習する際は，自身の単語より後方に係る係り受け関係にマスクをかけた制約を用いる。

また，近年のニューラル機械翻訳モデルの多くは，文を単語列ではなくサブワード列として 扱うことで低頻度語の翻訳に対応している (Sennrich, Haddow, and Birch 2016). そこで, 本研究では, dependency-based self-attention を byte pair encoding (BPE) などによるサブワード列 に対しても適用できるように拡張する.

Asian Scientific Paper Excerpt Corpus (ASPEC) データ (Nakazawa, Yaguchi, Uchimoto, Utiyama, Sumita, Kurohashi, and Isahara 2016) を用いた日英・英日翻訳の評価実験において,提案の Transformer モデルと従来の係り受け構造を考慮しない Transformer モデルを比較し, dependency-based self-attention を組み达むことで BLEU がそれぞれ 1.04 ポイント・0.30 ポイ ント向上することを確認した。また，実験では，原言語側の dependency-based self-attention と 目的言語側の dependency-based self-attention のそれぞれの有効性と BPE に拡張したときの有効性も確認した.

本稿の構成は以下の通りである。まず 2 章で提案手法が前提とする Transformer モデルにつ いて説明したのち， 3 章で提案手法である dependency-based self-attention を示す. 4 章で提案手法を組み込んだモデルの翻訳性能を評価することで手法の有効性を示す。5 章で提案手法の 拡張である subword dependency-based self-attention の有効性, 提案手法の dependency-based self-attention が捉える係り受け構造, 従来モデルと提案モデルの翻訳文の違い, 提案モデルの 設定に関する比較実験をそれぞれ示す。 6 章で関連研究の文構造を考慮したニューラル機械翻訳モデルについて議論し, 7 章で本稿のまとめとする.

## 2 Transformer モデル

本節では, 提案モデルの基礎となる Transformer NMT モデル (Vaswani et al. 2017)を説明す る. Transformer NMT モデルの概要を図 1 に示す.

Transformer NMT モデルは, 入力された原言語の単語列 $X\left(=x_{1}, x_{2}, \ldots, x_{n_{e n c}}\right)^{\top}$ をエンコー ドする Transformer エンコーダ（以下，エンコーダ）と目的言語の単語列 $Y\left(=y_{1}, y_{2}, \ldots, y_{n_{d e c}}\right)^{\top}$ を生成する Transformer デコーダ（以下，デコーダ）を組み合わせたエンコーダ・デコーダモデ ルである。エンコーダとデコーダはそれぞれ, 図1のようにエンコーダレイヤを $J_{e n c}$ レイヤ, デコーダレイヤを $J_{d e c}$ レイヤずつ積み重ねたものである.

Transformer はRNNのような回帰構造を持たないため, 入力文の各単語に対して並列に処理することができる，入力単語の位置情報は位置エンコーディング (positional encoding)によ り考慮する. 具体的には, 単語埋め込みの次元数を $d$ とすると, 位置エンコーディングの行列 $P E$ は

$
P E_{(p o s, 2 i)}=\sin \left(\text { pos } / 10000^{2 i / d}\right),
$

図 1 Transformer モデルの概要

$
P E_{(p o s, 2 i+1)}=\cos \left(p o s / 10000^{2 i / d}\right),
$

と表される。なお, pos は単語の位置, $i$ は埋め込み成分の次元である. そして, 式 (1), (2)に よって計算された位置エンコーディングの行列 $P E$ を単語の埋め込み行列に加算したものを, エンコーダ及びデコーダの入力とする.

エンコーダの第 $j$ 層目の出力 $S_{\text {enc }}^{(j)}$ は self-attention $(\operatorname{SelfAttn}())$ と位置毎の全結合フィード フォワードネットワーク $(F F N())$ により以下の通り計算される.

$
\begin{aligned}
H_{\text {enc }}^{(j)} & =L N\left(S_{\text {enc }}^{(j-1)}+\operatorname{SelfAttn}\left(S_{\text {enc }}^{(j-1)}\right)\right), \\
S_{\text {enc }}^{(j)} & =L N\left(H_{\text {enc }}^{(j)}+F F N\left(H_{\text {enc }}^{(j)}\right)\right) .
\end{aligned}
$

ここで, $S_{e n c}^{(0)}$ はエンコーダへの入力, $H_{e n c}^{(j)}$ は第 $j$ 層目のエンコーダの self-attention の出力, $L N()$ は Layer Normalization (Lei Ba, Kiros, and Hinton 2016)であり，FFN() は間に ReLU 関数を挟んた 2 層の全結合層から成るネットワークである.

デコーダの第 $j$ 層目の出力 $S_{\text {dec }}^{(j)}$ は self-attention と encoder-decoder attention $(\operatorname{EncDec} \operatorname{Attn}())$,位置毎のフィードフォワードネットワークによって以下の通り計算される.

$
\begin{aligned}
& H_{d e c}^{(j)}=L N\left(S_{d e c}^{(j-1)}+\operatorname{SelfAttn}\left(S_{d e c}^{(j-1)}\right)\right), \\
& G_{d e c}^{(j)}=L N\left(H_{d e c}^{(j)}+\operatorname{EncDecAttn}\left(H_{d e c}^{(j)}, S_{\text {enc }}^{\left(J_{e n c}\right)}\right)\right),
\end{aligned}
$

$
S_{d e c}^{(j)}=L N\left(G_{d e c}^{(j)}+F F N\left(G_{d e c}^{(j)}\right)\right),
$

ここで, $S_{d e c}^{(0)}$ はデコーダへの入力, $H_{d e c}^{(j)}$ は第 $j$ 層目のデコーダの self-attention の出力, $S_{\text {enc }}^{\left(J_{\text {enc }}\right)}$ はエンコーダの最終層の出力, $G_{d e c}^{(j)}$ は第 $j$ 層目のデコーダの encoder-decoder attention の出力 である. デコーダの最終層の出力 $S_{d e c}^{\left(J_{d e c}\right)}$ は $|\mathcal{V}|$ 次元の行列に線形変換される.ここで， $\mathcal{V}$ は出

することで $P(Y \mid X)$ が計算され, これに基づいて出力列 $Y$ が生成される. モデルの学習はラベ ル平滑化交差エントロピー (Szegedy, Vanhoucke, Ioffe, Shlens, and Wojna 2016)による $\mathcal{L}_{\text {token }}$ を最小化することで実現される。

$
\mathcal{L}_{\text {token }}=-\sum_{i=1}^{n_{\text {dec }}}\left((1-\epsilon) \log P\left(y_{i} \mid X, y_{<i}\right)+\epsilon \sum_{v \in \mathcal{V}} \log P\left(v \mid X, y_{<i}\right)\right)
$

ただし， $\epsilon \geq 0$ は正解ラベルに対する信頼度をコントロールするラベル平滑化のハイパーパラ メータである.

self-attention は同一文中の単語間（原言語文中の単語間あるいは目的言語文中の単語間）の関連の強さを計算し, encoder-decoder attention は原言語文中の単語と目的言語文中の単語間の関連の強さを計算する。 self-attention や encoder-decoder attention は multi-head attention によっ て実現される。 multi-head attention では，単語の埋め込み空間を $n_{\text {head }}$ 個の $d_{\text {head }}=d / n_{\text {head }}$ 次元部分空間に射影し，それぞれの部分空間で attention を計算する。具体的には, self-attention $($ SelfAttn ()$)$ の第 $j$ 層目は, 直前の層の出力 $S^{(j-1)} \in \mathbb{R}^{n \times d}$ （ただし， $n$ はエンコーダあるいは デコーダの入力系列長) を, $W_{h}^{Q^{(j)}} \in \mathbb{R}^{d \times d_{\text {head }}}, W_{h}^{K^{(j)}} \in \mathbb{R}^{d \times d_{\text {head }}}, W_{h}^{V^{(j)}} \in \mathbb{R}^{d \times d_{\text {head }}}$ を用いて $d_{\text {head }}$ 次元の部分空間 $Q_{h}^{(j)}, K_{h}^{(j)}, V_{h}^{(j)}$ に射影する（なお， $1 \leq h \leq n_{h e a d}$ ）.デコーダで用いら れる encoder-decoder attention $(E n c D e c A t t n())$ では, 直前のデコーダレイヤの出力を部分空間 $Q_{h}^{(j)}$ に, エンコーダの最終層の出力を部分空間 $K_{h}^{(j)}, V_{h}^{(j)}$ に射影する。射影後, 次の式によっ て各部分空間で単語間の関連の強さを表す行列を算出する。

$
A_{h}^{(j)}=\operatorname{softmax}\left(d_{\text {head }}^{-0.5} Q_{h}^{(j)} K_{h}^{(j)^{\top}}\right)
$

この $A_{h}^{(j)}$ に対して $V_{h}^{(j)}$ を掛け合わせることで, 単語間の関連の強さを重みとする荷重和による 表現 $M_{h}^{(j)}$ を得ることができる.

$
M_{h}^{(j)}=A_{h}^{(j)} V_{h}^{(j)}
$

最後に，各部分空間の $M_{1,2, \ldots, n_{\text {head }}}^{(j)}$ を結合させて，単語の埋め込み次元に線形変換する.

$
M^{(j)}=W^{M^{(j)}}\left[M_{1}^{(j)} ; M_{2}^{(j)} ; \ldots ; M_{n_{\text {head }}}^{(j)}\right]
$

ただし， $W^{M^{(j)}} \in \mathbb{R}^{d \times d}$ はパラメータ行列である. self-attention $の M_{h}^{(j)}$ は原言語文あるいは 目的言語文内の全ての単語間の関連の強さを含んでおり, encoder-decoder attention の $M_{h}^{(j)}$ は 原言語文の単語と目的言語文の単語の間の全ての関連の強さを含んでいる。また, デコーダの self-attention は, 推論時に予測していない単語に関する関連を求めないように未来の単語情報を マスクして訓練する。具体的には, 後方の単語に対して attention が向けられないよう， $Q_{h}^{(j)}$ の 各単語から見た後方の単語を表す $K_{h}^{(j)}$ の各成分を $-\infty$ に置換してから softmax を計算し, $A_{h}^{(j)}$ を求める.

## 3 提案手法

提案モデルの概要を図 2 に示す. 本稿で提案するモデルは, 係り受け関係を捉える self-attention (dependency-based self-attention) を Transformer NMT モデルのエンコーダとデコーダに組み 込む. 具体的には， $p_{\text {enc }}$ 層目のエンコーダの multi-head self-attention と $p_{\text {dec }}$ 層目のデコーダ

図 2 提案モデルの概要

の multi-head self-attention のそれぞれにおいて，1つのへッドで原言語文または目的言語文の 係り受け関係を捉えることで，原言語側および目的言語側の係り受け構造を考慮した翻訳を行 う. 係り受け解析は, LISA 同様, Dozat らの deep bi-affine parser (Dozat and Manning 2016) を用いる。 dependency-based self-attention と LISA との違いは次の 2 点にまとめられる；(1) dependency-based self-attention はデコーダでは未来の単語に関する係り受け関係をマスクして 学習する，(2) dependency-based self-attention は単語単位だけではなくbyte pair encoding など によって作られるサブワード単位にも適用可能である.

## 3.1 Dependency-Based Self-Attention

dependency-based self-attention は，エンコーダまたはデコーダの $p$ 層目 ${ }^{1} の$ multi-head selfattention を拡張することにより，係り受け関係を解析する，以下では， $p$ 層目の multi-head self-attention について説明する。まず，直前の層の出力である行列 $S^{(p-1)} \in \mathbb{R}^{n \times d}$ から以下の 式により $Q_{\text {parse }}, K_{\text {parse }}, V_{\text {parse }}$ を得る.

$
\begin{gathered}
Q_{\text {parse }}=S^{(p-1)} W^{Q_{\text {parse }}} \\
K_{\text {parse }}=S^{(p-1)} W^{K_{\text {parse }}} \\
V_{\text {parse }}=S^{(p-1)} W^{V_{\text {parse }}} .
\end{gathered}
$

ここで， $W^{Q_{\text {parse }}}, W^{K_{\text {parse }}}, W^{V_{\text {parse }}}$ は，それぞれ， $d \times d_{\text {head }}$ 次元のパラメータ行列である. 次 に, 2 単語間の係り受け関係を示す行列 $A_{\text {parse }}$ を, 次のように bi-affine 変換によって求める.

$
A_{\text {parse }}=\operatorname{softmax}\left(Q_{\text {parse }} U^{(1)} K_{\text {parse }}^{\top}+Q_{\text {parse }} U^{(2)}\right)
$

ここで, $U^{(1)} \in \mathbb{R}^{d_{\text {head }} \times d_{\text {head }}} と U^{(2)}=\overbrace{(\mathbf{u} \ldots \mathbf{u})}^{n}, \mathbf{u} \in \mathbb{R}^{d_{\text {head }}}$ はパラメータ行列である. また, $A_{\text {parse }}$ の要素 $A_{\text {parse }}[t, q]$ は, 以下の通り, 単語 $q$ が単語 $t$ の係り先である確率を示している.

$
P(q=h e a d(t) \mid X)=A_{\text {parse }}[t, q]
$

ここで， $X$ は原言語文もしくは目的言語文である. また，係り先のないトークン $t_{R O O T}$ は自分自身を指すように以下のように定義する。

$
t_{R O O T}=h e a d\left(t_{R O O T}\right) .
$

次に，以下のように $A_{\text {parse }}$ と $V_{\text {parse }}$ を掛け合わせることで単語間の係り受け関係の強さを重み とする荷重和による表現を得る。
^{1} p$ は, エンコーダの場合は $p_{e n c}$, デコーダの場合は $p_{d e c}$ である.
}

$
M_{\text {parse }}=A_{\text {parse }} V_{\text {parse }} .
$

あとは, multi-head self-attention の 1 つのヘッドを $M_{\text {parse }}$ とする以外は 2 節で説明した通常の multi-head attention と同様である。つまり， $M_{\text {parse }}$ と $n_{\text {head }}-1$ 個の通常のへッド $\left(M_{2, \ldots, n_{\text {head }}}^{(p)}\right)$ を結合し，行列 $M^{(p)}$ に線形変換する。

$
M^{(p)}=W^{M^{(p)}}\left[M_{\text {parse }} ; M_{2}^{(p)} ; \ldots ; M_{n_{\text {head }}}^{(p)}\right]
$

ここで, $W^{M^{(p)}} \in \mathbb{R}^{d \times d}$ はパラメータ行列である.このように, dependency-based self-attention は係り受け関係を第 $p$ 層の multi-head attention の1つのへッド $M_{\text {parse }}$ で捉える.

## 3.2 目的関数

提案モデルは次の目的関数 $\mathcal{L}$ を最小化することにより，翻訳と係り受け解析を同時に学習 する.

$
\mathcal{L}=\mathcal{L}_{\text {token }}+\lambda_{\text {enc }} \mathcal{L}_{\text {encparse }}+\lambda_{\text {dec }} \mathcal{L}_{\text {decparse }},
$

ここで， $\mathcal{L}_{\text {token }}$ は翻訳に関する損失であり， $\mathcal{L}_{\text {encparse }}$ と $\mathcal{L}_{\text {decparse }}$ はそれぞれエンコーダ側とデ コーダ側の係り受け解析に関する損失を表している。また， $\lambda_{e n c}>0$ と $\lambda_{d e c}>0$ はハイパーパ ラメータである。 $\mathcal{L}_{\text {token }}$ は通常の Transformer モデル同様，ラベル平滑化交差エントロピーに よって計算し， $\mathcal{L}_{\text {encparse }}$ と $\mathcal{L}_{\text {decparse }}$ は交差エントロピーによって次式のように計算する.

$
\mathcal{L}_{\text {parse }}=-\sum_{t, q} \hat{A}_{\text {parse }}[t, q] \times \log \left(A_{\text {parse }}[t, q]\right)
$

ただし， $\mathcal{L}_{\text {parse }}$ は $\mathcal{L}_{\text {encparse }}$ または $\mathcal{L}_{\text {decparse }}$ である。また， $\hat{A}_{\text {parse }}$ は $A_{\text {parse }}$ の教師データであ り，各トークン $t$ に対して係り先 $h e a d(t)$ を指す要素のみが $1\left(\hat{A}_{\text {parse }}[t, h e a d(t)]=1\right)$, それ以外 の要素は 0 の行列である.

デコーダ側の係り受け解析に関する損失を算出する際は，自身より後方の単語への係り受け 関係はマスクする，推論時には，デコーダ側の self-attention は予測済みの単語（自身より前方 の単語）に対するアテンションしか捉えないため，未来の単語へのアテンションを訓練しない ようにするためである。デコーダ側の dependency-based self-attention の教師データの例を図 3 に示す。図 3(a) は対訳データ中の目的言語文の係り受け構造の例であり ${ }^{2}$, 図 3(b) は図 3(a) に対するデコーダ内の dependency-based self-attention の教師データである．図 3(a) では，教師データでマスクされる対象となる後方の単語に対する係り受け関係を点線で示している。図 3(b) では，黒色のセルが係り受け関係にある要素を表しており，点線によって囲まれたセルは

(a) 目的言語文の係り受け関係

(b) 目的言語側の係り受け関係の教師データ

図 3 デコーダ側のマスク付き dependency-based self-attention

マスクされた要素であることを表しており, 灰色のセルは係り受け関係にあった要素がマスク されたことを表している。図 3(b) の通り，“knows”が “He” の係り先であることを示す要素な ど，後方の単語に対する係り受け関係がマスクされている。

## 3.3 Subword Dependency-Based Self-Attention

近年，ニューラル機械翻訳は文を単語列ではなく， BPE (Sennich et al. 2016)などによって 分割されたサブワード列として扱うことにより，翻訳の性能を向上させている，そのため，本研究では, dependency-based self-attention をサブワード列に対しても適用できるように拡張す る。まず，単語単位の係り受け構造をサブワード単位の係り受け構造に変換し，続いて変換し たサブワード単位の係り受け構造に対して dependency-based self-attention を適用する。サブ ワード単位の係り受け構造の変換については左から右へと係るよう，次の通りに行う．1つの 単語が複数のサブワードに分割される場合, 右端のサブワードの係り先 (head) は分割元の単語 の係り先とし, 右端以外の各サブワードの係り先は隣接する右側のサブワードとする。また,係り先の単語がサブワードに分割される場合は，分割されたサブワードの中で左端のサブワー ドを係り先とする。以降，サブワード列に拡張した dependency-based self-attention を subword dependency-based self-attention と呼ぶ.

サブワード単位の係り受け関係の例を図 4 に示す。なお, “@@”はサブワードの分割を表した

図 4 サブワード単位の係り受け関係

シンボルである.この例では, “listen”という単語が 3 つのサブワード, “li@@", "s@@", "ten" に分割されている。このとき，“listen”が係り先となっている場合は左端のサブワード “i@@” が係り先になる。また，“listen”を構成するサブワードの係り先は，右端のサブワード “ten”は 分割元の単語 “listen” の係り先，それ以外のサブワードは隣接する右側のサブワードとなる。具体的には, “li@@”の係り先は “s@@”, “s@@”の係り先は“ten”となる.

## 4 実験

## 4.1 実験設定

本実験では，提案モデルの有効性を確認するため，提案モデルと係り受け構造が組み达まれ ていない従来の Transformer NMT モデルの翻訳性能を比較する. Transformer NMT モデルに は Transformer base モデル (Vaswani et al. 2017) を使用し，エンコーダとデコーダはそれぞれ 6 層積み重ねた。

翻訳性能の評価には Asian Scientific Paper Excerpt Corpus (ASPEC) (Nakazawa et al. 2016) の日英・英日翻訳タスクを用いた。訓練データには ASPEC 日英対訳コーパスの train-1.txt と train-2.txt から上位 150 万文対を抽出して用いた。データの前処理は，日本語文の単語分割に KyTea (Neubig, Nakata, and Mori 2011)を用いた以外は WAT の baseline system の構築方法 $^{3}$ に従った。サブワード分割には BPE を用い，語彙数は 100,000 トークンとした。また，サ ブワード分割した文のトークン数が原言語側と目的言語側ともに 250 以下であり，なおかつ対訳文対のトークン数の比が 1.5 以内である $1,198,149$ 文対を用いて訓練した。実験デー夕の対訳文対数を表 1 に示す.

訓練時に用いるエンコーダとデコーダそれぞれの dependency-based self-attention の係り受け 構造の教師データには，予め訓練データの各文を係り受け解析器によって解析したものを使用し た. 日本語側の係り受け解析には $\mathrm{EDA}^{4}$ を用い, 英語側の係り受け解析には Stanford CoreNLP 5 を用いた。

従来モデルと提案モデルの学習には Adam (Kingma and Ba 2014) を用い，学習率などのハ
^{3}$ http://lotus.kuee.kyoto-u.ac.jp/WAT/WAT2018/baseline/dataPreparationJE.html

${ }^{4} \mathrm{http}: / /$ www.ar.media.kyoto-u.ac.jp/tool/EDA

 }^{5}$ https://nlp.stanford.edu/software/stanford-dependencies.html

イパーパラメータの設定は Vaswani ら (Vaswani et al. 2017) に従った. dependency-based selfattention を組み込むエンコーダレイヤ $p_{e n c}$, デコーダレイヤ $p_{d e c}$ は, それぞれ $p_{e n c}=4, p_{d e c}=4$ とした. 目的関数の $\mathcal{L}_{\text {token }}$ の算出に用いるラベル平滑化交差エントロピーの $\epsilon$ (Szegedy et al. 2016)は 0.1 とし， $\lambda_{e n c}$ と $\lambda_{d e c}$ はどちらも 1.0 とした. ミニバッチの大きさは 224 文とし, エ ポック数は 20 とした。毎エポックの終わりに開発データを用いて翻訳文を生成し, BLEU ス コアの最も高いモデルによって評価した。評価時はビームサーチを用いて翻訳し，ビーム幅は 4, length penalty は $\alpha=0.6$ (Wu, Schuster, Chen, Le, Norouzi, Macherey, Krikun, Cao, Gao, Macherey, et al. 2016)とした.

## 4.2 実験結果

表 2 に実験結果を示す。翻訳性能は BLEU (Papineni, Roukos, Ward, and Zhu 2002)によっ て評価した。表 2 において, “DBSA"は提案手法の subword dependency-based self-attention を 表している．実験結果より，提案モデルである “Transformer + DBSA(Enc) + DBSA(Dec)”が ベースラインモデルである“Transformer”より高い翻訳性能であることが分かり，提案手法の 有効性が確認できる。また，表 2 より，日英翻訳においてはエンコーダ側，デコーダ側それぞ れの dependency-based self-attention が翻訳性能の改善に寄与しており，それらを組み合わせる ことでさらに性能が改善できることが分かる。英日翻訳においては, 目的言語側の日本語が後 ろの単語に係る文構造を持っているため，デコーダ側のみに制約を付与した場合は翻訳性能に ほぼ変化が無かったが，エンコーダ側に制約を付与したモデルは，エンコーダ側単体・デコー ダ側の制約との組み合わせを問わず，どちらも性能が改善していることが確認できる.

表 2 ASPEC 日英・英日翻訳の実験結果（単位：BLEU (\%))

表 3 サブワードの有効性（単位：BLEU $(\%)$ )

## 5 考察

## 5.1 Dependency-Based Self-Attention のサブワード単位への拡張の有効性

dependency-based self-attention のサブワード単位への拡張の有効性を調べるため，BPE を 用いずに各文を単語列として扱った場合の性能比較を行う，BPEを用いないモデルでは，訓練 データに出現する頻度が 5 未満の単語を“<unk>”というトークンに置換した．実験結果を表 3 に示す。実験結果より，BPEを用いることで従来モデルと提案モデル両方とも翻訳性能が向上 することが分かる。この結果から, dependency-based self-attention のサブワードへの拡張は有用であることが確認できる。また，表 3 より，BPEを用いない場合においても，提案モデルの 方が従来モデルよりも翻訳性能が良いことが分かる。これより，提案モデルはサブワード系列 だけではなく単語系列に対しても有効であることが分かる.

## 5.2Dependency-Based Self-Attention が捉える係り受け構造の評価

dependency-based self-attention が係り受け関係を学習しているか確認するため, 評価デー夕に 対する各単語の係り先を予測し，評価する，具体的には，評価デー夕を入力としたときの $A_{\text {parse }}$ に対して，各単語 $t$ の係り先の予測結果 $h e a d_{\text {pred }}(t)$ を $\operatorname{argmax}$ により以下のように得る.

$
\text { head }_{\text {pred }}(t)=\operatorname{argmax}\left(A_{\text {parse }}[t]\right)
$

正解データは，評価データに対して係り受け解析器を用いた出力結果を用い，訓練時に与える 教師データと同じ方法により作成する。モデルの係り先予測結果と正解データの一致率を以下 の式により求め，評価する。

$
\frac{1}{T} \sum_{t}^{T} \delta_{\text {head }(t), \text { head }_{\text {pred }}(t)}
$

ただし, $T$ は系列長, $\delta_{i, j}$ は $i=j$ のとき $1, i \neq j$ のとき 0 となるクロネッカーのデルタ, $\operatorname{head}(t)$ は単語 $t$ に対する係り先の正解データである.

評価データには評価時と同じ ASPEC の評価データを用いた。なお，目的言語側についてはモ デルの出力文と参照訳が異なり, 係り先の予測結果を評価できないため, 原言語側の $A_{\text {parse }}$ に

ついてのみ評価を行った。係り先予測に用いるモデルは原言語・目的言語両側に対して subword dependency-based self-attention を組み达んだモデルを用い，係り先の正解データはサブワード 単位で作成した。実験結果であるモデルの係り先予測結果と正解デー夕との一致率は, 日英翻訳実験において日本語の係り受け一致率が $\mathbf{9 8 . 5 7 \%}$, 英日翻訳実験において英語の係り受け一致率が $93.05 \%$ とった。これらの結果より，モデルが係り受け関係を正しく捉えていること が確認できる。

## 5.3 従来モデルと提案モデルの翻訳文の違い

dependency-based self-attention を組み込むことで具体的にどのような翻訳が良くなったのか を調べる。比較には, 従来モデルがサブワード単位の Transformer モデル, 提案モデルが原言語・目的言語両側に対して subword dependency-based self-attentionを組み込んだ Transformer $+\operatorname{DBSA}(\mathrm{Enc})+\operatorname{DBSA}(\mathrm{Dec})$ モデルを用いた.

従来モデルと提案モデルの翻訳結果の違いを表 4 に示す. ただし，表 4 に示した例文は翻訳結果の差異が特徴的な部分を抽出しており, 文中の太字は従来モデルによる翻訳文と提案モデ ルによる翻訳文の係り受け関係が異なる箇所を示した。また，原言語文の太字部分を係り受け 解析した結果を図 5 に示す.

表 4 の原言語文の太字中の「without neurological abcormality」という項は, 図 5 の通り,「without」の直前の項「21 infant cases」に係っていることが分かる．従来モデルの翻訳文は「神経学的異常のない」という項が「無症候性脳梗塞患者 20 名」に対して係っており, 原言語文の 係り受け関係とは異なる誤った係り受け関係になっているが，提案モデルはこの係り受け関係

表 4 従来モデルと提案モデルの翻訳結果の違い（英日翻訳）

 \\

(従来モデル) & 21 名を $\ldots . .$.

図 5 表 4 の原言語文の太字部分の係り受け解析結果

を正しく捉えて翻訳しており，「小児２１例」に対して係った文となっていることを確認した.

## 5.4 提案モデルの設定に関する比較実験

本節では，提案モデルにおける，(1) サブワードの係り先，(2) 制約を与えるへッド数， (3) bi-affine 変換の有効性について，それぞれ比較実験を行う。なお，全ての比較実験には原言語側と目的言語側の両側に対して subword dependency-based self-attentionを組み迄んだ提案モデ ルを用いる.

## 5.4.1 サブワードの係り先方向の比較実験

subword dependency-based self-attention におけるサブワードの係り先の設定について比較実験を行った．提案モデルでは，単語がサブワード単位に分割されたとき，単語内の各サブワー ドの係り先はそれぞれ隣接する右のサブワードへ係るように設定した．本実験では，単語内の 各サブワードの係り先を隣接する左のサブワードへ係るように設定したモデルを用いて比較し た。実験結果を表 5 に示す。なお, 表中の DBSA-L2R は本稿で提案した左から右へと係る構造 を用いたモデル，DBSA-R2L は比較対象の右から左へと係る構造を用いたモデルを示す．表 5 より, 単語がサブワード単位に分割されたときの係り先は, 各サブワードが隣接する右に向かっ て，左から右へと係る構造を用いたほうが性能改善に寄与できることを確認した。

## 5.4.2制約を与えるヘッド数の比較実験

提案モデルは, multi-head self-attention のヘッドから選択した単一のヘッドにのみ制約を与 えて学習する。本節では, 制約を与えるへッドを単一へッドとマルチヘッド全体で比較し，翻訳性能の比較を行った，実験結果を表 6 に示す。表 6 より，制約を与えるへッドはマルチヘッ ド全体よりも単一へッドに設定したほうが性能改善に寄与できることを確認した。

表 5 サブワードの係り先の方向の比較実験 (BLEU (\%))

表 6 制約を与えるへッド数の比較実験 (BLEU (\%))

表 7 提案モデルにおける bi-affine 変換の有無と翻訳性能の差 (BLEU (\%))

表 8 提案モデルにおける bi-affine 変換の有無と翻訳結果の違い（日英翻訳）

## 5.4.3 bi-affine 変換の有無に関する比較実験

提案モデルでは係り受け関係を捉える self-attention でbi-affine 変換を用いているが, bi-affine 変換を用いず式 (9) で得られる確率分布行列に制約を与えたモデルとの比較実験を行った。実験結果を表 7 に示す。表 7 より，bi-affine変換を用いたほうが性能改善に寄与できることを確認した.

また，BLEU 值による評価だけでなく，bi-affine 変換の有無による翻訳結果の違いを調べた。 bi-affine 変換の有無による翻訳結果の違いを表 8 に示す。翻訳結果は文中における差異が特徴的な部分のみを抽出した．表中の太字は単語間の関係性を誤って捉えていると考えられる箇所 である．表 8 より，bi-affine 変換を用いることで複雑な係り受け関係を捉えることが可能とな り，単語間の関係を正しく捉えられるようになることが確認できる。

## 6 関連研究

これまで，ニューラル機械翻訳は係り受け構造や句構造を考慮することにより，翻訳性能が 改善されてきた. Chen ら (Chen et al. 2017) は, RNN ベースのニューラル機械翻訳モデルのエ ンコーダの中で，原言語文の係り受けの親子関係の情報を CNNで畳み込んだべクトルを用いる “SDRNMT”を提案している. Eriguchiら (Eriguchi et al. 2017) は, RNNベースのニューラル 機械翻訳モデルのデコーダに RNN ベースの係り受け解析モデルである RNNG (Dyer, Kuncoro, Ballesteros, and Smith 2016)を組み込んだ“NMT+RNNG”を提案している.

$\mathrm{Wu}$ ら (Wu et al. 2018) は, RNN ゙ースのニューラル機械翻訳モデルや Transformer NMT モ デルにおいて，エンコーダで原言語文の係り受け木を線形化した系列情報を符号化し，デコーダ で目的言語文と共にその係り受け木を予測する機構を組み合わせた手法を提案している。 Wu ら

の手法では Transformer のエンコーダとデコーダに係り受け関係を考慮できるが, Transformer NMT のモデル自体は改良されていない. 一方で, 本研究では, Transformer NMT モデルの selfattention を改良し， self-attentionの中で係り受け関係を考慮する点が異なる．また，Wuらの 手法では, 推論時に係り受け構造を考慮するためには, 原言語の文を既存の係り受け解析器で 解析する必要がある。一方で, 本研究の提案手法は, 推論時には, 訓練時に原言語文の係り受 け関係を捉えるように学習した self-attentionを用いて推論を行うため, 推論時は係り受け解析器が必要ない点も異なる.

Currey ら (Currey and Heafield 2019)は, Transformer のエンコーダに原言語文の句構造を組 み込んだモデルを提案している。Curreyらの手法では句構造を用いているが，我々の手法では 係り受け構造を用いている点が異なる。また，Currey らは原言語側の文構造のみを考慮してい るが，本研究の提案手法では原言語と目的言語の両側の文構造を考慮している点も異なる.

Omote ら (Omote, Tamura, and Ninomiya 2019) は, Transformer のエンコーダの self-attention で原言語文の 2 単語の係り受け木における相対的な位置関係を捉えるモデルを提案している. Omote らの手法では, 原言語側の係り受け構造のみを考慮しているが, 本研究の提案手法では 目的言語側の係り受け構造も考慮している。また, Omoteらの手法は, Wu ら (Wu et al. 2018) の手法同様, 推論時に係り受け解析器が必要な点も本研究とは異なる.

## 7 まとめ

本稿では，原言語側と目的言語側両方の係り受け関係を捉える self-attention (dependencybased self-attention)を組み込んだ新たな Transformer NMT モデルを提案した. デコーダ側の dependency-based self-attention を訓練する際は, 訓練時と推論時で不整合が生じないようにす るため，自身より後方の係り受け関係をマスクした教師データを用いた。さらに, dependencybased self-attention をサブワード系列にも適用できるように拡張した．実験結果より，提案モデ ルを用いることで， ASPEC 日英・英日翻訳タスクにおいて，ベースラインの Trasnformer モデ ルと比較して BLEU スコアがそれぞれ 1.04 ポイント・0.30 ポイント上昇したことが確認できた. また，評価実験を通じて，エンコーダとデコーダそれぞれの dependency-based self-attention の 有効性と dependency-based self-attention のサブワード系列への拡張の有効性も確認した. 今後 は，他の言語対でも提案モデルの有効性も確認したい.

## 謝 辞

本論文は国際会議 International Conference Recent Advances in Natural Language Processing 2019 (RANLP2019) で発表した論文 (Deguchi, Tamura, and Ninomiya 2019) に基づいて日本語

で書き直し，説明を追加したものである。

本研究成果は, 国立研究開発法人情報通信研究機構の委託研究により得られたものである。ま た，本研究の一部は JSPS 科研費 $18 \mathrm{~K} 18110$ の助成を受けたものである．ここに謝意を表する. また，本稿の英文校正を担当していただいたエナゴ (www.enago.jp) に謝意を表する.

## 参考文献

Chen, K., Wang, R., Utiyama, M., Liu, L., Tamura, A., Sumita, E., and Zhao, T. (2017). "Neural Machine Translation with Source Dependency Representation." In Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing, pp. 2846-2852.

Currey, A. and Heafield, K. (2019). "Incorporating Source Syntax into Transformer-Based Neural Machine Translation." In Proceedings of the Fourth Conference on Machine Translation (Volume 1: Research Papers), pp. 24-33.

Deguchi, H., Tamura, A., and Ninomiya, T. (2019). "Dependency-Based Self-Attention for Transformer NMT." In Proceedings of the International Conference Recent Advances in Natural Language Processing 2019 (RANLP 2019), pp. 239-246.

Dozat, T. and Manning, C. D. (2016). "Deep Biaffine Attention for Neural Dependency Parsing." arXiv preprint arXiv:1611.01734.

Dyer, C., Kuncoro, A., Ballesteros, M., and Smith, N. A. (2016). "Recurrent Neural Network Grammars." In Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pp. 199-209.

Eriguchi, A., Tsuruoka, Y., and Cho, K. (2017). "Learning to Parse and Translate Improves Neural Machine Translation." In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers), pp. 72-78.

Kingma, D. P. and Ba, J. (2014). "Adam: A Method for Stochastic Optimization." arXiv preprint arXiv:1412.6980.

Lei Ba, J., Kiros, J. R., and Hinton, G. E. (2016). "Layer Normalization." arXiv preprint arXiv:1607.06450.

Lin, D. (2004). "A Path-based Transfer Model for Machine Translation." In Proceedings of the 20th International Conference on Computational Linguistics, pp. 625-630.

Nakazawa, T., Yaguchi, M., Uchimoto, K., Utiyama, M., Sumita, E., Kurohashi, S., and Isahara, H. (2016). "ASPEC: Asian Scientific Paper Excerpt Corpus." In Proceedings of LREC 2016, pp. 2204-2208.

Neubig, G., Nakata, Y., and Mori, S. (2011). "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.

Omote, Y., Tamura, A., and Ninomiya, T. (2019). "Dependency-Based Relative Positional Encoding for Transformer NMT." In Proceedings of the International Conference Recent Advances in Natural Language Processing 2019 (RANLP 2019), pp. 854-861.

Papineni, K., Roukos, S., Ward, T., and Zhu, W.-J. (2002). "BLEU: A Method for Automatic Evaluation of Machine Translation." In Proceedings of the 40th Annual Meeting on Association for Computational Linguistics, pp. 311-318.

Sennrich, R., Haddow, B., and Birch, A. (2016). "Neural Machine Translation of Rare Words with Subword Units." In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 1715-1725, Berlin, Germany.

Strubell, E., Verga, P., Andor, D., Weiss, D., and McCallum, A. (2018). "Linguistically-Informed Self-Attention for Semantic Role Labeling." In Proceedings of EMNLP 2018, pp. 5027-5038.

Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., and Wojna, Z. (2016). "Rethinking the Inception Architecture for Computer Vision." In The IEEE Conference on CVPR, pp. 2818-2826.

Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., and Polosukhin, I. (2017). "Attention is All you Need." In Advances in Neural Information Processing Systems 30, pp. 5998-6008.

Wu, S., Zhang, D., Zhang, Z., Yang, N., Li, M., and Zhou, M. (2018). "Dependency-toDependency Neural Machine Translation." IEEE/ACM Transactions on Audio, Speech, and Language Processing, 26 (11), pp. 2132-2141.

Wu, Y., Schuster, M., Chen, Z., Le, Q. V., Norouzi, M., Macherey, W., Krikun, M., Cao, Y., Gao, Q., Macherey, K., et al. (2016). "Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation." arXiv preprint arXiv:1609.08144.

## 略歴

出口祥之：2019 年愛媛大学工学部情報工学科卒業. 2019 年より同大学院理工学研究科博士前期課程に在学.

田村晃裕：2005 年東京工業大学工学部情報工学科卒業. 2007 年同大学院総合理工学研究科修士課程修了. 2013 年同大学院総合理工学研究科博士課程修了. 日本電気株式会社, 国立研究開発法人情報通信研究機構にて研究員とし て務めた後, 2017 年より愛媛大学大学院理工学研究科助教, 2020 年より同志社大学理工学部准教授となり, 現在に至る. 博士 (工学). 言語処理学会, 情報処理学会, 人工知能学会, ACL 各会員.
二宮 崇：1996 年東京大学理学部情報科学科卒業. 1998 年同大学大学院理学系研究科修士課程修了. 2001 年同大学大学院理学系研究科博士課程修了. 同年より科学技術振興事業団研究員. 2006 年より東京大学情報基盤センター講師. 2010 年より愛媛大学大学院理工学研究科准教授, 2017 年同教授. 博士 (理学). 言語処理学会, アジア太平洋機械翻訳協会, 情報処理学会, 人工知能学会, 電子情報通信学会, 日本データベース学会, ACL 各会員.

(2019 年 12 月 30 日 受付)

(2020 年 4 月 8 日 再受付)

(2020 年 5 月 11 日 採録)


# 学会記事
## 事前学習済みマスク言語モデルを組み合わせた 符号化復号化文法誤り訂正モデル

\author{
金子 正弘 ${ }^{\dagger, \dagger \dagger}$
}

## 1 はじめに

本稿では ACL2020 に採択された "Encoder-Decoder Models Can Benefit from Pre-trained Masked Language Models in Grammatical Error Correction" (Kaneko, Mita, Kiyono, Suzuki, and Inui 2020) について解説を行う. 普段, 著者は東京都立大学小町研究室にて研究を行って いるが, この研究は 2019 年 11 月に東北大学乾・鈴木研究室に滞在した際に行った研究である.

## 2 背景

論文の解説を行う前に，まず文法誤り訂正 (Grammatical Error Correction: GEC) の動向に ついて説明を行う．GECは文法的に誤っている可能性がある文（誤文）が入力として与えられ，文法的に正しい文（正文）に訂正するタスクである。GECの技術は Grammarly1のような言語教育・学習支援サービスとして広く活用されている。国外では ACL2019 の併設ワークショップ において 24 チームが参加した共通タスグが開催され, 国内では言語処理年次大会 2020 におい て 13 件の発表が行われるなど，ここ数年 GEC は国内外で大きな盛り上がりを見せている.

近年の GEC の傾向として, 生コーパスから疑似的な文法誤りデータを作成し GEC モデル を学習する手法が主流となっている。一般的に GEC の学習に用いられているデー夕は 100 万文対ほどであり，数千万文の疑似データを作成し学習することで劇的に訂正性能を改善するこ とが可能となる．GEC における疑似データの研究は大きく分けて 2 つある。 (1) 機械翻訳の逆翻訳を基に正文から誤文を生成するモデルを学習し疑似データを生成する手法 (Xie, Genthial, Xie, Ng, and Jurafsky 2018; Kiyono, Suzuki, Mita, Mizumoto, and Inui 2019) や (2) 削除, 插入, 置換, 入れ替えやマスクなどのランダムな操作により作成する手法 (Zhao, Wang, Shen, Jia, and Liu 2019; Grundkiewicz, Junczys-Dowmunt, and Heafield 2019; Takahashi, Katsumata, and Komachi 2020) などが研究されている. 特に，疑似データを用いてモデルを事前学習すること

が有効であることがわかっている (Kiyono et al. 2019).

大規模データを活用する研究として他にも, BERT (Devlin, Chang, Lee, and Toutanova 2019) のような事前学習されたマスク言語モデル (Masked Language Model: MLM) を使う手法が 提案されている。 MLM を用いたリランキングを行う手法 (Kaneko, Hotate, Katsumata, and Komachi 2019; Chollampatt, Wang, and Ng 2019), 事前に MLM により正文をフィルタリング する手法 (Asano, Mita, Mizumoto, and Suzuki 2019)や MLM 自体を GEC モデルとして用い る研究 (Kantor, Katz, Choshen, Cohen-Karlik, Liberman, Toledo, Menczel, and Slonim 2019; Awasthi, Sarawagi, Goyal, Ghosh, and Piratla 2019)などがある.

## 3 マスク言語モデルを組み込んだ文法誤り訂正

この章から ACL2020に採択された著者の論文について解説を行う。本研究では GECにおけ る符号化復号化モデルに事前学習された MLM を組み込む研究を行った．MLM は分類や系列 ラベリングタスクなどで大幅な改善をもたらすことが示されている。 さらに，最近では MLM と符号化復号化モデルを組み合わせる研究が行われており, 機械翻訳や要約などの系列変換夕 スクで成功を収めている，GECでは符号化復号化モデルを用いることが主流であり，現在の最先端の結果のほとんどは符号化復号化モデルにより達成されている (Lichtarge, Alberti, Kumar, Shazeer, Parmar, and Tong 2019; Kiyono et al. 2019). この傾向に照らして, GEC の符号化復号化モデルは他の系列変換タスクと同様に MLM の恩恵を受けることができるのか？という 1 つの疑問が生じる。GECでは他のタスクとは異なり入力テキストに文法誤りや流暢ではない表現が含まれている。ＭLM は文法誤りや非流暢な表現を含まないテキストから学習されている ため，既存手法をそのまま適応し GECでうまくいくかは明らかではない．

MLM を符号化復号化モデルに活用する手法として, 主に初期化手法 (init)と素性手法 (fuse) の 2 つがある. init: 符号化復号化モデルの重みを事前学習された MLM の重みで初期化し, 対象タスクのデータでファインチューニングする (Lample and Conneau 2019). この手法の問題点は, GECのような系列変換タスクでは大規模なデータが学習に必要なため, 初期化された情報に対して破壊的忘却を引き起こし, 事前学習された情報を十分に活用することができない可能性があることである。そして, この手法は 2 章で述べた疑似デー夕を用いた事前学習手法と どちらも初期化する必要があるため併用できない. fuse: 誤文を入力とする MLM の出力を追加の素性として誤文と一緒に符号化復号化モデルに与える (Zhu, Xia, Wu, He, Qin, Zhou, Li, and Liu 2020). この手法は init とは違い MLM の重みを更新しないため, 事前学習された情報 が保持され破壊的忘却は発生しない。一方で, MLM は学習者が書いた文法誤りや非流暢なテ キストなどの GEC タスク固有の情報を考慮することができないことが問題である.

著者は既存手法の問題点を解決するために, 入力テキストの文法的に誤った箇所を検出する
文法誤り検出 (Grammatical Error Detection: GED) タスクによりファインチューニングされ たMLM を用いる素性手法 (fuse GED) を提案した， fuse GED：まず事前学習された MLMを GED でファインチューニングする。 そして，GED でファインチューニングされた MLM の出力を fuse 手法と同じように素性として用いる。GED は GEC のサブタスクであり文法誤りや流暢ではない表現などを学習することができる。 さらに，GEDは系列ラベリングタスクであるた め, 小規模なデータで十分に学習できるため破壊的忘却を引き起こす可能性が低い。そして,素性として用いるため疑似データで事前学習された GEC モデルと併用することが可能である.

## 4 結果

表 1 はベースライン, 既存手法と提案手法の GEC の結果を示している. MLM として BERT (Devlin et al. 2019)を用いて実験を行った。学習・開発データとして BEA データ (Bryant, Felice, Andersen, and Briscoe 2019)を用いた。評価データとして BEA-test, CoNLL-14 (Ng, Wu, Briscoe, Hadiwinoto, Susanto, and Bryant 2014) と JFLEG (Napoles, Sakaguchi, and Tetreault 2017)を用い, 評価指標としては ERRANT (Bryant, Felice, and Briscoe 2017), M² (Dahlmeier and Ng 2012)と GLEU (Napoles, Sakaguchi, Post, and Tetreault 2015)を用いた. 1 つ目のグ ループは疑似データを用いない単一モデルの結果, 2 つ目のグループは疑似データを用いた単一モデルの結果，3つ目のグループは疑似データを用いたアンサンブルの結果である.

まず，1つ目の疑似デー夕を用いないグループでは，MLMを用いるどの手法もMLM を使わ ない手法と比較して性能が大幅に改善されている。特に提案手法である BERT-fuse GED は全

表 1 各モデルの GEC の結果

太字は各グループで最も高い結果を示している。 (Kaneko et al. 2020)

てのデータセットで最も良い結果を示している。 2 つ目のグループの結果から，疑似データを用 いた場合でも MLM を用いることでさらに性能が向上することがわかる。そして，単一モデル

でBEA-test と CoNLL-14 の 2 つデータで世界最高精度を達成している. 3 つ目のグループでは アンサンブルを行うことで CoNLL-14 において提案手法が世界最高精度を達成している。これ らの結果から, GECにおいて MLM を用いることは有効であり, 特に GECのサブタスクである GED でファインチューニングすることでより効果的に MLM を活用できることを明らかにした.

## 5 おわりに

本稿では MLM を GEC の符号化復号化モデルと組み合わせる手法を提案し ACL2020に採択 された論文の解説を行った.

## 参考文献

Asano, H., Mita, M., Mizumoto, T., and Suzuki, J. (2019). "The AIP-Tohoku System at the BEA-2019 Shared Task." In BEA, pp. 176-182.

Awasthi, A., Sarawagi, S., Goyal, R., Ghosh, S., and Piratla, V. (2019). "Parallel Iterative Edit Models for Local Sequence Transduction." In EMNLP-IJCNLP, pp. 4260-4270.

Bryant, C., Felice, M., Andersen, Ø. E., and Briscoe, T. (2019). "The BEA-2019 Shared Task on Grammatical Error Correction." In $B E A$, pp. 52-75.

Bryant, C., Felice, M., and Briscoe, T. (2017). "Automatic Annotation and Evaluation of Error Types for Grammatical Error Correction." In $A C L$, pp. 793-805.

Chollampatt, S., Wang, W., and Ng, H. T. (2019). "Cross-Sentence Grammatical Error Correction." In $A C L$, pp. 435-445.

Dahlmeier, D. and Ng, H. T. (2012). "Better Evaluation for Grammatical Error Correction." In NAACL, pp. 568-572.

Devlin, J., Chang, M., Lee, K., and Toutanova, K. (2019). "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." In NAACL, pp. 4171-4186.

Grundkiewicz, R., Junczys-Dowmunt, M., and Heafield, K. (2019). "Neural Grammatical Error Correction Systems with Unsupervised Pre-training on Synthetic Data." In BEA, pp. 252-263.

Kaneko, M., Hotate, K., Katsumata, S., and Komachi, M. (2019). "TMU Transformer System Using BERT for Re-ranking at BEA 2019 Grammatical Error Correction on Restricted Track." In $B E A$, pp. 207-212.

Kaneko, M., Mita, M., Kiyono, S., Suzuki, J., and Inui, K. (2020). "Encoder-Decoder Models Can Benefit from Pre-trained Masked Language Models in Grammatical Error Correction." In $A C L$, pp. 4248-4254.

Kantor, Y., Katz, Y., Choshen, L., Cohen-Karlik, E., Liberman, N., Toledo, A., Menczel, A., and Slonim, N. (2019). "Learning to combine Grammatical Error Corrections." In BEA, pp. 139-148.

Kiyono, S., Suzuki, J., Mita, M., Mizumoto, T., and Inui, K. (2019). "An Empirical Study of Incorporating Pseudo Data into Grammatical Error Correction." In EMNLP-IJCNLP, pp. 1236-1242.

Lample, G. and Conneau, A. (2019). "Cross-lingual Language Model Pretraining." In NeurIPS, pp. 7059-7069.

Lichtarge, J., Alberti, C., Kumar, S., Shazeer, N., Parmar, N., and Tong, S. (2019). "Corpora Generation for Grammatical Error Correction." In NAACL, pp. 3291-3301.

Napoles, C., Sakaguchi, K., Post, M., and Tetreault, J. (2015). "Ground Truth for Grammatical Error Correction Metrics." In NAACL, pp. 588-593.

Napoles, C., Sakaguchi, K., and Tetreault, J. (2017). "JFLEG: A Fluency Corpus and Benchmark for Grammatical Error Correction." In EACL, pp. 229-234.

Ng, H. T., Wu, S. M., Briscoe, T., Hadiwinoto, C., Susanto, R. H., and Bryant, C. (2014). "The CoNLL-2014 Shared Task on Grammatical Error Correction." In CoNLL, pp. 1-14.

Takahashi, Y., Katsumata, S., and Komachi, M. (2020). "Grammatical Error Correction Using Pseudo Learner Corpus Considering Learner's Error Tendency." In $A C L S R W$, pp. 27-32.

Xie, Z., Genthial, G., Xie, S., Ng, A., and Jurafsky, D. (2018). "Noising and Denoising Natural Language: Diverse Backtranslation for Grammar Correction." In NAACL, pp. 619-628.

Zhao, W., Wang, L., Shen, K., Jia, R., and Liu, J. (2019). "Improving Grammatical Error Correction via Pre-Training a Copy-Augmented Architecture with Unlabeled Data." In NAACL, pp. 156-165.

Zhu, J., Xia, Y., Wu, L., He, D., Qin, T., Zhou, W., Li, H., and Liu, T. (2020). "Incorporating BERT into Neural Machine Translation." In $I C L R$.

## 略歴

金子正弘：2016 年北見工業大学工学部情報システム工学科卒業. 2018 年首都大学東京システムデザイン研究科情報通信システム学域修士課程修了。同年, 東京都立大学システムデザイン研究科情報科学域博士課程に進学, 現在 に至る。