Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
jojonki opened this issue May 15, 2020 · 0 comments
Open

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

jojonki opened this issue May 15, 2020 · 0 comments

Comments

@jojonki
Copy link
Owner

jojonki commented May 15, 2020

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. そのコンセプトに属する事例集を見つけ出すこと

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

  • 分散ベース
    類似した単語は,似たようなコンテキスト下に現れるという仮説のもと実行される.この方法では,語彙は,大規模コーパスで学習した埋め込み空間で表現される.コンテキストをどう定義するか,類似性をどう計算するかは,手法によって異なる.ただこの手法の欠点としては,コンセプトに関係ない多くの無関係なコンテキストを利用してしまう.

  • パターンベース
    大規模コーパスから,ある特有のパターンを抽出してそのパターンから用語を獲得する手法である.例えば"such as X or Y"といったら,XとYは同カテゴリに属していると分かる.このようなパターンは手作業か自動で行われる.よく設計できたパターンのprecisionは高く解釈性もあるが,どうしてもカバレッジが低くなってしまう.

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

提案手法では,パターンベースと分散ベースを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(m_i) = 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.

  • MPB1は,正解がLM語彙にすべてorほとんどカバーされているデータセットに対しては,3つ中2つでベスト.それ以外はMPB1では解くのは不適切なのでNAとしている
  • MPB2+Oでは,5つベスト
  • 候補が不完全であるMPB2でも4つがでベストとなっている(MPB2+Oは除いて)
  • CBはclosedセット向け,SEはopen set向けに対して,良いパフォーマンスをMPB2は得ている.
  • 良い候補獲得によって,MAP性能は向上できると言えそう

Screen Shot 2020-05-16 at 12 25 56 PM

追加実験

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.

  • MPB2はヨーロッパ及びヨーロッパの国以外でのset両方で結果が良い.他のベースラインはどちらかに偏っている.// CBがなぜcountriesの方だけで良いのかはよくわからない

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

結論

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

コメント

  • 割と簡単・軽量にできそうで面白い.
  • kの設定やスコアはかなりヒューリスティックなイメージがある(悪くはないと思うけど)
  • MPB2がspaCyのsense2vecに頼っており,複数語の予測もsense2vecが出してくれるから.indicative patternsはsense2vecの結果に依存するものであり,sense2vecの箇所はちゃんとTSEタスクに合わせて設計しないとだめなのでは?と思った.
@jojonki jojonki changed the title 🚧 2020: A Two-Stage Masked LM Method for Term Set Expansion 2020: A Two-Stage Masked LM Method for Term Set Expansion May 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant