jiku log

JTCのデータサイエンス中間管理職の学び

「大規模言語モデル入門」を読む~第6章~

第6章 固有表現認識

本章では,テキストから特定の人名や地名などの固有表現を抽出する固有表現認識について紹介している。

6.1 固有表現認識とは

固有表現認識(Named Entity Recognition : NER)は,テキストから特定の人物や場所などの固有表現(Named Entity)を取り出すタスクである。
固有表現の種類は,Message Understanding Conference (MUC)では,組織名(ORGANIZATION),人名(PERSON),地名(LOCATION),日付表現(DATE),時間表現(TIME),金額表現(MONEY),割合表現(PERCENT)の7種類が定義されている。また,MUC以外にも,固有表現の種類は存在する。

固有表現のタスク

代表的な固有表現のタスクには,以下のようなものが挙げられる。

  • Flat NER :
    • 最も基本的な固有表現認識のタスクであり,テキスト上で固有表現ラベルが重複しない。実応用上では多くの場合,Flat NERが採用されている。
  • Nested NER :
    • 固有表現ラベルが重複する場合があるものの,Discontinuous NERのように不連続のものがないタスクである。
  • Discontinuous NER :
    • 固有表現ラベルが不連続の事例が存在するタスクである。
固有表現認識を解くための主要アプローチ
  • 系列ラベリングアプローチ(Sequence Labeling Approach) :
    • トークン列の各要素に対して固有表現ラベルを付与する。モデル化に条件付き確率場(Conditional Random Field : CRF)を用いる。
  • スパンベースアプローチ(Span-based Approach) :
    • 文字列やトークン列の任意の範囲(スパン)に対してラベルを付与する。固有表現が部分的に重複する状況に対応できるため,Nested NERタスクを解くために用いられる。
  • 生成型アプローチ(Generative Approach) :
    • 文字列やトークン列を入力し,テキスト上の固有表現の範囲固有表現ラベルを生成する。近年注目を集めているGPT-4などのデコーダ構成のLLMと相性がよく,これから主流になる可能性が考えられる。

6.2 データセット・前処理・評価指標

固有表現モデルを実装する前に,データセット・前処理・評価指標について説明がされていた。

Unicode正規化

前処理において,テキストの正規化が説明されていた。全角文字や半角文字などを統一するための手法として,Unicode正規化が紹介されていた。

系列ラベリングのためのラベル作成

系列ラベリングのアプローチでは,トークン列と同じ系列長のラベル列を予測する。ラベル列の表現方法にはIOB2記法が用いられる。
固有表現の先頭には”B-”(beginning)という接頭辞,先頭以外には"I-"(inside)という接頭辞,固有表現ではないラベルには"O"(outside)というラベルを付与する。

評価指標

評価指標には,抽出された固有表現と,人手で付けた正解の固有表現を比較する,適合率・再現率・F値が用いられる。
一方で,正解率はあまり用いられない。正解率では固有表現ではない語句の予測も評価されるが,固有表現認識のタスクでは固有表現ではない語句の予測はあまり意味がないためである。

6.3 固有表現認識モデルの実装

本節では,BERTを用いた実装方法について説明されていた。

ラベル間の遷移可能性を考慮した予測

複数の連続したトークンが1つの単語を表すことがあり,この単語は同じ固有表現になると考えられる(たとえば「B-地名」の後にくるトークンは,「I-地名」である可能性が高い)。
そのため,各トークンのラベルを独立に予測するよりもラベル間の遷移可能性を考慮することで予測精度を高められると考えられる。

全ての単語の並びの経路について予測すると,計算量は指数関数的に大きくなるので,効率よくラベル列を予測する方法として

  • ビタビアルゴリズム(Viterbi Algorithm)
  • 条件付き確率場による遷移可能性の学習

といった方法が提案されている。

6.4 アノテーションツールを用いたデータセット構築

固有表現認識のモデル作成において,適切なデータセットが存在しない場合は自前でデータセットを作成する必要がある。アノテーションを効率化するアノテーションツールとして,Label Studioが紹介されていた。

app.heartex.com

まとめと感想

感想 : 固有表現認識の種類やアルゴリズムが幅広く紹介

固有表現認識は,自然言語処理における代表的なタスクであるが,Flat NERやNested NER,Discontinuous NERなど各種手法が紹介されていたのは参考になった。

また固有表現認識は系列データにおけるラベル予測を行なうことになるので,単にラベルを予測するのではなく,ラベルの遷移を考慮した予測手法であるビタビアルゴリズムやCRFを用いた手法が紹介されていたのが参考になった。
たとえば動画にラベルを付与する問題においても,そのラベルが急に変わることが考えにくい場合には,上記の手法が応用できるかもしれない。


本記事を最後まで読んでくださり,どうもありがとうございました。