言語処理学会 第21回年次大会 発表論文集 (2015年3月)

語順と共起を考慮したニューラル言語モデルによる英文穴埋め
Sentence Completion by Neural Language Models
using Word Order and Co-occurrences
森 洸樹

三輪 誠

佐々木 裕

Koki Mori

Makoto Miwa

Yutaka Sasaki

豊田工業大学
Toyota Technological Institute{sd11092, makoto-miwa, yutaka.sasaki}@toyota-ti.ac.jp

1

序論

デルを構築することで，正答率の向上を目指す．

英文穴埋め問題は言語モデルを評価する方法として，広く利用されている．英文穴埋め問題の代表的な2タスクとして，MSR Sentence Completion Challenge(MSR) [6] という Holmes の文章を対象にした穴埋め問題が提供されている．このタスクでは，N-gram モデ
ルよりもニューラル言語モデルを用いた inverse vectorLog-bilinear language model (ivLBL) [4] という手法が高い正答率を出している．また，TOEIC の穴埋め問題についても N-gram モデルを用いた研究が行われている [7] が，ニューラル言語モデルを用いた研究は行われていない．TOEIC の問題では，文法や熟語などの語順が影響するような問題が多く用意されている．これに対して，N-gram モデルは N-gram の頻度データを用いた手法なので，語順に関する知識が必要とする

vLBL
ニューラル言語モデルの一種である vector Log-bilinear language model (vLBL) [4] では，各単語をベクトルで表現し，文中の 1 つの単語を対象として，その単語のベクトルと文脈内の各単語のベクトルの類似度が高くなるように学習を行う．この学習により単語の共起に関する知識を得ることができる．その結果，似た文脈で現れる単語はそれぞれ似た特徴のベクトルを持ち，単語の意味的・統語的な特徴をベクトルで表現することができる．例えば「今日/は/雨/が/降る」と「明日/は/雪/が/降る」のように，「今日」と「明日」や，「雨」と「雪」など似た文脈で使われる単語は似た問題は得意とする．しかし，この手法では似た文脈で特徴のベクトルを持つことになる．対象の単語 wt の使われる「今日」と「明日」や「雨」と「雪」などの単ベクトルを wt ，wt から相対的に i 語離れた位置にあ語の表記による違いを区別してしまい，1 単語違うだ

る単語 wt+i のベクトル wt+i ，wt に対応するバイアス

けで全く違う文と判断してしまう．一方，ニューラルを b，文脈 c を wt の前後 n 単語として，vLBL におけ言語モデルの一種である vector Log-bilinear language

る c と wt の類似度を示すスコア関数を svLBL (c, wt )model (vLBL) [4] では，単語をベクトルで表現し，文を次式で表す．

脈内の単語の共起に関する学習を行う．単語をベクト

svLBL (c, wt ) = c · wt + bt

ルで表現することで表記による違いを区別せずに，似た文脈で使われる単語のベクトルには似た特徴を持

c=たせることができる．しかし，語順を無視して学習行うため，その知識を必要とする問題を解くことはできない．そこで本研究では，TOEIC の穴埋め問題をニューラル言語モデルを用いて評価する．さらに語順を考慮したニューラル言語モデルを構築し，そのモデ
ルと vLBL を足すことで語順・共起両方を考慮したモ

12n∑

wt+i(1)(2)−n≤i≤n,i̸=0(1) 式で定義したスコア関数を効率よく学習するために，文脈外の単語 wt′ を生成し，c とは相違しているとして，逆向きの学習を同時に行う．(これを NegativeSampling(NEG) [3] と呼ぶ)．学習に用いる対象の単語 wt に対する目的関数 gt を次式で表す．

― 760 ―Copyright(C) 2015 The Association for Natural Language Processing.
All Rights Reserved.

dŽŵŽƌƌŽǁ ǁĞǁƚͲϮǁƚͲϯǁŝůůǁƚͲϭƐĞŶĚǁƚƚŚĞǁƚнϭůĞƚƚĞƌǁƚнϮvLBL では，文脈内の各単語が対象の単語 wt に対して相対的にどの位置にあるかを考慮せず，文脈内で共㢮ఝ䛥䛫䜛ู䛾༢ㄒ䛸⨨䛝᥮䛘䜛dŽŵŽƌƌŽǁ ǁĞǁƚͲϯǁƚͲϮ

