以下の論文を読みます。
Pierre Lison, Jeremy Barnes, Aliaksandr Hubin, Samia Touileb. Named Entity Recognition without Labelled Data: A Weak Supervision Approach. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, 2020. Named Entity Recognition without Labelled Data: A Weak Supervision Approach - ACL Anthology
まとめ
前回: その1
- 「固有表現抽出を学習したいが対象ドメインのラベル付きデータがなく」、「対象ドメイン向けではない『弱い』ラベリング関数ならいくつか用意できる」というときに、弱いラベリングたちをいい感じに統合する(→ その統合したラベリングで改めて何らかのモデルを学習する)手法を提案した。以下の手順による。
- 【仮定1】個々の「弱い」ラベリングは、対象ドメインに即した真のラベルではないが、「そのトークンの真のラベルがAのとき、弱いラベリングはBかCになりやすい(=真のラベルと個々のラベリング関数に依存するディリクレ分布にしたがう)」というような傾向があると仮定する。
- 【仮定2】トークン毎の真のラベルはマルコフ性をもつと仮定する。
- これらの仮定の下に HMM を学習し、EMアルゴリズムのような方法で「各トークンの真のラベル」、「ディリクレ分布及び遷移パラメータ」を最適化する。
- 提案手法で改めて学習したモデルは、Reuters & Bloomberg ニュース記事からの固有表現抽出において、ドメイン外の最も信頼できるモデルや、個々のラベリング関数の多数決などの素朴なモデルの組み合わせの性能を上回った。
- 「個々の弱いラベリングは真のラベリングから確率的に生成されていると考えて、得意分野が異なるラベリングたちを統合する」というのは可搬性があるアイデアのように思われる。特に固有表現抽出のような自然言語処理タスクの場合は「出力されるラベル系列に制約がある」点で、HMM で真のラベルを推定する意義があると思われる。
- ただし、弱いラベリングたちがいい感じに互いの欠点を補うように揃っている必要があるはずである。手持ちの弱いラベリングたちの揃いっぷりにかなり依存した手法であるようには思われる。
前回: その1
前回まででわかったことは以下でしょうか。(?)のところはまだわかっていません。
- 固有表現抽出を学習したいが対象ドメインのラベル付きデータがない。
- 多少でもラベル付きデータがあれば転移学習できるがないので転移学習すらできない。
- 対象ドメイン向けではない「弱い」ラベリング関数ならいくつか用意できる。
- Out-of-domain NER models ― 他の様々なドメインで学習したNERモデル
- Gazetteers ― 辞書(ウィキペディア、会社名辞書、地名辞書、…)
- Heuristic functions ― 手作りの抽出ルール(時刻、日付、金額、…)
- Document-level relations ― 文書レベルの制約(?)
- なのでこれらのラベリングをいい感じに統合して(?)そのラベルを学習する(?)。
肝心なことが何もわかっていない…。
なので今回は3節の「Approach」から読もうと思うんですが、冒頭で、今回のラベルの統合はクラウドソーシングしたアノテータさんのラベルを統合するのとは以下の2点において毛色が違うといっていますね。
- 1点目は個々のラベリングに「地名辞書」などといった特定の固有表現に特化したラベリングがある点です。クラウドソーシングの個々のアノテータさんはラベリングを誤ることはあっても特定のラベルしか付けてくれないということはないのでそこは違いますね。
- 2点目として個々のラベリングが予測確率分布であることを許容しているようですね。クラウドソーシングのアノテータさんに依頼する場合は「人名: 25%、地名: 60%、会社名: 15%」などといったラベリングはないでしょうからね。アノテータさん的に一番正しいと思う固有表現を考えて選んでもらうことになるでしょう。しかし、今回は個々のラベリングはニューラルネットモデルなんかの場合もあります。確率最大なラベルを取ることもできるでしょうが、予測確率分布のまま扱うということですね。
文書単位で整合性を取るってことだよね。でも、他のラベリング関数とどう組み合わせたのかな。例えば「地名辞書」みたいに「地名」というラベルしか付けられないラベリング関数には適用する意味がないよね。文書レベルのポスト処理をしようとしまいと「地名」ってラベルしか付いてないわけだから。組み合わせ方はこの辺を読んでもよくわからないな…。
ディリクレ分布…いわば、「サイコロを生成するサイコロ」だね。どのラベリング関数も、真のラベルが であるトークンに対してサイコロ を振った結果を出すと考えているんだね。そして、真のラベルは1つ前のトークンの真のラベルに縛られていると。 によってね。なるほど、部長が最初にかいてくれた前回のあらすじに続けるならこんなストーリーだね。
- 固有表現抽出を学習したいが対象ドメインのラベル付きデータがない。
- 対象ドメイン向けではない「弱い」ラベリング関数ならいくつか用意できる。
- 【仮定1】個々の「弱い」ラベリング関数の結果は、対象ドメインに即した真のラベルではないが、「そのトークンの真のラベルがAのとき、弱いラベルはBかCになりやすい(=真のラベルと個々のラベリング関数に依存するディリクレ分布にしたがう)」という傾向があると仮定する。
- 【仮定2】また、真のラベルはマルコフ性をもつと仮定する。
- これらを仮定すれば、EMアルゴリズムのような方法で「各トークンの真のラベル」、「ディリクレ分布及び遷移パラメータ」を最適化できる。得られた「各トークンの真のラベル」(の分布)を正解ラベルに改めて何らかのモデルを学習する。
何ですかその上から目線は…というか HMM の最適化までまだ読んでいませんよ。学習対象は以下ですね。
- 個の遷移パラメータ。
- 個のサイコロ(どのサイコロも 個の目が出る)。
- 隠れ変数の事前分布は、「最も信頼できるラベリング関数のカウントに基づいたディリクレ分布」にするということですが、カウントというのは同じ文字列が何回固有表現に判定されそのラベルの内訳がどうなっているかに基づいてディリクレ分布にするということでしょうか?
- 遷移パラメータも最も信頼できるラベリング関数に基づいて初期化するようですね。
- サイコロの初期値は…個々のラベリング関数 のラベル に関する感度 と精度 を見積もって以下のようにするとのことですが…何ですかこれは…?
その式を日本語訳しただけだけど、あるラベリング関数が「地名」であるトークンにどんな確率分布にしたがったラベルを割り当てるかは、以下のように決めるということだね。
- 正しく「地名」と判定する確率は、そのラベリング関数の「地名」への感度に比例するとする。
- 誤って「人名」と判定する確率は、(1 - そのラベリング関数の「人名」への感度)×(1 - そのラベリング関数の「地名」への精度)に比例するとする。