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

2018: Bag of Experts Architectures for Model Reuse in Conversational Language Understanding #129

Open
jojonki opened this Issue Sep 2, 2018 · 1 comment

Comments

Projects
None yet
1 participant
@jojonki
Owner

jojonki commented Sep 2, 2018

Bag of Experts Architectures for Model Reuse in Conversational Language Understanding
Rahul Jha, Alex Marin, Suvamsh Shivaprasad, and Imed Zitouni. Microsoft. 2018 NAACL-HLT (Human Language Technologies)
http://aclweb.org/anthology/N18-3019

概要

スロットタギングのモデル.モデルの再利用性のために,Bag of Experts (BoE)というアーキテクチャを提案.これをLSTMとCRFをそれぞれベースに持つモデルの計4モデルで実験した.コルタナ(とは明記していないがまず間違いない)に関連する10ドメインの新しいデータセットで実験し,BoEによる性能改善を確認できた.

スロットタギングとは

時系列データ(ユーザー発話)に対して,スロットの位置をタグ付けすること.
screen shot 2018-09-01 at 10 28 52 pm

背景にある問題

各ドメインによってアノテーションは大きく異なるので,各ドメイン毎にスロットタギングは学習しないといけないが,ドメインが増えるに連れて多くのシナリオが必要になり,高コストとなってしまう.
またスロットによってはドメイン共通で使われる物がある.Figure 1の例だとtravelとflight statusのドメインでは,dateとtimeというのが使われている,また3つのドメインすべてにlocationというスロットが使われている.共通スロットに対しては,アノテーションデータの再利用が有効かもしれないが,発話の分布とラベルの分布はドメイン間で異なるかもしれないので,ドメイン適用の技術が必要になる.

データドリブン適用(左a)とモデルドリブン適用(右b,本手法)

screen shot 2018-09-01 at 10 38 05 pm

  • データドリブン
    まずdate, time, location,及び他の再利用スロットを含むデータのリポジトリを作る.そしてモデル学習時に,再利用可能な関連データとドメイン依存のデータを結合し,利用する.欠点としては,再利用スロットのデータが増えてきたときに,ドメイン依存のデータよりも相対的に多くなり,学習時間を増やしてしまうことが考えられる.これは新モデルをさっと開発したいときに足かせとなってしまう.

  • モデルドリブン
    再利用スロットのデータを学習データに利用するのではなく,そのデータを利用してexpertモデルをこれらのスロットに対して学習させる.そしてそれらのモデルの出力を新しいドメインの学習の際に直接利用する.
    これにより,モデルの学習時間は新しいドメインのデータサイズに比例し,再利用スロットのデータサイズが大きければ学習を早くすることができる.本手法はこっち.

アプローチ

LSTMとCRFをベースに実験するので,これらをスロットタギングに使ったモデルをまず紹介する(BoEなし).そしてBoEも利用するLSTM-BoEとCRF-BoEを説明する.合計4モデル.

LSTM

各単語毎に,charレベルのBiLSTMと単語embeddingをしてconcatする.
screen shot 2018-09-02 at 2 22 55 pm
このgをBiLSTMにまたかけ,双方向の最後の出力(文頭と文末の単語がWに相当)concatしてhを作る
screen shot 2018-09-02 at 2 24 50 pm
このhをフィードフォワードのレイヤに入力としていれ,softmaxを取る.これにより各単語におけるラベルの確率を得る.

LSTM-BoE

先程のLSTMのBoE拡張版.まず再利用可能なエキスパートドメインのセットをe1..ek∈Eとする.各ejは,先程のLSTMと同様の構造でエンコードし,hi^{ej}を得る.これはある単語wi,あるエキスパートejのエンコード結果を意味する.エキスパートドメイン毎にLSTMは用意する.

エキスパートドメインをエンコードしたものは,それぞれ足し合わせてhEとして後ほど利用する
screen shot 2018-09-02 at 2 50 10 pm

先程のLSTMの構造と同様に,単語,文字レベルのエンコードした結果をBiLSTMに入力するgiを単語毎に作成する.それは下記となり,先ほどと似ているが,hEが追加でconcatされている点で異なる
screen shot 2018-09-02 at 2 50 13 pm

そしてgiを入力に受け取ったLSTMはhiを同様に得る.

CRF

標準的な,Linear-chain CRFを利用.unigram, bigram, trigramを利用(前後トークンも含めて).

CRF-BoE

LSTM-BoEと似ている.まず各再利用可能なエキスパートドメインej∈Eに対して,CRFモデルcjを鍛える.ターゲットドメインの学習時には,各単語wiについて,CRFモデルcjから出力されたl_i^jベクトル(one-hot)が利用される.l_i^jはエキスパートドメインにおけるラベルの数の長さのベクトルになるが,各単語で予測されたラベルには1をセットし,他は0にする.そして,各単語枚にすべてのエキスパートCRFモデルからのラベルベクトルはconcatされ,ターゲットドメインのCRF学習時にn-gram特徴量と一緒に提供される.

データ

ターゲットドメイン

ターゲットドメイン(新たに学習されることを前提として鍛えられるドメイン)は10ドメインで下記のリストになる.これは新しいデータであるため,学習データはクラウドソーシングで,下記の2ステップで集めた.

  1. ドメインのインテント(ユーザーの意図発話シンボル)をワーカーに表示し,そのインテントに沿うような自然発話を生成してもらう
  2. 次に異なるワーカーグループにより,生成された発話にスロットをアノテーションしていく.(品質を保つために内部のアノテータでアノテートされたものに同意が得られるレベルまで行う)

screen shot 2018-09-02 at 4 05 21 pm

再利用ドメイン

再利用スロットを含む2つのドメイン(timexとlocation)で実験(ドメインという名前がややこしいが,再利用スロットを含む発話セットを,仮想のアプリ(ドメイン)のような形でデータセットを構築している).timexはdate, time, durationスロットから成る.locationはlocation,location_type, place_nameスロットから成る.これらは40ドメインのうち,20ドメイン以上に出てきており(MSのCortanaにおいて),再利用目的において理想的なものである.
これらのデータはCortanaからサンプリングされ,各再利用ドメインは100万発話(!!).また再利用ドメインにおいて,ターゲットドメインの発話と再利用ドメインの発話に重複はない.

ちなみに,このような方法により,timexとlocationを利用したい他プロダクトにおいても使えて便利.F1スコアでそれぞれ,96%, 89%を得た. 📓

実験

BoEがスロットタギングを再利用ドメインの情報を利用して向上できるか,実験.新ドメインのデータが少ないときもシミュレーションしたいので,各ドメインからのサンプル数は2000, 1000, 500と3パターン用意した.

LSTMの事前実験 (devセット)

LSTMモデルの単語embeddingの際の辞書の選定をdevセットで行った.Gloveの100, 200, 300次元とCortanaの実データで鍛えた500次元を利用.Cortanaのデータでのembeddingが改善率が一番高くこれを採用. 📓
またdropoutの確率もいくつか試したが,特に有意な違いは得られなかった.(のでデフォルト?)
screen shot 2018-09-02 at 4 32 58 pm

結果考察

a, bでサンプリング数2000, 1000, 500のF値.CRFモデルよりLSTMモデルの方が性能が良かった.CRFが前後3単語しか見れないのに対して,LSTMは長いコンテキストを捉えることができたのが原因と説明できる.
また,CRF,LSTMモデルよりも,CRF-BoE,LSTM-BoEモデルの方が良くなっていた.10ドメインの中ではtransportationとtravelドメインで大きく改善されており,これら2つのドメインはtimexとlocationスロットを大きく含んでいることが改善の理由と考えられる(Table 4)
また悪化したドメインもあり,shoppingモデルがそれに当たる.ただし,shopping同様timexとlocationをあまり含まないpurchaseドメインでは改善したので,常にエキスパートスロットの不足が性能低下を意味するとは限らない.
sports, sns, dealsではLSTM-BoEで改善する一方,CRF-BoEでは改善しなかった.おそらく,LSTM-BoEの全結合の出力レイヤが,何らかの情報を転移させることが出来たのではないかと思う.逆にCRFではそれは出来ない.(// やや歯切れが悪い)
またデータを減らしたときの結果,bを見てみる.興味深いことに,データ数が少ないときのほうがBoEの改善率が高い. 📔
例えば,purchaseドメイン,LSTM-BoEはデータ数500で70.66%なのに対して,データ数2000のCRFでは,66.24%なのでBoEすごい.同様にflight status, travel transportationドメインでも同様の結果.
これにより,LSTM-BoEは,新規ドメインのアノテーションデータが少ないときに有効であることが分かった.一方,ターゲットドメインのデータが増えるにつれて,改善具合は下がっていった.どの辺りでエキスパートが不要になるかはfuture workにとっておく.
screen shot 2018-09-02 at 4 21 24 pm
screen shot 2018-09-02 at 4 59 30 pm

関連研究

割愛

まとめ

Bag-of-Expertsを提案,再利用可能なエキスパートモデルを利用することにより,CRF,LSTMベースのモデルを改善することができた.特に長いコンテキストを扱うことのできるLSTMベースのものが改善率が一番良かった.実験では10ドメインをターゲットドメインとし,少ないデータも想定して実験を行い,少ないデータしか得られない状況においては,エキスパー度モデルの利用により大きな改善率を生み出すことが分かった.

コメント 📓

  • #128 に続く
  • エキスパートドメインは他プロダクトにも利用できる汎用的なモジュールということで便利
  • コルタナのログが大量にあるので,独自にembedding辞書を鍛えられるのは羨ましい
  • ちゃんとデータ数が少ない時(実問題)に対応できている雰囲気がこのデータ数を削る実験で出来ている

@jojonki jojonki added the SLU label Sep 2, 2018

@jojonki jojonki changed the title from 🚧 2018: Bag of Experts Architectures for Model Reuse in Conversational Language Understanding to 2018: Bag of Experts Architectures for Model Reuse in Conversational Language Understanding Sep 2, 2018

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