提案手法3ďǇǁƚнϯ΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁ǁŝůů ƌŽŽŵ ƚŚĞǁƚͲϭ ǁƚ͛;E'Ϳ ǁƚнϭůĞƚƚĞƌǁƚнϮ

起しやすい単語の類似度が高くなるように学習を行っďǇǁƚнϯている．しかし，この学習で得られる単語のベクトル΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁΀΁

は，語順に関する知識を十分に学習できていない．そこで，文脈内の各単語が wt との相対的な位置に注目┦㐪䛥䛫䜛

したモデルを構築し，さらにそのモデルと vLBL を組΀΁䠖༢ㄒ䛾䝧䜽䝖䝹

み合わせたモデルを提案する．

図 1: vLBL による学習

3.1dŽŵŽƌƌŽǁ ǁĞǁƚͲϯͲϯ ǁƚͲϮͲϮǁŝůůǁƚͲϭͲϭƐĞŶĚǁƚƉƚŚĞ ůĞƚƚĞƌďǇǁƚнϭнϭ ǁƚнϮнϮ ǁƚнϯнϯ

vLBL withcontexts

position-dependent΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁vLBL with position-dependent contexts (vLBL(c))ΎE'䜒⾜䛖

では，文脈内の各単語に wt との相対的な位置に依存i
したベクトル wt+iと wt のベクトル wt の類似度が高

図 2: vLBL(c) による学習

くなるように学習して，語順に関する知識を得る．例
えば “He must have missed the train.” という文で，gt = logσ(s(c, wt ))+k∑log(1−σ(s(c, wt′ )))(3)wt′ ∼Pn“missed”を対象として，動詞の活用を正しく判断するには，直前の “have”に注目しなければならない．しかし，vLBL では “must”と “have”を区別をせずに学ただし σ(x) はロジスティック関数，Pn は単語の頻習を行うため，2 つ前 “must”の影響を受ける．そこ度分布，k は NEG で生成する単語数，第 2 項は Pn かで vLBL(c) では直前の “must”と 2 つ前の “must”のら k 単語をサンプルすることを示す．式 (1) を式 (3)ように，その単語が wt からどの位置にあるかを区別で用いることで vLBL の目的関数を得る．得られる目して，それぞれに別々のベクトルを割り当てて学習を的関数を最大化するように各ベクトルを学習すること行う．vLBL(c) における文脈 c と wt の類似度を示す

で，対象の単語と文脈内の各単語のベクトルは類似し，スコア関数を svLBL(c) (c, wt ) を次式で表す．

文脈外の単語と文脈内の各単語のベクトルは相違する

svLBL(c) (c, wt ) = cp · wt + bようにする．vLBL による学習の様子を図 1 に示す．
目的関数 gt を最大化する方法としては，適切に学習cp =率を減衰させ，高速かつ高精度の学習を行う AdaGradを用いる．AdaGrad では，モデルのパラメータごと12n∑

iwt+i(5)(6)−n≤i≤n,i̸=0の学習率を自動的に調整する．モデルのパラメータベ

式 (5) を式 (3) で用いることで，vLBL(c) の目的関数

クトル θ における AdaGrad の更新式を次式で表す．

を得る．vLBL(c) による学習の様子を図 2 に示す．

α∇gjθj = θj−1 + √∑j2i∥
ϵ + i=1 (g∥∇gの次元数)

(4)

3.2

vLBL+vLBL(c)ただし，j は更新回数，α は初期値，∇g は g の勾vLBL(c) によって得られる単語のベクトルは語順に配，ϵ はパラメータの発散を防ぐための小さな正の値関する知識には強くなるが，共起に関する知識には弱である．なお，本来の AdaGrad とは異なり，計算コくなる．そこで，共起に関する学習を行っている vLBL

スト低減のためにパラメータベクトルごとに同じ学習と組み合わせた手法として vLBL+vLBL(c) モデルを率を用いる [4]．また定期的に学習率を初期化する [5]．

提案する．vLBL+vLBL(c) では，文脈内の各単語の[4] では，wt+i のベクトル wt+i に wt+i との相対ベクトル wt+i と，対象の単語 wt との相対的な位置

i的な位置に依存したベクトル wt+iを重みとして付加

iに依存のベクトル wt+iが，それぞれ wt へ作用する

した vLBL with position dependent context weights

ベクトルとして wt と wtp を設ける．vLBL+vLBL(c)(vLBL(D)) という手法も提案されている．

― 761 ―

Copyright(C) 2015 The Association for Natural Language Processing.
All Rights Reserved.

dŽŵŽƌƌŽǁ ǁĞǁƚͲϮǁƚͲϯǁŝůů
ǁƚͲϭ

ƐĞŶĚ
ǁƚƚŚĞǁƚнϭůĞƚƚĞƌǁƚнϮ

最低 5 回出てきている単語に絞り学習を行った．評ďǇǁƚнϯ΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁

価には Holmes の小説をもとに人手で作成された 5 択の穴埋め問題 520 問を用いた．

ΎE'䜒⾜䛖

学習時間の短縮のために，計算は並列化し，ベクǁƚͲϯͲϯǁƚͲϮͲϮǁƚͲϭͲϭǁƚƉǁƚнϭнϭ ǁƚнϮнϮ ǁƚнϯнϯ΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁ ΀΁

トルの更新は 100 回分をまとめてに行うミニバッチを用いた．学習の回数を 20 回，NEG で生成する単語数 k を 5 個，文脈の領域 n を対象の単語の前後 5

ΎE'䜒⾜䛖単語とした．また，NEG で生成する単語は全単語リスト Pn から抽出するが，抽出する際よく出現する

図 3: vLBL+vLBL(c) による学習

単語 (a, the など) が必然的に選ばれやすくなるため，における文脈 c と wt の類似度を示すスコア関数をすべての単語の出現頻度を 3/4 乗してから，抽出すsvLBL+vLBL(c) (c, wt ) を次式で表す．

る単語を選ぶようにしている [3]．

svLBL+vLBL(c) (c, wt ) = c · wt + cp · wtp + b (7)式 (7) を式 (3) で用いることで，vLBL+vLBL(c) の目的関数を得る．vLBL+vLBL(c) による学習の様子

5

結果と考察

5.1

TOEIC を用いた評価実験を図 3 に示す．

ベクトルの次元数を 100 として，開発データで評価した結果を表 1 に示す．表 1 より，提案手法の 2

4

実験設定

つのモデルが vLBL よりも高い正答率を出している．
単語のベクトルと位置に依存したベクトルをそれぞ

2 つ の 評 価 デ ー タ を 用 い て vLBL，vLBL(c)，れ独立させて学習することで，語順に関する知識をvLBL+vLBL(c) を評価した．vLBL(D) は事前実験により，良い結果が得られなかったため，本実験では正しく学習できていることが分かる．また，vLBL と評価の対象から外した．
一つ目の評価データは，解くのに文法や熟語など

vLBL+vLBL(c)，vLBL(c) と vLBL+vLBL(c) をそれぞれ比較すると，vLBL+vLBL(c) の正答率が高くなっている．このことから，vLBL より得た共起に関するの語順が影響するような問題が多く用意されている

知識と vLBL(c) より得た語順に関する知識がいずれTOEIC の穴埋め問題である．学習データとして，
Wikipedia のデータ (1,735,020,309 語) を全て小文も重要であることが分かる．また，用いた学習データ字化して用いた．ただしこのデータで学習するにはが正答率は高くなっている．学習に用いるデータの大長い時間が掛かるため，開発用にこの一部のデータきさは重要であることが分かる．

を比較すると，Wikipedia の全てのデータを扱った方(4,316,154 語) も用意した．また，数回しか出現して次に提案手法の 2 つのモデルを用いて，ベクトルいない単語については十分な学習が行えないため，学の次元数を 1,000，学習データを Wikipedia の全ての習時間を短縮するために，Wikipedia の全てのデーデータとして学習を行い，開発データとテストデータ

タでは最低 50 回，Wikipedia の一部のデータでは最で評価した結果を表 2 に示す．比較対象として，N-低 5 回出てきている単語に絞って学習を行った．評

gram モデルを用いた [7] のシステムの正答率を示す．

価データには，Webanhvan [1] から取得した TOEIC[7] のシステムでは，空欄の前後 4 単語と各選択肢をの練習問題を用いた．問題は 4 択の英文穴埋め問題となっており，全 1228 問を開発データ 613 問，テス
表 1: データサイズごとの開発データ上での正答率

