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: Analysing the potential of seq-to-seq models for incremental interpretation in task-oriented dialogue #125

Open
jojonki opened this Issue Aug 29, 2018 · 1 comment

Comments

Projects
None yet
1 participant
@jojonki
Owner

jojonki commented Aug 29, 2018

Analysing the potential of seq-to-seq models for incremental interpretation in task-oriented dialogue
Dieuwke Hupkes, Sanne Bouwmeester, Raquel Fernández. EMNLP 2018 workshop, "Analyzing and interpreting neural networks for NLP"
https://arxiv.org/abs/1808.09178

利用したデータセット元の論文

概要

Seq2seqモデルが,非流暢性(言い淀み,言い直し等)を含む人工的に生成されたタスク指向対話において,どのように学習されるか分析した.
これまでの研究,アテンション付RNNのタスク成功率に対して,非流暢性はそこまで大きな影響を与えないことが分かった.モデルは非流暢性の構造を意識しているわけではないことがわかったが,非流暢性をデータに加えることでよりクリアな表現を獲得できることが分かった.
非流暢性の検出を行う研究は多いのに対して,本研究では非流暢性がRNNに与える影響を調べる.

データセットについて

babiとbabi+を扱う.

  • babi
    babiはFacebookが作成したもの(名前がややこしいのだが,babiプロジェクト自体はAI実現に向けた様々なタスクプロジェクトになっており,その中でも6 dialog babi taskというのが本論文でいうところのbabi,本ページでも断りのない限りbabiという).babiは求められるスキルに従ってTask 1から6まで存在する(対話内容は同じものでレストラン検索を行う対話).Task 1ではユーザーの好みを聞き出し,APIコールをするまでのタスクになっている.本論ではTask 1のみにフォーカスする(というか,babi+自体がTask 1までにしか対応していないので,比較実験するためにはTask 1しか利用できない).またベースラインには,このデータセットを公開したBordesらのMemory Networksモデルを採用する.
  • babi+
    エジンバラ大(Oliver Lemon先生のところ)のShalyminov氏が作ったデータセット.babiのTask 1データに対して,人工的に非流暢性を入れたもの.飛竜調整の内訳は,言い淀み(21%),繰り返し(40%),言い直し(5%)となっている.このbabi+でBordesらのモデルでやると性能がかなり落ちると報告している

screen shot 2018-08-29 at 5 11 26 pm

基本実験

1レイヤのseq2seqを作った(アテンションなし,ありで1つずつ).結果は下記.APIコールとそれ以外で別々に精度を出している(Task 1の目的はAPIコールであり,タスク指向対話におけるゴールに該当し,難しいターンに相当する).また数字はシーケンスレベル(システム応答の文内の単語をすべて正確に予測したことを意味する)の精度で,隣のカッコ内の数字は単語レベルの精度.一番右の列の結果はBordesらのMemNNsの結果.
生のseq2seqではAPIコールはめためたになっているが,アテンション付seq2seqやMemNNsは改善している.更にアテンション付seq2seqはMemNNよりもかなり良い.アテンション・メモリ機構がアテンション付seq2seqよりも優れているかもしれないとのこと.(コメント1 参照)
screen shot 2018-08-29 at 5 23 33 pm

非流暢性データへの一般化調査

もっとも性能が悪かったbab/babi+の実験について,seq2seq w/ attentionのモデルを分析した.

定性評価

テスト時に,非流暢単語はすべてトークンに置き換えた.
ちなみに対話行動タイプは7種類と非常に限られているので,サーフェスフォームは容易に学習できていた,エラーとなる原因は,文法的なものでなかった.非流暢タイプに限らず,システムは発話をスキップしがちだった,というのは,最初のターンで83%ものエラーが生まれていた.たとえばユーザーの最初の発話,Good morningに非流暢ワードが入っていると,文が長くなり,次ターン以降のシステム応答をしてしまっていた.
またアテンションも確認した.言い直しで,six oh no eightと言っているが,eightにはアテンションまったくせずにsixを選んでしまっていることがわかる.(迷っている様子もない)
screen shot 2018-08-29 at 8 34 53 pm

アテンションパターンの比較(定量評価)

左がbabiで学習,右がbabi+で学習したもの.babi+の方がアテンションがくっきりしており,無駄な単語(a, in, helloとか)にアテンションしていないことがわかる.これにより非流暢性を学習データに入れておけば,テスト時にそれらを無視できるよう学習できていることがわかる.
screen shot 2018-08-29 at 8 38 27 pm

非流暢性に対する処理

非流暢性は,レギュラーパターン(Levelt, 1983; Shriberg, 1994)で表せる.下記に示す.reparandum (RM) は訂正される部分,任意で挿入されるEditing term (ET),最後に修正後のRepair (r).これによってい非流暢性を分類できる.例えばリスタートであれば,RMとRは同じであるのに対して,言い直してであればことなる.そして言いよどみであれば,ETだけだったりする.
screen shot 2018-08-29 at 8 48 45 pm

Editing terms

oh noとかsorryとかいろいろと表現はあるが,Hough (2015)によると,これらの現象は人の会話の中ではそう多くないらしい(言い直しの18.52%に過ぎない).ETはシステムにとっては非流暢性の検出に便利であるが,人はそのようなものがなくてもコミュニケーションできるということがわかる.
その現象を確認するために新たにbabi+を異なるET比率で3つ生成し直した.noET(ETなし),realET(実会話に合わせて20%混ぜる),fullET(すべての言い直しとリスタートにETをつける)

