jojonki / arXivNotes

IssuesにNLP(自然言語処理)に関連するの論文を読んだまとめを書いています.雑です.🚧 マークは編集中の論文です(事実上放置のものも多いです).🍡 マークは概要のみ書いてます(早く見れる的な意味で団子).
https://github.com/jojonki/arXivNotes/issues
195 stars 8 forks source link

2020: A Two-Stage Masked LM Method for Term Set Expansion #409

Open jojonki opened 4 years ago

jojonki commented 4 years ago

A Two-Stage Masked LM Method for Term Set Expansion Guy Kushilevitz, Shaul Markovitch, Yoav Goldberg short paper accepted to acl 2020 https://arxiv.org/abs/2005.01063 code and data: https://github.com/guykush/TermSetExpansion-MPB/tree/master/sets

概要

Term Set Expansion (TSE)にトライした論文.TSEは,ある意味クラスの少数の用語事例(seed set)を与えられた際に,そのクラスの他の用語を多く見つけるタスク.少数事例なので汎化性能が求められる.これまでのTSEは,分散ベースかパターンベースで解かれてきた.我々は,Masked Language Modeling (MLM)を活用し,両方の手法を組み合わせたTSEアルゴリズムを提案する.seed setは少数であることからfine-tuningは有効でないため,MLM自体をより活用する必要がある.その考えとは,まず最初にseed setに関連する情報量のあるパターンを探し,これらのパターンの汎用化によってそのシードクラスのメンバーを獲得する,というものである.我々の手法はSOTAなTSEとなった.

イントロ

TSEは少数用語事例(seed set)を与えられて,理想的にはそのseed setに属するすべての用語を見つけるタスクである.例えば{"orange", "apple"}といったセットは,fruitsに属するはずだし,{"google", "apple"}はtech companiesに属するはず.よってTSEには2つの能力が求められる.

  1. 少数事例からそのセットのコンセプト(意味クラス)を見つけること
  2. そのコンセプトに属する事例集を見つけ出すこと

これまでの手法は,分散ベースかパターンベースに分けられる.

一方で,我々の手法は下記のようになる.

提案手法では,パターンベースと分散ベースをMLMを使って組み合わせる.つまり,パターンベースのアプローチのように,コーパスのあるindicativeな場所のみに関心を持つ.そして見つけたあとは,ニューラル言語モデル(LM)の分散的な性質を用いて,パターンとコーパスを超えて汎化する

手法

タスクの定義

多くの用語からなるseed set Sgがゴールドセットとして存在し,その中からk個の用語を選択して小さいセットを作る.そしてモデルは,小さいセットからそのゴールドセットに含まれる用語をすべて見つけ出してSgを復元できるか,という問題になる.実際は,固定リストを返すのではなく,ランキングした結果を返し,Sgに含まれる用語が,Sgに含まれない用語よりも上位のランクになっているか?という形で評価される.

我々の手法は段階的に実行される.まずコーパスからl個のindicative masked patterns (m1,...ml)を検索し,そこからそのパターンを使ってセットを拡張する.

Indicative masked patternsの検索

マスクパターンmは,単語系列であり,1箇所がマスクされている.マスク箇所は1語以上の単語である.例えばcountriesクラスにとって,"The capital of "というマスクパターンは良い事例に成る.一方でこれと関係ないマスクパターンを与えてもcountriesクラスのインスタンスでは良い置換を行えない,そういったマスクパターンを探す.

まずあるシードの用語tj毎に,L個のパターン候補を見つける.これはコーパスを用語tjで検索し,その見つかった場所をマスクしたもの.そして,k * L個のパターン候補が見つかるので,スコア(後述)を計算して上位l個をマスクパターンmとして採用する.

直感的には,MLM予測において,すべてのシード用語で,高いランクになるような多様なパターンセットが欲しい(つまりセットの中で一番性能が低かった用語においても,ランクは高くなるようにしたい). まずLM(m)を,パターンmに対してLMが予測したランク付けされた単語補完と定義する.そしてR_{LM}(t, m)を用語tをLM(m)で補完した際ののランクインデックスとする.

式にすると下記.要はシードセットでビリの用語のランクが使われるので,ビリでもランキング的には上位,というのがスコアが高くなる ー>すべての用語に妥当なマスクパターンとなっている

Screen Shot 2020-05-16 at 10 49 44 AM

更に多様なパターンを得るためにヒューリスティックを加えている.まず上の式で得られるスコアでソートされた候補があった.ここから上位l個のパターンをそのまま取るのではなく,上位から順に,すでに得られたパターンより最低50%以上のトークンが異なっているものを採用していく.// 例えば前置詞1語のあり,なしでスコアは大きく変わらないであろうが,パターンの多様性としては低いので,このようなパターンを1つに限定している.

パターンが得られたので以降の章では,セット拡張の手法について説明していく

MLMクエリによるseed set拡張(拡張手法その1,MPB1)

各indicative pattern m_iは,ランク付けされた候補用語のリストを返す.これはLM(mi) = t1, ..., t{|V|}で表される(VariableはLMの語彙サイズ).用語tに対するスコアは,l個のパターンでのその用語tの予測確率の重み付き対数加算で表される.重みは,ランクの逆数の形で表せる(上位ランクのパターンほど重きを置く)

Screen Shot 2020-05-16 at 11 02 22 AM

