Matter Mind Meaning

思ったことを忘れてしまわないように書き留める

論文紹介:Natural Language Processing from (almost) Scratch.

概要

フィードフォワードニューラルネットワークを用いて品詞タグ付け、チャンキング、固有表現抽出、意味役割付与のタスクに取り組む。意味役割付与以外は同じモデルを用いる。入力素性を作るための工学的負担は最小限にする。ラベル付けされていないデータを用いた言語モデル学習を事前に行うことにより性能が上がる。さらにタスク間でパラメタを共有してマルチタスク学習を行うことにより性能がいっそう上がる。

 

背景

はじめに各タスクを説明する。品詞タグ付けでは各単語に名詞、形容詞、動詞などといった統語的役割を付与する。

 

チャンキングは単語を統語的により大きな単位(チャンク)にまとめることである。例えば名詞句や動詞句を作る。各単語はチャンクの始まりであるかチャンクの中にあるか(あるいは、チャンクの終わりであるかなど。タグの体系にはIOB1、IOB2など色々と提案されている)でタグ付けされる。

 

固有表現抽出では文中の表現にPERSON, COMPANY, LOCATIONなどのカテゴリを割り当てる。チャンキングと同じように各単語はカテゴリの始まりであるか終わりであるかなどがタグ付けされる。

 

意味役割付与は文中の統語的単位に意味役割を付与することを目標とする。意味役割は述語に対する項の論理的関係である。Agent, experiencer, theme, goal, sourceなどが考えられる。他にも場所や時間などを述語の項として考える場合もある。単語の意味役割は述語に対して定められるため、ひとつの単語が複数の述語に対して別々の意味役割を持つこともあり得る。述語が与えられた時の各単語の意味役割タグを付与することがタスクの目標である。

 

これらのタスクは自然言語理解という大きな目的を取り組みやすいように分割したものであると考えることが出来る。実世界での応用の際には、それぞれのタスクに特化したモデルを統合しなければならない。ところが、各モデルは特定のタスクに最適化しすぎているため、それらをうまく組み合わせることは必ずしも容易ではない。実際、入力素性がオーバーエンジニアリングされていると、入力文に対してそれぞれのモデルに入力する素性を別々に計算することが大きな負担になる。

 

提案されている手法では同じ入力素性を用いる同じニューラルネットワーク複数のタスクを解かせる。これによりタスクを統合することが圧倒的に簡単になるだけでなく、あるタスクの教師データが提供する情報を別のタスクを解くときに役立てることが出来るようになる。

 

手法

単語ごとに離散的な素性が入力される。最も基本的な素性はその単語の辞書におけるインデックスである。もちろんインデックスは単語の情報をほとんど含まない。そこで紹介論文では単語インデックスに対応する密な実数ベクトルをルックアップテーブルに保存しておき、インデックスはルックアップテーブルのベクトルに変換されてからフィードフォワードニューラルネットワークに入力される。このような実数ベクトルは単語が持つ情報の分布的表現と呼ばれる。分布的表現は乱数を初期値とし、誤差逆伝播による学習で値が変化する。

 

インデックスの他にも単語の持つ情報を表す離散的な素性が考えられる。それらの素性に対しても分布的表現を割り当てて学習させることが出来る。一般にK種類の離散的素性があった場合、K個の実数ベクトルが求められる。これらは連結されて一つのベクトルとなる。これが単語の情報を総合的に表す分布的表現となる。

 

入力は複数の単語からなる。各単語の分布的表現が並び順に連結してベクトルを作る。このベクトルがニューラルネットワークの入力層である。ネットワークは入力された単語列の中心にある単語のタグを予測する。例えば、品詞タグ付けを行うことを考える。このとき、入力と期待される出力の例を以下に示す。

 

入力: cat sat on the mat

出力:preposition

 

すなわち、単語列の中心には単語 on があるので、品詞タグは preposition となる。すでに説明したように、実際にはニューラルネットワークに入力されるのは単語列を表す実数ベクトルである。また、出力層は品詞タグの集合上の確率分布を表すベクトルとなる。

 

入力層から出力層を求めるまでの計算方法は次の通り。入力層ははじめに行列を掛け合わせられたあと、非線形関数により変換され、中間層のベクトルとなる。中間層に行列を掛け合わせたベクトルを正規化すると出力層のベクトルとなる。出力層は尤度により評価される。このとき、他の単語に対する出力値も考慮に入れる。従って、目標関数は交差エントロピー誤差関数よりも手の込んだものになっている。これについて詳細は省くが、条件付き確率場の最尤推定と同等と考えて良い。

 

品詞タグ付け、チャンキング、固有表現抽出はすべて同じ入力素性、同じモデルを用いて取り組むことが出来る。それぞれのタスクで別々に(つまりパラメタの共有を行わずに)学習を行った結果を以下に示す。意味役割付与については、ネットワークの構造が若干異なる(ただし、分布的表現などのパラメタの形は共通している)ため説明の簡単のため、本記事では省略する。

 

