通時的な領域適応を行った単語分散表現を利用した古文から現代文へのニューラル機械翻訳
高久雅史 1

平澤寅庄 2
1

茨城大学

小町守 2
2

古宮嘉那子 1

首都大学東京16t4027n@vc.ibaraki.ac.jp, hirasawa-tosho@ed.tmu.ac.jp,
komachi@tmu.ac.jp, kanako.komiya.nlp@vc.ibaraki.ac.jp

1

はじめに化する手法を提案する。提案手法と比較するため、古文の単言語コーパス全部をまとめて、一度のみ ﬁne-

本稿ではニューラル機械翻訳 (NMT) を用いて古文tuning した単語分散表現を使用したモデルでも実験をから現代文への翻訳を行う。近年では深層学習と機械行った。実験の結果から提案手法が Baseline の BLEU翻訳を合わせた NMT が盛んに研究されている。しを上回ったが、近代以降では徐々にスコアの低下がみかし、古文についての NMT 研究は行われていない。

られた。一方で、通時適応を行った翻訳モデルでは、NMT は流暢な出力を出すことが知られていることか特定の時代にしか現れない語彙を訳出することができ、ら、現代文への翻訳の流暢さが上がることが期待され翻訳品質の改善が見られた。

る。しかし、一般に NMT は大規模パラレルコーパスを用いてモデル全体を学習させることで実現されるため、小規模パラレルコーパスでの学習では高い翻訳精度のモデルを得ることは難しい [2] と言われている。古文現代文のパラレルコーパスも同様に小規模であり、NMT には適さないと考えられる。
一方、十分な規模のパラレルコーパスがない言語対においては、翻訳モデルの性能を向上させるために、大規模単言語コーパスで事前学習された単語分散表現を使用してモデルを初期化する手法がある [5]。古文においても、同様の手法で翻訳モデルの改善が見込める。
良質な単語分散表現を獲得するためには、規模の大きい学習用コーパスで訓練することが望ましい。そのため、古文に比べより大規模なコーパスから学習された現代語の単語分散表現を利用したい。しかしその一方で、現代文の単語分散表現を翻訳モデルの古文単語の単語埋め込みにそのまま使用すると、ドメインが異なっているため、翻訳性能が落ちることが予想される。
もう一つの問題として、古文現代文のパラレルコーパ

2関連研究
星野ら [7] は古文と現代文の段落単位パラレルコーパスから、文分割のためのルールベースのスコア関数を用いて、文単位のパラレルコーパスを得る手法を提案した。それによって得られたパラレルコーパスでの統計的機械翻訳 (SMT) を行い、提案手法による文分割の有効性を示した。古文から現代文への SMT は星野らによって行われたが NMT での研究はされていないため、本研究は初の試みと言える。
言語処理において単語分散表現を用いた研究は盛んに行われている。ニューラル言語処理タスクでも単語分散表現は利用されるが、NMT タスクにおいてはあまり利用されない。これは大規模パラレルコーパスで訓練を行う場合、翻訳モデル自身が適切な単語分散表現を学習するためである。しかし、小規模パラレルコーパスにおける翻訳では、単語分散表現でモデルを初期スは、異なる時代の作品データを含む通時コーパスで化することで性能の改善が見込める。Qi ら [5] は小規あるため、時代によって単語の意味や形（表層形）が模なパラレルコーパスしか持たない言語対で NMT モ変化するという言語変化の問題がある。
そこで本研究では、現代文の単言語コーパスで学習された単語分散表現に対し、古文の単言語コーパスを使用して時代順に領域適応した後、翻訳モデルを初期

デルを訓練する際に、事前学習済みの単語分散表現を適用することで、翻訳精度が向上することを示した。
単語分散表現の ﬁne-tuning については、柳沼ら [8]の研究が挙げられる。柳沼らは事前学習済みの大規模な単語分散表現とターゲットコーパスとの領域シフト

の問題に対して、ターゲットコーパスが小規模であるプンソースのニューラル機械翻訳ツールである Open-場合に ﬁne-tuning を行うことで、単語分散表現の質NMT2 を利用した。ネットワーク構成は、中間層にはが向上することを語義曖昧性解消タスクにおいて示

2 層の単方向 LSTM を、Attention 層には Global At-した。

tention [3] を利用する。Encoder-Decoder ともに、単また、単語分散表現の通時適応については、Kim