この手法は,l個のパターンのMLMを解くだけで良いので,高速で効果的である.ただしこれはLMの語彙に含まれたものに限定される.// 最近の事前学習のモデルでは語彙サイズは50k以下程度だし,そもそもサブワード使われるとどうしようもない. 更に,この方法では1語の予測しかできないので,2語以上の語彙を獲得できない.

パターン類似度によるカバレッジ拡張(拡張手法その2,MPB2)

手法その1の問題点である,レアワード,Out-of-domain単語,マルチ単語を特定できるようにする.

その方法とは,パターンを汎化することである.つまり,パターンをそのまま使って用語を探すのではなく,パターンに類似したパターンを探し出し,そこから用語を獲得する,というものである.このときに分散ベースな考えを導入し,望むコンセプトクラスの用語を取得できるようにする.

そのために,コーパスに対してサーチ箇所を広げる.そこで高いrecallを持つアルゴリズム(spaCyのsense2vec採用)によって生成された候補用語が登場するコーパス箇所を検索対象とする.// シードセットに登場する用語に対してsense2vecを適用して候補語彙を予測させ,それをベースにコーパスからパターンを探している,と解釈した

2つのマスクパターンの類似性の計算のためにLMを利用して,下記のように定義する.つまりパターンmiとmjの類似スコアは,それぞれのパターンに対してLMで予測したトップq個の単語をそれぞれだし,両パターンでどの程度同じ単語が出たかの割合で表せる.

Screen Shot 2020-05-16 at 11 02 34 AM

ある候補用語tに対して,pats(t)=m_1^t, ..., m_n^t, を定義する,これは,用語tを含んでいた文にtの箇所をマスクしたn個の文である.tは1単語に限らず複数の単語から構成され得る.我々は,pats(t)とindicative patterns(与えられたseed setに含まれる用語で検索したパターン)の類似度が高いものを採用したい.よって,下式を定義する.l個のindicative patterns m1からmlに対して,n個の拡張して見つけたマスクとの類似度が最大のものをもってきて,加算和でスコアとする.cは先程と同様のランクに応じた重み付け.

Screen Shot 2020-05-16 at 11 52 20 AM

cは全部足すと1であり,類似度も0〜1なので,score(t)も0〜1となる.

実験

実験設定

BERTを採用し,MLMは英語Wikipediaで行う.メトリクスはMean Average Precision (MAP)を採用(70位まで見るMAP@70),つまり70位までにゴールドセットSgに含まれる正解用語をどれだけ見つけられたか?を測る指標.またMAPは,何回かrandom seedを変えて実験を回した平均で出している // MAPについては,ここなどわかりやすい

MBP1では,l=160, L=2000/k (Lはある用語を含むパターンの個数),MBP2では,l=20, L=2000/kを採用.少数のseed setに対しては,200個まで用語を拡張子,100個以上の事例を含むCountriesやCapitalsセットでは,350事例まで拡張した.

データセット

TSE評価のデータセットの準備は難しく,すべてのそのクラスの用語を含み,関係ない用語(ゴミ)がなく,包括的(同義語をすべて含む)であるべき.ただそれは理想に過ぎず,少数セットを使ったり,自動で獲得(不完全ではあるが)する手法を使った.本手法では,7つのclosedでよく定義されたpublicな評価セットを利用.セットは,NFLチーム (NFL, 32),メジャーリーグ(MLB, 30),アメリカの州(State, 50),国(Cntrs, 195),ヨーロッパの国(Euro, 44),首都(Caps, 195),アメリカ大統領(Pres, 44)である.またオープンセットとして,音楽ジャンル(Genre,色んなアルゴで出力して手作業で確認したもの,660アイテム)も提供.

比較手法

我々の手法MPB1, 2と,SOTAな2つの手法SETとCB.加えて2つのベースライン.1つ目はBB, これはMPB1のベースラインであり,2.1章で説明したセレクション手法を採用していない // ヒューリスティックな方かな? もう1つはS2VでMPB2のベースラインに相当,sense2vecをそのまま使って拡張した手法 // と解釈した. 更に,MPB2+Oというオラクルモデルを用意,これはS2Vで生成した候補をすべてそのクラスのメンバーとして含めたもの.// seed setにs2vで作った用語を正解として加えた?

メインの結果

メインの結果はTable 3.

追加実験

indicative patternsを探すために,seedの用語を含む文を何文(#sent )探し,どの程度のパターン(#pat )を保持すべきか?

Table 1にMPB1でNFLセットで行ったグリッドサーチの結果を出す.NFLセットでは,"Jets"や"Dolphins"といった多義性のある語が入っている.そのため,多くの文が必要そうに思える.結果を見ると2000文以下で十分な性能を得ているように見える,またパターン数が少なくても性能は維持できている.これは,さらなる大きなコーパスでの学習は,不要,とも言えないだろうか?

Screen Shot 2020-05-16 at 12 51 54 PM

パターン類似度を計算するときに,seed setの用語数kの選び方はアルゴリズムにセンシティブであろうか? Table 2に.50以下の用語数で最大性能を達成している.// 逆に増えると性能悪化なのでkの設定は難しそう

Screen Shot 2020-05-16 at 1 05 04 PM

サブセットとなるシード用語を使ったときに,上位の語は拾えるか? ヨーロッパの国のseed setで,世界全体の国seed setに対するMAPを見てみた結果がTable 4.

結論

LMベースのTSEを提案.LM予測を使い特定コンセプトに紐づくindicative patternsを見つけ,そのパターンを汎化することで他のコーパス箇所の探索も可能にした.事前学習されたMLMを使うことで,fine-tuningに頼る必要もない.

コメント