論文メモ 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
のときx
がLocation
とみなす。
contextualのルールは2種類あり、それぞれ同格と前置詞に着目する。
いずれも、最後の単語を主要部とする名詞句があるとき、名詞句内の固有名詞を固有表現とみなす。
同格のルールは、名詞句を修飾する同格の主要部にある単数形の単語によって、名詞句の固有名詞に特定のラベルをわりあてる。
たとえば、
…, says Maury Cooper, a vice president at S.&P.
であれば、context=president -> PERSON
となり、Maury Cooper
をPERSON
とみなす。
教師なし学習
はじめに、7つのspellingのルールを与え、以降、spellingとcontextualルールを交互に導出する。 アルゴリズムを以下に示す。
- \(n=5\)に設定。\(n\)は1回の反復で追加するルールの最大数を意味する。
- spellingルールを7つのルールで初期化する。例をあげると、
full-string(New York) -> Location
がある。 - 学習データにspellingルールでラベルを与える。
- 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} $$ - contextualルールで学習データにラベルを与える。
- 4.の手順でspellingルールを導出する。
- \(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のルールは英語を前提にしているので、他言語に応用するときは、別の規則を考える必要がある。
- 論文へのリンク
- 古い論文であるが、100 Must-Read NLP Papersにあったので読んだ。