語ベクトルサイズを 200、中間層の次元数を 512 とら [1] が通時コーパスを用いて単語分散表現を年ごとした。最適化アルゴリズムには Adam を使用し、学にさかのぼる形で学習させる手法を行った。学習によっ習率は 0.001 にした。学習の際にはモデルが扱う語彙て得られた単語分散表現は、通時コーパスにおける言を 20,000 に絞り、それ以外の未知語については<unk>語変化の検出を可能とした。Kim らの研究から、通時トークンとして処理した。

適応させた単語分散表現は、時代による単語の意味変化を捉えることが可能であると考えられる。

単語分散表現の初期化は、翻訳モデルの単語埋め込み層の重みの初期値として利用することで実現できる。
提案手法では、古文コーパスで通時適応させた事前学

古文コーパスを用いた

3

単語分散表現の通時的な領域適応

習済みの単語分散表現を、翻訳モデル Encoder の単語埋め込み層の重みの初期値に利用した。一方で翻訳モ
デル Decoder には、事前学習済みの単語分散表現を前処理せずにそのまま初期値として利用した。

本研究では、翻訳モデルの初期化に用いる単語分散表現を、現代文コーパスからスタートして古文単言語コーパスで新しい時代から古い時代にかけて時代順にﬁne-tuning する手法を提案する。時代を徐々に戻すのは、適応元の単語分散表現と適応先の単語分散表現との意味のずれが小さくなるようするためである。
単語分散表現の ﬁne-tuning には、柳沼ら [8] の手法を用いる。事前学習された単語分散表現の時代順 ﬁne-tuning には、近代（江戸以降）・室町・鎌倉・平安のモデルの評価には BLEU [4] を用いた。手法ごとに異なるシード値を与え、50,000 step の学習を行う。

5,000 step ごとに開発データでの検証を行い、BLEUの値が最高となるモデルでテストした。異なるシードでの学習を 3 回行い、BLEU の平均スコアをモデル全体のスコアとした。
提案手法と比較するため、古文単言語コーパスをまとめて一度のみ ﬁne-tuning を行った際の単語分散表現を利用するモデルでも実験を行った。

4 つの時代に分けた古文コーパスを利用する。単語分散表現の通時適応の流れは以下のようになる。

(1) 事前学習済み単語分散表現を4.2

データセット

近代のコーパスで ﬁne-tuning する

翻訳では、星野ら [7] が抽出したパラレルコーパスを(2) (1) を室町のコーパスで ﬁne-tuning する利用した。このコーパスは、近代、鎌倉、平安の 3 時代

(3) (2) を鎌倉のコーパスで ﬁne-tuning するの作品データで構成される通時コーパスであり、時代(4) (3) を平安のコーパスで ﬁne-tuning するの内訳は（近代:鎌倉:平安） = （4,577:30,075:52,032）

この手続きで得られた (1)、(3)、(4)1 の単語分散表現を翻訳モデルの単語埋め込み層の初期化に利用する。
また、単語埋め込み層のパラメータは固定せず、翻訳モデルの学習によって更新が行われる。

文対である。元の 86,684 文対のパラレルコーパス（表1）の分割割合は、先行研究のテストサイズに合わせて (学習:開発:テスト)=(82,591:2,093:2,093) の分割をした。分割の偏りをなくすため、時代の割合に合わせてランダムサンプリングで実験データセットを作成した。テストセットの用例数は表 2 となった。コーパス

4

実験

4.1

モデルの単語分割には MeCab v0.9963 を使用し、古文側には中古和文 UniDic v1.34 、現代文側には UniDic v2.3.04

実験では LSTM をベースとした Attention 付き

Encoder-Decoder モデルを使用した。実装にはオー
1 翻訳に用いた対訳データが近代、鎌倉、平安の 3 時代の作品データで構成されていたためを辞書として利用した。学習時のモデルへの入力・出力文の長さは 1 文あたり 100 語に制限した。
2 https://github.com/OpenNMT/OpenNMT
3 https://taku910.github.io/mecab/
4 https://unidic.ninjal.ac.jp/

総文数
古文
現代文

語彙サイズ

トークン数

49,2002,774,745

45,6903,611,783

86,684

表 1: 古文現代文パラレルコーパス
時代

用例数

近代テストセット

123 文

鎌倉テストセット739 文

平安テストセット

1231 文

総文数

語彙サイズ

トークン数

近代

22,48525,584544,293

室町

12,64014,931

386,101鎌倉

35,02029,062

933,190

平安

59,74429,5201,543,102

計

129,889

55,332

3,406,686

表 3: 古文単言語コーパス
実験の結果から、提案手法では Baseline より BLEUが改善されたが、時代を遡るごとに BLEU の低下が

