バックナンバーはこちら
はじめに
「G検定対策 究極カンペをつくろう」
シリーズ3作目になる。
前回は画像認識の因果関係を整理した。
AlexNetから始まって、CNNの進化がヤバかった・・・。
今回は自然言語処理の技術体系を因果関係で整理していく。
形態素解析とかTF-IDFとか、昔からあるやつも出てくるし、
最近はLLMとかChatGPTとか、進化が激しい。
(進化が激しいってことは、沼も深い・・・)
動画シリーズ
G検定の究極カンペ関連動画の再生リスト
説明内容
今回の説明内容を記載しておく。
- 基盤技術(形態素解析・構文解析)
- テキスト表現(BoW、word2vec、ELMoなど)
- モデルアーキテクチャ(Seq2Seq、Transformer)
- 言語モデル(BERT)
- LLM(GPT、ChatGPT、PaLMなど)
- 応用タスク
- まとめ
自然言語処理の全体像を因果関係で整理する感じになる。
例によって用語の意味は別途調べることを推奨。
ここでは「つながり」に注目する。
そして因果関係図全体像はこれになる。

(今回もむっちゃ細かい・・・)
基盤技術
自然言語処理における最初のステップは、形態素解析と構文解析である。これらは、すべての処理の土台となる技術であり、精度が低ければ後続の工程にも悪影響を及ぼす。

形態素解析とは、文章を単語に分割する処理である。一方、構文解析は文の構造を解析する技術であり、主語・述語・目的語などの関係性を明らかにする。
形態素解析は、文章を「意味を持つ最小単位」に分割するものである。特に日本語の場合、単語の境界が曖昧であるため、英語よりも解析が困難である。
例えば、「私は学校へ行きます」という文は、以下のように分割される。
「私」「は」「学校」「へ」「行き」「ます」
このように、助詞や動詞の活用も正確に分けられる。
形態素解析には、MeCabやJuman++といった解析器が存在する。これらの解析結果は、BoWやTF-IDFなどのテキスト表現手法の入力として利用される。したがって、形態素解析の精度が低い場合、後続の表現もすべて誤ってしまう。
構文解析は、文の構造を解析する技術であり、係り受け解析とも呼ばれる。文の意味を理解するためには不可欠な処理である。
例えば、「太郎が花子に本を渡した」という文では、以下のような関係が抽出される。
「太郎 → 渡した」「渡した → 本」「渡した → 花子」
構文解析があることで、単語の並びだけでなく、意味のつながりを把握することが可能となる。
この構造情報は、文脈依存型のモデルや文の意味理解に優れたモデルにおいて、特に重要な役割を果たす。因果関係図を参照すると、形態素解析はBoW、TF-IDF、N-gramなどの古典的手法の前処理として位置づけられている。すなわち、テキスト表現の出発点は形態素解析である。
構文解析は因果関係図上では直接的な接続が示されていないが、文の構造を扱うモデルにおいては、裏で活用されている。特にSeq2SeqやTransformerのように文全体の意味を扱うモデルでは、構文解析の結果が暗黙的に反映されていることが多い。
形態素解析と構文解析は、自然言語処理の「土台」である。これらがしっかりしていなければ、どれほど高度なモデルであっても、意味のある出力を得ることはできない。
テキスト表現
次に扱うのはテキスト表現である。代表的な手法として、BoW、TF-IDF、word2vec、ELMoなどが挙げられる。

テキスト表現とは、自然言語を数値ベクトルに変換する技術である。この変換が適切に行われなければ、モデルは何も学習できない。すなわち、ここが「言語を機械に理解させる」最初のステップである。
BoW、TF-IDF、N-gram
BoW(Bag of Words)は、文章を単語の集合として扱い、各単語の出現頻度をベクトル化する手法である。文脈は考慮されないが、シンプルかつ高速である。
TF-IDFは、頻出単語の重みを軽くし、希少な単語の重みを重くする手法である。TF(Term Frequency)とIDF(Inverse Document Frequency)を掛け合わせることで、「その文書において重要と思われる単語」に重みを付ける。
N-gramは、隣接する単語をセットで扱う手法である。「自然 言語」「言語 処理」のように、2語や3語の組み合わせで特徴を捉える。文脈をある程度考慮できるが、語順が固定されるため限界も存在する。
因果関係図を見ると、形態素解析の結果がBoW、TF-IDF、N-gramの入力として使われている。したがって、前処理が不正確であれば、これらの表現も誤ってしまう。
BoWからTF-IDFへと進化し、N-gramによって文脈を部分的に考慮する流れが形成されている。
word2vec、fastText
word2vecは、単語の意味をベクトル空間に埋め込む技術である。「王様 – 男 + 女 = 女王」のような意味的な計算が可能であることが特徴である。
word2vecには2つの学習方式がある。CBOWは周囲の単語から中央の単語を予測し、スキップグラムは中央の単語から周囲の単語を予測する。
fastTextは、サブワード(部分単語)を考慮することで、未知語にも強い表現を可能にする。「自然言語処理」という単語を知らなくても、「自然」「言語」「処理」という構成要素から意味を推測できる。
因果関係図では、word2vecからCBOWとスキップグラムが派生し、さらにfastTextがサブワード対応として進化している様子が示されている。これらはBoWやTF-IDFよりも意味を捉える力が強いが、文脈の考慮はされていない。
ELMo
文脈を考慮する表現として登場したのがELMoである。ELMoは、文脈によって単語の意味が変化することを前提とした技術である。
例えば、「bank」という単語は、「川岸」か「金融機関」か、文脈によって意味が異なる。ELMoはその文脈を考慮し、単語のベクトルを動的に変化させる。すなわち、同じ単語でも使われ方によってベクトルが変わるのである。
ELMoは、文脈依存型の先駆けとして、後のBERTのような言語モデルの基礎となっている。
テキスト表現は、BoWのような単純な手法から始まり、word2vecによって意味を捉え、ELMoによって文脈を考慮するように進化してきた。単語を数えるだけの時代から、意味や文脈まで考える時代へと移り変わってきたのである。
この進化は、モデルの性能にも直結している。BoWだけでもある程度の自然言語処理は可能であるが、文脈が絡むタスクにおいては限界がある。
テキスト表現は、BoWのような単純な手法から始まり、word2vecによって意味を捉え、ELMoによって文脈を考慮するように進化してきた。単語を数えるだけの時代から、意味や文脈まで考える時代へと移り変わってきたのである。
この進化は、モデルの性能にも直結している。BoWだけでもある程度の自然言語処理は可能であるが、文脈が絡むタスクにおいては限界がある。
コメント