Coda

論文メモ Unsupervised Models for Named Entity Classification

January 13, 2020

概要

1999年に発表された教師なしの固有表現抽出の手法である。 発表時期が古いことに注意してほしい。 2つの手法が提案されている。 ひとつは、DL-CoTrainと呼ばれるルールベースの手法であり、教師なしデータに既存のルールを適用、適用結果から導出したルールを既存のルールに追加、をくりかえしてルールを増やす。 もう一方は、AdaBoostを応用したCoBoostとよばれる手法である。 ルールベースの手法のほうがCoBoostよりもよい実験結果であったので、前者のみを説明する。

DL-CoTrain

ルール

ルールは、特徴とラベルの組であり、*spelling*と*contextual*に大別できる。 *spelling*はラベルの文字列についてのルールで、*contextual*は文字列を囲む単語についてのルールである。 *spelling*のルールは5種類あり、一例をあげると、full-string(x) -> Location、は文字列がxのときxLocationとみなす。 *contextual*のルールは2種類あり、それぞれ同格と前置詞に着目する。 いずれも、最後の単語を主要部とする名詞句があるとき、名詞句内の固有名詞を固有表現とみなす。 同格のルールは、名詞句を修飾する同格の主要部にある単数形の単語によって、名詞句の固有名詞に特定のラベルをわりあてる。 たとえば、 > …, says Maury Cooper, a vice president at S.&P.

であれば、context=president -> PERSONとなり、Maury CooperPERSONとみなす。

教師なし学習

はじめに、7つの*spelling*のルールを与え、以降、*spelling*と*contextual*ルールを交互に導出する。 アルゴリズムを以下に示す。

  1. \(n=5\)に設定。\(n\)は1回の反復で追加するルールの最大数を意味する。
  2. *spelling*ルールを7つのルールで初期化する。例をあげると、full-string(New York) -> Locationがある。
  3. 学習データに*spelling*ルールでラベルを与える。
  4. *contextual*ルールをラベルごとに導出する。 \(Count(x, y)\)を訓練データにおける特徴\(x\)とラベル\(y\)の組の数、\(Count(x)\)を\(x\)の数とすると、以下の\(h(x, y)\)が\(p_{\min}\)以上であるルールを最大\(n\)個選ぶ。 \(k\)はラベルの数であり、実験で扱うラベルはPERSON, LOCATION, ORGANIZATIONであるため\(k=3\)である。 実験では\(p_{\min}\)は\(0.95\)に設定されている。 $$ h(x, y) = \frac{Count(x, y)}{Count(x) + k} $$
  5. *contextual*ルールで学習データにラベルを与える。
  6. 4.の手順で*spelling*ルールを導出する。
  7. \(n<2500\)であれば\(n=n+5\)を計算し、手順3に戻る。

推定

学習で導出したルールをもとにタグを推定する。 推定対象のもつ特徴の集合が\(\mathrm{x}\)であり、 タグの集合が\(\mathcal{Y}\)とすると、タグを次の\(f(\mathrm{x})\)で推定する。 $$ f(\mathrm{x}) = \underset{x\in \mathrm{x}, y\in \mathcal{Y}}{\operatorname{argmax}} h(x, y) $$

感想

*context*のルールは英語を前提にしているので、他言語に応用するときは、別の規則を考える必要がある。