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

2019: BERT for Joint Intent Classification and Slot Filling #210

Open
jojonki opened this issue Mar 1, 2019 · 3 comments
Open

2019: BERT for Joint Intent Classification and Slot Filling #210

jojonki opened this issue Mar 1, 2019 · 3 comments

Comments

@jojonki
Copy link
Owner

jojonki commented Mar 1, 2019

BERT for Joint Intent Classification and Slot Filling
Qian Chen, Zhu Zhuo, Wen Wang
4 pages, 1 figure
https://arxiv.org/abs/1902.10909

概要

新しい言語表現モデルであるBERTを利用して,インテント分類及びスロットフィリングを行った.
BERTは様々なタスクで優れた性能を出したが,NLUでのBERT利用はまだあまりなされていない.
今回複数のpublicデータセットを利用した実験で,インテント分類正解率,スロットフィリングのF1スコア,及び文レベルの意味フレームの正解率の改善を示した.

イントロ

タスク指向におけるインテント分類及びスロット抽出の例

インテント分類及びスロット抽出はRNNで高い性能を出していたが,最近ではそれらを同時に行うjoint learningが優れた性能を出すことがわかっている.
更にアテンション機構も組み合わせたjoint learningが,インテント分類及びスロット抽出でSOTAを獲得している. (Liu and Lane, 2016; Goo et al., 2018).
NLUやNLPのラベル付きデータは少ないため,汎化性能が低かった.これらの問題に着手するため,大量のデータを利用したジェネラルな言語表現モデルが提案されてきた,ELMoやGPT.
これらの事前学習モデルを利用して,特定タスクのアノテーションデータを利用してfine-tuningすることで高い性能を示してきた.特に最近ではBERTが様々なNLPタスクでSOTAを獲得した.
しかしNLUにおいてBERTはまだあまり研究されていない.本研究でのcontributionは下記の通り

  1. NLUの貧弱な汎化能力に対処するために,BERTの事前モデルを探求
  2. BERTベースのインテント分類及びスロット抽出のjoint learning手法を提案し,複数のデータセット上で,インテント分類正解率,スロット抽出のF値,意味フレームの正解率が,既存のアテンションベースのRNNモデルと比べて向上していることを確認

関連研究

略.
インテント分類,スロット抽出,及びそれら2つのjoint learningの既存研究が紹介されている.

提案手法

BERT

マルチレイヤーの双方向トランスフォーマーエンコーダー.入力は,WordPiece埋め込み,ポジション埋め込み,セグメント埋め込みをconcatしたもの.入力がx1, x2, ..., xTだと,出力がh1, h2, ..., hTとなる.
BERTの学習は大量のテキストデータを利用して,masked language model (マスクされた単語を予測する)と次文予測の2タスクを用いて,事前学習モデルを利用する.

インテント分類とスロット抽出のjoint learning

本手法は下図のようになる.1つずつ説明していく.
image

インテント分類は,最初のトークン[CLS]に該当するh1の部分のAffine結合+softmaxで分類.

スロット抽出は,h2,...,hTに対してそれぞれAffine結合+softmaxで分類.ただしBERTではWordPiece埋め込みを利用している.これとの整合性を取るため,サブワードが発生した場合,そのサブトークンの最初に該当する隠れ状態をsoftmaxの分類レイヤーにfeedする.
// 例えば_J et _makers _fe ud _over _seat というwordpieceでtokenizeした文を入力するとき,h1=_J, h2=_makers, .., hN=_seatとなる.

そして目的関数は,インテント及びすべてのトークン(1..N)の確率を最大化するような下記になる

CRF (Conditional Random Field)

スロットラベルの予測は,周辺語からは独立している.スロット抽出の性能は,構造予測モデルによって改善できることがこれまで示されている.Zhou and Xu (2015) はSemantic Role Labelingを,BiLSTMエンコーダーにCRFレイヤを追加することで改善できることを示した.そこで我々は,joint BERTモデルのトップに,スロットラベルのためにCRFを追加.先程のスロットはSoftmax+Affine(式2)だったが,これをCRFに置き換えるっぽい.

実験と分析

データ

ATISとSnipsを使って実験.ATISはNLU研究でよく使われるフライト予約のオーディオ付きデータ.21のインテントと120のスロット.SnipsはSnipsパーソナルボイスアシスタントから集められたデータ.7のインテントと72のスロット.SnipsはATISと比べて,マルチドメインを含み語彙数が多い.

学習データ

公開されてるBERT-Baseを利用(BookCorpusと英語Wikiで事前学習).ハイパパラメタは論文参考のこと

結果

メインの結果はTable 2に(インテント正解率,スロット正解率,文レベルの意味フレームの正解率(インテントと全スロットの全正解?).

  • joint BERTモデルが既存の優れた手法(後述)を上回る.特にスロット性能が高く,意味フレームの正解率もかなり上がっている
  • joint BERT+CRFはjoint BERTに匹敵
  • ATISより難しいSnipsでは改善レベルが大きい.意味フレームの正解率は75.5% から 92.8%

screen shot 2019-03-01 at 11 04 08 pm

// jojonki 追加コメント
ATISの結果はTwitterよりより優れた性能がすでに報告されており,本論の比較はフェアでないと一報あり
Unsupervised Transfer Learning for Spoken Language Understanding in Intelligent Agentsより引用
screen shot 2019-03-02 at 1 14 54 pm

Ablation分析とケーススタディ

Snipsでのablation分析の結果をTable 3に.joint learningなしだとインテント分類及びスロット抽出で性能悪化.またepoch数も変えて実験.1 epochで既存SOTAをoutperformできる
screen shot 2019-03-01 at 11 03 48 pm

Snipsのデータで,joint BERTとSlot-gatedの出力を比較."mother joan of the angels"という映画名の抽出にSlot-gatedは”物の名前”という誤ったスロットで抽出し,更にインテントも間違えている.joint BERTは正解.BERTはWikipediaデータでも鍛えられているため,このような可能だと思われる.このような用語は頻度が低いが,BERTのように巨大なデータで学習していることで汎化性能を獲得できていると考えられる
screen shot 2019-03-01 at 11 04 53 pm

まとめ

BERTを使ってインテント分類とスロット抽出をjoint learningした.ATISとSnipsを使ったデータで,既存の優れた手法と比べてインテント分類及びスロット抽出それぞれで上回ることができた.

コメント

  • 基本的には対して新しいことはしておらず,BERTを使ってみた論文ではあるが,SOTAを上回っているので結果的にBERTの宣伝論文になっている
  • スロット抽出に該当する部分がサブトークンになっているのは大丈夫だろうか?(他に方法思いつかないけど
  • epoch 1で既存SOTAを凌駕できるのは驚異
  • レアでかつ映画タイトルのような自然文に近いものもちゃんと抽出できているのはすごい

用語

  • Wordpieceは未知語などの単語をサブワードに分割する手法.BERTの埋め込み手法に使われている.
    例:単語列: Jet makers feud over seat width with big orders at stake
    サブワード列: _J et _makers _fe ud _over _seat _width _with _big _orders _at _stake
@jojonki jojonki changed the title 🚧 2019: BERT for Joint Intent Classification and Slot Filling 2019: BERT for Joint Intent Classification and Slot Filling Mar 1, 2019
@jojonki
Copy link
Owner Author

jojonki commented May 11, 2019

@navreeetkaur
Copy link

Is the code for this paper publicly available?

@jojonki
Copy link
Owner Author

jojonki commented Jul 6, 2019

@navreeetkaur
You can find Google's official code here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants