メインコンテンツへスキップ

11.4.3 HMM、CRF と系列ラベリングの歴史の主線

HMM CRF 系列ラベリング歴史マップ

この節の位置づけ

現代の BERT token classification だけを見ると、系列ラベリングは「各 token を分類するだけ」と感じやすいです。

でも NLP の歴史では、この流れはかなり早い時期から始まっていました。

HMM はまず品詞タグ付けを統計的な系列問題として扱い、CRF はラベル間の制約を強化し、BiLSTM-CRF は文脈表現を加え、BERT は文脈表現をさらに強くしました。

一、系列ラベリングは何がそんなに難しいのか?

系列ラベリングは、文全体に 1 つのラベルを付けるのではなく、各位置にラベルを付けるタスクです。

たとえば固有表現認識では、次のようになります。

ジョブズ  創業  アップル
B-PER O B-ORG

難しいのは、各位置のラベルが完全に独立ではないことです。

たとえば:

  • I-PER は、文頭にいきなり現れることは通常ありません
  • B-ORG の後に I-ORG が続くことはあります
  • 中国語の分かち書き、品詞タグ付け、NER はどれも文脈に依存します

つまり、この歴史の流れはずっと同じ問題を解いてきました。

どうすれば、現在の token を見つつ、前後の文脈も考え、しかもラベル列全体を自然なものにできるのか?

二、HMM:初期の統計的系列モデリングの代表的な出発点

HMM は、「隠れ状態が観測される単語を生成する」モデルと考えることができます。

品詞タグ付けでは:

  • 隠れ状態:品詞ラベル。たとえば名詞、動詞、形容詞
  • 観測結果:実際に現れた単語

HMM では、次の 2 つを考えます。

問題HMM での名前
ある品詞の後に、どの品詞が続きやすいか?遷移確率
ある品詞が、ある単語を生成しやすいか?出力確率
ある品詞の後に、どの品詞が続きやすいか?遷移確率
ある品詞が、ある単語を生成しやすいか?出力確率

最も有名なデコード方法は Viterbi です。
各位置ごとに独立して最大確率を選ぶのではなく、文全体で最もありそうなラベル経路を探します。

三、CRF:「ラベル列全体」を直接スコアリングする

HMM は非常にクラシックですが、生成モデルとしての仮定が比較的強いです。
CRF は、より直接に次の問いに答えます。

この文が与えられたとき、どのラベル列全体が最も自然か?

NER では、ラベル間に制約があるため、これはとても重要です。

たとえば:

B-PER -> I-PER  自然
O -> I-PER 通常は不自然

CRF の価値はここにあります。
つまり、単に「この token は実体っぽいか」を見るだけでなく、「ラベル列全体が正しいか、つながりが滑らかか」 も同時に見ます。

四、BiLSTM-CRF:文脈表現 + ラベル制約

その後、深層学習が NLP に入ってくると、BiLSTM が文脈を読み取り、CRF が全体のラベル経路を選びます。

役割分担として見ると、次のようになります。

モジュール何を担当するか
Embedding単語をベクトルに変換する
BiLSTM左右両方の文脈を見る
CRF最も自然なラベル列を選ぶ

そのため、初期の NER システムでは BiLSTM-CRF がよく使われました。

五、BERT の後でも、HMM/CRF を学ぶ意味はあるのか?

あります。理由は、プロジェクトで HMM を自分で実装する必要があるからではありません。

  • HMM は「系列状態」と「経路デコード」の考え方を理解する助けになります
  • CRF は「ラベル間に制約がある」ことを理解する助けになります
  • BiLSTM-CRF は「文脈表現 + 構造化出力」を理解する助けになります
  • BERT token classification は「より強い表現で一部の特徴設計を置き換えられる」ことを理解する助けになります

現代のプロジェクトでは、BERT が強力な token 表現をそのまま作ってくれることが多いです。
ただし、データが少ないとき、ラベル規則が厳密なとき、境界が間違いやすいときには、CRF の考え方は今でも価値があります。

六、歴史上の節目を授業の章に対応づける

歴史上の節目解決した問題対応する授業章
HMM による品詞タグ付け隠れ状態と遷移確率でラベル列をモデル化する4.5 本節、4.2 系列ラベリングタスク
Viterbi デコード文全体で最もありそうなラベル経路を探す4.5 本節、4.3 BiLSTM + CRF
CRF入力が与えられたときにラベル経路全体を直接モデル化する4.3 BiLSTM + CRF
BiLSTM-CRF文脈表現とラベル制約を組み合わせる4.3 BiLSTM + CRF、4.4 NER 実践
BERT token classification事前学習済みの文脈表現で token レベルのタスクを解く6.3 BERT、7 大規模モデル基礎

七、最小限の直感をつかむ例

以下は完全な HMM ではありませんが、「遷移制約」の感覚をつかむためのものです。

labels = ["B-PER", "I-PER", "O"]

allowed = {
"B-PER": ["I-PER", "O"],
"I-PER": ["I-PER", "O"],
"O": ["B-PER", "O"],
}

path = ["O", "I-PER"]

if path[1] not in allowed[path[0]]:
print("このラベル経路は不自然です")
else:
print("このラベル経路は許容できます")

実行結果の例:

このラベル経路は不自然です

I-PER は、すでに始まっている人物エンティティを続けるためのタグです。O の直後に突然出るとラベルの文法が崩れます。このような制約を見えるようにするのが、HMM/CRF 的な考え方の大事な価値です。

このコードが伝えたいのは、
系列ラベリングでは、各 token をバラバラに判定するのではなく、ラベル同士にも「文法」があるということです。

八、この節を学んだあとに持っておきたい直感

系列ラベリングの歴史は BERT から始まったわけではありません。
大まかには次のように進化してきました。

HMM / Viterbi -> CRF -> BiLSTM-CRF -> BERT token classification

それぞれの世代が、同じ問いに答えようとしてきました。

どうすれば、各位置のラベルを文脈に合うものにしつつ、ラベル列全体も自然にできるのか?