結果は下記.まずfullETで学習したものについてみると,noETでテストしてもfullETと比べて100->97と少ししか下がっていない(ETがなくても非流暢性に対応できているっぽい).またrealETで学習させると,先程よりもちょっと下がる.結論としては,学習時は実環境に合わせなくても,fullETのような環境で非流暢性を対応させることができる,というのを発見した.
screen shot 2018-08-29 at 9 00 34 pm

構造コンポーネントの特定

非流暢性はレギュラーパターンを持つが,特定は簡単ではない.連続問題と呼ばれており,reparandumの開始と終了,とrepairの開始.
diagnostic classifiers (Hupkes et al.,2018)を利用してRMとETを識別し,Rの境界を判定する.diagnostic classifiers は,もともとは特定の情報が,高次元空間上(neuralモデルの隠れ層)にエンコードされているか定性的に評価するものとして提案された.
本実験では,エンコーダの出力したエンコード結果を用いて,3つのバイナリ分類機を使って,3つの非流暢性を識別した(正しく識別できれば,非流暢性の情報を含んでいると言える?).
screen shot 2018-08-29 at 9 23 37 pm
結果は割と予想したとおり.ETは特定単語を含んでいるのでもっとも簡単で精度が良かった.RMもっとも性能が低かった.またETとRは予想よりも低かった,これはETとその会話の残りにボキャブラリ重複がないということを考えると驚くべきことだった(簡単だと予想していたので).またRに至っては21%,35%で,ほとんどRの情報が取得できていないことがわかった.
screen shot 2018-08-29 at 9 25 02 pm

incremental interpretation

word-by-wodとuttr-by-uttrで評価

  • word-by-word
    モデルがユーザーが伝えた好み(スロット情報)を保持できているか,diagnostic classifierを使って調べた.具体的にはAPIコールの引数にあたる,cuisine (10 options), location(10 options), party size (4 options), and price-range (3 options)を識別するようにした.
    結果は下記でだいぶ低い.これより,エンコード情報にスロット情報が含まれていると見るのは難しいというのがわかる.

screen shot 2018-08-29 at 9 48 20 pm

単語の経過毎に精度は下記.たとえば4というのは,スロットから4単語あとを意味する.非常に短い間しかスロット情報を記憶できていないことがわかる.
screen shot 2018-08-29 at 9 50 12 pm

  • uttr-by-uttr
    この対話データではAPIコールの前に,"let me look some options for you"というターンがある.これをハックして,発話毎にこのターンを挟むことでAPIコールを誘発させる.これによりその時点で登場しているスロットが誘発されたAPIコールに登場しているかどうか,を評価できる.
    結果は下記.APIコールはbabi+テスト時では86%,babiテスト時では54%誘発され,誘発されたときのみ評価した.もっとも難しい設定であるbabi/babi+以外は100%に近い精度をどれも獲得だが,babi/babi+では厳しい結果になった.

screen shot 2018-08-29 at 9 55 23 pm

結論

非流暢性を持つタスク指向の合成データに対して,RNNがどう影響するか調べた.

  • 報告されていることと異なり,アテンション付きseq2seqでは,学習時に非流暢性を与えられれば,十分に学習できることがわかった.
  • ただしETがやRの構造などにはあまり依存していないことがわかった
  • 非流暢性なし,ありのアテンションをひかくすることで,ありの方によりクリアなアテンションがつくことを見つけた
  • 今回の設定においては,非流暢性の処理の負荷はデコーダー側(生成側)に依存していることがわかった.エンコーダー側は複雑な情報を保持できていなかった(スロットを忘れていた).これによりエンコーダー,デコーダーで異なった学習バイアスが必要になりそうだということがわかった

コメント

  1. MemNNsは各単語ベクトルを単純に足し合わせて文ベクトルを作るので,言い直しとか,意味表現にクリティカルな影響を与えるものが単語レベルだと,MemNNsは弱いのかもしれない
    APIコールのエラーの半分は,非流暢に起因するものと言えそう.これは言い直しにより,APIコールには出てこないエンティティが複数出ている可能性があるためである.言い直しは含まず,言いよどみとリスタートだけにするとほぼ完璧な精度を得られたとのこと.
    またモデルは言い直しに対する戦略を学習できてなさそうということもわかった.というのも,言い直しがあった場合,エンティティが1文に並ぶが,(:can you make a reservation for six oh no eight),前に出てきた単語か後ろに出てきた単語か,選ぶのはランダムになっているように見えた.
    2, ETの実験はユニークで面白い
  2. エンコード情報から,情報が隠れているか探すdiagnostic classifierの考えは応用できそう.

用語

  • reparandum (plural reparanda)
    (linguistics) An error in speech that is subsequently corrected ("repaired") by the speaker.

@jojonki jojonki changed the title from 🚧 2018: Analysing the potential of seq-to-seq models for incremental interpretation in task-oriented dialogue to 2018: Analysing the potential of seq-to-seq models for incremental interpretation in task-oriented dialogue Aug 30, 2018

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