Stanford NLP with Deep Learning Lecture4 & 5のまとめ
1.はじめに
今回もStanford大学の公開講義を試聴したものを自分なりにまとめていきたいと思います。
今回はLecture4が個人的に一つの記事にするよりLecture5と一緒にまとめた方がいいと思ったのでLecture4, Lecture5を試聴したまとめの記事となっています。
自然言語処理はほんと奥が深くて面白い分いかに、GPT4をはじめとする各種LLMが強力なのか身に沁みますね。自分も早くNLPの知識をつけて実践に活かしたいものです。
2.言語の構成について
まずはLecture4の冒頭部分の文章における言語の構成についてまとめていきます。
言語の構成においては大枠で見ると以下の2通りの見解があります。
- Phrase structure grammer(句構造文法)
: 文章をフレーズに分けて各単語の依存関係をもとにより適切なフレーズを構成し、文が形成されるという考え方 - context-free grammer(文脈自由文法)
: 文脈に関係なく非終端記号と終端記号を用いて文章の構成を捉えることができるという考え方
今回の講義では主にPhrase structure grammerについて述べていました。
まずはフレーズの構造について述べていきます。
フレーズは段階を踏んで形成されていきます。その過程を下図で示します。
図1) フレーズが作られる過程
3.古典的な係り受け解析
図1で見て分かる通り、文章において書く単語は何かしらの依存関係(係り受け)を持っています。
図2) tree bankの例([1]より引用)
図2はその依存関係をtree bankと呼ばれる木構造で著した一例です。この手法は1980~1990年代あたりで主流でした。この手法には以下のようなデメリット,メリットがあります。
- [デメリット]
- 作成に時間がかかる
- 人の手で文法を記述することと比較して精度が落ちる
- [メリット]
- 再利用生の高さ
- 直観的できはなく、広義的に文を捉えることができる
- 頻度であったり、分布といいたような形で情報を得ることができる
- NLPシステムにおける評価に用いることができる
特にメリットのうち「評価に用いることができる」は1980~90年においてはとても重要でtree bankによって統一した評価指標を得ることができたため広く用いられていました。
そしてこの係り受け関係を獲得するためには以下の手法が用いられていました。
- 単語間の親和性
似ている単語間には係り受けの関係にある可能性が高い
ex) dicussionとissue - 文中における位置関係
一般的に距離が近い単語ほど係り受けの関係にあるため - 文中における中間材(動詞やコンマ)の存在
動詞やコンマを跨いで,係り受けの関係であることは稀であるため区切りとして用いる - 有効ヘッド数
冠詞と名詞の関係性のように明確に係り受けが成り立つ語句の数
ただ、これらの情報からtree bankを作成すると二語以上で一つの意味をなす単語との係り受けを得ることができません。
そこで提案されたのが貪欲法を用いた遷移ベースの係り受け解析です。
この手法の解析過程は図3のようになります。
図3) Greedy transition-based parsingにおける過程([1]よ引用)
- 解析が終了した単語を格納するstackを先頭に付与(図3における灰色の枠)
- 残った単語をbufferに格納する(図3におけるオレンジの枠)
- stack内において係り受けの関係ができたらArcという係り受けの関係を保持する別の格納先に矢印が向けられている単語を格納する
- これをbufferが空になるまで逐次的に行う
また、この方法はルールベースではなく機械学習によって求めることができます。(3クラスの多クラス分類のように)
この他にも係り受け解析の中で精度が良い手法としてはIndicator Features Revisitedがあります。
この手法は、たいてい1~3種類ほどの特徴量テンプレートをもとにOne-Hot表現を用いて文章をベクトルかするというものです。
この手法はニューラルモデルが登場するまでは、精度が高い手法でしたが以下の無視できないデメリットによってニューラルモデルに敗北しました。
- スパースであること
- 情報が不完全であること
- 計算コストが高いこと
4.ニューラルモデルを用いた係り受け解析
次はこれまでの係り受け解析手法をより発展させ、ニューラルモデルを用いた手法について述べていきます。
Word2VecやLSTM, Transformerといったニューラルモデルは従来のルールベースや機械学習ベースのモデルと比較して秀でている点が大きく二点あります。
- 分散表現で表現できること
- Deep Learningモデルは非線形なため表現力が豊かである
これらについて一つ一つ述べていきます。
1) 分散表現
分散表現を用いることで、問題点の一つであったOne-Hot表現を用いることで起きるスパース問題が解決できるだけではなく、次元数の削減も達成することができた(
また各単語を分散表現で表す際は、言語間の類似性を損なわないように似ている単語は近くになるように割り当てられます。
下図は従来のモデルの表現と分散表現の比較です(値に関しては意味はありません)。
図4) 従来のモデルとニューラルモデルによる分散表現との比較
図中におけるs, b, rc, lcはそれぞれStack, Buffer, Right Arc, Left Arcを表しています。
2) 非線形モデルを用いた表現力の向上
分類問題におけるニューラルモデルは以下式で定義されるソフトマックス関数を最終出力として用いるモデルが多く、またモデル内で複数の層を有することで複雑な非構造データに対しても十分な表現力を有しています。
4-1:ニューラルモデルとグラフベースの係り受け解析
これまでは遷移ベースの係り受け解析について述べていきました。
係り受け解析には遷移ベース以外の手法としてグラフベースの手法があります。この手法におけるニューラルモデルによる発展について述べていきます。
従来のグラフベースモデル
グラフベース:注目している単語に対して、他の単語がどのくらい関係性があるのかを表すスコアを算出し、可視化する手法(図5参照)
図5) グラフベースの例([2]より引用)
これを各単語でスコアを算出します。よって全域的な最適スコアを出す必要があり、
その際にMSTアルゴリズムを用いることで効率的に最適スコアを求めていきます。
ニューラルモデルを用いたグラフベースモデル
グラフベースのニューラルモデルとして、2017年にDozatとManningによって発表されたモデルであるニューラルbiaffineスコアモデルについて消化していきます。
-
biaffineスコア:
biafiine変換を用いて算出したスコアを指します- biaffine変換:
以下式で定義される変換のことで右辺の第一項はheadとdepの係り受けやすさを表しており、第二項は対象単語( )が主事になるかどうかの度合いを表しています。これらによって2単語間におけるw_i からw_j への係り受けやすさを表すスコアを算出することができます。w_i
biaffine変換: s_{ij} = \mathbf{h}_i^{{head}^T} \mathbf{U} \mathbf{h}_j^{dep} + \mathbf{h}_i^{{head}^T} \mathbf{u} \tag{2} - biaffine変換:
<結果>
- 精度はかなり良い結果になった
- 大域的な最適化を行う手法であるため、単語数がn増加すると
の計算が必要となるため時間がかかるというデメリットもあるn^2
5.言語モデル
これまでは係り受け解析を中心に、文章の構造を解析するタスクに着目していたが次は文章生成のタスクに関して述べていきます。
文章生成とは与えられたコーパスをもとに入力の文章の次にくる単語であったり、文章を確率を求めることで生成するというタスクです。
また、自然言語の分野において単語や文章を生成する確率をモデル化したものを言語モデルと呼びます。これは与えられた文章や単語をもとに次にくる単語や文章に対する条件付き確率を求めるモデルとも解釈できます。
5-1:nグラム言語モデル
nグラム言語モデル:
Deep learningが登場するまで主流だった言語モデル。
nグラムと呼ばれるn個の単語の塊から条件付き確率を求めていくモデル。
講義では、nグラムモデルの中でもマルコフ性を利用したnグラム言語モデルを例にして解説されていました。
マルコフ性を利用したnグラム言語モデル
<考え方>
あるt番目の単語は、それ以前のn-1この単語にのみ依存すると仮定しnグラム言語モデルを適用する。
<数式>
nグラム言語モデルとナイーブベイズモデルとの相違点
nグラム言語モデルとナイーブベイズモデルは同じ条件付き確率を求めるモデルという一見すると同じもののように見えます。しかし、以下のように異なる点があります。
- ナイーブベイズモデルは隣接する単語の確率を出力するモデルであるのに対してnグラムモデルは周辺n個の単語を対象としている
- ナイーブベイズは文章中における全単語に対して計算を行うがnグラムモデルはn個の範囲内で計算を行う。
nグラム言語モデルにおける問題点
1.スパース問題
nグラム言語モデルはnの値を大きくすればするほどスパースになるという性質を持っています。
そのため、多くの場合においては
nグラム言語モデルがスパースとなる例と解決策として2パターンの例を示します。
例文: students opened their ___
例1)
* 'students opened their ___' の形をとるものがデータ内に存在しない時
→ wの確率が0となることでスパースになる
[解決策]
- 平滑化を行う(極小の値を全てのwに加える)
例2)
* 'students opened their'がそもそもデータ内に存在しない時
→ 分母が0となるため確率が計算することができない
[解決策]
* back offを実行する(nを変更し、対象を小さくする)
2.ストレージ問題
(3)式を見たら分かる通り、コーパスないに該当する形を取るものを全て保存する必要があるため膨大な量のメモリーを消費する。
5-2:ニューラルモデルを用いた言語モデル
ニューラル言語モデルの例として本稿ではA fixed-window nearal Language Modelについて述べていきます。(RNNについてもLecture5の内容ですがLecture6に入れた方が良さようなので今回は省略します。)
A fixed-window nearal Language Model
文が与えられた時、該当部分以外を無視してニューラルモデルを適用していくモデルです。
図6)A fixed-window nearal Language Modelのモデル図([2]より引用)
このモデルは以下のようなメリット、デメリットが存在します
<メリット>
- スパース問題がない
- nグラムを保持する必要がないためストレージ問題も解消できる
<デメリット>
- Fixed Windowが小さいことに伴う計算コストの増加
- Windowサイズの増大に伴う行列のサイズの増大(一つ前のデメリットとトレードオフの関係にある)
- 文脈を考慮できない
これらを解決するために時系列要素を含むRNN等が開発されました。
6.まとめ
今回は係り受け解析と文章生成の二つのタスクに対して、従来のモデルとニューラルモデルの比較を行いながら理解を深めるという講義でした。
次回からはDeep Learningにより深く知れる講義になっているので継続して学習していきます。
7.参考文献
[1]:Stanford CS224N NLP with Deep Learning | Winter 2021 | Lecture 4 - Backprop and Neural Networks
[2]:Stanford CS224N NLP with Deep Learning | Winter 2021 | Lecture 5 - Backprop and Neural Networks
[3]: 岡﨑 直観 著、荒瀬 由紀 著、鈴木 潤 著、鶴岡 慶雅 著、宮尾 祐介 著 IT Text 自然言語処理の基礎 オーム社 2022年
Discussion