品詞タグ付け(精度):ベンチマーク 97.24 提案手法(基本)96.37

チャンキング(F1):ベンチマーク 94.29 提案手法(基本)90.33

固有表現抽出(F1):ベンチマーク 89.31 提案手法(基本)81.47

 

提案手法はベンチマークより性能が劣っていることがわかる。紹介論文の面白い所は、ここから教師無し言語モデル学習とパラメタ共有によるマルチタスク学習を導入することで性能を上げていき、ベンチマークに匹敵する結果を得ていることである。

 

まず、言語モデル学習を事前に行うことで性能が上がることを述べる。言語モデル学習を使うことのモチベーションを直感的に理解するために、上述の教師ありだけの学習手法(意味役割付与)で獲得された最終的な単語の分散表現をみてみよう。以下にいくつかの単語に対して分布表現が距離的に最も近い5単語を示す。

 

・FRANCE: PERSUADE, FAW, BLACKSTOCK, GIORGI, SHAHEED

・JESUS: THICKETS, SAVARY, SYMPATHETIC, JFK, KHWARAZM

XBOX: DECADENT, DIVO, VERUS, OXIDE, URBINA

 

分布的表現が近い単語は意味的には似ていないことがわかる。これは意味が似ている単語はタスクに対して似たように振る舞うべきだという通念に反する。翻って、意味が似ている単語同士の分布的表現が近くなるように学習を行うことで、モデルの汎化能力が高まることが期待される。そこで、言語モデル学習を行ってみようというわけである。

 

言語モデル学習の目的関数は一般的な交差エントロピー関数では無く、マージン損失関数である。マージン損失関数は入力として与えられた単語列のランクが、その単語列の中心の単語を他の任意の単語で置き換えたときのランクよりもあるマージン以上で大きくなるようことを奨励する。これは人間の振る舞いにより近いモデルといえる。何故なら、人間もある単語がその文脈で出現する確率を一々計算しているわけではなく、出現しやすい上位の単語に対して見積もりを立てているだけだからである。

 

 言語モデル学習が終わった時点でのパラメタを各教師あり学習のパラメタの初期値とする。このような芸当が出来るのは、あらゆるタスクに同じモデルを用いているからである。論文では、言語モデルの学習コーパスの規模として小さいもの(LM1)と大きいもの(LM2)を用意し比較している。言語モデル学習後に各教師有り学習を行ったときの評価結果を以下に示す。

 

品詞タグ付け(精度):ベンチマーク 97.24 提案手法(基本+LM1)97.05 提案手法(基本+LM2)97.10

チャンキング(F1):ベンチマーク 94.29 提案手法(基本+LM1)91.91 提案手法(基本+LM2)93.65

固有表現抽出(F1):ベンチマーク 89.31 提案手法(基本+LM1)85.68 提案手法(基本+LM2)87.58

言語モデル学習により性能が向上していることが認められる。しかも、コーパスの規模を大きくした方が性能の向上が大きい。これは言語モデルが様々なタスクに役に立つ単語の本質的な情報を表現しているためであると考えられる。

単語の本質的な情報とは正に単語の「意味」であるといえる。これを裏付けるように、言語モデル学習により獲得された分布的表現は意味が似ているほど近いものになっている。例えばFRANCEという単語と最も近い5単語はそれぞれAUSTRIA, BELGIUM, GERMANY, ITALY, GREECEである。

 

さらに性能を上げる方法として登場するのがマルチタスク学習である。これはそれぞれのモデル間でパラメタを共有して学習を行うことである。そうすることで各モデルは他のモデルが発見した統計的情報を「借りて」、自分のタスクを解くのに役に立てることが出来ると期待される。提案されているネットワークでこれを行うことは極めて自然である。くどいようだが、こんなことが可能なのは全く同じモデルで複数のタスクに取り組めるような汎用的な設計がなされているからに他ならない。結果を以下に示す。

 

品詞タグ付け(精度):ベンチマーク 97.24 提案手法(基本+LM2+マルチタスク)97.22

チャンキング(F1):ベンチマーク 94.29 提案手法(基本+LM2+マルチタスク)94.10

固有表現抽出(F1):ベンチマーク 89.31 提案手法(基本+LM2+マルチタスク)88.62


マルチタスク学習を行うことで、ベンチマークに匹敵する性能が得られることがわかる。ベンチマークは人手で徹底的にエンジニアリングされた入力素性を用いていることに注意する。これに対して提案モデルでは、単純な情報のみを事前に与えてあとはモデルが自動的に表現を学習するようにしている。

 

ちなみに、入力素性にエンジニアリングを加えることでベンチマークの性能を上回ることを論文では示している。

 

参考文献

 R. Collobert, J. Weston, L. Bottou, M. Karlen, K. Kavukcuoglu and P. Kuksa. Natural Language Processing (Almost) from Scratch. Journal of Machine Learning Research, 12:2493- 2537, 2011.