表 2: テストセットの時代別の用例数みられた。また、(1)、(3)、(4) で得られた 3 つのモデルにでのアンサンブル翻訳6 と、全古文コーパスでﬁne-tuning に用いるコーパスには、国語研究所よりﬁne-tuning された単語分散表現を利用したモデルで精提供を受けた小学館新編日本古典文学全集より抽出し度の高かった上位 3 つを利用したアンサンブル翻訳もた古文単言語コーパス約 13 万文（表 3）を用いる。古行った。提案手法のアンサンブル翻訳では Baseline か

文コーパスの時代分けは、JapanKnowledge の新編日ら 2 ポイント以上 BLEU の改善がみられた。

本古典文学全集タイトル一覧5 を参照した。

次に時代別での結果を見る。表 4 の時代別の BLEU
は、近代テストセットでは (1) 近代の単語分散表現を4.3単語分散表現利用した際が最もよかった。鎌倉テストセットは (4)近代→室町→鎌倉→平安の単語分散表現を利用したと事前学習済みの単語分散表現には、大規模コーパス

きが最もよく、(3) 近代→室町→鎌倉を上回った。平NWJC（国語研日本語ウェブコーパス）で学習され安テストセットは (1) 近代の分散表現を利用したときた、新納ら [6] の nwjc2vec をベースとして利用した。

が最もよく、次に (3) 近代→室町→鎌倉の単語分散表

約 258 億語からなるコーパスの NWJC で学習されて現を利用したときで、(4) 近代→室町→鎌倉→平安のおり、形態素解析の辞書には UniDic が利用されてい単語分散表現を利用したときが最も悪かった。

る。nwjc2vec の ﬁne-tuning には柳沼らの手法を、イテレーション 5、単語ベクトルサイズ 200、window サ
イズ 5 の設定で用いた。

6

考察
提案手法モデルでの BLEU の大幅な向上は見られな

5

実験結果

かったが、翻訳結果にはいくつかの改善が見られた。
時代順の通時適応による効果としては、主に表 5 の表 4 にテストデータ全体でのモデル別の BLEU と、ような語彙の訳出改善である。例えば例 (1) では “や提案手法における時代別テストデータでの BLEU をまとうた” という “和歌” と訳せる単語を江戸までの示す。まずモデル別の結果を見る。“Baseline” は事前通時適応では訳出できなかったが、それより前の時代学習された単語分散表現を使わず、古文・現代文パラでは訳出が行えたことから、nwjc2vec が領域適応でレルコーパスのみで学習した NMT の性能である。まきたと考えられる。また領域適応を行った２つのアンた、“SMT” [7] は星野らが提案した古文現代文 SMTサンブル結果について、調査を行った所、提案手法での結果の引用である。また、“nwjc2vec” は ﬁne-tuningの翻訳結果では 4,548 異なり語、全古文コーパスでのを用いない nwjc2vec を初期化に利用した結果を指す。

ﬁne-tuning では 4,543 異なり語の訳出が行われた。提案手法の方が僅かではあるが、多くの語彙を訳出して5 https://japanknowledge.com/contents/koten/title.
html

6 複数のモデルで同時に予測を行った結果を組み合わせて、確率的に出力を決定する方法

手法

SMT [7]

28.02

Baseline

19.22

nwjc2vec

19.16

全古文コーパス19.24+アンサンブル

20.94(1) 近代19.43(3) 近代→室町→鎌倉

19.33(4) 近代→室町→鎌倉→平安

19.29+アンサンブル

21.59

時代別モデル

それほど違いはない」という結果であると言える。

BLEU

7

おわりに
本研究では、古文現代文による初の NMT の試みと、単語分散表現の利用時に段階的な ﬁne-tuning をした単語分散表現の初期化手法について提案した。実験の結果、通時適応した単語分散表現の利用によって、時代固有の語の訳出を可能としたり、他のモデルよりも多くの語彙を訳出できたことが確認された。一方でBLEU 自体は大きな向上は見られず、提案手法によっBLEUて次第に下がる結果となった。今後の研究としては、

近代

鎌倉

平安

翻訳対象の時代に合わせた通時適応の効果の調査が必(1) 近代

5.24

25.16

19.53

要である。特に、ある時代までで ﬁne-tuning した単(3) 近代→室町→鎌倉

4.09

25.65

19.43

語分散表現をその時代のパラレルコーパスの翻訳に利(4) 近代→室町→鎌倉→平安

3.59

25.76

19.40

用して、どれくらいモデルが改善されるかを明らかにする必要がある。また、nwjc2vec ではない単語分散表