トデータ 615 問に分けて用いた．
二つ目の評価データは，言語モデルの評価によ

モデル次元数く 用 い ら れ て い る ，MSR Sentence Completion

Challenge(MSR) [6] を用いた手法である．MSR は
Holmes の小説をもとに作成した穴埋め問題である．

正答率 (%)
一部

全て学習データとして，プロジェクト・グーテンベルクに

vLBL
vLBL(c)

100
100

40.7
45.1

51.2
64.4

より公開されている 19 世紀の小説 522 冊を対象とし

vLBL+vLBL(c)

100

46.3

68.1ている (1,775,155 語)．なお，このデータについても― 762 ―

Copyright(C) 2015 The Association for Natural Language Processing.
All Rights Reserved.

合わせたキーワードを，Google n-gram で検索し，頻6

結論度が大きいものを解答としている．表 2 より， [7] のシステムも高い正答率を出すことができた．N-gram

穴埋め問題の正答率向上を目的に，語順・共起両方をモデルでは表現できていない，共起に関する知識を正考慮したニューラル言語モデルを構築した．結果としてしく表現できていることが分かる．

vLBL+vLBL(c) は，MSR で最も高い正答率を出している ivLBL と同等の正答率を出し，TOEIC で 77.7%と高い正答率を出すことができた．また，これらの結果

5.2

MSR を用いた評価実験

より，語順・共起両方を考慮している vLBL+vLBL(c)ベクトルの次元数を 100 と 600 に設定して実験を行った結果を表 3 に示す．比較対象として，Good-Turingsmoothing を用いている N-gram モデル [6]，対象の単語から周りの単語を予測する vLBL とは逆のモデルである inverse vector Log-bilinear language model(ivLBL) [4]，Skip-Gram モデル [2] (文脈の領域 n を対象の単語の前後 10 単語とした結果) の結果も示す．表3 より vLBL(c) と N-gram モデルの結果は低くなっていることから，MSR の問題は語順に関する知識では，良い結果が出ないといえる．しかし，vLBL+vLBL(c)は，単語の特徴を十分に表現できていると考えられる．
今後は品詞の情報や，文全体の情報を組み込んで，さらに精確に単語の特徴を表現する予定である．

参考文献[1] Webanhvan, http://www.webanhvan.com.
[2] Tomas Mikolov, Kai Chen, Greg Corrado, andJeﬀrey Dean. Eﬃcient estimation of word representations in vector space. In ICLR2013. 2013.

では vLBL とくらべて，ほぼ同じ正答率を出すことができたので，vLBL より得た共起に関する知識を十分[3] Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Sに利用できているといえる．

Corrado, and Jeﬀ Dean. Distributed representations of words and phrases and their compositionality. In NIPS 26, pp. 3111–3119. 2013.

表 2: 評価データごとの正答率モデル次元数

正答率 (%)
開発

N-gram モデル [7]—73.1vLBL(c)vLBL+vLBL(c)

1000
1000

74.7
75.2

テスト

[4] Andriy Mnih and Koray Kavukcuoglu. Learning word embeddings eﬃciently with noisecontrastive estimation. In NIPS 26, pp. 2265–2273. 2013.

76.6
77.7

[5] Richard Socher, Andrej Karpathy, V. Quoc Le,
D. Christopher Manning, and Y. Andrew Ng.
Grounded compositional semantics for finding
and describing images with sentences. TACL,Vol. 2, pp. 207–218, 2014.

表 3: MSR における正答率
次元数

正答率 (%)vLBLvLBL(c)10010049.4
43.0

vLBL+vLBL(c)10050.6vLBL

60053.8vLBL(c)vLBL+vLBL(c)60060051.3
54.0

N-gram モデル [6]ivLBL [4]ivLBL [4]—100600

3951.055.5

Skip-Gram [2]

640

48.0

[6] Geoﬀrey Zweig and Christopher J.C. Burges. The
microsoft research sentence completion challenge.
Technical Report MSR-TR-2011-129, December
2011.
[7] 白石裕次郎, 佐々木裕. 英語穴埋め問題の自動解法.
In NLP2014, pp. 101–104. 2014.

― 763 ―

Copyright(C) 2015 The Association for Natural Language Processing.
All Rights Reserved.