テストデータ全体での BLEU：表上部、
表 4: 時代別テストデータでの BLEU：表下部いると言える。実際の例としては、(2) の例文で確認できた。“騒がしき” という語彙を全古文コーパスで現をベースとしたり、時代順の通時適応ではなく、時代別の通時適応などの手法についても調べる。

謝辞の ﬁne-tuning では誤訳しているが、通時適応での結本研究の一部は国立国語研究所の共同研究プロジェ

果では “騒がしい” と正しく訳出できたため、通時適

クト「通時コーパスの構築と日本語史研究の新展開」

応による効果が見られたと考えられる。
次に、時代別のテストコーパスでの結果から、時代順の通時適応の効果について考える。表 4 の結果より、の研究成果を報告したものです。また、富士通研究所の横野光様には、先行研究のデータをいただきました。
御礼申し上げます。

「テストセットと同時代までさかのぼって ﬁne-tuningした単語分散表現で初期化して学習した翻訳モデルがいつも優れている」という仮説は正しくないことが分かった。今回利用した柳沼らの ﬁne-tuning の手法は、新しく追加学習に利用したコーパスにこれまでに学習していたコーパス中になかった単語が閾値以上現れた
場合、新たな語彙として単語分散表現を作成しているため、時代をさかのぼればさかのぼるほど、分散表現のエントリ数は増える仕様となっている。そのため、時代をさかのぼるほど、未知語が減るはずであるが、近代テストセットと平安テストセットに関しては、未知語が最も多いはずの (1) 近代の単語分散表現を利用した際が最もよい結果となっている。ただし、1 位と3 位の BLEU の差は近代テストセットにおいて 1.65であり、鎌倉テストセットにおいて 0.6 であるのに対し、平安テストセットについては 0.13 であるため、平安テストセットにおいては、「どのモデルを使っても参考文献[1] Yoon Kim, Yi-I Chiu, Kentaro Hanaki, Darshan Hegde,
and Slav Petrov. Temporal analysis of language throughneural language models. In ACL, 2014.
[2] Philipp Koehn and Rebecca Knowles. Six challenges forneural machine translation. In ACL, 2017.
[3] Thang Luong, Hieu Pham, and Christopher D. Manning.
Eﬀective approaches to attention-based neural machinetranslation. In EMNLP, 2015.
[4] Kishore Papineni, Salim Roukos, Todd Ward, and WeiJing Zhu. BLEU: a method for automatic evaluation ofmachine translation. In ACL, 2002.
[5] Ye Qi, Devendra Sachan, Matthieu Felix, Sarguna Padmanabhan, and Graham Neubig. When and why are pretrained word embeddings useful for neural machine translation? In NAACL-HLT, 2018.
[6] 新納浩幸, 浅原正幸, 古宮嘉那子, 佐々木稔. nwjc2vec: 国語研
日本語ウェブコーパスから構築した単語の分散表現データ. 自然言語処理, Vol. 24, No. 5, 2017.

(a) 鎌倉のコーパスまでの通時適応で翻訳が改善された例
入力文:

やまとうた の 道 、 浅き に 似 て 深く 、参照文:

和歌 の 道 は 、 浅い よう で い て じつ は 深く 、Baseline:
近代:
近代→室町→鎌倉:<unk> の 道 は 、 浅い の に 似 て 深く 、
<unk> の 道 、 浅い の と 同様 に 、深く て 、
和歌 の 道 は 、 浅い 時代 に 似 て 深く 、(b) 提案手法のアンサンブル翻訳で翻訳が改善された例
入力文:

大饗 に 劣ら ず 、 あまり 騒がしき まで なん 集ひ たまひ ける 。

参照文:

大 饗 の とき に 劣ら ない ほど 、 あまり に 騒がしい まで 大勢 お 集まり に なる の だっ た 。

Baseline:
全古文:
通時適応:

大 饗 に も 劣ら ず 、 あまり に も あわただしい くらい に お 集まり に なっ た 。
大 饗 に 負け ず 、 あんまり 暑い まで 集まっ て お いで に なっ た 。
大 饗 に 劣ら ず 、 あまり に 騒がしい まで 集まっ て お いで に なっ た 。

表 5: 翻訳のサンプル[7] 星野翔, 宮尾祐介, 大橋駿介, 相澤彰子, 横野光. 対照コーパスを用いた古文の現代語機械翻訳. 言語処理学会第 20 回年次大会, 2014.
[8] 柳沼大輝, 古宮嘉那子, 新納浩幸ほか. 分散表現のファインチュー
ニングによる語義曖昧性解消の領域適応. 研究報告自然言語処
理 (NL), Vol. 2018, No. 1, pp. 1–5, 2018.